Resolved #385 - Tanks now emit light
This commit is contained in:
parent
bcf98a6b6a
commit
f4fc1a7910
8 changed files with 95 additions and 370 deletions
|
@ -23,7 +23,6 @@ import resonantinduction.archaic.fluid.grate.BlockGrate;
|
||||||
import resonantinduction.archaic.fluid.grate.TileGrate;
|
import resonantinduction.archaic.fluid.grate.TileGrate;
|
||||||
import resonantinduction.archaic.fluid.gutter.BlockGutter;
|
import resonantinduction.archaic.fluid.gutter.BlockGutter;
|
||||||
import resonantinduction.archaic.fluid.gutter.TileGutter;
|
import resonantinduction.archaic.fluid.gutter.TileGutter;
|
||||||
import resonantinduction.archaic.fluid.tank.BlockTank;
|
|
||||||
import resonantinduction.archaic.fluid.tank.TileTank;
|
import resonantinduction.archaic.fluid.tank.TileTank;
|
||||||
import resonantinduction.archaic.process.BlockCastingMold;
|
import resonantinduction.archaic.process.BlockCastingMold;
|
||||||
import resonantinduction.archaic.process.BlockMillstone;
|
import resonantinduction.archaic.process.BlockMillstone;
|
||||||
|
@ -35,7 +34,6 @@ import resonantinduction.core.Settings;
|
||||||
import resonantinduction.core.TabRI;
|
import resonantinduction.core.TabRI;
|
||||||
import resonantinduction.core.prefab.imprint.ItemImprint;
|
import resonantinduction.core.prefab.imprint.ItemImprint;
|
||||||
import resonantinduction.core.resource.ItemHandCrank;
|
import resonantinduction.core.resource.ItemHandCrank;
|
||||||
import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer;
|
|
||||||
import calclavia.lib.content.ContentRegistry;
|
import calclavia.lib.content.ContentRegistry;
|
||||||
import calclavia.lib.network.PacketAnnotation;
|
import calclavia.lib.network.PacketAnnotation;
|
||||||
import calclavia.lib.network.PacketHandler;
|
import calclavia.lib.network.PacketHandler;
|
||||||
|
@ -114,7 +112,7 @@ public class Archaic
|
||||||
blockGutter = contentRegistry.createTile(BlockGutter.class, TileGutter.class);
|
blockGutter = contentRegistry.createTile(BlockGutter.class, TileGutter.class);
|
||||||
blockGrate = contentRegistry.createTile(BlockGrate.class, TileGrate.class);
|
blockGrate = contentRegistry.createTile(BlockGrate.class, TileGrate.class);
|
||||||
blockFilter = contentRegistry.createTile(BlockFilter.class, TileFilter.class);
|
blockFilter = contentRegistry.createTile(BlockFilter.class, TileFilter.class);
|
||||||
blockTank = contentRegistry.createBlock(BlockTank.class, ItemBlockFluidContainer.class, TileTank.class);
|
blockTank = contentRegistry.newBlock(TileTank.class);
|
||||||
|
|
||||||
itemHandCrank = contentRegistry.createItem(ItemHandCrank.class);
|
itemHandCrank = contentRegistry.createItem(ItemHandCrank.class);
|
||||||
itemImprint = contentRegistry.createItem(ItemImprint.class);
|
itemImprint = contentRegistry.createItem(ItemImprint.class);
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package resonantinduction.archaic.fluid.gutter;
|
package resonantinduction.archaic.fluid.gutter;
|
||||||
|
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.Fluid;
|
import net.minecraftforge.fluids.Fluid;
|
||||||
|
@ -19,6 +20,11 @@ import calclavia.lib.utility.WorldUtility;
|
||||||
*/
|
*/
|
||||||
public class TileGutter extends TilePressurizedNode implements IPressurizedNode
|
public class TileGutter extends TilePressurizedNode implements IPressurizedNode
|
||||||
{
|
{
|
||||||
|
public TileGutter()
|
||||||
|
{
|
||||||
|
super(Material.wood);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refresh()
|
public void refresh()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,138 +0,0 @@
|
||||||
package resonantinduction.archaic.fluid.tank;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import net.minecraft.creativetab.CreativeTabs;
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
|
||||||
import net.minecraft.util.MovingObjectPosition;
|
|
||||||
import net.minecraft.world.IBlockAccess;
|
|
||||||
import net.minecraft.world.World;
|
|
||||||
import resonantinduction.core.fluid.BlockFluidNode;
|
|
||||||
import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer;
|
|
||||||
import universalelectricity.api.UniversalElectricity;
|
|
||||||
import universalelectricity.api.vector.Vector3;
|
|
||||||
import calclavia.lib.render.block.BlockRenderingHandler;
|
|
||||||
import calclavia.lib.utility.FluidUtility;
|
|
||||||
import calclavia.lib.utility.inventory.InventoryUtility;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
public class BlockTank extends BlockFluidNode
|
|
||||||
{
|
|
||||||
public BlockTank(int id)
|
|
||||||
{
|
|
||||||
super(id, UniversalElectricity.machine);
|
|
||||||
setHardness(1f);
|
|
||||||
setResistance(5f);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isOpaqueCube()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public boolean renderAsNormalBlock()
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public int getRenderType()
|
|
||||||
{
|
|
||||||
return BlockRenderingHandler.ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean shouldSideBeRendered(IBlockAccess blockAccess, int x, int y, int z, int side)
|
|
||||||
{
|
|
||||||
int checkBlockID = blockAccess.getBlockId(x, y, z);
|
|
||||||
return super.shouldSideBeRendered(blockAccess, x, y, z, side);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onMachineActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float hitX, float hitY, float hitZ)
|
|
||||||
{
|
|
||||||
if (!world.isRemote)
|
|
||||||
return FluidUtility.playerActivatedFluidItem(world, x, y, z, entityplayer, side);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TileEntity createNewTileEntity(World var1)
|
|
||||||
{
|
|
||||||
return new TileTank();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasComparatorInputOverride()
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getComparatorInputOverride(World world, int x, int y, int z, int par5)
|
|
||||||
{
|
|
||||||
TileTank tileEntity = (TileTank) world.getBlockTileEntity(x, y, z);
|
|
||||||
if (tileEntity != null && tileEntity.getNetwork().getTank().getFluid() != null)
|
|
||||||
{
|
|
||||||
return 15 * (tileEntity.getNetwork().getTank().getFluidAmount() / tileEntity.getNetwork().getTank().getCapacity());
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
|
||||||
{
|
|
||||||
return new ItemStack(this, 1, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ArrayList<ItemStack> getBlockDropped(World world, int x, int y, int z, int metadata, int fortune)
|
|
||||||
{
|
|
||||||
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
|
|
||||||
TileEntity entity = world.getBlockTileEntity(x, y, z);
|
|
||||||
if (entity instanceof TileTank)
|
|
||||||
{
|
|
||||||
ret.add(new ItemStack(this, 1, 0));
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
@Override
|
|
||||||
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
|
||||||
{
|
|
||||||
par3List.add(new ItemStack(this, 1, 0));
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean onSneakMachineActivated(World world, int x, int y, int z, EntityPlayer entityPlayer, int side, float hitX, float hitY, float hitZ)
|
|
||||||
{
|
|
||||||
if (!world.isRemote)
|
|
||||||
{
|
|
||||||
ItemStack dropStack = ItemBlockFluidContainer.getWrenchedItem(world, new Vector3(x, y, z));
|
|
||||||
if (dropStack != null)
|
|
||||||
{
|
|
||||||
if (entityPlayer.getHeldItem() == null)
|
|
||||||
{
|
|
||||||
entityPlayer.inventory.setInventorySlotContents(entityPlayer.inventory.currentItem, dropStack);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
InventoryUtility.dropItemStack(world, new Vector3(x, y, z), dropStack);
|
|
||||||
}
|
|
||||||
world.setBlockToAir(x, y, z);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,210 +0,0 @@
|
||||||
// Date: 6/3/2013 6:47:54 AM
|
|
||||||
// Template version 1.1
|
|
||||||
// Java generated by Techne
|
|
||||||
// Keep in mind that you still need to fill in some blanks
|
|
||||||
// - ZeuX
|
|
||||||
|
|
||||||
package resonantinduction.archaic.fluid.tank;
|
|
||||||
|
|
||||||
import net.minecraft.client.model.ModelBase;
|
|
||||||
import net.minecraft.client.model.ModelRenderer;
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
@SideOnly(Side.CLIENT)
|
|
||||||
public class ModelTank extends ModelBase
|
|
||||||
{
|
|
||||||
|
|
||||||
ModelRenderer botSiding;
|
|
||||||
ModelRenderer botRightOut;
|
|
||||||
ModelRenderer botLeftOut;
|
|
||||||
|
|
||||||
ModelRenderer topSiding;
|
|
||||||
ModelRenderer topRightOut;
|
|
||||||
ModelRenderer topLeftOut;
|
|
||||||
|
|
||||||
ModelRenderer leftSiding;
|
|
||||||
ModelRenderer leftBotSide;
|
|
||||||
ModelRenderer leftTopSide;
|
|
||||||
ModelRenderer leftSide;
|
|
||||||
|
|
||||||
ModelRenderer rightSiding;
|
|
||||||
ModelRenderer rightBotSide;
|
|
||||||
ModelRenderer rightTopSide;
|
|
||||||
ModelRenderer rightSide;
|
|
||||||
|
|
||||||
public ModelTank()
|
|
||||||
{
|
|
||||||
textureWidth = 128;
|
|
||||||
textureHeight = 128;
|
|
||||||
|
|
||||||
rightSiding = new ModelRenderer(this, 0, 19);
|
|
||||||
rightSiding.addBox(-7F, 11F, 7F, 2, 10, 1);
|
|
||||||
rightSiding.setRotationPoint(0F, 0F, 0F);
|
|
||||||
rightSiding.setTextureSize(128, 128);
|
|
||||||
rightSiding.mirror = true;
|
|
||||||
setRotation(rightSiding, 0F, 0F, 0F);
|
|
||||||
leftSiding = new ModelRenderer(this, 0, 19);
|
|
||||||
leftSiding.addBox(5F, 11F, 7F, 2, 10, 1);
|
|
||||||
leftSiding.setRotationPoint(0F, 0F, 0F);
|
|
||||||
leftSiding.setTextureSize(128, 128);
|
|
||||||
leftSiding.mirror = true;
|
|
||||||
setRotation(leftSiding, 0F, 0F, 0F);
|
|
||||||
topSiding = new ModelRenderer(this, 7, 8);
|
|
||||||
topSiding.addBox(-5F, 8F, 7F, 10, 3, 1);
|
|
||||||
topSiding.setRotationPoint(0F, 0F, 0F);
|
|
||||||
topSiding.setTextureSize(128, 128);
|
|
||||||
topSiding.mirror = true;
|
|
||||||
setRotation(topSiding, 0F, 0F, 0F);
|
|
||||||
botSiding = new ModelRenderer(this, 7, 8);
|
|
||||||
botSiding.addBox(-5F, 21F, 7F, 10, 3, 1);
|
|
||||||
botSiding.setRotationPoint(0F, 0F, 0F);
|
|
||||||
botSiding.setTextureSize(128, 128);
|
|
||||||
botSiding.mirror = true;
|
|
||||||
setRotation(botSiding, 0F, 0F, 0F);
|
|
||||||
botRightOut = new ModelRenderer(this, 0, 0);
|
|
||||||
botRightOut.addBox(-7F, 21F, 7F, 2, 3, 1);
|
|
||||||
botRightOut.setRotationPoint(0F, 0F, 0F);
|
|
||||||
botRightOut.setTextureSize(128, 128);
|
|
||||||
botRightOut.mirror = true;
|
|
||||||
setRotation(botRightOut, 0F, 0F, 0F);
|
|
||||||
botLeftOut = new ModelRenderer(this, 0, 0);
|
|
||||||
botLeftOut.addBox(5F, 21F, 7F, 2, 3, 1);
|
|
||||||
botLeftOut.setRotationPoint(0F, 0F, 0F);
|
|
||||||
botLeftOut.setTextureSize(128, 128);
|
|
||||||
botLeftOut.mirror = true;
|
|
||||||
setRotation(botLeftOut, 0F, 0F, 0F);
|
|
||||||
topRightOut = new ModelRenderer(this, 0, 0);
|
|
||||||
topRightOut.addBox(-7F, 8F, 7F, 2, 3, 1);
|
|
||||||
topRightOut.setRotationPoint(0F, 0F, 0F);
|
|
||||||
topRightOut.setTextureSize(128, 128);
|
|
||||||
topRightOut.mirror = true;
|
|
||||||
setRotation(topRightOut, 0F, 0F, 0F);
|
|
||||||
topLeftOut = new ModelRenderer(this, 0, 0);
|
|
||||||
topLeftOut.addBox(5F, 8F, 7F, 2, 3, 1);
|
|
||||||
topLeftOut.setRotationPoint(0F, 0F, 0F);
|
|
||||||
topLeftOut.setTextureSize(128, 128);
|
|
||||||
topLeftOut.mirror = true;
|
|
||||||
setRotation(topLeftOut, 0F, 0F, 0F);
|
|
||||||
leftSide = new ModelRenderer(this, 0, 19);
|
|
||||||
leftSide.addBox(7F, 11F, 7F, 1, 10, 1);
|
|
||||||
leftSide.setRotationPoint(0F, 0F, 0F);
|
|
||||||
leftSide.setTextureSize(128, 128);
|
|
||||||
leftSide.mirror = true;
|
|
||||||
setRotation(leftSide, 0F, 0F, 0F);
|
|
||||||
leftTopSide = new ModelRenderer(this, 0, 0);
|
|
||||||
leftTopSide.addBox(7F, 8F, 7F, 1, 3, 1);
|
|
||||||
leftTopSide.setRotationPoint(0F, 0F, 0F);
|
|
||||||
leftTopSide.setTextureSize(128, 128);
|
|
||||||
leftTopSide.mirror = true;
|
|
||||||
setRotation(leftTopSide, 0F, 0F, 0F);
|
|
||||||
leftBotSide = new ModelRenderer(this, 0, 0);
|
|
||||||
leftBotSide.addBox(7F, 21F, 7F, 1, 3, 1);
|
|
||||||
leftBotSide.setRotationPoint(0F, 0F, 0F);
|
|
||||||
leftBotSide.setTextureSize(128, 128);
|
|
||||||
leftBotSide.mirror = true;
|
|
||||||
setRotation(leftBotSide, 0F, 0F, 0F);
|
|
||||||
rightBotSide = new ModelRenderer(this, 0, 0);
|
|
||||||
rightBotSide.addBox(-8F, 21F, 7F, 1, 3, 1);
|
|
||||||
rightBotSide.setRotationPoint(0F, 0F, 0F);
|
|
||||||
rightBotSide.setTextureSize(128, 128);
|
|
||||||
rightBotSide.mirror = true;
|
|
||||||
setRotation(rightBotSide, 0F, 0F, 0F);
|
|
||||||
rightSide = new ModelRenderer(this, 0, 19);
|
|
||||||
rightSide.addBox(-8F, 11F, 7F, 1, 10, 1);
|
|
||||||
rightSide.setRotationPoint(0F, 0F, 0F);
|
|
||||||
rightSide.setTextureSize(128, 128);
|
|
||||||
rightSide.mirror = true;
|
|
||||||
setRotation(rightSide, 0F, 0F, 0F);
|
|
||||||
rightTopSide = new ModelRenderer(this, 0, 0);
|
|
||||||
rightTopSide.addBox(-8F, 8F, 7F, 1, 3, 1);
|
|
||||||
rightTopSide.setRotationPoint(0F, 0F, 0F);
|
|
||||||
rightTopSide.setTextureSize(128, 128);
|
|
||||||
rightTopSide.mirror = true;
|
|
||||||
setRotation(rightTopSide, 0F, 0F, 0F);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param size - render size normal is 0.0625F
|
|
||||||
* @param left - is the an instance of this to the left
|
|
||||||
* @param right - "" to the right
|
|
||||||
* @param bot - "" to the bot
|
|
||||||
* @param top - "" to the top
|
|
||||||
*
|
|
||||||
* Not this only renders one side of the block. You will need to rotate it to face another
|
|
||||||
* direction then render it. If rotating up or down you will need to translate it a bit
|
|
||||||
*/
|
|
||||||
public void render(float size, boolean left, boolean right, boolean bot, boolean top)
|
|
||||||
{
|
|
||||||
if (!top)
|
|
||||||
{
|
|
||||||
topSiding.render(size);
|
|
||||||
topRightOut.render(size);
|
|
||||||
topLeftOut.render(size);
|
|
||||||
if (right)
|
|
||||||
{
|
|
||||||
rightTopSide.render(size);
|
|
||||||
}
|
|
||||||
if (left)
|
|
||||||
{
|
|
||||||
leftTopSide.render(size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!bot)
|
|
||||||
{
|
|
||||||
botSiding.render(size);
|
|
||||||
botRightOut.render(size);
|
|
||||||
botLeftOut.render(size);
|
|
||||||
if (right)
|
|
||||||
{
|
|
||||||
rightBotSide.render(size);
|
|
||||||
}
|
|
||||||
if (left)
|
|
||||||
{
|
|
||||||
leftBotSide.render(size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!right)
|
|
||||||
{
|
|
||||||
rightSiding.render(size);
|
|
||||||
rightBotSide.render(size);
|
|
||||||
rightTopSide.render(size);
|
|
||||||
rightSide.render(size);
|
|
||||||
|
|
||||||
if (top)
|
|
||||||
{
|
|
||||||
topRightOut.render(size);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (bot)
|
|
||||||
{
|
|
||||||
botRightOut.render(size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!left)
|
|
||||||
{
|
|
||||||
leftSiding.render(size);
|
|
||||||
leftBotSide.render(size);
|
|
||||||
leftTopSide.render(size);
|
|
||||||
leftSide.render(size);
|
|
||||||
|
|
||||||
if (top)
|
|
||||||
{
|
|
||||||
topLeftOut.render(size);
|
|
||||||
}
|
|
||||||
if (bot)
|
|
||||||
{
|
|
||||||
botLeftOut.render(size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setRotation(ModelRenderer model, float x, float y, float z)
|
|
||||||
{
|
|
||||||
model.rotateAngleX = x;
|
|
||||||
model.rotateAngleY = y;
|
|
||||||
model.rotateAngleZ = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,21 +1,82 @@
|
||||||
package resonantinduction.archaic.fluid.tank;
|
package resonantinduction.archaic.fluid.tank;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.minecraft.creativetab.CreativeTabs;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
|
import net.minecraft.world.IBlockAccess;
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||||
import resonantinduction.api.mechanical.fluid.IPressure;
|
import resonantinduction.api.mechanical.fluid.IPressure;
|
||||||
import resonantinduction.core.fluid.FluidDistributionetwork;
|
import resonantinduction.core.fluid.FluidDistributionetwork;
|
||||||
import resonantinduction.core.fluid.IFluidDistribution;
|
import resonantinduction.core.fluid.IFluidDistribution;
|
||||||
import resonantinduction.core.fluid.TileFluidDistribution;
|
import resonantinduction.core.fluid.TileFluidDistribution;
|
||||||
|
import resonantinduction.mechanical.fluid.pipe.ItemBlockFluidContainer;
|
||||||
|
import universalelectricity.api.UniversalElectricity;
|
||||||
|
import universalelectricity.api.vector.Vector3;
|
||||||
|
import calclavia.lib.content.module.TileBlock.IComparatorInputOverride;
|
||||||
|
import calclavia.lib.utility.FluidUtility;
|
||||||
import calclavia.lib.utility.WorldUtility;
|
import calclavia.lib.utility.WorldUtility;
|
||||||
|
import calclavia.lib.utility.inventory.InventoryUtility;
|
||||||
|
|
||||||
public class TileTank extends TileFluidDistribution implements IPressure
|
public class TileTank extends TileFluidDistribution implements IPressure, IComparatorInputOverride
|
||||||
{
|
{
|
||||||
public static final int VOLUME = 16;
|
public static final int VOLUME = 16;
|
||||||
|
|
||||||
public TileTank()
|
public TileTank()
|
||||||
{
|
{
|
||||||
|
super(UniversalElectricity.machine);
|
||||||
this.getInternalTank().setCapacity(VOLUME * FluidContainerRegistry.BUCKET_VOLUME);
|
this.getInternalTank().setCapacity(VOLUME * FluidContainerRegistry.BUCKET_VOLUME);
|
||||||
|
isOpaqueCube = false;
|
||||||
|
normalRender = false;
|
||||||
|
itemBlock = ItemBlockFluidContainer.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean use(EntityPlayer player, int side, Vector3 vector3)
|
||||||
|
{
|
||||||
|
if (!world().isRemote)
|
||||||
|
{
|
||||||
|
if (player.isSneaking())
|
||||||
|
{
|
||||||
|
ItemStack dropStack = ItemBlockFluidContainer.getWrenchedItem(world(), position());
|
||||||
|
if (dropStack != null)
|
||||||
|
{
|
||||||
|
if (player.getHeldItem() == null)
|
||||||
|
{
|
||||||
|
player.inventory.setInventorySlotContents(player.inventory.currentItem, dropStack);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
InventoryUtility.dropItemStack(world(), position(), dropStack);
|
||||||
|
}
|
||||||
|
|
||||||
|
position().setBlock(world(), 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FluidUtility.playerActivatedFluidItem(world(), x(), y(), z(), player, side);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getComparatorInputOverride(int side)
|
||||||
|
{
|
||||||
|
if (getNetwork().getTank().getFluid() != null)
|
||||||
|
return (int) (15 * ((double) getNetwork().getTank().getFluidAmount() / (double) getNetwork().getTank().getCapacity()));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLightValue(IBlockAccess access)
|
||||||
|
{
|
||||||
|
if (getInternalTank().getFluid() != null)
|
||||||
|
return getInternalTank().getFluid().getFluid().getLuminosity();
|
||||||
|
return super.getLightValue(access);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -61,7 +122,7 @@ public class TileTank extends TileFluidDistribution implements IPressure
|
||||||
@Override
|
@Override
|
||||||
public int getPressure(ForgeDirection dir)
|
public int getPressure(ForgeDirection dir)
|
||||||
{
|
{
|
||||||
return 0;//(getInternalTank().getCapacity() - getInternalTank().getFluidAmount()) / 10;
|
return 0;// (getInternalTank().getCapacity() - getInternalTank().getFluidAmount()) / 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ package resonantinduction.core.fluid;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.packet.Packet;
|
||||||
|
@ -34,6 +35,11 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||||
*/
|
*/
|
||||||
public abstract class TileFluidDistribution extends TileFluidNode implements IFluidDistribution
|
public abstract class TileFluidDistribution extends TileFluidNode implements IFluidDistribution
|
||||||
{
|
{
|
||||||
|
public TileFluidDistribution(Material material)
|
||||||
|
{
|
||||||
|
super(material);
|
||||||
|
}
|
||||||
|
|
||||||
protected Object[] connectedBlocks = new Object[6];
|
protected Object[] connectedBlocks = new Object[6];
|
||||||
|
|
||||||
/** Network used to link all parts together */
|
/** Network used to link all parts together */
|
||||||
|
@ -47,6 +53,13 @@ public abstract class TileFluidDistribution extends TileFluidNode implements IFl
|
||||||
getNetwork().reconstruct();
|
getNetwork().reconstruct();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onNeighborChanged()
|
||||||
|
{
|
||||||
|
refresh();
|
||||||
|
getNetwork().reconstruct();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invalidate()
|
public void invalidate()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package resonantinduction.core.fluid;
|
package resonantinduction.core.fluid;
|
||||||
|
|
||||||
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
import net.minecraft.nbt.NBTTagCompound;
|
||||||
import net.minecraft.network.packet.Packet;
|
import net.minecraft.network.packet.Packet;
|
||||||
|
@ -8,9 +9,9 @@ import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fluids.FluidTank;
|
import net.minecraftforge.fluids.FluidTank;
|
||||||
import resonantinduction.core.ResonantInduction;
|
import resonantinduction.core.ResonantInduction;
|
||||||
import universalelectricity.api.vector.Vector3;
|
import universalelectricity.api.vector.Vector3;
|
||||||
|
import calclavia.lib.content.module.TileBase;
|
||||||
import calclavia.lib.network.IPacketReceiverWithID;
|
import calclavia.lib.network.IPacketReceiverWithID;
|
||||||
import calclavia.lib.network.PacketHandler;
|
import calclavia.lib.network.PacketHandler;
|
||||||
import calclavia.lib.prefab.tile.TileAdvanced;
|
|
||||||
import calclavia.lib.utility.FluidUtility;
|
import calclavia.lib.utility.FluidUtility;
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
import com.google.common.io.ByteArrayDataInput;
|
||||||
|
@ -20,8 +21,13 @@ import com.google.common.io.ByteArrayDataInput;
|
||||||
*
|
*
|
||||||
* @author DarkGuardsman
|
* @author DarkGuardsman
|
||||||
*/
|
*/
|
||||||
public abstract class TileFluidNode extends TileAdvanced implements IPacketReceiverWithID
|
public abstract class TileFluidNode extends TileBase implements IPacketReceiverWithID
|
||||||
{
|
{
|
||||||
|
public TileFluidNode(Material material)
|
||||||
|
{
|
||||||
|
super(material);
|
||||||
|
}
|
||||||
|
|
||||||
protected int pressure;
|
protected int pressure;
|
||||||
|
|
||||||
protected FluidTank tank;
|
protected FluidTank tank;
|
||||||
|
@ -79,6 +85,7 @@ public abstract class TileFluidNode extends TileAdvanced implements IPacketRecei
|
||||||
{
|
{
|
||||||
tank = new FluidTank(data.readInt()).readFromNBT(PacketHandler.readNBTTagCompound(data));
|
tank = new FluidTank(data.readInt()).readFromNBT(PacketHandler.readNBTTagCompound(data));
|
||||||
pressure = data.readInt();
|
pressure = data.readInt();
|
||||||
|
updateLight();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,27 +1,14 @@
|
||||||
package resonantinduction.core.fluid;
|
package resonantinduction.core.fluid;
|
||||||
|
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.block.material.Material;
|
||||||
import net.minecraft.nbt.NBTTagCompound;
|
|
||||||
import net.minecraft.network.packet.Packet;
|
|
||||||
import net.minecraft.tileentity.TileEntity;
|
import net.minecraft.tileentity.TileEntity;
|
||||||
import net.minecraft.util.AxisAlignedBB;
|
|
||||||
import net.minecraftforge.common.ForgeDirection;
|
import net.minecraftforge.common.ForgeDirection;
|
||||||
import net.minecraftforge.fluids.FluidContainerRegistry;
|
import net.minecraftforge.fluids.FluidContainerRegistry;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fluids.FluidTank;
|
import net.minecraftforge.fluids.FluidTank;
|
||||||
import net.minecraftforge.fluids.FluidTankInfo;
|
import net.minecraftforge.fluids.FluidTankInfo;
|
||||||
import resonantinduction.core.ResonantInduction;
|
|
||||||
import universalelectricity.api.vector.Vector3;
|
import universalelectricity.api.vector.Vector3;
|
||||||
import calclavia.lib.network.IPacketReceiverWithID;
|
import calclavia.lib.network.IPacketReceiverWithID;
|
||||||
import calclavia.lib.network.PacketHandler;
|
|
||||||
import calclavia.lib.prefab.tile.TileAdvanced;
|
|
||||||
import calclavia.lib.utility.FluidUtility;
|
|
||||||
import calclavia.lib.utility.WorldUtility;
|
|
||||||
|
|
||||||
import com.google.common.io.ByteArrayDataInput;
|
|
||||||
|
|
||||||
import cpw.mods.fml.relauncher.Side;
|
|
||||||
import cpw.mods.fml.relauncher.SideOnly;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A prefab class for tiles that use the fluid network.
|
* A prefab class for tiles that use the fluid network.
|
||||||
|
@ -35,8 +22,9 @@ public abstract class TilePressurizedNode extends TileFluidNode implements IPres
|
||||||
/** Network used to link all parts together */
|
/** Network used to link all parts together */
|
||||||
protected PressureNetwork network;
|
protected PressureNetwork network;
|
||||||
|
|
||||||
public TilePressurizedNode()
|
public TilePressurizedNode(Material material)
|
||||||
{
|
{
|
||||||
|
super(material);
|
||||||
getInternalTank().setCapacity(FluidContainerRegistry.BUCKET_VOLUME);
|
getInternalTank().setCapacity(FluidContainerRegistry.BUCKET_VOLUME);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue