public static ScriptableObject[] ObjectAtPosition (Vector2 position) { for (int i = DialogueEditorGUI.Cache.Nodes.Count - 1; i >= 0; i--) { BaseNode node = DialogueEditorGUI.Cache.Nodes.Get (i); if (node.Position.Contains (position)) return new ScriptableObject[] { node }; for (int j = node.Nodules.Count - 1; j >= 0; j--) if (node.Nodules.Get (j).Position.Contains (position)) return new ScriptableObject[] { node.Nodules.Get (j), node }; if (node is MainNode) { MainNode main = node as MainNode; for (int j = main.Options.Count - 1; j >= 0; j--) { OptionNode option = main.Options.Get (j); if (option.Position.Contains (position)) return new ScriptableObject[] { option, main }; for (int k = option.Nodules.Count - 1; k >= 0; k--) if (option.Nodules.Get (k).Position.Contains (position)) return new ScriptableObject[] { option.Nodules.Get (k), option, main }; } } } return new ScriptableObject[] { null }; }
public static OptionNode Create(string nodeTitle, string nodeTextArea, MainNode main) { OptionNode option = Instantiate(NodeTypes.GetDefaultNode("OptionNode")) as OptionNode; option.Construct(nodeTitle, nodeTextArea, main); return(option); }
public static OptionNode Create(string _name, MainNode _mainNode) { OptionNode option = Instantiate(NodeTypes.GetDefaultNode("OptionNode")) as OptionNode; option.Construct(_name, option.textArea, _mainNode); return(option); }
protected void Construct(string nodeTitle, string nodeTextArea, MainNode main) { name = nodeTitle; textArea = nodeTextArea; mainNode = main; actor = DialogueEditorGUI.Cache.Actors.Get(0); nodules = NoduleDatabase.CreateNew(this); DialogueEditorGUI.Cache.SaveNewObject(this, mainNode); }
public static OptionDatabase CreateNew(MainNode mainNode) { var DB = CreateInstance <OptionDatabase> (); DB.name = mainNode.name + " - " + DB.GetType().Name; DB.mainNode = mainNode; if (!DB) { throw new UnityException(); } DB.Construct(); return(DB); }
protected override void Construct(string nodeTitle, Vector2 nodePos, string nodeTextArea, Actor nodeActor) { mainNode = null; base.Construct(nodeTitle, nodePos, nodeTextArea, nodeActor); }
public override void ReplaceAllReferences(Func <ScriptableObject, ScriptableObject> ReplacedSO) { base.ReplaceAllReferences(ReplacedSO); mainNode = (MainNode)ReplacedSO(mainNode); }
static void AddCallBack(object callBackObj) { EditorStates states = callBackObj as EditorStates; if (states == null) { throw new UnityException(); } EditorState state = states.curState; if (states.info.Contains("Node")) { switch (states.curSpace) { case EventSpace.Node: if (states.info == "OptionNode") { if (state.selectedObject is MainNode) { MainNode main = state.selectedObject as MainNode; main.Options.Add(OptionNode.Create(main.Options.NextItemName("Option"), main)); } else { goto default; } } else if (states.info == "MainNode") { goto default; } else { Debug.LogError("Cannot recognise name of 'Node'. Add More Error here"); return; } break; default: EditorCache cache = DialogueEditorGUI.Cache; cache.Nodes.Add(DialogueNode.Create(states.info, cache.Nodes.NextItemName(states.info), CanvasGUI.CanvasToScreenPosition(state, states.mousePos), cache.Actors.DefaultActor)); break; } } else if (states.info.Contains("Nodule")) { BaseNode node = (states.curSpace == EventSpace.Node) ? state.selectedObject as BaseNode : (states.curSpace == EventSpace.Nodule) ? (state.selectedObject as BaseNodule).MainNode : null; if (node) { node.Nodules.Add(BaseNodule.Create(states.info, node.Nodules.NextItemName(states.info), node)); } } else { throw new UnityException(); } }