From 454bc8f88ca9bf448339bd5ff6e7bb7583b886a2 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 2 Oct 2016 22:57:41 +0200 Subject: [PATCH] Fixed not being able to start autocrafting in other dimensions with Network Transmitter / Network Receivers, fixes #406 --- CHANGELOG.md | 1 + .../api/network/grid/IItemGridHandler.java | 8 +++++++ .../apiimpl/network/grid/ItemGridHandler.java | 15 +++++++++++++ .../network/MessageGridCraftingPreview.java | 21 +------------------ 4 files changed, 25 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b901a43be..5c67781e0 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Added recipe transfer handler for Solderer (way2muchnoise) - It is now possible to start a crafting task even if the crafting preview says you can't (raoulvdberge) - Fixed crash with JEI when changing screens in autocrafting (raoulvdberge) +- Fixed not being able to start autocrafting in other dimensions with Network Transmitter / Network Receivers (raoulvdberge) - Fixed JEI overlay disappearing now and again (raoulvdberge) - Fixed Detector hitbox (raoulvdberge) diff --git a/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java b/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java index 8deea74d2..e1b466460 100755 --- a/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java +++ b/src/main/java/refinedstorage/api/network/grid/IItemGridHandler.java @@ -40,6 +40,14 @@ public interface IItemGridHandler { */ void onInsertHeldItem(EntityPlayerMP player, boolean single); + /** + * Called when a player requests the crafting preview window to be opened. + * + * @param hash the hash of the item we want a preview for, see {@link refinedstorage.api.network.NetworkUtils#getItemStackHashCode(ItemStack)} + * @param quantity the amount of that item that we need a preview for + */ + void onCraftingPreviewRequested(EntityPlayerMP player, int hash, int quantity); + /** * Called when a player requested crafting for an item. * diff --git a/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java b/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java index 3a91b919c..53dee6cc8 100755 --- a/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java +++ b/src/main/java/refinedstorage/apiimpl/network/grid/ItemGridHandler.java @@ -12,6 +12,8 @@ import refinedstorage.api.network.INetworkMaster; import refinedstorage.api.network.NetworkUtils; import refinedstorage.api.network.grid.IItemGridHandler; import refinedstorage.api.storage.CompareUtils; +import refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewData; +import refinedstorage.network.MessageGridCraftingPreviewResponse; public class ItemGridHandler implements IItemGridHandler { private INetworkMaster network; @@ -118,6 +120,19 @@ public class ItemGridHandler implements IItemGridHandler { network.getWirelessGridHandler().drainEnergy(player, RefinedStorage.INSTANCE.config.wirelessGridInsertUsage); } + @Override + public void onCraftingPreviewRequested(EntityPlayerMP player, int hash, int quantity) { + ItemStack stack = network.getItemStorage().get(hash); + + if (stack != null) { + CraftingPreviewData previewData = new CraftingPreviewData(network); + + previewData.calculate(stack, quantity); + + RefinedStorage.INSTANCE.network.sendTo(new MessageGridCraftingPreviewResponse(previewData.values(), hash, quantity), player); + } + } + @Override public void onCraftingRequested(int hash, int quantity) { if (quantity <= 0) { diff --git a/src/main/java/refinedstorage/network/MessageGridCraftingPreview.java b/src/main/java/refinedstorage/network/MessageGridCraftingPreview.java index 55e4f88a0..194972a9c 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingPreview.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingPreview.java @@ -3,12 +3,7 @@ package refinedstorage.network; import io.netty.buffer.ByteBuf; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.Container; -import net.minecraft.item.ItemStack; -import net.minecraft.tileentity.TileEntity; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; -import refinedstorage.RefinedStorage; -import refinedstorage.api.network.INetworkMaster; -import refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewData; import refinedstorage.container.ContainerGrid; public class MessageGridCraftingPreview extends MessageHandlerPlayerToServer implements IMessage { @@ -40,21 +35,7 @@ public class MessageGridCraftingPreview extends MessageHandlerPlayerToServer