diff --git a/src/main/java/appeng/block/storage/BlockSkyChest.java b/src/main/java/appeng/block/storage/BlockSkyChest.java index a4c2f3644..8bb8c871a 100644 --- a/src/main/java/appeng/block/storage/BlockSkyChest.java +++ b/src/main/java/appeng/block/storage/BlockSkyChest.java @@ -86,12 +86,8 @@ public class BlockSkyChest extends AEBaseTileBlock if (tile == null) { return ActionResultType.PASS; } - INamedContainerProvider container = new SimpleNamedContainerProvider((wnd, p, pl) -> new ContainerSkyChest(wnd, p, tile), getNameTextComponent()); - NetworkHooks.openGui((ServerPlayerEntity) player, container, buf -> { - buf.writeBlockPos(pos); - }); - // FIXME Platform.openGUI( player, this.getTileEntity( w, pos ), AEPartLocation.fromFacing(hit.getFace()), GuiBridge.GUI_SKYCHEST ); + ContainerSkyChest.open((ServerPlayerEntity) player, tile, getNameTextComponent()); } return ActionResultType.SUCCESS; diff --git a/src/main/java/appeng/container/implementations/ContainerSkyChest.java b/src/main/java/appeng/container/implementations/ContainerSkyChest.java index bee18d477..20ee10f53 100644 --- a/src/main/java/appeng/container/implementations/ContainerSkyChest.java +++ b/src/main/java/appeng/container/implementations/ContainerSkyChest.java @@ -27,10 +27,15 @@ import net.minecraft.entity.player.PlayerInventory; import appeng.container.AEBaseContainer; import appeng.container.slot.SlotNormal; import appeng.tile.storage.TileSkyChest; +import net.minecraft.entity.player.ServerPlayerEntity; import net.minecraft.inventory.container.ContainerType; +import net.minecraft.inventory.container.INamedContainerProvider; +import net.minecraft.inventory.container.SimpleNamedContainerProvider; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.ITextComponent; +import net.minecraftforge.fml.network.NetworkHooks; public class ContainerSkyChest extends AEBaseContainer @@ -66,6 +71,14 @@ public class ContainerSkyChest extends AEBaseContainer return null; } + public static void open(ServerPlayerEntity player, TileSkyChest tile, ITextComponent title) { + BlockPos pos = tile.getPos(); + INamedContainerProvider container = new SimpleNamedContainerProvider( + (wnd, p, pl) -> new ContainerSkyChest(wnd, p, tile), title + ); + NetworkHooks.openGui(player, container, pos); + } + @Override public void onContainerClosed( final PlayerEntity par1PlayerEntity ) { diff --git a/src/main/java/appeng/core/sync/GuiBridge.java b/src/main/java/appeng/core/sync/GuiBridge.java index 46183a340..8d800de4a 100644 --- a/src/main/java/appeng/core/sync/GuiBridge.java +++ b/src/main/java/appeng/core/sync/GuiBridge.java @@ -487,6 +487,7 @@ public enum GuiBridge if( this.type.isItem() ) { final ItemStack it = player.inventory.getCurrentItem(); + it.getCapability() if( !it.isEmpty() && it.getItem() instanceof IGuiItem ) { final Object myItem = ( (IGuiItem) it.getItem() ).getGuiObject( it, w, pos ); diff --git a/src/main/java/appeng/tile/storage/TileSkyChest.java b/src/main/java/appeng/tile/storage/TileSkyChest.java index d00259964..c1aa04ea1 100644 --- a/src/main/java/appeng/tile/storage/TileSkyChest.java +++ b/src/main/java/appeng/tile/storage/TileSkyChest.java @@ -25,6 +25,7 @@ import appeng.block.storage.BlockSkyChest; import net.minecraft.block.Block; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.inventory.container.IContainerProvider; import net.minecraft.item.ItemStack; import net.minecraft.network.PacketBuffer; import net.minecraft.tileentity.IChestLid; diff --git a/src/main/java/appeng/util/Platform.java b/src/main/java/appeng/util/Platform.java index c797c7b78..38e6b5edf 100644 --- a/src/main/java/appeng/util/Platform.java +++ b/src/main/java/appeng/util/Platform.java @@ -82,6 +82,9 @@ import java.util.*; import com.google.common.base.Preconditions; import net.minecraftforge.registries.ForgeRegistries; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; + /** * @author AlgorithmX2 @@ -312,7 +315,7 @@ public class Platform return false; } -// + // public static void openGUI(@Nonnull final PlayerEntity p, @Nullable final TileEntity tile, @Nullable final AEPartLocation side, @Nonnull final GuiBridge type ) // { // if( isClient() ) @@ -320,6 +323,8 @@ public class Platform // return; // } // +// tile.getCapability(AEProtectedGui.class, side.getFacing()) +// // int x = (int) p.getPosX(); // int y = (int) p.getPosY(); // int z = (int) p.getPosZ();