001package net.minecraft.entity.ai; 002 003import cpw.mods.fml.relauncher.Side; 004import cpw.mods.fml.relauncher.SideOnly; 005import net.minecraft.block.Block; 006import net.minecraft.entity.item.EntityMinecart; 007import net.minecraft.nbt.NBTTagCompound; 008import net.minecraft.tileentity.MobSpawnerBaseLogic; 009import net.minecraft.world.World; 010 011public class EntityMinecartMobSpawner extends EntityMinecart 012{ 013 /** Mob spawner logic for this spawner minecart. */ 014 private final MobSpawnerBaseLogic mobSpawnerLogic = new EntityMinecartMobSpawnerLogic(this); 015 016 public EntityMinecartMobSpawner(World par1World) 017 { 018 super(par1World); 019 } 020 021 public EntityMinecartMobSpawner(World par1World, double par2, double par4, double par6) 022 { 023 super(par1World, par2, par4, par6); 024 } 025 026 public int getMinecartType() 027 { 028 return 4; 029 } 030 031 public Block getDefaultDisplayTile() 032 { 033 return Block.mobSpawner; 034 } 035 036 /** 037 * (abstract) Protected helper method to read subclass entity data from NBT. 038 */ 039 protected void readEntityFromNBT(NBTTagCompound par1NBTTagCompound) 040 { 041 super.readEntityFromNBT(par1NBTTagCompound); 042 this.mobSpawnerLogic.readFromNBT(par1NBTTagCompound); 043 } 044 045 /** 046 * (abstract) Protected helper method to write subclass entity data to NBT. 047 */ 048 protected void writeEntityToNBT(NBTTagCompound par1NBTTagCompound) 049 { 050 super.writeEntityToNBT(par1NBTTagCompound); 051 this.mobSpawnerLogic.writeToNBT(par1NBTTagCompound); 052 } 053 054 @SideOnly(Side.CLIENT) 055 public void handleHealthUpdate(byte par1) 056 { 057 this.mobSpawnerLogic.setDelayToMin(par1); 058 } 059 060 /** 061 * Called to update the entity's position/logic. 062 */ 063 public void onUpdate() 064 { 065 super.onUpdate(); 066 this.mobSpawnerLogic.updateSpawner(); 067 } 068 069 @SideOnly(Side.CLIENT) 070 public MobSpawnerBaseLogic func_98039_d() 071 { 072 return this.mobSpawnerLogic; 073 } 074}