Эх сурвалжийг харах

Fixes unable to unbind keybinds

shedaniel 5 жил өмнө
parent
commit
abaddf6fc4

+ 1 - 1
gradle.properties

@@ -2,6 +2,6 @@ minecraft_version=20w17a
 yarn_mappings=20w17a+build.2
 loader_version=0.8.2+build.194
 fabric_version=0.6.2+build.327-1.16
-mod_version=4.0.0-unstable
+mod_version=4.0.1-unstable
 modmenu_version=1.11.0+build.2
 nec_version=1.2.3+1.15.1

+ 30 - 25
src/main/java/me/shedaniel/clothconfig2/gui/ClothConfigScreen.java

@@ -568,45 +568,50 @@ public abstract class ClothConfigScreen extends Screen {
     @Override
     public boolean keyPressed(int int_1, int int_2, int int_3) {
         if (this.focusedBinding != null && focusedBinding.isAllowKey()) {
-            if (startedKeyCode.isUnknown())
-                startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
-            else if (focusedBinding.isAllowModifiers()) {
-                if (startedKeyCode.getType() == InputUtil.Type.KEYSYM) {
-                    int code = startedKeyCode.getKeyCode().getKeyCode();
-                    if (MinecraftClient.IS_SYSTEM_MAC ? (code == 343 || code == 347) : (code == 341 || code == 345)) {
+            if (int_1 != 256) {
+                if (startedKeyCode.isUnknown())
+                    startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
+                else if (focusedBinding.isAllowModifiers()) {
+                    if (startedKeyCode.getType() == InputUtil.Type.KEYSYM) {
+                        int code = startedKeyCode.getKeyCode().getKeyCode();
+                        if (MinecraftClient.IS_SYSTEM_MAC ? (code == 343 || code == 347) : (code == 341 || code == 345)) {
+                            Modifier modifier = startedKeyCode.getModifier();
+                            startedKeyCode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift()));
+                            startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
+                            return true;
+                        } else if (code == 344 || code == 340) {
+                            Modifier modifier = startedKeyCode.getModifier();
+                            startedKeyCode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true));
+                            startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
+                            return true;
+                        } else if (code == 342 || code == 346) {
+                            Modifier modifier = startedKeyCode.getModifier();
+                            startedKeyCode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift()));
+                            startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
+                            return true;
+                        }
+                    }
+                    if (MinecraftClient.IS_SYSTEM_MAC ? (int_1 == 343 || int_1 == 347) : (int_1 == 341 || int_1 == 345)) {
                         Modifier modifier = startedKeyCode.getModifier();
                         startedKeyCode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift()));
-                        startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
                         return true;
-                    } else if (code == 344 || code == 340) {
+                    } else if (int_1 == 344 || int_1 == 340) {
                         Modifier modifier = startedKeyCode.getModifier();
                         startedKeyCode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true));
-                        startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
                         return true;
-                    } else if (code == 342 || code == 346) {
+                    } else if (int_1 == 342 || int_1 == 346) {
                         Modifier modifier = startedKeyCode.getModifier();
                         startedKeyCode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift()));
-                        startedKeyCode.setKeyCode(InputUtil.getKeyCode(int_1, int_2));
                         return true;
                     }
                 }
-                if (MinecraftClient.IS_SYSTEM_MAC ? (int_1 == 343 || int_1 == 347) : (int_1 == 341 || int_1 == 345)) {
-                    Modifier modifier = startedKeyCode.getModifier();
-                    startedKeyCode.setModifier(Modifier.of(modifier.hasAlt(), true, modifier.hasShift()));
-                    return true;
-                } else if (int_1 == 344 || int_1 == 340) {
-                    Modifier modifier = startedKeyCode.getModifier();
-                    startedKeyCode.setModifier(Modifier.of(modifier.hasAlt(), modifier.hasControl(), true));
-                    return true;
-                } else if (int_1 == 342 || int_1 == 346) {
-                    Modifier modifier = startedKeyCode.getModifier();
-                    startedKeyCode.setModifier(Modifier.of(true, modifier.hasControl(), modifier.hasShift()));
-                    return true;
-                }
+            } else {
+                focusedBinding.setValue(ModifierKeyCode.unknown());
+                setFocusedBinding(null);
             }
             return true;
         }
-        if (this.focusedBinding != null)
+        if (this.focusedBinding != null && int_1 != 256)
             return true;
         if (int_1 == 256 && this.shouldCloseOnEsc()) {
             if (confirmSave && edited)

+ 1 - 1
src/main/java/me/shedaniel/clothconfig2/gui/entries/KeyCodeEntry.java

@@ -108,7 +108,7 @@ public class KeyCodeEntry extends TooltipListEntry<ModifierKeyCode> {
         this.buttonWidget.y = y;
         this.buttonWidget.setMessage(getLocalizedName());
         if (getScreen().getFocusedBinding() == this)
-            this.buttonWidget.setMessage(new LiteralText(Formatting.WHITE + "> " + Formatting.YELLOW + this.buttonWidget.getMessage() + Formatting.WHITE + " <"));
+            this.buttonWidget.setMessage(new LiteralText(  "> ").method_27692(Formatting.WHITE).append(this.buttonWidget.getMessage().method_27662().method_27692(Formatting.YELLOW)).append(new LiteralText(  " <").method_27692(Formatting.WHITE)));
         if (MinecraftClient.getInstance().textRenderer.isRightToLeft()) {
             MinecraftClient.getInstance().textRenderer.method_27517(matrices, getFieldName(), window.getScaledWidth() - x - MinecraftClient.getInstance().textRenderer.method_27525(getFieldName()), y + 5, 16777215);
             this.resetButton.x = x;