diff --git a/magicbees_res/build.xml b/magicbees_res/build.xml index 748c80c..2b23de4 100644 --- a/magicbees_res/build.xml +++ b/magicbees_res/build.xml @@ -16,7 +16,7 @@ - + diff --git a/magicbees_res/changelog.txt b/magicbees_res/changelog.txt index 1e0a86f..d11cade 100644 --- a/magicbees_res/changelog.txt +++ b/magicbees_res/changelog.txt @@ -1,3 +1,9 @@ +2.1.0 +Added new permanent methods for crafting all frames. These will be available even when Thaumcraft is installed. +Removed temporary frame recipes which used to be available when Thaumcraft was not installed. +Lowered the cost of creating several frames through Thaumcraft. These should still be a viable option with the new recipes. +Fixed issue with foundation-requiring mutations in Forestry Alvearies. (Will likely not work with Extra Bees Alveary blocks) + 2.0.5 Fixed hard-coded value in a subroutine that should not have been hard-coded. diff --git a/magicbees_res/mods/magicbees/lang/en_US.xml b/magicbees_res/mods/magicbees/lang/en_US.xml index 3588532..df42f7e 100644 --- a/magicbees_res/mods/magicbees/lang/en_US.xml +++ b/magicbees_res/mods/magicbees/lang/en_US.xml @@ -85,6 +85,9 @@ Draconic Chunk Essence of False Life Essence of a Shallow Grave + Essence of Lost Time + Essence of Everlasting Durability + Essence of Unending Disregard Bees and Magic Crystalized %s Aspect diff --git a/magicbees_res/mods/magicbees/textures/items/essenceEverlastingDurability.png b/magicbees_res/mods/magicbees/textures/items/essenceEverlastingDurability.png new file mode 100644 index 0000000..87bcc61 Binary files /dev/null and b/magicbees_res/mods/magicbees/textures/items/essenceEverlastingDurability.png differ diff --git a/magicbees_res/mods/magicbees/textures/items/essenceLostTime.png b/magicbees_res/mods/magicbees/textures/items/essenceLostTime.png new file mode 100644 index 0000000..1051074 Binary files /dev/null and b/magicbees_res/mods/magicbees/textures/items/essenceLostTime.png differ diff --git a/magicbees_res/mods/magicbees/textures/items/essenceUnendingDisregard.png b/magicbees_res/mods/magicbees/textures/items/essenceUnendingDisregard.png new file mode 100644 index 0000000..a6b1cc6 Binary files /dev/null and b/magicbees_res/mods/magicbees/textures/items/essenceUnendingDisregard.png differ diff --git a/magicbees_src/magicbees/bees/BeeMutation.java b/magicbees_src/magicbees/bees/BeeMutation.java index 4b23892..8a214c2 100644 --- a/magicbees_src/magicbees/bees/BeeMutation.java +++ b/magicbees_src/magicbees/bees/BeeMutation.java @@ -126,7 +126,7 @@ public class BeeMutation implements IBeeMutation new BeeMutation(Allele.getBaseSpecies("Industrious"), Allele.getBaseSpecies("Forest"), BeeSpecies.TIN, 12) .setBlockRequired("blockTin"); } - new BeeMutation(Allele.getBaseSpecies("Common"), Allele.getBaseSpecies("Industrious"), BeeSpecies.IRON, 10) + new BeeMutation(Allele.getBaseSpecies("Common"), Allele.getBaseSpecies("Industrious"), BeeSpecies.IRON, 100) .setBlockRequired(Block.blockIron); if (BeeSpecies.LEAD.isActive()) { @@ -338,7 +338,7 @@ public class BeeMutation implements IBeeMutation blockBelow = Block.blocksList[blockId]; ++i; } - while (blockBelow != null && (blockBelow instanceof IBeeHousing)); + while (blockBelow != null && (blockBelow instanceof IBeeHousing || blockBelow == Config.fAlvearyBlock)); if (this.requiredBlockOreDictEntry != null) { diff --git a/magicbees_src/magicbees/item/types/ResourceType.java b/magicbees_src/magicbees/item/types/ResourceType.java index fa62a32..bc064f6 100644 --- a/magicbees_src/magicbees/item/types/ResourceType.java +++ b/magicbees_src/magicbees/item/types/ResourceType.java @@ -14,6 +14,9 @@ public enum ResourceType DRAGON_CHUNK("dragonChunk", true), ESSENCE_FALSE_LIFE("essenceFalseLife", true), ESSENCE_SHALLOW_GRAVE("essenceShallowGrave", true), + ESSENCE_LOST_TIME("essenceLostTime", true), + ESSENCE_EVERLASTING_DURABILITY("essenceEverlastingDurability", true), + ESSENCE_UNENDING_DISREGARD("essenceUnendingDisregard", true), // Dummy items for Thaumanomicon research icons. // These won't ever actually exist in-game, and so diff --git a/magicbees_src/magicbees/main/Config.java b/magicbees_src/magicbees/main/Config.java index f9086c6..0da7f3c 100644 --- a/magicbees_src/magicbees/main/Config.java +++ b/magicbees_src/magicbees/main/Config.java @@ -111,6 +111,7 @@ public class Config public static BackpackDefinition thaumaturgeBackpackDef; //----- Forestry Blocks ------------------------------------ + public static Block fAlvearyBlock; //----- Forestry Items ------------------------------------- public static Item fBeeComb; public static Item fHoneydew; diff --git a/magicbees_src/magicbees/main/utils/CraftingManager.java b/magicbees_src/magicbees/main/utils/CraftingManager.java index c1e1652..b4d7dd7 100644 --- a/magicbees_src/magicbees/main/utils/CraftingManager.java +++ b/magicbees_src/magicbees/main/utils/CraftingManager.java @@ -166,6 +166,19 @@ public class CraftingManager 'e', Config.miscResources.getStackForType(ResourceType.ESSENCE_FALSE_LIFE) }); + GameRegistry.addRecipe(new ShapedOreRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY), new Object[] { + "gwg", "wiw", "gwg", + 'g', Block.glass, + 'w', "waxMagical", + 'i', Item.ingotIron + })); + GameRegistry.addRecipe(new ShapedOreRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY), new Object[] { + "wgw", "gig", "wgw", + 'g', Block.glass, + 'w', "waxMagical", + 'i', Item.ingotIron + })); + GameRegistry.addRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_FALSE_LIFE), new Object[] { "gwg", "wfw", "gwg", 'g', Block.glass, @@ -179,6 +192,53 @@ public class CraftingManager 'f', Block.plantRed }); + GameRegistry.addRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE), new Object[] { + "gwg", "wfw", "gwg", + 'g', Block.glass, + 'w', Config.wax.getStackForType(WaxType.SOUL), + 'f', Item.rottenFlesh + }); + GameRegistry.addRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE), new Object[] { + "wgw", "gfg", "wgw", + 'g', Block.glass, + 'w', Config.wax.getStackForType(WaxType.SOUL), + 'f', Item.rottenFlesh + }); + + GameRegistry.addRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME), new Object[] { + "wgw", "gcg", "wgw", + 'g', Block.glass, + 'w', Config.wax.getStackForType(WaxType.SOUL), + 'c', Item.pocketSundial + }); + GameRegistry.addRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME), new Object[] { + "gwg", "wcw", "gwg", + 'g', Block.glass, + 'w', Config.wax.getStackForType(WaxType.SOUL), + 'c', Item.pocketSundial + }); + + GameRegistry.addRecipe(Config.miscResources.getStackForType(ResourceType.ESSENCE_UNENDING_DISREGARD), new Object[] { + "gst", "sEs", "tsg", + 'g', Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE), + 't', Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME), + 's', new ItemStack(Item.skull, 1, 1), + 'E', Block.dragonEgg, + }); + + GameRegistry.addShapelessRecipe(new ItemStack(Config.hiveFrameMagic, 2), new Object[] { + Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY), + ItemInterface.getItem("frameUntreated"), + ItemInterface.getItem("frameUntreated") + }); + + GameRegistry.addShapelessRecipe(new ItemStack(Config.hiveFrameResilient), new Object[] { + Config.miscResources.getStackForType(ResourceType.ESSENCE_EVERLASTING_DURABILITY), + ItemInterface.getItem("frameImpregnated"), + Item.ingotIron, Item.ingotIron, + Item.ingotIron, Item.ingotIron + }); + GameRegistry.addShapelessRecipe(new ItemStack(Config.hiveFrameGentle), new Object[] { Config.miscResources.getStackForType(ResourceType.ESSENCE_FALSE_LIFE), ItemInterface.getItem("frameUntreated") @@ -189,6 +249,24 @@ public class CraftingManager ItemInterface.getItem("frameImpregnated"), Item.magmaCream }); + + GameRegistry.addShapelessRecipe(new ItemStack(Config.hiveFrameNecrotic), new Object[] { + Config.miscResources.getStackForType(ResourceType.ESSENCE_SHALLOW_GRAVE), + ItemInterface.getItem("frameUntreated"), + Item.rottenFlesh, Item.rottenFlesh, + Item.rottenFlesh, Item.rottenFlesh + }); + + GameRegistry.addShapelessRecipe(new ItemStack(Config.hiveFrameTemporal), new Object[] { + Config.miscResources.getStackForType(ResourceType.ESSENCE_LOST_TIME), + ItemInterface.getItem("frameImpregnated"), + Config.pollen.getStackForType(PollenType.PHASED) + }); + + GameRegistry.addShapelessRecipe(new ItemStack(Config.hiveFrameOblivion), new Object[] { + Config.miscResources.getStackForType(ResourceType.ESSENCE_UNENDING_DISREGARD), + ItemInterface.getItem("frameProven") + }); if (OreDictionary.getOres("ingotCopper").size() <= 0) { @@ -519,38 +597,6 @@ public class CraftingManager 'f', input }); - output = new ItemStack(Config.hiveFrameResilient); - GameRegistry.addRecipe(output, new Object[] { - "wiw", "ifi", "wiw", - 'f', Config.hiveFrameMagic, - 'i', Item.ingotIron, - 'w', Config.wax.getStackForType(WaxType.MAGIC) - }); - - output = new ItemStack(Config.hiveFrameNecrotic); - GameRegistry.addRecipe(output, new Object[] { - "wSw", "SFS", "wSw", - 'S', Item.rottenFlesh, - 'F', input, - 'w', Config.wax.getStackForType(WaxType.MAGIC) - }); - - output = new ItemStack(Config.hiveFrameTemporal); - GameRegistry.addRecipe(output, new Object[] { - "wSt", "wFw", "tSw", - 't', Item.stick, - 'S', Block.sand, - 'F', Config.hiveFrameMagic, - 'w', Config.wax.getStackForType(WaxType.MAGIC) - }); - GameRegistry.addRecipe(output, new Object[] { - "tSw", "wFw", "wSt", - 't', Item.stick, - 'S', Block.sand, - 'F', Config.hiveFrameMagic, - 'w', Config.wax.getStackForType(WaxType.MAGIC) - }); - output = Config.voidCapsule.getCapsuleForLiquid(LiquidType.EMPTY); output.stackSize = 4; GameRegistry.addRecipe(output, new Object[] { diff --git a/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java b/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java index bf9bb10..a152416 100644 --- a/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ForestryHelper.java @@ -2,9 +2,9 @@ package magicbees.main.utils.compat; import java.lang.reflect.Method; -import cpw.mods.fml.common.FMLLog; import magicbees.main.Config; -import net.minecraft.item.Item; +import net.minecraft.block.Block; +import cpw.mods.fml.common.FMLLog; import forestry.api.core.EnumHumidity; import forestry.api.core.EnumTemperature; import forestry.api.core.ItemInterface; @@ -99,7 +99,15 @@ public class ForestryHelper public static void getBlocks() { - + try + { + Class c = Class.forName("forestry.core.config.ForestryBlock"); + Config.fAlvearyBlock = (Block)(c.getField("alveary").get(null)); + } + catch (Exception e) + { + + } } public static void getItems() diff --git a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java index 0d822b3..d833445 100644 --- a/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java +++ b/magicbees_src/magicbees/main/utils/compat/ThaumcraftHelper.java @@ -630,7 +630,7 @@ public class ThaumcraftHelper input = new ItemStack(Item.stick); } - ThaumcraftApi.addArcaneCraftingRecipe("THAUMIUMSCOOP", "THAUMIUMSCOOP", 45, new ItemStack(Config.thaumiumScoop), new Object[] { + ThaumcraftApi.addArcaneCraftingRecipe("THAUMIUMSCOOP", "THAUMIUMSCOOP", 20, new ItemStack(Config.thaumiumScoop), new Object[] { "sWs", "sTs", " T ", 's', input, 'W', Block.cloth, @@ -653,47 +653,45 @@ public class ThaumcraftHelper output = new ItemStack(Config.hiveFrameMagic); input = ItemInterface.getItem("frameUntreated"); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8); - ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAME", "FRAMEMAGIC", 50, tags, output, new Object[] { + tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.MAGIC, 2); + ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAME", "FRAMEMAGIC", 20, tags, output, new Object[] { input }); output = new ItemStack(Config.hiveFrameResilient); - tags = new ObjectTags().add(EnumTag.WOOD, 12).add(EnumTag.INSECT, 8).add(EnumTag.EXCHANGE, 12); - ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAME2", "FRAMERESILIENT", 50, tags, output, new Object[] { - " i ", "ifi", " i ", + tags = new ObjectTags().add(EnumTag.WOOD, 12).add(EnumTag.MAGIC, 2).add(EnumTag.EXCHANGE, 8); + ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAME2", "FRAMERESILIENT", 35, tags, output, new Object[] { + "ifi", 'f', Config.hiveFrameMagic, 'i', Item.ingotIron }); output = new ItemStack(Config.hiveFrameGentle); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.HEAL, 12); - ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMEGENTLE", "FRAMEGENTLE", 50, tags, output, new Object[] { - "www", "wFw", "www", + tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.MAGIC, 2).add(EnumTag.LIFE, 8); + ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMEGENTLE", "FRAMEGENTLE", 35, tags, output, new Object[] { + " w ", "wFw", " w ", 'F', input, 'w', ItemInterface.getItem("beeswax") }); output = new ItemStack(Config.hiveFrameMetabolic); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.LIFE, 8).add(EnumTag.MOTION, 8) - .add(EnumTag.EXCHANGE, 8); + tags = new ObjectTags().add(EnumTag.WOOD, 6).add(EnumTag.MAGIC, 2).add(EnumTag.LIFE, 4).add(EnumTag.EXCHANGE, 8); ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAMEMETA", "FRAMEMETABOLIC", 50, tags, output, new Object[] { Item.magmaCream, input }); output = new ItemStack(Config.hiveFrameNecrotic); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.EXCHANGE, 12).add(EnumTag.DEATH, 16) - .add(EnumTag.POISON, 1); - ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMENECRO", "FRAMENECROTIC", 50, tags, output, new Object[] { - " S ", "SxS", " S ", + tags = new ObjectTags().add(EnumTag.WOOD, 6).add(EnumTag.MAGIC, 2).add(EnumTag.EXCHANGE, 12).add(EnumTag.DEATH, 8); + ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMENECRO", "FRAMENECROTIC", 35, tags, output, new Object[] { + "SxS", 'S', Item.rottenFlesh, 'x', input }); output = new ItemStack(Config.hiveFrameTemporal); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.TIME, 2); + tags = new ObjectTags().add(EnumTag.WOOD, 6).add(EnumTag.MAGIC, 2).add(EnumTag.TIME, 1); ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMETIME", "FRAMETIME", 50, tags, output, new Object[] { "tSt", "SFS", "tSt", 't', Item.stick, @@ -703,7 +701,7 @@ public class ThaumcraftHelper output = Config.voidCapsule.getCapsuleForLiquid(LiquidType.EMPTY); output.stackSize = 4; - tags = new ObjectTags().add(EnumTag.VOID, 16).add(EnumTag.ELDRITCH, 4).add(EnumTag.EXCHANGE, 8); + tags = new ObjectTags().add(EnumTag.VOID, 16).add(EnumTag.ELDRITCH, 2).add(EnumTag.EXCHANGE, 8); ThaumcraftApi.addInfusionCraftingRecipe("VOIDCAPSULE", "VOIDCAPSULE", 10, tags, output, new Object[] { " G ", "GPG", "TGT", 'G', Block.thinGlass,