2013-01-02 19:55:29 +01:00
|
|
|
package liquidmechanics.common.block;
|
2012-11-14 19:16:22 +01:00
|
|
|
|
|
|
|
import java.util.Random;
|
|
|
|
|
2013-01-02 19:55:29 +01:00
|
|
|
import liquidmechanics.common.LiquidMechanics;
|
2013-01-03 18:18:47 +01:00
|
|
|
import liquidmechanics.common.handlers.LiquidHandler;
|
2013-01-02 19:55:29 +01:00
|
|
|
import liquidmechanics.common.tileentity.TileEntityPipe;
|
|
|
|
|
2012-12-22 10:44:17 +01:00
|
|
|
import net.minecraft.block.BlockContainer;
|
|
|
|
import net.minecraft.block.material.Material;
|
|
|
|
import net.minecraft.entity.item.EntityItem;
|
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
|
import net.minecraft.tileentity.TileEntity;
|
2012-12-24 06:20:30 +01:00
|
|
|
import net.minecraft.util.MovingObjectPosition;
|
2012-12-22 10:44:17 +01:00
|
|
|
import net.minecraft.world.World;
|
2012-11-14 19:16:22 +01:00
|
|
|
|
2012-12-22 14:46:23 +01:00
|
|
|
public class BlockPipe extends BlockContainer
|
2013-01-05 01:03:20 +01:00
|
|
|
{
|
2012-12-22 14:46:23 +01:00
|
|
|
public BlockPipe(int id)
|
|
|
|
{
|
|
|
|
super(id, Material.iron);
|
|
|
|
this.setBlockName("Pipe");
|
|
|
|
this.setBlockBounds(0.30F, 0.30F, 0.30F, 0.70F, 0.70F, 0.70F);
|
|
|
|
this.setHardness(1f);
|
|
|
|
this.setResistance(3f);
|
|
|
|
}
|
|
|
|
|
2013-01-02 19:55:29 +01:00
|
|
|
@Override
|
2012-12-22 14:46:23 +01:00
|
|
|
public boolean isOpaqueCube()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2013-01-02 19:55:29 +01:00
|
|
|
@Override
|
2012-12-22 14:46:23 +01:00
|
|
|
public boolean renderAsNormalBlock()
|
|
|
|
{
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2013-01-02 19:55:29 +01:00
|
|
|
@Override
|
2012-12-22 14:46:23 +01:00
|
|
|
public int getRenderType()
|
|
|
|
{
|
|
|
|
return -1;
|
|
|
|
}
|
|
|
|
|
2013-01-02 19:55:29 +01:00
|
|
|
@Override
|
2012-12-22 14:46:23 +01:00
|
|
|
public int idDropped(int par1, Random par2Random, int par3)
|
|
|
|
{
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2012-11-14 19:16:22 +01:00
|
|
|
public void onBlockAdded(World world, int x, int y, int z)
|
|
|
|
{
|
|
|
|
super.onBlockAdded(world, x, y, z);
|
|
|
|
}
|
2012-12-22 14:46:23 +01:00
|
|
|
|
2012-11-14 19:16:22 +01:00
|
|
|
/**
|
2012-12-22 14:46:23 +01:00
|
|
|
* Lets the block know when one of its neighbor changes. Doesn't know which
|
|
|
|
* neighbor changed (coordinates passed are their own) Args: x, y, z,
|
|
|
|
* neighbor blockID
|
2012-11-14 19:16:22 +01:00
|
|
|
*/
|
2012-12-22 14:46:23 +01:00
|
|
|
@Override
|
2012-11-14 19:16:22 +01:00
|
|
|
public void onNeighborBlockChange(World world, int x, int y, int z, int blockID)
|
|
|
|
{
|
2012-12-22 14:46:23 +01:00
|
|
|
super.onNeighborBlockChange(world, x, y, z, blockID);
|
2012-11-14 19:16:22 +01:00
|
|
|
}
|
2012-12-22 14:46:23 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean canPlaceBlockAt(World par1World, int par2, int par3, int par4)
|
2012-11-14 19:16:22 +01:00
|
|
|
{
|
2012-12-22 14:46:23 +01:00
|
|
|
int var5 = par1World.getBlockId(par2, par3, par4);
|
2012-12-02 06:30:56 +01:00
|
|
|
return var5 == 0 || blocksList[var5].blockMaterial.isReplaceable();
|
2012-11-14 19:16:22 +01:00
|
|
|
}
|
|
|
|
|
2012-12-22 14:46:23 +01:00
|
|
|
@Override
|
|
|
|
public boolean canPlaceBlockOnSide(World par1World, int par2, int par3, int par4, int par5)
|
|
|
|
{
|
|
|
|
return true;
|
|
|
|
}
|
2012-11-14 19:16:22 +01:00
|
|
|
|
2012-12-22 14:46:23 +01:00
|
|
|
@Override
|
|
|
|
public TileEntity createNewTileEntity(World var1)
|
|
|
|
{
|
|
|
|
// TODO Auto-generated method stub
|
|
|
|
return new TileEntityPipe();
|
|
|
|
}
|
2013-01-02 19:55:29 +01:00
|
|
|
|
2012-12-24 06:20:30 +01:00
|
|
|
@Override
|
|
|
|
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z)
|
|
|
|
{
|
|
|
|
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
|
|
|
int meta = 0;
|
2013-01-02 19:55:29 +01:00
|
|
|
if (ent instanceof TileEntityPipe)
|
2012-12-24 06:20:30 +01:00
|
|
|
{
|
2013-01-03 18:18:47 +01:00
|
|
|
TileEntityPipe pipe = (TileEntityPipe) ent;
|
|
|
|
meta = LiquidHandler.getMeta(pipe.type);
|
|
|
|
|
2012-12-24 06:20:30 +01:00
|
|
|
}
|
2013-01-02 19:55:29 +01:00
|
|
|
return new ItemStack(LiquidMechanics.itemPipes, 1, 0);
|
2012-12-24 06:20:30 +01:00
|
|
|
}
|
2013-01-02 19:55:29 +01:00
|
|
|
|
2012-12-22 14:46:23 +01:00
|
|
|
@Override
|
|
|
|
public void breakBlock(World world, int x, int y, int z, int par5, int par6)
|
|
|
|
{
|
|
|
|
super.breakBlock(world, x, y, z, par5, par6);
|
|
|
|
TileEntity ent = world.getBlockTileEntity(x, y, z);
|
|
|
|
Random furnaceRand = new Random();
|
|
|
|
if (ent instanceof TileEntityPipe)
|
|
|
|
{
|
|
|
|
TileEntityPipe pipe = (TileEntityPipe) ent;
|
2013-01-03 18:18:47 +01:00
|
|
|
int meta = LiquidHandler.getMeta(pipe.type);
|
2012-12-22 14:46:23 +01:00
|
|
|
float var8 = furnaceRand.nextFloat() * 0.8F + 0.1F;
|
|
|
|
float var9 = furnaceRand.nextFloat() * 0.8F + 0.1F;
|
|
|
|
float var10 = furnaceRand.nextFloat() * 0.8F + 0.1F;
|
2013-01-02 19:55:29 +01:00
|
|
|
EntityItem var12 = new EntityItem(world, (double) ((float) x + var8), (double) ((float) y + var9), (double) ((float) z + var10), new ItemStack(LiquidMechanics.itemPipes, 1, meta));
|
2012-12-22 14:46:23 +01:00
|
|
|
float var13 = 0.05F;
|
|
|
|
var12.motionX = (double) ((float) furnaceRand.nextGaussian() * var13);
|
|
|
|
var12.motionY = (double) ((float) furnaceRand.nextGaussian() * var13 + 0.2F);
|
|
|
|
var12.motionZ = (double) ((float) furnaceRand.nextGaussian() * var13);
|
|
|
|
world.spawnEntityInWorld(var12);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|