Example #1
0
 public override void OnBodyGUI()
 {
     base.OnBodyGUI();
     EntryPoint node  = target as EntryPoint;
     QuestGraph graph = node.graph as QuestGraph;
     //if (GUILayout.Button("Start")) node.Start();
     //if (GUILayout.Button("Continue")) graph.Continue();
 }
Example #2
0
    //public QuestGraph Retrieve(int primaryKey)
    //{

    //    if (_questMap.ContainsKey(primaryKey))
    //    {
    //        return _questMap[primaryKey];
    //    }

    //    Debug.LogError("Quest Asset Map does not contain primary key " + primaryKey);
    //    return null;
    //}

    public bool TryRetrieve(int primaryKey, out QuestGraph graph)
    {
        graph = null;

        if (_questMap.ContainsKey(primaryKey))
        {
            graph = _questMap[primaryKey];
            return(true);
        }

        return(false);
    }
Example #3
0
 public override void OnBodyGUI()
 {
     base.OnBodyGUI();
     QuestNode  node  = target as QuestNode;
     QuestGraph graph = node.graph as QuestGraph;
     //if (GUILayout.Button("MoveNext Node")) node.MoveNext();
     //if (GUILayout.Button("Continue Graph")) graph.Continue();
     //if (GUILayout.Button("Set as current"))
     //{
     //    graph.leaves.Clear();
     //    graph.leaves.Add(node);
     //}
 }
Example #4
0
        public override void OnHeaderGUI()
        {
            GUI.color = Color.white;
            QuestNode  node  = target as QuestNode;
            QuestGraph graph = node.graph as QuestGraph;

            //if (graph.leaves.Contains(node)) GUI.color = Color.yellow;
            if (node.Active)
            {
                GUI.color = Color.yellow;
            }
            string title = target.name;

            GUILayout.Label(title, NodeEditorResources.styles.nodeHeader, GUILayout.Height(30));
            GUI.color = Color.white;
        }
        public override void OnDropObjects(UnityEngine.Object[] objects)
        {
            float offset = 100;

            for (int i = 0; i < objects.Length; i++)
            {
                UnityEngine.Object obj = objects[i];
                if (obj.GetType() == typeof(QuestGraph))
                {
                    QuestGraph draggedQuest = (QuestGraph)obj;
                    QuestGraph graph        = (QuestGraph)target;
                    QuestNode  closest      = null;
                    float      minDist      = float.PositiveInfinity;

                    foreach (Node n in graph.nodes)
                    {
                        if (n is QuestNode questNode)
                        {
                            Vector2 dist = NodeEditorWindow.current.MousePosition - questNode.position;
                            Debug.Log(dist.magnitude);

                            if (questNode == null || minDist > dist.magnitude)
                            {
                                Debug.Log("Set");
                                minDist = dist.magnitude;
                                closest = questNode;
                            }
                        }
                    }

                    if (closest == null)
                    {
                        QuestNode node = (QuestNode)CreateNode(typeof(QuestNode), new Vector2(i * offset, i * offset));
                        node.Quest = draggedQuest;
                        node.Quest.SetParent((QuestGraph)node.graph);
                    }
                    else
                    {
                        closest.Quest = draggedQuest;
                        draggedQuest.SetParent(graph);
                    }
                }
            }
        }
Example #6
0
 private void OnEnable()
 {
     graph = (QuestGraph)serializedObject.targetObject;
 }
Example #7
0
 private void Register(QuestGraph graph)
 {
     _questMap[graph.PrimaryKey] = graph;
 }