package com.watschman.beeriffic.bees; import com.watschman.beeriffic.Beeriffic; import forestry.api.apiculture.*; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; import forestry.api.genetics.*; public enum EnumSpecies { STONY("Stony", "Saxum", EnumBranches.STONUM, 0xffffff, 0x7a7a7a, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true, false, true, false); private final EnumTemperature temperature; private final EnumHumidity humidity; private final IAlleleBeeSpeciesBuilder beeSpecies; private IAllele[] geneTemplate; EnumSpecies( String speciesName, String scientificName, IClassification beeBranch, int colorOutline, int colorBody, EnumTemperature lovedTemperature, EnumHumidity lovedHumidity, boolean isNocturnal, boolean doesHaveEffect, boolean isDominant, boolean isCounted, boolean isSecret ) { this.temperature = lovedTemperature; this.humidity = lovedHumidity; IBeeFactory beeFactory = BeeManager.beeFactory; this.beeSpecies = beeFactory.createSpecies(Beeriffic.MOD_ID, Beeriffic.MOD_ID + ".species" + speciesName, isDominant, Beeriffic.MOD_AUTHOR, Beeriffic.MOD_ID + ".species." + speciesName.toLowerCase(), Beeriffic.MOD_ID + ".species." + speciesName.toLowerCase() + ".description", beeBranch, scientificName, colorOutline, colorBody); this.beeSpecies.setHumidity(lovedHumidity); this.beeSpecies.setTemperature(lovedTemperature); if(!isCounted) { this.beeSpecies.setIsNotCounted(); } if(isSecret) { this.beeSpecies.setIsSecret(); } if(doesHaveEffect) { this.beeSpecies.setHasEffect(); } if(isNocturnal) { this.beeSpecies.setNocturnal(); } this.beeSpecies.build(); } public IAllele[] getGeneTemplate() { return this.geneTemplate; } public IAlleleBeeSpecies getBeeSpecies() { return (IAlleleBeeSpecies)this.beeSpecies; } public void registerGeneTemplate() { this.geneTemplate = BeeGenes.getGeneTemplate(this); BeeManager.beeRoot.registerTemplate(this.getBeeSpecies().getUID(), this.geneTemplate); } // (>^.^)> Do I even need those down there? <(^.^<) public boolean canWorkInCurrentTemperature(EnumTemperature currentTemperature) { return AlleleManager.climateHelper.isWithinLimits(currentTemperature, this.temperature, ((IAlleleTolerance)this.geneTemplate[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()]).getValue()); } public boolean canWorkInCurrentHumidity(EnumHumidity currentHumidity) { return AlleleManager.climateHelper.isWithinLimits(currentHumidity, this.humidity, ((IAlleleTolerance)this.geneTemplate[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()]).getValue()); } public boolean oanWorkInCurrentEnvironment(EnumTemperature currentTemperature, EnumHumidity currentHumidity) { return AlleleManager.climateHelper.isWithinLimits(currentTemperature, currentHumidity, this.temperature, ((IAlleleTolerance)this.geneTemplate[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()]).getValue(), this.humidity, ((IAlleleTolerance)this.geneTemplate[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()]).getValue()); } }