Example #1
0
        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);
 }
Example #3
0
        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();
        }
Example #4
0
        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);
        }
Example #5
0
 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();
    }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        /// <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);
        }