diff --git a/src/main/java/com/minelittlepony/unicopia/Config.java b/src/main/java/com/minelittlepony/unicopia/Config.java index a12d3170..72c590fb 100644 --- a/src/main/java/com/minelittlepony/unicopia/Config.java +++ b/src/main/java/com/minelittlepony/unicopia/Config.java @@ -26,6 +26,9 @@ public class Config extends com.minelittlepony.common.util.settings.Config { .addComment("If true Mine Little Pony will not be considered when determining the race to use") .addComment("The result will always be what is set by this config file."); + public final Setting hudPage = value("client", "hudActivePage", 0) + .addComment("The page of abilities currently visible in the HUD. You can change this in-game using the PG_UP and PG_DWN keys (configurable)"); + public final Setting disableWaterPlantsFix = value("compatibility", "disableWaterPlantsFix", false) .addComment("Disables this mod's built in fix for making sea plants waterlogged") .addComment("Turn this ON if you're using another mod that does something similar of if you encounter copatibility issues with other mods."); diff --git a/src/main/java/com/minelittlepony/unicopia/ability/AbilityDispatcher.java b/src/main/java/com/minelittlepony/unicopia/ability/AbilityDispatcher.java index a368250b..5ad2fbd3 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/AbilityDispatcher.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/AbilityDispatcher.java @@ -8,8 +8,7 @@ import java.util.Optional; import org.jetbrains.annotations.Nullable; -import com.minelittlepony.unicopia.Race; -import com.minelittlepony.unicopia.USounds; +import com.minelittlepony.unicopia.*; import com.minelittlepony.unicopia.ability.data.Hit; import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.network.MsgPlayerAbility; diff --git a/src/main/java/com/minelittlepony/unicopia/client/KeyBindingsHandler.java b/src/main/java/com/minelittlepony/unicopia/client/KeyBindingsHandler.java index ea7c7ac6..9b9803db 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/KeyBindingsHandler.java +++ b/src/main/java/com/minelittlepony/unicopia/client/KeyBindingsHandler.java @@ -7,6 +7,7 @@ import java.util.Set; import org.lwjgl.glfw.GLFW; +import com.minelittlepony.unicopia.Unicopia; import com.minelittlepony.unicopia.ability.Ability; import com.minelittlepony.unicopia.ability.AbilityDispatcher; import com.minelittlepony.unicopia.ability.AbilitySlot; @@ -35,8 +36,6 @@ public class KeyBindingsHandler { private final Binding pageDown = register(GLFW.GLFW_KEY_PAGE_DOWN, "hud_page_dn"); private final Binding pageUp = register(GLFW.GLFW_KEY_PAGE_UP, "hud_page_up"); - public long page = 0; - private final Set pressed = new HashSet<>(); public KeyBindingsHandler() { @@ -68,7 +67,7 @@ public class KeyBindingsHandler { AbilityDispatcher abilities = iplayer.getAbilities(); long maxPage = abilities.getMaxPage(); - page = MathHelper.clamp(page, 0, maxPage); + long page = MathHelper.clamp(Unicopia.getConfig().hudPage.get(), 0, maxPage); if (page > 0 && pageDown.getState() == PressedState.PRESSED) { changePage(client, maxPage, -1); @@ -103,7 +102,9 @@ public class KeyBindingsHandler { } private void changePage(MinecraftClient client, long max, int sigma) { + int page = Unicopia.getConfig().hudPage.get(); page += sigma; + Unicopia.getConfig().hudPage.set(page); client.getSoundManager().play(PositionedSoundInstance.master(SoundEvents.UI_BUTTON_CLICK, 1.75F + (0.25F * sigma))); UHud.INSTANCE.setMessage(Text.translatable("gui.unicopia.page_num", page + 1, max + 1)); } diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java b/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java index 7eea4b24..1b60d28e 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/ManaRingSlot.java @@ -1,8 +1,8 @@ package com.minelittlepony.unicopia.client.gui; +import com.minelittlepony.unicopia.Unicopia; import com.minelittlepony.unicopia.ability.AbilityDispatcher; import com.minelittlepony.unicopia.ability.AbilitySlot; -import com.minelittlepony.unicopia.client.KeyBindingsHandler; import com.minelittlepony.unicopia.entity.player.MagicReserves; import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.entity.player.MagicReserves.Bar; @@ -33,7 +33,7 @@ class ManaRingSlot extends Slot { renderRing(matrices, 13, 9, 0, mana.getXp(), 0x88880099, tickDelta); double cost = abilities.getStats().stream() - .mapToDouble(s -> s.getCost(KeyBindingsHandler.INSTANCE.page)) + .mapToDouble(s -> s.getCost(Unicopia.getConfig().hudPage.get())) .reduce(Double::sum) .getAsDouble(); diff --git a/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java b/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java index f4f71dca..89909c21 100644 --- a/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java +++ b/src/main/java/com/minelittlepony/unicopia/client/gui/UHud.java @@ -321,7 +321,7 @@ public class UHud extends DrawableHelper { } void renderAbilityIcon(MatrixStack matrices, AbilityDispatcher.Stat stat, int x, int y, int u, int v, int frameWidth, int frameHeight) { - stat.getAbility(KeyBindingsHandler.INSTANCE.page).ifPresent(ability -> { + stat.getAbility(Unicopia.getConfig().hudPage.get()).ifPresent(ability -> { RenderSystem.setShaderTexture(0, ability.getIcon(Pony.of(client.player), client.options.sneakKey.isPressed())); drawTexture(matrices, x, y, 0, 0, frameWidth, frameHeight, u, v); RenderSystem.setShaderTexture(0, HUD_TEXTURE);