BloodMagic/BM_src/forestry/api/lepidopterology/EnumButterflyChromosome.java
2014-01-25 20:36:28 -05:00

94 lines
2.3 KiB
Java

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