private static void ConvertItems(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.items = new List<Item>(); foreach (var chatMapperItem in chatMapperProject.Assets.Items) { database.items.Add (new Item (chatMapperItem)); } }
private static void ConvertLocations(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.locations = new List<Location>(); foreach (var chatMapperLocation in chatMapperProject.Assets.Locations) { database.locations.Add (new Location (chatMapperLocation)); } }
private static void ConvertActors(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.actors = new List<Actor>(); foreach (var chatMapperActor in chatMapperProject.Assets.Actors) { database.actors.Add (new Actor (chatMapperActor)); } }
private static void ConvertProjectAttributes(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.version = chatMapperProject.Version; database.author = chatMapperProject.Author; database.description = chatMapperProject.Description; database.emphasisSettings = new EmphasisSetting[4]; database.emphasisSettings[0] = new EmphasisSetting(chatMapperProject.EmphasisColor1, chatMapperProject.EmphasisStyle1); database.emphasisSettings[1] = new EmphasisSetting(chatMapperProject.EmphasisColor2, chatMapperProject.EmphasisStyle2); database.emphasisSettings[2] = new EmphasisSetting(chatMapperProject.EmphasisColor3, chatMapperProject.EmphasisStyle3); database.emphasisSettings[3] = new EmphasisSetting(chatMapperProject.EmphasisColor4, chatMapperProject.EmphasisStyle4); }
private static void ConvertConversations(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.conversations = new List<Conversation>(); foreach (var chatMapperConversation in chatMapperProject.Assets.Conversations) { Conversation conversation = new Conversation(chatMapperConversation); SetConversationStartCutsceneToNone(conversation); foreach (DialogueEntry entry in conversation.dialogueEntries) { foreach (Link link in entry.outgoingLinks) { if (link.destinationConversationID == 0) link.destinationConversationID = conversation.id; if (link.originConversationID == 0) link.originConversationID = conversation.id; } } database.conversations.Add(conversation); } }
/// <summary> /// Converts a Chat Mapper project to a dialogue database. /// </summary> /// <returns>The dialogue database, or <c>null</c> if a conversation error occurred.</returns> /// <param name="chatMapperProject">Chat Mapper project.</param> public static DialogueDatabase ConvertToDialogueDatabase(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject) { DialogueDatabase database = ScriptableObject.CreateInstance<DialogueDatabase>(); if (database == null) { if (DialogueDebug.LogErrors) Debug.LogError(string.Format("{0}: Couldn't convert Chat Mapper project '{1}'.", new System.Object[] { DialogueDebug.Prefix, chatMapperProject.Title })); } else { ConvertProjectAttributes(chatMapperProject, database); ConvertActors(chatMapperProject, database); ConvertItems(chatMapperProject, database); ConvertLocations(chatMapperProject, database); ConvertVariables(chatMapperProject, database); ConvertConversations(chatMapperProject, database); if (DialogueDebug.LogInfo) Debug.Log(string.Format("{0}: Converted Chat Mapper project '{1}' containing {2} actors, {3} conversations, {4} items (quests), {5} variables, and {6} locations.", new System.Object[] { DialogueDebug.Prefix, chatMapperProject.Title, database.actors.Count, database.conversations.Count, database.items.Count, database.variables.Count, database.locations.Count })); } return database; }
private static void ConvertVariables(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.variables = new List<Variable>(); int id = 0; foreach (var chatMapperVariable in chatMapperProject.Assets.UserVariables) { Variable variable = new Variable(chatMapperVariable); variable.id = id; id++; database.variables.Add(variable); } }
private void DrawSimpleControllerSection(PixelCrushers.DialogueSystem.SimpleController simpleController) { EditorWindowTools.StartIndentedSection(); if ((simpleController.idle == null) || (simpleController.runForward == null)) { EditorGUILayout.HelpBox("The player uses third-person shooter style controls. At a minimum, Idle and Run animations are required. Click Select Player to customize further.", MessageType.Info); } simpleController.idle = EditorGUILayout.ObjectField("Idle Animation", simpleController.idle, typeof(AnimationClip), false) as AnimationClip; simpleController.runForward = EditorGUILayout.ObjectField("Run Animation", simpleController.runForward, typeof(AnimationClip), false) as AnimationClip; EditorWindowTools.StartIndentedSection(); EditorGUILayout.LabelField("Optional", EditorStyles.boldLabel); simpleController.runSpeed = EditorGUILayout.FloatField("Run Speed", simpleController.runSpeed); simpleController.runBack = EditorGUILayout.ObjectField("Run Back", simpleController.runBack, typeof(AnimationClip), false) as AnimationClip; simpleController.aim = EditorGUILayout.ObjectField("Aim", simpleController.aim, typeof(AnimationClip), false) as AnimationClip; simpleController.fire = EditorGUILayout.ObjectField("Fire", simpleController.fire, typeof(AnimationClip), false) as AnimationClip; if (simpleController.fire != null) { if (simpleController.upperBodyMixingTransform == null) EditorGUILayout.HelpBox("Specify the upper body mixing transform for the fire animation.", MessageType.Info); simpleController.upperBodyMixingTransform = EditorGUILayout.ObjectField("Upper Body Transform", simpleController.upperBodyMixingTransform, typeof(Transform), true) as Transform; simpleController.fireLayerMask = EditorGUILayout.LayerField("Fire Layer", simpleController.fireLayerMask); simpleController.fireSound = EditorGUILayout.ObjectField("Fire Sound", simpleController.fireSound, typeof(AudioClip), false) as AudioClip; AudioSource audioSource = pcObject.GetComponent<AudioSource>(); if (audioSource == null) { audioSource = pcObject.AddComponent<AudioSource>(); audioSource.playOnAwake = false; audioSource.loop = false; } } EditorWindowTools.EndIndentedSection(); EditorWindowTools.EndIndentedSection(); }
private bool IsChatMapperProjectMissingValues(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject) { return (chatMapperProject == null) || ((chatMapperProject.Assets.Actors.Count > 0) && (chatMapperProject.Assets.Actors[0].Fields.Count > 0) && (chatMapperProject.Assets.Actors[0].Fields[0].Value == null)); }
private bool IsValidChatMapperProject(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, string projectFilename) { if (chatMapperProject == null) { return false; } else if (IsChatMapperProjectMissingValues(chatMapperProject)) { Debug.LogError(string.Format("{0}: Chat Mapper may not have exported {1} correctly. Please use Chat Mapper 1.3.x or 1.6.1.1+.", DialogueDebug.Prefix, projectFilename)); return false; } else { return true; } }
private void CreateDialogueDatabase(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject) { try { string databaseAssetName = prefs.useProjectName ? chatMapperProject.Title : prefs.databaseName; DialogueDatabase database = LoadOrCreateDatabase(databaseAssetName); if (database == null) { Debug.LogError(string.Format("{0}: Couldn't create asset '{1}'.", DialogueDebug.Prefix, databaseAssetName)); } else { ConvertProjectAttributes(chatMapperProject, database); ConvertActors(chatMapperProject, database); ConvertItems(chatMapperProject, database); ConvertLocations(chatMapperProject, database); ConvertVariables(chatMapperProject, database); ConvertConversations(chatMapperProject, database); SaveDatabase(database, databaseAssetName); Debug.Log(string.Format("{0}: Created database '{1}' containing {2} actors, {3} conversations, {4} items (quests), {5} variables, and {6} locations.", DialogueDebug.Prefix, databaseAssetName, database.actors.Count, database.conversations.Count, database.items.Count, database.variables.Count, database.locations.Count)); } } finally { EditorUtility.ClearProgressBar(); } }
private void ConvertLocations(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.locations = new List<Location>(); chatMapperProject.Assets.Locations.ForEach(l => database.locations.Add(new Location(l))); }
private void ConvertItems(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.items = new List<Item>(); chatMapperProject.Assets.Items.ForEach(i => database.items.Add(new Item(i))); }
private void ConvertConversations(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.conversations = new List<Conversation>(); foreach (var chatMapperConversation in chatMapperProject.Assets.Conversations) { Conversation conversation = new Conversation(chatMapperConversation); SetConversationStartCutsceneToNone(conversation); ConvertAudioFilesToSequences(conversation); database.conversations.Add(conversation); } }
private void ConvertActors(PixelCrushers.DialogueSystem.ChatMapper.ChatMapperProject chatMapperProject, DialogueDatabase database) { database.actors = new List<Actor>(); chatMapperProject.Assets.Actors.ForEach(a => database.actors.Add(new Actor(a))); database.actors.ForEach(a => FindPortraitTexture(a)); }