Exemple #1
0
        /// <inheritdoc cref="IGameLoopEvents.GameLaunched"/>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void OnGameLaunched(object sender, GameLaunchedEventArgs e)
        {
            var capi = this.Helper.ModRegistry.GetApi <IGenericModConfigMenuApi>("spacechase0.GenericModConfigMenu");

            if (capi != null)
            {
                capi.RegisterModConfig(this.ModManifest, () => Mod.Config = new Configuration(), () => this.Helper.WriteConfig(Mod.Config));
                capi.RegisterSimpleOption(this.ModManifest, "Altar Location", "The (internal) name of the location the magic altar should be placed at.", () => Mod.Config.AltarLocation, (string val) => Mod.Config.AltarLocation = val);
                capi.RegisterSimpleOption(this.ModManifest, "Altar X", "The X tile position of where the magic altar should be placed.", () => Mod.Config.AltarX, (int val) => Mod.Config.AltarX = val);
                capi.RegisterSimpleOption(this.ModManifest, "Altar Y", "The Y tile position of where the magic altar should be placed.", () => Mod.Config.AltarY, (int val) => Mod.Config.AltarY = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Cast", "The key to initiate casting a spell.", () => Mod.Config.Key_Cast, (SButton val) => Mod.Config.Key_Cast           = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Swap Spells", "The key to swap spell sets.", () => Mod.Config.Key_SwapSpells, (SButton val) => Mod.Config.Key_SwapSpells = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Spell 1", "The key for spell 1.", () => Mod.Config.Key_Spell1, (SButton val) => Mod.Config.Key_Spell1 = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Spell 2", "The key for spell 2.", () => Mod.Config.Key_Spell2, (SButton val) => Mod.Config.Key_Spell2 = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Spell 3", "The key for spell 3.", () => Mod.Config.Key_Spell3, (SButton val) => Mod.Config.Key_Spell3 = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Spell 4", "The key for spell 4.", () => Mod.Config.Key_Spell4, (SButton val) => Mod.Config.Key_Spell4 = val);
                capi.RegisterSimpleOption(this.ModManifest, "Key: Spell 5", "The key for spell 5.", () => Mod.Config.Key_Spell5, (SButton val) => Mod.Config.Key_Spell5 = val);
            }

            var api2 = this.Helper.ModRegistry.GetApi <IManaBarApi>("spacechase0.ManaBar");

            if (api2 == null)
            {
                Log.Error("No mana bar API???");
                return;
            }
            Mod.Mana = api2;

            var api = this.Helper.ModRegistry.GetApi <JsonAssetsApi>("spacechase0.JsonAssets");

            if (api == null)
            {
                Log.Error("No Json Assets API???");
                return;
            }
            Mod.Ja = api;

            api.LoadAssets(Path.Combine(this.Helper.DirectoryPath, "assets"));
        }
Exemple #2
0
        /*********
        ** Private methods
        *********/
        /// <inheritdoc cref="IGameLoopEvents.GameLaunched"/>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event arguments.</param>
        private void OnGameLaunched(object sender, GameLaunchedEventArgs e)
        {
            // hook Generic Mod Config Menu
            {
                var configMenu = this.Helper.ModRegistry.GetGenericModConfigMenuApi(this.Monitor);
                if (configMenu != null)
                {
                    configMenu.Register(
                        mod: this.ModManifest,
                        reset: () => Mod.Config = new Configuration(),
                        save: () => this.Helper.WriteConfig(Mod.Config),
                        titleScreenOnly: true
                        );

                    // altar placement
                    configMenu.AddSectionTitle(this.ModManifest, I18n.Config_AltarPlacement);
                    configMenu.AddTextOption(
                        mod: this.ModManifest,
                        name: I18n.Config_Location_Name,
                        tooltip: I18n.Config_Location_Tooltip,
                        getValue: () => Mod.Config.AltarLocation,
                        setValue: value => Mod.Config.AltarLocation = value
                        );
                    configMenu.AddNumberOption(
                        mod: this.ModManifest,
                        name: I18n.Config_X_Name,
                        tooltip: I18n.Config_X_Tooltip,
                        getValue: () => Mod.Config.AltarX,
                        setValue: value => Mod.Config.AltarX = value,
                        min: -1,
                        max: 255,
                        formatValue: value => value < 0
                            ? I18n.Config_XOrY_AutomaticPosition()
                            : value.ToString()
                        );
                    configMenu.AddNumberOption(
                        mod: this.ModManifest,
                        name: I18n.Config_Y_Name,
                        tooltip: I18n.Config_Y_Tooltip,
                        getValue: () => Mod.Config.AltarY,
                        setValue: value => Mod.Config.AltarY = value,
                        min: -1,
                        max: 255,
                        formatValue: value => value < 0
                            ? I18n.Config_XOrY_AutomaticPosition()
                            : value.ToString()
                        );

                    // radio placement
                    configMenu.AddSectionTitle(this.ModManifest, I18n.Config_RadioPlacement);
                    configMenu.AddTextOption(
                        mod: this.ModManifest,
                        name: I18n.Config_Location_Name,
                        tooltip: I18n.Config_Location_Tooltip,
                        getValue: () => Mod.Config.RadioLocation,
                        setValue: value => Mod.Config.RadioLocation = value
                        );
                    configMenu.AddNumberOption(
                        mod: this.ModManifest,
                        name: I18n.Config_X_Name,
                        tooltip: I18n.Config_X_Tooltip,
                        getValue: () => Mod.Config.RadioX,
                        setValue: value => Mod.Config.RadioX = value,
                        min: -1,
                        max: 255,
                        formatValue: value => value < 0
                            ? I18n.Config_XOrY_AutomaticPosition()
                            : value.ToString()
                        );
                    configMenu.AddNumberOption(
                        mod: this.ModManifest,
                        name: I18n.Config_Y_Name,
                        tooltip: I18n.Config_Y_Tooltip,
                        getValue: () => Mod.Config.RadioY,
                        setValue: value => Mod.Config.RadioY = value,
                        min: -1,
                        max: 255,
                        formatValue: value => value < 0
                            ? I18n.Config_XOrY_AutomaticPosition()
                            : value.ToString()
                        );

                    // controls
                    configMenu.AddSectionTitle(this.ModManifest, I18n.Config_Controls);
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: I18n.Config_CastKey_Name,
                        tooltip: I18n.Config_CastKey_Tooltip,
                        getValue: () => Mod.Config.Key_Cast,
                        setValue: value => Mod.Config.Key_Cast = value
                        );
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: I18n.Config_SwapSpellsKey_Name,
                        tooltip: I18n.Config_SwapSpellsKey_Tooltip,
                        getValue: () => Mod.Config.Key_SwapSpells,
                        setValue: value => Mod.Config.Key_SwapSpells = value
                        );
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: () => I18n.Config_SelectSpellKey_Name(slotNumber: 1),
                        tooltip: () => I18n.Config_SelectSpellKey_Tooltip(slotNumber: 1),
                        getValue: () => Mod.Config.Key_Spell1,
                        setValue: value => Mod.Config.Key_Spell1 = value
                        );
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: () => I18n.Config_SelectSpellKey_Name(slotNumber: 2),
                        tooltip: () => I18n.Config_SelectSpellKey_Tooltip(slotNumber: 2),
                        getValue: () => Mod.Config.Key_Spell2,
                        setValue: value => Mod.Config.Key_Spell2 = value
                        );
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: () => I18n.Config_SelectSpellKey_Name(slotNumber: 3),
                        tooltip: () => I18n.Config_SelectSpellKey_Tooltip(slotNumber: 3),
                        getValue: () => Mod.Config.Key_Spell3,
                        setValue: value => Mod.Config.Key_Spell3 = value
                        );
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: () => I18n.Config_SelectSpellKey_Name(slotNumber: 4),
                        tooltip: () => I18n.Config_SelectSpellKey_Tooltip(slotNumber: 4),
                        getValue: () => Mod.Config.Key_Spell4,
                        setValue: value => Mod.Config.Key_Spell4 = value
                        );
                    configMenu.AddKeybind(
                        mod: this.ModManifest,
                        name: () => I18n.Config_SelectSpellKey_Name(slotNumber: 5),
                        tooltip: () => I18n.Config_SelectSpellKey_Tooltip(slotNumber: 5),
                        getValue: () => Mod.Config.Key_Spell5,
                        setValue: value => Mod.Config.Key_Spell5 = value
                        );
                }
            }

            // hook Mana Bar
            {
                var manaBar = this.Helper.ModRegistry.GetApi <IManaBarApi>("spacechase0.ManaBar");
                if (manaBar == null)
                {
                    Log.Error("No mana bar API???");
                    return;
                }
                Mod.Mana = manaBar;
            }

            // hook Json Assets
            {
                var api = this.Helper.ModRegistry.GetApi <IJsonAssetsApi>("spacechase0.JsonAssets");
                if (api == null)
                {
                    Log.Error("No Json Assets API???");
                    return;
                }
                Mod.Ja = api;
                api.LoadAssets(Path.Combine(this.Helper.DirectoryPath, "assets", "json-assets"), this.Helper.Translation);
            }
        }