From 8e36add84c06d68d1186f3889f606965147b2415 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Wed, 5 Feb 2020 23:21:44 +0200 Subject: [PATCH 01/20] Update to MC 1.16 snapshot 20w06a --- build.properties | 10 +- .../masa/itemscroller/event/InputHandler.java | 20 +- .../itemscroller/event/KeybindCallbacks.java | 22 +- .../event/RenderEventHandler.java | 22 +- ...Screen.java => IMixinContainerScreen.java} | 6 +- .../itemscroller/recipes/CraftingHandler.java | 28 +-- .../itemscroller/recipes/RecipePattern.java | 12 +- .../itemscroller/recipes/RecipeStorage.java | 14 +- .../masa/itemscroller/util/AccessorUtils.java | 36 +-- .../dy/masa/itemscroller/util/InputUtils.java | 6 +- .../itemscroller/util/InventoryUtils.java | 208 +++++++++--------- src/main/resources/fabric.mod.json | 2 +- src/main/resources/mixins.itemscroller.json | 2 +- 13 files changed, 194 insertions(+), 194 deletions(-) rename src/main/java/fi/dy/masa/itemscroller/mixin/{IMixinAbstractContainerScreen.java => IMixinContainerScreen.java} (82%) diff --git a/build.properties b/build.properties index d071fd5d..7a40613f 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.15.2 -minecraft_version = 1.15.2 -mappings_version = 1.15.2+build.1 +minecraft_version_out = 1.16-snap-20w06a +minecraft_version = 20w06a +mappings_version = 20w06a+build.2 -fabric_loader_version = 0.7.5+build.178 -mod_menu_version = 1.8.3+build.19 +fabric_loader_version = 0.7.8+build.184 +mod_menu_version = 1.8.5+build.23 diff --git a/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java index 38f0d04a..67585b03 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java @@ -1,6 +1,11 @@ package fi.dy.masa.itemscroller.event; import org.lwjgl.glfw.GLFW; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; +import net.minecraft.container.Slot; +import net.minecraft.util.math.MathHelper; import fi.dy.masa.itemscroller.Reference; import fi.dy.masa.itemscroller.config.Configs; import fi.dy.masa.itemscroller.config.Hotkeys; @@ -17,11 +22,6 @@ import fi.dy.masa.malilib.hotkeys.IMouseInputHandler; import fi.dy.masa.malilib.util.GuiUtils; import fi.dy.masa.malilib.util.KeyCodes; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; -import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; -import net.minecraft.container.Slot; -import net.minecraft.util.math.MathHelper; public class InputHandler implements IKeybindProvider, IKeyboardInputHandler, IMouseInputHandler { @@ -122,11 +122,11 @@ private boolean handleInput(int keyCode, boolean keyState, double dWheel) final int mouseX = fi.dy.masa.malilib.util.InputUtils.getMouseX(); final int mouseY = fi.dy.masa.malilib.util.InputUtils.getMouseY(); - if (GuiUtils.getCurrentScreen() instanceof AbstractContainerScreen && + if (GuiUtils.getCurrentScreen() instanceof ContainerScreen && (GuiUtils.getCurrentScreen() instanceof CreativeInventoryScreen) == false && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false) { - AbstractContainerScreen gui = (AbstractContainerScreen) GuiUtils.getCurrentScreen(); + ContainerScreen gui = (ContainerScreen) GuiUtils.getCurrentScreen(); RecipeStorage recipes = RecipeStorage.getInstance(); if (dWheel != 0) @@ -204,14 +204,14 @@ public void onMouseMove(int mouseX, int mouseY) if (this.callbacks.functionalityEnabled() && mc.player != null && - GuiUtils.getCurrentScreen() instanceof AbstractContainerScreen && + GuiUtils.getCurrentScreen() instanceof ContainerScreen && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false) { - this.handleDragging((AbstractContainerScreen) GuiUtils.getCurrentScreen(), mc, mouseX, mouseY, false); + this.handleDragging((ContainerScreen) GuiUtils.getCurrentScreen(), mc, mouseX, mouseY, false); } } - private boolean handleDragging(AbstractContainerScreen gui, MinecraftClient mc, int mouseX, int mouseY, boolean isClick) + private boolean handleDragging(ContainerScreen gui, MinecraftClient mc, int mouseX, int mouseY, boolean isClick) { MoveAction action = InventoryUtils.getActiveMoveAction(); diff --git a/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java b/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java index 7a957cbf..c48a5639 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java @@ -1,5 +1,12 @@ package fi.dy.masa.itemscroller.event; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; +import net.minecraft.client.gui.screen.ingame.InventoryScreen; +import net.minecraft.container.Slot; +import net.minecraft.sound.SoundEvents; import fi.dy.masa.itemscroller.ItemScroller; import fi.dy.masa.itemscroller.config.Configs; import fi.dy.masa.itemscroller.config.Hotkeys; @@ -18,13 +25,6 @@ import fi.dy.masa.malilib.hotkeys.KeyAction; import fi.dy.masa.malilib.interfaces.IClientTickHandler; import fi.dy.masa.malilib.util.GuiUtils; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; -import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; -import net.minecraft.client.gui.screen.ingame.InventoryScreen; -import net.minecraft.container.Slot; -import net.minecraft.sound.SoundEvents; public class KeybindCallbacks implements IHotkeyCallback, IClientTickHandler { @@ -80,12 +80,12 @@ else if (key == Hotkeys.KEY_OPEN_CONFIG_GUI.getKeybind()) return true; } - if (this.disabled || mc == null || mc.player == null || (GuiUtils.getCurrentScreen() instanceof AbstractContainerScreen) == false) + if (this.disabled || mc == null || mc.player == null || (GuiUtils.getCurrentScreen() instanceof ContainerScreen) == false) { return false; } - AbstractContainerScreen gui = (AbstractContainerScreen) GuiUtils.getCurrentScreen(); + ContainerScreen gui = (ContainerScreen) GuiUtils.getCurrentScreen(); Slot slot = AccessorUtils.getSlotUnderMouse(gui); RecipeStorage recipes = RecipeStorage.getInstance(); MoveAction moveAction = InputUtils.getDragMoveAction(key); @@ -170,13 +170,13 @@ public void onClientTick(MinecraftClient mc) if (this.disabled == false && mc != null && mc.player != null && - GuiUtils.getCurrentScreen() instanceof AbstractContainerScreen && + GuiUtils.getCurrentScreen() instanceof ContainerScreen && (GuiUtils.getCurrentScreen() instanceof CreativeInventoryScreen) == false && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false && Hotkeys.KEY_MASS_CRAFT.getKeybind().isKeybindHeld()) { Screen guiScreen = GuiUtils.getCurrentScreen(); - AbstractContainerScreen gui = (AbstractContainerScreen) guiScreen; + ContainerScreen gui = (ContainerScreen) guiScreen; Slot outputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); if (outputSlot != null) diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index 52ff7d68..8822ab08 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.platform.GlStateManager; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.util.GlAllocationUtils; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Vec3d; @@ -45,9 +45,9 @@ public static RenderEventHandler instance() public void onDrawBackgroundPost() { - if (GuiUtils.getCurrentScreen() instanceof AbstractContainerScreen && InputUtils.isRecipeViewOpen()) + if (GuiUtils.getCurrentScreen() instanceof ContainerScreen && InputUtils.isRecipeViewOpen()) { - AbstractContainerScreen gui = (AbstractContainerScreen) GuiUtils.getCurrentScreen(); + ContainerScreen gui = (ContainerScreen) GuiUtils.getCurrentScreen(); RecipeStorage recipes = RecipeStorage.getInstance(); final int first = recipes.getFirstVisibleRecipeId(); final int countPerPage = recipes.getRecipeCountPerPage(); @@ -89,9 +89,9 @@ public void onDrawBackgroundPost() public void onDrawScreenPost() { - if (GuiUtils.getCurrentScreen() instanceof AbstractContainerScreen && InputUtils.isRecipeViewOpen()) + if (GuiUtils.getCurrentScreen() instanceof ContainerScreen && InputUtils.isRecipeViewOpen()) { - AbstractContainerScreen gui = (AbstractContainerScreen) this.mc.currentScreen; + ContainerScreen gui = (ContainerScreen) this.mc.currentScreen; RecipeStorage recipes = RecipeStorage.getInstance(); final int mouseX = fi.dy.masa.malilib.util.InputUtils.getMouseX(); @@ -116,7 +116,7 @@ else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) } } - private void calculateRecipePositions(AbstractContainerScreen gui) + private void calculateRecipePositions(ContainerScreen gui) { RecipeStorage recipes = RecipeStorage.getInstance(); final int gapHorizontal = 2; @@ -147,7 +147,7 @@ private void calculateRecipePositions(AbstractContainerScreen gui) this.columnWidth = stackBaseHeight + this.numberTextWidth + this.gapColumn; } - private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, AbstractContainerScreen gui) + private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, ContainerScreen gui) { ItemStack stack = recipe.getResult(); @@ -157,7 +157,7 @@ private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, Ab } } - public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, AbstractContainerScreen gui) + public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, ContainerScreen gui) { if (InputUtils.isRecipeViewOpen()) { @@ -186,7 +186,7 @@ public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, Abs return -1; } - private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, AbstractContainerScreen gui, boolean selected) + private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, ContainerScreen gui, boolean selected) { final TextRenderer font = this.mc.textRenderer; final String indexStr = String.valueOf(recipeId + 1); @@ -208,7 +208,7 @@ private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int GlStateManager.popMatrix(); } - private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, AbstractContainerScreen gui) + private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, ContainerScreen gui) { ItemStack[] items = recipe.getRecipeItems(); final int recipeDimensions = (int) Math.ceil(Math.sqrt(recipe.getRecipeLength())); @@ -227,7 +227,7 @@ private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, Abs } } - private ItemStack getHoveredRecipeIngredient(int mouseX, int mouseY, RecipePattern recipe, int recipeCountPerPage, AbstractContainerScreen gui) + private ItemStack getHoveredRecipeIngredient(int mouseX, int mouseY, RecipePattern recipe, int recipeCountPerPage, ContainerScreen gui) { final int recipeDimensions = (int) Math.ceil(Math.sqrt(recipe.getRecipeLength())); int scaledStackDimensions = (int) (16 * this.scale); diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinAbstractContainerScreen.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java similarity index 82% rename from src/main/java/fi/dy/masa/itemscroller/mixin/IMixinAbstractContainerScreen.java rename to src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java index 9b0e8f6d..8f6ba604 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinAbstractContainerScreen.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java @@ -3,12 +3,12 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.container.Slot; import net.minecraft.container.SlotActionType; -@Mixin(AbstractContainerScreen.class) -public interface IMixinAbstractContainerScreen +@Mixin(ContainerScreen.class) +public interface IMixinContainerScreen { @Invoker("getSlotAt") Slot getSlotAtPositionInvoker(double x, double y); diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java b/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java index 0eec659c..988fd774 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java @@ -5,16 +5,16 @@ import java.util.Map; import java.util.Set; import javax.annotation.Nullable; -import fi.dy.masa.itemscroller.ItemScroller; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.container.Container; import net.minecraft.container.Slot; +import fi.dy.masa.itemscroller.ItemScroller; public class CraftingHandler { private static final Map CRAFTING_GRID_SLOTS = new HashMap(); - private static final Set>> CRAFTING_GUIS = new HashSet<>(); + private static final Set>> CRAFTING_GUIS = new HashSet<>(); public static void clearDefinitions() { @@ -27,7 +27,7 @@ public static boolean addCraftingGridDefinition(String guiClassName, String slot { try { - Class> guiClass = (Class>) Class.forName(guiClassName); + Class> guiClass = (Class>) Class.forName(guiClassName); Class slotClass = (Class) Class.forName(slotClassName); CRAFTING_GRID_SLOTS.put(new CraftingOutputSlot(guiClass, slotClass, outputSlot), range); @@ -46,7 +46,7 @@ public static boolean addCraftingGridDefinition(String guiClassName, String slot public static boolean isCraftingGui(Screen gui) { - return (gui instanceof AbstractContainerScreen) && CRAFTING_GUIS.contains(((AbstractContainerScreen) gui).getClass()); + return (gui instanceof ContainerScreen) && CRAFTING_GUIS.contains(((ContainerScreen) gui).getClass()); } /** @@ -56,17 +56,17 @@ public static boolean isCraftingGui(Screen gui) * @return the SlotRange of the crafting grid, or null, if the given slot is not a crafting output slot */ @Nullable - public static SlotRange getCraftingGridSlots(AbstractContainerScreen gui, Slot slot) + public static SlotRange getCraftingGridSlots(ContainerScreen gui, Slot slot) { return CRAFTING_GRID_SLOTS.get(CraftingOutputSlot.from(gui, slot)); } @Nullable - public static Slot getFirstCraftingOutputSlotForGui(AbstractContainerScreen gui) + public static Slot getFirstCraftingOutputSlotForGui(ContainerScreen gui) { if (CRAFTING_GUIS.contains(gui.getClass())) { - for (Slot slot : gui.getContainer().slotList) + for (Slot slot : gui.getContainer().slots) { if (getCraftingGridSlots(gui, slot) != null) { @@ -80,11 +80,11 @@ public static Slot getFirstCraftingOutputSlotForGui(AbstractContainerScreen> guiClass; + private final Class> guiClass; private final Class slotClass; private final int outputSlot; - private CraftingOutputSlot (Class> guiClass, Class slotClass, int outputSlot) + private CraftingOutputSlot (Class> guiClass, Class slotClass, int outputSlot) { this.guiClass = guiClass; this.slotClass = slotClass; @@ -92,12 +92,12 @@ private CraftingOutputSlot (Class> guiClass } @SuppressWarnings("unchecked") - public static CraftingOutputSlot from(AbstractContainerScreen gui, Slot slot) + public static CraftingOutputSlot from(ContainerScreen gui, Slot slot) { - return new CraftingOutputSlot((Class>) gui.getClass(), slot.getClass(), slot.id); + return new CraftingOutputSlot((Class>) gui.getClass(), slot.getClass(), slot.id); } - public Class> getGuiClass() + public Class> getGuiClass() { return this.guiClass; } @@ -112,7 +112,7 @@ public int getSlotNumber() return this.outputSlot; } - public boolean matches(AbstractContainerScreen gui, Slot slot, int outputSlot) + public boolean matches(ContainerScreen gui, Slot slot, int outputSlot) { return outputSlot == this.outputSlot && gui.getClass() == this.guiClass && slot.getClass() == this.slotClass; } diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java index 59670bf9..cd53ecf3 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java @@ -1,15 +1,15 @@ package fi.dy.masa.itemscroller.recipes; import javax.annotation.Nonnull; -import fi.dy.masa.itemscroller.recipes.CraftingHandler.SlotRange; -import fi.dy.masa.itemscroller.util.Constants; -import fi.dy.masa.itemscroller.util.InventoryUtils; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.container.Container; import net.minecraft.container.Slot; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; +import fi.dy.masa.itemscroller.recipes.CraftingHandler.SlotRange; +import fi.dy.masa.itemscroller.util.Constants; +import fi.dy.masa.itemscroller.util.InventoryUtils; public class RecipePattern { @@ -45,7 +45,7 @@ public void ensureRecipeSizeAndClearRecipe(int size) this.clearRecipe(); } - public void storeCraftingRecipe(Slot slot, AbstractContainerScreen gui, boolean clearIfEmpty) + public void storeCraftingRecipe(Slot slot, ContainerScreen gui, boolean clearIfEmpty) { SlotRange range = CraftingHandler.getCraftingGridSlots(gui, slot); @@ -54,7 +54,7 @@ public void storeCraftingRecipe(Slot slot, AbstractContainerScreen gui, boolean clearIfEmpty) + public void storeCraftingRecipeToCurrentSelection(Slot slot, ContainerScreen gui, boolean clearIfEmpty) { this.storeCraftingRecipe(this.getSelection(), slot, gui, clearIfEmpty); } - public void storeCraftingRecipe(int index, Slot slot, AbstractContainerScreen gui, boolean clearIfEmpty) + public void storeCraftingRecipe(int index, Slot slot, ContainerScreen gui, boolean clearIfEmpty) { this.getRecipe(index).storeCraftingRecipe(slot, gui, clearIfEmpty); this.dirty = true; diff --git a/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java index b3f6d6b8..7458643e 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java @@ -1,48 +1,48 @@ package fi.dy.masa.itemscroller.util; -import fi.dy.masa.itemscroller.mixin.IMixinAbstractContainerScreen; -import fi.dy.masa.itemscroller.mixin.IMixinMerchantScreen; -import fi.dy.masa.itemscroller.mixin.IMixinSlot; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; import net.minecraft.container.Slot; import net.minecraft.container.SlotActionType; +import fi.dy.masa.itemscroller.mixin.IMixinContainerScreen; +import fi.dy.masa.itemscroller.mixin.IMixinMerchantScreen; +import fi.dy.masa.itemscroller.mixin.IMixinSlot; public class AccessorUtils { - public static Slot getSlotUnderMouse(AbstractContainerScreen gui) + public static Slot getSlotUnderMouse(ContainerScreen gui) { - return ((IMixinAbstractContainerScreen) gui).getHoveredSlot(); + return ((IMixinContainerScreen) gui).getHoveredSlot(); } - public static Slot getSlotAtPosition(AbstractContainerScreen gui, int x, int y) + public static Slot getSlotAtPosition(ContainerScreen gui, int x, int y) { - return ((IMixinAbstractContainerScreen) gui).getSlotAtPositionInvoker(x, y); + return ((IMixinContainerScreen) gui).getSlotAtPositionInvoker(x, y); } - public static void handleMouseClick(AbstractContainerScreen gui, Slot slotIn, int slotId, int mouseButton, SlotActionType type) + public static void handleMouseClick(ContainerScreen gui, Slot slotIn, int slotId, int mouseButton, SlotActionType type) { - ((IMixinAbstractContainerScreen) gui).handleMouseClickInvoker(slotIn, slotId, mouseButton, type); + ((IMixinContainerScreen) gui).handleMouseClickInvoker(slotIn, slotId, mouseButton, type); } - public static int getGuiLeft(AbstractContainerScreen gui) + public static int getGuiLeft(ContainerScreen gui) { - return ((IMixinAbstractContainerScreen) gui).getGuiLeft(); + return ((IMixinContainerScreen) gui).getGuiLeft(); } - public static int getGuiTop(AbstractContainerScreen gui) + public static int getGuiTop(ContainerScreen gui) { - return ((IMixinAbstractContainerScreen) gui).getGuiTop(); + return ((IMixinContainerScreen) gui).getGuiTop(); } - public static int getGuiXSize(AbstractContainerScreen gui) + public static int getGuiXSize(ContainerScreen gui) { - return ((IMixinAbstractContainerScreen) gui).getGuiSizeX(); + return ((IMixinContainerScreen) gui).getGuiSizeX(); } - public static int getGuiYSize(AbstractContainerScreen gui) + public static int getGuiYSize(ContainerScreen gui) { - return ((IMixinAbstractContainerScreen) gui).getGuiSizeY(); + return ((IMixinContainerScreen) gui).getGuiSizeY(); } public static int getSelectedMerchantRecipe(MerchantScreen gui) diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java index d0cbb251..55999be5 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java @@ -1,13 +1,13 @@ package fi.dy.masa.itemscroller.util; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import fi.dy.masa.itemscroller.config.Hotkeys; import fi.dy.masa.itemscroller.event.KeybindCallbacks; import fi.dy.masa.itemscroller.recipes.CraftingHandler; import fi.dy.masa.malilib.hotkeys.IKeybind; import fi.dy.masa.malilib.hotkeys.KeybindMulti; import fi.dy.masa.malilib.util.GuiUtils; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; public class InputUtils { @@ -19,7 +19,7 @@ public static boolean isRecipeViewOpen() CraftingHandler.isCraftingGui(GuiUtils.getCurrentScreen()); } - public static boolean canShiftDropItems(AbstractContainerScreen gui, MinecraftClient mc, int mouseX, int mouseY) + public static boolean canShiftDropItems(ContainerScreen gui, MinecraftClient mc, int mouseX, int mouseY) { if (InventoryUtils.isStackEmpty(mc.player.inventory.getCursorStack()) == false) { diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java index 1eec3502..5dd44dd9 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java @@ -11,7 +11,7 @@ import java.util.Set; import javax.annotation.Nullable; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.AbstractContainerScreen; +import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; @@ -99,7 +99,7 @@ public static String getStackString(ItemStack stack) return ""; } - public static void debugPrintSlotInfo(AbstractContainerScreen gui, Slot slot) + public static void debugPrintSlotInfo(ContainerScreen gui, Slot slot) { if (slot == null) { @@ -107,7 +107,7 @@ public static void debugPrintSlotInfo(AbstractContainerScreen", hasSlot ? " true" : "false", stackStr, - gui.getContainer().slotList.size())); + gui.getContainer().slots.size())); } - private static boolean isValidSlot(Slot slot, AbstractContainerScreen gui, boolean requireItems) + private static boolean isValidSlot(Slot slot, ContainerScreen gui, boolean requireItems) { Container container = gui.getContainer(); - return container != null && container.slotList != null && - slot != null && container.slotList.contains(slot) && + return container != null && container.slots != null && + slot != null && container.slots.contains(slot) && (requireItems == false || slot.hasStack()) && Configs.SLOT_BLACKLIST.contains(slot.getClass().getName()) == false; } - public static boolean isCraftingSlot(AbstractContainerScreen gui, @Nullable Slot slot) + public static boolean isCraftingSlot(ContainerScreen gui, @Nullable Slot slot) { return slot != null && CraftingHandler.getCraftingGridSlots(gui, slot) != null; } @@ -138,7 +138,7 @@ public static boolean isCraftingSlot(AbstractContainerScreen gui) + public static boolean canShiftPlaceItems(ContainerScreen gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -160,7 +160,7 @@ public static boolean canShiftPlaceItems(AbstractContainerScreen gui, RecipeStorage recipes, boolean scrollingUp) + public static boolean tryMoveItems(ContainerScreen gui, RecipeStorage recipes, boolean scrollingUp) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -252,7 +252,7 @@ else if (getStackSize(stack) < slot.getMaxStackAmount(stack)) return false; } - public static boolean dragMoveItems(AbstractContainerScreen gui, MinecraftClient mc, MoveAction action, int mouseX, int mouseY, boolean isClick) + public static boolean dragMoveItems(ContainerScreen gui, MinecraftClient mc, MoveAction action, int mouseX, int mouseY, boolean isClick) { if (isStackEmpty(mc.player.inventory.getCursorStack()) == false) { @@ -355,7 +355,7 @@ public static void stopDragging() DRAGGED_SLOTS.clear(); } - private static boolean dragMoveFromSlotAtPosition(AbstractContainerScreen gui, int x, int y, MoveAction action) + private static boolean dragMoveFromSlotAtPosition(ContainerScreen gui, int x, int y, MoveAction action) { if (gui instanceof CreativeInventoryScreen) { @@ -426,7 +426,7 @@ private static boolean dragMoveFromSlotAtPosition(AbstractContainerScreen gui, int x, int y, MoveAction action) + private static boolean dragMoveFromSlotAtPositionCreative(ContainerScreen gui, int x, int y, MoveAction action) { CreativeInventoryScreen guiCreative = (CreativeInventoryScreen) gui; Slot slot = AccessorUtils.getSlotAtPosition(gui, x, y); @@ -469,7 +469,7 @@ private static boolean dragMoveFromSlotAtPositionCreative(AbstractContainerScree rightClickSlot(guiCreative, slot, slotNumber); // Delete the rest of the stack by placing it in the first creative "source slot" - Slot slotFirst = gui.getContainer().slotList.get(0); + Slot slotFirst = gui.getContainer().slots.get(0); leftClickSlot(guiCreative, slotFirst, slotFirst.id); } @@ -520,14 +520,14 @@ private static boolean dragMoveFromSlotAtPositionCreative(AbstractContainerScree return cancel; } - public static void dropStacks(AbstractContainerScreen gui, ItemStack stackReference, Slot slotReference, boolean sameInventory) + public static void dropStacks(ContainerScreen gui, ItemStack stackReference, Slot slotReference, boolean sameInventory) { if (slotReference != null && isStackEmpty(stackReference) == false) { Container container = gui.getContainer(); stackReference = stackReference.copy(); - for (Slot slot : container.slotList) + for (Slot slot : container.slots) { // If this slot is in the same inventory that the items were picked up to the cursor from // and the stack is identical to the one in the cursor, then this stack will get dropped. @@ -540,7 +540,7 @@ public static void dropStacks(AbstractContainerScreen gui, } } - public static boolean shiftDropItems(AbstractContainerScreen gui) + public static boolean shiftDropItems(ContainerScreen gui) { ItemStack stackReference = MinecraftClient.getInstance().player.inventory.getCursorStack(); @@ -558,7 +558,7 @@ public static boolean shiftDropItems(AbstractContainerScreen gui) + public static boolean shiftPlaceItems(Slot slot, ContainerScreen gui) { // Left click to place the items from the cursor to the slot leftClickSlot(gui, slot.id); @@ -650,7 +650,7 @@ else if (slot.hasStack()) return false; } - private static boolean tryMoveSingleItemToOtherInventory(Slot slot, AbstractContainerScreen gui) + private static boolean tryMoveSingleItemToOtherInventory(Slot slot, ContainerScreen gui) { ItemStack stackOrig = slot.getStack(); Container container = gui.getContainer(); @@ -686,7 +686,7 @@ private static boolean tryMoveSingleItemToOtherInventory(Slot slot, AbstractCont if (targetSlot >= 0) { // Remove the dummy item from the target slot (on the client side) - container.slotList.get(targetSlot).takeStack(1); + container.slots.get(targetSlot).takeStack(1); // Restore the original stack to the slot under the cursor (on the client side) restoreOriginalStacks(container, originalStacks); @@ -702,7 +702,7 @@ private static boolean tryMoveSingleItemToOtherInventory(Slot slot, AbstractCont return false; } - private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, AbstractContainerScreen gui) + private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, ContainerScreen gui) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -727,7 +727,7 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, AbstractC int tempSlotNum = -1; // Find some other slot where to store one of the items temporarily - for (Slot slotTmp : gui.getContainer().slotList) + for (Slot slotTmp : gui.getContainer().slots) { if (slotTmp.id != slot.id && areSlotsInSameInventory(slotTmp, slot, true) && @@ -826,7 +826,7 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, AbstractC return false; } - private static boolean tryMoveSingleItemToThisInventory(Slot slot, AbstractContainerScreen gui) + private static boolean tryMoveSingleItemToThisInventory(Slot slot, ContainerScreen gui) { Container container = gui.getContainer(); ItemStack stackOrig = slot.getStack(); @@ -837,9 +837,9 @@ private static boolean tryMoveSingleItemToThisInventory(Slot slot, AbstractConta return false; } - for (int slotNum = container.slotList.size() - 1; slotNum >= 0; slotNum--) + for (int slotNum = container.slots.size() - 1; slotNum >= 0; slotNum--) { - Slot slotTmp = container.slotList.get(slotNum); + Slot slotTmp = container.slots.get(slotNum); ItemStack stackTmp = slotTmp.getStack(); if (areSlotsInSameInventory(slotTmp, slot) == false && @@ -856,7 +856,7 @@ private static boolean tryMoveSingleItemToThisInventory(Slot slot, AbstractConta // If we weren't able to move any items from another inventory, then try to move items // within the same inventory (mostly between the hotbar and the player inventory) /* - for (Slot slotTmp : container.slotList) + for (Slot slotTmp : container.slots) { ItemStack stackTmp = slotTmp.getStack(); @@ -875,19 +875,19 @@ private static boolean tryMoveSingleItemToThisInventory(Slot slot, AbstractConta return false; } - public static void tryMoveStacks(Slot slot, AbstractContainerScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) + public static void tryMoveStacks(Slot slot, ContainerScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) { tryMoveStacks(slot.getStack(), slot, gui, matchingOnly, toOtherInventory, firstOnly); } - private static void tryMoveStacks(ItemStack stackReference, Slot slot, AbstractContainerScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) + private static void tryMoveStacks(ItemStack stackReference, Slot slot, ContainerScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) { Container container = gui.getContainer(); - final int maxSlot = container.slotList.size() - 1; + final int maxSlot = container.slots.size() - 1; for (int i = maxSlot; i >= 0; i--) { - Slot slotTmp = container.slotList.get(i); + Slot slotTmp = container.slots.get(i); if (slotTmp.id != slot.id && areSlotsInSameInventory(slotTmp, slot) == toOtherInventory && slotTmp.hasStack() && @@ -946,7 +946,7 @@ private static void tryMoveItemsToMerchantBuySlots(MerchantScreen gui, boolean f } } - private static void fillBuySlot(AbstractContainerScreen gui, int slotNum, ItemStack buyStack, boolean fillStacks) + private static void fillBuySlot(ContainerScreen gui, int slotNum, ItemStack buyStack, boolean fillStacks) { Slot slot = gui.getContainer().getSlot(slotNum); ItemStack existingStack = slot.getStack(); @@ -966,7 +966,7 @@ private static void fillBuySlot(AbstractContainerScreen gui } } - public static void handleRecipeClick(AbstractContainerScreen gui, MinecraftClient mc, RecipeStorage recipes, int hoveredRecipeId, + public static void handleRecipeClick(ContainerScreen gui, MinecraftClient mc, RecipeStorage recipes, int hoveredRecipeId, boolean isLeftClick, boolean isRightClick, boolean isPickBlock, boolean isShiftDown) { if (isLeftClick || isRightClick) @@ -1029,7 +1029,7 @@ else if (isPickBlock) } } - public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, AbstractContainerScreen gui, boolean fillStacks) + public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, ContainerScreen gui, boolean fillStacks) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1039,13 +1039,13 @@ public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, Abstrac } } - public static void loadRecipeItemsToGridForOutputSlotUnderMouse(RecipePattern recipe, AbstractContainerScreen gui) + public static void loadRecipeItemsToGridForOutputSlotUnderMouse(RecipePattern recipe, ContainerScreen gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); loadRecipeItemsToGridForOutputSlot(recipe, gui, slot); } - private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, AbstractContainerScreen gui, Slot outputSlot) + private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, ContainerScreen gui, Slot outputSlot) { if (outputSlot != null && isCraftingSlot(gui, outputSlot) && isStackEmpty(recipe.getResult()) == false) { @@ -1053,7 +1053,7 @@ private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, Abs } } - private static boolean tryMoveItemsCrafting(RecipeStorage recipes, Slot slot, AbstractContainerScreen gui, + private static boolean tryMoveItemsCrafting(RecipeStorage recipes, Slot slot, ContainerScreen gui, boolean moveToOtherInventory, boolean moveStacks, boolean moveEverything) { RecipePattern recipe = recipes.getSelectedRecipe(); @@ -1097,7 +1097,7 @@ else if (moveToOtherInventory == false && isStackEmpty(stackRecipeOutput) == fal return false; } - private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, AbstractContainerScreen gui) + private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, ContainerScreen gui) { ItemStack result = recipe.getResult(); int failSafe = 1024; @@ -1121,7 +1121,7 @@ private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, } } - public static void clearFirstCraftingGridOfItems(RecipePattern recipe, AbstractContainerScreen gui, boolean clearNonMatchingOnly) + public static void clearFirstCraftingGridOfItems(RecipePattern recipe, ContainerScreen gui, boolean clearNonMatchingOnly) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1132,7 +1132,7 @@ public static void clearFirstCraftingGridOfItems(RecipePattern recipe, AbstractC } } - public static void clearFirstCraftingGridOfAllItems(AbstractContainerScreen gui) + public static void clearFirstCraftingGridOfAllItems(ContainerScreen gui) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1143,9 +1143,9 @@ public static void clearFirstCraftingGridOfAllItems(AbstractContainerScreen gui, SlotRange range, boolean clearNonMatchingOnly) + private static boolean clearCraftingGridOfItems(RecipePattern recipe, ContainerScreen gui, SlotRange range, boolean clearNonMatchingOnly) { - final int invSlots = gui.getContainer().slotList.size(); + final int invSlots = gui.getContainer().slots.size(); final int rangeSlots = range.getSlotCount(); final int recipeSize = recipe.getRecipeLength(); final int slotCount = Math.min(rangeSlots, recipeSize); @@ -1170,9 +1170,9 @@ private static boolean clearCraftingGridOfItems(RecipePattern recipe, AbstractCo return true; } - private static boolean clearCraftingGridOfAllItems(AbstractContainerScreen gui, SlotRange range) + private static boolean clearCraftingGridOfAllItems(ContainerScreen gui, SlotRange range) { - final int invSlots = gui.getContainer().slotList.size(); + final int invSlots = gui.getContainer().slots.size(); final int rangeSlots = range.getSlotCount(); boolean clearedAll = true; @@ -1195,10 +1195,10 @@ private static boolean clearCraftingGridOfAllItems(AbstractContainerScreen gui, boolean fillStacks) + private static boolean tryMoveItemsToCraftingGridSlots(RecipePattern recipe, Slot slot, ContainerScreen gui, boolean fillStacks) { Container container = gui.getContainer(); - int numSlots = container.slotList.size(); + int numSlots = container.slots.size(); SlotRange range = CraftingHandler.getCraftingGridSlots(gui, slot); // Check that the slot range is valid and that the recipe can fit into this type of crafting grid @@ -1240,7 +1240,7 @@ private static boolean tryMoveItemsToCraftingGridSlots(RecipePattern recipe, Slo return false; } - private static void fillCraftingGrid(AbstractContainerScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) + private static void fillCraftingGrid(ContainerScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) { Container container = gui.getContainer(); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1322,7 +1322,7 @@ private static void fillCraftingGrid(AbstractContainerScreen gui) + public static void rightClickCraftOneStack(ContainerScreen gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1354,7 +1354,7 @@ public static void rightClickCraftOneStack(AbstractContainerScreen gui) + public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe, ContainerScreen gui) { Slot slot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1380,14 +1380,14 @@ public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe } } - public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, AbstractContainerScreen gui) + public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, ContainerScreen gui) { if (isStackEmpty(recipe.getResult()) == false) { Slot slot = null; ItemStack stackResult = recipe.getResult().copy(); - for (Slot slotTmp : gui.getContainer().slotList) + for (Slot slotTmp : gui.getContainer().slots) { // This slot is likely in the player inventory, as there is another inventory above if (areStacksEqual(slotTmp.getStack(), stackResult) && @@ -1412,7 +1412,7 @@ public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, } } - public static void throwAllCraftingResultsToGround(RecipePattern recipe, AbstractContainerScreen gui) + public static void throwAllCraftingResultsToGround(RecipePattern recipe, ContainerScreen gui) { Slot slot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1422,7 +1422,7 @@ public static void throwAllCraftingResultsToGround(RecipePattern recipe, Abstrac } } - private static int putSingleItemIntoSlots(AbstractContainerScreen gui, List targetSlots, int startIndex) + private static int putSingleItemIntoSlots(ContainerScreen gui, List targetSlots, int startIndex) { MinecraftClient mc = MinecraftClient.getInstance(); ItemStack stackInCursor = mc.player.inventory.getCursorStack(); @@ -1432,7 +1432,7 @@ private static int putSingleItemIntoSlots(AbstractContainerScreen gui, Slot slot) + public static void moveOneSetOfItemsFromSlotToPlayerInventory(ContainerScreen gui, Slot slot) { leftClickSlot(gui, slot.id); @@ -1472,7 +1472,7 @@ public static void moveOneSetOfItemsFromSlotToPlayerInventory(AbstractContainerS } } - private static void moveOneRecipeItemIntoCraftingGrid(AbstractContainerScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) + private static void moveOneRecipeItemIntoCraftingGrid(ContainerScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) { Container container = gui.getContainer(); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1519,7 +1519,7 @@ private static void moveOneRecipeItemIntoCraftingGrid(AbstractContainerScreen gui, List slotNumbers) + private static boolean moveItemFromCursorToSlots(ContainerScreen gui, List slotNumbers) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -1537,11 +1537,11 @@ private static boolean moveItemFromCursorToSlots(AbstractContainerScreen gui, int slotTo, Inventory invSrc, ItemStack stackTemplate, boolean fillStacks) + private static void moveItemsFromInventory(ContainerScreen gui, int slotTo, Inventory invSrc, ItemStack stackTemplate, boolean fillStacks) { Container container = gui.getContainer(); - for (Slot slot : container.slotList) + for (Slot slot : container.slots) { if (slot == null) { @@ -1571,7 +1571,7 @@ private static int getSlotNumberOfLargestMatchingStackFromDifferentInventory(Con int slotNum = -1; int largest = 0; - for (Slot slot : container.slotList) + for (Slot slot : container.slots) { if (areSlotsInSameInventory(slot, slotReference) == false && slot.hasStack() && areStacksEqual(stackReference, slot.getStack())) @@ -1603,7 +1603,7 @@ private static int getSlotNumberOfSmallestStackFromDifferentInventory(Container int slotNum = -1; int smallest = Integer.MAX_VALUE; - for (Slot slot : container.slotList) + for (Slot slot : container.slots) { if (areSlotsInSameInventory(slot, slotReference) == false && slot.hasStack() && areStacksEqual(stackReference, slot.getStack())) @@ -1623,7 +1623,7 @@ private static int getSlotNumberOfSmallestStackFromDifferentInventory(Container { int largest = 0; - for (Slot slot : container.slotList) + for (Slot slot : container.slots) { if (areSlotsInSameInventory(slot, slotReference) == false && slot.hasStack() && areStacksEqual(stackReference, slot.getStack())) @@ -1660,7 +1660,7 @@ private static List getSlotNumbersOfMatchingStacks( ItemStack stackReference, boolean preferPartial, boolean treatHotbarAsDifferent, boolean reverse) { List slots = new ArrayList(64); - final int maxSlot = container.slotList.size() - 1; + final int maxSlot = container.slots.size() - 1; final int increment = reverse ? -1 : 1; for (int i = reverse ? maxSlot : 0; i >= 0 && i <= maxSlot; i += increment) @@ -1688,7 +1688,7 @@ private static List getSlotNumbersOfMatchingStacks( private static List getSlotNumbersOfMatchingStacks(Container container, ItemStack stackReference, boolean preferPartial) { List slots = new ArrayList(64); - final int maxSlot = container.slotList.size() - 1; + final int maxSlot = container.slots.size() - 1; for (int i = 0; i <= maxSlot; ++i) { @@ -1714,7 +1714,7 @@ private static List getSlotNumbersOfEmptySlots( Container container, Slot slotReference, boolean sameInventory, boolean treatHotbarAsDifferent, boolean reverse) { List slots = new ArrayList(64); - final int maxSlot = container.slotList.size() - 1; + final int maxSlot = container.slots.size() - 1; final int increment = reverse ? -1 : 1; for (int i = reverse ? maxSlot : 0; i >= 0 && i <= maxSlot; i += increment) @@ -1734,7 +1734,7 @@ private static List getSlotNumbersOfEmptySlots( private static List getSlotNumbersOfEmptySlotsInPlayerInventory(Container container, boolean reverse) { List slots = new ArrayList(64); - final int maxSlot = container.slotList.size() - 1; + final int maxSlot = container.slots.size() - 1; final int increment = reverse ? -1 : 1; for (int i = reverse ? maxSlot : 0; i >= 0 && i <= maxSlot; i += increment) @@ -1780,11 +1780,11 @@ private static boolean areSlotsInSameInventory(Slot slot1, Slot slot2, boolean t private static ItemStack[] getOriginalStacks(Container container) { - ItemStack[] originalStacks = new ItemStack[container.slotList.size()]; + ItemStack[] originalStacks = new ItemStack[container.slots.size()]; for (int i = 0; i < originalStacks.length; i++) { - originalStacks[i] = container.slotList.get(i).getStack().copy(); + originalStacks[i] = container.slots.get(i).getStack().copy(); } return originalStacks; @@ -1806,7 +1806,7 @@ private static void restoreOriginalStacks(Container container, ItemStack[] origi private static int getTargetSlot(Container container, ItemStack[] originalStacks) { - List slots = container.slotList; + List slots = container.slots; for (int i = 0; i < originalStacks.length; i++) { @@ -1825,9 +1825,9 @@ private static int getTargetSlot(Container container, ItemStack[] originalStacks } /* - private void clickSlotsToMoveItems(Slot slot, AbstractContainerScreen gui, boolean matchingOnly, boolean toOtherInventory) + private void clickSlotsToMoveItems(Slot slot, ContainerScreen gui, boolean matchingOnly, boolean toOtherInventory) { - for (Slot slotTmp : gui.getContainer().slotList) + for (Slot slotTmp : gui.getContainer().slots) { if (slotTmp.id != slot.id && areSlotsInSameInventory(slotTmp, slot) == toOtherInventory && slotTmp.hasStack() && (matchingOnly == false || areStacksEqual(slot.getStack(), slotTmp.getStack()))) @@ -1845,7 +1845,7 @@ private void clickSlotsToMoveItems(Slot slot, AbstractContainerScreen gui, boolean toOtherInventory) + private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, ContainerScreen gui, boolean toOtherInventory) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -1857,7 +1857,7 @@ private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, AbstractContain return; } - for (Slot slotDst : gui.getContainer().slotList) + for (Slot slotDst : gui.getContainer().slots) { ItemStack stackDst = slotDst.getStack(); @@ -1881,11 +1881,11 @@ private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, AbstractContain } } - private static boolean clickSlotsToMoveSingleItem(AbstractContainerScreen gui, int slotFrom, int slotTo) + private static boolean clickSlotsToMoveSingleItem(ContainerScreen gui, int slotFrom, int slotTo) { //System.out.println("clickSlotsToMoveSingleItem(from: " + slotFrom + ", to: " + slotTo + ")"); MinecraftClient mc = MinecraftClient.getInstance(); - ItemStack stack = gui.getContainer().slotList.get(slotFrom).getStack(); + ItemStack stack = gui.getContainer().slots.get(slotFrom).getStack(); if (isStackEmpty(stack)) { @@ -1916,10 +1916,10 @@ private static boolean clickSlotsToMoveSingleItem(AbstractContainerScreen gui, int slotFrom) + private static boolean clickSlotsToMoveSingleItemByShiftClick(ContainerScreen gui, int slotFrom) { MinecraftClient mc = MinecraftClient.getInstance(); - Slot slot = gui.getContainer().slotList.get(slotFrom); + Slot slot = gui.getContainer().slots.get(slotFrom); ItemStack stack = slot.getStack(); if (isStackEmpty(stack)) @@ -1961,7 +1961,7 @@ private static boolean clickSlotsToMoveSingleItemByShiftClick(AbstractContainerS * Try move items from slotFrom to slotTo * @return true if at least some items were moved */ - private static boolean clickSlotsToMoveItems(AbstractContainerScreen gui, int slotFrom, int slotTo) + private static boolean clickSlotsToMoveItems(ContainerScreen gui, int slotFrom, int slotTo) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -1994,9 +1994,9 @@ private static boolean clickSlotsToMoveItems(AbstractContainerScreen gui, int slotNum) + public static void dropStacksUntilEmpty(ContainerScreen gui, int slotNum) { - if (slotNum >= 0 && slotNum < gui.getContainer().slotList.size()) + if (slotNum >= 0 && slotNum < gui.getContainer().slots.size()) { Slot slot = gui.getContainer().getSlot(slotNum); int failsafe = 64; @@ -2008,9 +2008,9 @@ public static void dropStacksUntilEmpty(AbstractContainerScreen gui, int slotNum, ItemStack stackReference) + public static void dropStacksWhileHasItem(ContainerScreen gui, int slotNum, ItemStack stackReference) { - if (slotNum >= 0 && slotNum < gui.getContainer().slotList.size()) + if (slotNum >= 0 && slotNum < gui.getContainer().slots.size()) { Slot slot = gui.getContainer().getSlot(slotNum); int failsafe = 256; @@ -2022,7 +2022,7 @@ public static void dropStacksWhileHasItem(AbstractContainerScreen gui, int slotNum) + private static boolean shiftClickSlotWithCheck(ContainerScreen gui, int slotNum) { Slot slot = gui.getContainer().getSlot(slotNum); @@ -2037,7 +2037,7 @@ private static boolean shiftClickSlotWithCheck(AbstractContainerScreen gui, Slot slot, boolean moveUp, MoveAmount amount) + public static boolean tryMoveItemsVertically(ContainerScreen gui, Slot slot, boolean moveUp, MoveAmount amount) { MinecraftClient mc = MinecraftClient.getInstance(); @@ -2074,7 +2074,7 @@ else if (amount == MoveAmount.ALL_MATCHING) return true; } - private static void moveMatchingStacksToSlots(AbstractContainerScreen gui, Slot slot, boolean moveUp) + private static void moveMatchingStacksToSlots(ContainerScreen gui, Slot slot, boolean moveUp) { List matchingSlots = getSlotNumbersOfMatchingStacks(gui.getContainer(), slot, true, slot.getStack(), true, true, false); List targetSlots = getSlotNumbersOfEmptySlots(gui.getContainer(), slot, false, true, false); @@ -2097,7 +2097,7 @@ private static void moveMatchingStacksToSlots(AbstractContainerScreen gui, Slot slotFrom, List slotsTo, boolean leaveOne) + private static Slot moveStackToSlots(ContainerScreen gui, Slot slotFrom, List slotsTo, boolean leaveOne) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -2144,7 +2144,7 @@ private static Slot moveStackToSlots(AbstractContainerScreen gui, Slot slotFrom, List slotsTo) + private static void moveOneItemToFirstValidSlot(ContainerScreen gui, Slot slotFrom, List slotsTo) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -2187,7 +2187,7 @@ private static List getVerticallyFurthestSuitableSlotsForStackInSlot(Co List slotNumbers = new ArrayList<>(); ItemStack stackSlot = slotIn.getStack(); - for (Slot slotTmp : container.slotList) + for (Slot slotTmp : container.slots) { if (slotTmp.id != slotIn.id && slotTmp.yPosition != slotIn.yPosition) { @@ -2209,7 +2209,7 @@ private static List getVerticallyFurthestSuitableSlotsForStackInSlot(Co return slotNumbers; } - public static void tryClearCursor(AbstractContainerScreen gui, MinecraftClient mc) + public static void tryClearCursor(ContainerScreen gui, MinecraftClient mc) { ItemStack stackCursor = mc.player.inventory.getCursorStack(); @@ -2310,9 +2310,9 @@ public int compare(Integer slotNum1, Integer slotNum2) } } - public static void clickSlot(AbstractContainerScreen gui, int slotNum, int mouseButton, SlotActionType type) + public static void clickSlot(ContainerScreen gui, int slotNum, int mouseButton, SlotActionType type) { - if (slotNum >= 0 && slotNum < gui.getContainer().slotList.size()) + if (slotNum >= 0 && slotNum < gui.getContainer().slots.size()) { Slot slot = gui.getContainer().getSlot(slotNum); clickSlot(gui, slot, slotNum, mouseButton, type); @@ -2332,7 +2332,7 @@ public static void clickSlot(AbstractContainerScreen gui, i } } - public static void clickSlot(AbstractContainerScreen gui, Slot slot, int slotNum, int mouseButton, SlotActionType type) + public static void clickSlot(ContainerScreen gui, Slot slot, int slotNum, int mouseButton, SlotActionType type) { try { @@ -2345,59 +2345,59 @@ public static void clickSlot(AbstractContainerScreen gui, S } } - public static void leftClickSlot(AbstractContainerScreen gui, Slot slot, int slotNumber) + public static void leftClickSlot(ContainerScreen gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 0, SlotActionType.PICKUP); } - public static void rightClickSlot(AbstractContainerScreen gui, Slot slot, int slotNumber) + public static void rightClickSlot(ContainerScreen gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 1, SlotActionType.PICKUP); } - public static void shiftClickSlot(AbstractContainerScreen gui, Slot slot, int slotNumber) + public static void shiftClickSlot(ContainerScreen gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 0, SlotActionType.QUICK_MOVE); } - public static void leftClickSlot(AbstractContainerScreen gui, int slotNum) + public static void leftClickSlot(ContainerScreen gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.PICKUP); } - public static void rightClickSlot(AbstractContainerScreen gui, int slotNum) + public static void rightClickSlot(ContainerScreen gui, int slotNum) { clickSlot(gui, slotNum, 1, SlotActionType.PICKUP); } - public static void shiftClickSlot(AbstractContainerScreen gui, int slotNum) + public static void shiftClickSlot(ContainerScreen gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.QUICK_MOVE); } - public static void dropItemsFromCursor(AbstractContainerScreen gui) + public static void dropItemsFromCursor(ContainerScreen gui) { clickSlot(gui, -999, 0, SlotActionType.PICKUP); } - public static void dropItem(AbstractContainerScreen gui, int slotNum) + public static void dropItem(ContainerScreen gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.THROW); } - public static void dropStack(AbstractContainerScreen gui, int slotNum) + public static void dropStack(ContainerScreen gui, int slotNum) { clickSlot(gui, slotNum, 1, SlotActionType.THROW); } - public static void swapSlots(AbstractContainerScreen gui, int slotNum, int otherSlot) + public static void swapSlots(ContainerScreen gui, int slotNum, int otherSlot) { clickSlot(gui, slotNum, 0, SlotActionType.SWAP); clickSlot(gui, otherSlot, 0, SlotActionType.SWAP); clickSlot(gui, slotNum, 0, SlotActionType.SWAP); } - private static void dragSplitItemsIntoSlots(AbstractContainerScreen gui, List targetSlots) + private static void dragSplitItemsIntoSlots(ContainerScreen gui, List targetSlots) { MinecraftClient mc = MinecraftClient.getInstance(); ItemStack stackInCursor = mc.player.inventory.getCursorStack(); @@ -2413,7 +2413,7 @@ private static void dragSplitItemsIntoSlots(AbstractContainerScreen=0.10.0-dev.20" + "malilib": "=0.10.0-dev.20" }, "custom": { diff --git a/src/main/resources/mixins.itemscroller.json b/src/main/resources/mixins.itemscroller.json index 563b8597..8bbe3183 100644 --- a/src/main/resources/mixins.itemscroller.json +++ b/src/main/resources/mixins.itemscroller.json @@ -4,7 +4,7 @@ "compatibilityLevel": "JAVA_8", "minVersion": "0.7", "client": [ - "IMixinAbstractContainerScreen", + "IMixinContainerScreen", "IMixinMerchantScreen", "IMixinSlot", "MixinAbstractInventoryScreen", From 8f594360ac8207e6a222fc580547af3e70c1a480 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Sat, 29 Feb 2020 03:54:26 +0200 Subject: [PATCH 02/20] Update to MC 1.16 snapshot 20w09a --- build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.properties b/build.properties index 7a40613f..603883b5 100644 --- a/build.properties +++ b/build.properties @@ -9,12 +9,12 @@ mod_file_name = itemscroller-fabric mod_version = 0.15.0-dev # Required malilib version -malilib_version = 0.10.0-dev.20+beta.1 +malilib_version = 0.10.0-dev.20+beta.2 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w06a -minecraft_version = 20w06a -mappings_version = 20w06a+build.2 +minecraft_version_out = 1.16-snap-20w09a +minecraft_version = 20w09a +mappings_version = 20w09a+build.6 fabric_loader_version = 0.7.8+build.184 mod_menu_version = 1.8.5+build.23 From f72344bd3c98a0b216eea5c94496c0a5af862cf8 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Thu, 5 Mar 2020 23:51:28 +0200 Subject: [PATCH 03/20] Update to MC 1.16 snapshot 20w10a --- build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.properties b/build.properties index 603883b5..da778661 100644 --- a/build.properties +++ b/build.properties @@ -9,12 +9,12 @@ mod_file_name = itemscroller-fabric mod_version = 0.15.0-dev # Required malilib version -malilib_version = 0.10.0-dev.20+beta.2 +malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w09a -minecraft_version = 20w09a -mappings_version = 20w09a+build.6 +minecraft_version_out = 1.16-snap-20w10a +minecraft_version = 20w10a +mappings_version = 20w10a+build.2 -fabric_loader_version = 0.7.8+build.184 +fabric_loader_version = 0.7.8+build.186 mod_menu_version = 1.8.5+build.23 From 1d3fe5743bb1cceb70b3f99c61c64ff451997eb0 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Wed, 11 Mar 2020 23:40:07 +0200 Subject: [PATCH 04/20] Update to MC 1.16 snapshot 20w11a --- build.properties | 8 +- .../dy/masa/itemscroller/config/Configs.java | 2 +- .../masa/itemscroller/event/InputHandler.java | 14 +- .../itemscroller/event/KeybindCallbacks.java | 12 +- .../event/RenderEventHandler.java | 22 +- .../mixin/IMixinContainerScreen.java | 30 -- .../mixin/IMixinMerchantScreen.java | 3 +- .../mixin/IMixinScreenWithHandler.java | 30 ++ .../masa/itemscroller/mixin/IMixinSlot.java | 2 +- .../mixin/MixinAbstractInventoryScreen.java | 3 +- .../mixin/MixinCraftingTableContainer.java | 36 --- .../MixinCraftingTableScreenHandler.java | 35 +++ .../itemscroller/mixin/MixinGameRenderer.java | 3 +- .../itemscroller/recipes/CraftingHandler.java | 30 +- .../itemscroller/recipes/RecipePattern.java | 12 +- .../itemscroller/recipes/RecipeStorage.java | 8 +- .../masa/itemscroller/util/AccessorUtils.java | 36 +-- .../dy/masa/itemscroller/util/InputUtils.java | 4 +- .../itemscroller/util/InventoryUtils.java | 266 +++++++++--------- src/main/resources/mixins.itemscroller.json | 4 +- 20 files changed, 278 insertions(+), 282 deletions(-) delete mode 100644 src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java create mode 100644 src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java delete mode 100644 src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableContainer.java create mode 100644 src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java diff --git a/build.properties b/build.properties index da778661..7fb865e7 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w10a -minecraft_version = 20w10a -mappings_version = 20w10a+build.2 +minecraft_version_out = 1.16-snap-20w11a +minecraft_version = 20w11a +mappings_version = 20w11a+build.1 -fabric_loader_version = 0.7.8+build.186 +fabric_loader_version = 0.7.8+build.187 mod_menu_version = 1.8.5+build.23 diff --git a/src/main/java/fi/dy/masa/itemscroller/config/Configs.java b/src/main/java/fi/dy/masa/itemscroller/config/Configs.java index e5201e73..e7081001 100644 --- a/src/main/java/fi/dy/masa/itemscroller/config/Configs.java +++ b/src/main/java/fi/dy/masa/itemscroller/config/Configs.java @@ -18,7 +18,7 @@ import fi.dy.masa.malilib.util.JsonUtils; import net.minecraft.client.gui.screen.ingame.CraftingTableScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; -import net.minecraft.container.CraftingResultSlot; +import net.minecraft.screen.slot.CraftingResultSlot; public class Configs implements IConfigHandler { diff --git a/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java index 67585b03..b3defedb 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java @@ -2,9 +2,9 @@ import org.lwjgl.glfw.GLFW; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; -import net.minecraft.container.Slot; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.slot.Slot; import net.minecraft.util.math.MathHelper; import fi.dy.masa.itemscroller.Reference; import fi.dy.masa.itemscroller.config.Configs; @@ -122,11 +122,11 @@ private boolean handleInput(int keyCode, boolean keyState, double dWheel) final int mouseX = fi.dy.masa.malilib.util.InputUtils.getMouseX(); final int mouseY = fi.dy.masa.malilib.util.InputUtils.getMouseY(); - if (GuiUtils.getCurrentScreen() instanceof ContainerScreen && + if (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && (GuiUtils.getCurrentScreen() instanceof CreativeInventoryScreen) == false && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false) { - ContainerScreen gui = (ContainerScreen) GuiUtils.getCurrentScreen(); + ScreenWithHandler gui = (ScreenWithHandler) GuiUtils.getCurrentScreen(); RecipeStorage recipes = RecipeStorage.getInstance(); if (dWheel != 0) @@ -204,14 +204,14 @@ public void onMouseMove(int mouseX, int mouseY) if (this.callbacks.functionalityEnabled() && mc.player != null && - GuiUtils.getCurrentScreen() instanceof ContainerScreen && + GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false) { - this.handleDragging((ContainerScreen) GuiUtils.getCurrentScreen(), mc, mouseX, mouseY, false); + this.handleDragging((ScreenWithHandler) GuiUtils.getCurrentScreen(), mc, mouseX, mouseY, false); } } - private boolean handleDragging(ContainerScreen gui, MinecraftClient mc, int mouseX, int mouseY, boolean isClick) + private boolean handleDragging(ScreenWithHandler gui, MinecraftClient mc, int mouseX, int mouseY, boolean isClick) { MoveAction action = InventoryUtils.getActiveMoveAction(); diff --git a/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java b/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java index c48a5639..d0d0da19 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java @@ -2,10 +2,10 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; -import net.minecraft.container.Slot; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.slot.Slot; import net.minecraft.sound.SoundEvents; import fi.dy.masa.itemscroller.ItemScroller; import fi.dy.masa.itemscroller.config.Configs; @@ -80,12 +80,12 @@ else if (key == Hotkeys.KEY_OPEN_CONFIG_GUI.getKeybind()) return true; } - if (this.disabled || mc == null || mc.player == null || (GuiUtils.getCurrentScreen() instanceof ContainerScreen) == false) + if (this.disabled || mc == null || mc.player == null || (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler) == false) { return false; } - ContainerScreen gui = (ContainerScreen) GuiUtils.getCurrentScreen(); + ScreenWithHandler gui = (ScreenWithHandler) GuiUtils.getCurrentScreen(); Slot slot = AccessorUtils.getSlotUnderMouse(gui); RecipeStorage recipes = RecipeStorage.getInstance(); MoveAction moveAction = InputUtils.getDragMoveAction(key); @@ -170,13 +170,13 @@ public void onClientTick(MinecraftClient mc) if (this.disabled == false && mc != null && mc.player != null && - GuiUtils.getCurrentScreen() instanceof ContainerScreen && + GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && (GuiUtils.getCurrentScreen() instanceof CreativeInventoryScreen) == false && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false && Hotkeys.KEY_MASS_CRAFT.getKeybind().isKeybindHeld()) { Screen guiScreen = GuiUtils.getCurrentScreen(); - ContainerScreen gui = (ContainerScreen) guiScreen; + ScreenWithHandler gui = (ScreenWithHandler) guiScreen; Slot outputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); if (outputSlot != null) diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index 8d7d0507..8c94c8d6 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -6,7 +6,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.render.DiffuseLighting; import net.minecraft.client.util.GlAllocationUtils; import net.minecraft.item.ItemStack; @@ -47,9 +47,9 @@ public static RenderEventHandler instance() public void onDrawBackgroundPost() { - if (GuiUtils.getCurrentScreen() instanceof ContainerScreen && InputUtils.isRecipeViewOpen()) + if (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && InputUtils.isRecipeViewOpen()) { - ContainerScreen gui = (ContainerScreen) GuiUtils.getCurrentScreen(); + ScreenWithHandler gui = (ScreenWithHandler) GuiUtils.getCurrentScreen(); RecipeStorage recipes = RecipeStorage.getInstance(); final int first = recipes.getFirstVisibleRecipeId(); final int countPerPage = recipes.getRecipeCountPerPage(); @@ -91,9 +91,9 @@ public void onDrawBackgroundPost() public void onDrawScreenPost() { - if (GuiUtils.getCurrentScreen() instanceof ContainerScreen && InputUtils.isRecipeViewOpen()) + if (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && InputUtils.isRecipeViewOpen()) { - ContainerScreen gui = (ContainerScreen) this.mc.currentScreen; + ScreenWithHandler gui = (ScreenWithHandler) this.mc.currentScreen; RecipeStorage recipes = RecipeStorage.getInstance(); final int mouseX = fi.dy.masa.malilib.util.InputUtils.getMouseX(); @@ -124,7 +124,7 @@ else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) } } - private void calculateRecipePositions(ContainerScreen gui) + private void calculateRecipePositions(ScreenWithHandler gui) { RecipeStorage recipes = RecipeStorage.getInstance(); final int gapHorizontal = 2; @@ -155,7 +155,7 @@ private void calculateRecipePositions(ContainerScreen gui) this.columnWidth = stackBaseHeight + this.numberTextWidth + this.gapColumn; } - private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, ContainerScreen gui) + private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, ScreenWithHandler gui) { ItemStack stack = recipe.getResult(); @@ -165,7 +165,7 @@ private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, Co } } - public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, ContainerScreen gui) + public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, ScreenWithHandler gui) { if (InputUtils.isRecipeViewOpen()) { @@ -194,7 +194,7 @@ public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, Con return -1; } - private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, ContainerScreen gui, boolean selected) + private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, ScreenWithHandler gui, boolean selected) { final TextRenderer font = this.mc.textRenderer; final String indexStr = String.valueOf(recipeId + 1); @@ -216,7 +216,7 @@ private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int RenderSystem.popMatrix(); } - private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, ContainerScreen gui) + private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, ScreenWithHandler gui) { ItemStack[] items = recipe.getRecipeItems(); final int recipeDimensions = (int) Math.ceil(Math.sqrt(recipe.getRecipeLength())); @@ -235,7 +235,7 @@ private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, Con } } - private ItemStack getHoveredRecipeIngredient(int mouseX, int mouseY, RecipePattern recipe, int recipeCountPerPage, ContainerScreen gui) + private ItemStack getHoveredRecipeIngredient(int mouseX, int mouseY, RecipePattern recipe, int recipeCountPerPage, ScreenWithHandler gui) { final int recipeDimensions = (int) Math.ceil(Math.sqrt(recipe.getRecipeLength())); int scaledStackDimensions = (int) (16 * this.scale); diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java deleted file mode 100644 index 3f66aa67..00000000 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinContainerScreen.java +++ /dev/null @@ -1,30 +0,0 @@ -package fi.dy.masa.itemscroller.mixin; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; -import org.spongepowered.asm.mixin.gen.Invoker; - -@Mixin(net.minecraft.client.gui.screen.ingame.ContainerScreen.class) -public interface IMixinContainerScreen -{ - @Invoker("getSlotAt") - net.minecraft.container.Slot getSlotAtPositionInvoker(double x, double y); - - @Invoker("onMouseClick") - void handleMouseClickInvoker(net.minecraft.container.Slot slotIn, int slotId, int mouseButton, net.minecraft.container.SlotActionType type); - - @Accessor("focusedSlot") - net.minecraft.container.Slot getHoveredSlot(); - - @Accessor("x") - int getGuiLeft(); - - @Accessor("y") - int getGuiTop(); - - @Accessor("containerWidth") - int getGuiSizeX(); - - @Accessor("containerHeight") - int getGuiSizeY(); -} diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinMerchantScreen.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinMerchantScreen.java index b722a8c4..cc11c9e6 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinMerchantScreen.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinMerchantScreen.java @@ -2,9 +2,8 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -import net.minecraft.client.gui.screen.ingame.MerchantScreen; -@Mixin(MerchantScreen.class) +@Mixin(net.minecraft.client.gui.screen.ingame.MerchantScreen.class) public interface IMixinMerchantScreen { @Accessor("selectedIndex") diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java new file mode 100644 index 00000000..b4b079f7 --- /dev/null +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java @@ -0,0 +1,30 @@ +package fi.dy.masa.itemscroller.mixin; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; +import org.spongepowered.asm.mixin.gen.Invoker; + +@Mixin(net.minecraft.client.gui.screen.ingame.ScreenWithHandler.class) +public interface IMixinScreenWithHandler +{ + @Invoker("getSlotAt") + net.minecraft.screen.slot.Slot getSlotAtPositionInvoker(double x, double y); + + @Invoker("onMouseClick") + void handleMouseClickInvoker(net.minecraft.screen.slot.Slot slotIn, int slotId, int mouseButton, net.minecraft.screen.slot.SlotActionType type); + + @Accessor("focusedSlot") + net.minecraft.screen.slot.Slot getHoveredSlot(); + + @Accessor("x") + int getGuiLeft(); + + @Accessor("y") + int getGuiTop(); + + @Accessor("backgroundWidth") + int getGuiSizeX(); + + @Accessor("backgroundHeight") + int getGuiSizeY(); +} diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java index dbb8da61..4ceaed21 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java @@ -1,8 +1,8 @@ package fi.dy.masa.itemscroller.mixin; +import net.minecraft.screen.slot.Slot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -import net.minecraft.container.Slot; @Mixin(Slot.class) public interface IMixinSlot diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinAbstractInventoryScreen.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinAbstractInventoryScreen.java index 94859731..2192ee64 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinAbstractInventoryScreen.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinAbstractInventoryScreen.java @@ -5,9 +5,8 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import fi.dy.masa.itemscroller.util.InputUtils; -import net.minecraft.client.gui.screen.ingame.AbstractInventoryScreen; -@Mixin(AbstractInventoryScreen.class) +@Mixin(net.minecraft.client.gui.screen.ingame.AbstractInventoryScreen.class) public abstract class MixinAbstractInventoryScreen { @Inject(method = "drawStatusEffects", at = @At("HEAD"), cancellable = true) diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableContainer.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableContainer.java deleted file mode 100644 index fbd59555..00000000 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableContainer.java +++ /dev/null @@ -1,36 +0,0 @@ -package fi.dy.masa.itemscroller.mixin; - -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; -import fi.dy.masa.itemscroller.util.InventoryUtils; -import net.minecraft.container.CraftingTableContainer; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.inventory.CraftingInventory; -import net.minecraft.inventory.CraftingResultInventory; -import net.minecraft.inventory.Inventory; -import net.minecraft.world.World; - -@Mixin(CraftingTableContainer.class) -public abstract class MixinCraftingTableContainer -{ - @Shadow @Final private CraftingInventory craftingInv; - @Shadow @Final private CraftingResultInventory resultInv; - @Shadow @Final private PlayerEntity player; - - @Inject(method = "onContentChanged", at = @At("RETURN")) - private void onSlotChangedCraftingGrid(Inventory inventory, CallbackInfo ci) - { - InventoryUtils.onSlotChangedCraftingGrid(this.player, this.craftingInv, this.resultInv); - } - - @Inject(method = "updateResult", at = @At("RETURN")) - private static void onUpdateResult(int windowId, World world, PlayerEntity player, - CraftingInventory craftingInv, CraftingResultInventory resultInv, CallbackInfo ci) - { - InventoryUtils.onSlotChangedCraftingGrid(player, craftingInv, resultInv); - } -} diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java new file mode 100644 index 00000000..97c238b8 --- /dev/null +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java @@ -0,0 +1,35 @@ +package fi.dy.masa.itemscroller.mixin; + +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; +import fi.dy.masa.itemscroller.util.InventoryUtils; + +@Mixin(net.minecraft.screen.CraftingTableScreenHandler.class) +public abstract class MixinCraftingTableScreenHandler +{ + @Shadow @Final private net.minecraft.inventory.CraftingInventory craftingInv; + @Shadow @Final private net.minecraft.inventory.CraftingResultInventory resultInv; + @Shadow @Final private net.minecraft.entity.player.PlayerEntity player; + + @Inject(method = "onContentChanged", at = @At("RETURN")) + private void onSlotChangedCraftingGrid(net.minecraft.inventory.Inventory inventory, CallbackInfo ci) + { + InventoryUtils.onSlotChangedCraftingGrid(this.player, this.craftingInv, this.resultInv); + } + + @Inject(method = "updateResult", at = @At("RETURN")) + private static void onUpdateResult( + int windowId, + net.minecraft.world.World world, + net.minecraft.entity.player.PlayerEntity player, + net.minecraft.inventory.CraftingInventory craftingInv, + net.minecraft.inventory.CraftingResultInventory resultInv, + CallbackInfo ci) + { + InventoryUtils.onSlotChangedCraftingGrid(player, craftingInv, resultInv); + } +} diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java index 39b26c32..22dfa629 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java @@ -6,9 +6,8 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import fi.dy.masa.itemscroller.event.RenderEventHandler; -import net.minecraft.client.render.GameRenderer; -@Mixin(GameRenderer.class) +@Mixin(net.minecraft.client.render.GameRenderer.class) public abstract class MixinGameRenderer { @Inject(method = "render(FJZ)V", diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java b/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java index 988fd774..57fed720 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java @@ -6,15 +6,15 @@ import java.util.Set; import javax.annotation.Nullable; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; -import net.minecraft.container.Container; -import net.minecraft.container.Slot; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.slot.Slot; import fi.dy.masa.itemscroller.ItemScroller; public class CraftingHandler { private static final Map CRAFTING_GRID_SLOTS = new HashMap(); - private static final Set>> CRAFTING_GUIS = new HashSet<>(); + private static final Set>> CRAFTING_GUIS = new HashSet<>(); public static void clearDefinitions() { @@ -27,7 +27,7 @@ public static boolean addCraftingGridDefinition(String guiClassName, String slot { try { - Class> guiClass = (Class>) Class.forName(guiClassName); + Class> guiClass = (Class>) Class.forName(guiClassName); Class slotClass = (Class) Class.forName(slotClassName); CRAFTING_GRID_SLOTS.put(new CraftingOutputSlot(guiClass, slotClass, outputSlot), range); @@ -46,7 +46,7 @@ public static boolean addCraftingGridDefinition(String guiClassName, String slot public static boolean isCraftingGui(Screen gui) { - return (gui instanceof ContainerScreen) && CRAFTING_GUIS.contains(((ContainerScreen) gui).getClass()); + return (gui instanceof ScreenWithHandler) && CRAFTING_GUIS.contains(((ScreenWithHandler) gui).getClass()); } /** @@ -56,17 +56,17 @@ public static boolean isCraftingGui(Screen gui) * @return the SlotRange of the crafting grid, or null, if the given slot is not a crafting output slot */ @Nullable - public static SlotRange getCraftingGridSlots(ContainerScreen gui, Slot slot) + public static SlotRange getCraftingGridSlots(ScreenWithHandler gui, Slot slot) { return CRAFTING_GRID_SLOTS.get(CraftingOutputSlot.from(gui, slot)); } @Nullable - public static Slot getFirstCraftingOutputSlotForGui(ContainerScreen gui) + public static Slot getFirstCraftingOutputSlotForGui(ScreenWithHandler gui) { if (CRAFTING_GUIS.contains(gui.getClass())) { - for (Slot slot : gui.getContainer().slots) + for (Slot slot : gui.getScreenHandler().slots) { if (getCraftingGridSlots(gui, slot) != null) { @@ -80,11 +80,11 @@ public static Slot getFirstCraftingOutputSlotForGui(ContainerScreen> guiClass; + private final Class> guiClass; private final Class slotClass; private final int outputSlot; - private CraftingOutputSlot (Class> guiClass, Class slotClass, int outputSlot) + private CraftingOutputSlot (Class> guiClass, Class slotClass, int outputSlot) { this.guiClass = guiClass; this.slotClass = slotClass; @@ -92,12 +92,12 @@ private CraftingOutputSlot (Class> guiClass, Class< } @SuppressWarnings("unchecked") - public static CraftingOutputSlot from(ContainerScreen gui, Slot slot) + public static CraftingOutputSlot from(ScreenWithHandler gui, Slot slot) { - return new CraftingOutputSlot((Class>) gui.getClass(), slot.getClass(), slot.id); + return new CraftingOutputSlot((Class>) gui.getClass(), slot.getClass(), slot.id); } - public Class> getGuiClass() + public Class> getGuiClass() { return this.guiClass; } @@ -112,7 +112,7 @@ public int getSlotNumber() return this.outputSlot; } - public boolean matches(ContainerScreen gui, Slot slot, int outputSlot) + public boolean matches(ScreenWithHandler gui, Slot slot, int outputSlot) { return outputSlot == this.outputSlot && gui.getClass() == this.guiClass && slot.getClass() == this.slotClass; } diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java index cd53ecf3..8a531090 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java @@ -1,12 +1,12 @@ package fi.dy.masa.itemscroller.recipes; import javax.annotation.Nonnull; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; -import net.minecraft.container.Container; -import net.minecraft.container.Slot; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.slot.Slot; import fi.dy.masa.itemscroller.recipes.CraftingHandler.SlotRange; import fi.dy.masa.itemscroller.util.Constants; import fi.dy.masa.itemscroller.util.InventoryUtils; @@ -45,7 +45,7 @@ public void ensureRecipeSizeAndClearRecipe(int size) this.clearRecipe(); } - public void storeCraftingRecipe(Slot slot, ContainerScreen gui, boolean clearIfEmpty) + public void storeCraftingRecipe(Slot slot, ScreenWithHandler gui, boolean clearIfEmpty) { SlotRange range = CraftingHandler.getCraftingGridSlots(gui, slot); @@ -54,13 +54,13 @@ public void storeCraftingRecipe(Slot slot, ContainerScreen if (slot.hasStack()) { int gridSize = range.getSlotCount(); - int numSlots = gui.getContainer().slots.size(); + int numSlots = gui.getScreenHandler().slots.size(); this.ensureRecipeSizeAndClearRecipe(gridSize); for (int i = 0, s = range.getFirst(); i < gridSize && s < numSlots; i++, s++) { - Slot slotTmp = gui.getContainer().getSlot(s); + Slot slotTmp = gui.getScreenHandler().getSlot(s); this.recipe[i] = slotTmp.hasStack() ? slotTmp.getStack().copy() : InventoryUtils.EMPTY_STACK; } diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java index cede3fde..7d38298a 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java @@ -4,11 +4,11 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import javax.annotation.Nonnull; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; -import net.minecraft.container.Slot; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtIo; +import net.minecraft.screen.slot.Slot; import fi.dy.masa.itemscroller.ItemScroller; import fi.dy.masa.itemscroller.Reference; import fi.dy.masa.itemscroller.config.Configs; @@ -103,12 +103,12 @@ public RecipePattern getSelectedRecipe() return this.getRecipe(this.getSelection()); } - public void storeCraftingRecipeToCurrentSelection(Slot slot, ContainerScreen gui, boolean clearIfEmpty) + public void storeCraftingRecipeToCurrentSelection(Slot slot, ScreenWithHandler gui, boolean clearIfEmpty) { this.storeCraftingRecipe(this.getSelection(), slot, gui, clearIfEmpty); } - public void storeCraftingRecipe(int index, Slot slot, ContainerScreen gui, boolean clearIfEmpty) + public void storeCraftingRecipe(int index, Slot slot, ScreenWithHandler gui, boolean clearIfEmpty) { this.getRecipe(index).storeCraftingRecipe(slot, gui, clearIfEmpty); this.dirty = true; diff --git a/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java index 7458643e..7f452361 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java @@ -1,48 +1,48 @@ package fi.dy.masa.itemscroller.util; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; -import net.minecraft.container.Slot; -import net.minecraft.container.SlotActionType; -import fi.dy.masa.itemscroller.mixin.IMixinContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.screen.slot.Slot; +import net.minecraft.screen.slot.SlotActionType; +import fi.dy.masa.itemscroller.mixin.IMixinScreenWithHandler; import fi.dy.masa.itemscroller.mixin.IMixinMerchantScreen; import fi.dy.masa.itemscroller.mixin.IMixinSlot; public class AccessorUtils { - public static Slot getSlotUnderMouse(ContainerScreen gui) + public static Slot getSlotUnderMouse(ScreenWithHandler gui) { - return ((IMixinContainerScreen) gui).getHoveredSlot(); + return ((IMixinScreenWithHandler) gui).getHoveredSlot(); } - public static Slot getSlotAtPosition(ContainerScreen gui, int x, int y) + public static Slot getSlotAtPosition(ScreenWithHandler gui, int x, int y) { - return ((IMixinContainerScreen) gui).getSlotAtPositionInvoker(x, y); + return ((IMixinScreenWithHandler) gui).getSlotAtPositionInvoker(x, y); } - public static void handleMouseClick(ContainerScreen gui, Slot slotIn, int slotId, int mouseButton, SlotActionType type) + public static void handleMouseClick(ScreenWithHandler gui, Slot slotIn, int slotId, int mouseButton, SlotActionType type) { - ((IMixinContainerScreen) gui).handleMouseClickInvoker(slotIn, slotId, mouseButton, type); + ((IMixinScreenWithHandler) gui).handleMouseClickInvoker(slotIn, slotId, mouseButton, type); } - public static int getGuiLeft(ContainerScreen gui) + public static int getGuiLeft(ScreenWithHandler gui) { - return ((IMixinContainerScreen) gui).getGuiLeft(); + return ((IMixinScreenWithHandler) gui).getGuiLeft(); } - public static int getGuiTop(ContainerScreen gui) + public static int getGuiTop(ScreenWithHandler gui) { - return ((IMixinContainerScreen) gui).getGuiTop(); + return ((IMixinScreenWithHandler) gui).getGuiTop(); } - public static int getGuiXSize(ContainerScreen gui) + public static int getGuiXSize(ScreenWithHandler gui) { - return ((IMixinContainerScreen) gui).getGuiSizeX(); + return ((IMixinScreenWithHandler) gui).getGuiSizeX(); } - public static int getGuiYSize(ContainerScreen gui) + public static int getGuiYSize(ScreenWithHandler gui) { - return ((IMixinContainerScreen) gui).getGuiSizeY(); + return ((IMixinScreenWithHandler) gui).getGuiSizeY(); } public static int getSelectedMerchantRecipe(MerchantScreen gui) diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java index 55999be5..e6893855 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java @@ -1,7 +1,7 @@ package fi.dy.masa.itemscroller.util; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import fi.dy.masa.itemscroller.config.Hotkeys; import fi.dy.masa.itemscroller.event.KeybindCallbacks; import fi.dy.masa.itemscroller.recipes.CraftingHandler; @@ -19,7 +19,7 @@ public static boolean isRecipeViewOpen() CraftingHandler.isCraftingGui(GuiUtils.getCurrentScreen()); } - public static boolean canShiftDropItems(ContainerScreen gui, MinecraftClient mc, int mouseX, int mouseY) + public static boolean canShiftDropItems(ScreenWithHandler gui, MinecraftClient mc, int mouseX, int mouseY) { if (InventoryUtils.isStackEmpty(mc.player.inventory.getCursorStack()) == false) { diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java index 5dd44dd9..3f30cf48 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java @@ -11,16 +11,12 @@ import java.util.Set; import javax.annotation.Nullable; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.ContainerScreen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; +import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.world.ClientWorld; -import net.minecraft.container.Container; -import net.minecraft.container.Slot; -import net.minecraft.container.SlotActionType; -import net.minecraft.container.TradeOutputSlot; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerInventory; import net.minecraft.inventory.CraftingInventory; @@ -30,6 +26,10 @@ import net.minecraft.item.ItemStack; import net.minecraft.recipe.CraftingRecipe; import net.minecraft.recipe.RecipeType; +import net.minecraft.screen.ScreenHandler; +import net.minecraft.screen.slot.Slot; +import net.minecraft.screen.slot.SlotActionType; +import net.minecraft.screen.slot.TradeOutputSlot; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; import net.minecraft.village.TradeOffer; @@ -99,7 +99,7 @@ public static String getStackString(ItemStack stack) return ""; } - public static void debugPrintSlotInfo(ContainerScreen gui, Slot slot) + public static void debugPrintSlotInfo(ScreenWithHandler gui, Slot slot) { if (slot == null) { @@ -107,7 +107,7 @@ public static void debugPrintSlotInfo(ContainerScreen gui, return; } - boolean hasSlot = gui.getContainer().slots.contains(slot); + boolean hasSlot = gui.getScreenHandler().slots.contains(slot); Object inv = slot.inventory; String stackStr = InventoryUtils.getStackString(slot.getStack()); @@ -115,12 +115,12 @@ public static void debugPrintSlotInfo(ContainerScreen gui, "slot class: %s, inv class: %s, Container's slot list has slot: %s, stack: %s, numSlots: %d", slot.id, AccessorUtils.getSlotIndex(slot), slot.hasStack(), slot.getClass().getName(), inv != null ? inv.getClass().getName() : "", hasSlot ? " true" : "false", stackStr, - gui.getContainer().slots.size())); + gui.getScreenHandler().slots.size())); } - private static boolean isValidSlot(Slot slot, ContainerScreen gui, boolean requireItems) + private static boolean isValidSlot(Slot slot, ScreenWithHandler gui, boolean requireItems) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); return container != null && container.slots != null && slot != null && container.slots.contains(slot) && @@ -128,7 +128,7 @@ private static boolean isValidSlot(Slot slot, ContainerScreen gui, @Nullable Slot slot) + public static boolean isCraftingSlot(ScreenWithHandler gui, @Nullable Slot slot) { return slot != null && CraftingHandler.getCraftingGridSlots(gui, slot) != null; } @@ -136,7 +136,7 @@ public static boolean isCraftingSlot(ContainerScreen gui, @ /** * Checks if there are slots belonging to another inventory on screen above the given slot */ - private static boolean inventoryExistsAbove(Slot slot, Container container) + private static boolean inventoryExistsAbove(Slot slot, ScreenHandler container) { for (Slot slotTmp : container.slots) { @@ -149,7 +149,7 @@ private static boolean inventoryExistsAbove(Slot slot, Container container) return false; } - public static boolean canShiftPlaceItems(ContainerScreen gui) + public static boolean canShiftPlaceItems(ScreenWithHandler gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -160,7 +160,7 @@ public static boolean canShiftPlaceItems(ContainerScreen gu slot.hasStack() == false && slot.canInsert(stackCursor); } - public static boolean tryMoveItems(ContainerScreen gui, RecipeStorage recipes, boolean scrollingUp) + public static boolean tryMoveItems(ScreenWithHandler gui, RecipeStorage recipes, boolean scrollingUp) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -182,7 +182,7 @@ public static boolean tryMoveItems(ContainerScreen gui, Rec if (Configs.Generic.SLOT_POSITION_AWARE_SCROLL_DIRECTION.getBooleanValue()) { - boolean above = inventoryExistsAbove(slot, gui.getContainer()); + boolean above = inventoryExistsAbove(slot, gui.getScreenHandler()); // so basically: (above && scrollingUp) || (above == false && scrollingUp == false) moveToOtherInventory = (above == scrollingUp); } @@ -252,7 +252,7 @@ else if (getStackSize(stack) < slot.getMaxStackAmount(stack)) return false; } - public static boolean dragMoveItems(ContainerScreen gui, MinecraftClient mc, MoveAction action, int mouseX, int mouseY, boolean isClick) + public static boolean dragMoveItems(ScreenWithHandler gui, MinecraftClient mc, MoveAction action, int mouseX, int mouseY, boolean isClick) { if (isStackEmpty(mc.player.inventory.getCursorStack()) == false) { @@ -355,7 +355,7 @@ public static void stopDragging() DRAGGED_SLOTS.clear(); } - private static boolean dragMoveFromSlotAtPosition(ContainerScreen gui, int x, int y, MoveAction action) + private static boolean dragMoveFromSlotAtPosition(ScreenWithHandler gui, int x, int y, MoveAction action) { if (gui instanceof CreativeInventoryScreen) { @@ -426,7 +426,7 @@ private static boolean dragMoveFromSlotAtPosition(ContainerScreen gui, int x, int y, MoveAction action) + private static boolean dragMoveFromSlotAtPositionCreative(ScreenWithHandler gui, int x, int y, MoveAction action) { CreativeInventoryScreen guiCreative = (CreativeInventoryScreen) gui; Slot slot = AccessorUtils.getSlotAtPosition(gui, x, y); @@ -469,7 +469,7 @@ private static boolean dragMoveFromSlotAtPositionCreative(ContainerScreen gui, ItemStack stackReference, Slot slotReference, boolean sameInventory) + public static void dropStacks(ScreenWithHandler gui, ItemStack stackReference, Slot slotReference, boolean sameInventory) { if (slotReference != null && isStackEmpty(stackReference) == false) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); stackReference = stackReference.copy(); for (Slot slot : container.slots) @@ -540,7 +540,7 @@ public static void dropStacks(ContainerScreen gui, ItemStac } } - public static boolean shiftDropItems(ContainerScreen gui) + public static boolean shiftDropItems(ScreenWithHandler gui) { ItemStack stackReference = MinecraftClient.getInstance().player.inventory.getCursorStack(); @@ -558,7 +558,7 @@ public static boolean shiftDropItems(ContainerScreen gui) return false; } - public static boolean shiftPlaceItems(Slot slot, ContainerScreen gui) + public static boolean shiftPlaceItems(Slot slot, ScreenWithHandler gui) { // Left click to place the items from the cursor to the slot leftClickSlot(gui, slot.id); @@ -650,10 +650,10 @@ else if (slot.hasStack()) return false; } - private static boolean tryMoveSingleItemToOtherInventory(Slot slot, ContainerScreen gui) + private static boolean tryMoveSingleItemToOtherInventory(Slot slot, ScreenWithHandler gui) { ItemStack stackOrig = slot.getStack(); - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); MinecraftClient mc = MinecraftClient.getInstance(); if (isStackEmpty(mc.player.inventory.getCursorStack()) == false || slot.canTakeItems(mc.player) == false || @@ -702,7 +702,7 @@ private static boolean tryMoveSingleItemToOtherInventory(Slot slot, ContainerScr return false; } - private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, ContainerScreen gui) + private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, ScreenWithHandler gui) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -727,7 +727,7 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, Container int tempSlotNum = -1; // Find some other slot where to store one of the items temporarily - for (Slot slotTmp : gui.getContainer().slots) + for (Slot slotTmp : gui.getScreenHandler().slots) { if (slotTmp.id != slot.id && areSlotsInSameInventory(slotTmp, slot, true) && @@ -783,11 +783,11 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, Container else { boolean treatHotbarAsDifferent = gui.getClass() == InventoryScreen.class; - List slots = getSlotNumbersOfEmptySlots(gui.getContainer(), slot, false, treatHotbarAsDifferent, false); + List slots = getSlotNumbersOfEmptySlots(gui.getScreenHandler(), slot, false, treatHotbarAsDifferent, false); if (slots.isEmpty()) { - slots = getSlotNumbersOfMatchingStacks(gui.getContainer(), slot, false, slot.getStack(), true, treatHotbarAsDifferent, false); + slots = getSlotNumbersOfMatchingStacks(gui.getScreenHandler(), slot, false, slot.getStack(), true, treatHotbarAsDifferent, false); } if (slots.isEmpty() == false) @@ -801,7 +801,7 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, Container // Try to place the stack in the cursor to any valid empty or matching slots in a different inventory for (int slotNum : slots) { - Slot slotTmp = gui.getContainer().getSlot(slotNum); + Slot slotTmp = gui.getScreenHandler().getSlot(slotNum); stackInCursor = player.inventory.getCursorStack(); if (isStackEmpty(stackInCursor)) @@ -826,9 +826,9 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, Container return false; } - private static boolean tryMoveSingleItemToThisInventory(Slot slot, ContainerScreen gui) + private static boolean tryMoveSingleItemToThisInventory(Slot slot, ScreenWithHandler gui) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); ItemStack stackOrig = slot.getStack(); MinecraftClient mc = MinecraftClient.getInstance(); @@ -875,14 +875,14 @@ private static boolean tryMoveSingleItemToThisInventory(Slot slot, ContainerScre return false; } - public static void tryMoveStacks(Slot slot, ContainerScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) + public static void tryMoveStacks(Slot slot, ScreenWithHandler gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) { tryMoveStacks(slot.getStack(), slot, gui, matchingOnly, toOtherInventory, firstOnly); } - private static void tryMoveStacks(ItemStack stackReference, Slot slot, ContainerScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) + private static void tryMoveStacks(ItemStack stackReference, Slot slot, ScreenWithHandler gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); final int maxSlot = container.slots.size() - 1; for (int i = maxSlot; i >= 0; i--) @@ -917,7 +917,7 @@ private static void tryMoveStacks(ItemStack stackReference, Slot slot, Container private static void tryMoveItemsToMerchantBuySlots(MerchantScreen gui, boolean fillStacks) { - TraderOfferList list = gui.getContainer().getRecipes(); + TraderOfferList list = gui.getScreenHandler().getRecipes(); int index = AccessorUtils.getSelectedMerchantRecipe(gui); if (list == null || list.size() <= index) @@ -946,9 +946,9 @@ private static void tryMoveItemsToMerchantBuySlots(MerchantScreen gui, boolean f } } - private static void fillBuySlot(ContainerScreen gui, int slotNum, ItemStack buyStack, boolean fillStacks) + private static void fillBuySlot(ScreenWithHandler gui, int slotNum, ItemStack buyStack, boolean fillStacks) { - Slot slot = gui.getContainer().getSlot(slotNum); + Slot slot = gui.getScreenHandler().getSlot(slotNum); ItemStack existingStack = slot.getStack(); MinecraftClient mc = MinecraftClient.getInstance(); @@ -966,7 +966,7 @@ private static void fillBuySlot(ContainerScreen gui, int sl } } - public static void handleRecipeClick(ContainerScreen gui, MinecraftClient mc, RecipeStorage recipes, int hoveredRecipeId, + public static void handleRecipeClick(ScreenWithHandler gui, MinecraftClient mc, RecipeStorage recipes, int hoveredRecipeId, boolean isLeftClick, boolean isRightClick, boolean isPickBlock, boolean isShiftDown) { if (isLeftClick || isRightClick) @@ -1029,7 +1029,7 @@ else if (isPickBlock) } } - public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, ContainerScreen gui, boolean fillStacks) + public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, ScreenWithHandler gui, boolean fillStacks) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1039,13 +1039,13 @@ public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, Contain } } - public static void loadRecipeItemsToGridForOutputSlotUnderMouse(RecipePattern recipe, ContainerScreen gui) + public static void loadRecipeItemsToGridForOutputSlotUnderMouse(RecipePattern recipe, ScreenWithHandler gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); loadRecipeItemsToGridForOutputSlot(recipe, gui, slot); } - private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, ContainerScreen gui, Slot outputSlot) + private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, ScreenWithHandler gui, Slot outputSlot) { if (outputSlot != null && isCraftingSlot(gui, outputSlot) && isStackEmpty(recipe.getResult()) == false) { @@ -1053,7 +1053,7 @@ private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, Con } } - private static boolean tryMoveItemsCrafting(RecipeStorage recipes, Slot slot, ContainerScreen gui, + private static boolean tryMoveItemsCrafting(RecipeStorage recipes, Slot slot, ScreenWithHandler gui, boolean moveToOtherInventory, boolean moveStacks, boolean moveEverything) { RecipePattern recipe = recipes.getSelectedRecipe(); @@ -1097,7 +1097,7 @@ else if (moveToOtherInventory == false && isStackEmpty(stackRecipeOutput) == fal return false; } - private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, ContainerScreen gui) + private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, ScreenWithHandler gui) { ItemStack result = recipe.getResult(); int failSafe = 1024; @@ -1121,7 +1121,7 @@ private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, } } - public static void clearFirstCraftingGridOfItems(RecipePattern recipe, ContainerScreen gui, boolean clearNonMatchingOnly) + public static void clearFirstCraftingGridOfItems(RecipePattern recipe, ScreenWithHandler gui, boolean clearNonMatchingOnly) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1132,7 +1132,7 @@ public static void clearFirstCraftingGridOfItems(RecipePattern recipe, Container } } - public static void clearFirstCraftingGridOfAllItems(ContainerScreen gui) + public static void clearFirstCraftingGridOfAllItems(ScreenWithHandler gui) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1143,16 +1143,16 @@ public static void clearFirstCraftingGridOfAllItems(ContainerScreen gui, SlotRange range, boolean clearNonMatchingOnly) + private static boolean clearCraftingGridOfItems(RecipePattern recipe, ScreenWithHandler gui, SlotRange range, boolean clearNonMatchingOnly) { - final int invSlots = gui.getContainer().slots.size(); + final int invSlots = gui.getScreenHandler().slots.size(); final int rangeSlots = range.getSlotCount(); final int recipeSize = recipe.getRecipeLength(); final int slotCount = Math.min(rangeSlots, recipeSize); for (int i = 0, slotNum = range.getFirst(); i < slotCount && slotNum < invSlots; i++, slotNum++) { - Slot slotTmp = gui.getContainer().getSlot(slotNum); + Slot slotTmp = gui.getScreenHandler().getSlot(slotNum); if (slotTmp != null && slotTmp.hasStack() && (clearNonMatchingOnly == false || areStacksEqual(recipe.getRecipeItems()[i], slotTmp.getStack()) == false)) @@ -1170,15 +1170,15 @@ private static boolean clearCraftingGridOfItems(RecipePattern recipe, ContainerS return true; } - private static boolean clearCraftingGridOfAllItems(ContainerScreen gui, SlotRange range) + private static boolean clearCraftingGridOfAllItems(ScreenWithHandler gui, SlotRange range) { - final int invSlots = gui.getContainer().slots.size(); + final int invSlots = gui.getScreenHandler().slots.size(); final int rangeSlots = range.getSlotCount(); boolean clearedAll = true; for (int i = 0, slotNum = range.getFirst(); i < rangeSlots && slotNum < invSlots; i++, slotNum++) { - Slot slotTmp = gui.getContainer().getSlot(slotNum); + Slot slotTmp = gui.getScreenHandler().getSlot(slotNum); if (slotTmp != null && slotTmp.hasStack()) { @@ -1195,9 +1195,9 @@ private static boolean clearCraftingGridOfAllItems(ContainerScreen gui, boolean fillStacks) + private static boolean tryMoveItemsToCraftingGridSlots(RecipePattern recipe, Slot slot, ScreenWithHandler gui, boolean fillStacks) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); int numSlots = container.slots.size(); SlotRange range = CraftingHandler.getCraftingGridSlots(gui, slot); @@ -1240,9 +1240,9 @@ private static boolean tryMoveItemsToCraftingGridSlots(RecipePattern recipe, Slo return false; } - private static void fillCraftingGrid(ContainerScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) + private static void fillCraftingGrid(ScreenWithHandler gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; int slotNum = -1; @@ -1322,7 +1322,7 @@ private static void fillCraftingGrid(ContainerScreen gui, S } } - public static void rightClickCraftOneStack(ContainerScreen gui) + public static void rightClickCraftOneStack(ScreenWithHandler gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1354,7 +1354,7 @@ public static void rightClickCraftOneStack(ContainerScreen } } - public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe, ContainerScreen gui) + public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe, ScreenWithHandler gui) { Slot slot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1380,18 +1380,18 @@ public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe } } - public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, ContainerScreen gui) + public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, ScreenWithHandler gui) { if (isStackEmpty(recipe.getResult()) == false) { Slot slot = null; ItemStack stackResult = recipe.getResult().copy(); - for (Slot slotTmp : gui.getContainer().slots) + for (Slot slotTmp : gui.getScreenHandler().slots) { // This slot is likely in the player inventory, as there is another inventory above if (areStacksEqual(slotTmp.getStack(), stackResult) && - inventoryExistsAbove(slotTmp, gui.getContainer())) + inventoryExistsAbove(slotTmp, gui.getScreenHandler())) { slot = slotTmp; break; @@ -1402,7 +1402,7 @@ public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, { // Get a list of slots with matching items, which are in the same inventory // as the slot that is assumed to be in the player inventory. - List slots = getSlotNumbersOfMatchingStacks(gui.getContainer(), slot, true, stackResult, false, false, false); + List slots = getSlotNumbersOfMatchingStacks(gui.getScreenHandler(), slot, true, stackResult, false, false, false); for (int slotNum : slots) { @@ -1412,7 +1412,7 @@ public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, } } - public static void throwAllCraftingResultsToGround(RecipePattern recipe, ContainerScreen gui) + public static void throwAllCraftingResultsToGround(RecipePattern recipe, ScreenWithHandler gui) { Slot slot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1422,7 +1422,7 @@ public static void throwAllCraftingResultsToGround(RecipePattern recipe, Contain } } - private static int putSingleItemIntoSlots(ContainerScreen gui, List targetSlots, int startIndex) + private static int putSingleItemIntoSlots(ScreenWithHandler gui, List targetSlots, int startIndex) { MinecraftClient mc = MinecraftClient.getInstance(); ItemStack stackInCursor = mc.player.inventory.getCursorStack(); @@ -1432,7 +1432,7 @@ private static int putSingleItemIntoSlots(ContainerScreen g return 0; } - int numSlots = gui.getContainer().slots.size(); + int numSlots = gui.getScreenHandler().slots.size(); int numItems = getStackSize(stackInCursor); int loops = Math.min(numItems, targetSlots.size() - startIndex); int count = 0; @@ -1453,7 +1453,7 @@ private static int putSingleItemIntoSlots(ContainerScreen g return count; } - public static void moveOneSetOfItemsFromSlotToPlayerInventory(ContainerScreen gui, Slot slot) + public static void moveOneSetOfItemsFromSlotToPlayerInventory(ScreenWithHandler gui, Slot slot) { leftClickSlot(gui, slot.id); @@ -1462,19 +1462,19 @@ public static void moveOneSetOfItemsFromSlotToPlayerInventory(ContainerScreen slots = getSlotNumbersOfMatchingStacks(gui.getContainer(), slot, false, stackCursor, true, true, false); + List slots = getSlotNumbersOfMatchingStacks(gui.getScreenHandler(), slot, false, stackCursor, true, true, false); if (moveItemFromCursorToSlots(gui, slots) == false) { - slots = getSlotNumbersOfEmptySlotsInPlayerInventory(gui.getContainer(), false); + slots = getSlotNumbersOfEmptySlotsInPlayerInventory(gui.getScreenHandler(), false); moveItemFromCursorToSlots(gui, slots); } } } - private static void moveOneRecipeItemIntoCraftingGrid(ContainerScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) + private static void moveOneRecipeItemIntoCraftingGrid(ScreenWithHandler gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); MinecraftClient mc = MinecraftClient.getInstance(); int index = 0; int slotNum = -1; @@ -1519,7 +1519,7 @@ private static void moveOneRecipeItemIntoCraftingGrid(ContainerScreen gui, List slotNumbers) + private static boolean moveItemFromCursorToSlots(ScreenWithHandler gui, List slotNumbers) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -1537,9 +1537,9 @@ private static boolean moveItemFromCursorToSlots(ContainerScreen gui, int slotTo, Inventory invSrc, ItemStack stackTemplate, boolean fillStacks) + private static void moveItemsFromInventory(ScreenWithHandler gui, int slotTo, Inventory invSrc, ItemStack stackTemplate, boolean fillStacks) { - Container container = gui.getContainer(); + ScreenHandler container = gui.getScreenHandler(); for (Slot slot : container.slots) { @@ -1566,7 +1566,7 @@ private static void moveItemsFromInventory(ContainerScreen } } - private static int getSlotNumberOfLargestMatchingStackFromDifferentInventory(Container container, Slot slotReference, ItemStack stackReference) + private static int getSlotNumberOfLargestMatchingStackFromDifferentInventory(ScreenHandler container, Slot slotReference, ItemStack stackReference) { int slotNum = -1; int largest = 0; @@ -1598,7 +1598,7 @@ private static int getSlotNumberOfLargestMatchingStackFromDifferentInventory(Con * @param stackReference * @return */ - private static int getSlotNumberOfSmallestStackFromDifferentInventory(Container container, Slot slotReference, ItemStack stackReference, int idealSize) + private static int getSlotNumberOfSmallestStackFromDifferentInventory(ScreenHandler container, Slot slotReference, ItemStack stackReference, int idealSize) { int slotNum = -1; int smallest = Integer.MAX_VALUE; @@ -1656,7 +1656,7 @@ private static int getSlotNumberOfSmallestStackFromDifferentInventory(Container * @return */ private static List getSlotNumbersOfMatchingStacks( - Container container, Slot slotReference, boolean sameInventory, + ScreenHandler container, Slot slotReference, boolean sameInventory, ItemStack stackReference, boolean preferPartial, boolean treatHotbarAsDifferent, boolean reverse) { List slots = new ArrayList(64); @@ -1685,7 +1685,7 @@ private static List getSlotNumbersOfMatchingStacks( return slots; } - private static List getSlotNumbersOfMatchingStacks(Container container, ItemStack stackReference, boolean preferPartial) + private static List getSlotNumbersOfMatchingStacks(ScreenHandler container, ItemStack stackReference, boolean preferPartial) { List slots = new ArrayList(64); final int maxSlot = container.slots.size() - 1; @@ -1711,7 +1711,7 @@ private static List getSlotNumbersOfMatchingStacks(Container container, } private static List getSlotNumbersOfEmptySlots( - Container container, Slot slotReference, boolean sameInventory, boolean treatHotbarAsDifferent, boolean reverse) + ScreenHandler container, Slot slotReference, boolean sameInventory, boolean treatHotbarAsDifferent, boolean reverse) { List slots = new ArrayList(64); final int maxSlot = container.slots.size() - 1; @@ -1731,7 +1731,7 @@ private static List getSlotNumbersOfEmptySlots( return slots; } - private static List getSlotNumbersOfEmptySlotsInPlayerInventory(Container container, boolean reverse) + private static List getSlotNumbersOfEmptySlotsInPlayerInventory(ScreenHandler container, boolean reverse) { List slots = new ArrayList(64); final int maxSlot = container.slots.size() - 1; @@ -1778,7 +1778,7 @@ private static boolean areSlotsInSameInventory(Slot slot1, Slot slot2, boolean t return false; } - private static ItemStack[] getOriginalStacks(Container container) + private static ItemStack[] getOriginalStacks(ScreenHandler container) { ItemStack[] originalStacks = new ItemStack[container.slots.size()]; @@ -1790,7 +1790,7 @@ private static ItemStack[] getOriginalStacks(Container container) return originalStacks; } - private static void restoreOriginalStacks(Container container, ItemStack[] originalStacks) + private static void restoreOriginalStacks(ScreenHandler container, ItemStack[] originalStacks) { for (int i = 0; i < originalStacks.length; i++) { @@ -1804,7 +1804,7 @@ private static void restoreOriginalStacks(Container container, ItemStack[] origi } } - private static int getTargetSlot(Container container, ItemStack[] originalStacks) + private static int getTargetSlot(ScreenHandler container, ItemStack[] originalStacks) { List slots = container.slots; @@ -1845,7 +1845,7 @@ private void clickSlotsToMoveItems(Slot slot, ContainerScreen gui, boolean toOtherInventory) + private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, ScreenWithHandler gui, boolean toOtherInventory) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -1857,7 +1857,7 @@ private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, ContainerScreen return; } - for (Slot slotDst : gui.getContainer().slots) + for (Slot slotDst : gui.getScreenHandler().slots) { ItemStack stackDst = slotDst.getStack(); @@ -1881,11 +1881,11 @@ private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, ContainerScreen } } - private static boolean clickSlotsToMoveSingleItem(ContainerScreen gui, int slotFrom, int slotTo) + private static boolean clickSlotsToMoveSingleItem(ScreenWithHandler gui, int slotFrom, int slotTo) { //System.out.println("clickSlotsToMoveSingleItem(from: " + slotFrom + ", to: " + slotTo + ")"); MinecraftClient mc = MinecraftClient.getInstance(); - ItemStack stack = gui.getContainer().slots.get(slotFrom).getStack(); + ItemStack stack = gui.getScreenHandler().slots.get(slotFrom).getStack(); if (isStackEmpty(stack)) { @@ -1916,10 +1916,10 @@ private static boolean clickSlotsToMoveSingleItem(ContainerScreen gui, int slotFrom) + private static boolean clickSlotsToMoveSingleItemByShiftClick(ScreenWithHandler gui, int slotFrom) { MinecraftClient mc = MinecraftClient.getInstance(); - Slot slot = gui.getContainer().slots.get(slotFrom); + Slot slot = gui.getScreenHandler().slots.get(slotFrom); ItemStack stack = slot.getStack(); if (isStackEmpty(stack)) @@ -1961,7 +1961,7 @@ private static boolean clickSlotsToMoveSingleItemByShiftClick(ContainerScreen gui, int slotFrom, int slotTo) + private static boolean clickSlotsToMoveItems(ScreenWithHandler gui, int slotFrom, int slotTo) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -1994,11 +1994,11 @@ private static boolean clickSlotsToMoveItems(ContainerScreen gui, int slotNum) + public static void dropStacksUntilEmpty(ScreenWithHandler gui, int slotNum) { - if (slotNum >= 0 && slotNum < gui.getContainer().slots.size()) + if (slotNum >= 0 && slotNum < gui.getScreenHandler().slots.size()) { - Slot slot = gui.getContainer().getSlot(slotNum); + Slot slot = gui.getScreenHandler().getSlot(slotNum); int failsafe = 64; while (failsafe-- > 0 && slot.hasStack()) @@ -2008,11 +2008,11 @@ public static void dropStacksUntilEmpty(ContainerScreen gui } } - public static void dropStacksWhileHasItem(ContainerScreen gui, int slotNum, ItemStack stackReference) + public static void dropStacksWhileHasItem(ScreenWithHandler gui, int slotNum, ItemStack stackReference) { - if (slotNum >= 0 && slotNum < gui.getContainer().slots.size()) + if (slotNum >= 0 && slotNum < gui.getScreenHandler().slots.size()) { - Slot slot = gui.getContainer().getSlot(slotNum); + Slot slot = gui.getScreenHandler().getSlot(slotNum); int failsafe = 256; while (failsafe-- > 0 && areStacksEqual(slot.getStack(), stackReference)) @@ -2022,9 +2022,9 @@ public static void dropStacksWhileHasItem(ContainerScreen g } } - private static boolean shiftClickSlotWithCheck(ContainerScreen gui, int slotNum) + private static boolean shiftClickSlotWithCheck(ScreenWithHandler gui, int slotNum) { - Slot slot = gui.getContainer().getSlot(slotNum); + Slot slot = gui.getScreenHandler().getSlot(slotNum); if (slot == null || slot.hasStack() == false) { @@ -2037,7 +2037,7 @@ private static boolean shiftClickSlotWithCheck(ContainerScreen gui, Slot slot, boolean moveUp, MoveAmount amount) + public static boolean tryMoveItemsVertically(ScreenWithHandler gui, Slot slot, boolean moveUp, MoveAmount amount) { MinecraftClient mc = MinecraftClient.getInstance(); @@ -2047,7 +2047,7 @@ public static boolean tryMoveItemsVertically(ContainerScreen slots = getVerticallyFurthestSuitableSlotsForStackInSlot(gui.getContainer(), slot, moveUp); + List slots = getVerticallyFurthestSuitableSlotsForStackInSlot(gui.getScreenHandler(), slot, moveUp); if (slots.isEmpty()) { @@ -2074,20 +2074,20 @@ else if (amount == MoveAmount.ALL_MATCHING) return true; } - private static void moveMatchingStacksToSlots(ContainerScreen gui, Slot slot, boolean moveUp) + private static void moveMatchingStacksToSlots(ScreenWithHandler gui, Slot slot, boolean moveUp) { - List matchingSlots = getSlotNumbersOfMatchingStacks(gui.getContainer(), slot, true, slot.getStack(), true, true, false); - List targetSlots = getSlotNumbersOfEmptySlots(gui.getContainer(), slot, false, true, false); - targetSlots.addAll(getSlotNumbersOfEmptySlots(gui.getContainer(), slot, true, true, false)); + List matchingSlots = getSlotNumbersOfMatchingStacks(gui.getScreenHandler(), slot, true, slot.getStack(), true, true, false); + List targetSlots = getSlotNumbersOfEmptySlots(gui.getScreenHandler(), slot, false, true, false); + targetSlots.addAll(getSlotNumbersOfEmptySlots(gui.getScreenHandler(), slot, true, true, false)); targetSlots.addAll(matchingSlots); - Collections.sort(matchingSlots, new SlotVerticalSorterSlotNumbers(gui.getContainer(), ! moveUp)); - Collections.sort(targetSlots, new SlotVerticalSorterSlotNumbers(gui.getContainer(), moveUp)); + Collections.sort(matchingSlots, new SlotVerticalSorterSlotNumbers(gui.getScreenHandler(), ! moveUp)); + Collections.sort(targetSlots, new SlotVerticalSorterSlotNumbers(gui.getScreenHandler(), moveUp)); for (int i = 0; i < matchingSlots.size(); ++i) { int srcSlotNum = matchingSlots.get(i).intValue(); - Slot srcSlot = gui.getContainer().getSlot(srcSlotNum); + Slot srcSlot = gui.getScreenHandler().getSlot(srcSlotNum); Slot lastSlot = moveStackToSlots(gui, srcSlot, targetSlots, false); if (lastSlot == null || (lastSlot.id == srcSlot.id || (lastSlot.yPosition > srcSlot.yPosition) == moveUp)) @@ -2097,7 +2097,7 @@ private static void moveMatchingStacksToSlots(ContainerScreen gui, Slot slotFrom, List slotsTo, boolean leaveOne) + private static Slot moveStackToSlots(ScreenWithHandler gui, Slot slotFrom, List slotsTo, boolean leaveOne) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -2125,7 +2125,7 @@ private static Slot moveStackToSlots(ContainerScreen gui, S break; } - Slot dstSlot = gui.getContainer().getSlot(slotNum); + Slot dstSlot = gui.getScreenHandler().getSlot(slotNum); if (dstSlot.canInsert(inv.getCursorStack()) && (dstSlot.hasStack() == false || areStacksEqual(dstSlot.getStack(), inv.getCursorStack()))) @@ -2144,7 +2144,7 @@ private static Slot moveStackToSlots(ContainerScreen gui, S return lastSlot; } - private static void moveOneItemToFirstValidSlot(ContainerScreen gui, Slot slotFrom, List slotsTo) + private static void moveOneItemToFirstValidSlot(ScreenWithHandler gui, Slot slotFrom, List slotsTo) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -2177,7 +2177,7 @@ private static void moveOneItemToFirstValidSlot(ContainerScreen getVerticallyFurthestSuitableSlotsForStackInSlot(Container container, final Slot slotIn, boolean above) + private static List getVerticallyFurthestSuitableSlotsForStackInSlot(ScreenHandler container, final Slot slotIn, boolean above) { if (slotIn == null || slotIn.hasStack() == false) { @@ -2209,13 +2209,13 @@ private static List getVerticallyFurthestSuitableSlotsForStackInSlot(Co return slotNumbers; } - public static void tryClearCursor(ContainerScreen gui, MinecraftClient mc) + public static void tryClearCursor(ScreenWithHandler gui, MinecraftClient mc) { ItemStack stackCursor = mc.player.inventory.getCursorStack(); if (isStackEmpty(stackCursor) == false) { - List emptySlots = getSlotNumbersOfEmptySlotsInPlayerInventory(gui.getContainer(), false); + List emptySlots = getSlotNumbersOfEmptySlotsInPlayerInventory(gui.getScreenHandler(), false); if (emptySlots.isEmpty() == false) { @@ -2223,13 +2223,13 @@ public static void tryClearCursor(ContainerScreen gui, Mine } else { - List matchingSlots = getSlotNumbersOfMatchingStacks(gui.getContainer(), stackCursor, true); + List matchingSlots = getSlotNumbersOfMatchingStacks(gui.getScreenHandler(), stackCursor, true); if (matchingSlots.isEmpty() == false) { for (int slotNum : matchingSlots) { - Slot slot = gui.getContainer().getSlot(slotNum); + Slot slot = gui.getScreenHandler().getSlot(slotNum); ItemStack stackSlot = slot.getStack(); if (slot == null || areStacksEqual(stackSlot, stackCursor) == false || @@ -2286,10 +2286,10 @@ public int compare(Slot slot1, Slot slot2) private static class SlotVerticalSorterSlotNumbers implements Comparator { - private final Container container; + private final ScreenHandler container; private final boolean topToBottom; - public SlotVerticalSorterSlotNumbers(Container container, boolean topToBottom) + public SlotVerticalSorterSlotNumbers(ScreenHandler container, boolean topToBottom) { this.container = container; this.topToBottom = topToBottom; @@ -2310,11 +2310,11 @@ public int compare(Integer slotNum1, Integer slotNum2) } } - public static void clickSlot(ContainerScreen gui, int slotNum, int mouseButton, SlotActionType type) + public static void clickSlot(ScreenWithHandler gui, int slotNum, int mouseButton, SlotActionType type) { - if (slotNum >= 0 && slotNum < gui.getContainer().slots.size()) + if (slotNum >= 0 && slotNum < gui.getScreenHandler().slots.size()) { - Slot slot = gui.getContainer().getSlot(slotNum); + Slot slot = gui.getScreenHandler().getSlot(slotNum); clickSlot(gui, slot, slotNum, mouseButton, type); } else @@ -2322,7 +2322,7 @@ public static void clickSlot(ContainerScreen gui, int slotN try { MinecraftClient mc = MinecraftClient.getInstance(); - mc.interactionManager.clickSlot(gui.getContainer().syncId, slotNum, mouseButton, type, mc.player); + mc.interactionManager.clickSlot(gui.getScreenHandler().syncId, slotNum, mouseButton, type, mc.player); } catch (Exception e) { @@ -2332,7 +2332,7 @@ public static void clickSlot(ContainerScreen gui, int slotN } } - public static void clickSlot(ContainerScreen gui, Slot slot, int slotNum, int mouseButton, SlotActionType type) + public static void clickSlot(ScreenWithHandler gui, Slot slot, int slotNum, int mouseButton, SlotActionType type) { try { @@ -2345,59 +2345,59 @@ public static void clickSlot(ContainerScreen gui, Slot slot } } - public static void leftClickSlot(ContainerScreen gui, Slot slot, int slotNumber) + public static void leftClickSlot(ScreenWithHandler gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 0, SlotActionType.PICKUP); } - public static void rightClickSlot(ContainerScreen gui, Slot slot, int slotNumber) + public static void rightClickSlot(ScreenWithHandler gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 1, SlotActionType.PICKUP); } - public static void shiftClickSlot(ContainerScreen gui, Slot slot, int slotNumber) + public static void shiftClickSlot(ScreenWithHandler gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 0, SlotActionType.QUICK_MOVE); } - public static void leftClickSlot(ContainerScreen gui, int slotNum) + public static void leftClickSlot(ScreenWithHandler gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.PICKUP); } - public static void rightClickSlot(ContainerScreen gui, int slotNum) + public static void rightClickSlot(ScreenWithHandler gui, int slotNum) { clickSlot(gui, slotNum, 1, SlotActionType.PICKUP); } - public static void shiftClickSlot(ContainerScreen gui, int slotNum) + public static void shiftClickSlot(ScreenWithHandler gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.QUICK_MOVE); } - public static void dropItemsFromCursor(ContainerScreen gui) + public static void dropItemsFromCursor(ScreenWithHandler gui) { clickSlot(gui, -999, 0, SlotActionType.PICKUP); } - public static void dropItem(ContainerScreen gui, int slotNum) + public static void dropItem(ScreenWithHandler gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.THROW); } - public static void dropStack(ContainerScreen gui, int slotNum) + public static void dropStack(ScreenWithHandler gui, int slotNum) { clickSlot(gui, slotNum, 1, SlotActionType.THROW); } - public static void swapSlots(ContainerScreen gui, int slotNum, int otherSlot) + public static void swapSlots(ScreenWithHandler gui, int slotNum, int otherSlot) { clickSlot(gui, slotNum, 0, SlotActionType.SWAP); clickSlot(gui, otherSlot, 0, SlotActionType.SWAP); clickSlot(gui, slotNum, 0, SlotActionType.SWAP); } - private static void dragSplitItemsIntoSlots(ContainerScreen gui, List targetSlots) + private static void dragSplitItemsIntoSlots(ScreenWithHandler gui, List targetSlots) { MinecraftClient mc = MinecraftClient.getInstance(); ItemStack stackInCursor = mc.player.inventory.getCursorStack(); @@ -2413,7 +2413,7 @@ private static void dragSplitItemsIntoSlots(ContainerScreen return; } - int numSlots = gui.getContainer().slots.size(); + int numSlots = gui.getScreenHandler().slots.size(); int loops = targetSlots.size(); // Start the drag diff --git a/src/main/resources/mixins.itemscroller.json b/src/main/resources/mixins.itemscroller.json index 8bbe3183..39924db8 100644 --- a/src/main/resources/mixins.itemscroller.json +++ b/src/main/resources/mixins.itemscroller.json @@ -4,11 +4,11 @@ "compatibilityLevel": "JAVA_8", "minVersion": "0.7", "client": [ - "IMixinContainerScreen", "IMixinMerchantScreen", + "IMixinScreenWithHandler", "IMixinSlot", "MixinAbstractInventoryScreen", - "MixinCraftingTableContainer", + "MixinCraftingTableScreenHandler", "MixinGameRenderer", "MixinScreen" ], From a5c9640039fefae988af46b182e409360c8a0cf1 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Thu, 19 Mar 2020 20:09:51 +0200 Subject: [PATCH 05/20] Update to MC 1.16 snapshot 20w12a --- build.properties | 10 +- .../dy/masa/itemscroller/config/Configs.java | 4 +- .../masa/itemscroller/event/InputHandler.java | 12 +- .../itemscroller/event/KeybindCallbacks.java | 10 +- .../event/RenderEventHandler.java | 22 +-- .../mixin/IMixinScreenWithHandler.java | 2 +- .../masa/itemscroller/mixin/IMixinSlot.java | 5 +- ...r.java => MixinCraftingScreenHandler.java} | 10 +- .../itemscroller/recipes/CraftingHandler.java | 24 +-- .../itemscroller/recipes/RecipePattern.java | 4 +- .../itemscroller/recipes/RecipeStorage.java | 6 +- .../masa/itemscroller/util/AccessorUtils.java | 16 +- .../dy/masa/itemscroller/util/InputUtils.java | 4 +- .../itemscroller/util/InventoryUtils.java | 140 +++++++++--------- src/main/resources/mixins.itemscroller.json | 2 +- 15 files changed, 135 insertions(+), 136 deletions(-) rename src/main/java/fi/dy/masa/itemscroller/mixin/{MixinCraftingTableScreenHandler.java => MixinCraftingScreenHandler.java} (87%) diff --git a/build.properties b/build.properties index 7fb865e7..13930569 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w11a -minecraft_version = 20w11a -mappings_version = 20w11a+build.1 +minecraft_version_out = 1.16-snap-20w12a +minecraft_version = 20w12a +mappings_version = 20w12a+build.14 -fabric_loader_version = 0.7.8+build.187 -mod_menu_version = 1.8.5+build.23 +fabric_loader_version = 0.7.8+build.188 +mod_menu_version = 1.11.0+build.2 diff --git a/src/main/java/fi/dy/masa/itemscroller/config/Configs.java b/src/main/java/fi/dy/masa/itemscroller/config/Configs.java index e7081001..7681dc50 100644 --- a/src/main/java/fi/dy/masa/itemscroller/config/Configs.java +++ b/src/main/java/fi/dy/masa/itemscroller/config/Configs.java @@ -16,7 +16,7 @@ import fi.dy.masa.malilib.config.options.ConfigBoolean; import fi.dy.masa.malilib.util.FileUtils; import fi.dy.masa.malilib.util.JsonUtils; -import net.minecraft.client.gui.screen.ingame.CraftingTableScreen; +import net.minecraft.client.gui.screen.ingame.CraftingScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.screen.slot.CraftingResultSlot; @@ -107,7 +107,7 @@ public static void loadFromFile() CraftingHandler.clearDefinitions(); // "net.minecraft.client.gui.inventory.GuiCrafting,net.minecraft.inventory.SlotCrafting,0,1-9", // vanilla Crafting Table - CraftingHandler.addCraftingGridDefinition(CraftingTableScreen.class.getName(), CraftingResultSlot.class.getName(), 0, new SlotRange(1, 9)); + CraftingHandler.addCraftingGridDefinition(CraftingScreen.class.getName(), CraftingResultSlot.class.getName(), 0, new SlotRange(1, 9)); //"net.minecraft.client.gui.inventory.PlayerInventoryScreen,net.minecraft.inventory.SlotCrafting,0,1-4", // vanilla player inventory crafting grid CraftingHandler.addCraftingGridDefinition(InventoryScreen.class.getName(), CraftingResultSlot.class.getName(), 0, new SlotRange(1, 4)); } diff --git a/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java index b3defedb..4e492683 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/InputHandler.java @@ -3,7 +3,7 @@ import org.lwjgl.glfw.GLFW; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.screen.slot.Slot; import net.minecraft.util.math.MathHelper; import fi.dy.masa.itemscroller.Reference; @@ -122,11 +122,11 @@ private boolean handleInput(int keyCode, boolean keyState, double dWheel) final int mouseX = fi.dy.masa.malilib.util.InputUtils.getMouseX(); final int mouseY = fi.dy.masa.malilib.util.InputUtils.getMouseY(); - if (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && + if (GuiUtils.getCurrentScreen() instanceof HandledScreen && (GuiUtils.getCurrentScreen() instanceof CreativeInventoryScreen) == false && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false) { - ScreenWithHandler gui = (ScreenWithHandler) GuiUtils.getCurrentScreen(); + HandledScreen gui = (HandledScreen) GuiUtils.getCurrentScreen(); RecipeStorage recipes = RecipeStorage.getInstance(); if (dWheel != 0) @@ -204,14 +204,14 @@ public void onMouseMove(int mouseX, int mouseY) if (this.callbacks.functionalityEnabled() && mc.player != null && - GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && + GuiUtils.getCurrentScreen() instanceof HandledScreen && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false) { - this.handleDragging((ScreenWithHandler) GuiUtils.getCurrentScreen(), mc, mouseX, mouseY, false); + this.handleDragging((HandledScreen) GuiUtils.getCurrentScreen(), mc, mouseX, mouseY, false); } } - private boolean handleDragging(ScreenWithHandler gui, MinecraftClient mc, int mouseX, int mouseY, boolean isClick) + private boolean handleDragging(HandledScreen gui, MinecraftClient mc, int mouseX, int mouseY, boolean isClick) { MoveAction action = InventoryUtils.getActiveMoveAction(); diff --git a/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java b/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java index d0d0da19..136c2127 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/KeybindCallbacks.java @@ -3,8 +3,8 @@ import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.screen.slot.Slot; import net.minecraft.sound.SoundEvents; import fi.dy.masa.itemscroller.ItemScroller; @@ -80,12 +80,12 @@ else if (key == Hotkeys.KEY_OPEN_CONFIG_GUI.getKeybind()) return true; } - if (this.disabled || mc == null || mc.player == null || (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler) == false) + if (this.disabled || mc == null || mc.player == null || (GuiUtils.getCurrentScreen() instanceof HandledScreen) == false) { return false; } - ScreenWithHandler gui = (ScreenWithHandler) GuiUtils.getCurrentScreen(); + HandledScreen gui = (HandledScreen) GuiUtils.getCurrentScreen(); Slot slot = AccessorUtils.getSlotUnderMouse(gui); RecipeStorage recipes = RecipeStorage.getInstance(); MoveAction moveAction = InputUtils.getDragMoveAction(key); @@ -170,13 +170,13 @@ public void onClientTick(MinecraftClient mc) if (this.disabled == false && mc != null && mc.player != null && - GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && + GuiUtils.getCurrentScreen() instanceof HandledScreen && (GuiUtils.getCurrentScreen() instanceof CreativeInventoryScreen) == false && Configs.GUI_BLACKLIST.contains(GuiUtils.getCurrentScreen().getClass().getName()) == false && Hotkeys.KEY_MASS_CRAFT.getKeybind().isKeybindHeld()) { Screen guiScreen = GuiUtils.getCurrentScreen(); - ScreenWithHandler gui = (ScreenWithHandler) guiScreen; + HandledScreen gui = (HandledScreen) guiScreen; Slot outputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); if (outputSlot != null) diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index 8c94c8d6..ac111ddd 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -6,7 +6,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.render.DiffuseLighting; import net.minecraft.client.util.GlAllocationUtils; import net.minecraft.item.ItemStack; @@ -47,9 +47,9 @@ public static RenderEventHandler instance() public void onDrawBackgroundPost() { - if (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && InputUtils.isRecipeViewOpen()) + if (GuiUtils.getCurrentScreen() instanceof HandledScreen && InputUtils.isRecipeViewOpen()) { - ScreenWithHandler gui = (ScreenWithHandler) GuiUtils.getCurrentScreen(); + HandledScreen gui = (HandledScreen) GuiUtils.getCurrentScreen(); RecipeStorage recipes = RecipeStorage.getInstance(); final int first = recipes.getFirstVisibleRecipeId(); final int countPerPage = recipes.getRecipeCountPerPage(); @@ -91,9 +91,9 @@ public void onDrawBackgroundPost() public void onDrawScreenPost() { - if (GuiUtils.getCurrentScreen() instanceof ScreenWithHandler && InputUtils.isRecipeViewOpen()) + if (GuiUtils.getCurrentScreen() instanceof HandledScreen && InputUtils.isRecipeViewOpen()) { - ScreenWithHandler gui = (ScreenWithHandler) this.mc.currentScreen; + HandledScreen gui = (HandledScreen) this.mc.currentScreen; RecipeStorage recipes = RecipeStorage.getInstance(); final int mouseX = fi.dy.masa.malilib.util.InputUtils.getMouseX(); @@ -124,7 +124,7 @@ else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) } } - private void calculateRecipePositions(ScreenWithHandler gui) + private void calculateRecipePositions(HandledScreen gui) { RecipeStorage recipes = RecipeStorage.getInstance(); final int gapHorizontal = 2; @@ -155,7 +155,7 @@ private void calculateRecipePositions(ScreenWithHandler gui) this.columnWidth = stackBaseHeight + this.numberTextWidth + this.gapColumn; } - private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, ScreenWithHandler gui) + private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, HandledScreen gui) { ItemStack stack = recipe.getResult(); @@ -165,7 +165,7 @@ private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, Sc } } - public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, ScreenWithHandler gui) + public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, HandledScreen gui) { if (InputUtils.isRecipeViewOpen()) { @@ -194,7 +194,7 @@ public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, Scr return -1; } - private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, ScreenWithHandler gui, boolean selected) + private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, HandledScreen gui, boolean selected) { final TextRenderer font = this.mc.textRenderer; final String indexStr = String.valueOf(recipeId + 1); @@ -216,7 +216,7 @@ private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int RenderSystem.popMatrix(); } - private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, ScreenWithHandler gui) + private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, HandledScreen gui) { ItemStack[] items = recipe.getRecipeItems(); final int recipeDimensions = (int) Math.ceil(Math.sqrt(recipe.getRecipeLength())); @@ -235,7 +235,7 @@ private void renderRecipeItems(RecipePattern recipe, int recipeCountPerPage, Scr } } - private ItemStack getHoveredRecipeIngredient(int mouseX, int mouseY, RecipePattern recipe, int recipeCountPerPage, ScreenWithHandler gui) + private ItemStack getHoveredRecipeIngredient(int mouseX, int mouseY, RecipePattern recipe, int recipeCountPerPage, HandledScreen gui) { final int recipeDimensions = (int) Math.ceil(Math.sqrt(recipe.getRecipeLength())); int scaledStackDimensions = (int) (16 * this.scale); diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java index b4b079f7..e963a407 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinScreenWithHandler.java @@ -4,7 +4,7 @@ import org.spongepowered.asm.mixin.gen.Accessor; import org.spongepowered.asm.mixin.gen.Invoker; -@Mixin(net.minecraft.client.gui.screen.ingame.ScreenWithHandler.class) +@Mixin(net.minecraft.client.gui.screen.ingame.HandledScreen.class) public interface IMixinScreenWithHandler { @Invoker("getSlotAt") diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java index 4ceaed21..d425e6be 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/IMixinSlot.java @@ -1,12 +1,11 @@ package fi.dy.masa.itemscroller.mixin; -import net.minecraft.screen.slot.Slot; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.gen.Accessor; -@Mixin(Slot.class) +@Mixin(net.minecraft.screen.slot.Slot.class) public interface IMixinSlot { - @Accessor("invSlot") + @Accessor("index") int getSlotIndex(); } diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingScreenHandler.java similarity index 87% rename from src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java rename to src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingScreenHandler.java index 97c238b8..fef3cb17 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingTableScreenHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinCraftingScreenHandler.java @@ -8,17 +8,17 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import fi.dy.masa.itemscroller.util.InventoryUtils; -@Mixin(net.minecraft.screen.CraftingTableScreenHandler.class) -public abstract class MixinCraftingTableScreenHandler +@Mixin(net.minecraft.screen.CraftingScreenHandler.class) +public abstract class MixinCraftingScreenHandler { - @Shadow @Final private net.minecraft.inventory.CraftingInventory craftingInv; - @Shadow @Final private net.minecraft.inventory.CraftingResultInventory resultInv; + @Shadow @Final private net.minecraft.inventory.CraftingInventory input; + @Shadow @Final private net.minecraft.inventory.CraftingResultInventory result; @Shadow @Final private net.minecraft.entity.player.PlayerEntity player; @Inject(method = "onContentChanged", at = @At("RETURN")) private void onSlotChangedCraftingGrid(net.minecraft.inventory.Inventory inventory, CallbackInfo ci) { - InventoryUtils.onSlotChangedCraftingGrid(this.player, this.craftingInv, this.resultInv); + InventoryUtils.onSlotChangedCraftingGrid(this.player, this.input, this.result); } @Inject(method = "updateResult", at = @At("RETURN")) diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java b/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java index 57fed720..bb077b21 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/CraftingHandler.java @@ -6,7 +6,7 @@ import java.util.Set; import javax.annotation.Nullable; import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.screen.ScreenHandler; import net.minecraft.screen.slot.Slot; import fi.dy.masa.itemscroller.ItemScroller; @@ -14,7 +14,7 @@ public class CraftingHandler { private static final Map CRAFTING_GRID_SLOTS = new HashMap(); - private static final Set>> CRAFTING_GUIS = new HashSet<>(); + private static final Set>> CRAFTING_GUIS = new HashSet<>(); public static void clearDefinitions() { @@ -27,7 +27,7 @@ public static boolean addCraftingGridDefinition(String guiClassName, String slot { try { - Class> guiClass = (Class>) Class.forName(guiClassName); + Class> guiClass = (Class>) Class.forName(guiClassName); Class slotClass = (Class) Class.forName(slotClassName); CRAFTING_GRID_SLOTS.put(new CraftingOutputSlot(guiClass, slotClass, outputSlot), range); @@ -46,7 +46,7 @@ public static boolean addCraftingGridDefinition(String guiClassName, String slot public static boolean isCraftingGui(Screen gui) { - return (gui instanceof ScreenWithHandler) && CRAFTING_GUIS.contains(((ScreenWithHandler) gui).getClass()); + return (gui instanceof HandledScreen) && CRAFTING_GUIS.contains(((HandledScreen) gui).getClass()); } /** @@ -56,13 +56,13 @@ public static boolean isCraftingGui(Screen gui) * @return the SlotRange of the crafting grid, or null, if the given slot is not a crafting output slot */ @Nullable - public static SlotRange getCraftingGridSlots(ScreenWithHandler gui, Slot slot) + public static SlotRange getCraftingGridSlots(HandledScreen gui, Slot slot) { return CRAFTING_GRID_SLOTS.get(CraftingOutputSlot.from(gui, slot)); } @Nullable - public static Slot getFirstCraftingOutputSlotForGui(ScreenWithHandler gui) + public static Slot getFirstCraftingOutputSlotForGui(HandledScreen gui) { if (CRAFTING_GUIS.contains(gui.getClass())) { @@ -80,11 +80,11 @@ public static Slot getFirstCraftingOutputSlotForGui(ScreenWithHandler> guiClass; + private final Class> guiClass; private final Class slotClass; private final int outputSlot; - private CraftingOutputSlot (Class> guiClass, Class slotClass, int outputSlot) + private CraftingOutputSlot (Class> guiClass, Class slotClass, int outputSlot) { this.guiClass = guiClass; this.slotClass = slotClass; @@ -92,12 +92,12 @@ private CraftingOutputSlot (Class> guiClass, Clas } @SuppressWarnings("unchecked") - public static CraftingOutputSlot from(ScreenWithHandler gui, Slot slot) + public static CraftingOutputSlot from(HandledScreen gui, Slot slot) { - return new CraftingOutputSlot((Class>) gui.getClass(), slot.getClass(), slot.id); + return new CraftingOutputSlot((Class>) gui.getClass(), slot.getClass(), slot.id); } - public Class> getGuiClass() + public Class> getGuiClass() { return this.guiClass; } @@ -112,7 +112,7 @@ public int getSlotNumber() return this.outputSlot; } - public boolean matches(ScreenWithHandler gui, Slot slot, int outputSlot) + public boolean matches(HandledScreen gui, Slot slot, int outputSlot) { return outputSlot == this.outputSlot && gui.getClass() == this.guiClass && slot.getClass() == this.slotClass; } diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java index 8a531090..383c75ad 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipePattern.java @@ -1,7 +1,7 @@ package fi.dy.masa.itemscroller.recipes; import javax.annotation.Nonnull; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; @@ -45,7 +45,7 @@ public void ensureRecipeSizeAndClearRecipe(int size) this.clearRecipe(); } - public void storeCraftingRecipe(Slot slot, ScreenWithHandler gui, boolean clearIfEmpty) + public void storeCraftingRecipe(Slot slot, HandledScreen gui, boolean clearIfEmpty) { SlotRange range = CraftingHandler.getCraftingGridSlots(gui, slot); diff --git a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java index 7d38298a..9e07df67 100644 --- a/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java +++ b/src/main/java/fi/dy/masa/itemscroller/recipes/RecipeStorage.java @@ -4,7 +4,7 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import javax.annotation.Nonnull; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.ListTag; import net.minecraft.nbt.NbtIo; @@ -103,12 +103,12 @@ public RecipePattern getSelectedRecipe() return this.getRecipe(this.getSelection()); } - public void storeCraftingRecipeToCurrentSelection(Slot slot, ScreenWithHandler gui, boolean clearIfEmpty) + public void storeCraftingRecipeToCurrentSelection(Slot slot, HandledScreen gui, boolean clearIfEmpty) { this.storeCraftingRecipe(this.getSelection(), slot, gui, clearIfEmpty); } - public void storeCraftingRecipe(int index, Slot slot, ScreenWithHandler gui, boolean clearIfEmpty) + public void storeCraftingRecipe(int index, Slot slot, HandledScreen gui, boolean clearIfEmpty) { this.getRecipe(index).storeCraftingRecipe(slot, gui, clearIfEmpty); this.dirty = true; diff --git a/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java index 7f452361..79cb24c7 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/AccessorUtils.java @@ -1,7 +1,7 @@ package fi.dy.masa.itemscroller.util; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.screen.slot.Slot; import net.minecraft.screen.slot.SlotActionType; import fi.dy.masa.itemscroller.mixin.IMixinScreenWithHandler; @@ -10,37 +10,37 @@ public class AccessorUtils { - public static Slot getSlotUnderMouse(ScreenWithHandler gui) + public static Slot getSlotUnderMouse(HandledScreen gui) { return ((IMixinScreenWithHandler) gui).getHoveredSlot(); } - public static Slot getSlotAtPosition(ScreenWithHandler gui, int x, int y) + public static Slot getSlotAtPosition(HandledScreen gui, int x, int y) { return ((IMixinScreenWithHandler) gui).getSlotAtPositionInvoker(x, y); } - public static void handleMouseClick(ScreenWithHandler gui, Slot slotIn, int slotId, int mouseButton, SlotActionType type) + public static void handleMouseClick(HandledScreen gui, Slot slotIn, int slotId, int mouseButton, SlotActionType type) { ((IMixinScreenWithHandler) gui).handleMouseClickInvoker(slotIn, slotId, mouseButton, type); } - public static int getGuiLeft(ScreenWithHandler gui) + public static int getGuiLeft(HandledScreen gui) { return ((IMixinScreenWithHandler) gui).getGuiLeft(); } - public static int getGuiTop(ScreenWithHandler gui) + public static int getGuiTop(HandledScreen gui) { return ((IMixinScreenWithHandler) gui).getGuiTop(); } - public static int getGuiXSize(ScreenWithHandler gui) + public static int getGuiXSize(HandledScreen gui) { return ((IMixinScreenWithHandler) gui).getGuiSizeX(); } - public static int getGuiYSize(ScreenWithHandler gui) + public static int getGuiYSize(HandledScreen gui) { return ((IMixinScreenWithHandler) gui).getGuiSizeY(); } diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java index e6893855..a98f09ef 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InputUtils.java @@ -1,7 +1,7 @@ package fi.dy.masa.itemscroller.util; import net.minecraft.client.MinecraftClient; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import fi.dy.masa.itemscroller.config.Hotkeys; import fi.dy.masa.itemscroller.event.KeybindCallbacks; import fi.dy.masa.itemscroller.recipes.CraftingHandler; @@ -19,7 +19,7 @@ public static boolean isRecipeViewOpen() CraftingHandler.isCraftingGui(GuiUtils.getCurrentScreen()); } - public static boolean canShiftDropItems(ScreenWithHandler gui, MinecraftClient mc, int mouseX, int mouseY) + public static boolean canShiftDropItems(HandledScreen gui, MinecraftClient mc, int mouseX, int mouseY) { if (InventoryUtils.isStackEmpty(mc.player.inventory.getCursorStack()) == false) { diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java index 3f30cf48..10b28f85 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java @@ -12,9 +12,9 @@ import javax.annotation.Nullable; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ingame.CreativeInventoryScreen; +import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.gui.screen.ingame.InventoryScreen; import net.minecraft.client.gui.screen.ingame.MerchantScreen; -import net.minecraft.client.gui.screen.ingame.ScreenWithHandler; import net.minecraft.client.network.ClientPlayerEntity; import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.player.PlayerEntity; @@ -99,7 +99,7 @@ public static String getStackString(ItemStack stack) return ""; } - public static void debugPrintSlotInfo(ScreenWithHandler gui, Slot slot) + public static void debugPrintSlotInfo(HandledScreen gui, Slot slot) { if (slot == null) { @@ -118,7 +118,7 @@ public static void debugPrintSlotInfo(ScreenWithHandler gui.getScreenHandler().slots.size())); } - private static boolean isValidSlot(Slot slot, ScreenWithHandler gui, boolean requireItems) + private static boolean isValidSlot(Slot slot, HandledScreen gui, boolean requireItems) { ScreenHandler container = gui.getScreenHandler(); @@ -128,7 +128,7 @@ private static boolean isValidSlot(Slot slot, ScreenWithHandler gui, @Nullable Slot slot) + public static boolean isCraftingSlot(HandledScreen gui, @Nullable Slot slot) { return slot != null && CraftingHandler.getCraftingGridSlots(gui, slot) != null; } @@ -140,7 +140,7 @@ private static boolean inventoryExistsAbove(Slot slot, ScreenHandler container) { for (Slot slotTmp : container.slots) { - if (slotTmp.yPosition < slot.yPosition && areSlotsInSameInventory(slot, slotTmp) == false) + if (slotTmp.y < slot.y && areSlotsInSameInventory(slot, slotTmp) == false) { return true; } @@ -149,7 +149,7 @@ private static boolean inventoryExistsAbove(Slot slot, ScreenHandler container) return false; } - public static boolean canShiftPlaceItems(ScreenWithHandler gui) + public static boolean canShiftPlaceItems(HandledScreen gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -160,7 +160,7 @@ public static boolean canShiftPlaceItems(ScreenWithHandler gui, RecipeStorage recipes, boolean scrollingUp) + public static boolean tryMoveItems(HandledScreen gui, RecipeStorage recipes, boolean scrollingUp) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -252,7 +252,7 @@ else if (getStackSize(stack) < slot.getMaxStackAmount(stack)) return false; } - public static boolean dragMoveItems(ScreenWithHandler gui, MinecraftClient mc, MoveAction action, int mouseX, int mouseY, boolean isClick) + public static boolean dragMoveItems(HandledScreen gui, MinecraftClient mc, MoveAction action, int mouseX, int mouseY, boolean isClick) { if (isStackEmpty(mc.player.inventory.getCursorStack()) == false) { @@ -355,7 +355,7 @@ public static void stopDragging() DRAGGED_SLOTS.clear(); } - private static boolean dragMoveFromSlotAtPosition(ScreenWithHandler gui, int x, int y, MoveAction action) + private static boolean dragMoveFromSlotAtPosition(HandledScreen gui, int x, int y, MoveAction action) { if (gui instanceof CreativeInventoryScreen) { @@ -426,7 +426,7 @@ private static boolean dragMoveFromSlotAtPosition(ScreenWithHandler gui, int x, int y, MoveAction action) + private static boolean dragMoveFromSlotAtPositionCreative(HandledScreen gui, int x, int y, MoveAction action) { CreativeInventoryScreen guiCreative = (CreativeInventoryScreen) gui; Slot slot = AccessorUtils.getSlotAtPosition(gui, x, y); @@ -520,7 +520,7 @@ private static boolean dragMoveFromSlotAtPositionCreative(ScreenWithHandler gui, ItemStack stackReference, Slot slotReference, boolean sameInventory) + public static void dropStacks(HandledScreen gui, ItemStack stackReference, Slot slotReference, boolean sameInventory) { if (slotReference != null && isStackEmpty(stackReference) == false) { @@ -540,7 +540,7 @@ public static void dropStacks(ScreenWithHandler gui, It } } - public static boolean shiftDropItems(ScreenWithHandler gui) + public static boolean shiftDropItems(HandledScreen gui) { ItemStack stackReference = MinecraftClient.getInstance().player.inventory.getCursorStack(); @@ -558,7 +558,7 @@ public static boolean shiftDropItems(ScreenWithHandler return false; } - public static boolean shiftPlaceItems(Slot slot, ScreenWithHandler gui) + public static boolean shiftPlaceItems(Slot slot, HandledScreen gui) { // Left click to place the items from the cursor to the slot leftClickSlot(gui, slot.id); @@ -650,7 +650,7 @@ else if (slot.hasStack()) return false; } - private static boolean tryMoveSingleItemToOtherInventory(Slot slot, ScreenWithHandler gui) + private static boolean tryMoveSingleItemToOtherInventory(Slot slot, HandledScreen gui) { ItemStack stackOrig = slot.getStack(); ScreenHandler container = gui.getScreenHandler(); @@ -702,7 +702,7 @@ private static boolean tryMoveSingleItemToOtherInventory(Slot slot, ScreenWithHa return false; } - private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, ScreenWithHandler gui) + private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, HandledScreen gui) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -826,7 +826,7 @@ private static boolean tryMoveAllButOneItemToOtherInventory(Slot slot, ScreenWit return false; } - private static boolean tryMoveSingleItemToThisInventory(Slot slot, ScreenWithHandler gui) + private static boolean tryMoveSingleItemToThisInventory(Slot slot, HandledScreen gui) { ScreenHandler container = gui.getScreenHandler(); ItemStack stackOrig = slot.getStack(); @@ -875,12 +875,12 @@ private static boolean tryMoveSingleItemToThisInventory(Slot slot, ScreenWithHan return false; } - public static void tryMoveStacks(Slot slot, ScreenWithHandler gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) + public static void tryMoveStacks(Slot slot, HandledScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) { tryMoveStacks(slot.getStack(), slot, gui, matchingOnly, toOtherInventory, firstOnly); } - private static void tryMoveStacks(ItemStack stackReference, Slot slot, ScreenWithHandler gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) + private static void tryMoveStacks(ItemStack stackReference, Slot slot, HandledScreen gui, boolean matchingOnly, boolean toOtherInventory, boolean firstOnly) { ScreenHandler container = gui.getScreenHandler(); final int maxSlot = container.slots.size() - 1; @@ -946,7 +946,7 @@ private static void tryMoveItemsToMerchantBuySlots(MerchantScreen gui, boolean f } } - private static void fillBuySlot(ScreenWithHandler gui, int slotNum, ItemStack buyStack, boolean fillStacks) + private static void fillBuySlot(HandledScreen gui, int slotNum, ItemStack buyStack, boolean fillStacks) { Slot slot = gui.getScreenHandler().getSlot(slotNum); ItemStack existingStack = slot.getStack(); @@ -966,7 +966,7 @@ private static void fillBuySlot(ScreenWithHandler gui, } } - public static void handleRecipeClick(ScreenWithHandler gui, MinecraftClient mc, RecipeStorage recipes, int hoveredRecipeId, + public static void handleRecipeClick(HandledScreen gui, MinecraftClient mc, RecipeStorage recipes, int hoveredRecipeId, boolean isLeftClick, boolean isRightClick, boolean isPickBlock, boolean isShiftDown) { if (isLeftClick || isRightClick) @@ -1029,7 +1029,7 @@ else if (isPickBlock) } } - public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, ScreenWithHandler gui, boolean fillStacks) + public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, HandledScreen gui, boolean fillStacks) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1039,13 +1039,13 @@ public static void tryMoveItemsToFirstCraftingGrid(RecipePattern recipe, ScreenW } } - public static void loadRecipeItemsToGridForOutputSlotUnderMouse(RecipePattern recipe, ScreenWithHandler gui) + public static void loadRecipeItemsToGridForOutputSlotUnderMouse(RecipePattern recipe, HandledScreen gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); loadRecipeItemsToGridForOutputSlot(recipe, gui, slot); } - private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, ScreenWithHandler gui, Slot outputSlot) + private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, HandledScreen gui, Slot outputSlot) { if (outputSlot != null && isCraftingSlot(gui, outputSlot) && isStackEmpty(recipe.getResult()) == false) { @@ -1053,7 +1053,7 @@ private static void loadRecipeItemsToGridForOutputSlot(RecipePattern recipe, Scr } } - private static boolean tryMoveItemsCrafting(RecipeStorage recipes, Slot slot, ScreenWithHandler gui, + private static boolean tryMoveItemsCrafting(RecipeStorage recipes, Slot slot, HandledScreen gui, boolean moveToOtherInventory, boolean moveStacks, boolean moveEverything) { RecipePattern recipe = recipes.getSelectedRecipe(); @@ -1097,7 +1097,7 @@ else if (moveToOtherInventory == false && isStackEmpty(stackRecipeOutput) == fal return false; } - private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, ScreenWithHandler gui) + private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, HandledScreen gui) { ItemStack result = recipe.getResult(); int failSafe = 1024; @@ -1121,7 +1121,7 @@ private static void craftAsManyItemsAsPossible(RecipePattern recipe, Slot slot, } } - public static void clearFirstCraftingGridOfItems(RecipePattern recipe, ScreenWithHandler gui, boolean clearNonMatchingOnly) + public static void clearFirstCraftingGridOfItems(RecipePattern recipe, HandledScreen gui, boolean clearNonMatchingOnly) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1132,7 +1132,7 @@ public static void clearFirstCraftingGridOfItems(RecipePattern recipe, ScreenWit } } - public static void clearFirstCraftingGridOfAllItems(ScreenWithHandler gui) + public static void clearFirstCraftingGridOfAllItems(HandledScreen gui) { Slot craftingOutputSlot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1143,7 +1143,7 @@ public static void clearFirstCraftingGridOfAllItems(ScreenWithHandler gui, SlotRange range, boolean clearNonMatchingOnly) + private static boolean clearCraftingGridOfItems(RecipePattern recipe, HandledScreen gui, SlotRange range, boolean clearNonMatchingOnly) { final int invSlots = gui.getScreenHandler().slots.size(); final int rangeSlots = range.getSlotCount(); @@ -1170,7 +1170,7 @@ private static boolean clearCraftingGridOfItems(RecipePattern recipe, ScreenWith return true; } - private static boolean clearCraftingGridOfAllItems(ScreenWithHandler gui, SlotRange range) + private static boolean clearCraftingGridOfAllItems(HandledScreen gui, SlotRange range) { final int invSlots = gui.getScreenHandler().slots.size(); final int rangeSlots = range.getSlotCount(); @@ -1195,7 +1195,7 @@ private static boolean clearCraftingGridOfAllItems(ScreenWithHandler gui, boolean fillStacks) + private static boolean tryMoveItemsToCraftingGridSlots(RecipePattern recipe, Slot slot, HandledScreen gui, boolean fillStacks) { ScreenHandler container = gui.getScreenHandler(); int numSlots = container.slots.size(); @@ -1240,7 +1240,7 @@ private static boolean tryMoveItemsToCraftingGridSlots(RecipePattern recipe, Slo return false; } - private static void fillCraftingGrid(ScreenWithHandler gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) + private static void fillCraftingGrid(HandledScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) { ScreenHandler container = gui.getScreenHandler(); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1322,7 +1322,7 @@ private static void fillCraftingGrid(ScreenWithHandler } } - public static void rightClickCraftOneStack(ScreenWithHandler gui) + public static void rightClickCraftOneStack(HandledScreen gui) { Slot slot = AccessorUtils.getSlotUnderMouse(gui); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1354,7 +1354,7 @@ public static void rightClickCraftOneStack(ScreenWithHandler gui) + public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe, HandledScreen gui) { Slot slot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1380,7 +1380,7 @@ public static void craftEverythingPossibleWithCurrentRecipe(RecipePattern recipe } } - public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, ScreenWithHandler gui) + public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, HandledScreen gui) { if (isStackEmpty(recipe.getResult()) == false) { @@ -1412,7 +1412,7 @@ public static void moveAllCraftingResultsToOtherInventory(RecipePattern recipe, } } - public static void throwAllCraftingResultsToGround(RecipePattern recipe, ScreenWithHandler gui) + public static void throwAllCraftingResultsToGround(RecipePattern recipe, HandledScreen gui) { Slot slot = CraftingHandler.getFirstCraftingOutputSlotForGui(gui); @@ -1422,7 +1422,7 @@ public static void throwAllCraftingResultsToGround(RecipePattern recipe, ScreenW } } - private static int putSingleItemIntoSlots(ScreenWithHandler gui, List targetSlots, int startIndex) + private static int putSingleItemIntoSlots(HandledScreen gui, List targetSlots, int startIndex) { MinecraftClient mc = MinecraftClient.getInstance(); ItemStack stackInCursor = mc.player.inventory.getCursorStack(); @@ -1453,7 +1453,7 @@ private static int putSingleItemIntoSlots(ScreenWithHandler gui, Slot slot) + public static void moveOneSetOfItemsFromSlotToPlayerInventory(HandledScreen gui, Slot slot) { leftClickSlot(gui, slot.id); @@ -1472,7 +1472,7 @@ public static void moveOneSetOfItemsFromSlotToPlayerInventory(ScreenWithHandler< } } - private static void moveOneRecipeItemIntoCraftingGrid(ScreenWithHandler gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) + private static void moveOneRecipeItemIntoCraftingGrid(HandledScreen gui, Slot slotGridFirst, ItemStack ingredientReference, List targetSlots) { ScreenHandler container = gui.getScreenHandler(); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1519,7 +1519,7 @@ private static void moveOneRecipeItemIntoCraftingGrid(ScreenWithHandler gui, List slotNumbers) + private static boolean moveItemFromCursorToSlots(HandledScreen gui, List slotNumbers) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -1537,7 +1537,7 @@ private static boolean moveItemFromCursorToSlots(ScreenWithHandler gui, int slotTo, Inventory invSrc, ItemStack stackTemplate, boolean fillStacks) + private static void moveItemsFromInventory(HandledScreen gui, int slotTo, Inventory invSrc, ItemStack stackTemplate, boolean fillStacks) { ScreenHandler container = gui.getScreenHandler(); @@ -1845,7 +1845,7 @@ private void clickSlotsToMoveItems(Slot slot, ContainerScreen gui, boolean toOtherInventory) + private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, HandledScreen gui, boolean toOtherInventory) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -1881,7 +1881,7 @@ private static void clickSlotsToMoveItemsFromSlot(Slot slotFrom, ScreenWithHandl } } - private static boolean clickSlotsToMoveSingleItem(ScreenWithHandler gui, int slotFrom, int slotTo) + private static boolean clickSlotsToMoveSingleItem(HandledScreen gui, int slotFrom, int slotTo) { //System.out.println("clickSlotsToMoveSingleItem(from: " + slotFrom + ", to: " + slotTo + ")"); MinecraftClient mc = MinecraftClient.getInstance(); @@ -1916,7 +1916,7 @@ private static boolean clickSlotsToMoveSingleItem(ScreenWithHandler gui, int slotFrom) + private static boolean clickSlotsToMoveSingleItemByShiftClick(HandledScreen gui, int slotFrom) { MinecraftClient mc = MinecraftClient.getInstance(); Slot slot = gui.getScreenHandler().slots.get(slotFrom); @@ -1961,7 +1961,7 @@ private static boolean clickSlotsToMoveSingleItemByShiftClick(ScreenWithHandler< * Try move items from slotFrom to slotTo * @return true if at least some items were moved */ - private static boolean clickSlotsToMoveItems(ScreenWithHandler gui, int slotFrom, int slotTo) + private static boolean clickSlotsToMoveItems(HandledScreen gui, int slotFrom, int slotTo) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerEntity player = mc.player; @@ -1994,7 +1994,7 @@ private static boolean clickSlotsToMoveItems(ScreenWithHandler gui, int slotNum) + public static void dropStacksUntilEmpty(HandledScreen gui, int slotNum) { if (slotNum >= 0 && slotNum < gui.getScreenHandler().slots.size()) { @@ -2008,7 +2008,7 @@ public static void dropStacksUntilEmpty(ScreenWithHandler gui, int slotNum, ItemStack stackReference) + public static void dropStacksWhileHasItem(HandledScreen gui, int slotNum, ItemStack stackReference) { if (slotNum >= 0 && slotNum < gui.getScreenHandler().slots.size()) { @@ -2022,7 +2022,7 @@ public static void dropStacksWhileHasItem(ScreenWithHandler gui, int slotNum) + private static boolean shiftClickSlotWithCheck(HandledScreen gui, int slotNum) { Slot slot = gui.getScreenHandler().getSlot(slotNum); @@ -2037,7 +2037,7 @@ private static boolean shiftClickSlotWithCheck(ScreenWithHandler gui, Slot slot, boolean moveUp, MoveAmount amount) + public static boolean tryMoveItemsVertically(HandledScreen gui, Slot slot, boolean moveUp, MoveAmount amount) { MinecraftClient mc = MinecraftClient.getInstance(); @@ -2074,7 +2074,7 @@ else if (amount == MoveAmount.ALL_MATCHING) return true; } - private static void moveMatchingStacksToSlots(ScreenWithHandler gui, Slot slot, boolean moveUp) + private static void moveMatchingStacksToSlots(HandledScreen gui, Slot slot, boolean moveUp) { List matchingSlots = getSlotNumbersOfMatchingStacks(gui.getScreenHandler(), slot, true, slot.getStack(), true, true, false); List targetSlots = getSlotNumbersOfEmptySlots(gui.getScreenHandler(), slot, false, true, false); @@ -2090,14 +2090,14 @@ private static void moveMatchingStacksToSlots(ScreenWithHandler srcSlot.yPosition) == moveUp)) + if (lastSlot == null || (lastSlot.id == srcSlot.id || (lastSlot.y > srcSlot.y) == moveUp)) { return; } } } - private static Slot moveStackToSlots(ScreenWithHandler gui, Slot slotFrom, List slotsTo, boolean leaveOne) + private static Slot moveStackToSlots(HandledScreen gui, Slot slotFrom, List slotsTo, boolean leaveOne) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -2144,7 +2144,7 @@ private static Slot moveStackToSlots(ScreenWithHandler return lastSlot; } - private static void moveOneItemToFirstValidSlot(ScreenWithHandler gui, Slot slotFrom, List slotsTo) + private static void moveOneItemToFirstValidSlot(HandledScreen gui, Slot slotFrom, List slotsTo) { MinecraftClient mc = MinecraftClient.getInstance(); PlayerInventory inv = mc.player.inventory; @@ -2189,9 +2189,9 @@ private static List getVerticallyFurthestSuitableSlotsForStackInSlot(Sc for (Slot slotTmp : container.slots) { - if (slotTmp.id != slotIn.id && slotTmp.yPosition != slotIn.yPosition) + if (slotTmp.id != slotIn.id && slotTmp.y != slotIn.y) { - if (above == slotTmp.yPosition < slotIn.yPosition) + if (above == slotTmp.y < slotIn.y) { ItemStack stackTmp = slotTmp.getStack(); @@ -2209,7 +2209,7 @@ private static List getVerticallyFurthestSuitableSlotsForStackInSlot(Sc return slotNumbers; } - public static void tryClearCursor(ScreenWithHandler gui, MinecraftClient mc) + public static void tryClearCursor(HandledScreen gui, MinecraftClient mc) { ItemStack stackCursor = mc.player.inventory.getCursorStack(); @@ -2301,16 +2301,16 @@ public int compare(Integer slotNum1, Integer slotNum2) Slot slot1 = this.container.getSlot(slotNum1.intValue()); Slot slot2 = this.container.getSlot(slotNum2.intValue()); - if (slot1.yPosition == slot2.yPosition) + if (slot1.y == slot2.y) { return (slot1.id < slot2.id) == this.topToBottom ? -1 : 1; } - return (slot1.yPosition < slot2.yPosition) == this.topToBottom ? -1 : 1; + return (slot1.y < slot2.y) == this.topToBottom ? -1 : 1; } } - public static void clickSlot(ScreenWithHandler gui, int slotNum, int mouseButton, SlotActionType type) + public static void clickSlot(HandledScreen gui, int slotNum, int mouseButton, SlotActionType type) { if (slotNum >= 0 && slotNum < gui.getScreenHandler().slots.size()) { @@ -2332,7 +2332,7 @@ public static void clickSlot(ScreenWithHandler gui, int } } - public static void clickSlot(ScreenWithHandler gui, Slot slot, int slotNum, int mouseButton, SlotActionType type) + public static void clickSlot(HandledScreen gui, Slot slot, int slotNum, int mouseButton, SlotActionType type) { try { @@ -2345,59 +2345,59 @@ public static void clickSlot(ScreenWithHandler gui, Slo } } - public static void leftClickSlot(ScreenWithHandler gui, Slot slot, int slotNumber) + public static void leftClickSlot(HandledScreen gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 0, SlotActionType.PICKUP); } - public static void rightClickSlot(ScreenWithHandler gui, Slot slot, int slotNumber) + public static void rightClickSlot(HandledScreen gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 1, SlotActionType.PICKUP); } - public static void shiftClickSlot(ScreenWithHandler gui, Slot slot, int slotNumber) + public static void shiftClickSlot(HandledScreen gui, Slot slot, int slotNumber) { clickSlot(gui, slot, slotNumber, 0, SlotActionType.QUICK_MOVE); } - public static void leftClickSlot(ScreenWithHandler gui, int slotNum) + public static void leftClickSlot(HandledScreen gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.PICKUP); } - public static void rightClickSlot(ScreenWithHandler gui, int slotNum) + public static void rightClickSlot(HandledScreen gui, int slotNum) { clickSlot(gui, slotNum, 1, SlotActionType.PICKUP); } - public static void shiftClickSlot(ScreenWithHandler gui, int slotNum) + public static void shiftClickSlot(HandledScreen gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.QUICK_MOVE); } - public static void dropItemsFromCursor(ScreenWithHandler gui) + public static void dropItemsFromCursor(HandledScreen gui) { clickSlot(gui, -999, 0, SlotActionType.PICKUP); } - public static void dropItem(ScreenWithHandler gui, int slotNum) + public static void dropItem(HandledScreen gui, int slotNum) { clickSlot(gui, slotNum, 0, SlotActionType.THROW); } - public static void dropStack(ScreenWithHandler gui, int slotNum) + public static void dropStack(HandledScreen gui, int slotNum) { clickSlot(gui, slotNum, 1, SlotActionType.THROW); } - public static void swapSlots(ScreenWithHandler gui, int slotNum, int otherSlot) + public static void swapSlots(HandledScreen gui, int slotNum, int otherSlot) { clickSlot(gui, slotNum, 0, SlotActionType.SWAP); clickSlot(gui, otherSlot, 0, SlotActionType.SWAP); clickSlot(gui, slotNum, 0, SlotActionType.SWAP); } - private static void dragSplitItemsIntoSlots(ScreenWithHandler gui, List targetSlots) + private static void dragSplitItemsIntoSlots(HandledScreen gui, List targetSlots) { MinecraftClient mc = MinecraftClient.getInstance(); ItemStack stackInCursor = mc.player.inventory.getCursorStack(); diff --git a/src/main/resources/mixins.itemscroller.json b/src/main/resources/mixins.itemscroller.json index 39924db8..98aecaf2 100644 --- a/src/main/resources/mixins.itemscroller.json +++ b/src/main/resources/mixins.itemscroller.json @@ -8,7 +8,7 @@ "IMixinScreenWithHandler", "IMixinSlot", "MixinAbstractInventoryScreen", - "MixinCraftingTableScreenHandler", + "MixinCraftingScreenHandler", "MixinGameRenderer", "MixinScreen" ], From 4aa39d2f8da91deda92abdb97fbacf138b20add5 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Thu, 26 Mar 2020 03:31:08 +0200 Subject: [PATCH 06/20] Update to MC 1.16 snapshot 20w13a --- build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.properties b/build.properties index 13930569..bd2105f2 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w12a -minecraft_version = 20w12a -mappings_version = 20w12a+build.14 +minecraft_version_out = 1.16-snap-20w13a +minecraft_version = 20w13a +mappings_version = 20w13a+build.5 -fabric_loader_version = 0.7.8+build.188 +fabric_loader_version = 0.7.8+build.189 mod_menu_version = 1.11.0+build.2 From fdd1bf517ceb18ac61d26f5915dc2b5f7a8a6db7 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Fri, 3 Apr 2020 00:17:30 +0300 Subject: [PATCH 07/20] Update to MC 1.16 snapshot 20w14a --- build.properties | 10 +++++----- .../fi/dy/masa/itemscroller/util/InventoryUtils.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.properties b/build.properties index bd2105f2..d1427c02 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w13a -minecraft_version = 20w13a -mappings_version = 20w13a+build.5 +minecraft_version_out = 1.16-snap-20w14a +minecraft_version = 20w14a +mappings_version = 20w14a+build.1 -fabric_loader_version = 0.7.8+build.189 -mod_menu_version = 1.11.0+build.2 +fabric_loader_version = 0.7.9+build.190 +mod_menu_version = 1.11.1+build.3 diff --git a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java index 10b28f85..b4c70b17 100644 --- a/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java +++ b/src/main/java/fi/dy/masa/itemscroller/util/InventoryUtils.java @@ -79,7 +79,7 @@ public static void onSlotChangedCraftingGrid(PlayerEntity player, stack = recipe.craft(craftMatrix); } - inventoryCraftResult.setInvStack(0, stack); + inventoryCraftResult.setStack(0, stack); } } } From 21f130bc4876bf6f7e4c473f290b9f5d6b223fb2 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Wed, 8 Apr 2020 18:57:53 +0300 Subject: [PATCH 08/20] Update to MC 1.16 snapshot 20w15a --- build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.properties b/build.properties index d1427c02..c868257c 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w14a -minecraft_version = 20w14a -mappings_version = 20w14a+build.1 +minecraft_version_out = 1.16-snap-20w15a +minecraft_version = 20w15a +mappings_version = 20w15a+build.1 -fabric_loader_version = 0.7.9+build.190 +fabric_loader_version = 0.8.2+build.194 mod_menu_version = 1.11.1+build.3 From 2d494d5ef26c62af486426e568f44bc53235c578 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Thu, 16 Apr 2020 00:07:05 +0300 Subject: [PATCH 09/20] Update to MC 1.16 snapshot 20w16a --- build.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.properties b/build.properties index c868257c..de7e7a4c 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w15a -minecraft_version = 20w15a -mappings_version = 20w15a+build.1 +minecraft_version_out = 1.16-snap-20w16a +minecraft_version = 20w16a +mappings_version = 20w16a+build.1 fabric_loader_version = 0.8.2+build.194 mod_menu_version = 1.11.1+build.3 From 5e0b1f9c96244a6544834bfe4d5b9d50b6520f65 Mon Sep 17 00:00:00 2001 From: Arnevdl29 Date: Sat, 25 Apr 2020 02:01:24 +0200 Subject: [PATCH 10/20] Update to MC 1.16 snapshot 20w17a --- build.properties | 10 ++++----- .../event/RenderEventHandler.java | 22 ++++++++++--------- .../itemscroller/mixin/MixinGameRenderer.java | 8 ++++--- .../masa/itemscroller/mixin/MixinScreen.java | 6 ++--- src/main/resources/fabric.mod.json | 2 +- 5 files changed, 26 insertions(+), 22 deletions(-) diff --git a/build.properties b/build.properties index d1427c02..b0a7dbe4 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.20+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w14a -minecraft_version = 20w14a -mappings_version = 20w14a+build.1 +minecraft_version_out = 1.16-snap-20w17a +minecraft_version = 20w17a +mappings_version = 20w17a+build.1 -fabric_loader_version = 0.7.9+build.190 -mod_menu_version = 1.11.1+build.3 +fabric_loader_version = 0.8.2+build.194 +mod_menu_version = 1.11.2+build.6 diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index ac111ddd..955bb849 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -9,6 +9,7 @@ import net.minecraft.client.gui.screen.ingame.HandledScreen; import net.minecraft.client.render.DiffuseLighting; import net.minecraft.client.util.GlAllocationUtils; +import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.util.math.Vec3d; import fi.dy.masa.itemscroller.config.Configs; @@ -45,7 +46,7 @@ public static RenderEventHandler instance() return INSTANCE; } - public void onDrawBackgroundPost() + public void onDrawBackgroundPost(MatrixStack matrixStack) { if (GuiUtils.getCurrentScreen() instanceof HandledScreen && InputUtils.isRecipeViewOpen()) { @@ -62,7 +63,7 @@ public void onDrawBackgroundPost() RenderSystem.scaled(this.scale, this.scale, 1); String str = StringUtils.translate("itemscroller.gui.label.recipe_page", (first / countPerPage) + 1, recipes.getTotalRecipeCount() / countPerPage); - this.mc.textRenderer.draw(str, 16, -12, 0xC0C0C0C0); + this.mc.textRenderer.draw(matrixStack, str, 16, -12, 0xC0C0C0C0); for (int i = 0, recipeId = first; recipeId <= lastOnPage; ++i, ++recipeId) { @@ -71,7 +72,7 @@ public void onDrawBackgroundPost() int row = i % this.recipesPerColumn; int column = i / this.recipesPerColumn; - this.renderStoredRecipeStack(stack, recipeId, row, column, gui, selected); + this.renderStoredRecipeStack(stack, recipeId, row, column, gui, selected, matrixStack); } if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) @@ -89,7 +90,7 @@ public void onDrawBackgroundPost() } } - public void onDrawScreenPost() + public void onDrawScreenPost(MatrixStack matrixStack) { if (GuiUtils.getCurrentScreen() instanceof HandledScreen && InputUtils.isRecipeViewOpen()) { @@ -107,7 +108,7 @@ public void onDrawScreenPost() if (recipeId >= 0) { RecipePattern recipe = recipes.getRecipe(recipeId); - this.renderHoverTooltip(mouseX, mouseY, recipe, gui); + this.renderHoverTooltip(mouseX, mouseY, recipe, gui, matrixStack); } else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) { @@ -116,7 +117,7 @@ else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) if (InventoryUtils.isStackEmpty(stack) == false) { - InventoryOverlay.renderStackToolTip(mouseX, mouseY, stack, this.mc); + InventoryOverlay.renderStackToolTip(mouseX, mouseY, stack, this.mc, matrixStack); } } @@ -155,13 +156,13 @@ private void calculateRecipePositions(HandledScreen gui) this.columnWidth = stackBaseHeight + this.numberTextWidth + this.gapColumn; } - private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, HandledScreen gui) + private void renderHoverTooltip(int mouseX, int mouseY, RecipePattern recipe, HandledScreen gui, MatrixStack matrixStack) { ItemStack stack = recipe.getResult(); if (InventoryUtils.isStackEmpty(stack) == false) { - InventoryOverlay.renderStackToolTip(mouseX, mouseY, stack, this.mc); + InventoryOverlay.renderStackToolTip(mouseX, mouseY, stack, this.mc, matrixStack); } } @@ -194,7 +195,8 @@ public int getHoveredRecipeId(int mouseX, int mouseY, RecipeStorage recipes, Han return -1; } - private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, HandledScreen gui, boolean selected) + private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int column, HandledScreen gui, + boolean selected, MatrixStack matrixStack) { final TextRenderer font = this.mc.textRenderer; final String indexStr = String.valueOf(recipeId + 1); @@ -211,7 +213,7 @@ private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int RenderSystem.translatef(x, y, 0); RenderSystem.scaled(scale, scale, 0); - font.draw(indexStr, 0, 0, 0xC0C0C0); + font.draw(matrixStack, indexStr, 0, 0, 0xC0C0C0); RenderSystem.popMatrix(); } diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java index 22dfa629..313e3b73 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java @@ -5,6 +5,7 @@ import org.spongepowered.asm.mixin.injection.At.Shift; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import fi.dy.masa.itemscroller.event.RenderEventHandler; @Mixin(net.minecraft.client.render.GameRenderer.class) @@ -12,9 +13,10 @@ public abstract class MixinGameRenderer { @Inject(method = "render(FJZ)V", at = @At(value = "INVOKE", shift = Shift.AFTER, - target = "Lnet/minecraft/client/gui/screen/Screen;render(IIF)V")) - private void onDrawScreenPost(float partialTicks, long nanoTime, boolean renderWorldIn, CallbackInfo ci) + target = "Lnet/minecraft/client/gui/screen/Screen;render(Lnet/minecraft/client/util/math/MatrixStack;IIF)V"), + locals = LocalCapture.CAPTURE_FAILSOFT) + private void onDrawScreenPost(float partialTicks, long nanoTime, boolean renderWorldIn, CallbackInfo ci, int i, int j, net.minecraft.client.util.math.MatrixStack matrixStack) { - RenderEventHandler.instance().onDrawScreenPost(); + RenderEventHandler.instance().onDrawScreenPost(matrixStack); } } diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinScreen.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinScreen.java index fd71dc97..344cb7a6 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinScreen.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinScreen.java @@ -11,9 +11,9 @@ @Mixin(Screen.class) public abstract class MixinScreen extends AbstractParentElement { - @Inject(method = "renderBackground()V", at = @At("RETURN")) - protected void onDrawDefaultBackgroundPost(CallbackInfo ci) + @Inject(method = "renderBackground(Lnet/minecraft/client/util/math/MatrixStack;)V", at = @At("RETURN")) + protected void onDrawDefaultBackgroundPost(net.minecraft.client.util.math.MatrixStack matrixStack, CallbackInfo ci) { - RenderEventHandler.instance().onDrawBackgroundPost(); + RenderEventHandler.instance().onDrawBackgroundPost(matrixStack); } } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 8f94d00f..960cb6a7 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ ], "depends": { - "malilib": "=0.10.0-dev.20" + "malilib": ">=0.10.0-dev.20" }, "custom": { From 5cfd7fbbf3aff89f04b11316f15640e27904c31a Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Sun, 26 Apr 2020 00:01:44 +0300 Subject: [PATCH 11/20] Small clean-up --- build.properties | 2 +- .../fi/dy/masa/itemscroller/event/RenderEventHandler.java | 7 ++++--- .../fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java | 8 +++----- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/build.properties b/build.properties index 11a3b6ef..95b10adc 100644 --- a/build.properties +++ b/build.properties @@ -9,7 +9,7 @@ mod_file_name = itemscroller-fabric mod_version = 0.15.0-dev # Required malilib version -malilib_version = 0.10.0-dev.20+beta.1 +malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions minecraft_version_out = 1.16-snap-20w17a diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index 955bb849..5cbaa926 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -29,6 +29,7 @@ public class RenderEventHandler private static final Vec3d LIGHT0_POS = (new Vec3d( 0.2D, 1.0D, -0.7D)).normalize(); private static final Vec3d LIGHT1_POS = (new Vec3d(-0.2D, 1.0D, 0.7D)).normalize(); private static final FloatBuffer FLOAT_BUFFER = GlAllocationUtils.allocateFloatBuffer(4); + private static final MatrixStack FRESH_MATRIX_STACK = new MatrixStack(); private final MinecraftClient mc = MinecraftClient.getInstance(); private int recipeListX; @@ -90,7 +91,7 @@ public void onDrawBackgroundPost(MatrixStack matrixStack) } } - public void onDrawScreenPost(MatrixStack matrixStack) + public void onDrawScreenPost() { if (GuiUtils.getCurrentScreen() instanceof HandledScreen && InputUtils.isRecipeViewOpen()) { @@ -108,7 +109,7 @@ public void onDrawScreenPost(MatrixStack matrixStack) if (recipeId >= 0) { RecipePattern recipe = recipes.getRecipe(recipeId); - this.renderHoverTooltip(mouseX, mouseY, recipe, gui, matrixStack); + this.renderHoverTooltip(mouseX, mouseY, recipe, gui, FRESH_MATRIX_STACK); } else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) { @@ -117,7 +118,7 @@ else if (Configs.Generic.CRAFTING_RENDER_RECIPE_ITEMS.getBooleanValue()) if (InventoryUtils.isStackEmpty(stack) == false) { - InventoryOverlay.renderStackToolTip(mouseX, mouseY, stack, this.mc, matrixStack); + InventoryOverlay.renderStackToolTip(mouseX, mouseY, stack, this.mc, FRESH_MATRIX_STACK); } } diff --git a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java index 313e3b73..e8a0c823 100644 --- a/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java +++ b/src/main/java/fi/dy/masa/itemscroller/mixin/MixinGameRenderer.java @@ -5,7 +5,6 @@ import org.spongepowered.asm.mixin.injection.At.Shift; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import fi.dy.masa.itemscroller.event.RenderEventHandler; @Mixin(net.minecraft.client.render.GameRenderer.class) @@ -13,10 +12,9 @@ public abstract class MixinGameRenderer { @Inject(method = "render(FJZ)V", at = @At(value = "INVOKE", shift = Shift.AFTER, - target = "Lnet/minecraft/client/gui/screen/Screen;render(Lnet/minecraft/client/util/math/MatrixStack;IIF)V"), - locals = LocalCapture.CAPTURE_FAILSOFT) - private void onDrawScreenPost(float partialTicks, long nanoTime, boolean renderWorldIn, CallbackInfo ci, int i, int j, net.minecraft.client.util.math.MatrixStack matrixStack) + target = "Lnet/minecraft/client/gui/screen/Screen;render(Lnet/minecraft/client/util/math/MatrixStack;IIF)V")) + private void onDrawScreenPost(float partialTicks, long nanoTime, boolean renderWorldIn, CallbackInfo ci) { - RenderEventHandler.instance().onDrawScreenPost(matrixStack); + RenderEventHandler.instance().onDrawScreenPost(); } } From 171e3eade6a14534c50237c375e5d9c528c364c6 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Thu, 30 Apr 2020 00:30:46 +0300 Subject: [PATCH 12/20] Update to MC 1.16 snapshot 20w18a --- build.gradle | 2 +- build.properties | 6 +++--- .../fi/dy/masa/itemscroller/event/RenderEventHandler.java | 2 +- src/main/resources/fabric.mod.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index fd581694..cedda45b 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } } dependencies { - classpath 'net.fabricmc:fabric-loom:0.2.6-SNAPSHOT' + classpath 'net.fabricmc:fabric-loom:0.2.7-SNAPSHOT' } } diff --git a/build.properties b/build.properties index 95b10adc..91415f4f 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w17a -minecraft_version = 20w17a -mappings_version = 20w17a+build.4 +minecraft_version_out = 1.16-snap-20w18a +minecraft_version = 20w18a +mappings_version = 20w18a+build.2 fabric_loader_version = 0.8.2+build.194 mod_menu_version = 1.11.2+build.6 diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index 5cbaa926..b2d63ea1 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -207,7 +207,7 @@ private void renderStoredRecipeStack(ItemStack stack, int recipeId, int row, int this.renderStackAt(stack, x, y, selected); double scale = 0.75; - x = x - (int) (font.getStringWidth(indexStr) * scale) - 2; + x = x - (int) (font.getWidth(indexStr) * scale) - 2; y = row * this.entryHeight + this.entryHeight / 2 - font.fontHeight / 2; RenderSystem.pushMatrix(); diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 960cb6a7..f6b3614c 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ ], "depends": { - "malilib": ">=0.10.0-dev.20" + "malilib": ">=0.10.0-dev.21" }, "custom": { From 1ec32ca42e78044fbc4b99a62ac49d0e2b7a6ac6 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Thu, 7 May 2020 00:01:01 +0300 Subject: [PATCH 13/20] Update to MC 1.16 snapshot 20w19a --- build.properties | 8 ++++---- .../fi/dy/masa/itemscroller/event/RenderEventHandler.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.properties b/build.properties index 91415f4f..6c40ac99 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w18a -minecraft_version = 20w18a -mappings_version = 20w18a+build.2 +minecraft_version_out = 1.16-snap-20w19a +minecraft_version = 20w19a +mappings_version = 20w19a+build.1 fabric_loader_version = 0.8.2+build.194 -mod_menu_version = 1.11.2+build.6 +mod_menu_version = 1.11.4+build.9 diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index b2d63ea1..b0209fca 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -299,7 +299,7 @@ private void renderStackAt(ItemStack stack, int x, int y, boolean border) stack = stack.copy(); InventoryUtils.setStackSize(stack, 1); this.mc.getItemRenderer().zOffset += 100; - this.mc.getItemRenderer().renderGuiItem(this.mc.player, stack, x, y); + this.mc.getItemRenderer().renderGuiItem(stack, x, y); this.mc.getItemRenderer().zOffset -= 100; } From d65e0c148737a898b333934df09165bbe0731f9f Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Fri, 15 May 2020 19:41:00 +0300 Subject: [PATCH 14/20] Update to MC 1.16 snapshot 20w20b --- build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.properties b/build.properties index 6c40ac99..dc894066 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w19a -minecraft_version = 20w19a -mappings_version = 20w19a+build.1 +minecraft_version_out = 1.16-snap-20w20b +minecraft_version = 20w20b +mappings_version = 20w20b+build.7 -fabric_loader_version = 0.8.2+build.194 -mod_menu_version = 1.11.4+build.9 +fabric_loader_version = 0.8.3+build.196 +mod_menu_version = 1.11.5+build.10 From 815bbf9d2e14be78e6a011a50477f397babd5ebd Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Fri, 22 May 2020 00:56:08 +0300 Subject: [PATCH 15/20] Update to MC 1.16 snapshot 20w21a --- build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.properties b/build.properties index dc894066..9f486bd0 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w20b -minecraft_version = 20w20b -mappings_version = 20w20b+build.7 +minecraft_version_out = 1.16-snap-20w21a +minecraft_version = 20w21a +mappings_version = 20w21a+build.7 -fabric_loader_version = 0.8.3+build.196 +fabric_loader_version = 0.8.4+build.198 mod_menu_version = 1.11.5+build.10 From df93b2c0b9a8929dd7eefe519685f59215f86d75 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Fri, 29 May 2020 22:16:06 +0300 Subject: [PATCH 16/20] Update to MC 1.16 snapshot 20w22a --- build.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.properties b/build.properties index 9f486bd0..190fcd95 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w21a -minecraft_version = 20w21a -mappings_version = 20w21a+build.7 +minecraft_version_out = 1.16-snap-20w22a +minecraft_version = 20w22a +mappings_version = 20w22a+build.1 fabric_loader_version = 0.8.4+build.198 -mod_menu_version = 1.11.5+build.10 +mod_menu_version = 1.11.7+build.12 From 16c41cd6edb7843fed6c075e9b64516414e67bdc Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Mon, 8 Jun 2020 22:36:33 +0300 Subject: [PATCH 17/20] Update to MC 1.16-pre2 --- build.properties | 10 +++++----- .../dy/masa/itemscroller/event/RenderEventHandler.java | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.properties b/build.properties index 190fcd95..696e59a4 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-snap-20w22a -minecraft_version = 20w22a -mappings_version = 20w22a+build.1 +minecraft_version_out = 1.16-pre2 +minecraft_version = 1.16-pre2 +mappings_version = 1.16-pre2+build.26 -fabric_loader_version = 0.8.4+build.198 -mod_menu_version = 1.11.7+build.12 +fabric_loader_version = 0.8.7+build.201 +mod_menu_version = 1.11.8+build.13 diff --git a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java index b0209fca..832efdd4 100644 --- a/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java +++ b/src/main/java/fi/dy/masa/itemscroller/event/RenderEventHandler.java @@ -299,7 +299,7 @@ private void renderStackAt(ItemStack stack, int x, int y, boolean border) stack = stack.copy(); InventoryUtils.setStackSize(stack, 1); this.mc.getItemRenderer().zOffset += 100; - this.mc.getItemRenderer().renderGuiItem(stack, x, y); + this.mc.getItemRenderer().renderInGui(stack, x, y); this.mc.getItemRenderer().zOffset -= 100; } From dd151fffba500d42a8c86a9e5e77b6e53f4ff941 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Wed, 10 Jun 2020 22:04:32 +0300 Subject: [PATCH 18/20] Update to MC 1.16-pre3 --- build.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/build.properties b/build.properties index 696e59a4..43adfbf6 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-pre2 -minecraft_version = 1.16-pre2 -mappings_version = 1.16-pre2+build.26 +minecraft_version_out = 1.16-pre3 +minecraft_version = 1.16-pre3 +mappings_version = 1.16-pre3+build.1 fabric_loader_version = 0.8.7+build.201 mod_menu_version = 1.11.8+build.13 From 38059b3f91fbf8059370064dad1cbdaee801d6ec Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Wed, 24 Jun 2020 02:38:49 +0300 Subject: [PATCH 19/20] Update to MC 1.16.0 --- build.gradle | 2 +- build.properties | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/build.gradle b/build.gradle index cedda45b..acaf81a6 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { } } dependencies { - classpath 'net.fabricmc:fabric-loom:0.2.7-SNAPSHOT' + classpath 'net.fabricmc:fabric-loom:0.4-SNAPSHOT' } } diff --git a/build.properties b/build.properties index 43adfbf6..f9b3022d 100644 --- a/build.properties +++ b/build.properties @@ -12,9 +12,9 @@ mod_version = 0.15.0-dev malilib_version = 0.10.0-dev.21+beta.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16-pre3 -minecraft_version = 1.16-pre3 -mappings_version = 1.16-pre3+build.1 +minecraft_version_out = 1.16.0 +minecraft_version = 1.16 +mappings_version = 1.16+build.1 -fabric_loader_version = 0.8.7+build.201 -mod_menu_version = 1.11.8+build.13 +fabric_loader_version = 0.8.8+build.202 +mod_menu_version = 1.12.2+build.16 From 53773bce58d0fe447486667f79061afb64e36bc7 Mon Sep 17 00:00:00 2001 From: Matti Ruohonen Date: Tue, 30 Jun 2020 02:30:32 +0300 Subject: [PATCH 20/20] Update to MC 1.16.1 (just a version bump) --- build.properties | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.properties b/build.properties index f9b3022d..67415b56 100644 --- a/build.properties +++ b/build.properties @@ -9,12 +9,12 @@ mod_file_name = itemscroller-fabric mod_version = 0.15.0-dev # Required malilib version -malilib_version = 0.10.0-dev.21+beta.1 +malilib_version = 0.10.0-dev.21+arne.1 # Minecraft, Fabric and mappings versions -minecraft_version_out = 1.16.0 -minecraft_version = 1.16 -mappings_version = 1.16+build.1 +minecraft_version_out = 1.16.1 +minecraft_version = 1.16.1 +mappings_version = 1.16.1+build.18 fabric_loader_version = 0.8.8+build.202 -mod_menu_version = 1.12.2+build.16 +mod_menu_version = 1.12.2+build.17