Fixed grinder allowing any type of fluid into its tank

This commit is contained in:
Tntrololol 2015-05-26 23:28:12 -05:00
parent 6ddc05e998
commit 4ce6b21d03

View file

@ -11,6 +11,7 @@ import net.minecraftforge.fluids.*;
import techreborn.api.recipe.RecipeCrafter; import techreborn.api.recipe.RecipeCrafter;
import techreborn.config.ConfigTechReborn; import techreborn.config.ConfigTechReborn;
import techreborn.init.ModBlocks; import techreborn.init.ModBlocks;
import techreborn.init.ModFluids;
import techreborn.util.FluidUtils; import techreborn.util.FluidUtils;
import techreborn.util.Inventory; import techreborn.util.Inventory;
@ -38,61 +39,50 @@ public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergy
} }
@Override @Override
public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) {
{
return false; return false;
} }
@Override @Override
public short getFacing() public short getFacing() {
{
return 0; return 0;
} }
@Override @Override
public void setFacing(short facing) public void setFacing(short facing) {
{
} }
@Override @Override
public boolean wrenchCanRemove(EntityPlayer entityPlayer) public boolean wrenchCanRemove(EntityPlayer entityPlayer) {
{ if (entityPlayer.isSneaking()) {
if (entityPlayer.isSneaking())
{
return true; return true;
} }
return false; return false;
} }
@Override @Override
public float getWrenchDropRate() public float getWrenchDropRate() {
{
return 1.0F; return 1.0F;
} }
@Override @Override
public ItemStack getWrenchDrop(EntityPlayer entityPlayer) public ItemStack getWrenchDrop(EntityPlayer entityPlayer) {
{
return new ItemStack(ModBlocks.Grinder, 1); return new ItemStack(ModBlocks.Grinder, 1);
} }
public boolean isComplete() public boolean isComplete() {
{
return false; return false;
} }
@Override @Override
public void updateEntity() public void updateEntity() {
{
super.updateEntity(); super.updateEntity();
energy.updateEntity(); energy.updateEntity();
crafter.updateEntity(); crafter.updateEntity();
FluidUtils.drainContainers(this, inventory, 1, 5);
} }
@Override @Override
public void readFromNBT(NBTTagCompound tagCompound) public void readFromNBT(NBTTagCompound tagCompound) {
{
super.readFromNBT(tagCompound); super.readFromNBT(tagCompound);
inventory.readFromNBT(tagCompound); inventory.readFromNBT(tagCompound);
energy.readFromNBT(tagCompound); energy.readFromNBT(tagCompound);
@ -101,8 +91,7 @@ public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergy
} }
@Override @Override
public void writeToNBT(NBTTagCompound tagCompound) public void writeToNBT(NBTTagCompound tagCompound) {
{
super.writeToNBT(tagCompound); super.writeToNBT(tagCompound);
inventory.writeToNBT(tagCompound); inventory.writeToNBT(tagCompound);
energy.writeToNBT(tagCompound); energy.writeToNBT(tagCompound);
@ -111,54 +100,51 @@ public class TileGrinder extends TileMachineBase implements IWrenchable, IEnergy
} }
@Override @Override
public void invalidate() public void invalidate() {
{
energy.invalidate(); energy.invalidate();
} }
@Override @Override
public void onChunkUnload() public void onChunkUnload() {
{
energy.onChunkUnload(); energy.onChunkUnload();
} }
/* IFluidHandler */ /* IFluidHandler */
@Override @Override
public int fill(ForgeDirection from, FluidStack resource, boolean doFill) public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
{ if(resource.getFluid() == FluidRegistry.WATER || resource.getFluid() == ModFluids.fluidMercury || resource.getFluid() == ModFluids.fluidSodiumpersulfate) {
return tank.fill(resource, doFill); return tank.fill(resource, doFill);
}
return 0;
} }
@Override @Override
public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
{ if (resource == null || !resource.isFluidEqual(tank.getFluid())) {
if (resource == null || !resource.isFluidEqual(tank.getFluid()))
{
return null; return null;
} }
return tank.drain(resource.amount, doDrain); return tank.drain(resource.amount, doDrain);
} }
@Override @Override
public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
{
return tank.drain(maxDrain, doDrain); return tank.drain(maxDrain, doDrain);
} }
@Override @Override
public boolean canFill(ForgeDirection from, Fluid fluid) public boolean canFill(ForgeDirection from, Fluid fluid) {
{ if(fluid == FluidRegistry.WATER || fluid == ModFluids.fluidMercury || fluid == ModFluids.fluidSodiumpersulfate) {
return true; return true;
}
return false;
} }
@Override @Override
public boolean canDrain(ForgeDirection from, Fluid fluid) public boolean canDrain(ForgeDirection from, Fluid fluid) {
{ return false;
return true;
} }
@Override @Override
public FluidTankInfo[] getTankInfo(ForgeDirection from) public FluidTankInfo[] getTankInfo(ForgeDirection from) {
{
return new FluidTankInfo[] { tank.getInfo() }; return new FluidTankInfo[] { tank.getInfo() };
} }
} }