public void DuplicateNode() { GroundSceneCallbacks.AddUpdateLoopCall(() => { var obj = Game.PlayerLookAtTargetObject; if (obj != null) { var node = WorldSnapshotReaderWriter.Get().GetNodeById((int)obj.NetworkId, obj.ParentObject); if (node != null) { var newNode = WorldSnapshot.CreateNodeCopy(node, obj.Transform); if (newNode != null) { editorPlugin.AddUndoCommand(this, new AddUndoCommandEventArgs(new AddWorldSnapshotNodeCommand(newNode))); } } } }); }
public void PasteNode() { GroundSceneCallbacks.AddUpdateLoopCall(() => { if (copiedNode != null) { var copiedTransform = new Transform(copiedNode.Transform) { Position = cui_hud.GetCursorWorldPosition() }; var newNode = WorldSnapshot.CreateNodeCopy(copiedNode, copiedTransform); if (newNode != null) { editorPlugin.AddUndoCommand(this, new AddUndoCommandEventArgs(new AddWorldSnapshotNodeCommand(newNode))); } } }); }