aether-legacy/src/main/java/com/legacy/aether/blocks/dungeon/BlockMimicChest.java
2018-12-06 23:33:43 -05:00

68 lines
1.8 KiB
Java

package com.legacy.aether.blocks.dungeon;
import net.minecraft.block.BlockChest;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World;
import com.legacy.aether.entities.hostile.EntityMimic;
import com.legacy.aether.tileentity.TileEntityChestMimic;
public class BlockMimicChest extends BlockChest
{
public BlockMimicChest()
{
super(13);
this.setHardness(2.0F);
}
@Override
public TileEntity createNewTileEntity(World worldIn, int meta)
{
return new TileEntityChestMimic();
}
@Override
public boolean onBlockActivated(World worldIn, int x, int y, int z, EntityPlayer playerIn, int side, float hitX, float hitY, float hitZ)
{
this.spawnMimic(worldIn, playerIn, x, y, z);
worldIn.playSoundEffect((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D, "random.chestopen", 0.5F, worldIn.rand.nextFloat() * 0.1F + 0.9F);
return true;
}
@Override
public void harvestBlock(World worldIn, EntityPlayer player, int x, int y, int z, int meta)
{
this.spawnMimic(worldIn, player, x, y, z);
}
@Override
public ItemStack getPickBlock(MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player)
{
return new ItemStack(Blocks.chest);
}
private void spawnMimic(World world, EntityPlayer player, int x, int y, int z)
{
if (!world.isRemote)
{
EntityMimic mimic = new EntityMimic(world);
if (!player.capabilities.isCreativeMode)
{
mimic.setAttackTarget(player);
}
mimic.setPosition((double)x + 0.5D, (double)y + 1.5D, (double)z + 0.5D);
world.spawnEntityInWorld(mimic);
}
world.setBlockToAir(x, y, z);
}
}