blob: 0157ff14634773fd05d16c7297433bb372925c0e [file] [log] [blame] [raw]
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);
}
}