From 773cfa32fe9da9fde29a999c0951288132c57e45 Mon Sep 17 00:00:00 2001 From: isXander Date: Sun, 19 Feb 2023 23:16:52 +0000 Subject: [PATCH] fix crash with gamepad binds --- .../controlify/bindings/GamepadBind.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/dev/isxander/controlify/bindings/GamepadBind.java b/src/main/java/dev/isxander/controlify/bindings/GamepadBind.java index bfe8f09..9c7660a 100644 --- a/src/main/java/dev/isxander/controlify/bindings/GamepadBind.java +++ b/src/main/java/dev/isxander/controlify/bindings/GamepadBind.java @@ -12,19 +12,18 @@ import dev.isxander.controlify.gui.DrawSize; import net.minecraft.client.gui.GuiComponent; import net.minecraft.resources.ResourceLocation; +import java.util.Objects; import java.util.function.Function; public class GamepadBind implements IBind { private final Function stateSupplier; private final String identifier; private final GamepadController gamepad; - private final ResourceLocation defaultTexture; public GamepadBind(Function stateSupplier, String identifier, GamepadController gamepad) { this.stateSupplier = stateSupplier; this.identifier = identifier; this.gamepad = gamepad; - this.defaultTexture = new ResourceLocation("controlify", "textures/gui/gamepad_buttons/" + gamepad.config().theme.id() + "/" + identifier + ".png"); } @Override @@ -65,8 +64,22 @@ public class GamepadBind implements IBind { } private ResourceLocation getTexture(BuiltinGamepadTheme theme) { + String themeId = theme.id(); if (theme == BuiltinGamepadTheme.DEFAULT) - return defaultTexture; - return new ResourceLocation("controlify", "textures/gui/gamepad_buttons/" + theme.id() + "/" + identifier + ".png"); + themeId = gamepad.type().identifier(); + return new ResourceLocation("controlify", "textures/gui/gamepad/" + themeId + "/" + identifier + ".png"); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + GamepadBind that = (GamepadBind) o; + return identifier.equals(that.identifier); + } + + @Override + public int hashCode() { + return Objects.hash(identifier); } }