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,