private void OnClickAddNode(NODEOPTIONS options, SO_Node _AssetToUpdate) { SO_Node node = null; switch (options) { case NODEOPTIONS.Selector: node = _AssetToUpdate.Create <SO_Selector>(name); node.Type = "Selector"; node.nodeType = (int)NODETYPE.Composite; break; case NODEOPTIONS.Sequence: node = _AssetToUpdate.Create <SO_Sequence>(name); node.Type = "Sequence"; node.nodeType = (int)NODETYPE.Composite; break; case NODEOPTIONS.BooleanSelector: node = _AssetToUpdate.Create <SO_BooleanSelector>(name); node.Type = "BSelector"; node.nodeType = (int)NODETYPE.Composite; break; case NODEOPTIONS.FailRepeater: node = _AssetToUpdate.Create <SO_FailRepeater>(name); node.SwapableNodes = false; node.Type = "FRepeater"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.FakeSate: node = _AssetToUpdate.Create <SO_FakeSate>(name); node.SwapableNodes = false; node.Type = "FakeSate"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.InfiniteRepeater: node = _AssetToUpdate.Create <SO_InfiniteRepeater>(name); node.SwapableNodes = false; node.Type = "IRepeater"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Inverter: node = _AssetToUpdate.Create <SO_Inverter>(name); node.SwapableNodes = false; node.Type = "Inverter"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Limiter: node = _AssetToUpdate.Create <SO_Limiter>(name); node.SwapableNodes = false; node.Type = "Limiter"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Repeater: node = _AssetToUpdate.Create <SO_Repeater>(name); node.SwapableNodes = false; node.Type = "Repeater"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Leaf: node = _AssetToUpdate.Create <SO_LeafNode>(name); node.SwapableNodes = false; node.Type = "Leaf"; node.nodeType = (int)NODETYPE.Leaf; break; case NODEOPTIONS.Debug: node = _AssetToUpdate.Create <SO_TestNode>(name); node.SwapableNodes = false; node.Type = "Debug"; node.nodeType = (int)NODETYPE.Debug; break; } string tempBaseName = "New Node"; string tempName = tempBaseName; int number = 0; while (_AssetToUpdate.ContainsName(tempName)) { tempName = tempBaseName + $" {number}"; number++; } node.name = tempName; _AssetToUpdate.AddNode(node); InContexMenu = false; }
public SO_Node GetNodeType(NODEOPTIONS options, string name) { SO_Node node = null; switch (options) { case NODEOPTIONS.Selector: node = myTarget.Create <SO_Selector>(name); node.Type = "Selector"; node.nodeType = (int)NODETYPE.Composite; break; case NODEOPTIONS.Sequence: node = myTarget.Create <SO_Sequence>(name); node.Type = "Sequence"; node.nodeType = (int)NODETYPE.Composite; break; case NODEOPTIONS.BooleanSelector: node = myTarget.Create <SO_BooleanSelector>(name); node.Type = "BSelector"; node.nodeType = (int)NODETYPE.Composite; break; case NODEOPTIONS.FailRepeater: node = myTarget.Create <SO_FailRepeater>(name); node.SwapableNodes = false; node.Type = "FRepeater"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.FakeSate: node = myTarget.Create <SO_FakeSate>(name); node.SwapableNodes = false; node.Type = "FakeSate"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.InfiniteRepeater: node = myTarget.Create <SO_InfiniteRepeater>(name); node.SwapableNodes = false; node.Type = "IRepeater"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Inverter: node = myTarget.Create <SO_Inverter>(name); node.SwapableNodes = false; node.Type = "Inverter"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Limiter: node = myTarget.Create <SO_Limiter>(name); node.SwapableNodes = false; node.Type = "Limiter"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Repeater: node = myTarget.Create <SO_Repeater>(name); node.SwapableNodes = false; node.Type = "Repeater"; node.nodeType = (int)NODETYPE.Decorator; break; case NODEOPTIONS.Leaf: node = myTarget.Create <SO_LeafNode>(name); node.SwapableNodes = false; node.Type = "Leaf"; node.nodeType = (int)NODETYPE.Leaf; break; case NODEOPTIONS.Debug: node = myTarget.Create <SO_TestNode>(name); node.SwapableNodes = false; node.Type = "Debug"; node.nodeType = (int)NODETYPE.Debug; break; default: break; } return(node); }