Bounding blocks for miner!
This commit is contained in:
parent
44ca9d1067
commit
68f3d28119
9 changed files with 418 additions and 8 deletions
|
@ -13,6 +13,7 @@ import mekanism.common.network.PacketTileEntity;
|
||||||
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
||||||
import mekanism.common.util.MekanismUtils;
|
import mekanism.common.util.MekanismUtils;
|
||||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.gui.GuiButton;
|
import net.minecraft.client.gui.GuiButton;
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
|
@ -300,7 +301,10 @@ public class GuiDigitalMiner extends GuiMekanism
|
||||||
{
|
{
|
||||||
if(stack.getItem() instanceof ItemBlock)
|
if(stack.getItem() instanceof ItemBlock)
|
||||||
{
|
{
|
||||||
toUse = stack.copy();
|
if(stack.itemID != Block.bedrock.blockID)
|
||||||
|
{
|
||||||
|
toUse = stack.copy();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
|
else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
|
||||||
|
|
|
@ -13,6 +13,7 @@ import mekanism.common.network.PacketNewFilter;
|
||||||
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
import mekanism.common.tileentity.TileEntityDigitalMiner;
|
||||||
import mekanism.common.util.MekanismUtils;
|
import mekanism.common.util.MekanismUtils;
|
||||||
import mekanism.common.util.MekanismUtils.ResourceType;
|
import mekanism.common.util.MekanismUtils.ResourceType;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.client.gui.GuiButton;
|
import net.minecraft.client.gui.GuiButton;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.item.ItemBlock;
|
import net.minecraft.item.ItemBlock;
|
||||||
|
@ -205,8 +206,11 @@ public class GuiMItemStackFilter extends GuiMekanism
|
||||||
{
|
{
|
||||||
if(stack.getItem() instanceof ItemBlock)
|
if(stack.getItem() instanceof ItemBlock)
|
||||||
{
|
{
|
||||||
filter.itemType = stack.copy();
|
if(stack.itemID != Block.bedrock.blockID)
|
||||||
filter.itemType.stackSize = 1;
|
{
|
||||||
|
filter.itemType = stack.copy();
|
||||||
|
filter.itemType.stackSize = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
|
else if(stack == null && Keyboard.isKeyDown(Keyboard.KEY_LSHIFT))
|
||||||
|
|
18
common/mekanism/common/IAdvancedBoundingBlock.java
Normal file
18
common/mekanism/common/IAdvancedBoundingBlock.java
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
package mekanism.common;
|
||||||
|
|
||||||
|
import ic2.api.energy.tile.IEnergySink;
|
||||||
|
import ic2.api.energy.tile.IEnergyTile;
|
||||||
|
import universalelectricity.core.block.IConnector;
|
||||||
|
import universalelectricity.core.block.IElectrical;
|
||||||
|
import universalelectricity.core.block.IElectricalStorage;
|
||||||
|
import buildcraft.api.power.IPowerReceptor;
|
||||||
|
import cofh.api.energy.IEnergyHandler;
|
||||||
|
import mekanism.api.Object3D;
|
||||||
|
import mekanism.api.energy.IStrictEnergyAcceptor;
|
||||||
|
import mekanism.api.energy.IStrictEnergyStorage;
|
||||||
|
import net.minecraft.inventory.ISidedInventory;
|
||||||
|
|
||||||
|
public interface IAdvancedBoundingBlock extends IBoundingBlock, ISidedInventory, IEnergySink, IStrictEnergyAcceptor, IPowerReceptor, IEnergyTile, IElectrical, IElectricalStorage, IConnector, IStrictEnergyStorage, IEnergyHandler
|
||||||
|
{
|
||||||
|
public int[] getBoundSlots(Object3D location, int slotID);
|
||||||
|
}
|
|
@ -75,6 +75,7 @@ import mekanism.common.network.PacketTileEntity;
|
||||||
import mekanism.common.network.PacketTransmitterTransferUpdate;
|
import mekanism.common.network.PacketTransmitterTransferUpdate;
|
||||||
import mekanism.common.network.PacketTransmitterTransferUpdate.TransmitterTransferType;
|
import mekanism.common.network.PacketTransmitterTransferUpdate.TransmitterTransferType;
|
||||||
import mekanism.common.network.PacketWalkieTalkieState;
|
import mekanism.common.network.PacketWalkieTalkieState;
|
||||||
|
import mekanism.common.tileentity.TileEntityAdvancedBoundingBlock;
|
||||||
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
||||||
import mekanism.common.tileentity.TileEntityElectricBlock;
|
import mekanism.common.tileentity.TileEntityElectricBlock;
|
||||||
import mekanism.common.tileentity.TileEntityTeleporter;
|
import mekanism.common.tileentity.TileEntityTeleporter;
|
||||||
|
@ -1015,6 +1016,7 @@ public class Mekanism
|
||||||
|
|
||||||
//Tile entities
|
//Tile entities
|
||||||
GameRegistry.registerTileEntity(TileEntityBoundingBlock.class, "BoundingBlock");
|
GameRegistry.registerTileEntity(TileEntityBoundingBlock.class, "BoundingBlock");
|
||||||
|
GameRegistry.registerTileEntity(TileEntityAdvancedBoundingBlock.class, "AdvancedBoundingBlock");
|
||||||
GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter");
|
GameRegistry.registerTileEntity(TileEntityTeleporter.class, "MekanismTeleporter");
|
||||||
|
|
||||||
//Load tile entities that have special renderers.
|
//Load tile entities that have special renderers.
|
||||||
|
|
|
@ -2,8 +2,7 @@ package mekanism.common.block;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import mekanism.common.tileentity.TileEntityAdvancedBoundingBlock;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
||||||
import net.minecraft.block.Block;
|
import net.minecraft.block.Block;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
|
@ -13,6 +12,8 @@ import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
import net.minecraft.util.MovingObjectPosition;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class BlockBounding extends Block
|
public class BlockBounding extends Block
|
||||||
{
|
{
|
||||||
|
@ -99,6 +100,15 @@ public class BlockBounding extends Block
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createTileEntity(World world, int metadata)
|
public TileEntity createTileEntity(World world, int metadata)
|
||||||
{
|
{
|
||||||
return new TileEntityBoundingBlock();
|
if(metadata == 0)
|
||||||
|
{
|
||||||
|
return new TileEntityBoundingBlock();
|
||||||
|
}
|
||||||
|
else if(metadata == 1)
|
||||||
|
{
|
||||||
|
return new TileEntityAdvancedBoundingBlock();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -160,7 +160,22 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, IItem
|
||||||
|
|
||||||
if(stack.getItemDamage() == MachineType.DIGITAL_MINER.meta)
|
if(stack.getItemDamage() == MachineType.DIGITAL_MINER.meta)
|
||||||
{
|
{
|
||||||
|
for(int xPos = x-1; xPos <= x+1; xPos++)
|
||||||
|
{
|
||||||
|
for(int yPos = y; yPos <= y+1; yPos++)
|
||||||
|
{
|
||||||
|
for(int zPos = z-1; zPos <= z+1; zPos++)
|
||||||
|
{
|
||||||
|
Block b = Block.blocksList[world.getBlockId(xPos, yPos, zPos)];
|
||||||
|
|
||||||
|
if(yPos > 255)
|
||||||
|
place = false;
|
||||||
|
|
||||||
|
if(b != null && b.blockID != 0 && !b.isBlockReplaceable(world, xPos, yPos, zPos))
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(place && super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata))
|
if(place && super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, metadata))
|
||||||
|
|
|
@ -0,0 +1,276 @@
|
||||||
|
package mekanism.common.tileentity;
|
||||||
|
|
||||||
|
import universalelectricity.core.block.IConnector;
|
||||||
|
import universalelectricity.core.block.IElectrical;
|
||||||
|
import universalelectricity.core.block.IElectricalStorage;
|
||||||
|
import universalelectricity.core.electricity.ElectricityPack;
|
||||||
|
import buildcraft.api.power.IPowerReceptor;
|
||||||
|
import buildcraft.api.power.PowerHandler;
|
||||||
|
import buildcraft.api.power.PowerHandler.PowerReceiver;
|
||||||
|
import cofh.api.energy.IEnergyHandler;
|
||||||
|
import ic2.api.energy.tile.IEnergySink;
|
||||||
|
import ic2.api.energy.tile.IEnergyTile;
|
||||||
|
import mekanism.api.Object3D;
|
||||||
|
import mekanism.api.energy.IStrictEnergyAcceptor;
|
||||||
|
import mekanism.api.energy.IStrictEnergyStorage;
|
||||||
|
import mekanism.common.IAdvancedBoundingBlock;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.ISidedInventory;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
|
||||||
|
public class TileEntityAdvancedBoundingBlock extends TileEntityBoundingBlock implements ISidedInventory, IEnergySink, IStrictEnergyAcceptor, IPowerReceptor, IEnergyTile, IElectrical, IElectricalStorage, IConnector, IStrictEnergyStorage, IEnergyHandler
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public int getSizeInventory()
|
||||||
|
{
|
||||||
|
return getInv().getSizeInventory();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getStackInSlot(int i)
|
||||||
|
{
|
||||||
|
return getInv().getStackInSlot(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack decrStackSize(int i, int j)
|
||||||
|
{
|
||||||
|
return getInv().decrStackSize(i, j);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack getStackInSlotOnClosing(int i)
|
||||||
|
{
|
||||||
|
return getInv().getStackInSlotOnClosing(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInventorySlotContents(int i, ItemStack itemstack)
|
||||||
|
{
|
||||||
|
getInv().setInventorySlotContents(i, itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getInvName()
|
||||||
|
{
|
||||||
|
return getInv().getInvName();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInvNameLocalized()
|
||||||
|
{
|
||||||
|
return getInv().isInvNameLocalized();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getInventoryStackLimit()
|
||||||
|
{
|
||||||
|
return getInv().getInventoryStackLimit();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isUseableByPlayer(EntityPlayer entityplayer)
|
||||||
|
{
|
||||||
|
return getInv().isUseableByPlayer(entityplayer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void openChest()
|
||||||
|
{
|
||||||
|
getInv().openChest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void closeChest()
|
||||||
|
{
|
||||||
|
getInv().closeChest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isItemValidForSlot(int i, ItemStack itemstack)
|
||||||
|
{
|
||||||
|
return getInv().isItemValidForSlot(i, itemstack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getAccessibleSlotsFromSide(int slotID)
|
||||||
|
{
|
||||||
|
return getInv().getBoundSlots(Object3D.get(this), slotID);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canInsertItem(int i, ItemStack itemstack, int j)
|
||||||
|
{
|
||||||
|
return getInv().canInsertItem(i, itemstack, j);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canExtractItem(int i, ItemStack itemstack, int j)
|
||||||
|
{
|
||||||
|
return getInv().canExtractItem(i, itemstack, j);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction)
|
||||||
|
{
|
||||||
|
return getInv().acceptsEnergyFrom(emitter, direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate)
|
||||||
|
{
|
||||||
|
return getInv().receiveEnergy(from, maxReceive, simulate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate)
|
||||||
|
{
|
||||||
|
return getInv().extractEnergy(from, maxExtract, simulate);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canInterface(ForgeDirection from)
|
||||||
|
{
|
||||||
|
return getInv().canInterface(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnergyStored(ForgeDirection from)
|
||||||
|
{
|
||||||
|
return getInv().getEnergyStored(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxEnergyStored(ForgeDirection from)
|
||||||
|
{
|
||||||
|
return getInv().getMaxEnergyStored(from);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getEnergy()
|
||||||
|
{
|
||||||
|
return getInv().getEnergy();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEnergy(double energy)
|
||||||
|
{
|
||||||
|
getInv().setEnergy(energy);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getMaxEnergy()
|
||||||
|
{
|
||||||
|
return getInv().getMaxEnergy();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canConnect(ForgeDirection direction)
|
||||||
|
{
|
||||||
|
return getInv().canConnect(direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setEnergyStored(float energy)
|
||||||
|
{
|
||||||
|
getInv().setEnergyStored(energy);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getEnergyStored()
|
||||||
|
{
|
||||||
|
return getInv().getEnergyStored();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getMaxEnergyStored()
|
||||||
|
{
|
||||||
|
return getInv().getMaxEnergyStored();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float receiveElectricity(ForgeDirection from, ElectricityPack receive, boolean doReceive)
|
||||||
|
{
|
||||||
|
return getInv().receiveElectricity(from, receive, doReceive);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ElectricityPack provideElectricity(ForgeDirection from, ElectricityPack request, boolean doProvide)
|
||||||
|
{
|
||||||
|
return getInv().provideElectricity(from, request, doProvide);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getRequest(ForgeDirection direction)
|
||||||
|
{
|
||||||
|
return getInv().getRequest(direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getProvide(ForgeDirection direction)
|
||||||
|
{
|
||||||
|
return getInv().getProvide(direction);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getVoltage()
|
||||||
|
{
|
||||||
|
return getInv().getVoltage();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PowerReceiver getPowerReceiver(ForgeDirection side)
|
||||||
|
{
|
||||||
|
return getInv().getPowerReceiver(side);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void doWork(PowerHandler workProvider)
|
||||||
|
{
|
||||||
|
getInv().doWork(workProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public World getWorld()
|
||||||
|
{
|
||||||
|
return getInv().getWorld();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double transferEnergyToAcceptor(double amount)
|
||||||
|
{
|
||||||
|
return getInv().transferEnergyToAcceptor(amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canReceiveEnergy(ForgeDirection side)
|
||||||
|
{
|
||||||
|
return getInv().canReceiveEnergy(side);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double demandedEnergyUnits()
|
||||||
|
{
|
||||||
|
return getInv().demandedEnergyUnits();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double injectEnergyUnits(ForgeDirection directionFrom, double amount)
|
||||||
|
{
|
||||||
|
return getInv().injectEnergyUnits(directionFrom, amount);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getMaxSafeInput()
|
||||||
|
{
|
||||||
|
return getInv().getMaxSafeInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
public IAdvancedBoundingBlock getInv()
|
||||||
|
{
|
||||||
|
return (IAdvancedBoundingBlock)new Object3D(mainX, mainY, mainZ).getTileEntity(worldObj);
|
||||||
|
}
|
||||||
|
}
|
|
@ -11,6 +11,7 @@ import mekanism.api.Object3D;
|
||||||
import mekanism.api.energy.IStrictEnergyAcceptor;
|
import mekanism.api.energy.IStrictEnergyAcceptor;
|
||||||
import mekanism.common.HashList;
|
import mekanism.common.HashList;
|
||||||
import mekanism.common.IActiveState;
|
import mekanism.common.IActiveState;
|
||||||
|
import mekanism.common.IAdvancedBoundingBlock;
|
||||||
import mekanism.common.IRedstoneControl;
|
import mekanism.common.IRedstoneControl;
|
||||||
import mekanism.common.IUpgradeTile;
|
import mekanism.common.IUpgradeTile;
|
||||||
import mekanism.common.Mekanism;
|
import mekanism.common.Mekanism;
|
||||||
|
@ -41,7 +42,7 @@ import com.google.common.io.ByteArrayDataInput;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
import cpw.mods.fml.relauncher.SideOnly;
|
||||||
|
|
||||||
public class TileEntityDigitalMiner extends TileEntityElectricBlock implements IEnergySink, IStrictEnergyAcceptor, IUpgradeTile, IRedstoneControl, IActiveState
|
public class TileEntityDigitalMiner extends TileEntityElectricBlock implements IEnergySink, IStrictEnergyAcceptor, IUpgradeTile, IRedstoneControl, IActiveState, IAdvancedBoundingBlock
|
||||||
{
|
{
|
||||||
public Set<Object3D> oresToMine = new HashSet<Object3D>();
|
public Set<Object3D> oresToMine = new HashSet<Object3D>();
|
||||||
|
|
||||||
|
@ -845,4 +846,73 @@ public class TileEntityDigitalMiner extends TileEntityElectricBlock implements I
|
||||||
{
|
{
|
||||||
return INFINITE_EXTENT_AABB;
|
return INFINITE_EXTENT_AABB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPlace()
|
||||||
|
{
|
||||||
|
for(int x = xCoord-1; x <= xCoord+1; x++)
|
||||||
|
{
|
||||||
|
for(int y = yCoord; y <= yCoord+1; y++)
|
||||||
|
{
|
||||||
|
for(int z = zCoord-1; z <= zCoord+1; z++)
|
||||||
|
{
|
||||||
|
if(x == xCoord && y == yCoord && z == zCoord)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
MekanismUtils.makeAdvancedBoundingBlock(worldObj, x, y, z, Object3D.get(this));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canSetFacing(int side)
|
||||||
|
{
|
||||||
|
return side != 0 && side != 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBreak()
|
||||||
|
{
|
||||||
|
for(int x = xCoord-1; x <= xCoord+1; x++)
|
||||||
|
{
|
||||||
|
for(int y = yCoord; y <= yCoord+2; y++)
|
||||||
|
{
|
||||||
|
for(int z = zCoord-1; z <= zCoord+1; z++)
|
||||||
|
{
|
||||||
|
worldObj.setBlockToAir(x, y, z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getAccessibleSlotsFromSide(int side)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getBoundSlots(Object3D location, int slotID)
|
||||||
|
{
|
||||||
|
ForgeDirection side = ForgeDirection.getOrientation(facing).getOpposite();
|
||||||
|
|
||||||
|
Object3D obj = new Object3D(xCoord+side.offsetX, yCoord+1, zCoord+side.offsetZ, worldObj.provider.dimensionId);
|
||||||
|
|
||||||
|
if(location.equals(obj))
|
||||||
|
{
|
||||||
|
int[] ret = new int[27];
|
||||||
|
|
||||||
|
for(int i = 0; i < ret.length; i++)
|
||||||
|
{
|
||||||
|
ret[i] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ import mekanism.common.item.ItemBlockEnergyCube;
|
||||||
import mekanism.common.item.ItemBlockGasTank;
|
import mekanism.common.item.ItemBlockGasTank;
|
||||||
import mekanism.common.network.PacketElectricChest;
|
import mekanism.common.network.PacketElectricChest;
|
||||||
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
import mekanism.common.network.PacketElectricChest.ElectricChestPacketType;
|
||||||
|
import mekanism.common.tileentity.TileEntityAdvancedBoundingBlock;
|
||||||
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
import mekanism.common.tileentity.TileEntityBoundingBlock;
|
||||||
import mekanism.common.tileentity.TileEntityDynamicTank;
|
import mekanism.common.tileentity.TileEntityDynamicTank;
|
||||||
import mekanism.common.tileentity.TileEntityElectricChest;
|
import mekanism.common.tileentity.TileEntityElectricChest;
|
||||||
|
@ -598,6 +599,16 @@ public final class MekanismUtils
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void makeAdvancedBoundingBlock(World world, int x, int y, int z, Object3D orig)
|
||||||
|
{
|
||||||
|
world.setBlock(x, y, z, Mekanism.BoundingBlock.blockID, 1, 3);
|
||||||
|
|
||||||
|
if(!world.isRemote)
|
||||||
|
{
|
||||||
|
((TileEntityAdvancedBoundingBlock)world.getBlockTileEntity(x, y, z)).setMainLocation(orig.xCoord, orig.yCoord, orig.zCoord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a block's light value and marks it for a render update.
|
* Updates a block's light value and marks it for a render update.
|
||||||
* @param world - world the block is in
|
* @param world - world the block is in
|
||||||
|
|
Loading…
Add table
Reference in a new issue