AssetBundleGraph.AssetBundleGraphEditorWindow.AddNodeFromCode C# (CSharp) Method

AddNodeFromCode() private method

private AddNodeFromCode ( string name, string scriptClassName, Type scriptBaseType, float x, float y ) : void
name string
scriptClassName string
scriptBaseType System.Type
x float
y float
return void
        private void AddNodeFromCode(string name, string scriptClassName, Type scriptBaseType, float x, float y)
        {
            NodeGUI newNode = null;

            if (scriptBaseType == typeof(IModifier)) {
                var modifier = ModifierUtility.CreateModifier(scriptClassName);
                UnityEngine.Assertions.Assert.IsNotNull(modifier);

                newNode = new NodeGUI(new NodeData(name, NodeKind.MODIFIER_GUI, x, y));
                newNode.Data.ScriptClassName = scriptClassName;
                newNode.Data.InstanceData.DefaultValue = modifier.Serialize();
            }
            if (scriptBaseType == typeof(IPrefabBuilder)) {
                var builder = PrefabBuilderUtility.CreatePrefabBuilderByClassName(scriptClassName);
                UnityEngine.Assertions.Assert.IsNotNull(builder);

                newNode = new NodeGUI(new NodeData(name, NodeKind.PREFABBUILDER_GUI, x, y));
                newNode.Data.ScriptClassName = scriptClassName;
                newNode.Data.InstanceData.DefaultValue = builder.Serialize();
            }

            if (newNode == null) {
                Debug.LogError("Could not add node from code. " + scriptClassName + "(base:" + scriptBaseType +
                    ") is not supported to create from code.");
                return;
            }

            AddNodeGUI(newNode);
        }