/// <summary>
 /// Initializes the needed classes for the mod.
 /// </summary>
 private void InitializeClasses()
 {
     PackHelper    = new ContentPackHelper(this);
     Dresser       = new DresserHandler(this, Config);
     PlayerLoader  = new CharacterLoader(this, PackHelper, Dresser);
     MenuPatcher   = new SaveLoadMenuPatcher(this, PlayerLoader);
     HarmonyHelper = new HarmonyHelper(this);
 }
Exemple #2
0
        /// <summary>The mods entry point.</summary>>
        /// <param name="helper">SMAPI's mod helper</param>
        public override void Entry(IModHelper helper)
        {
            //Load the config
            Config = helper.ReadConfig <ModConfig>();

            //Initialize classes
            PackHelper   = new ContentPackHelper(this);
            Dresser      = new DresserHandler(this, Config);
            PlayerLoader = new CharacterLoader(this, PackHelper, Dresser);
            MenuPatcher  = new SaveLoadMenuPatcher(this, PlayerLoader);

            //Set up the events
            helper.Events.Input.ButtonPressed      += OnButtonPressed;
            helper.Events.GameLoop.GameLaunched    += OnGameLaunched;
            helper.Events.GameLoop.SaveLoaded      += OnSaveLoaded;
            helper.Events.GameLoop.ReturnedToTitle += OnReturnedToTitle;

            //Check if SpaceCore is Installed
            IsSpaceCoreInstalled = Helper.ModRegistry.IsLoaded("spacechase0.SpaceCore");
            Monitor.Log($"Space Core Installed: {IsSpaceCoreInstalled}", LogLevel.Trace);

            //Check if Customize Anywhere is installed
            IsCustomizeAnywhereInstalled = Helper.ModRegistry.IsLoaded("Cherry.CustomizeAnywhere");
            Monitor.Log($"Customize AnyWhere Installed: {IsCustomizeAnywhereInstalled}", LogLevel.Trace);

            //if it's installed then register the extended tilesheets
            if (IsSpaceCoreInstalled)
            {
                Monitor.Log("Reflecting into SpaceCore", LogLevel.Trace);
                SpaceCoreHackery();
            }

            //Initialized the LoadSaveMenu Patcher
            MenuPatcher.Init();

            //Conduct the Harmony Patch
            Harmony = HarmonyInstance.Create(this.ModManifest.UniqueID);
            CommenceHarmonyPatch();

            //Add the ContentLoader class to the AssetLoader List
            helper.Content.AssetLoaders.Add(new ContentLoader(this, PackHelper));
        }