- 1,007
- 36
- 206
У меня есть блок, мне нужно чтобы он исчезал через определённое время после его установки в мир.
Код блока
Код блока
Код:
public class BlockPackingCase extends BlockContainer
{
public BlockPackingCase()
{
super(Material.wood);
setStepSound(Block.soundTypeWood);
setBlockUnbreakable();
setCreativeTab(CreativeTabs.tabMisc);
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister register) {}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityliving, ItemStack itemstack)
{
TilePackingCase te = (TilePackingCase) world.getTileEntity(x, y, z);
int side = MathHelper.floor_double((entityliving.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
int height = Math.round(entityliving.rotationPitch);
int change = 3;
if (te == null)
return;
if (te.canSetFacing(0) && te.canSetFacing(1))
{
if (height >= 65)
change = 1;
else if (height <= -65)
change = 0;
}
if (change != 0 && change != 1)
{
switch (side)
{
case 0:
change = 2;
break;
case 1:
change = 5;
break;
case 2:
change = 3;
break;
case 3:
change = 4;
break;
}
}
te.setFacing((short) change);
}
@Override
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int facing, float hitX, float hitY, float hiZ)
{
if (!world.isRemote && !player.isSneaking())
{
TilePackingCase te = (TilePackingCase) world.getTileEntity(x, y, z);
if (te != null)
{
if (te.canOpen(player))
{
world.playSoundEffect(x + 0.5F, y + 0.5D, z + 0.5F, "random.chestopen", 0.5F, (world.rand.nextFloat() * 0.1F) + 0.9F);
if (te.inventory[0] != null)
{
int i = player.inventory.getFirstEmptyStack();
if (i != -1)
{
player.inventory.setInventorySlotContents(i, te.inventory[0]);
Slot slot = player.openContainer.getSlotFromInventory(player.inventory, i);
((EntityPlayerMP) player).playerNetServerHandler.sendPacket(new S2FPacketSetSlot(player.openContainer.windowId, slot.slotNumber, te.inventory[0]));
}
else
{
EntityItem ent = new EntityItem(world, player.posX + 0.5F, player.posY + 0.5F, player.posZ + 0.5F, te.inventory[0]);
world.setBlockToAir(x, y, z);
world.spawnEntityInWorld(ent);
}
}
world.setBlockToAir(x, y, z);
}
}
}
return false;
}
@Override
public TileEntity createNewTileEntity(World world, int meta)
{
return new TilePackingCase(null, null);
}
@Override
public boolean renderAsNormalBlock()
{
return false;
}
@Override
public boolean isOpaqueCube()
{
return false;
}
@Override
public int getRenderType()
{
return -1;
}
}