diff --git a/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/accessor/MainAccessor.java b/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/accessor/MainAccessor.java deleted file mode 100644 index 1783301..0000000 --- a/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/accessor/MainAccessor.java +++ /dev/null @@ -1,14 +0,0 @@ -package dev.terminalmc.moremousetweaks.mixin.accessor; - -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.gen.Accessor; -import yalter.mousetweaks.IGuiScreenHandler; -import yalter.mousetweaks.Main; - -@Mixin(Main.class) -public interface MainAccessor { - @Accessor("handler") - static IGuiScreenHandler getHandler() { - throw new AssertionError(); - } -} diff --git a/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/gui/other/MixinRecipeBookPage.java b/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/gui/other/MixinRecipeBookPage.java index c590bb1..032b3f0 100644 --- a/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/gui/other/MixinRecipeBookPage.java +++ b/common/src/main/java/dev/terminalmc/moremousetweaks/mixin/gui/other/MixinRecipeBookPage.java @@ -18,30 +18,21 @@ package dev.terminalmc.moremousetweaks.mixin.gui.other; import com.llamalad7.mixinextras.sugar.Local; -import dev.terminalmc.moremousetweaks.MoreMouseTweaks; -import dev.terminalmc.moremousetweaks.mixin.accessor.MainAccessor; import dev.terminalmc.moremousetweaks.util.inject.IRecipeBookResults; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.recipebook.RecipeBookPage; import net.minecraft.client.gui.screens.recipebook.RecipeButton; import net.minecraft.client.gui.screens.recipebook.RecipeCollection; -import net.minecraft.world.entity.player.Inventory; -import net.minecraft.world.inventory.AbstractContainerMenu; -import net.minecraft.world.inventory.ClickType; -import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.crafting.RecipeHolder; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; import yalter.mousetweaks.MouseButton; -import java.util.ArrayList; import java.util.Iterator; -import java.util.List; import static dev.terminalmc.moremousetweaks.config.Config.options; @@ -97,90 +88,8 @@ public void mouseClicked(double mouseX, double mouseY, int button, int areaLeft, if (options().quickCrafting && button == MouseButton.RIGHT.getValue() && recipeButton.isOnlyOption()) { - - // Drop carried item if required - ItemStack carried = minecraft.player.containerMenu.getCarried(); - ItemStack result = recipeButton.getRecipe().value().getResultItem(minecraft.level.registryAccess()); - if (!carried.isEmpty() && (!ItemStack.isSameItemSameComponents(carried, result) - || carried.getCount() + result.getCount() > carried.getMaxStackSize())) { - MoreMouseTweaks.LOG.warn("tf1"); - mmt$tryPlaceCarried(carried.copy()); - } - lastClickedRecipe = recipeButton.getRecipe(); lastClickedRecipeCollection = recipeButton.getCollection(); } } - - - @Unique - public void mmt$tryPlaceCarried(ItemStack carried) { - if (carried.isEmpty()) return; - - Inventory inv = minecraft.player.getInventory(); - int maxStack = inv.getMaxStackSize(carried); - int remaining = carried.getCount(); - - List ignoredSlots = new ArrayList<>(); - while (remaining > 0) { - int i = mmt$getSlotForStack(inv, carried, ignoredSlots); - if (i == -1) { - i = mmt$getFreeSlot(inv); - MoreMouseTweaks.LOG.warn("finding free slot"); - } - if (i == -1) { - minecraft.gameMode.handleInventoryMouseClick( - minecraft.player.containerMenu.containerId, - AbstractContainerMenu.SLOT_CLICKED_OUTSIDE, - MouseButton.LEFT.getValue(), - ClickType.THROW, - minecraft.player); - break; - } - - ignoredSlots.add(i); - remaining -= maxStack - inv.getItem(i).getCount(); - MoreMouseTweaks.LOG.warn("placing in slot {} with item {}", i, inv.getItem(i).getDisplayName().getString()); - MainAccessor.getHandler().clickSlot( - minecraft.player.containerMenu.getSlot(i), MouseButton.LEFT, false); - } - } - - @Unique - public int mmt$getSlotForStack(Inventory inv, ItemStack stack, List ignoredSlots) { - if (!ignoredSlots.contains(inv.selected) - && this.mmt$hasSpace(inv, inv.getItem(inv.selected), stack)) { - return inv.selected; - } else if (!ignoredSlots.contains(Inventory.SLOT_OFFHAND) - && mmt$hasSpace(inv, inv.getItem(Inventory.SLOT_OFFHAND), stack)) { - return Inventory.SLOT_OFFHAND; - } else { - for (int i = 0; i < inv.items.size(); i++) { - if (!ignoredSlots.contains(i) && mmt$hasSpace(inv, inv.items.get(i), stack)) { - return i; - } - } - return -1; - } - } - - @Unique - private boolean mmt$hasSpace(Inventory inv, ItemStack destination, ItemStack origin) { - return !destination.isEmpty() - && ItemStack.isSameItemSameComponents(destination, origin) - && destination.isStackable() - && destination.getCount() < inv.getMaxStackSize(destination); - } - - @Unique - public int mmt$getFreeSlot(Inventory inv) { - for( - int i = 4; - i < inv.items.size() + 5; - ++i - ) { - if (inv.items.get(i).isEmpty()) return i; - } - return -1; - } } diff --git a/common/src/main/resources/moremousetweaks.mixins.json b/common/src/main/resources/moremousetweaks.mixins.json index c196bc1..0e52665 100644 --- a/common/src/main/resources/moremousetweaks.mixins.json +++ b/common/src/main/resources/moremousetweaks.mixins.json @@ -7,7 +7,6 @@ "mixins": [ ], "client": [ - "accessor.MainAccessor", "MixinClientPacketListener", "MixinLocalPlayer", "gui.other.MixinAbstractWidget",