コード例 #1
0
    public SettingsManager(GeneralSettings settings)
    {
        _settings = settings ?? throw new ArgumentNullException(nameof(settings));

        On <SetLanguageEvent>(e =>
        {
            if (_settings.Language == e.Language)
            {
                return;
            }
            _settings.Language = e.Language;
        });

        On <SetMusicVolumeEvent>(e => _settings.MusicVolume = e.Value);
        On <SetFxVolumeEvent>(e => _settings.FxVolume       = e.Value);
        On <SetCombatDelayEvent>(e => _settings.CombatDelay = e.Value);
        On <DebugFlagEvent>(e =>
        {
            _settings.DebugFlags = (DebugFlags)CoreUtil.UpdateFlag((uint)_settings.DebugFlags, e.Operation, (uint)e.Flag);
            TraceAttachment      = (_settings.DebugFlags & DebugFlags.TraceAttachment) != 0;
        });
        On <SpecialEvent>(e => _settings.Special1  = CoreUtil.UpdateValue(_settings.Special1, e.Operation, e.Argument));
        On <Special2Event>(e => _settings.Special2 = CoreUtil.UpdateValue(_settings.Special2, e.Operation, e.Argument));
        On <EngineFlagEvent>(e => _settings.Flags  = (EngineFlags)CoreUtil.UpdateFlag((uint)_settings.Flags, e.Operation, (uint)e.Flag));
    }
コード例 #2
0
 protected GeneralSettings()
 {
     On <SetLanguageEvent>(e =>
     {
         if (Language == e.Language)
         {
             return;
         }
         Language = e.Language;
     });
     On <SetMusicVolumeEvent>(e => MusicVolume = e.Value);
     On <SetFxVolumeEvent>(e => FxVolume       = e.Value);
     On <SetCombatDelayEvent>(e => CombatDelay = e.Value);
     On <DebugFlagEvent>(e =>
     {
         DebugFlags      = (DebugFlags)CoreUtil.UpdateFlag((uint)DebugFlags, e.Operation, (uint)e.Flag);
         TraceAttachment = (DebugFlags & DebugFlags.TraceAttachment) != 0;
     });
     On <SpecialEvent>(e => Special1  = CoreUtil.UpdateValue(Special1, e.Operation, e.Argument));
     On <Special2Event>(e => Special2 = CoreUtil.UpdateValue(Special2, e.Operation, e.Argument));
     On <EngineFlagEvent>(e => Flags  = (EngineFlags)CoreUtil.UpdateFlag((uint)Flags, e.Operation, (uint)e.Flag));
 }
コード例 #3
0
ファイル: Settings.cs プロジェクト: Metibor/ualbion
 protected Settings()
 {
     On <SetLanguageEvent>(e =>
     {
         if (Language == e.Language)
         {
             return;
         }
         Language = e.Language;
         Raise(e); // Re-raise to ensure any consumers who received it before Settings will get it again.
     });
     On <SetMusicVolumeEvent>(e => MusicVolume = e.Value);
     On <SetFxVolumeEvent>   (e => FxVolume    = e.Value);
     On <SetCombatDelayEvent>(e => CombatDelay = e.Value);
     On <DebugFlagEvent>     (e =>
     {
         DebugFlags      = (DebugFlags)CoreUtil.UpdateFlag((uint)DebugFlags, e.Operation, (uint)e.Flag);
         TraceAttachment = (DebugFlags & DebugFlags.TraceAttachment) != 0;
     });
     On <SpecialEvent>       (e => Special1 = CoreUtil.UpdateValue(Special1, e.Operation, e.Argument));
     On <Special2Event>      (e => Special2 = CoreUtil.UpdateValue(Special2, e.Operation, e.Argument));
     On <EngineFlagEvent>(e => Flags        = (EngineFlags)CoreUtil.UpdateFlag((uint)Flags, e.Operation, (uint)e.Flag));
 }