static public new void SelectCom(GKToyNode node) { switch (node.doubleClickType) { // Dialogue. case 2: GKToyMakerDialogueCom.PopupTaskWindow(); GKToyMakerDialogueCom.InitSubData((GKToyDialogue)node); break; // Dialogue condition. case 4: GKToyMakerDialogueConditionCom.PopupTaskWindow(); GKToyMakerDialogueConditionCom.InitSubData((GKToyDialogueCondition)node); break; // Dialogue exit. case 5: GKToyMakerDialogueExitCom.PopupTaskWindow(); GKToyMakerDialogueExitCom.InitSubData((GKToyDialogueExit)node); break; // Dialogue action. case 6: GKToyMakerDialogueActionCom.PopupTaskWindow(); GKToyMakerDialogueActionCom.InitSubData((GKToyDialogueAction)node); break; default: break; } }
static public void SelectCom(GKToyNode node, GKToyData data) { switch (node.doubleClickType) { // Task. case 0: GKToyMakerTaskCom.PopupTaskWindow(); GKToyMakerTaskCom.InitSubData((GKToyTask)node, data); break; // Interact Task. case 1: GKToyMakerSubInteractCom.PopupTaskWindow(); GKToyMakerSubInteractCom.InitSubData((GKToySubTaskInteract)node, data); break; // Hunt Task. case 2: GKToyMakerSubHuntingCom.PopupTaskWindow(); GKToyMakerSubHuntingCom.InitSubData((GKToySubTaskHunting)node, data); break; // Collect Task. case 4: GKToyMakerSubCollectCom.PopupTaskWindow(); GKToyMakerSubCollectCom.InitSubData((GKToySubTaskCollect)node, data); break; default: break; } }
protected override void _CreateNode(GKToyNode node) { base._CreateNode(node); if ("GKToyTaskDialogue.GKToyDialogue" == node.className) { ((GKToyDialogue)node).NodeID = ++CurRenderData.curLiteralId; } }
static public new void SelectCom(GKToyNode node) { switch (node.doubleClickType) { // Dialogue. case 2: GKToyMakerDialogueCom.PopupTaskWindow(); GKToyMakerDialogueCom.InitSubData((GKToyDialogue)node); break; default: break; } }
/// <summary> /// 添加链接时,添加任务间的关系 /// </summary> /// <param name="srcNode"></param> /// <param name="destNode"></param> /// <param name="paramKey"></param> protected override void _AddLink(GKToyNode srcNode, GKToyNode destNode, string paramKey) { base._AddLink(srcNode, destNode, paramKey); if ("GKToyTaskEditor.GKToyTask" == srcNode.className) { if ("GKToyTaskEditor.GKToyTask" == destNode.className) { GKToyTask destTask = (GKToyTask)destNode; ((GKToyTask)srcNode).nextTaskIds.Add(destTask.id); destTask.preTaskIds.Add(srcNode.id); if (1 < destTask.preTaskIds.Count) { destTask.preSeperator.Add("&"); } } else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask")) { _SetMainTask((GKToySubTask)destNode, (GKToyTask)srcNode); } } else if (srcNode.className.Contains("GKToyTaskEditor.GKToySubTask")) { if ("GKToyTaskEditor.GKToyTask" == destNode.className) { GKToyTask destTask = (GKToyTask)destNode; int mainId = ((GKToySubTask)srcNode).mainTask; if (CurRenderData.nodeLst.ContainsKey(mainId)) { ((GKToyTask)CurRenderData.nodeLst[mainId]).nextTaskIds.Add(destTask.id); destTask.preTaskIds.Add(mainId); if (1 < destTask.preTaskIds.Count) { destTask.preSeperator.Add("&"); } } } else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask")) { int mainId = ((GKToySubTask)srcNode).mainTask; if (CurRenderData.nodeLst.ContainsKey(mainId)) { _SetMainTask((GKToySubTask)destNode, (GKToyTask)CurRenderData.nodeLst[mainId]); } } } }
protected override void _RemoveNode(GKToyNode node) { base._RemoveNode(node); if ("GKToyTaskEditor.GKToyTask" == node.className) { GKToyTask taskNode = (GKToyTask)node; string path = string.Format("{0}/TaskDfg/AcceptDfg_{1}.Asset", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } path = string.Format("{0}/TaskDfg/SubmitDfg_{1}.Asset", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } path = string.Format("{0}/TaskDfg/AcceptDfg_{1}.prefab", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } path = string.Format("{0}/TaskDfg/SubmitDfg_{1}.prefab", ToyMakerBase._defaultOverlordPath, taskNode.TaskID.Value); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } AssetDatabase.Refresh(); } else if ("GKToyTaskEditor.GKToySubTaskInteract" == node.className) { GKToySubTaskInteract taskNode = (GKToySubTaskInteract)node; string path = string.Format("{0}/TaskDfg/Interact_{1}.Asset", ToyMakerBase._defaultOverlordPath, taskNode.TargetID.Value); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } path = string.Format("{0}/TaskDfg/Interact_{1}.prefab", ToyMakerBase._defaultOverlordPath, taskNode.TargetID.Value); if (File.Exists(path)) { AssetDatabase.DeleteAsset(path); } AssetDatabase.Refresh(); } }
static NodeElement _GenerateTaskConfigData(GKToyNode mainNode, GKToyNode subNode, int rank) { NodeElement taskConfig = new NodeElement(); List <NodeAttr> fields = new List <NodeAttr>(); fields.Add(new NodeAttr("TaskID", mainNode.LiteralId.ToString())); fields.Add(new NodeAttr("TargetID", subNode.LiteralId.ToString())); fields.Add(new NodeAttr("TarSeq", rank.ToString())); if (0 == subNode.links.Count) { fields.Add(new NodeAttr("IfAdd", "0")); } else { fields.Add(new NodeAttr("IfAdd", "1")); } taskConfig.attrs = fields; return(taskConfig); }
static void _FindSubTask(GKToyData data, GKToyNode parenNode, GKToyNode curNode, GameData subTaskData, GameData taskConfigData, Type exportType, int layer, GameData taskTextData, List <GKToyData> dfgDatas) { foreach (Link link in curNode.links) { NodeElement tmpItem = new NodeElement(); if (!data.nodeLst.ContainsKey(link.next)) { return; } curNode = (GKToyNode)data.nodeLst[link.next]; if ("GKToyTaskEditor.GKToyTask" == curNode.className) { return; } tmpItem.attrs = _GetFieldsWithAttribute(((GKToySubTask)curNode).TargetID.ToString(), curNode, exportType, taskTextData, dfgDatas, data); subTaskData.Add(tmpItem); taskConfigData.Add(_GenerateTaskConfigData(parenNode, curNode, layer)); _FindSubTask(data, parenNode, curNode, subTaskData, taskConfigData, exportType, layer + 1, taskTextData, dfgDatas); } }
protected override void _CreateNode(GKToyNode node) { base._CreateNode(node); if ("GKToyTaskEditor.GKToyTask" == node.className) { GKToyTask taskNode = (GKToyTask)node; taskNode.initTaskId = CurRenderData.curLiteralId++; taskNode.TaskID = taskNode.initTaskId; taskNode.AcceptDfgObject = _CreateDialogueData(string.Format("{0}/TaskDfg/", ToyMakerBase._defaultOverlordPath), taskNode.TaskID.Value, "AcceptDfg"); taskNode.SubmitDfgObject = _CreateDialogueData(string.Format("{0}/TaskDfg/", ToyMakerBase._defaultOverlordPath), taskNode.TaskID.Value, "SubmitDfg"); AssetDatabase.Refresh(); } else if (node.className.Contains("GKToyTaskEditor.GKToySubTask")) { GKToySubTask taskNode = (GKToySubTask)node; if ("GKToyTaskEditor.GKToySubTaskInteract" == node.className) { ((GKToySubTaskInteract)taskNode).InteractDfgObject = _CreateDialogueData(string.Format("{0}/TaskDfg/", ToyMakerBase._defaultOverlordPath), taskNode.TargetID.Value, "Interact"); AssetDatabase.Refresh(); } } }
/// <summary> /// 删除链接时,删除任务间的关系 /// </summary> /// <param name="srcNode"></param> /// <param name="destNode"></param> protected override void _RemoveLink(GKToyNode srcNode, GKToyNode destNode) { base._RemoveLink(srcNode, destNode); if ("GKToyTaskEditor.GKToyTask" == srcNode.className) { if ("GKToyTaskEditor.GKToyTask" == destNode.className) { GKToyTask destTask = (GKToyTask)destNode; ((GKToyTask)srcNode).nextTaskIds.Remove(destTask.id); int linkId = destTask.preTaskIds.IndexOf(srcNode.id); if (0 <= linkId && 0 < destTask.preSeperator.Count) { destTask.preTaskIds.RemoveAt(linkId); if (0 == linkId) { destTask.preSeperator.RemoveAt(0); } else { destTask.preSeperator.RemoveAt(linkId - 1); } } } else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask")) { _CancelMainTask((GKToySubTask)destNode, (GKToyTask)srcNode); } } else if (srcNode.className.Contains("GKToyTaskEditor.GKToySubTask")) { if ("GKToyTaskEditor.GKToyTask" == destNode.className) { GKToyTask destTask = (GKToyTask)destNode; int mainId = ((GKToySubTask)srcNode).mainTask; if (CurRenderData.nodeLst.ContainsKey(mainId)) { ((GKToyTask)CurRenderData.nodeLst[mainId]).nextTaskIds.Remove(destTask.id); int linkId = destTask.preTaskIds.IndexOf(mainId); if (0 <= linkId && 0 < destTask.preSeperator.Count) { destTask.preTaskIds.RemoveAt(linkId); if (0 == linkId) { destTask.preSeperator.RemoveAt(0); } else { destTask.preSeperator.RemoveAt(linkId - 1); } } } } else if (destNode.className.Contains("GKToyTaskEditor.GKToySubTask")) { int mainId = ((GKToySubTask)srcNode).mainTask; if (CurRenderData.nodeLst.ContainsKey(mainId)) { _CancelMainTask((GKToySubTask)destNode, (GKToyTask)CurRenderData.nodeLst[mainId]); } } } }