private static ChatMapper.DialogEntry DialogEntryToCmp(DialogueSystem.DialogueEntry entry, bool includeCanvasRect) { ChatMapper.DialogEntry cmpEntry = new DialogEntry(); cmpEntry.ID = entry.id; cmpEntry.IsRoot = entry.isRoot || ((entry.id == 0) && string.Equals(entry.Title, "START")); cmpEntry.IsGroup = entry.isGroup; cmpEntry.NodeColor = string.IsNullOrEmpty(entry.nodeColor) ? "White" : entry.nodeColor; cmpEntry.DelaySimStatus = entry.delaySimStatus; cmpEntry.FalseCondtionAction = GetValidFalseConditionAction(entry.falseConditionAction); cmpEntry.ConditionPriority = entry.conditionPriority.ToString(); cmpEntry.Fields = FieldsToCmp(entry.fields); AddRequiredDialogEntryFields(cmpEntry.Fields); cmpEntry.Fields.ForEach(cmpField => { if (cmpField.Title.StartsWith("Dialogue Text")) { cmpField.Type = "Localization"; } }); if (includeCanvasRect) { AddCanvasRectField(entry, cmpEntry); } cmpEntry.OutgoingLinks = LinksToCmp(entry.outgoingLinks); foreach (var link in cmpEntry.OutgoingLinks) { link.OriginConvoID = entry.conversationID; link.OriginDialogID = entry.id; } cmpEntry.ConditionsString = entry.conditionsString; cmpEntry.UserScript = entry.userScript; return(cmpEntry); }
private static void AddCanvasRectField(DialogueSystem.DialogueEntry entry, ChatMapper.DialogEntry cmpEntry) { var canvasRectField = cmpEntry.Fields.Find(f => string.Equals(f.Title, "canvasRect")); if (canvasRectField == null) { canvasRectField = new ChatMapper.Field(); canvasRectField.Title = "canvasRect"; cmpEntry.Fields.Add(canvasRectField); } canvasRectField.Value = string.Format("{0};{1}", entry.canvasRect.x, entry.canvasRect.y); }