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