diff --git a/src/main/java/erogenousbeef/coreTR/multiblock/rectangular/RectangularMultiblockControllerBase.java b/src/main/java/erogenousbeef/coreTR/multiblock/rectangular/RectangularMultiblockControllerBase.java index 0c3ae3e67..bcfcef229 100644 --- a/src/main/java/erogenousbeef/coreTR/multiblock/rectangular/RectangularMultiblockControllerBase.java +++ b/src/main/java/erogenousbeef/coreTR/multiblock/rectangular/RectangularMultiblockControllerBase.java @@ -68,7 +68,7 @@ public abstract class RectangularMultiblockControllerBase extends // This is permitted so that we can incorporate certain non-multiblock parts inside interiors part = null; } - + // Validate block type against both part-level and material-level validators. int extremes = 0; if(x == minimumCoord.x) { extremes++; } diff --git a/src/main/java/techreborn/blocks/BlockBlastFurnace.java b/src/main/java/techreborn/blocks/BlockBlastFurnace.java index c9972dcbe..2c83fa048 100644 --- a/src/main/java/techreborn/blocks/BlockBlastFurnace.java +++ b/src/main/java/techreborn/blocks/BlockBlastFurnace.java @@ -9,10 +9,12 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; +import net.minecraftforge.common.util.ForgeDirection; import techreborn.Core; import techreborn.client.GuiHandler; import techreborn.client.TechRebornCreativeTab; import techreborn.tiles.TileBlastFurnace; +import techreborn.tiles.TileMachineCasing; public class BlockBlastFurnace extends BlockContainer{ @@ -37,7 +39,14 @@ public class BlockBlastFurnace extends BlockContainer{ @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if (!player.isSneaking()) - player.openGui(Core.INSTANCE, GuiHandler.blastFurnaceID, world, x, y, z); + for(ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS){ + if(world.getTileEntity(x + direction.offsetX, y + direction.offsetY, z + direction.offsetZ) instanceof TileMachineCasing){ + TileMachineCasing casing = (TileMachineCasing) world.getTileEntity(x + direction.offsetX, y + direction.offsetY, z + direction.offsetZ); + if(casing.getMultiblockController() != null && casing.getMultiblockController().isAssembled()){ + player.openGui(Core.INSTANCE, GuiHandler.blastFurnaceID, world, x, y, z); + } + } + } return true; } diff --git a/src/main/java/techreborn/multiblocks/MultiBlockCasing.java b/src/main/java/techreborn/multiblocks/MultiBlockCasing.java index 42a9c5751..0ba0ed4bb 100644 --- a/src/main/java/techreborn/multiblocks/MultiBlockCasing.java +++ b/src/main/java/techreborn/multiblocks/MultiBlockCasing.java @@ -2,12 +2,15 @@ package techreborn.multiblocks; import erogenousbeef.coreTR.multiblock.IMultiblockPart; import erogenousbeef.coreTR.multiblock.MultiblockControllerBase; +import erogenousbeef.coreTR.multiblock.MultiblockValidationException; import erogenousbeef.coreTR.multiblock.rectangular.RectangularMultiblockControllerBase; +import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; import techreborn.util.LogHelper; public class MultiBlockCasing extends RectangularMultiblockControllerBase { + public MultiBlockCasing(World world) { super(world); } @@ -28,7 +31,7 @@ public class MultiBlockCasing extends RectangularMultiblockControllerBase { @Override protected void onMachineAssembled() { - LogHelper.all("New multiblock created!"); + LogHelper.warn("New multiblock created!"); } @Override @@ -120,4 +123,14 @@ public class MultiBlockCasing extends RectangularMultiblockControllerBase { public void decodeDescriptionPacket(NBTTagCompound data) { } + + + @Override + protected void isBlockGoodForInterior(World world, int x, int y, int z) throws MultiblockValidationException { + Block block = world.getBlock(x, y, z); + if(block.getUnlocalizedName().equals("tile.lava") || block.getUnlocalizedName().equals("tile.air")){ + } else { + super.isBlockGoodForInterior(world, x, y, z); + } + } } diff --git a/src/main/java/techreborn/tiles/TileMachineCasing.java b/src/main/java/techreborn/tiles/TileMachineCasing.java index 2a58ccb5b..e55286bf2 100644 --- a/src/main/java/techreborn/tiles/TileMachineCasing.java +++ b/src/main/java/techreborn/tiles/TileMachineCasing.java @@ -57,4 +57,8 @@ public class TileMachineCasing extends RectangularMultiblockTileEntityBase { public void isGoodForInterior() throws MultiblockValidationException { } + + public MultiBlockCasing getMultiblockController() { + return (MultiBlockCasing) super.getMultiblockController(); + } }