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); } }); }
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); } } }); }
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); } } }); } }