/// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }