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    }