Merge branch 'master' of https://github.com/calclavia/Resonant-Induction
This commit is contained in:
commit
c9780a6ac4
2 changed files with 65 additions and 3 deletions
|
@ -3,6 +3,7 @@ package resonantinduction.contractor;
|
||||||
import net.minecraft.block.ITileEntityProvider;
|
import net.minecraft.block.ITileEntityProvider;
|
||||||
import net.minecraft.block.material.Material;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.world.World;
|
import net.minecraft.world.World;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
|
@ -30,8 +31,21 @@ public class BlockEMContractor extends BlockBase implements ITileEntityProvider
|
||||||
@Override
|
@Override
|
||||||
public void onBlockAdded(World world, int x, int y, int z)
|
public void onBlockAdded(World world, int x, int y, int z)
|
||||||
{
|
{
|
||||||
TileEntityEMContractor tileEntity = (TileEntityEMContractor)world.getBlockTileEntity(x, y, z);
|
TileEntityEMContractor tileContractor = (TileEntityEMContractor)world.getBlockTileEntity(x, y, z);
|
||||||
tileEntity.updateBounds();
|
tileContractor.updateBounds();
|
||||||
|
|
||||||
|
if(!tileContractor.isLatched())
|
||||||
|
{
|
||||||
|
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||||
|
{
|
||||||
|
TileEntity tileEntity = world.getBlockTileEntity(x+side.offsetX, y+side.offsetY, z+side.offsetZ);
|
||||||
|
|
||||||
|
if(tileEntity instanceof IInventory)
|
||||||
|
{
|
||||||
|
tileContractor.setFacing(side.getOpposite());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -50,6 +64,25 @@ public class BlockEMContractor extends BlockBase implements ITileEntityProvider
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onNeighborBlockChange(World world, int x, int y, int z, int blockID)
|
||||||
|
{
|
||||||
|
TileEntityEMContractor tileContractor = (TileEntityEMContractor)world.getBlockTileEntity(x, y, z);
|
||||||
|
|
||||||
|
if(!tileContractor.isLatched())
|
||||||
|
{
|
||||||
|
for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS)
|
||||||
|
{
|
||||||
|
TileEntity tileEntity = world.getBlockTileEntity(x+side.offsetX, y+side.offsetY, z+side.offsetZ);
|
||||||
|
|
||||||
|
if(tileEntity instanceof IInventory)
|
||||||
|
{
|
||||||
|
tileContractor.setFacing(side.getOpposite());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TileEntity createNewTileEntity(World world)
|
public TileEntity createNewTileEntity(World world)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,7 @@ import java.util.List;
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
import net.minecraft.entity.item.EntityItem;
|
import net.minecraft.entity.item.EntityItem;
|
||||||
|
import net.minecraft.inventory.IInventory;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
|
@ -17,6 +18,8 @@ public class TileEntityEMContractor extends TileEntity
|
||||||
|
|
||||||
private ForgeDirection facing = ForgeDirection.UP;
|
private ForgeDirection facing = ForgeDirection.UP;
|
||||||
|
|
||||||
|
public int pushDelay;
|
||||||
|
|
||||||
public AxisAlignedBB operationBounds;
|
public AxisAlignedBB operationBounds;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -27,6 +30,13 @@ public class TileEntityEMContractor extends TileEntity
|
||||||
@Override
|
@Override
|
||||||
public void updateEntity()
|
public void updateEntity()
|
||||||
{
|
{
|
||||||
|
pushDelay = Math.max(0, pushDelay--);
|
||||||
|
|
||||||
|
if(!suck && pushDelay == 0)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if(operationBounds != null)
|
if(operationBounds != null)
|
||||||
{
|
{
|
||||||
List<Entity> list = worldObj.getEntitiesWithinAABB(Entity.class, operationBounds);
|
List<Entity> list = worldObj.getEntitiesWithinAABB(Entity.class, operationBounds);
|
||||||
|
@ -184,10 +194,24 @@ public class TileEntityEMContractor extends TileEntity
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isLatched()
|
||||||
|
{
|
||||||
|
ForgeDirection side = facing.getOpposite();
|
||||||
|
|
||||||
|
TileEntity tile = worldObj.getBlockTileEntity(xCoord+facing.offsetX, yCoord+facing.offsetY, zCoord+facing.offsetZ);
|
||||||
|
|
||||||
|
if(tile instanceof IInventory)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public void incrementFacing()
|
public void incrementFacing()
|
||||||
{
|
{
|
||||||
int newOrdinal = facing.ordinal() < 5 ? facing.ordinal()+1 : 0;
|
int newOrdinal = facing.ordinal() < 5 ? facing.ordinal()+1 : 0;
|
||||||
facing = ForgeDirection.getOrientation(newOrdinal);
|
setFacing(ForgeDirection.getOrientation(newOrdinal));
|
||||||
|
|
||||||
updateBounds();
|
updateBounds();
|
||||||
}
|
}
|
||||||
|
@ -197,6 +221,11 @@ public class TileEntityEMContractor extends TileEntity
|
||||||
return facing;
|
return facing;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setFacing(ForgeDirection side)
|
||||||
|
{
|
||||||
|
facing = side;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readFromNBT(NBTTagCompound nbtTags)
|
public void readFromNBT(NBTTagCompound nbtTags)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue