Unknown 6 жил өмнө
parent
commit
ab5a458640

+ 3 - 0
CHANGELOG.md

@@ -1,3 +1,6 @@
+## v2.6.1.79
+- 75% less mixins
+- Updated to 19w14a
 ## v2.6.0.78
 - Added config to force enable april fools
 - Fix crash related to `getTotalPage()`

+ 4 - 4
build.gradle

@@ -8,7 +8,6 @@ plugins {
 sourceCompatibility = 1.8
 targetCompatibility = 1.8
 
-group = "me.shedaniel"
 archivesBaseName = "RoughlyEnoughItems"
 version = project.mod_version
 
@@ -30,13 +29,14 @@ processResources {
 }
 
 configurations {
-    contained {
+    included {
         transitive = false
     }
 }
 
 shadowJar {
-    configurations = [project.configurations.contained]
+    classifier = null
+    configurations = [project.configurations.included]
 }
 
 task remapShadowJar(type: RemapJar) {
@@ -53,5 +53,5 @@ dependencies {
     modCompile "cloth:Cloth:${cloth_version}"
 
     compile "blue.endless:jankson:${project.jankson_version}"
-    contained "blue.endless:jankson:${project.jankson_version}"
+    included "blue.endless:jankson:${project.jankson_version}"
 }

+ 4 - 5
gradle.properties

@@ -1,9 +1,8 @@
-mod_version=2.6.0.78
-minecraft_version=19w13b
-yarn_version=19w13b.1
+mod_version=2.6.1.79
+minecraft_version=19w14a
+yarn_version=19w14a.3
 fabric_version=0.2.6.117
 fabricloader_version=0.3.7.109
 pluginloader_version=1.14-1.0.6-8
-developermode_version=1.0.3
 jankson_version=1.1.0
-cloth_version=0.1.5.16
+cloth_version=0.1.6.19

+ 4 - 4
src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java

@@ -222,7 +222,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
                 
                 @Override
                 public void render(int mouseX, int mouseY, float delta) {
-                    blitOffset = 600f;
+                    blitOffset = 600;
                     super.render(mouseX, mouseY, delta);
                 }
             });
@@ -272,7 +272,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
     }
     
     private GameMode getCurrentGameMode() {
-        return MinecraftClient.getInstance().getNetworkHandler().method_2871(MinecraftClient.getInstance().player.getGameProfile().getId()).getGameMode();
+        return MinecraftClient.getInstance().getNetworkHandler().getScoreboardEntry(MinecraftClient.getInstance().player.getGameProfile().getId()).getGameMode();
     }
     
     private Rectangle getTextFieldArea() {
@@ -352,7 +352,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
             if (int_6 + int_8 + 6 > window.getScaledHeight())
                 int_6 = window.getScaledHeight() - int_8 - 6;
             
-            this.blitOffset = 1000f;
+            this.blitOffset = 1000;
             this.fillGradient(int_5 - 3, int_6 - 4, int_5 + int_3 + 3, int_6 - 3, -267386864, -267386864);
             this.fillGradient(int_5 - 3, int_6 + int_8 + 3, int_5 + int_3 + 3, int_6 + int_8 + 4, -267386864, -267386864);
             this.fillGradient(int_5 - 3, int_6 - 3, int_5 + int_3 + 3, int_6 + int_8 + 3, -267386864, -267386864);
@@ -371,7 +371,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra
                     int_6 += 2;
                 int_6 += 10;
             }
-            this.blitOffset = 0.0F;
+            this.blitOffset = 0;
             GlStateManager.enableLighting();
             GuiLighting.enable();
             GlStateManager.enableRescaleNormal();

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java

@@ -336,9 +336,9 @@ public class RecipeViewingScreen extends Screen {
         ScreenHelper.getLastOverlay().render(mouseX, mouseY, delta);
         ScreenHelper.getLastOverlay().lateRender(mouseX, mouseY, delta);
         if (choosePageActivated) {
-            blitOffset = 500.0f;
+            blitOffset = 500;
             this.fillGradient(0, 0, this.width, this.height, -1072689136, -804253680);
-            blitOffset = 0.0f;
+            blitOffset = 0;
             recipeChoosePageWidget.render(mouseX, mouseY, delta);
         }
     }

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/CraftableToggleButtonWidget.java

@@ -39,9 +39,9 @@ public abstract class CraftableToggleButtonWidget extends ButtonWidget {
         GuiLighting.disable();
         MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
         GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F);
-        this.blitOffset += 100f;
+        this.blitOffset += 100;
         this.blit(getBounds().x, getBounds().y, (56 + (RoughlyEnoughItemsCore.getConfigManager().isCraftableOnlyEnabled() ? 0 : 20)), 202, 20, 20);
-        this.blitOffset = 0f;
+        this.blitOffset = 0;
     }
     
     @Override

+ 2 - 2
src/main/java/me/shedaniel/rei/gui/widget/TabWidget.java

@@ -73,14 +73,14 @@ public class TabWidget extends HighlightableWidget {
             GuiLighting.disable();
             minecraft.getTextureManager().bindTexture(CHEST_GUI_TEXTURE);
             this.blit(bounds.x, bounds.y + 2, selected ? 28 : 0, 192, 28, (selected ? 30 : 27));
-            this.blitOffset = 100.0F;
+            this.blitOffset = 100;
             this.itemRenderer.zOffset = 100.0F;
             GuiLighting.enableForItems();
             this.itemRenderer.renderGuiItem(getItemStack(), l, i1);
             this.itemRenderer.renderGuiItemOverlay(minecraft.textRenderer, getItemStack(), l, i1);
             GlStateManager.disableLighting();
             this.itemRenderer.zOffset = 0.0F;
-            this.blitOffset = 0.0F;
+            this.blitOffset = 0;
             if (isHighlighted(mouseX, mouseY))
                 drawTooltip();
         }

+ 1 - 28
src/main/java/me/shedaniel/rei/mixin/MixinContainerScreen.java

@@ -1,22 +1,13 @@
 package me.shedaniel.rei.mixin;
 
-import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.listeners.ContainerScreenHooks;
-import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
 import net.minecraft.client.gui.ContainerScreen;
-import net.minecraft.client.gui.Screen;
-import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
 import net.minecraft.container.Slot;
-import net.minecraft.item.ItemGroup;
-import net.minecraft.text.TextComponent;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
 
 @Mixin(ContainerScreen.class)
-public class MixinContainerScreen extends Screen implements ContainerScreenHooks {
+public class MixinContainerScreen implements ContainerScreenHooks {
     
     @Shadow
     protected int left;
@@ -29,10 +20,6 @@ public class MixinContainerScreen extends Screen implements ContainerScreenHooks
     @Shadow
     protected Slot focusedSlot;
     
-    protected MixinContainerScreen(TextComponent textComponent_1) {
-        super(textComponent_1);
-    }
-    
     @Override
     public int rei_getContainerLeft() {
         return left;
@@ -58,18 +45,4 @@ public class MixinContainerScreen extends Screen implements ContainerScreenHooks
         return focusedSlot;
     }
     
-    // TODO: Make into Cloth events
-    @Inject(method = "keyPressed(III)Z", at = @At("HEAD"), cancellable = true)
-    public void keyPressed(int int_1, int int_2, int int_3, CallbackInfoReturnable<Boolean> ci) {
-        if (minecraft.currentScreen instanceof CreativePlayerInventoryScreen) {
-            CreativePlayerInventoryScreenHooks creativePlayerInventoryScreenHooks = (CreativePlayerInventoryScreenHooks) minecraft.currentScreen;
-            if (creativePlayerInventoryScreenHooks.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
-                return;
-        }
-        if (ScreenHelper.getLastOverlay().keyPressed(int_1, int_2, int_3)) {
-            ci.setReturnValue(true);
-            ci.cancel();
-        }
-    }
-    
 }

+ 1 - 22
src/main/java/me/shedaniel/rei/mixin/MixinCreativePlayerInventoryScreen.java

@@ -1,30 +1,20 @@
 package me.shedaniel.rei.mixin;
 
-import me.shedaniel.rei.client.ScreenHelper;
 import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
-import net.minecraft.client.gui.ingame.AbstractPlayerInventoryScreen;
 import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
 import net.minecraft.entity.player.PlayerInventory;
-import net.minecraft.item.ItemGroup;
 import net.minecraft.text.TextComponent;
 import org.spongepowered.asm.mixin.Mixin;
 import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
 
 @Mixin(CreativePlayerInventoryScreen.class)
-public abstract class MixinCreativePlayerInventoryScreen extends AbstractPlayerInventoryScreen<CreativePlayerInventoryScreen.CreativeContainer> implements CreativePlayerInventoryScreenHooks {
+public abstract class MixinCreativePlayerInventoryScreen implements CreativePlayerInventoryScreenHooks {
     
     @Shadow
     private static int selectedTab;
     @Shadow
     private boolean field_2888;
     
-    public MixinCreativePlayerInventoryScreen(CreativePlayerInventoryScreen.CreativeContainer container_1, PlayerInventory playerInventory_1, TextComponent textComponent_1) {
-        super(container_1, playerInventory_1, textComponent_1);
-    }
-    
     @Shadow
     protected abstract boolean doRenderScrollBar();
     
@@ -43,15 +33,4 @@ public abstract class MixinCreativePlayerInventoryScreen extends AbstractPlayerI
         return field_2888;
     }
     
-    // Inject to fix pressing T to switch tab
-    // TODO: Make into Cloth events
-    @Inject(method = "keyPressed", at = @At("HEAD"), cancellable = true)
-    public void keyPressed(int int_1, int int_2, int int_3, CallbackInfoReturnable<Boolean> ci) {
-        if (selectedTab == ItemGroup.INVENTORY.getIndex())
-            if (ScreenHelper.getLastOverlay().keyPressed(int_1, int_2, int_3)) {
-                ci.setReturnValue(true);
-                ci.cancel();
-            }
-    }
-    
 }

+ 0 - 38
src/main/java/me/shedaniel/rei/mixin/MixinGameRenderer.java

@@ -1,38 +0,0 @@
-package me.shedaniel.rei.mixin;
-
-import me.shedaniel.cloth.api.ClientUtils;
-import me.shedaniel.rei.client.ScreenHelper;
-import me.shedaniel.rei.listeners.CreativePlayerInventoryScreenHooks;
-import net.minecraft.client.MinecraftClient;
-import net.minecraft.client.gui.ContainerScreen;
-import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
-import net.minecraft.client.render.GameRenderer;
-import net.minecraft.item.ItemGroup;
-import net.minecraft.resource.SynchronousResourceReloadListener;
-import org.spongepowered.asm.mixin.Final;
-import org.spongepowered.asm.mixin.Mixin;
-import org.spongepowered.asm.mixin.Shadow;
-import org.spongepowered.asm.mixin.injection.At;
-import org.spongepowered.asm.mixin.injection.Inject;
-import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-
-@Mixin(GameRenderer.class)
-public abstract class MixinGameRenderer implements AutoCloseable, SynchronousResourceReloadListener {
-    
-    @Shadow
-    @Final
-    private MinecraftClient client;
-    
-    // TODO: Move to Cloth next snapshot
-    @Inject(method = "render(FJZ)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/Screen;render(IIF)V", shift = At.Shift.AFTER, ordinal = 0))
-    public void renderScreen(float float_1, long long_1, boolean boolean_1, CallbackInfo ci) {
-        if (client.currentScreen instanceof ContainerScreen) {
-            if (client.currentScreen instanceof CreativePlayerInventoryScreen) {
-                CreativePlayerInventoryScreenHooks creativePlayerInventoryScreenHooks = (CreativePlayerInventoryScreenHooks) client.currentScreen;
-                if (creativePlayerInventoryScreenHooks.rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
-                    return;
-            }
-            ScreenHelper.getLastOverlay().lateRender((int) ClientUtils.getInstance().getMouseX(), (int) ClientUtils.getInstance().getMouseY(), client.getLastFrameDuration());
-        }
-    }
-}

+ 22 - 9
src/main/java/me/shedaniel/rei/utils/ClothRegistry.java

@@ -22,7 +22,6 @@ import net.minecraft.client.gui.Screen;
 import net.minecraft.client.gui.ingame.CreativePlayerInventoryScreen;
 import net.minecraft.client.gui.ingame.PlayerInventoryScreen;
 import net.minecraft.client.gui.widget.RecipeBookButtonWidget;
-import net.minecraft.client.resource.language.I18n;
 import net.minecraft.item.ItemGroup;
 import net.minecraft.util.ActionResult;
 
@@ -101,10 +100,31 @@ public class ClothRegistry {
                     return ActionResult.SUCCESS;
             return ActionResult.PASS;
         });
+        ClothClientHooks.SCREEN_LATE_RENDER.register((minecraftClient, screen, i, i1, v) -> {
+            if (screen instanceof CreativePlayerInventoryScreen)
+                if (((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
+                    return;
+            if (screen instanceof ContainerScreen)
+                ScreenHelper.getLastOverlay().lateRender(i, i1, v);
+        });
+        ClothClientHooks.SCREEN_KEY_PRESSED.register((minecraftClient, screen, i, i1, i2) -> {
+            if (screen instanceof CreativePlayerInventoryScreen)
+                if (((CreativePlayerInventoryScreenHooks) screen).rei_getSelectedTab() != ItemGroup.INVENTORY.getIndex())
+                    return ActionResult.PASS;
+            if (ScreenHelper.getLastOverlay().keyPressed(i, i1, i2))
+                return ActionResult.SUCCESS;
+            return ActionResult.PASS;
+        });
     }
     
     public static void openConfigScreen(Screen parent) {
-        ConfigScreenBuilder builder = new ClothConfigScreen.Builder(parent, I18n.translate("text.rei.config.title"), null);
+        ConfigScreenBuilder builder = new ClothConfigScreen.Builder(parent, "text.rei.config.title", savedConfig -> {
+            try {
+                RoughlyEnoughItemsCore.getConfigManager().saveConfig();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        });
         builder.addCategory("text.rei.config.general").addOption(new BooleanListEntry("text.rei.config.cheating", RoughlyEnoughItemsCore.getConfigManager().getConfig().cheating, "text.cloth.reset_value", () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().cheating = bool));
         ConfigScreenBuilder.CategoryBuilder appearance = builder.addCategory("text.rei.config.appearance");
         appearance.addOption(new BooleanListEntry("text.rei.config.side_search_box", RoughlyEnoughItemsCore.getConfigManager().getConfig().sideSearchField, "text.cloth.reset_value", () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().sideSearchField = bool));
@@ -123,13 +143,6 @@ public class ClothRegistry {
         advanced.addOption(new BooleanListEntry("text.rei.config.enable_legacy_speedcraft_support", RoughlyEnoughItemsCore.getConfigManager().getConfig().enableLegacySpeedCraftSupport, "text.cloth.reset_value", () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().enableLegacySpeedCraftSupport = bool));
         ConfigScreenBuilder.CategoryBuilder aprilFools = builder.addCategory("text.rei.config.april_fools");
         aprilFools.addOption(new BooleanListEntry("text.rei.config.april_fools.2019", RoughlyEnoughItemsCore.getConfigManager().getConfig().aprilFoolsFish2019, "text.cloth.reset_value", () -> false, bool -> RoughlyEnoughItemsCore.getConfigManager().getConfig().aprilFoolsFish2019 = bool));
-        builder.setOnSave(savedConfig -> {
-            try {
-                RoughlyEnoughItemsCore.getConfigManager().saveConfig();
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
-        });
         MinecraftClient.getInstance().openScreen(builder.build());
     }
     

+ 1 - 2
src/main/resources/roughlyenoughitems.client.json

@@ -7,8 +7,7 @@
     "MixinContainerScreen",
     "MixinCreativePlayerInventoryScreen",
     "MixinBrewingRecipeRegistry",
-    "MixinRecipeBookGui",
-    "MixinGameRenderer"
+    "MixinRecipeBookGui"
   ],
   "injectors": {
     "defaultRequire": 1