当前位置: 首页>>代码示例>>C#>>正文


C# IClientAPI.SendRemoveInventoryItem方法代码示例

本文整理汇总了C#中IClientAPI.SendRemoveInventoryItem方法的典型用法代码示例。如果您正苦于以下问题:C# IClientAPI.SendRemoveInventoryItem方法的具体用法?C# IClientAPI.SendRemoveInventoryItem怎么用?C# IClientAPI.SendRemoveInventoryItem使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在IClientAPI的用法示例。


在下文中一共展示了IClientAPI.SendRemoveInventoryItem方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DetachSingleAttachmentToGround

        public void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient)
        {
            ISceneChildEntity part = m_scene.GetSceneObjectPart (itemID);
            if (part == null || part.ParentEntity == null)
                return;

            if (part.ParentEntity.RootChild.AttachedAvatar != remoteClient.AgentId)
                return;

            UUID inventoryID = part.ParentEntity.RootChild.FromUserInventoryItemID;

            IScenePresence presence;
            if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence))
            {
                string reason;
                if (!m_scene.Permissions.CanRezObject(
                    part.ParentEntity.PrimCount, remoteClient.AgentId, presence.AbsolutePosition, out reason))
                    return;

                IAvatarAppearanceModule appearance = presence.RequestModuleInterface<IAvatarAppearanceModule> ();
                appearance.Appearance.DetachAttachment (itemID);

                AvatarFactory.QueueAppearanceSave(remoteClient.AgentId);

                part.ParentEntity.DetachToGround();

                List<UUID> uuids = new List<UUID>();
                uuids.Add(inventoryID);
                m_scene.InventoryService.DeleteItems(remoteClient.AgentId, uuids);
                remoteClient.SendRemoveInventoryItem(inventoryID);
            }

            m_scene.EventManager.TriggerOnAttach(part.ParentEntity.LocalId, itemID, UUID.Zero);
        }
开发者ID:Krazy-Bish-Margie,项目名称:Aurora-Sim,代码行数:34,代码来源:AttachmentsModule.cs

示例2: DetachSingleAttachmentToGround

        public void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient)
        {
            SceneObjectPart part = m_scene.GetSceneObjectPart(itemID);
            if (part == null || part.ParentGroup == null)
                return;

            if (part.ParentGroup.RootPart.AttachedAvatar != remoteClient.AgentId)
                return;

            UUID inventoryID = part.ParentGroup.GetFromItemID();

            ScenePresence presence;
            if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence))
            {
                string reason;
                if (!m_scene.Permissions.CanRezObject(
                    part.ParentGroup.PrimCount, remoteClient.AgentId, presence.AbsolutePosition, out reason))
                    return;

                presence.Appearance.DetachAttachment(itemID);

                if (m_scene.AvatarFactory != null)
                {
                    m_scene.AvatarFactory.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
                }
                part.ParentGroup.DetachToGround();

                List<UUID> uuids = new List<UUID>();
                uuids.Add(inventoryID);
                m_scene.InventoryService.DeleteItems(remoteClient.AgentId, uuids);
                remoteClient.SendRemoveInventoryItem(inventoryID);
            }

            m_scene.EventManager.TriggerOnAttach(part.ParentGroup.LocalId, itemID, UUID.Zero);
        }
开发者ID:shangcheng,项目名称:Aurora,代码行数:35,代码来源:AttachmentsModule.cs

示例3: DetachSingleAttachmentToGround

        public void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient)
        {
            remoteClient.RunAttachmentOperation(() =>
                {
                    SceneObjectPart part = GetSceneObjectPart(itemID);
                    if (part == null || part.ParentGroup == null)
                        return;

                    UUID inventoryID = part.ParentGroup.GetFromItemID();

                    ScenePresence presence;
                    if (TryGetAvatar(remoteClient.AgentId, out presence))
                    {
                        int landImpact = part.ParentGroup.LandImpact;
                        bool isTemp = (part.GetEffectiveObjectFlags() & PrimFlags.TemporaryOnRez) != 0;
                        if (!Permissions.CanRezObject(landImpact, remoteClient.AgentId, UUID.Zero, presence.AbsolutePosition, isTemp))
                            return;

                        this.EventManager.TriggerOnDetachObject(part.ParentGroup.LocalId);
                        presence.Appearance.DetachAttachment(itemID);
                        IAvatarFactory ava = RequestModuleInterface<IAvatarFactory>();
                        if (ava != null)
                        {
                            ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance, null, null);
                        }
                        part.ParentGroup.DetachToGround();
                        CachedUserInfo userInfo =
                            CommsManager.UserService.GetUserDetails(remoteClient.AgentId);
                        if (userInfo != null)
                        {
                            userInfo.CheckedDeleteItem(remoteClient.AgentId, inventoryID);
                            remoteClient.SendRemoveInventoryItem(inventoryID);
                        }
                    }
                });
        }
开发者ID:MatthewBeardmore,项目名称:halcyon,代码行数:36,代码来源:Scene.Inventory.cs

示例4: DetachSingleAttachmentToGround

        public void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient)
        {
            SceneObjectPart part = GetSceneObjectPart(itemID);
            if (part == null || part.ParentGroup == null)
                return;

            UUID inventoryID = part.ParentGroup.GetFromAssetID();

            ScenePresence presence;
            if (TryGetAvatar(remoteClient.AgentId, out presence))
            {
                if (!Permissions.CanRezObject(part.ParentGroup.Children.Count, remoteClient.AgentId, presence.AbsolutePosition))
                    return;

                presence.Appearance.DetachAttachment(itemID);
                IAvatarFactory ava = RequestModuleInterface<IAvatarFactory>();
                if (ava != null)
                {
                    ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
                }
                part.ParentGroup.DetachToGround();
                CachedUserInfo userInfo =
                    CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId);
                if (userInfo != null)
                {
                    userInfo.DeleteItem(inventoryID);
                    remoteClient.SendRemoveInventoryItem(inventoryID);
                }
            }
            SendAttachEvent(part.ParentGroup.LocalId, itemID, UUID.Zero);
        }
开发者ID:ChrisD,项目名称:opensim,代码行数:31,代码来源:Scene.Inventory.cs

示例5: DetachSingleAttachmentToGround

        public void DetachSingleAttachmentToGround(UUID itemID, IClientAPI remoteClient)
        {
            SceneObjectPart part = GetSceneObjectPart(itemID);
            if (part == null || part.ParentGroup == null)
                return;

            UUID inventoryID = part.ParentGroup.GetFromItemID();

            ScenePresence presence;
            if (TryGetAvatar(remoteClient.AgentId, out presence))
            {
                if (!Permissions.CanRezObject(part.ParentGroup.Children.Count, remoteClient.AgentId, presence.AbsolutePosition))
                    return;

                presence.Appearance.DetachAttachment(itemID);
                IAvatarFactory ava = RequestModuleInterface<IAvatarFactory>();
                if (ava != null)
                {
                    ava.UpdateDatabase(remoteClient.AgentId, presence.Appearance);
                }
                part.ParentGroup.DetachToGround();

                List<UUID> uuids = new List<UUID>();
                uuids.Add(inventoryID);
                InventoryService.DeleteItems(remoteClient.AgentId, uuids);
                remoteClient.SendRemoveInventoryItem(inventoryID);
            }
            SendAttachEvent(part.ParentGroup.LocalId, itemID, UUID.Zero);
        }
开发者ID:AlphaStaxLLC,项目名称:taiga,代码行数:29,代码来源:Scene.Inventory.cs

示例6: DetachSingleAttachmentToGround

        public void DetachSingleAttachmentToGround(uint soLocalId, IClientAPI remoteClient)
        {
//            m_log.DebugFormat(
//                "[ATTACHMENTS MODULE]: DetachSingleAttachmentToGround() for {0}, object {1}",
//                remoteClient.Name, soLocalId);

            SceneObjectGroup so = m_scene.GetGroupByPrim(soLocalId);

            if (so == null)
                return;

            if (so.AttachedAvatar != remoteClient.AgentId)
                return;

            UUID inventoryID = so.GetFromItemID();

//            m_log.DebugFormat(
//                "[ATTACHMENTS MODULE]: In DetachSingleAttachmentToGround(), object is {0} {1}, associated item is {2}",
//                so.Name, so.LocalId, inventoryID);

            ScenePresence presence;
            if (m_scene.TryGetScenePresence(remoteClient.AgentId, out presence))
            {
                lock (presence.AttachmentsSyncLock)
                {
                    if (!m_scene.Permissions.CanRezObject(
                        so.PrimCount, remoteClient.AgentId, presence.AbsolutePosition))
                        return;

                    bool changed = presence.Appearance.DetachAttachment(inventoryID);
                    if (changed && m_scene.AvatarFactory != null)
                        m_scene.AvatarFactory.QueueAppearanceSave(remoteClient.AgentId);

                    presence.RemoveAttachment(so);
                    DetachSceneObjectToGround(so, presence);

                    List<UUID> uuids = new List<UUID>();
                    uuids.Add(inventoryID);
                    m_scene.InventoryService.DeleteItems(remoteClient.AgentId, uuids);
                    remoteClient.SendRemoveInventoryItem(inventoryID);
                }

                m_scene.EventManager.TriggerOnAttach(so.LocalId, so.UUID, UUID.Zero);
            }
        }
开发者ID:NovaGrid,项目名称:opensim,代码行数:45,代码来源:AttachmentsModule.cs


注:本文中的IClientAPI.SendRemoveInventoryItem方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。