فهرست منبع

Fix build, minor code improvements

Jared 2 سال پیش
والد
کامیت
4f043ad8cf

+ 25 - 0
Common/src/main/java/com/blamejared/controlling/ControllingConstants.java

@@ -0,0 +1,25 @@
+package com.blamejared.controlling;
+
+import net.minecraft.network.chat.Component;
+import net.minecraft.network.chat.MutableComponent;
+
+public class ControllingConstants {
+    
+    public static final MutableComponent COMPONENT_CONTROLS_RESET = Component.translatable("controls.reset");
+    public static final MutableComponent COMPONENT_CONTROLS_RESET_ALL = Component.translatable("controls.resetAll");
+    public static final MutableComponent COMPONENT_GUI_DONE = Component.translatable("gui.done");
+    public static final MutableComponent COMPONENT_NARRATION_CHECKBOX_USAGE_FOCUSED = Component.translatable("narration.checkbox.usage.focused");
+    public static final MutableComponent COMPONENT_NARRATION_CHECKBOX_USAGE_HOVERED = Component.translatable("narration.checkbox.usage.hovered");
+    public static final MutableComponent COMPONENT_OPTIONS_CONFIRM_RESET = Component.translatable("options.confirmReset");
+    public static final MutableComponent COMPONENT_OPTIONS_SHOW_NONE = Component.translatable("options.showNone");
+    public static final MutableComponent COMPONENT_OPTIONS_SHOW_ALL = Component.translatable("options.showAll");
+    public static final MutableComponent COMPONENT_OPTIONS_SHOW_CONFLICTS = Component.translatable("options.showConflicts");
+    public static final MutableComponent COMPONENT_OPTIONS_KEY = Component.translatable("options.key");
+    public static final MutableComponent COMPONENT_OPTIONS_CATEGORY = Component.translatable("options.category");
+    public static final MutableComponent COMPONENT_OPTIONS_SORT = Component.translatable("options.sort");
+    public static final MutableComponent COMPONENT_OPTIONS_TOGGLE_FREE = Component.translatable("options.toggleFree");
+    public static final MutableComponent COMPONENT_OPTIONS_SEARCH = Component.translatable("options.search");
+    public static final MutableComponent COMPONENT_OPTIONS_AVAILABLE_KEYS = Component.translatable("options.availableKeys");
+    
+    
+}

+ 5 - 6
Common/src/main/java/com/blamejared/controlling/client/FancyCheckbox.java

@@ -1,6 +1,6 @@
 package com.blamejared.controlling.client;
 
-import com.google.common.collect.Comparators;
+import com.blamejared.controlling.ControllingConstants;
 import com.mojang.blaze3d.platform.GlStateManager;
 import com.mojang.blaze3d.systems.RenderSystem;
 import com.mojang.blaze3d.vertex.PoseStack;
@@ -12,8 +12,6 @@ import net.minecraft.network.chat.Component;
 import net.minecraft.resources.ResourceLocation;
 import net.minecraft.util.Mth;
 
-import java.util.Comparator;
-
 public class FancyCheckbox extends AbstractButton {
     
     private static final ResourceLocation TEXTURE = new ResourceLocation("textures/gui/checkbox.png");
@@ -48,18 +46,19 @@ public class FancyCheckbox extends AbstractButton {
     
     @Override
     protected void updateWidgetNarration(NarrationElementOutput narrationElementOutput) {
+        
         narrationElementOutput.add(NarratedElementType.TITLE, this.createNarrationMessage());
         if(this.active) {
             if(this.isFocused()) {
-                narrationElementOutput.add(NarratedElementType.USAGE, Component.translatable("narration.checkbox.usage.focused"));
+                narrationElementOutput.add(NarratedElementType.USAGE, ControllingConstants.COMPONENT_NARRATION_CHECKBOX_USAGE_FOCUSED);
             } else {
-                narrationElementOutput.add(NarratedElementType.USAGE, Component.translatable("narration.checkbox.usage.hovered"));
+                narrationElementOutput.add(NarratedElementType.USAGE, ControllingConstants.COMPONENT_NARRATION_CHECKBOX_USAGE_HOVERED);
             }
         }
     }
     
     public void renderButton(PoseStack stack, int mouseX, int mouseY, float partialTicks) {
-    
+        
         Minecraft mc = Minecraft.getInstance();
         RenderSystem.setShaderTexture(0, TEXTURE);
         RenderSystem.enableDepthTest();

+ 5 - 2
Common/src/main/java/com/blamejared/controlling/client/FreeKeysList.java

@@ -1,5 +1,6 @@
 package com.blamejared.controlling.client;
 
+import com.blamejared.controlling.ControllingConstants;
 import com.blamejared.controlling.mixin.AccessInputConstantsKey;
 import com.blamejared.controlling.mixin.AccessKeyMapping;
 import com.google.common.collect.ImmutableList;
@@ -17,6 +18,7 @@ import java.util.Arrays;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Objects;
+import java.util.function.Predicate;
 import java.util.stream.Collectors;
 
 public class FreeKeysList extends CustomList {
@@ -54,7 +56,8 @@ public class FreeKeysList extends CustomList {
         AccessInputConstantsKey.controlling$getNAME_MAP()
                 .values()
                 .stream()
-                .filter(input -> !input.toString().startsWith("key.keyboard.world"))
+                .filter(input -> !input.getName().startsWith("key.keyboard.world"))
+                .filter(Predicate.not(InputConstants.UNKNOWN::equals))
                 .sorted(Comparator.comparing(o -> o.getDisplayName().getString()))
                 .forEach(input -> {
                     if(keyBindings.stream()
@@ -142,7 +145,7 @@ public class FreeKeysList extends CustomList {
         @Override
         public void render(PoseStack stack, int slotIndex, int y, int x, int width, int height, int mouseX, int mouseY, boolean hovered, float partialTicks) {
             
-            drawCenteredString(stack, mc.font, Component.translatable("options.availableKeys"), (Objects.requireNonNull(mc.screen).width / 2 - this.text.length() / 2), (y + height - 9 - 1), 16777215);
+            drawCenteredString(stack, mc.font, ControllingConstants.COMPONENT_OPTIONS_AVAILABLE_KEYS, (Objects.requireNonNull(mc.screen).width / 2 - this.text.length() / 2), (y + height - 9 - 1), 16777215);
         }
         
     }

+ 2 - 1
Common/src/main/java/com/blamejared/controlling/client/NewKeyBindsList.java

@@ -1,5 +1,6 @@
 package com.blamejared.controlling.client;
 
+import com.blamejared.controlling.ControllingConstants;
 import com.blamejared.controlling.api.events.IKeyEntryListenersEvent;
 import com.blamejared.controlling.api.events.IKeyEntryMouseClickedEvent;
 import com.blamejared.controlling.api.events.IKeyEntryMouseReleasedEvent;
@@ -169,7 +170,7 @@ public class NewKeyBindsList extends CustomList {
                     .createNarration(supp -> name.isUnbound() ? Component.translatable("narrator.controls.unbound", keyDesc) : Component.translatable("narrator.controls.bound", keyDesc, supp.get()))
                     .build();
             
-            this.btnResetKeyBinding = Button.builder(Component.translatable("controls.reset"), btn -> {
+            this.btnResetKeyBinding = Button.builder(ControllingConstants.COMPONENT_CONTROLS_RESET, btn -> {
                         Services.PLATFORM.setToDefault(minecraft.options, name);
                         KeyMapping.resetMapping();
                     }).bounds(0, 0, 50, 20)

+ 30 - 28
Common/src/main/java/com/blamejared/controlling/client/NewKeyBindsScreen.java

@@ -1,5 +1,6 @@
 package com.blamejared.controlling.client;
 
+import com.blamejared.controlling.ControllingConstants;
 import com.blamejared.controlling.api.DisplayMode;
 import com.blamejared.controlling.api.SearchType;
 import com.blamejared.controlling.api.SortOrder;
@@ -7,6 +8,7 @@ import com.blamejared.controlling.mixin.AccessKeyBindsScreen;
 import com.blamejared.controlling.mixin.AccessKeyMapping;
 import com.blamejared.controlling.mixin.AccessScreen;
 import com.blamejared.controlling.platform.Services;
+import com.google.common.base.Suppliers;
 import com.mojang.blaze3d.platform.InputConstants;
 import com.mojang.blaze3d.vertex.PoseStack;
 import net.minecraft.Util;
@@ -27,9 +29,11 @@ import java.util.LinkedHashSet;
 import java.util.Objects;
 import java.util.Set;
 import java.util.function.Predicate;
+import java.util.function.Supplier;
 
 public class NewKeyBindsScreen extends KeyBindsScreen {
     
+    
     private Button buttonReset;
     private final Options options;
     
@@ -44,11 +48,11 @@ public class NewKeyBindsScreen extends KeyBindsScreen {
     private Button buttonConflicting;
     private FancyCheckbox buttonKey;
     private FancyCheckbox buttonCat;
-    private boolean confirmingReset = false;
-    private boolean showFree = false;
+    private boolean confirmingReset;
+    private boolean showFree;
     
     private KeyBindsList customKeyList;
-    private FreeKeysList freeKeyList;
+    private Supplier<FreeKeysList> freeKeyList;
     
     public NewKeyBindsScreen(Screen screen, Options settings) {
         
@@ -63,22 +67,22 @@ public class NewKeyBindsScreen extends KeyBindsScreen {
     protected void init() {
         
         this.customKeyList = new NewKeyBindsList(this, this.minecraft);
-        this.freeKeyList = new FreeKeysList(this, this.minecraft);
-        this.setKeyBindsList(this.customKeyList);
+        this.freeKeyList = Suppliers.memoize(() -> new FreeKeysList(this, this.minecraft));
+        this.setKeyBindsList(showFree ? this.freeKeyList.get() : this.customKeyList);
         this.addWidget(getKeyBindsList());
         this.setFocused(getKeyBindsList());
-        this.addRenderableWidget(Button.builder(Component.translatable("gui.done"), (btn) -> Objects.requireNonNull(this.minecraft)
+        this.addRenderableWidget(Button.builder(ControllingConstants.COMPONENT_GUI_DONE, (btn) -> Objects.requireNonNull(this.minecraft)
                 .setScreen(this.lastScreen)).bounds(this.width / 2 - 155 + 160, this.height - 29, 150, 20).build());
         
-        this.buttonReset = this.addRenderableWidget(Button.builder(Component.translatable("controls.resetAll"), btn -> {
+        this.buttonReset = this.addRenderableWidget(Button.builder(confirmingReset ? ControllingConstants.COMPONENT_OPTIONS_CONFIRM_RESET : ControllingConstants.COMPONENT_CONTROLS_RESET_ALL, btn -> {
             
             if(!confirmingReset) {
                 confirmingReset = true;
-                btn.setMessage(Component.translatable("options.confirmReset"));
+                btn.setMessage(ControllingConstants.COMPONENT_OPTIONS_CONFIRM_RESET);
                 return;
             }
             confirmingReset = false;
-            btn.setMessage(Component.translatable("controls.resetAll"));
+            btn.setMessage(ControllingConstants.COMPONENT_CONTROLS_RESET_ALL);
             for(KeyMapping keybinding : Objects.requireNonNull(minecraft).options.keyMappings) {
                 Services.PLATFORM.setToDefault(minecraft.options, keybinding);
                 KeyMapping.resetMapping();
@@ -86,49 +90,49 @@ public class NewKeyBindsScreen extends KeyBindsScreen {
             
             KeyMapping.releaseAll();
         }).bounds(this.width / 2 - 155, this.height - 29, 74, 20).build());
-        this.buttonNone = this.addRenderableWidget(Button.builder(Component.translatable("options.showNone"), (btn) -> {
+        this.buttonNone = this.addRenderableWidget(Button.builder(ControllingConstants.COMPONENT_OPTIONS_SHOW_NONE, (btn) -> {
             if(displayMode == DisplayMode.NONE) {
-                buttonNone.setMessage(Component.translatable("options.showNone"));
+                buttonNone.setMessage(ControllingConstants.COMPONENT_OPTIONS_SHOW_NONE);
                 displayMode = DisplayMode.ALL;
             } else {
                 displayMode = DisplayMode.NONE;
-                buttonNone.setMessage(Component.translatable("options.showAll"));
-                buttonConflicting.setMessage(Component.translatable("options.showConflicts"));
+                buttonNone.setMessage(ControllingConstants.COMPONENT_OPTIONS_SHOW_ALL);
+                buttonConflicting.setMessage(ControllingConstants.COMPONENT_OPTIONS_SHOW_CONFLICTS);
             }
             filterKeys();
         }).bounds(this.width / 2 - 155 + 160 + 76, this.height - 29 - 24, 150 / 2, 20).build());
-        this.buttonConflicting = this.addRenderableWidget(Button.builder(Component.translatable("options.showConflicts"), (btn) -> {
+        this.buttonConflicting = this.addRenderableWidget(Button.builder(ControllingConstants.COMPONENT_OPTIONS_SHOW_CONFLICTS, (btn) -> {
             if(displayMode == DisplayMode.CONFLICTING) {
-                buttonConflicting.setMessage(Component.translatable("options.showConflicts"));
+                buttonConflicting.setMessage(ControllingConstants.COMPONENT_OPTIONS_SHOW_CONFLICTS);
                 displayMode = DisplayMode.ALL;
             } else {
                 displayMode = DisplayMode.CONFLICTING;
-                buttonConflicting.setMessage(Component.translatable("options.showAll"));
-                buttonNone.setMessage(Component.translatable("options.showNone"));
+                buttonConflicting.setMessage(ControllingConstants.COMPONENT_OPTIONS_SHOW_ALL);
+                buttonNone.setMessage(ControllingConstants.COMPONENT_OPTIONS_SHOW_NONE);
             }
             filterKeys();
         }).bounds(this.width / 2 - 155 + 160, this.height - 29 - 24, 150 / 2, 20).build());
         search = new EditBox(font, this.width / 2 - 154, this.height - 29 - 23, 148, 18, Component.empty());
         addWidget(search);
-        this.buttonKey = this.addRenderableWidget(new FancyCheckbox(this.width / 2 - (155 / 2), this.height - 29 - 37, 11, 11, Component.translatable("options.key"), false, btn -> {
+        this.buttonKey = this.addRenderableWidget(new FancyCheckbox(this.width / 2 - (155 / 2), this.height - 29 - 37, 11, 11, ControllingConstants.COMPONENT_OPTIONS_KEY, false, btn -> {
             buttonCat.selected(false);
             searchType = btn.selected() ? SearchType.KEY : SearchType.NAME;
             filterKeys();
         }));
-        this.buttonCat = this.addRenderableWidget(new FancyCheckbox(this.width / 2 - (155 / 2), this.height - 29 - 50, 11, 11, Component.translatable("options.category"), false, btn -> {
+        this.buttonCat = this.addRenderableWidget(new FancyCheckbox(this.width / 2 - (155 / 2), this.height - 29 - 50, 11, 11, ControllingConstants.COMPONENT_OPTIONS_CATEGORY, false, btn -> {
             buttonKey.selected(false);
             searchType = btn.selected() ? SearchType.CATEGORY : SearchType.NAME;
             filterKeys();
         }));
         sortOrder = SortOrder.NONE;
-        Button buttonSort = this.addRenderableWidget(Button.builder(Component.translatable("options.sort")
+        Button buttonSort = this.addRenderableWidget(Button.builder(ControllingConstants.COMPONENT_OPTIONS_SORT.copy()
                 .append(": " + sortOrder.getName()), (btn) -> {
             sortOrder = sortOrder.cycle();
-            btn.setMessage(Component.translatable("options.sort").append(": " + sortOrder.getName()));
+            btn.setMessage(ControllingConstants.COMPONENT_OPTIONS_SORT.copy().append(": " + sortOrder.getName()));
             filterKeys();
         }).bounds(this.width / 2 - 155 + 160 + 76, this.height - 29 - 24 - 24, 150 / 2, 20).build());
         
-        this.addRenderableWidget(Button.builder(Component.translatable("options.toggleFree"), (btn) -> {
+        this.addRenderableWidget(Button.builder(ControllingConstants.COMPONENT_OPTIONS_TOGGLE_FREE, (btn) -> {
             this.removeWidget(getKeyBindsList());
             if(showFree) {
                 buttonSort.active = true;
@@ -139,14 +143,14 @@ public class NewKeyBindsScreen extends KeyBindsScreen {
                 buttonReset.active = true;
                 setKeyBindsList(customKeyList);
             } else {
-                freeKeyList.recalculate();
+                freeKeyList.get().recalculate();
                 buttonSort.active = false;
                 buttonCat.active = false;
                 buttonKey.active = false;
                 buttonNone.active = false;
                 buttonConflicting.active = false;
                 buttonReset.active = false;
-                setKeyBindsList(freeKeyList);
+                setKeyBindsList(freeKeyList.get());
             }
             this.addWidget(getKeyBindsList());
             this.setFocused(getKeyBindsList());
@@ -283,12 +287,10 @@ public class NewKeyBindsScreen extends KeyBindsScreen {
         this.buttonReset.active = flag;
         if(!flag) {
             confirmingReset = false;
-            buttonReset.setMessage(Component.translatable("controls.resetAll"));
+            buttonReset.setMessage(ControllingConstants.COMPONENT_CONTROLS_RESET_ALL);
         }
         
-        
-        Component text = Component.translatable("options.search");
-        font.draw(stack, text, this.width / 2f - (155 / 2f) - (font.width(text.getString())) - 5, this.height - 29 - 42, 16777215);
+        font.draw(stack, ControllingConstants.COMPONENT_OPTIONS_SEARCH, this.width / 2f - (155 / 2f) - (font.width(ControllingConstants.COMPONENT_OPTIONS_SEARCH.getString())) - 5, this.height - 29 - 42, 16777215);
         
         for(Renderable renderable : getScreenAccess().controlling$getRenderables()) {
             renderable.render(stack, mouseX, mouseY, partialTicks);

+ 1 - 2
Forge/build.gradle.kts

@@ -8,7 +8,6 @@ import net.darkhax.curseforgegradle.Constants as CFG_Constants
 plugins {
     `maven-publish`
     id("net.minecraftforge.gradle") version ("5.1.+")
-    id("org.parchmentmc.librarian.forgegradle") version ("1.+")
     id("org.spongepowered.mixin") version ("0.7-SNAPSHOT")
     id("com.blamejared.modtemplate")
     id("net.darkhax.curseforgegradle") version ("1.0.8")
@@ -42,7 +41,7 @@ mixin {
 }
 
 minecraft {
-    mappings("official", "1.19.2")
+    mappings("official", minecraftVersion)
 
     runs {
         create("client") {

+ 1 - 1
Forge/src/main/resources/META-INF/mods.toml

@@ -5,7 +5,7 @@ license="MIT"
 
 [[mods]]
 modId="controlling"
-updateJSONURL="https://updates.blamejared.com/get?n=controlling&gv=1.19.2"
+updateJSONURL="https://updates.blamejared.com/get?n=controlling&gv=1.19.3"
 version="${file.jarVersion}"
 displayName="Controlling"
 displayURL="https://minecraft.curseforge.com/projects/controlling"