소스 검색

3.0.1

Signed-off-by: shedaniel <daniel@shedaniel.me>
shedaniel 5 년 전
부모
커밋
d05948d605

+ 2 - 2
build.gradle

@@ -50,8 +50,8 @@ dependencies {
     modApi "net.fabricmc:fabric-loader:${project.loader_version}"
     modApi "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
 
-    modApi "me.shedaniel.cloth:basic-math:0.3.0"
-    include "me.shedaniel.cloth:basic-math:0.3.0"
+    modApi "me.shedaniel.cloth:basic-math:0.4.0"
+    include "me.shedaniel.cloth:basic-math:0.4.0"
 
     modImplementation "io.github.prospector:modmenu:${modmenu_version}"
 

+ 1 - 1
gradle.properties

@@ -2,6 +2,6 @@ minecraft_version=20w10a
 yarn_mappings=20w10a+build.2
 loader_version=0.7.8+build.186
 fabric_version=0.4.34+build.303-1.16
-mod_version=3.0.0-unstable
+mod_version=3.0.1-unstable
 modmenu_version=1.10.1+build.30
 nec_version=1.2.3+1.15.1

+ 22 - 13
src/main/java/me/shedaniel/clothconfig2/ClothConfigInitializer.java

@@ -14,10 +14,10 @@ import me.shedaniel.clothconfig2.impl.builders.DropdownMenuBuilder;
 import net.fabricmc.api.ClientModInitializer;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
+import net.fabricmc.fabric.impl.client.keybinding.KeyBindingRegistryImpl;
 import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.client.MinecraftClient;
 import net.minecraft.client.gui.Element;
-import net.minecraft.client.gui.screen.Screen;
 import net.minecraft.client.gui.widget.AbstractButtonWidget;
 import net.minecraft.client.gui.widget.AbstractPressableButtonWidget;
 import net.minecraft.client.resource.language.I18n;
@@ -167,6 +167,15 @@ public class ClothConfigInitializer implements ClientModInitializer {
                 ClothConfigInitializer.LOGGER.error("[ClothConfig] Failed to add test config override for ModMenu!", e);
             }
         }
+        if (FabricLoader.getInstance().isDevelopmentEnvironment()) {
+            try {
+                KeyBindingRegistryImpl.INSTANCE.addCategory("Cloth Test Keybinds");
+                FakeModifierKeyCodeAdder.INSTANCE.registerModifierKeyCode("Cloth Test Keybinds", "Keybind 1",
+                        ModifierKeyCode::unknown, ModifierKeyCode::unknown, System.out::println);
+            } catch (Throwable throwable) {
+                throwable.printStackTrace();
+            }
+        }
     }
     
     @SuppressWarnings("deprecation")
@@ -184,7 +193,7 @@ public class ClothConfigInitializer implements ClientModInitializer {
         LongSliderEntry scrollDurationEntry = entryBuilder.startLongSlider("option.cloth-config.scrollDuration", scrollDuration, 0, 5000).setTextGetter(integer -> integer <= 0 ? "Value: Disabled" : (integer > 1500 ? String.format("Value: %.1fs", integer / 1000f) : "Value: " + integer + "ms")).setDefaultValue(600).setSaveConsumer(i -> scrollDuration = i).build();
         DoubleListEntry scrollStepEntry = entryBuilder.startDoubleField("option.cloth-config.scrollStep", scrollStep).setDefaultValue(19).setSaveConsumer(i -> scrollStep = i).build();
         LongSliderEntry bounceMultiplierEntry = entryBuilder.startLongSlider("option.cloth-config.bounceBackMultiplier", (long) (bounceBackMultiplier * 1000), -10, 750).setTextGetter(integer -> integer < 0 ? "Value: Disabled" : String.format("Value: %s", integer / 1000d)).setDefaultValue(240).setSaveConsumer(i -> bounceBackMultiplier = i / 1000d).build();
-    
+        
         scrolling.addEntry(new TooltipListEntry<Object>(I18n.translate("option.cloth-config.setDefaultSmoothScroll"), null) {
             final int width = 220;
             private final AbstractButtonWidget buttonWidget = new AbstractPressableButtonWidget(0, 0, 0, 20, getFieldName()) {
@@ -198,26 +207,26 @@ public class ClothConfigInitializer implements ClientModInitializer {
                 }
             };
             private final List<AbstractButtonWidget> children = ImmutableList.of(buttonWidget);
-        
+            
             @Override
             public Object getValue() {
                 return null;
             }
-        
+            
             @Override
             public Optional<Object> getDefaultValue() {
                 return Optional.empty();
             }
-        
+            
             @Override
             public void save() {
             }
-        
+            
             @Override
             public List<? extends Element> children() {
                 return children;
             }
-        
+            
             @Override
             public void render(int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
                 super.render(index, y, x, entryWidth, entryHeight, mouseX, mouseY, isSelected, delta);
@@ -229,7 +238,7 @@ public class ClothConfigInitializer implements ClientModInitializer {
                 this.buttonWidget.render(mouseX, mouseY, delta);
             }
         });
-    
+        
         scrolling.addEntry(new TooltipListEntry<Object>(I18n.translate("option.cloth-config.disableSmoothScroll"), null) {
             final int width = 220;
             private final AbstractButtonWidget buttonWidget = new AbstractPressableButtonWidget(0, 0, 0, 20, getFieldName()) {
@@ -243,26 +252,26 @@ public class ClothConfigInitializer implements ClientModInitializer {
                 }
             };
             private final List<AbstractButtonWidget> children = ImmutableList.of(buttonWidget);
-        
+            
             @Override
             public Object getValue() {
                 return null;
             }
-        
+            
             @Override
             public Optional<Object> getDefaultValue() {
                 return Optional.empty();
             }
-        
+            
             @Override
             public void save() {
             }
-        
+            
             @Override
             public List<? extends Element> children() {
                 return children;
             }
-        
+            
             @Override
             public void render(int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean isSelected, float delta) {
                 super.render(index, y, x, entryWidth, entryHeight, mouseX, mouseY, isSelected, delta);

+ 17 - 2
src/main/java/me/shedaniel/clothconfig2/api/QueuedTooltip.java

@@ -1,7 +1,8 @@
 package me.shedaniel.clothconfig2.api;
 
 import com.google.common.collect.Lists;
-import me.shedaniel.math.api.Point;
+import me.shedaniel.math.Point;
+import org.jetbrains.annotations.ApiStatus;
 
 import java.util.Collections;
 import java.util.List;
@@ -16,6 +17,14 @@ public class QueuedTooltip {
         this.text = Collections.unmodifiableList(text);
     }
     
+    public static QueuedTooltip create(me.shedaniel.math.api.Point location, List<String> text) {
+        return new QueuedTooltip(location, text);
+    }
+    
+    public static QueuedTooltip create(me.shedaniel.math.api.Point location, String... text) {
+        return QueuedTooltip.create(location, Lists.newArrayList(text));
+    }
+    
     public static QueuedTooltip create(Point location, List<String> text) {
         return new QueuedTooltip(location, text);
     }
@@ -24,7 +33,13 @@ public class QueuedTooltip {
         return QueuedTooltip.create(location, Lists.newArrayList(text));
     }
     
-    public Point getLocation() {
+    @Deprecated
+    @ApiStatus.ScheduledForRemoval
+    public me.shedaniel.math.api.Point getLocation() {
+        return new me.shedaniel.math.api.Point(getPoint());
+    }
+    
+    public Point getPoint() {
         return location;
     }
     

+ 4 - 0
src/main/java/me/shedaniel/clothconfig2/api/ScissorsHandler.java

@@ -17,6 +17,10 @@ public interface ScissorsHandler {
     
     void scissor(Rectangle rectangle);
     
+    default void scissor(me.shedaniel.math.Rectangle rectangle) {
+        scissor(new Rectangle(rectangle));
+    }
+    
     void removeLastScissor();
     
     void applyScissors();

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

@@ -8,7 +8,7 @@ import it.unimi.dsi.fastutil.booleans.BooleanConsumer;
 import me.shedaniel.clothconfig2.api.*;
 import me.shedaniel.clothconfig2.gui.entries.KeyCodeEntry;
 import me.shedaniel.clothconfig2.gui.widget.DynamicElementListWidget;
-import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.Rectangle;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.minecraft.client.MinecraftClient;

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

@@ -3,7 +3,7 @@ package me.shedaniel.clothconfig2.gui.entries;
 import com.google.common.collect.Lists;
 import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.clothconfig2.api.QueuedTooltip;
-import me.shedaniel.math.api.Point;
+import me.shedaniel.math.Point;
 import me.shedaniel.math.api.Rectangle;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;

+ 2 - 2
src/main/java/me/shedaniel/clothconfig2/gui/entries/DropdownBoxEntry.java

@@ -392,8 +392,8 @@ public class DropdownBoxEntry<T> extends TooltipListEntry<T> {
                 height = Math.max(10, height);
                 int minY = (int) Math.min(Math.max((int) scroll * (last10Height - height) / getMaxScrollPosition() + (lastRectangle.y + lastRectangle.height + 1), (lastRectangle.y + lastRectangle.height + 1)), (lastRectangle.y + lastRectangle.height + 1 + last10Height) - height);
                 
-                int bottomc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.fromMouse()) ? 168 : 128;
-                int topc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.fromMouse()) ? 222 : 172;
+                int bottomc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.ofMouse()) ? 168 : 128;
+                int topc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.ofMouse()) ? 222 : 172;
                 
                 Tessellator tessellator = Tessellator.getInstance();
                 BufferBuilder buffer = tessellator.getBuffer();

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

@@ -3,7 +3,7 @@ package me.shedaniel.clothconfig2.gui.entries;
 import com.google.common.collect.Lists;
 import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
-import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.Rectangle;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.minecraft.client.MinecraftClient;

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

@@ -3,7 +3,7 @@ package me.shedaniel.clothconfig2.gui.entries;
 import com.google.common.collect.Lists;
 import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
-import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.Rectangle;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.minecraft.client.MinecraftClient;

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

@@ -2,7 +2,7 @@ package me.shedaniel.clothconfig2.gui.entries;
 
 import me.shedaniel.clothconfig2.api.AbstractConfigListEntry;
 import me.shedaniel.clothconfig2.api.QueuedTooltip;
-import me.shedaniel.math.api.Point;
+import me.shedaniel.math.Point;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import org.jetbrains.annotations.Nullable;

+ 1 - 1
src/main/java/me/shedaniel/clothconfig2/gui/widget/DynamicEntryListWidget.java

@@ -3,7 +3,7 @@ package me.shedaniel.clothconfig2.gui.widget;
 import com.google.common.collect.Lists;
 import com.mojang.blaze3d.systems.RenderSystem;
 import me.shedaniel.clothconfig2.api.ScissorsHandler;
-import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.Rectangle;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.minecraft.client.MinecraftClient;

+ 3 - 3
src/main/java/me/shedaniel/clothconfig2/gui/widget/DynamicNewSmoothScrollingEntryListWidget.java

@@ -1,7 +1,7 @@
 package me.shedaniel.clothconfig2.gui.widget;
 
 import me.shedaniel.clothconfig2.ClothConfigInitializer;
-import me.shedaniel.math.api.Rectangle;
+import me.shedaniel.math.Rectangle;
 import me.shedaniel.math.impl.PointHelper;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
@@ -122,8 +122,8 @@ public abstract class DynamicNewSmoothScrollingEntryListWidget<E extends Dynamic
             height = Math.max(10, height);
             int minY = Math.min(Math.max((int) this.getScroll() * (this.bottom - this.top - height) / maxScroll + this.top, this.top), this.bottom - height);
             
-            int bottomc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.fromMouse()) ? 168 : 128;
-            int topc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.fromMouse()) ? 222 : 172;
+            int bottomc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.ofMouse()) ? 168 : 128;
+            int topc = new Rectangle(scrollbarPositionMinX, minY, scrollbarPositionMaxX - scrollbarPositionMinX, height).contains(PointHelper.ofMouse()) ? 222 : 172;
             
             // Black Bar
             buffer.begin(7, VertexFormats.POSITION_TEXTURE_COLOR);

+ 4 - 0
src/main/java/me/shedaniel/clothconfig2/impl/FakeModifierKeyCodeAdderImpl.java

@@ -4,9 +4,11 @@ import me.shedaniel.clothconfig2.api.FakeModifierKeyCodeAdder;
 import me.shedaniel.clothconfig2.api.ModifierKeyCode;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
+import net.fabricmc.loader.api.FabricLoader;
 import net.minecraft.client.options.KeyBinding;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.function.Consumer;
 import java.util.function.Supplier;
@@ -22,6 +24,8 @@ public class FakeModifierKeyCodeAdderImpl implements FakeModifierKeyCodeAdder {
     
     @Override
     public List<KeyBinding> getFakeBindings() {
+        if (FabricLoader.getInstance().isModLoaded("amecs"))
+            return Collections.emptyList();
         List<KeyBinding> keyBindings = new ArrayList<>();
         for (Entry entry : entryList) {
             keyBindings.add(new FakeKeyBindings(entry.translationKey, entry.keyCode.get(), entry.defaultKeyCode.get(), entry.category, entry.onChanged));

+ 2 - 2
src/main/java/me/shedaniel/clothconfig2/mixin/MixinControlsOptionsScreen.java

@@ -23,7 +23,7 @@ public class MixinControlsOptionsScreen extends GameOptionsScreen {
         super(screen_1, gameOptions_1, text_1);
     }
     
-    @Inject(method = "init", at = @At("HEAD"))
+    @Inject(method = "init()V", at = @At("HEAD"))
     private void initHead(CallbackInfo info) {
         List<KeyBinding> newKeysAll = new ArrayList<>();
         KeyBinding[] var3 = minecraft.options.keysAll;
@@ -38,7 +38,7 @@ public class MixinControlsOptionsScreen extends GameOptionsScreen {
         ((GameOptionsHooks) minecraft.options).cloth_setKeysAll(newKeysAll.toArray(new KeyBinding[0]));
     }
     
-    @Inject(method = "init", at = @At("RETURN"))
+    @Inject(method = "init()V", at = @At("RETURN"))
     private void initReturn(CallbackInfo info) {
         List<KeyBinding> newKeysAll = new ArrayList<>();
         KeyBinding[] var3 = minecraft.options.keysAll;

+ 11 - 4
src/main/java/me/shedaniel/math/impl/PointHelper.java

@@ -4,21 +4,28 @@ import me.shedaniel.math.api.Point;
 import net.fabricmc.api.EnvType;
 import net.fabricmc.api.Environment;
 import net.minecraft.client.MinecraftClient;
+import org.jetbrains.annotations.ApiStatus;
 
 @Environment(EnvType.CLIENT)
 public class PointHelper {
-    public static Point fromMouse() {
+    @Deprecated
+    @ApiStatus.ScheduledForRemoval
+    public static me.shedaniel.math.api.Point fromMouse() {
         MinecraftClient client = MinecraftClient.getInstance();
         double mx = client.mouse.getX() * (double) client.getWindow().getScaledWidth() / (double) client.getWindow().getWidth();
         double my = client.mouse.getY() * (double) client.getWindow().getScaledHeight() / (double) client.getWindow().getHeight();
-        return new Point(mx, my);
+        return new me.shedaniel.math.api.Point(mx, my);
+    }
+    
+    public static Point ofMouse() {
+        return fromMouse();
     }
     
     public static int getMouseX() {
-        return fromMouse().x;
+        return ofMouse().x;
     }
     
     public static int getMouseY() {
-        return fromMouse().y;
+        return ofMouse().y;
     }
 }