diff --git a/src/main/java/magicbees/bees/BeeSpecies.java b/src/main/java/magicbees/bees/BeeSpecies.java index b566790..8d00d42 100644 --- a/src/main/java/magicbees/bees/BeeSpecies.java +++ b/src/main/java/magicbees/bees/BeeSpecies.java @@ -6,9 +6,6 @@ import java.util.HashMap; import java.util.Locale; import java.util.Map; -import com.mojang.authlib.GameProfile; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; import magicbees.item.types.CombType; import magicbees.item.types.DropType; import magicbees.item.types.NuggetType; @@ -32,6 +29,11 @@ import net.minecraft.item.ItemStack; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.oredict.OreDictionary; + +import com.mojang.authlib.GameProfile; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; import forestry.api.apiculture.IAlleleBeeSpecies; @@ -42,7 +44,9 @@ import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; import forestry.api.core.IIconProvider; import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.EnumTolerance; import forestry.api.genetics.IAllele; +import forestry.api.genetics.IAlleleTolerance; import forestry.api.genetics.IClassification; import forestry.api.genetics.IIndividual; import forestry.api.genetics.IMutation; @@ -1250,7 +1254,7 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider int highest = 0; excludeSpecies.add(species); - for (IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES.ordinal())) + for (IMutation mutation : getRoot().getPaths(species, EnumBeeChromosome.SPECIES)) { if (!excludeSpecies.contains(mutation.getAllele0())) { @@ -1417,6 +1421,20 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider return value; } + + public boolean canWorkInTemperature(EnumTemperature temp) { + IAlleleTolerance tolerance = (IAlleleTolerance)genomeTemplate[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()]; + return AlleleManager.climateHelper.isWithinLimits(temp, EnumHumidity.NORMAL, + temperature, tolerance.getValue(), + EnumHumidity.NORMAL, EnumTolerance.NONE); + } + + public boolean canWorkInHumidity(EnumHumidity humid) { + IAlleleTolerance tolerance = (IAlleleTolerance)genomeTemplate[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()]; + return AlleleManager.climateHelper.isWithinLimits(EnumTemperature.NORMAL, humid, + EnumTemperature.NORMAL, EnumTolerance.NONE, + humidity, tolerance.getValue()); + } /// --------- Unused Functions --------------------------------------------- diff --git a/src/main/java/magicbees/bees/HiveDescription.java b/src/main/java/magicbees/bees/HiveDescription.java index 2252131..4d6d85c 100644 --- a/src/main/java/magicbees/bees/HiveDescription.java +++ b/src/main/java/magicbees/bees/HiveDescription.java @@ -185,13 +185,13 @@ public enum HiveDescription implements IHiveDescription { @Override public boolean isGoodHumidity(EnumHumidity humidity) { - return true; + return hiveType.getOccupant().canWorkInHumidity(humidity); } @Override public boolean isGoodTemperature(EnumTemperature temperature) { - return true; + return hiveType.getOccupant().canWorkInTemperature(temperature); } @Override diff --git a/src/main/java/magicbees/block/types/HiveType.java b/src/main/java/magicbees/block/types/HiveType.java index 584d2a3..c9eea00 100644 --- a/src/main/java/magicbees/block/types/HiveType.java +++ b/src/main/java/magicbees/block/types/HiveType.java @@ -2,17 +2,6 @@ package magicbees.block.types; import java.util.ArrayList; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.init.Items; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; -import net.minecraft.world.World; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -import forestry.api.apiculture.IHiveDrop; - import magicbees.bees.BeeGenomeManager; import magicbees.bees.BeeSpecies; import magicbees.bees.HiveDrop; @@ -20,20 +9,29 @@ import magicbees.item.types.CombType; import magicbees.main.CommonProxy; import magicbees.main.Config; import magicbees.main.utils.compat.ForestryHelper; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import forestry.api.apiculture.IHiveDrop; public enum HiveType { - CURIOUS("curious", 12, true), - UNUSUAL("unusual", 12, true), - RESONANT("resonant", 12, true), - DEEP("deep", 4, false), - INFERNAL("infernal", 15, false), - OBLIVION("oblivion", 7, false), + CURIOUS("curious", BeeSpecies.MYSTICAL, 12, true), + UNUSUAL("unusual", BeeSpecies.UNUSUAL, 12, true), + RESONANT("resonant", BeeSpecies.SORCEROUS, 12, true), + DEEP("deep", BeeSpecies.ATTUNED, 4, false), + INFERNAL("infernal", BeeSpecies.INFERNAL, 15, false), + OBLIVION("oblivion", BeeSpecies.OBLIVION, 7, false), ; private static String[] nameList; private String name; + private BeeSpecies occupant; public boolean show; private int lightLevel; private ArrayList drops; @@ -85,9 +83,10 @@ public enum HiveType OBLIVION.drops.add(new HiveDrop(ForestryHelper.getTemplateForestryForSpecies("Steadfast"), combs, 9)); } - private HiveType(String hiveName, int light, boolean visible) + private HiveType(String hiveName, BeeSpecies occupant, int light, boolean visible) { this.name = hiveName; + this.occupant = occupant; this.lightLevel = light; this.show = visible; this.drops = new ArrayList(); @@ -173,6 +172,10 @@ public enum HiveType return (nameList == null) ? nameList = generateNames() : nameList; } + public BeeSpecies getOccupant() { + return this.occupant; + } + private static String[] generateNames() { String[] names = new String[values().length]; diff --git a/src/main/java/magicbees/main/utils/compat/ForestryHelper.java b/src/main/java/magicbees/main/utils/compat/ForestryHelper.java index 02023d8..742c17f 100644 --- a/src/main/java/magicbees/main/utils/compat/ForestryHelper.java +++ b/src/main/java/magicbees/main/utils/compat/ForestryHelper.java @@ -9,11 +9,12 @@ import magicbees.main.Config; import magicbees.main.utils.BlockInterface; import magicbees.main.utils.ItemInterface; import magicbees.main.utils.VersionInfo; - import forestry.api.apiculture.hives.HiveManager; import forestry.api.apiculture.hives.IHiveRegistry; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; +import forestry.api.genetics.AlleleManager; +import forestry.api.genetics.EnumTolerance; import forestry.api.genetics.IAllele; public class ForestryHelper @@ -174,4 +175,9 @@ public class ForestryHelper { return EnumHumidity.getFromValue(rawHumidity); } + + public static boolean isHumidityWithinTolerance(EnumHumidity humid, EnumHumidity beeHumidityBase, EnumTolerance value) { + // TODO Auto-generated method stub + return false; + } }