From da573459cb28b468644fc1736512810f2416ec89 Mon Sep 17 00:00:00 2001 From: Shadows_of_Fire Date: Sat, 2 Dec 2017 13:38:36 -0500 Subject: [PATCH] Update state when dropper gui closes (fixes #972) --- .../mod/inventory/ContainerDropper.java | 13 +++++++++++-- .../actuallyadditions/mod/inventory/GuiHandler.java | 4 ++-- .../mod/inventory/gui/GuiDropper.java | 6 +++--- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDropper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDropper.java index d844588ef..250da5f15 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDropper.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/ContainerDropper.java @@ -10,6 +10,7 @@ package de.ellpeck.actuallyadditions.mod.inventory; +import de.ellpeck.actuallyadditions.mod.blocks.InitBlocks; import de.ellpeck.actuallyadditions.mod.inventory.slot.SlotItemHandlerUnconditioned; import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityDropper; @@ -24,10 +25,12 @@ import net.minecraft.item.ItemStack; public class ContainerDropper extends Container{ private final TileEntityDropper dropper; + EntityPlayer player; - public ContainerDropper(InventoryPlayer inventory, TileEntityBase tile){ + public ContainerDropper(EntityPlayer player, TileEntityBase tile){ this.dropper = (TileEntityDropper)tile; - + this.player = player; + InventoryPlayer inventory = player.inventory; for(int i = 0; i < 3; i++){ for(int j = 0; j < 3; j++){ this.addSlotToContainer(new SlotItemHandlerUnconditioned(this.dropper.slots, j+i*3, 62+j*18, 21+i*18)); @@ -97,4 +100,10 @@ public class ContainerDropper extends Container{ public boolean canInteractWith(EntityPlayer player){ return this.dropper.canPlayerUse(player); } + + @Override + public void onContainerClosed(EntityPlayer playerIn) { + super.onContainerClosed(playerIn); + if (!player.isSpectator()) dropper.getWorld().notifyNeighborsOfStateChange(dropper.getPos(), InitBlocks.blockDropper, false); + } } \ No newline at end of file diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java index 3433dc6f0..1c6d252c4 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/GuiHandler.java @@ -64,7 +64,7 @@ public class GuiHandler implements IGuiHandler{ case BREAKER: return new ContainerBreaker(player.inventory, tile); case DROPPER: - return new ContainerDropper(player.inventory, tile); + return new ContainerDropper(player, tile); case CANOLA_PRESS: return new ContainerCanolaPress(player.inventory, tile); case FERMENTING_BARREL: @@ -146,7 +146,7 @@ public class GuiHandler implements IGuiHandler{ case BREAKER: return new GuiBreaker(player.inventory, tile); case DROPPER: - return new GuiDropper(player.inventory, tile); + return new GuiDropper(player, tile); case CANOLA_PRESS: return new GuiCanolaPress(player.inventory, tile); case FERMENTING_BARREL: diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDropper.java b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDropper.java index 9fdae20f9..34d213fbf 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDropper.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/inventory/gui/GuiDropper.java @@ -15,7 +15,7 @@ import de.ellpeck.actuallyadditions.mod.tile.TileEntityBase; import de.ellpeck.actuallyadditions.mod.tile.TileEntityDropper; import de.ellpeck.actuallyadditions.mod.util.AssetUtil; import net.minecraft.client.renderer.GlStateManager; -import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; @@ -26,8 +26,8 @@ public class GuiDropper extends GuiWtfMojang{ private static final ResourceLocation RES_LOC = AssetUtil.getGuiLocation("gui_breaker"); private final TileEntityDropper dropper; - public GuiDropper(InventoryPlayer inventory, TileEntityBase tile){ - super(new ContainerDropper(inventory, tile)); + public GuiDropper(EntityPlayer player, TileEntityBase tile){ + super(new ContainerDropper(player, tile)); this.dropper = (TileEntityDropper)tile; this.xSize = 176; this.ySize = 93+86;