From f5a6ca61ba7e46071fcef313a2701c7653e932d6 Mon Sep 17 00:00:00 2001 From: Arkandos Date: Sat, 2 Aug 2014 18:55:38 +0200 Subject: [PATCH] Started work on Bloodmagic Bees Implemented BloodMagicHelper to interface with bloodmagic --- build.gradle | 1 + .../magicbees/bees/BeeClassification.java | 2 + .../java/magicbees/bees/BeeGenomeManager.java | 37 ++++++++++- src/main/java/magicbees/bees/BeeMutation.java | 5 +- src/main/java/magicbees/bees/BeeSpecies.java | 53 ++++++++++++++- src/main/java/magicbees/main/MagicBees.java | 3 + .../main/utils/compat/BloodMagicHelper.java | 65 +++++++++++++++++++ .../main/utils/compat/ForestryHelper.java | 3 +- .../assets/magicbees/lang/en_US.lang | 4 ++ 9 files changed, 168 insertions(+), 5 deletions(-) create mode 100644 src/main/java/magicbees/main/utils/compat/BloodMagicHelper.java diff --git a/build.gradle b/build.gradle index f898824..a2e8a0a 100644 --- a/build.gradle +++ b/build.gradle @@ -30,6 +30,7 @@ dependencies { compile files("/libs/Thaumcraft-1.7.2-4.1.1.14.jar") compile files("/libs/forestry_1.7.10-2.4.2.31-dev.jar") + compile files("/libs/Blood Magic-v1.1.0(1.7.10).jar") } processResources diff --git a/src/main/java/magicbees/bees/BeeClassification.java b/src/main/java/magicbees/bees/BeeClassification.java index 758e7e2..55e64be 100644 --- a/src/main/java/magicbees/bees/BeeClassification.java +++ b/src/main/java/magicbees/bees/BeeClassification.java @@ -38,6 +38,8 @@ public enum BeeClassification implements IClassification THERMAL ("Thermal", "Thermametallic"), ADORABLE ("Adorable", "Amabilis"), + + BLOODY ("Bloody", "Sanguis") ; private String uID; diff --git a/src/main/java/magicbees/bees/BeeGenomeManager.java b/src/main/java/magicbees/bees/BeeGenomeManager.java index f78397e..7f96346 100644 --- a/src/main/java/magicbees/bees/BeeGenomeManager.java +++ b/src/main/java/magicbees/bees/BeeGenomeManager.java @@ -4,6 +4,7 @@ package magicbees.bees; import cpw.mods.fml.common.registry.GameRegistry; import forestry.api.apiculture.EnumBeeChromosome; import forestry.api.apiculture.EnumBeeType; +import forestry.apiculture.genetics.Bee; import magicbees.main.utils.ItemInterface; import forestry.api.genetics.IAllele; import magicbees.main.utils.compat.ExtraBeesHelper; @@ -1370,7 +1371,41 @@ public class BeeGenomeManager return genome; } - + + private static IAllele[] getTemplateBMBase() + { + IAllele[] genome = getTemplateModBase(); + + genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2"); + genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2"); + genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue"); + genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast"); + genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityHigh"); + genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLonger"); + genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.getBaseAllele("flowersVanilla"); + + + return genome; + } + + public static IAllele[] getTemplateBMBloody() + { + IAllele[] genome = getTemplateBMBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.BM_BLOODY; + + return genome; + } + + public static IAllele[] getTemplateBMBound() + { + IAllele[] genome = getTemplateBMBase(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.BM_BOUND; + + return genome; + } + /*--------------------- Other Stuff ---------------------------------- */ public static ItemStack getBeeNBTForSpecies(BeeSpecies species, EnumBeeType beeType) diff --git a/src/main/java/magicbees/bees/BeeMutation.java b/src/main/java/magicbees/bees/BeeMutation.java index 6f62b0a..9935fac 100644 --- a/src/main/java/magicbees/bees/BeeMutation.java +++ b/src/main/java/magicbees/bees/BeeMutation.java @@ -5,6 +5,7 @@ import java.util.Collection; import magicbees.main.Config; import magicbees.main.utils.LocalizationManager; +import magicbees.main.utils.LogHelper; import magicbees.main.utils.MoonPhase; import magicbees.main.utils.compat.ArsMagicaHelper; import magicbees.main.utils.compat.EquivalentExchangeHelper; @@ -51,11 +52,11 @@ public class BeeMutation implements IBeeMutation { for (String str : binnieMundane) { - FMLLog.info("Registering %s", str); + LogHelper.info("Registering %s" + str); try { new BeeMutation(species, Allele.getExtraSpecies(str), ForestryHelper.getTemplateForestryForSpecies("Common"), 15); } catch (Exception e) { - FMLLog.info("Unable to register! This mutation will not be available."); + LogHelper.info("Unable to register! This mutation will not be available."); } } } diff --git a/src/main/java/magicbees/bees/BeeSpecies.java b/src/main/java/magicbees/bees/BeeSpecies.java index e2e1a02..da3291e 100644 --- a/src/main/java/magicbees/bees/BeeSpecies.java +++ b/src/main/java/magicbees/bees/BeeSpecies.java @@ -1,5 +1,6 @@ package magicbees.bees; +import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; import com.mojang.authlib.GameProfile; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @@ -12,6 +13,7 @@ import magicbees.item.types.*; import magicbees.main.CommonProxy; import magicbees.main.Config; import magicbees.main.utils.LocalizationManager; +import magicbees.main.utils.LogHelper; import magicbees.main.utils.compat.*; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.init.Blocks; @@ -960,6 +962,27 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider return new ItemStack[0]; } }, + + //----------------------Bloodmagic Bees--------------------------------- + BM_BLOODY("BMBloody", "sanguis", + BeeClassification.BLOODY, 0xb7102f, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false ) + { + @Override + public ItemStack[] getResearchBounty(World world, GameProfile gameProfile, IIndividual iIndividual, int i) + { + return new ItemStack[0]; + } + }, + + BM_BOUND("BMBound", "obligatus", + BeeClassification.BLOODY, 0xb7102f, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, false ) + { + @Override + public ItemStack[] getResearchBounty(World world, GameProfile gameProfile, IIndividual iIndividual, int i) + { + return new ItemStack[0]; + } + }, ; @@ -1082,7 +1105,17 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider { RSA_FLUXED.setInactive(); } - + + // Bloodmagic Bees + + if (BloodMagicHelper.isActive()) + { + + } + else + { + BM_BLOODY.setInactive(); + } AlleleManager.alleleRegistry.registerDeprecatedAlleleReplacement("thaumicbees.speciesBlitz", AM_LIGHTNING); @@ -1615,6 +1648,24 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider TE_GELID.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.FROZEN.ordinal()), 10) .setGenome(BeeGenomeManager.getTemplateTEGelid()) .register(); + + BM_BLOODY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) + .setGenome(BeeGenomeManager.getTemplateBMBloody()) + .register(); + + BM_BOUND.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.HONEY.ordinal()), 10) + .setGenome(BeeGenomeManager.getTemplateBMBound()) + .register(); + + + + if (BloodMagicHelper.isActive()) + { + BloodMagicHelper.addAltarRecipeBee(MYSTICAL, BM_BLOODY, 1, 1000, 100, 100); + + BloodMagicHelper.addBindingRecipeBee(BM_BLOODY, BM_BOUND); + } + } diff --git a/src/main/java/magicbees/main/MagicBees.java b/src/main/java/magicbees/main/MagicBees.java index ce10b58..522cb61 100644 --- a/src/main/java/magicbees/main/MagicBees.java +++ b/src/main/java/magicbees/main/MagicBees.java @@ -50,6 +50,7 @@ public class MagicBees ArsMagicaHelper.preInit(); ThermalExpansionHelper.preInit(); RedstoneArsenalHelper.preInit(); + BloodMagicHelper.preInit(); this.modConfig.setupBlocks(); this.modConfig.setupItems(); @@ -70,6 +71,7 @@ public class MagicBees ArsMagicaHelper.init(); ThermalExpansionHelper.init(); RedstoneArsenalHelper.init(); + BloodMagicHelper.init(); worldHandler = new WorldGeneratorHandler(); GameRegistry.registerWorldGenerator(worldHandler, 0); @@ -87,6 +89,7 @@ public class MagicBees ArsMagicaHelper.postInit(); ThermalExpansionHelper.postInit(); RedstoneArsenalHelper.postInit(); + BloodMagicHelper.postInit(); this.guiHandler = new GUIHandler(); NetworkRegistry.INSTANCE.registerGuiHandler(this, this.guiHandler); diff --git a/src/main/java/magicbees/main/utils/compat/BloodMagicHelper.java b/src/main/java/magicbees/main/utils/compat/BloodMagicHelper.java new file mode 100644 index 0000000..339151c --- /dev/null +++ b/src/main/java/magicbees/main/utils/compat/BloodMagicHelper.java @@ -0,0 +1,65 @@ +package magicbees.main.utils.compat; + +import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipe; +import WayofTime.alchemicalWizardry.api.altarRecipeRegistry.AltarRecipeRegistry; +import WayofTime.alchemicalWizardry.api.bindingRegistry.BindingRegistry; +import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.Optional; +import forestry.api.apiculture.EnumBeeType; +import magicbees.bees.BeeSpecies; +import magicbees.main.utils.LogHelper; +import net.minecraft.item.ItemStack; + +public class BloodMagicHelper { + + private static boolean isBloodMagicActive = false; + public static final String Name = "AWWayofTime"; + + public static boolean isActive() + { + return isBloodMagicActive; + } + + public static void preInit() + { + if (Loader.isModLoaded(Name)) + { + isBloodMagicActive = true; + } + } + + public static void init() + { + if (isActive()) + { + + } + } + + public static void postInit(){} + + public static void addAltarRecipe(ItemStack requiredItem, ItemStack result, int minTier, int liquidRequired, int consumptionRate, int drainRate, boolean canBeFilled) + { + AltarRecipeRegistry.registerAltarRecipe(result, requiredItem, minTier, liquidRequired, consumptionRate, drainRate, canBeFilled); + } + + public static void addAltarRecipeBee(BeeSpecies inputBee, BeeSpecies outputBee, int minTier, int liquidRequired, int consumptionRate, int drainRate) + { + addAltarRecipe(inputBee.getBeeItem(EnumBeeType.DRONE), outputBee.getBeeItem(EnumBeeType.DRONE), minTier, liquidRequired, consumptionRate, drainRate, false); + addAltarRecipe(inputBee.getBeeItem(EnumBeeType.PRINCESS), outputBee.getBeeItem(EnumBeeType.PRINCESS), minTier, liquidRequired, consumptionRate, drainRate, false); + addAltarRecipe(inputBee.getBeeItem(EnumBeeType.QUEEN), outputBee.getBeeItem(EnumBeeType.QUEEN), minTier, liquidRequired, consumptionRate, drainRate, false); + } + + public static void addBindingRecipe(ItemStack input, ItemStack output) + { + BindingRegistry.registerRecipe(output, input); + } + + public static void addBindingRecipeBee(BeeSpecies inputBee, BeeSpecies outputBee) + { + addBindingRecipe(inputBee.getBeeItem(EnumBeeType.DRONE), outputBee.getBeeItem(EnumBeeType.DRONE)); + addBindingRecipe(inputBee.getBeeItem(EnumBeeType.PRINCESS), outputBee.getBeeItem(EnumBeeType.PRINCESS)); + addBindingRecipe(inputBee.getBeeItem(EnumBeeType.QUEEN), outputBee.getBeeItem(EnumBeeType.QUEEN)); + } + +} diff --git a/src/main/java/magicbees/main/utils/compat/ForestryHelper.java b/src/main/java/magicbees/main/utils/compat/ForestryHelper.java index 4147c8b..97f278e 100644 --- a/src/main/java/magicbees/main/utils/compat/ForestryHelper.java +++ b/src/main/java/magicbees/main/utils/compat/ForestryHelper.java @@ -9,6 +9,7 @@ import forestry.api.genetics.IAllele; import magicbees.bees.BeeManager; import magicbees.main.Config; import net.minecraft.block.Block; +import net.minecraftforge.oredict.OreDictionary; public class ForestryHelper { @@ -123,7 +124,7 @@ public class ForestryHelper private static void getItems() { - Config.fBeeComb = ItemInterface.getItem("beeComb"); + Config.fBeeComb = ItemInterface.getItem("beeCombs"); Config.fPollen = ItemInterface.getItem("pollen"); Config.fCraftingResource = ItemInterface.getItem("craftingMaterial"); Config.fHoneyDrop = ItemInterface.getItem("honeyDrop"); diff --git a/src/main/resources/assets/magicbees/lang/en_US.lang b/src/main/resources/assets/magicbees/lang/en_US.lang index 05956bd..0300334 100644 --- a/src/main/resources/assets/magicbees/lang/en_US.lang +++ b/src/main/resources/assets/magicbees/lang/en_US.lang @@ -397,6 +397,10 @@ magicbees.speciesTEEndearing=Endearing magicbees.speciesTEEndearing.description=....|Apinomicon magicbees.speciesRSAFluxed=Fluxed magicbees.speciesRSAFluxed.description=....|Apinomicon +magicbees.speciesBMBloody=Bloody +magicbees.speciesBMBloody.description=....|Apinomicon +magicbees.speciesBMBound=Bound +magicbees.speciesBMBound.description=....|Apinomicon magicbees.species= magicbees.species.description= magicbees.speedBlinding=Blinding