package net.minecraft.entity.ai; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; import net.minecraft.entity.item.EntityMinecart; import net.minecraft.init.Blocks; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.MobSpawnerBaseLogic; import net.minecraft.util.MathHelper; import net.minecraft.world.World; public class EntityMinecartMobSpawner extends EntityMinecart { /** Mob spawner logic for this spawner minecart. */ private final MobSpawnerBaseLogic mobSpawnerLogic = new MobSpawnerBaseLogic() { private static final String __OBFID = "CL_00001679"; public void func_98267_a(int p_98267_1_) { EntityMinecartMobSpawner.this.worldObj.setEntityState(EntityMinecartMobSpawner.this, (byte)p_98267_1_); } public World getSpawnerWorld() { return EntityMinecartMobSpawner.this.worldObj; } public int getSpawnerX() { return MathHelper.floor_double(EntityMinecartMobSpawner.this.posX); } public int getSpawnerY() { return MathHelper.floor_double(EntityMinecartMobSpawner.this.posY); } public int getSpawnerZ() { return MathHelper.floor_double(EntityMinecartMobSpawner.this.posZ); } }; private static final String __OBFID = "CL_00001678"; public EntityMinecartMobSpawner(World p_i1725_1_) { super(p_i1725_1_); } public EntityMinecartMobSpawner(World p_i1726_1_, double p_i1726_2_, double p_i1726_4_, double p_i1726_6_) { super(p_i1726_1_, p_i1726_2_, p_i1726_4_, p_i1726_6_); } public int getMinecartType() { return 4; } public Block getDefaultDisplayTile() { return Blocks.mob_spawner; } /** * (abstract) Protected helper method to read subclass entity data from NBT. */ protected void readEntityFromNBT(NBTTagCompound tagCompund) { super.readEntityFromNBT(tagCompund); this.mobSpawnerLogic.readFromNBT(tagCompund); } /** * (abstract) Protected helper method to write subclass entity data to NBT. */ protected void writeEntityToNBT(NBTTagCompound tagCompound) { super.writeEntityToNBT(tagCompound); this.mobSpawnerLogic.writeToNBT(tagCompound); } @SideOnly(Side.CLIENT) public void handleHealthUpdate(byte p_70103_1_) { this.mobSpawnerLogic.setDelayToMin(p_70103_1_); } /** * Called to update the entity's position/logic. */ public void onUpdate() { super.onUpdate(); this.mobSpawnerLogic.updateSpawner(); } @SideOnly(Side.CLIENT) public MobSpawnerBaseLogic func_98039_d() { return this.mobSpawnerLogic; } }