2013-01-02 19:55:29 +01:00
|
|
|
package liquidmechanics.common.block;
|
|
|
|
|
2013-01-06 06:13:09 +01:00
|
|
|
import java.util.List;
|
|
|
|
|
2013-01-05 01:03:20 +01:00
|
|
|
import universalelectricity.prefab.BlockMachine;
|
|
|
|
import universalelectricity.prefab.tile.TileEntityAdvanced;
|
2013-01-07 05:15:21 +01:00
|
|
|
import liquidmechanics.api.helpers.LiquidHandler;
|
2013-01-02 19:55:29 +01:00
|
|
|
import liquidmechanics.client.render.BlockRenderHelper;
|
|
|
|
import liquidmechanics.common.LiquidMechanics;
|
2013-01-05 01:03:20 +01:00
|
|
|
import liquidmechanics.common.MetaGroup;
|
2013-01-02 19:55:29 +01:00
|
|
|
import liquidmechanics.common.TabLiquidMechanics;
|
|
|
|
import liquidmechanics.common.tileentity.TileEntityPump;
|
|
|
|
import liquidmechanics.common.tileentity.TileEntityTank;
|
|
|
|
import net.minecraft.block.BlockContainer;
|
|
|
|
import net.minecraft.block.material.Material;
|
2013-01-06 06:13:09 +01:00
|
|
|
import net.minecraft.creativetab.CreativeTabs;
|
2013-01-05 01:03:20 +01:00
|
|
|
import net.minecraft.entity.EntityLiving;
|
2013-01-02 19:55:29 +01:00
|
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
2013-01-05 01:03:20 +01:00
|
|
|
import net.minecraft.util.MathHelper;
|
2013-01-02 19:55:29 +01:00
|
|
|
import net.minecraft.util.MovingObjectPosition;
|
|
|
|
import net.minecraft.world.World;
|
|
|
|
import net.minecraftforge.common.ForgeDirection;
|
|
|
|
import net.minecraftforge.liquids.LiquidContainerRegistry;
|
|
|
|
import net.minecraftforge.liquids.LiquidStack;
|
|
|
|
|
2013-01-06 06:13:09 +01:00
|
|
|
public class BlockPumpMachine extends BlockMachine
|
2013-01-02 19:55:29 +01:00
|
|
|
{
|
2013-01-05 01:03:20 +01:00
|
|
|
|
2013-01-06 06:13:09 +01:00
|
|
|
public BlockPumpMachine(int id)
|
2013-01-03 18:18:47 +01:00
|
|
|
{
|
2013-01-05 01:03:20 +01:00
|
|
|
super("lmMachines", id, Material.iron, TabLiquidMechanics.INSTANCE);
|
2013-01-03 18:18:47 +01:00
|
|
|
this.setHardness(1f);
|
|
|
|
this.setResistance(5f);
|
|
|
|
}
|
2013-01-05 21:05:53 +01:00
|
|
|
public void onBlockAdded(World world, int x, int y, int z)
|
|
|
|
{
|
|
|
|
int meta = world.getBlockMetadata(x, y, z);
|
|
|
|
if(MetaGroup.getGrouping(meta) == 1)
|
|
|
|
{
|
|
|
|
world.setBlockAndMetadata(x, y, z, LiquidMechanics.blockTank.blockID, 15);
|
|
|
|
}
|
|
|
|
}
|
2013-01-03 18:18:47 +01:00
|
|
|
@Override
|
|
|
|
public boolean isOpaqueCube()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean renderAsNormalBlock()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getRenderType()
|
|
|
|
{
|
|
|
|
return BlockRenderHelper.renderID;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int damageDropped(int meta)
|
|
|
|
{
|
|
|
|
if (meta < 4) { return 0; }
|
|
|
|
return meta;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
|
|
|
{
|
|
|
|
int meta = world.getBlockMetadata(x, y, z);
|
2013-01-05 01:03:20 +01:00
|
|
|
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
|
|
|
|
2013-01-03 18:18:47 +01:00
|
|
|
if (meta < 4)
|
2013-01-05 01:03:20 +01:00
|
|
|
{
|
2013-01-03 18:18:47 +01:00
|
|
|
new ItemStack(LiquidMechanics.blockMachine, 1, 0);
|
2013-01-05 01:03:20 +01:00
|
|
|
}
|
2013-01-05 21:05:53 +01:00
|
|
|
|
2013-01-03 18:18:47 +01:00
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2013-01-05 01:03:20 +01:00
|
|
|
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLiving par5EntityLiving)
|
2013-01-03 18:18:47 +01:00
|
|
|
{
|
2013-01-05 01:03:20 +01:00
|
|
|
int meta = world.getBlockMetadata(x, y, z);
|
|
|
|
int angle = MathHelper.floor_double((par5EntityLiving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
|
|
|
|
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
2013-01-05 21:05:53 +01:00
|
|
|
|
|
|
|
world.setBlockMetadata(x, y, z, angle + MetaGroup.getGroupStartMeta(MetaGroup.getGrouping(meta)));
|
2013-01-05 01:03:20 +01:00
|
|
|
if (ent instanceof TileEntityAdvanced)
|
|
|
|
{
|
|
|
|
((TileEntityAdvanced) world.getBlockTileEntity(x, y, z)).initiate();
|
|
|
|
}
|
|
|
|
|
|
|
|
world.notifyBlocksOfNeighborChange(x, y, z, this.blockID);
|
2013-01-03 18:18:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2013-01-05 01:03:20 +01:00
|
|
|
public TileEntity createNewTileEntity(World var1, int meta)
|
2013-01-03 18:18:47 +01:00
|
|
|
{
|
2013-01-05 01:03:20 +01:00
|
|
|
if (meta >= 12)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
else if (meta >= 8)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
else if (meta >= 4)
|
|
|
|
{
|
2013-01-05 21:05:53 +01:00
|
|
|
|
2013-01-05 01:03:20 +01:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
return new TileEntityPump();
|
|
|
|
}
|
2013-01-03 18:18:47 +01:00
|
|
|
return null;
|
|
|
|
}
|
2013-01-06 06:13:09 +01:00
|
|
|
@Override
|
|
|
|
public void getSubBlocks(int par1, CreativeTabs par2CreativeTabs, List par3List)
|
|
|
|
{
|
|
|
|
par3List.add(new ItemStack(par1, 1, 0));
|
|
|
|
}
|
2013-01-02 19:55:29 +01:00
|
|
|
}
|