rejector cleanup
This commit is contained in:
parent
0621433663
commit
1fc0664683
2 changed files with 18 additions and 59 deletions
|
@ -10,52 +10,33 @@ import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
import net.minecraft.util.AxisAlignedBB;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import universalelectricity.core.vector.Vector3;
|
import universalelectricity.core.vector.Vector3;
|
||||||
import universalelectricity.prefab.network.PacketManager;
|
import assemblyline.api.IBelt;
|
||||||
import assemblyline.common.imprinter.prefab.TileEntityFilterable;
|
import assemblyline.common.imprinter.prefab.TileEntityFilterable;
|
||||||
|
|
||||||
/**
|
/** @author Darkguardsman */
|
||||||
*
|
|
||||||
* @author Darkguardsman
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public class TileEntityRejector extends TileEntityFilterable
|
public class TileEntityRejector extends TileEntityFilterable
|
||||||
{
|
{
|
||||||
/**
|
/** should the piston fire, or be extended */
|
||||||
* should the piston fire, or be extended
|
|
||||||
*/
|
|
||||||
public boolean firePiston = false;
|
public boolean firePiston = false;
|
||||||
|
|
||||||
public TileEntityRejector()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdate()
|
public void onUpdate()
|
||||||
{
|
{
|
||||||
/**
|
/** Has to update a bit faster than a conveyer belt */
|
||||||
* Has to update a bit faster than a conveyer belt
|
|
||||||
*/
|
|
||||||
if (this.ticks % 5 == 0 && !this.isDisabled())
|
if (this.ticks % 5 == 0 && !this.isDisabled())
|
||||||
{
|
{
|
||||||
int metadata = this.getBlockMetadata();
|
|
||||||
this.firePiston = false;
|
this.firePiston = false;
|
||||||
|
|
||||||
// area to search for items
|
|
||||||
Vector3 searchPosition = new Vector3(this);
|
Vector3 searchPosition = new Vector3(this);
|
||||||
searchPosition.modifyPositionFromSide(this.getDirection());
|
searchPosition.modifyPositionFromSide(this.getDirection());
|
||||||
TileEntity tileEntity = searchPosition.getTileEntity(this.worldObj);
|
TileEntity tileEntity = searchPosition.getTileEntity(this.worldObj);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
boolean flag = false;
|
|
||||||
|
|
||||||
if (this.isRunning())
|
if (this.isRunning())
|
||||||
{
|
{
|
||||||
/**
|
/** Find all entities in the position in which this block is facing and attempt
|
||||||
* Find all entities in the position in which this block is facing and attempt
|
* to push it out of the way. */
|
||||||
* to push it out of the way.
|
|
||||||
*/
|
|
||||||
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(searchPosition.x, searchPosition.y, searchPosition.z, searchPosition.x + 1, searchPosition.y + 1, searchPosition.z + 1);
|
AxisAlignedBB bounds = AxisAlignedBB.getBoundingBox(searchPosition.x, searchPosition.y, searchPosition.z, searchPosition.x + 1, searchPosition.y + 1, searchPosition.z + 1);
|
||||||
List<Entity> entitiesInFront = this.worldObj.getEntitiesWithinAABB(Entity.class, bounds);
|
List<Entity> entitiesInFront = this.worldObj.getEntitiesWithinAABB(Entity.class, bounds);
|
||||||
|
|
||||||
|
@ -63,8 +44,7 @@ public class TileEntityRejector extends TileEntityFilterable
|
||||||
{
|
{
|
||||||
if (this.canEntityBeThrow(entity))
|
if (this.canEntityBeThrow(entity))
|
||||||
{
|
{
|
||||||
this.throwItem(this.getDirection(), entity);
|
this.throwItem(tileEntity, this.getDirection(), entity);
|
||||||
flag = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -76,23 +56,22 @@ public class TileEntityRejector extends TileEntityFilterable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/** Pushs an entity in the direction in which the rejector is facing */
|
||||||
* Used to move after it has been rejected
|
public void throwItem(TileEntity tileEntity, ForgeDirection side, Entity entity)
|
||||||
*
|
|
||||||
* @param side - used to do the offset
|
|
||||||
* @param entity - Entity being thrown
|
|
||||||
*/
|
|
||||||
public void throwItem(ForgeDirection side, Entity entity)
|
|
||||||
{
|
{
|
||||||
this.firePiston = true;
|
this.firePiston = true;
|
||||||
|
//TODO add config to adjust the motion magnitude per rejector
|
||||||
entity.motionX = (double) side.offsetX * 0.1;
|
entity.motionX = (double) side.offsetX * 0.1;
|
||||||
entity.motionY += 0.10000000298023224D;
|
entity.motionY += 0.10000000298023224D;
|
||||||
entity.motionZ = (double) side.offsetZ * 0.1;
|
entity.motionZ = (double) side.offsetZ * 0.1;
|
||||||
|
|
||||||
PacketManager.sendPacketToClients(getDescriptionPacket());
|
if (!this.worldObj.isRemote && tileEntity instanceof IBelt)
|
||||||
|
{
|
||||||
|
((IBelt) tileEntity).ignoreEntity(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Checks to see if the rejector can push the entity in the facing direction */
|
||||||
public boolean canEntityBeThrow(Entity entity)
|
public boolean canEntityBeThrow(Entity entity)
|
||||||
{
|
{
|
||||||
// TODO Add other things than items
|
// TODO Add other things than items
|
||||||
|
@ -107,26 +86,6 @@ public class TileEntityRejector extends TileEntityFilterable
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* NBT Data
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void readFromNBT(NBTTagCompound nbt)
|
|
||||||
{
|
|
||||||
super.readFromNBT(nbt);
|
|
||||||
this.firePiston = nbt.getBoolean("piston");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Writes a tile entity to NBT.
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void writeToNBT(NBTTagCompound nbt)
|
|
||||||
{
|
|
||||||
super.writeToNBT(nbt);
|
|
||||||
nbt.setBoolean("piston", this.firePiston);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean canConnect(ForgeDirection dir)
|
public boolean canConnect(ForgeDirection dir)
|
||||||
{
|
{
|
||||||
|
|
|
@ -228,7 +228,7 @@ public class TileEntityConveyorBelt extends TileEntityAssembly implements IPacke
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void IgnoreEntity(Entity entity)
|
public void ignoreEntity(Entity entity)
|
||||||
{
|
{
|
||||||
if (!this.IgnoreList.contains(entity))
|
if (!this.IgnoreList.contains(entity))
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue