public void HandleKanji(string OriginalKanji, string Response) { string SingleResponse = HandleMultipleResponses(OriginalKanji, Response); KanjiClass NewKanji = new KanjiClass(); NewKanji.Kanji = GetKanjiFromLine(SingleResponse); NewKanji.Meanings = GetMeaningsFromLine(SingleResponse); NewKanji.HaveStroke = false; if (EnableStrokeDownload == "true") { string KanjiID = GetKanjiIDFromLine(SingleResponse); string FileName = MediaFolder + "/" + KanjiID + ".gif"; if (DownloadStroke(KanjiID, FileName)) { Console.WriteLine("The download was succesfull!"); NewKanji.HaveStroke = true; NewKanji.StrokeOrder = KanjiID + ".gif"; } else { Console.Write("This word does not have a stroke file!"); using (StreamWriter log = File.AppendText(LogFile)) { string Error = ": No stroke file was found for the word: " + NewKanji.Kanji; log.WriteLine(DateTime.Now.ToString() + Error); } } } KanjiList.Add(NewKanji); }
public static void AddKanji(Kanji kanji) { if (KanjiLibrary == null) { KanjiLibrary = new KanjiList(); } KanjiLibrary.Library.Add(kanji); }
public static void UpdateKanjiFile(string category, KanjiList list) { XmlSerializer serializer = new XmlSerializer(typeof(KanjiList)); var file = System.IO.File.Create("XML/" + category + ".xml"); serializer.Serialize(file, list); file.Close(); }
public static KanjiList GetKanjiListFromXML(string category) { XmlReader x = XmlReader.Create("XML/" + category + ".xml"); XmlSerializer serializer = new XmlSerializer(typeof(KanjiList)); string text = File.ReadAllText("XML/" + category + ".xml"); KanjiList list = (KanjiList)serializer.Deserialize(x); x.Close(); return(list); }
private void deleteObject() { if (mainMenu.SelectItemNumber == 1) { if (kanjiMenu.SelectItemNumber == 1) { Components.Remove(this.kanjiGame); kanjiGame.Dispose(); kanjiGame = null; } else if (kanjiMenu.SelectItemNumber == 2) { Components.Remove(this.compositionGame); compositionGame.Dispose(); compositionGame = null; } else if (kanjiMenu.SelectItemNumber == 3) { Components.Remove(this.kanjiList); kanjiList.Dispose(); kanjiList = null; } else { } } else if (mainMenu.SelectItemNumber == 2) { if (vocabularyMenu.SelectItemNumber == 1) { Components.Remove(this.vocabularyGame); vocabularyGame.Dispose(); vocabularyGame = null; } else if (vocabularyMenu.SelectItemNumber == 2) { Components.Remove(this.vocabularyGame2); vocabularyGame2.Dispose(); vocabularyGame2 = null; } else if (vocabularyMenu.SelectItemNumber == 3) { Components.Remove(this.vocabularyList); vocabularyList.Dispose(); vocabularyList = null; } else { } } else { } }
private static void LoadKanjiXML(string file) { string xmlText = (Resources.Load(file) as TextAsset).text; var serializer = new XmlSerializer(typeof(KanjiList)); using (var reader = new StringReader(xmlText)) { KanjiLibrary = serializer.Deserialize(reader) as KanjiList; } KanjiLibrary.FromRaw(); }
public static async Task <KanjiList> DownloadKanjiSet(JArray kanjiToDownload) { //Create Object for each object, download the data. KanjiList newSet = new KanjiList(); HttpClient http = new HttpClient(); for (int i = 0; i < kanjiToDownload.Count; i++) { var k = Task.Run(async() => await DownloadKanji(http, kanjiToDownload[i].ToString())).Result; newSet.kanji.Add(k); } return(newSet); }
public static bool CheckSetAvailability(string set) { //First, check if kanji.xml is empty. KanjiList list = GetKanjiListFromXML(set); bool needToDownload = false; if (!(list.kanji.Count > 0)) { needToDownload = true; //Then, download data for each Kanji for our category JArray ja = Task.Run(async() => await QueueKanjiSet(set)).Result; list = Task.Run(async() => await DownloadKanjiSet(ja)).Result; UpdateKanjiFile(set, list); //https://kanjiapi.dev/v1/kanji/grade-1 //Take each Kanji from this list, and download the data for it. //Then, write that data to our XML file. } if (needToDownload) { } return((list.kanji.Count > 0) ? true : false); }
/// <summary> /// This is called when the game should draw itself. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); Vector2 position = new Vector2(d.X, d.Y); if (mainMenu.SelectItemNumber == 0) { mainMenu.Draw(gameTime, d, position); } else if (mainMenu.SelectItemNumber == 1) { if (kanjiMenu.SelectItemNumber == 0) { kanjiMenu.Draw(gameTime, d, position); } else if (kanjiMenu.SelectItemNumber == 1) { if (kanjiGame == null) { this.kanjiGame = new KanjiGame(this); Components.Add(this.kanjiGame); } kanjiGame.Draw(gameTime, d, position); kanjiGame.Update(gameTime); } else if (kanjiMenu.SelectItemNumber == 2) { if (compositionGame == null) { this.compositionGame = new CompositionGame(this); Components.Add(this.compositionGame); } compositionGame.Draw(gameTime, d, position); compositionGame.Update(gameTime); } else if (kanjiMenu.SelectItemNumber == 3) { if (kanjiList == null) { this.kanjiList = new KanjiList(this); Components.Add(this.kanjiList); } kanjiList.Draw(gameTime, d, position); kanjiList.Update(gameTime); } else { } back(position); } else if (mainMenu.SelectItemNumber == 2) { if (vocabularyMenu.SelectItemNumber == 0) { vocabularyMenu.Draw(gameTime, d, position); } else if (vocabularyMenu.SelectItemNumber == 1) { if (vocabularyGame == null) { this.vocabularyGame = new VocabularyGame(this); Components.Add(this.vocabularyGame); } vocabularyGame.Draw(gameTime, d, position); } else if (vocabularyMenu.SelectItemNumber == 2) { if (vocabularyGame2 == null) { this.vocabularyGame2 = new VocabularyGame2(this); Components.Add(this.vocabularyGame2); } vocabularyGame2.Draw(gameTime, d, position); } else if (vocabularyMenu.SelectItemNumber == 3) { if (vocabularyList == null) { this.vocabularyList = new VocabularyList(this); Components.Add(this.vocabularyList); } vocabularyList.Draw(gameTime, d, position); vocabularyList.Update(gameTime); } else { } back(position); } else { back(position); } spriteBatch.Begin(); if (d.X > 0 && d.X < GraphicsDevice.Viewport.Width && d.Y > 0 && d.Y < GraphicsDevice.Viewport.Height) { spriteBatch.Draw(cursor, position, null, Color.White, 0.0f, textureCenter, 1.0f, SpriteEffects.None, 0.0f); } spriteBatch.End(); base.Draw(gameTime); }