/// <summary> /// Initializes a new ConversationModel. /// </summary> /// <param name="database">The database to use.</param> /// <param name="title">The title of the conversation in the database.</param> /// <param name="actor">Actor.</param> /// <param name="conversant">Conversant.</param> /// <param name="allowLuaExceptions">If set to <c>true</c> allow Lua exceptions.</param> /// <param name="isDialogueEntryValid">Is dialogue entry valid.</param> /// <param name="initialDialogueEntryID">Initial dialogue entry ID (-1 to start at beginning).</param> /// <param name="stopAtFirstValid">If set to <c>true</c> stop at first valid link from the initial entry.</param> public ConversationModel(DialogueDatabase database, string title, Transform actor, Transform conversant, bool allowLuaExceptions, IsDialogueEntryValidDelegate isDialogueEntryValid, int initialDialogueEntryID = -1, bool stopAtFirstValid = false) { this.allowLuaExceptions = allowLuaExceptions; this.database = database; this.IsDialogueEntryValid = isDialogueEntryValid; DisplaySettings displaySettings = DialogueManager.DisplaySettings; if (displaySettings != null) { if (displaySettings.cameraSettings != null) entrytagFormat = displaySettings.cameraSettings.entrytagFormat; if (displaySettings.inputSettings != null) { emTagForOldResponses = displaySettings.inputSettings.emTagForOldResponses; includeInvalidEntries = displaySettings.inputSettings.includeInvalidEntries; } } Conversation conversation = database.GetConversation(title); if (conversation != null) { SetParticipants(conversation, actor, conversant); if (initialDialogueEntryID == -1) { FirstState = GetState(conversation.GetFirstDialogueEntry(), true, stopAtFirstValid); FixFirstStateSequence(); } else { FirstState = GetState(conversation.GetDialogueEntry(initialDialogueEntryID), true, stopAtFirstValid); } } else { FirstState = null; if (DialogueDebug.LogErrors) Debug.LogWarning(string.Format("{0}: Conversation '{1}' not found in database.", new System.Object[] { DialogueDebug.Prefix, title })); } }
/// <summary> /// Initializes a new ConversationModel. /// </summary> /// <param name="database">The database to use.</param> /// <param name="title">The title of the conversation in the database.</param> /// <param name="actor">Actor.</param> /// <param name="conversant">Conversant.</param> /// <param name="allowLuaExceptions">If set to <c>true</c> allow Lua exceptions.</param> /// <param name="isDialogueEntryValid">Is dialogue entry valid.</param> /// <param name="initialDialogueEntryID">Initial dialogue entry ID (-1 to start at beginning).</param> /// <param name="stopAtFirstValid">If set to <c>true</c> stop at first valid link from the initial entry.</param> /// <param name="skipExecution">IF set to <c>true</c>, doesn't run the Lua Script or OnExecute event on the initial entry.</param> public ConversationModel(DialogueDatabase database, string title, Transform actor, Transform conversant, bool allowLuaExceptions, IsDialogueEntryValidDelegate isDialogueEntryValid, int initialDialogueEntryID = -1, bool stopAtFirstValid = false, bool skipExecution = false) { this.m_allowLuaExceptions = allowLuaExceptions; this.m_database = database; this.isDialogueEntryValid = isDialogueEntryValid; DisplaySettings displaySettings = DialogueManager.displaySettings; if (displaySettings != null) { if (displaySettings.cameraSettings != null) { m_entrytagFormat = displaySettings.cameraSettings.entrytagFormat; } if (displaySettings.inputSettings != null) { m_emTagForOldResponses = displaySettings.inputSettings.emTagForOldResponses; m_emTagForInvalidResponses = displaySettings.inputSettings.emTagForInvalidResponses; m_includeInvalidEntries = displaySettings.GetIncludeInvalidEntries(); } } Conversation conversation = database.GetConversation(title); if (conversation != null) { SetParticipants(conversation, actor, conversant); if (initialDialogueEntryID == -1) { firstState = GetState(conversation.GetFirstDialogueEntry(), true, stopAtFirstValid, skipExecution); FixFirstStateSequence(); } else { firstState = GetState(conversation.GetDialogueEntry(initialDialogueEntryID), true, stopAtFirstValid, skipExecution); } } else { firstState = null; if (DialogueDebug.logErrors) { Debug.LogWarning(string.Format("{0}: Conversation '{1}' not found in database.", new System.Object[] { DialogueDebug.Prefix, title })); } } }
/// <summary> /// Initializes a new ConversationModel. /// </summary> /// <param name='database'> /// The database to use. /// </param> /// <param name='title'> /// The title of the conversation in the database. /// </param> /// <param name='actor'> /// Actor. /// </param> /// <param name='conversant'> /// Conversant. /// </param> public ConversationModel(DialogueDatabase database, string title, Transform actor, Transform conversant, bool allowLuaExceptions, IsDialogueEntryValidDelegate isDialogueEntryValid) { this.allowLuaExceptions = allowLuaExceptions; this.database = database; this.IsDialogueEntryValid = isDialogueEntryValid; Conversation conversation = database.GetConversation(title); if (conversation != null) { SetParticipants(conversation, actor, conversant); FirstState = GetState(conversation.GetFirstDialogueEntry()); FixFirstStateSequence(); } else { FirstState = null; if (DialogueDebug.LogErrors) { Debug.LogWarning(string.Format("{0}: Conversation '{1}' not found in database.", new System.Object[] { DialogueDebug.Prefix, title })); } } DisplaySettings displaySettings = DialogueManager.DisplaySettings; if (displaySettings != null) { if (displaySettings.cameraSettings != null) { entrytagFormat = displaySettings.cameraSettings.entrytagFormat; } if (displaySettings.inputSettings != null) { emTagForOldResponses = displaySettings.inputSettings.emTagForOldResponses; } } }