本文整理汇总了C#中ISceneEntity.DetachToInventoryPrep方法的典型用法代码示例。如果您正苦于以下问题:C# ISceneEntity.DetachToInventoryPrep方法的具体用法?C# ISceneEntity.DetachToInventoryPrep怎么用?C# ISceneEntity.DetachToInventoryPrep使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ISceneEntity
的用法示例。
在下文中一共展示了ISceneEntity.DetachToInventoryPrep方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DetachSingleAttachmentGroupToInventoryInternal
private void DetachSingleAttachmentGroupToInventoryInternal (UUID itemID, IClientAPI remoteClient, bool fireEvent, ISceneEntity group)
{
if (fireEvent)
{
m_scene.EventManager.TriggerOnAttach (group.LocalId, itemID, UUID.Zero);
group.DetachToInventoryPrep ();
}
IScenePresence presence = m_scene.GetScenePresence (remoteClient.AgentId);
if (presence != null)
{
AvatarAttachments attModule = presence.RequestModuleInterface<AvatarAttachments> ();
if (attModule != null)
attModule.RemoveAttachment (group);
presence.RemoveAttachment (group);
}
m_log.Debug ("[ATTACHMENTS MODULE]: Saving attachpoint: " + ((uint)group.GetAttachmentPoint ()).ToString ());
//Update the saved attach points
if (group.RootChild.AttachedPos != group.RootChild.SavedAttachedPos ||
group.RootChild.SavedAttachmentPoint != group.RootChild.AttachmentPoint)
{
group.RootChild.SavedAttachedPos = group.RootChild.AttachedPos;
group.RootChild.SavedAttachmentPoint = group.RootChild.AttachmentPoint;
//Make sure we get updated
group.HasGroupChanged = true;
}
// If an item contains scripts, it's always changed.
// This ensures script state is saved on detach
foreach (ISceneChildEntity p in group.ChildrenEntities ())
{
if (p.Inventory.ContainsScripts ())
{
group.HasGroupChanged = true;
break;
}
}
UpdateKnownItem (remoteClient, group, group.RootChild.FromUserInventoryItemID, group.OwnerID);
}