From 7dac950cca6d29464440e39cfb3542b1c9360c07 Mon Sep 17 00:00:00 2001 From: TheBrokenRail Date: Sun, 8 Mar 2020 22:00:36 -0400 Subject: [PATCH] 1.1.3 Fix Shift-Clicking in Casting Table --- CHANGELOG.md | 3 ++ gradle.properties | 2 +- .../block/CastingTableContainer.java | 40 +++++++++++++++++++ .../client/block/CastingTableScreen.java | 2 +- 4 files changed, 45 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2686e7..d4b8438 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ ### Changelog +**1.1.3** +* Fix Shift-Clicking in Casting Table + **1.1.2** * Update Casting Table Texture * Generate Spells in Pillager Outposts and Woodland Mansions diff --git a/gradle.properties b/gradle.properties index f6b7f74..4703686 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ org.gradle.jvmargs = -Xmx1G loader_version = 0.7.8+build.186 # Mod Properties - mod_version = 1.1.2 + mod_version = 1.1.3 maven_group = com.thebrokenrail archives_base_name = sorcerycraft diff --git a/src/main/java/com/thebrokenrail/sorcerycraft/block/CastingTableContainer.java b/src/main/java/com/thebrokenrail/sorcerycraft/block/CastingTableContainer.java index 3e9d84e..04a49f5 100644 --- a/src/main/java/com/thebrokenrail/sorcerycraft/block/CastingTableContainer.java +++ b/src/main/java/com/thebrokenrail/sorcerycraft/block/CastingTableContainer.java @@ -133,6 +133,46 @@ public class CastingTableContainer extends Container { } } + public ItemStack transferSlot(PlayerEntity player, int invSlot) { + ItemStack itemStack = ItemStack.EMPTY; + Slot slot = slots.get(invSlot); + if (slot != null && slot.hasStack()) { + ItemStack itemStack2 = slot.getStack(); + itemStack = itemStack2.copy(); + if (invSlot == 2) { + if (!insertItem(itemStack2, 3, 39, true)) { + return ItemStack.EMPTY; + } + + slot.onStackChanged(itemStack2, itemStack); + } else if (invSlot != 0 && invSlot != 1) { + if (invSlot < 30) { + if (!insertItem(itemStack2, 30, 39, false)) { + return ItemStack.EMPTY; + } + } else if (invSlot < 39 && !insertItem(itemStack2, 3, 30, false)) { + return ItemStack.EMPTY; + } + } else if (!insertItem(itemStack2, 3, 39, false)) { + return ItemStack.EMPTY; + } + + if (itemStack2.isEmpty()) { + slot.setStack(ItemStack.EMPTY); + } else { + slot.markDirty(); + } + + if (itemStack2.getCount() == itemStack.getCount()) { + return ItemStack.EMPTY; + } + + slot.onTakeItem(player, itemStack2); + } + + return itemStack; + } + @Override public void close(PlayerEntity player) { super.close(player); diff --git a/src/main/java/com/thebrokenrail/sorcerycraft/client/block/CastingTableScreen.java b/src/main/java/com/thebrokenrail/sorcerycraft/client/block/CastingTableScreen.java index 6ccf277..2d90a4c 100644 --- a/src/main/java/com/thebrokenrail/sorcerycraft/client/block/CastingTableScreen.java +++ b/src/main/java/com/thebrokenrail/sorcerycraft/client/block/CastingTableScreen.java @@ -169,7 +169,7 @@ public class CastingTableScreen extends ContainerScreen { scrolling = false; int i = (width - containerWidth) / 2; int j = (height - containerHeight) / 2; - if (this.canScroll(container.getRecipes().length) && mouseX > (double) (i + 94) && mouseX < (double) (i + 94 + 6) && mouseY > (double) (j + 18) && mouseY <= (double) (j + 18 + 139 + 1)) { + if (canScroll(container.getRecipes().length) && mouseX > (double) (i + 94) && mouseX < (double) (i + 94 + 6) && mouseY > (double) (j + 18) && mouseY <= (double) (j + 18 + 139 + 1)) { scrolling = true; }