/// <summary> /// Creates a canvas of the specified canvasType as long as it is a subclass of NodeCanvas /// </summary> public static NodeCanvas CreateCanvas(Type canvasType) { NodeCanvas canvas; canvas = ScriptableObject.CreateInstance(canvasType) as NodeCanvas; canvas.name = canvas.saveName = "New " + canvas.canvasName; NodeEditor.BeginEditingCanvas(canvas); canvas.OnCreate(); NodeEditor.EndEditingCanvas(); return(canvas); }
/// <summary> /// Creates a canvas of the specified generic type /// </summary> public static T CreateCanvas <T> () where T : NodeCanvas { if (typeof(T) == typeof(NodeCanvas)) { throw new Exception("Cannot create canvas of type 'NodeCanvas' as that is only the base class. Please specify a valid subclass!"); } T canvas = ScriptableObject.CreateInstance <T>(); canvas.name = canvas.saveName = "New " + canvas.canvasName; NodeEditor.BeginEditingCanvas(canvas); canvas.OnCreate(); NodeEditor.EndEditingCanvas(); return(canvas); }
/// <summary> /// Creates a canvas of the specified canvasType as long as it is a subclass of NodeCanvas /// </summary> public static NodeCanvas CreateCanvas(Type canvasType) { NodeCanvas canvas; if (canvasType != null && canvasType.IsSubclassOf(typeof(NodeCanvas))) { canvas = ScriptableObject.CreateInstance(canvasType) as NodeCanvas; } else { return(null); } canvas.name = canvas.saveName = "New " + canvas.canvasName; NodeEditor.BeginEditingCanvas(canvas); canvas.OnCreate(); NodeEditor.EndEditingCanvas(); return(canvas); }
/// <summary> /// Creates a canvas of the specified canvasType as long as it is a subclass of NodeCanvas /// </summary> public static NodeCanvas CreateCanvas(Type canvasType) { NodeCanvas canvas; if (canvasType != null && canvasType.IsSubclassOf(typeof(NodeCanvas))) { canvas = ScriptableObject.CreateInstance(canvasType) as NodeCanvas; } else { // TODO: Why can I not access StartMissionNode here??????? switch (NodeEditorGUI.state) { case NodeEditorGUI.NodeEditorState.Mission: canvas = ScriptableObject.CreateInstance <QuestCanvas>(); break; case NodeEditorGUI.NodeEditorState.Dialogue: canvas = ScriptableObject.CreateInstance <NodeEditorFramework.Standard.DialogueCanvas>(); break; case NodeEditorGUI.NodeEditorState.Sector: canvas = ScriptableObject.CreateInstance <NodeEditorFramework.Standard.SectorCanvas> (); break; default: canvas = ScriptableObject.CreateInstance <QuestCanvas>(); break; } } canvas.name = canvas.saveName = "New " + canvas.canvasName; NodeEditor.BeginEditingCanvas(canvas); canvas.OnCreate(); NodeEditor.EndEditingCanvas(); return(canvas); }