001 package net.minecraft.entity;
002
003 import net.minecraft.block.material.Material;
004 import net.minecraft.entity.monster.IMob;
005 import net.minecraft.entity.passive.EntityAmbientCreature;
006 import net.minecraft.entity.passive.EntityAnimal;
007 import net.minecraft.entity.passive.EntityWaterMob;
008
009 public enum EnumCreatureType
010 {
011 monster(IMob.class, 70, Material.air, false, false),
012 creature(EntityAnimal.class, 10, Material.air, true, true),
013 ambient(EntityAmbientCreature.class, 15, Material.air, true, false),
014 waterCreature(EntityWaterMob.class, 5, Material.water, true, false);
015
016 /**
017 * The root class of creatures associated with this EnumCreatureType (IMobs for aggressive creatures, EntityAnimals
018 * for friendly ones)
019 */
020 private final Class creatureClass;
021 private final int maxNumberOfCreature;
022 private final Material creatureMaterial;
023
024 /** A flag indicating whether this creature type is peaceful. */
025 private final boolean isPeacefulCreature;
026
027 /** Whether this creature type is an animal. */
028 private final boolean isAnimal;
029
030 private EnumCreatureType(Class par3Class, int par4, Material par5Material, boolean par6, boolean par7)
031 {
032 this.creatureClass = par3Class;
033 this.maxNumberOfCreature = par4;
034 this.creatureMaterial = par5Material;
035 this.isPeacefulCreature = par6;
036 this.isAnimal = par7;
037 }
038
039 public Class getCreatureClass()
040 {
041 return this.creatureClass;
042 }
043
044 public int getMaxNumberOfCreature()
045 {
046 return this.maxNumberOfCreature;
047 }
048
049 public Material getCreatureMaterial()
050 {
051 return this.creatureMaterial;
052 }
053
054 /**
055 * Gets whether or not this creature type is peaceful.
056 */
057 public boolean getPeacefulCreature()
058 {
059 return this.isPeacefulCreature;
060 }
061
062 /**
063 * Return whether this creature type is an animal.
064 */
065 public boolean getAnimal()
066 {
067 return this.isAnimal;
068 }
069 }