    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}