using System;

namespace Celeste.Mod.DownTeam_AstralContest;

public class DownTeam_AstralContestModule : EverestModule {
    public static DownTeam_AstralContestModule Instance { get; private set; }

    public override Type SettingsType => typeof(DownTeam_AstralContestModuleSettings);
    public static DownTeam_AstralContestModuleSettings Settings => (DownTeam_AstralContestModuleSettings) Instance._Settings;

    public override Type SessionType => typeof(DownTeam_AstralContestModuleSession);
    public static DownTeam_AstralContestModuleSession Session => (DownTeam_AstralContestModuleSession) Instance._Session;

    public override Type SaveDataType => typeof(DownTeam_AstralContestModuleSaveData);
    public static DownTeam_AstralContestModuleSaveData SaveData => (DownTeam_AstralContestModuleSaveData) Instance._SaveData;

    public DownTeam_AstralContestModule() {
        Instance = this;
#if DEBUG
        // debug builds use verbose logging
        Logger.SetLogLevel(nameof(DownTeam_AstralContestModule), LogLevel.Verbose);
#else
        // release builds use info logging to reduce spam in log files
        Logger.SetLogLevel(nameof(DownTeam_AstralContestModule), LogLevel.Info);
#endif
    }

    public override void Load() {
        ModifiedShadowDashController.Load();
    }

    public override void Unload() {
        ModifiedShadowDashController.Unload();
    }
}