|  | package forestry.api.lepidopterology; | 
|  |  | 
|  | import forestry.api.genetics.AlleleManager; | 
|  | import forestry.api.genetics.IAllele; | 
|  | import forestry.api.genetics.IAlleleArea; | 
|  | import forestry.api.genetics.IAlleleBoolean; | 
|  | import forestry.api.genetics.IAlleleFloat; | 
|  | import forestry.api.genetics.IAlleleFlowers; | 
|  | import forestry.api.genetics.IAlleleInteger; | 
|  | import forestry.api.genetics.IAlleleTolerance; | 
|  | import forestry.api.genetics.IChromosomeType; | 
|  | import forestry.api.genetics.ISpeciesRoot; | 
|  |  | 
|  | public enum EnumButterflyChromosome implements IChromosomeType { | 
|  | /** | 
|  | * Species of the bee. Alleles here must implement {@link IAlleleButterflySpecies}. | 
|  | */ | 
|  | SPECIES(IAlleleButterflySpecies.class), | 
|  | /** | 
|  | * Physical size. | 
|  | */ | 
|  | SIZE(IAlleleFloat.class), | 
|  | /** | 
|  | * Flight speed. | 
|  | */ | 
|  | SPEED(IAlleleFloat.class), | 
|  | /** | 
|  | * How long the butterfly can last without access to matching pollinatables. | 
|  | */ | 
|  | LIFESPAN(IAlleleInteger.class), | 
|  | /** | 
|  | * Species with a higher metabolism have a higher appetite and may cause more damage to their environment. | 
|  | */ | 
|  | METABOLISM(IAlleleInteger.class), | 
|  | /** | 
|  | * Determines likelyhood of caterpillars and length of caterpillar/pupation phase. Also: Number of max caterpillars after mating? | 
|  | */ | 
|  | FERTILITY(IAlleleInteger.class), | 
|  | /** | 
|  | * Not sure yet. | 
|  | */ | 
|  | TEMPERATURE_TOLERANCE(IAlleleTolerance.class), | 
|  | /** | 
|  | * Not sure yet. | 
|  | */ | 
|  | HUMIDITY_TOLERANCE(IAlleleTolerance.class), | 
|  | /** | 
|  | * Only nocturnal butterflys/moths will fly at night. Allows daylight activity for naturally nocturnal species. | 
|  | */ | 
|  | NOCTURNAL(IAlleleBoolean.class), | 
|  | /** | 
|  | * Only tolerant flyers will fly in the rain. | 
|  | */ | 
|  | TOLERANT_FLYER(IAlleleBoolean.class), | 
|  | /** | 
|  | * Fire resistance. | 
|  | */ | 
|  | FIRE_RESIST(IAlleleBoolean.class), | 
|  | /** | 
|  | * Required flowers/leaves. | 
|  | */ | 
|  | FLOWER_PROVIDER(IAlleleFlowers.class), | 
|  | /** | 
|  | * Extra effect to surroundings. (?) | 
|  | */ | 
|  | EFFECT(IAlleleButterflyEffect.class), | 
|  | /** | 
|  | * Not used yet | 
|  | */ | 
|  | TERRITORY(IAlleleArea.class), | 
|  | ; | 
|  |  | 
|  | Class<? extends IAllele> clss; | 
|  |  | 
|  | EnumButterflyChromosome(Class<? extends IAllele> clss) { | 
|  | this.clss = clss; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public Class<? extends IAllele> getAlleleClass() { | 
|  | return clss; | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public String getName() { | 
|  | return this.toString().toLowerCase(); | 
|  | } | 
|  |  | 
|  | @Override | 
|  | public ISpeciesRoot getSpeciesRoot() { | 
|  | return AlleleManager.alleleRegistry.getSpeciesRoot("rootButterflies"); | 
|  | } | 
|  | } |