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;
        }
Beispiel #2
0
        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);
        }