generated from tilera/1710mod
86 lines
2.2 KiB
Java
86 lines
2.2 KiB
Java
package mods.immibis.tinycarts;
|
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
|
import net.minecraft.block.Block;
|
|
import net.minecraft.block.material.Material;
|
|
import net.minecraft.entity.Entity;
|
|
import net.minecraft.entity.player.EntityPlayerMP;
|
|
import net.minecraft.util.AxisAlignedBB;
|
|
import net.minecraft.world.World;
|
|
|
|
public class BlockTransparentBedrock extends Block {
|
|
public BlockTransparentBedrock() {
|
|
super(Material.rock);
|
|
|
|
setBlockUnbreakable();
|
|
setResistance(6000000.0F);
|
|
setStepSound(soundTypeStone);
|
|
setBlockName("tinycarts.transparent_bedrock");
|
|
disableStats();
|
|
setBlockTextureName("bedrock");
|
|
}
|
|
|
|
@Override
|
|
public boolean getUseNeighborBrightness() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) {
|
|
final float border = 1/16f;
|
|
return AxisAlignedBB.getBoundingBox((double)par2 + border, (double)par3 + this.minY, (double)par4 + border, (double)par2 + 1-border, (double)par3 + 1-border, (double)par4 + 1-border);
|
|
}
|
|
|
|
@Override
|
|
public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity) {
|
|
if(par5Entity instanceof EntityPlayerMP)
|
|
TinyCartsMod.removeFromCart(par5Entity, false);
|
|
}
|
|
|
|
// render in no passes = invisible
|
|
@Override
|
|
public boolean canRenderInPass(int pass) {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean renderAsNormalBlock() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isOpaqueCube() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public void breakBlock(World par1World, int par2, int par3, int par4, Block par5, int par6) {
|
|
if(allowRemoval.get() > 0)
|
|
return;
|
|
|
|
allowPlacement.incrementAndGet();
|
|
try {
|
|
par1World.setBlock(par2, par3, par4, par5);
|
|
} finally {
|
|
allowPlacement.decrementAndGet();
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onBlockAdded(World par1World, int par2, int par3, int par4) {
|
|
if(allowPlacement.get() > 0)
|
|
return;
|
|
|
|
allowRemoval.incrementAndGet();
|
|
try {
|
|
par1World.setBlockToAir(par2, par3, par4);
|
|
} finally {
|
|
allowRemoval.decrementAndGet();
|
|
}
|
|
}
|
|
|
|
static AtomicInteger allowPlacement = new AtomicInteger();
|
|
static AtomicInteger allowRemoval = new AtomicInteger();
|
|
}
|