    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    }