예제 #1
0
    static void Init()
    {
        // Get existing open window or if none, make a new one:
        ConversationEditor window = (ConversationEditor)GetWindow(typeof(ConversationEditor));

        window.Show();
        window.minSize = new Vector2(450, 450);
        GUIContent content = new GUIContent("Editor");

        window.titleContent = content;
        conversations.Clear();

        Conversation[] conver = Resources.LoadAll <Conversation>("Conversations");
        foreach (var item in conver)
        {
            string[] str = AssetDatabase.GetAssetPath(item).Split(new char[] { '/', '.' });
            conversations.Add(item);
            item.EditConversationName(str[str.Length - 2]);
        }

        if (conversations.Count > 0 && selectedConversation == null)
        {
            selectedConversation = conversations[0];
            CreateTreeStructure.AssignPositionToNodes(selectedConversation, nodeWidth, nodeHeight, nodeHorSpace, nodeVerSpace);
        }

        isAddingDialogue = false;

        InitializeTexture();
    }
        public void ExportingConversationIncludingReport()
        {
            var exporter = new ConversationExporter();

            string[] args        = { "--report" };
            var      editorCofig = new EditorConfiguration(args);
            var      editor      = new ConversationEditor(editorCofig);
            var      logCreator  = new LogCreator(editorCofig);

            exporter.ExportConversation("chat.txt", "chatReport.json", editor, logCreator);

            var serializedConversation = new StreamReader(new FileStream("chatReport.json", FileMode.Open)).ReadToEnd();

            var savedConversation = JsonConvert.DeserializeObject <Conversation>(serializedConversation);

            Assert.That(savedConversation.name, Is.EqualTo("My Conversation"));

            var messages   = savedConversation.messages.ToList();
            var reportList = savedConversation.activity.ToList();

            Assert.That(messages[0].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470901)));
            Assert.That(messages[0].senderId, Is.EqualTo("bob"));
            Assert.That(messages[0].content, Is.EqualTo("Hello there!"));

            Assert.That(reportList[0].sender, Is.EqualTo("bob"));
            Assert.That(reportList[0].count, Is.EqualTo(3));

            Assert.That(reportList[1].sender, Is.EqualTo("mike"));
            Assert.That(reportList[1].count, Is.EqualTo(2));

            Assert.That(reportList[2].sender, Is.EqualTo("angus"));
            Assert.That(reportList[2].count, Is.EqualTo(2));
        }
예제 #3
0
        /// <summary>
        /// Exports the conversation at <paramref name="inputFilePath"/> as JSON to <paramref name="outputFilePath"/>.
        /// </summary>
        /// <param name="inputFilePath">
        /// The input file path.
        /// </param>
        /// <param name="outputFilePath">
        /// The output file path.
        /// </param>
        /// <exception cref="ArgumentException">
        /// Thrown when a path is invalid.
        /// </exception>
        /// <exception cref="Exception">
        /// Thrown when something bad happens.
        /// </exception>
        public void ExportConversation(string inputFilePath, string outputFilePath, ConversationEditor editor, LogCreator logCreator)
        {
            var          conversationReader = new ConversationReader(inputFilePath);
            Conversation conversation       = conversationReader.ReadConversation();

            editor.EditConversation(conversation);

            var outputLog = logCreator.CreateLog(conversation);

            LogWriter logWriter = new LogWriter();

            logWriter.WriteToOutput(outputLog, outputFilePath);

            Console.WriteLine("Conversation exported from '{0}' to '{1}'", inputFilePath, outputFilePath);
        }
        public void ExportingConversationExportsConversation()
        {
            var exporter = new ConversationExporter();

            string[] args        = { };
            var      editorCofig = new EditorConfiguration(args);
            var      editor      = new ConversationEditor(editorCofig);
            var      logCreator  = new LogCreator(editorCofig);

            exporter.ExportConversation("chat.txt", "chat.json", editor, logCreator);

            var serializedConversation = new StreamReader(new FileStream("chat.json", FileMode.Open)).ReadToEnd();

            var savedConversation = JsonConvert.DeserializeObject <Conversation>(serializedConversation);

            Assert.That(savedConversation.name, Is.EqualTo("My Conversation"));

            var messages = savedConversation.messages.ToList();

            Assert.That(messages[0].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470901)));
            Assert.That(messages[0].senderId, Is.EqualTo("bob"));
            Assert.That(messages[0].content, Is.EqualTo("Hello there!"));

            Assert.That(messages[1].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470905)));
            Assert.That(messages[1].senderId, Is.EqualTo("mike"));
            Assert.That(messages[1].content, Is.EqualTo("how are you?"));

            Assert.That(messages[2].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470906)));
            Assert.That(messages[2].senderId, Is.EqualTo("bob"));
            Assert.That(messages[2].content, Is.EqualTo("I'm good thanks, do you like pie?"));

            Assert.That(messages[3].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470910)));
            Assert.That(messages[3].senderId, Is.EqualTo("mike"));
            Assert.That(messages[3].content, Is.EqualTo("no, let me ask Angus..."));

            Assert.That(messages[4].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470912)));
            Assert.That(messages[4].senderId, Is.EqualTo("angus"));
            Assert.That(messages[4].content, Is.EqualTo("Hell yes! Are we buying some pie?"));

            Assert.That(messages[5].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470914)));
            Assert.That(messages[5].senderId, Is.EqualTo("bob"));
            Assert.That(messages[5].content, Is.EqualTo("No, just want to know if there's anybody else in the pie society..."));

            Assert.That(messages[6].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470915)));
            Assert.That(messages[6].senderId, Is.EqualTo("angus"));
            Assert.That(messages[6].content, Is.EqualTo("YES! I'm the head pie eater there..."));
        }
예제 #5
0
        /// <summary>
        /// The application entry point.
        /// </summary>
        /// <param name="args">
        /// The command line arguments.
        /// </param>
        /// <summary>
        /// The message content.
        /// </summary>
        static void Main(string[] args)
        {
            // We use Microsoft.Extensions.Configuration.CommandLine and Configuration.Binder to read command line arguments.
            var configuration         = new ConfigurationBuilder().AddCommandLine(args).Build();
            var exporterConfiguration = configuration.Get <ExporterConfiguration>();

            // Building a configuration of the editing of the conversation -
            // couldn't get a boolean flag to work in ExporterConfiguration
            var editorConfiguration = new EditorConfiguration(args);
            var conversationEditor  = new ConversationEditor(editorConfiguration);

            var logCreator = new LogCreator(editorConfiguration);

            var conversationExporter = new ConversationExporter();

            conversationExporter.ExportConversation(exporterConfiguration.InputFilePath,
                                                    exporterConfiguration.OutputFilePath, conversationEditor, logCreator);
        }
예제 #6
0
	public void InitWindows()
	{
		Skin = (GUISkin)Resources.Load("GUI/EditorGUI");
		
		//windows init
		npcEditor = new NPCEditor(Skin, this);

		armorEditor = new ArmorEditor(Skin, this);

		arenaEditor = new ArenaEditor(Skin, this);

		enemyEditor = new EnemyEditor(Skin, this);

		currencyEditor = new CurrencyEditor(Skin, this);
		
		conversationEditor = new ConversationEditor(Skin, this);
		
		shopEditor = new ShopEditor(Skin, this);

		questEditor = new QuestEditor(Skin, this);
		
		itemEditor = new  ItemEditor(Skin, this);

		minigameEditor = new MiniGameEditor(Skin, this);

		serviceEditor = new ServiceEditor(Skin, this);

		npcQuestEditor = new NPCQuestEditor(Skin, this);

		townEditor = new TownEditor(Skin, this);

		badgeEditor = new BadgeEditor(Skin, this);
		
		constructionEditor = new ConstructionEditor(Skin, this);

		loadWindows = false;
	}
예제 #7
0
        public void ExportingConversationWithFilters()
        {
            var exporter = new ConversationExporter();

            string[] args        = { "--filterByUser", "bob", "--filterByKeyword", "society", "--blacklist", "pie", "--report" };
            var      editorCofig = new EditorConfiguration(args);
            var      editor      = new ConversationEditor(editorCofig);
            var      logCreator  = new LogCreator(editorCofig);

            exporter.ExportConversation("chat.txt", "chatFilter.json", editor, logCreator);

            var serializedConversation = new StreamReader(new FileStream("chatFilter.json", FileMode.Open)).ReadToEnd();

            var savedConversation = JsonConvert.DeserializeObject <Conversation>(serializedConversation);

            Assert.That(savedConversation.name, Is.EqualTo("My Conversation"));

            var messages   = savedConversation.messages.ToList();
            var reportList = savedConversation.activity.ToList();

            Assert.That(messages[0].timestamp, Is.EqualTo(DateTimeOffset.FromUnixTimeSeconds(1448470914)));
            Assert.That(messages[0].senderId, Is.EqualTo("bob"));
            Assert.That(messages[0].content, Is.EqualTo("No, just want to know if there's anybody else in the *redacted* society..."));
        }
예제 #8
0
    private static void OpenWindow()
    {
        ConversationEditor window = GetWindow <ConversationEditor>();

        window.titleContent = new GUIContent("Conversation Editor");
    }
예제 #9
0
    public static void OpenConversationWindow()
    {
        ConversationEditor _window = GetWindow <ConversationEditor>();

        _window.titleContent = new GUIContent("Conversation Editor");
    }