| 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"); |
| } |
| } |