private void loadStoryBtn_Click(object sender, EventArgs e) { using (var file = new FileStream(storyFilePath.Text, FileMode.Open, FileAccess.Read)) { var reader = new StoryReader(); Story = reader.Read(file); databaseSelectorCb.Items.Clear(); foreach (var database in Story.Databases) { var name = "(Unnamed)"; var owner = database.Value.OwnerNode; if (owner != null && owner.Name.Length > 0) { name = String.Format("{0}/{1}", owner.Name, owner.NameIndex); } else if (owner != null) { name = String.Format("<{0}>", owner.TypeName()); } name += String.Format(" #{0} ({1} rows)", database.Key, database.Value.Facts.Count); databaseSelectorCb.Items.Add(name); } } }
private static Story LoadStory(String path) { string extension = Path.GetExtension(path).ToLower(); Stream storyStream; switch (extension) { case ".lsv": storyStream = LoadStoryStreamFromSave(path); break; case ".osi": storyStream = LoadStoryStreamFromFile(path); break; default: throw new Exception($"Unsupported story/save extension: {extension}"); } using (storyStream) { var reader = new StoryReader(); return(reader.Read(storyStream)); } }
public void LoadStoryFileByName(string storyFileName) { if (m_storyFileName == storyFileName) { return; } //Assets/Resources/STORY_FOLDER + storyFileName StoryReader storyReader = new StoryReader(STORY_FOLDER + storyFileName); if (storyReader != null) { m_storys = storyReader; } bool result = m_storys.GetLoadResult(); if (result == true) { m_storyFileName = storyFileName; if (!m_readLabel.ContainsKey(m_storyFileName)) { m_readLabel.Add(m_storyFileName, new List <string>()); } } }
private void LoadStory(Stream s) { var reader = new StoryReader(); _story = reader.Read(s); databaseSelectorCb.Items.Clear(); foreach (KeyValuePair <uint, Database> database in _story.Databases) { var name = "(Unnamed)"; Node owner = database.Value.OwnerNode; if (owner != null) { name = owner.Name.Length > 0 ? $"{owner.Name}({owner.NumParams})" : $"<{owner.TypeName()}>"; } name += $" #{database.Key} ({database.Value.Facts.Count} rows)"; databaseSelectorCb.Items.Add(name); if (databaseSelectorCb.Items.Count > 0) { databaseSelectorCb.SelectedIndex = 0; } } }
public void TestFirstWords() { var sr = new StringReader(@"This is a simple sentence. This is another. "); _target = new StoryReader(sr); var sentences = _target.ReadStory(); var firstWord = sentences.FirstWords().First(); firstWord.Word.Should().Be("This"); }
private void StoryStringListTest() { StoryReader storyReader = new StoryReader(); Story story = new Story(); story = storyReader.GetWholeStory(); foreach (string str in story.text) { richTextBox1.Text += (str + "\n"); } }
public void TestSmallSentence() { var sr = new StringReader(@"Hey!"); _target = new StoryReader(sr); var sentences = _target.ReadStory(); Assert.AreEqual(1, sentences.SentencesOfLength(1).Count()); var sentence = sentences.SentencesOfLength(1).Single(); sentence.Words[0].Word.Should().Be("Hey"); sentence.Words[1].Word.Should().Be("!"); sentence.Words[1].IsEndOfSentence().Should().BeTrue(); }
public void LoadAndLearn() { var wvl =new WordVectorLoader("wikipedia_vectors.txt"); var sw = Stopwatch.StartNew(); _wordVectors = wvl.LoadVectors(); sw.Stop(); Debug.WriteLine("Loaded word vectors in {0} ms", sw.ElapsedMilliseconds); var s = new StoryReader("WikiJunior_Biology.txt"); var sentences = s.ReadStory(); _contextMaps = new ContextMaps(); _sentenceLearner = new SentenceLearner(_wordVectors, sentences, _contextMaps); var plan = _sentenceLearner.PreparePlan(12); _sentenceLearner.ExecutePlan(plan, MorphoSyntacticContext.InitialState()); }
public void TestReadTwoSentences() { var sr = new StringReader(@"This is a simple sentence. And this is another. "); _target = new StoryReader(sr); var sentences = _target.ReadStory(); Assert.AreEqual(1, sentences.SentencesOfLength(5).Count()); Assert.AreEqual(1, sentences.SentencesOfLength(4).Count()); var sentence = sentences.SentencesOfLength(5).Single(); Assert.AreEqual("This", sentence.Words[0].Word); sentence = sentences.SentencesOfLength(4).Single(); Assert.AreEqual("And", sentence.Words[0].Word); Assert.AreEqual("another", sentence.Words[3].Word); }
private void Update() { //玩家靠近出現提示 Collider2D[] colliders = new Collider2D[10]; ContactFilter2D contactFilter = new ContactFilter2D(); contactFilter.SetLayerMask(LayerMask.GetMask("Player")); contactFilter.useTriggers = true; int num = conversation_trigger_range.OverlapCollider(contactFilter, colliders); if (num > 0 && !isTalking) { Debug.Log(colliders[0].gameObject.name); if (hint != null) { hint.SetActive(true); } //開始對話 if (Input.GetKeyDown(start_key) || autoTrigger) { isTalking = true; /* How you deal with player control while dialog start: EXAMPLE * if (lock_player_control) * { * player.GetComponent<PlayerControl>().enabled = false; * } */ //創建UI reader = Instantiate(reader_prefab, Vector3.zero, Quaternion.identity); //在資料夾中尋找//TODO:該語言包無此文檔的處理 var textAssets = Resources.LoadAll <TextAsset>(rootFolider + RPGCore.lang.ToString()); reader.StartConversation(textAssets.Single(s => s.name.Equals(text.name)).text, FinishCallBack); //reader.StartConversation(text_data_path, FinishCallBack); } } else { if (hint != null) { hint.SetActive(false); } } }
public void LoadStoryFileByName(string storyFileName) { if (m_storyFileName == storyFileName) { return; } //Assets/Resources/STORY_FOLDER + storyFileName m_storys = new StoryReader(STORY_FOLDER + storyFileName); bool result = m_storys.GetLoadResult(); if (result == true) { m_storyFileName = storyFileName; } }
public void TestReadOneSentence() { var sr = new StringReader(@"This is a simple sentence. "); _target = new StoryReader(sr); var sentences = _target.ReadStory(); Assert.AreEqual(1,sentences.SentencesOfLength(5).Count()); Assert.AreEqual(0,sentences.SentencesOfLength(4).Count()); var sentence = sentences.SentencesOfLength(5).Single(); Assert.AreEqual("This",sentence.Words[0].Word); Assert.AreEqual("sentence",sentence.Words[4].Word); Assert.AreEqual(".",sentence.Words[5].Word); Assert.IsTrue(sentence.Words[5].IsEndOfSentence(), "Expected '.' to end sentence"); Assert.AreEqual(1, sentences.FirstWords().ToList().Count, "Expected 1 first word"); Assert.AreEqual("This",sentences.FirstWords().Single().Word, "Wrong first word"); }
static void DebugDump(string storyPath, string debugPath) { Story story; using (var file = new FileStream(storyPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { var reader = new StoryReader(); story = reader.Read(file); } using (var debugFile = new FileStream(debugPath, FileMode.Create, FileAccess.Write)) { using (var writer = new StreamWriter(debugFile)) { story.DebugDump(writer); } } }
public void TestTrain2() { var stream = new StringReader(@"Hey! Look here!"); var storyReader = new StoryReader(stream); var sentences = storyReader.ReadStory(); var wordVectors = new WordVectors(10); var contextMaps = new ContextMaps(); wordVectors.TryAdd("Hey", new WordVector { Name = "Hey" }); wordVectors.TryAdd("Look", new WordVector { Name = "Look" }); wordVectors.TryAdd("here", new WordVector { Name = "here" }); wordVectors.TryAdd("Test", new WordVector { Name = "Test" }); wordVectors.TryAdd("!", new WordVector { Name = "!" }); var target = new SentenceLearner(wordVectors, sentences, contextMaps); var plan = target.PreparePlan(4); target.ExecutePlan(plan, MorphoSyntacticContext.InitialState()); var weights = target.GetWeightsForWord(new WrittenWord("Hey")); }
public void TestTrain() { var stream = new StringReader(@"Hey! Look here!"); var storyReader = new StoryReader(stream); var sentences = storyReader.ReadStory(); var wordVectors = new WordVectors(10); wordVectors.TryAdd("Hey", new WordVector { Name = "Hey" }); wordVectors.TryAdd("Look", new WordVector { Name = "Look" }); wordVectors.TryAdd("here", new WordVector { Name = "here" }); wordVectors.TryAdd("Test", new WordVector { Name = "Test" }); wordVectors.TryAdd("!", new WordVector { Name = "!" }); var contextMaps = new ContextMaps(); var target = new SentenceLearner(wordVectors, sentences, contextMaps); var trainingPlan = target.PreparePlan(4); //should train Hey,ctx0,1; Look,ctx0,0; here,ctx0,-1, here,ctx1,1 trainingPlan.ContainsPlanStep(new WrittenWord("Hey"), TrainingOutput.Complete).Should().BeTrue(); trainingPlan.ContainsPlanStep(new WrittenWord("Look"), TrainingOutput.Incomplete).Should().BeTrue(); trainingPlan.ContainsPlanStep(new WrittenWord("Test"), TrainingOutput.Incomplete).Should().BeFalse(); }
private static void Main(string[] args) { Console.WriteLine("Use the unit tests"); var loader = new WordVectorLoader(args[0]); var vectors = loader.LoadVectors(); string fileName; if (args.Length == 1) { Console.WriteLine("Story file:"); fileName = Console.ReadLine(); } else { fileName = args[1]; } var storyReader = new StoryReader(fileName); var sentences = storyReader.ReadStory(); var firstWord = sentences.FirstWords().FirstOrDefault(); Console.Write(firstWord != null ? firstWord.Word : "empty file"); var contextMaps = new ContextMaps(); var sentenceLearner = new SentenceLearner(vectors, sentences, contextMaps); var plan = sentenceLearner.PreparePlan(4); sentenceLearner.ExecutePlan(plan, MorphoSyntacticContext.InitialState()); //sentenceLearner.Learn(1); while (true) { Console.Write("\n> "); var stdinReader = new StoryReader(Console.In); var sentence = stdinReader.ReadSentence(); if (sentence.Words[0].IsEndOfSentence()) break; var result = sentenceLearner.Run(sentence); Console.WriteLine(result); } Console.WriteLine("Quitting"); }
private void RunTasks() { if (ExtractAll) { DoExtractPackage(); } if (ConvertToLsx) { DoLsxConversion(); } FileManager.TryToCreateDirectory(Path.Combine(DataDumpPath, "Dummy")); ReportProgress(50, "Loading meta.lsf ..."); SaveMeta = LoadPackagedResource("meta.lsf"); ReportProgress(52, "Loading globals.lsf ..."); SaveGlobals = LoadPackagedResource("globals.lsf"); ReportProgress(60, "Dumping mod list ..."); if (DumpModList) { var modListPath = Path.Combine(DataDumpPath, "ModList.txt"); DumpMods(modListPath); } ReportProgress(62, "Dumping variables ..."); if (DumpGlobalVars) { var varsPath = Path.Combine(DataDumpPath, "GlobalVars.txt"); DumpVariables(varsPath, true, false, false); } if (DumpCharacterVars) { var varsPath = Path.Combine(DataDumpPath, "CharacterVars.txt"); DumpVariables(varsPath, false, true, false); } if (DumpItemVars) { var varsPath = Path.Combine(DataDumpPath, "ItemVars.txt"); DumpVariables(varsPath, false, false, true); } ReportProgress(70, "Loading story ..."); LSLib.LS.Node storyNode = SaveGlobals.Regions["Story"].Children["Story"][0]; var storyStream = new MemoryStream(storyNode.Attributes["Story"].Value as byte[]); var reader = new StoryReader(); SaveStory = reader.Read(storyStream); if (DumpStoryGoals) { DumpGoals(); } if (DumpStoryDatabases) { ReportProgress(90, "Dumping databases ..."); var dbDumpPath = Path.Combine(DataDumpPath, "Databases.txt"); using (var dbDumpStream = new FileStream(dbDumpPath, FileMode.Create, FileAccess.Write, FileShare.Read)) { var dbDumper = new DatabaseDumper(dbDumpStream); dbDumper.DumpUnnamedDbs = IncludeUnnamedDatabases; dbDumper.DumpAll(SaveStory); } } ReportProgress(100, ""); }
public void RunSentences() { LoadAndLearn(); var stream = new StringReader(@"A tiger has stripes."); var storyReader = new StoryReader(stream); var sentence = storyReader.ReadSentence(); var result = _sentenceLearner.Run(sentence); Debug.Print(result); stream = new StringReader(@"A crocodile has sharp teeth."); storyReader = new StoryReader(stream); sentence = storyReader.ReadSentence(); result = _sentenceLearner.Run(sentence); Debug.Print(result); }
private void OnValidate() { current = this; }
public void Clicked() { StoryReader.ReturnInput(gameObject.name); }