예제 #1
0
 public void Execute()
 {
     GroundSceneCallbacks.AddUpdateLoopCall(() =>
     {
         // As we merely store a copy of the node, we need to fetch the actual node first before removing it
         if (nodeCopy.ParentId == 0)
         {
             WorldSnapshot.RemoveNode(WorldSnapshotReaderWriter.Get().LastNode);
         }
         else
         {
             WorldSnapshot.RemoveNode(nodeCopy.ParentNode.LastChild);
         }
     });
 }
예제 #2
0
 private void btnRemoveWsNode_Click(object sender, EventArgs e)
 {
     GroundSceneCallbacks.AddUpdateLoopCall(() =>
     {
         var obj = Game.PlayerLookAtTargetObject;
         if (obj != null)
         {
             WorldSnapshotReaderWriter.Node node = WorldSnapshotReaderWriter.Get().GetNodeById((int)obj.NetworkId, obj.ParentObject);
             if (node != null)
             {
                 editorPlugin.AddUndoCommand(this, new AddUndoCommandEventArgs(new RemoveWorldSnapshotNodeCommand(node)));
                 WorldSnapshot.RemoveNode(node);
             }
         }
     });
 }
예제 #3
0
 public void RemoveNode()
 {
     if (EnableNodeEditing)
     {
         GroundSceneCallbacks.AddUpdateLoopCall(() =>
         {
             var obj = Game.PlayerLookAtTargetObject;
             if (obj != null)
             {
                 var node = WorldSnapshotReaderWriter.Get().GetNodeById((int)obj.NetworkId, obj.ParentObject);
                 if (node != null)
                 {
                     editorPlugin.AddUndoCommand(this, new AddUndoCommandEventArgs(new RemoveWorldSnapshotNodeCommand(node)));
                     WorldSnapshot.RemoveNode(node);
                 }
             }
         });
     }
 }