示例#1
0
    public static DataChangeEvent Serdes(DataChangeEvent e, AssetMapping mapping, ISerializer s)
    {
        if (s == null)
        {
            throw new ArgumentNullException(nameof(s));
        }
        if (s.IsWriting() && e == null)
        {
            throw new ArgumentNullException(nameof(e));
        }

        ChangeProperty property = s.EnumU8(nameof(ChangeProperty), e?.ChangeProperty ?? ChangeProperty.Unk0);

        return(property switch
        {
            ChangeProperty.Unk0 => ChangeUnk0Event.Serdes((ChangeUnk0Event)e, s),
            ChangeProperty.Health => ChangeHealthEvent.Serdes((ChangeHealthEvent)e, mapping, s),
            ChangeProperty.Mana => ChangeManaEvent.Serdes((ChangeManaEvent)e, mapping, s),
            ChangeProperty.Status => ChangeStatusEvent.Serdes((ChangeStatusEvent)e, mapping, s),
            ChangeProperty.Language => ChangeLanguageEvent.Serdes((ChangeLanguageEvent)e, mapping, s),
            ChangeProperty.Experience => ChangeExperienceEvent.Serdes((ChangeExperienceEvent)e, mapping, s),
            ChangeProperty.UnkB => ChangeUnkBEvent.Serdes((ChangeUnkBEvent)e, s),
            ChangeProperty.UnkC => ChangeUnkCEvent.Serdes((ChangeUnkCEvent)e, s),
            ChangeProperty.Item => ChangeItemEvent.Serdes((ChangeItemEvent)e, mapping, s),
            ChangeProperty.Gold => ChangeGoldEvent.Serdes((ChangeGoldEvent)e, mapping, s),
            ChangeProperty.Food => ChangeFoodEvent.Serdes((ChangeFoodEvent)e, mapping, s),
            _ => throw new FormatException($"Unexpected data change type \"{property}\"")
        });
示例#2
0
        private void ChangeLanguage(string language)
        {
            var culture    = CultureInfo.GetCultureInfo(language);
            var oldCulture = Dispatcher.Thread.CurrentCulture;

            Dispatcher.Thread.CurrentCulture   = culture;
            Dispatcher.Thread.CurrentUICulture = culture;

            ChangeLanguageEvent changeLanguageEvent = new ChangeLanguageEvent(culture.Name, oldCulture.Name);

            SimpleEventBus.GetDefaultEventBus().Post(changeLanguageEvent, TimeSpan.Zero);

            WpfConsole.WriteLine("Change localization on: " + culture.Name + " from: " + oldCulture.Name);
        }
示例#3
0
 private void cmbLanguage_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if ((string)((ComboBoxItem)cmbLanguage.SelectedItem).Content == "English")
     {
         Settings.Default.Language = "EN";
         Settings.Default.Save();
         RefreshLanguage();
         ChangeLanguageEvent?.Invoke(sender, e);
     }
     else if ((string)((ComboBoxItem)cmbLanguage.SelectedItem).Content == "日本語")
     {
         Settings.Default.Language = "JP";
         Settings.Default.Save();
         RefreshLanguage();
         ChangeLanguageEvent?.Invoke(sender, e);
     }
 }
示例#4
0
    public static ChangeLanguageEvent Serdes(ChangeLanguageEvent e, AssetMapping mapping, ISerializer s)
    {
        if (s == null)
        {
            throw new ArgumentNullException(nameof(s));
        }
        e ??= new ChangeLanguageEvent();
        e.Operation = s.EnumU8(nameof(Operation), e.Operation);
        e.Unk3      = s.UInt8(nameof(Unk3), e.Unk3);
        int zeroed = s.UInt8(null, 0);

        e.PartyMemberId = PartyMemberId.SerdesU8(nameof(PartyMemberId), e.PartyMemberId, mapping, s);
        e.Language      = s.EnumU8(nameof(Language), e.Language);
        s.UInt8(null, 0);
        zeroed += s.UInt16(null, 0);
        s.Assert(zeroed == 0, "ChangeLanguageEvent: Expected byte 4 to be 0");
        return(e);
    }
示例#5
0
 public void HandleOutputEvent(ChangeLanguageEvent changeLanguageEvent)
 {
     UpdateLanguage();
 }