More fluid container integration, removed dead code

This commit is contained in:
aidancbrady 2016-03-06 02:57:32 -05:00
parent d332ad49b7
commit 34d55f72ea
8 changed files with 37 additions and 127 deletions

View file

@ -9,7 +9,6 @@ import mekanism.client.model.ModelAtomicDisassembler;
import mekanism.client.model.ModelEnergyCube; import mekanism.client.model.ModelEnergyCube;
import mekanism.client.model.ModelEnergyCube.ModelEnergyCore; import mekanism.client.model.ModelEnergyCube.ModelEnergyCore;
import mekanism.client.model.ModelFlamethrower; import mekanism.client.model.ModelFlamethrower;
import mekanism.client.model.ModelFluidTank;
import mekanism.client.model.ModelFreeRunners; import mekanism.client.model.ModelFreeRunners;
import mekanism.client.model.ModelGasMask; import mekanism.client.model.ModelGasMask;
import mekanism.client.model.ModelGasTank; import mekanism.client.model.ModelGasTank;
@ -87,7 +86,6 @@ public class ItemRenderingHandler implements IItemRenderer
public ModelScubaTank scubaTank = new ModelScubaTank(); public ModelScubaTank scubaTank = new ModelScubaTank();
public ModelFreeRunners freeRunners = new ModelFreeRunners(); public ModelFreeRunners freeRunners = new ModelFreeRunners();
public ModelAtomicDisassembler atomicDisassembler = new ModelAtomicDisassembler(); public ModelAtomicDisassembler atomicDisassembler = new ModelAtomicDisassembler();
public ModelFluidTank portableTank = new ModelFluidTank();
public ModelFlamethrower flamethrower = new ModelFlamethrower(); public ModelFlamethrower flamethrower = new ModelFlamethrower();
private final RenderBalloon balloonRenderer = new RenderBalloon(); private final RenderBalloon balloonRenderer = new RenderBalloon();
@ -515,11 +513,11 @@ public class ItemRenderingHandler implements IItemRenderer
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F); GL11.glRotatef(270F, 0.0F, -1.0F, 0.0F);
Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "FluidTank.png")); Minecraft.getMinecraft().renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.RENDER, "FluidTank.png"));
ItemBlockMachine itemMachine = (ItemBlockMachine)item.getItem(); ItemBlockMachine itemMachine = (ItemBlockMachine)item.getItem();
float targetScale = (float)(itemMachine.getFluidStack(item) != null ? itemMachine.getFluidStack(item).amount : 0)/itemMachine.getCapacity(item);
FluidTankTier tier = FluidTankTier.values()[itemMachine.getBaseTier(item).ordinal()]; FluidTankTier tier = FluidTankTier.values()[itemMachine.getBaseTier(item).ordinal()];
Fluid fluid = itemMachine.getFluidStack(item) != null ? itemMachine.getFluidStack(item).getFluid() : null; Fluid fluid = itemMachine.getFluidStack(item) != null ? itemMachine.getFluidStack(item).getFluid() : null;
portableTankRenderer.render(tier, fluid, itemMachine.getPrevScale(item), false, null, -0.5, -0.5, -0.5); portableTankRenderer.render(tier, fluid, targetScale, false, null, -0.5, -0.5, -0.5);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
else { else {

View file

@ -50,18 +50,4 @@ public interface IElectricChest
* @return authenticated value * @return authenticated value
*/ */
public boolean getLocked(ItemStack itemStack); public boolean getLocked(ItemStack itemStack);
/**
* Sets the 'open' value of this electric chest to a new value.
* @param itemStack - electric chest ItemStack
* @param open - new value
*/
public void setOpen(ItemStack itemStack, boolean open);
/**
* Retrieves the 'open' value of this electric chest.
* @param itemStack - electric chest ItemStack
* @return open value
*/
public boolean getOpen(ItemStack itemStack);
} }

View file

@ -543,7 +543,6 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IBlo
ItemStack filled = new ItemStack(item, 1, type.meta); ItemStack filled = new ItemStack(item, 1, type.meta);
itemMachine.setBaseTier(filled, BaseTier.ULTIMATE); itemMachine.setBaseTier(filled, BaseTier.ULTIMATE);
itemMachine.setFluidStack(new FluidStack(f, itemMachine.getCapacity(filled)), filled); itemMachine.setFluidStack(new FluidStack(f, itemMachine.getCapacity(filled)), filled);
itemMachine.setPrevScale(filled, 1);
list.add(filled); list.add(filled);
} catch(Exception e) {} } catch(Exception e) {}
} }

View file

@ -1,6 +1,5 @@
package mekanism.common.inventory; package mekanism.common.inventory;
import mekanism.common.base.IElectricChest;
import mekanism.common.base.ISustainedInventory; import mekanism.common.base.ISustainedInventory;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.InventoryBasic; import net.minecraft.inventory.InventoryBasic;
@ -46,22 +45,12 @@ public class InventoryElectricChest extends InventoryBasic
public void openInventory() public void openInventory()
{ {
read(); read();
if(getStack() != null)
{
((IElectricChest)getStack().getItem()).setOpen(getStack(), true);
}
} }
@Override @Override
public void closeInventory() public void closeInventory()
{ {
write(); write();
if(getStack() != null)
{
((IElectricChest)getStack().getItem()).setOpen(getStack(), false);
}
} }
public void write() public void write()

View file

@ -456,18 +456,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
} }
} }
} }
else if(type == MachineType.FLUID_TANK)
{
if(world != null && !world.isRemote)
{
float targetScale = (float)(getFluidStack(itemstack) != null ? getFluidStack(itemstack).amount : 0)/getCapacity(itemstack);
if(Math.abs(getPrevScale(itemstack) - targetScale) > 0.01)
{
setPrevScale(itemstack, (9*getPrevScale(itemstack) + targetScale)/10);
}
}
}
} }
@Override @Override
@ -797,48 +785,6 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec
return itemStack.stackTagCompound.getBoolean("locked"); return itemStack.stackTagCompound.getBoolean("locked");
} }
@Override
public void setOpen(ItemStack itemStack, boolean open)
{
if(itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound());
}
itemStack.stackTagCompound.setBoolean("open", open);
}
@Override
public boolean getOpen(ItemStack itemStack)
{
if(itemStack.stackTagCompound == null)
{
return false;
}
return itemStack.stackTagCompound.getBoolean("open");
}
public void setPrevScale(ItemStack itemStack, float prevLidAngle)
{
if(itemStack.stackTagCompound == null)
{
itemStack.setTagCompound(new NBTTagCompound());
}
itemStack.stackTagCompound.setFloat("prevScale", prevLidAngle);
}
public float getPrevScale(ItemStack itemStack)
{
if(itemStack.stackTagCompound == null)
{
return 0.0F;
}
return itemStack.stackTagCompound.getFloat("prevScale");
}
public void setBucketMode(ItemStack itemStack, boolean bucketMode) public void setBucketMode(ItemStack itemStack, boolean bucketMode)
{ {

View file

@ -350,10 +350,21 @@ public class TileEntityFluidTank extends TileEntityContainerBlock implements IAc
int needed = fluidTank.getCapacity()-fluidTank.getFluidAmount(); int needed = fluidTank.getCapacity()-fluidTank.getFluidAmount();
Coord4D top = Coord4D.get(this).getFromSide(ForgeDirection.UP); Coord4D top = Coord4D.get(this).getFromSide(ForgeDirection.UP);
TileEntity topTile = top.getTileEntity(worldObj);
if(top.getTileEntity(worldObj) instanceof TileEntityFluidTank) if(topTile instanceof TileEntityFluidTank)
{ {
needed += ((TileEntityFluidTank)top.getTileEntity(worldObj)).getCurrentNeeded(); TileEntityFluidTank topTank = (TileEntityFluidTank)topTile;
if(fluidTank.getFluid() != null && topTank.fluidTank.getFluid() != null)
{
if(fluidTank.getFluid().getFluid() != topTank.fluidTank.getFluid().getFluid())
{
return needed;
}
}
needed += topTank.getCurrentNeeded();
} }
return needed; return needed;

View file

@ -21,6 +21,7 @@ import mekanism.common.integration.IComputerIntegration;
import mekanism.common.tile.component.TileComponentUpgrade; import mekanism.common.tile.component.TileComponentUpgrade;
import mekanism.common.util.ChargeUtils; import mekanism.common.util.ChargeUtils;
import mekanism.common.util.FluidContainerUtils; import mekanism.common.util.FluidContainerUtils;
import mekanism.common.util.FluidContainerUtils.FluidChecker;
import mekanism.common.util.LangUtils; import mekanism.common.util.LangUtils;
import mekanism.common.util.MekanismUtils; import mekanism.common.util.MekanismUtils;
import mekanism.common.util.PipeUtils; import mekanism.common.util.PipeUtils;
@ -84,11 +85,23 @@ public class TileEntityFluidicPlenisher extends TileEntityElectricBlock implemen
{ {
if(inventory[0].getItem() instanceof IFluidContainerItem) if(inventory[0].getItem() instanceof IFluidContainerItem)
{ {
FluidContainerUtils.handleContainerItemEmpty(this, fluidTank, 0, 1); FluidContainerUtils.handleContainerItemEmpty(this, fluidTank, 0, 1, new FluidChecker() {
@Override
public boolean isValid(Fluid f)
{
return f.canBePlacedInWorld();
}
});
} }
else if(FluidContainerRegistry.isFilledContainer(inventory[0])) else if(FluidContainerRegistry.isFilledContainer(inventory[0]))
{ {
FluidContainerUtils.handleRegistryItemEmpty(this, fluidTank, 0, 1); FluidContainerUtils.handleRegistryItemEmpty(this, fluidTank, 0, 1, new FluidChecker() {
@Override
public boolean isValid(Fluid f)
{
return f.canBePlacedInWorld();
}
});
} }
} }

View file

@ -10,7 +10,6 @@ import mekanism.api.Coord4D;
import mekanism.api.ISalinationSolar; import mekanism.api.ISalinationSolar;
import mekanism.api.MekanismConfig.general; import mekanism.api.MekanismConfig.general;
import mekanism.api.Range4D; import mekanism.api.Range4D;
import mekanism.api.util.StackUtils;
import mekanism.client.SparkleAnimation.INodeChecker; import mekanism.client.SparkleAnimation.INodeChecker;
import mekanism.common.Mekanism; import mekanism.common.Mekanism;
import mekanism.common.base.IActiveState; import mekanism.common.base.IActiveState;
@ -229,46 +228,15 @@ public class TileEntityThermalEvaporationController extends TileEntityThermalEva
private void manageBuckets() private void manageBuckets()
{ {
if(inventory[2] != null) if(inventory[2] != null && outputTank.getFluid() != null)
{ {
if(outputTank.getFluid() != null && outputTank.getFluid().amount >= FluidContainerRegistry.BUCKET_VOLUME) if(inventory[2].getItem() instanceof IFluidContainerItem)
{ {
if(FluidContainerRegistry.isEmptyContainer(inventory[2])) FluidContainerUtils.handleContainerItemFill(this, outputTank, 2, 3);
{ }
ItemStack tempStack = FluidContainerRegistry.fillFluidContainer(outputTank.getFluid(), inventory[2]); else if(FluidContainerRegistry.isEmptyContainer(inventory[2]))
{
if(tempStack != null) FluidContainerUtils.handleRegistryItemFill(this, outputTank, 2, 3);
{
if(inventory[3] == null)
{
outputTank.drain(FluidContainerRegistry.BUCKET_VOLUME, true);
inventory[3] = tempStack;
inventory[2].stackSize--;
if(inventory[2].stackSize <= 0)
{
inventory[2] = null;
}
markDirty();
}
else if(StackUtils.equalsWildcardWithNBT(tempStack, inventory[3]) && tempStack.getMaxStackSize() > inventory[3].stackSize)
{
outputTank.drain(FluidContainerRegistry.BUCKET_VOLUME, true);
inventory[3].stackSize++;
inventory[2].stackSize--;
if(inventory[2].stackSize <= 0)
{
inventory[2] = null;
}
markDirty();
}
}
}
} }
} }