001package net.minecraft.entity;
002
003import net.minecraft.block.material.Material;
004import net.minecraft.entity.monster.IMob;
005import net.minecraft.entity.passive.EntityAmbientCreature;
006import net.minecraft.entity.passive.EntityAnimal;
007import net.minecraft.entity.passive.EntityWaterMob;
008
009public 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}