From 5eb787352bda4d625d72aa85a7bc94f648cc0c27 Mon Sep 17 00:00:00 2001 From: MysteriousAges Date: Mon, 18 Feb 2013 12:13:31 -0800 Subject: [PATCH] Planks & Refactoring. --- thaumicbees_res/build.number | 4 +- thaumicbees_res/build.xml | 2 +- .../gfx/thaumicbees/items/items.png | Bin 7094 -> 65907 bytes thaumicbees_res/lang/thaumicbees/en_US.xml | 5 ++ thaumicbees_src/thaumicbees/bees/Allele.java | 2 +- .../bees/AlleleEffectSpawnWisp.java | 2 +- .../thaumicbees/bees/BeeSpecies.java | 11 +-- .../thaumicbees/block/BlockPlanks.java | 49 ++++++++++++++ .../thaumicbees/block/BlockWoodSlab.java | 63 ++++++++++++++++++ .../thaumicbees/item/types/PlankType.java | 45 +++++++++++++ .../thaumicbees/item/types/PollenType.java | 3 +- thaumicbees_src/thaumicbees/main/Config.java | 39 +++++++++-- .../thaumicbees/main/ThaumicBees.java | 2 +- .../utils}/CompatabilityManager.java | 18 ++++- .../main/utils/CraftingManager.java | 56 +++++++++++----- .../{ => utils}/compat/ForestryHelper.java | 2 +- .../ShapelessBeeInfusionCraftingRecipe.java | 2 +- .../{ => utils}/compat/ThaumcraftHelper.java | 2 +- 18 files changed, 272 insertions(+), 35 deletions(-) create mode 100644 thaumicbees_src/thaumicbees/block/BlockPlanks.java create mode 100644 thaumicbees_src/thaumicbees/block/BlockWoodSlab.java create mode 100644 thaumicbees_src/thaumicbees/item/types/PlankType.java rename thaumicbees_src/thaumicbees/{compat => main/utils}/CompatabilityManager.java (96%) rename thaumicbees_src/thaumicbees/{ => utils}/compat/ForestryHelper.java (97%) rename thaumicbees_src/thaumicbees/{ => utils}/compat/ShapelessBeeInfusionCraftingRecipe.java (99%) rename thaumicbees_src/thaumicbees/{ => utils}/compat/ThaumcraftHelper.java (98%) diff --git a/thaumicbees_res/build.number b/thaumicbees_res/build.number index 01d41b0..b9f6702 100644 --- a/thaumicbees_res/build.number +++ b/thaumicbees_res/build.number @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Fri Feb 15 12:43:48 PST 2013 -build.number=119 +#Sat Feb 16 15:49:23 PST 2013 +build.number=124 diff --git a/thaumicbees_res/build.xml b/thaumicbees_res/build.xml index 1e85d8e..e2860a1 100644 --- a/thaumicbees_res/build.xml +++ b/thaumicbees_res/build.xml @@ -17,7 +17,7 @@ - + diff --git a/thaumicbees_res/gfx/thaumicbees/items/items.png b/thaumicbees_res/gfx/thaumicbees/items/items.png index c46d974af621d9c90c3b49f4e569c417cc636049..9dda5305dbd7faf3572de0a4c30b037530e362ae 100644 GIT binary patch literal 65907 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 Z{{tyS^Xf8%<{bb4002ovPDHLkV1gRZKf?e3 literal 7094 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 zQbLHandful of Jelly Babies + Greatwood Planks + Greatwood Slab + Silverwood Planks + Silverwood Slab Occult Comb @@ -28,6 +32,7 @@ Unusual Pollen + Phased Pollen Dull Propolis diff --git a/thaumicbees_src/thaumicbees/bees/Allele.java b/thaumicbees_src/thaumicbees/bees/Allele.java index 6aef12f..c185b9c 100644 --- a/thaumicbees_src/thaumicbees/bees/Allele.java +++ b/thaumicbees_src/thaumicbees/bees/Allele.java @@ -1,7 +1,7 @@ package thaumicbees.bees; import net.minecraft.potion.Potion; -import thaumicbees.compat.ThaumcraftHelper; +import thaumicbees.utils.compat.ThaumcraftHelper; import forestry.api.apiculture.IAlleleBeeSpecies; import forestry.api.genetics.AlleleManager; import forestry.api.genetics.IAllele; diff --git a/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java b/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java index 7e82831..e61e087 100644 --- a/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java +++ b/thaumicbees_src/thaumicbees/bees/AlleleEffectSpawnWisp.java @@ -3,8 +3,8 @@ package thaumicbees.bees; import java.lang.reflect.Field; import cpw.mods.fml.common.FMLLog; -import thaumicbees.compat.ThaumcraftHelper; import thaumicbees.item.ItemArmorApiarist; +import thaumicbees.utils.compat.ThaumcraftHelper; import forestry.api.apiculture.IBeeGenome; import forestry.api.apiculture.IBeeHousing; import net.minecraft.entity.EntityList; diff --git a/thaumicbees_src/thaumicbees/bees/BeeSpecies.java b/thaumicbees_src/thaumicbees/bees/BeeSpecies.java index 162a2cd..44cb5a7 100644 --- a/thaumicbees_src/thaumicbees/bees/BeeSpecies.java +++ b/thaumicbees_src/thaumicbees/bees/BeeSpecies.java @@ -11,14 +11,14 @@ import java.util.HashMap; import cpw.mods.fml.common.registry.LanguageRegistry; -import thaumicbees.compat.ForestryHelper; -import thaumicbees.compat.ThaumcraftHelper; import thaumicbees.item.types.CombType; import thaumicbees.item.types.DropType; import thaumicbees.item.types.PollenType; import thaumicbees.item.types.ResourceType; import thaumicbees.main.Config; import thaumicbees.main.utils.LocalizationManager; +import thaumicbees.utils.compat.ForestryHelper; +import thaumicbees.utils.compat.ThaumcraftHelper; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -183,15 +183,18 @@ public enum BeeSpecies implements IAlleleBeeSpecies .setGenome(BeeGenomeManager.getTemplateGhastly()) .register(); TIMELY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.DRIPPING.ordinal()), 25) + .addProduct(Config.pollen.getStackForType(PollenType.PHASED), 10) .setGenome(BeeGenomeManager.getTemplateTimely()) .register(); LORDLY.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.MYSTERIOUS.ordinal()), 5) .addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.DRIPPING.ordinal()), 25) + .addProduct(Config.pollen.getStackForType(PollenType.PHASED), 15) .setGenome(BeeGenomeManager.getTemplateLordly()) .register(); DOCTORAL.addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.MYSTERIOUS.ordinal()), 10) - .addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.DRIPPING.ordinal()), 30) - .addSpecialty(new ItemStack(Config.jellyBaby), 4) + .addProduct(new ItemStack(Config.fBeeComb, 1, ForestryHelper.Comb.DRIPPING.ordinal()), 25) + .addProduct(Config.pollen.getStackForType(PollenType.PHASED), 19) + .addSpecialty(new ItemStack(Config.jellyBaby), 7) .setGenome(BeeGenomeManager.getTemplateDoctoral()) .register(); } diff --git a/thaumicbees_src/thaumicbees/block/BlockPlanks.java b/thaumicbees_src/thaumicbees/block/BlockPlanks.java new file mode 100644 index 0000000..11371f6 --- /dev/null +++ b/thaumicbees_src/thaumicbees/block/BlockPlanks.java @@ -0,0 +1,49 @@ +package thaumicbees.block; + +import java.util.List; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import thaumicbees.item.types.PlankType; +import thaumicbees.main.CommonProxy; +import net.minecraft.block.Block; +import net.minecraft.block.BlockWood; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; + +public class BlockPlanks extends Block +{ + public BlockPlanks(int id) + { + super(id, Material.wood); + this.setHardness(2.5f); + this.setResistance(6.0f); + this.setBlockName("tb.planks"); + this.setCreativeTab(CreativeTabs.tabBlock); + this.setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE); + Block.setBurnProperties(id, 5, 20); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int meta) + { + return PlankType.getType(meta).textureIdx; + } + + @Override + public int damageDropped(int meta) + { + return meta; + } + + @SideOnly(Side.CLIENT) + @Override + public void getSubBlocks(int id, CreativeTabs tab, List itemsList) + { + for (PlankType type : PlankType.values()) + { + itemsList.add(new ItemStack(this, 1, type.ordinal())); + } + } +} diff --git a/thaumicbees_src/thaumicbees/block/BlockWoodSlab.java b/thaumicbees_src/thaumicbees/block/BlockWoodSlab.java new file mode 100644 index 0000000..d730bd8 --- /dev/null +++ b/thaumicbees_src/thaumicbees/block/BlockWoodSlab.java @@ -0,0 +1,63 @@ +package thaumicbees.block; + +import java.util.List; +import java.util.Random; + +import thaumicbees.item.types.PlankType; +import thaumicbees.main.CommonProxy; +import thaumicbees.main.Config; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.block.BlockHalfSlab; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.ItemStack; + +public class BlockWoodSlab extends BlockHalfSlab +{ + + public BlockWoodSlab(int id, boolean doubleSlab) + { + super(id, doubleSlab, Material.wood); + this.setHardness(2.5f); + this.setResistance(6.0f); + this.setBlockName("tb.slab.wood"); + this.setCreativeTab(CreativeTabs.tabBlock); + this.setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE); + this.setLightOpacity(doubleSlab ? 255 : 0); + Block.setBurnProperties(id, 5, 20); + } + + @Override + public int getBlockTextureFromSideAndMetadata(int side, int meta) + { + return PlankType.getType(meta & 7).textureIdx; + } + + public int idDropped(int id, Random rand, int par3) + { + return Config.slabWoodHalf.blockID; + } + + protected ItemStack createStackedBlock(int meta) + { + return new ItemStack(Config.slabWoodHalf.blockID, 2, meta & 7); + } + + @Override + public String getFullSlabName(int meta) + { + return this.getBlockName() + "." + PlankType.getType(meta).name; + } + + @SideOnly(Side.CLIENT) + @Override + public void getSubBlocks(int id, CreativeTabs tab, List itemsList) + { + for (PlankType type : PlankType.values()) + { + itemsList.add(new ItemStack(this, 1, type.ordinal())); + } + } +} diff --git a/thaumicbees_src/thaumicbees/item/types/PlankType.java b/thaumicbees_src/thaumicbees/item/types/PlankType.java new file mode 100644 index 0000000..3a99904 --- /dev/null +++ b/thaumicbees_src/thaumicbees/item/types/PlankType.java @@ -0,0 +1,45 @@ +package thaumicbees.item.types; + +public enum PlankType +{ + GREATWOOD("greatwood", 48), + SILVERWOOD("silverwood", 49), + ; + + public String name; + public int textureIdx; + private static String[] nameList; + + private PlankType(String n, int idx) + { + this.name = n; + this.textureIdx = idx; + } + + public static PlankType getType(int meta) + { + PlankType type = null; + + if (meta >= 0 && meta <= values().length) + { + type = values()[meta]; + } + + return type; + } + + public static String[] getAllNames() + { + return (nameList == null) ? nameList = generateNames() : nameList; + } + + private static String[] generateNames() + { + String[] names = new String[values().length]; + for (int i = 0; i < names.length; ++i) + { + names[i] = values()[i].name; + } + return names; + } +} diff --git a/thaumicbees_src/thaumicbees/item/types/PollenType.java b/thaumicbees_src/thaumicbees/item/types/PollenType.java index 3873bdb..453b8a4 100644 --- a/thaumicbees_src/thaumicbees/item/types/PollenType.java +++ b/thaumicbees_src/thaumicbees/item/types/PollenType.java @@ -5,7 +5,8 @@ import cpw.mods.fml.common.registry.LanguageRegistry; public enum PollenType { - UNUSUAL("unusual", 0xA03059, 0xD8417B), + UNUSUAL("unusual", 0xA03059, 0xD8417B), + PHASED("phased", 0x456BA5, 0x4974B4), ; private PollenType(String pName, int colourA, int colourB) diff --git a/thaumicbees_src/thaumicbees/main/Config.java b/thaumicbees_src/thaumicbees/main/Config.java index ac7bc5d..8b9f048 100644 --- a/thaumicbees_src/thaumicbees/main/Config.java +++ b/thaumicbees_src/thaumicbees/main/Config.java @@ -3,9 +3,8 @@ package thaumicbees.main; import java.io.File; import thaumicbees.block.BlockMagicApiary; -import thaumicbees.compat.CompatabilityManager; -import thaumicbees.compat.ForestryHelper; -import thaumicbees.compat.ThaumcraftHelper; +import thaumicbees.block.BlockPlanks; +import thaumicbees.block.BlockWoodSlab; import thaumicbees.item.ItemCapsule; import thaumicbees.item.ItemComb; import thaumicbees.item.ItemDrop; @@ -17,8 +16,12 @@ import thaumicbees.item.ItemSolidFlux; import thaumicbees.item.ItemWax; import thaumicbees.item.types.CapsuleType; import thaumicbees.item.types.HiveFrameType; +import thaumicbees.item.types.PlankType; +import thaumicbees.main.utils.CompatabilityManager; import thaumicbees.main.utils.LocalizationManager; import thaumicbees.storage.BackpackDefinition; +import thaumicbees.utils.compat.ForestryHelper; +import thaumicbees.utils.compat.ThaumcraftHelper; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.registry.GameRegistry; @@ -26,8 +29,11 @@ import cpw.mods.fml.common.registry.LanguageRegistry; import forestry.api.storage.BackpackManager; import forestry.api.storage.EnumBackpackType; import net.minecraft.block.Block; +import net.minecraft.block.BlockLog; import net.minecraft.item.Item; import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemMultiTextureTile; +import net.minecraft.item.ItemSlab; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraftforge.common.Configuration; @@ -47,7 +53,9 @@ public class Config public boolean AddThaumcraftItemsToBackpacks; public String ThaumaturgeExtraItems; - + public static BlockPlanks planksWood; + public static BlockWoodSlab slabWoodHalf; + public static BlockWoodSlab slabWoodFull; public static BlockMagicApiary magicApiary; public static ItemComb combs; @@ -122,6 +130,29 @@ public class Config int blockIdBase = 1750; + planksWood = new BlockPlanks(tbConfig.getBlock("planksTC", blockIdBase++).getInt()); + + Item item = new ItemMultiTextureTile(planksWood.blockID - 256, planksWood, PlankType.getAllNames()) + .setItemName(planksWood.getBlockName()).setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE); + Item.itemsList[planksWood.blockID] = item; + + OreDictionary.registerOre("plankWood", new ItemStack(planksWood, 1, -1)); + + slabWoodFull = new BlockWoodSlab(tbConfig.getBlock("slabFull", blockIdBase++).getInt(), true); + slabWoodHalf = new BlockWoodSlab(tbConfig.getBlock("slabHalf", blockIdBase++).getInt(), false); + + item = new ItemSlab(slabWoodHalf.blockID - 256, slabWoodHalf, slabWoodFull, false) + .setItemName(slabWoodHalf.getBlockName()).setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE); + Item.itemsList[slabWoodHalf.blockID] = item; + item = new ItemSlab(slabWoodFull.blockID - 256, slabWoodHalf, slabWoodFull, true) + .setItemName(slabWoodFull.getBlockName()).setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE); + Item.itemsList[slabWoodFull.blockID] = item; + + OreDictionary.registerOre("slabWood", new ItemStack(slabWoodHalf, 1, -1)); + + + blockIdBase++; // Stair + /*magicApiary = new BlockMagicApiary(tbConfig.getBlock("magicApiary", blockIdBase).getInt()); GameRegistry.registerBlock(magicApiary, "Magic Apiary");*/ } diff --git a/thaumicbees_src/thaumicbees/main/ThaumicBees.java b/thaumicbees_src/thaumicbees/main/ThaumicBees.java index ca9a188..79573ab 100644 --- a/thaumicbees_src/thaumicbees/main/ThaumicBees.java +++ b/thaumicbees_src/thaumicbees/main/ThaumicBees.java @@ -3,7 +3,7 @@ package thaumicbees.main; import net.minecraftforge.common.Configuration; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.ForgeSubscribe; -import thaumicbees.compat.CompatabilityManager; +import thaumicbees.main.utils.CompatabilityManager; import thaumicbees.main.utils.CraftingManager; import thaumicbees.main.utils.LocalizationManager; import thaumicbees.main.utils.VersionInfo; diff --git a/thaumicbees_src/thaumicbees/compat/CompatabilityManager.java b/thaumicbees_src/thaumicbees/main/utils/CompatabilityManager.java similarity index 96% rename from thaumicbees_src/thaumicbees/compat/CompatabilityManager.java rename to thaumicbees_src/thaumicbees/main/utils/CompatabilityManager.java index ae47659..280fef6 100644 --- a/thaumicbees_src/thaumicbees/compat/CompatabilityManager.java +++ b/thaumicbees_src/thaumicbees/main/utils/CompatabilityManager.java @@ -1,4 +1,4 @@ -package thaumicbees.compat; +package thaumicbees.main.utils; import java.io.File; import java.lang.reflect.Field; @@ -25,6 +25,15 @@ import thaumicbees.main.CommonProxy; import thaumicbees.main.Config; import thaumicbees.main.ThaumicBees; import thaumicbees.storage.BackpackDefinition; +import thaumicbees.utils.compat.ForestryHelper; +import thaumicbees.utils.compat.ThaumcraftHelper; +import thaumicbees.utils.compat.ForestryHelper.CircuitBoard; +import thaumicbees.utils.compat.ForestryHelper.Comb; +import thaumicbees.utils.compat.ForestryHelper.CraftingMaterial; +import thaumicbees.utils.compat.ForestryHelper.Pollen; +import thaumicbees.utils.compat.ForestryHelper.Propolis; +import thaumicbees.utils.compat.ForestryHelper.Tube; +import thaumicbees.utils.compat.ThaumcraftHelper.MiscResource; import cpw.mods.fml.common.FMLLog; import cpw.mods.fml.common.event.FMLInterModComms; @@ -117,6 +126,9 @@ public class CompatabilityManager ObjectTags tags; ItemStack itemStack; + tags = new ObjectTags().add(EnumTag.WOOD, 2); + ThaumcraftApi.registerObjectTag(Config.planksWood.blockID, -1, tags); + tags = new ObjectTags().add(EnumTag.MAGIC, 2); ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.MAGIC.ordinal(), tags); @@ -125,8 +137,10 @@ public class CompatabilityManager tags = new ObjectTags().add(EnumTag.KNOWLEDGE, 1); ThaumcraftApi.registerObjectTag(Config.drops.itemID, DropType.INTELLECT.ordinal(), tags); - tags = new ObjectTags().add(EnumTag.ELDRITCH, 1); + tags = new ObjectTags().add(EnumTag.ELDRITCH, 2); ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.UNUSUAL.ordinal(), tags); + tags = new ObjectTags().add(EnumTag.TIME, 2); + ThaumcraftApi.registerObjectTag(Config.pollen.itemID, PollenType.PHASED.ordinal(), tags); tags = new ObjectTags().add(EnumTag.CONTROL, 1); ThaumcraftApi.registerObjectTag(Config.propolis.itemID, -1, tags); diff --git a/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java b/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java index 67489b8..e5be449 100644 --- a/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java +++ b/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java @@ -6,17 +6,18 @@ import thaumcraft.api.ThaumcraftApi; import thaumicbees.bees.Allele; import thaumicbees.bees.BeeGenomeManager; import thaumicbees.bees.BeeSpecies; -import thaumicbees.compat.ShapelessBeeInfusionCraftingRecipe; -import thaumicbees.compat.ThaumcraftHelper; import thaumicbees.item.ItemCapsule; import thaumicbees.item.types.CombType; import thaumicbees.item.types.DropType; import thaumicbees.item.types.HiveFrameType; import thaumicbees.item.types.LiquidType; +import thaumicbees.item.types.PlankType; import thaumicbees.item.types.PropolisType; import thaumicbees.item.types.ResourceType; import thaumicbees.item.types.WaxType; import thaumicbees.main.Config; +import thaumicbees.utils.compat.ShapelessBeeInfusionCraftingRecipe; +import thaumicbees.utils.compat.ThaumcraftHelper; import cpw.mods.fml.common.registry.GameRegistry; import forestry.api.apiculture.BeeManager; import forestry.api.apiculture.EnumBeeChromosome; @@ -37,10 +38,22 @@ public class CraftingManager { public static void setupCrafting() { - ItemStack inputStack; // Variable to hold forestry items + ItemStack input; + ItemStack output; + + // Slabs + for (int i = 0; i < PlankType.values().length; ++i) + { + input = new ItemStack(Config.planksWood, 1, i); + output = new ItemStack(Config.slabWoodHalf, 6, i); + GameRegistry.addRecipe(output, new Object[] { + "PPP", + 'P', input + }); + } // Essentia bottles - ItemStack output = new ItemStack(Config.tcEssentiaBottle); + output = new ItemStack(Config.tcEssentiaBottle); output.stackSize = 8; GameRegistry.addRecipe(output, new Object[] { " C ", "GPG", "PGP", @@ -79,17 +92,17 @@ public class CraftingManager }); // Concentrated Fertilizer -> Forestry fertilizer - inputStack = Config.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER); + input = Config.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER); output = ItemInterface.getItem("fertilizerCompound"); output.stackSize = 6; GameRegistry.addRecipe(output, new Object[] { " S ", " F ", " S ", - 'F', inputStack, + 'F', input, 'S', Block.sand }); GameRegistry.addRecipe(output, new Object[] { " ", "SFS", " ", - 'F', inputStack, + 'F', input, 'S', Block.sand }); @@ -97,7 +110,7 @@ public class CraftingManager output.stackSize = 12; GameRegistry.addRecipe(output, new Object[] { "aaa", "aFa", "aaa", - 'F', inputStack, + 'F', input, 'a', ItemInterface.getItem("ash") }); @@ -152,7 +165,7 @@ public class CraftingManager new int[] { 100, 50, 65 }); RecipeManagers.centrifugeManager.addRecipe(20, Config.combs.getStackForType(CombType.INTELLECT), new ItemStack[] { Config.wax.getStackForType(WaxType.MAGIC), ItemInterface.getItem("honeydew"), Config.drops.getStackForType(DropType.INTELLECT) }, - new int[] { 90, 40, 2 }); + new int[] { 90, 40, 10 }); RecipeManagers.centrifugeManager.addRecipe(20, Config.combs.getStackForType(CombType.SKULKING), new ItemStack[] {ItemInterface.getItem("beeswax"), ItemInterface.getItem("propolis"), ItemInterface.getItem("honeydew") }, new int[] { 90, 20, 35 }); @@ -185,13 +198,13 @@ public class CraftingManager new ItemStack(Config.tcShard, 1, ThaumcraftHelper.ShardType.WATER.ordinal()), 18); // Carpenter recipes - inputStack = ItemInterface.getItem("craftingMaterial"); - inputStack.setItemDamage(3); // Set to Silk Mesh + input = ItemInterface.getItem("craftingMaterial"); + input.setItemDamage(3); // Set to Silk Mesh output = new ItemStack(Config.thaumaturgeBackpackT2); RecipeManagers.carpenterManager.addRecipe(200, new LiquidStack(Block.waterStill.blockID, 1000), null, output, new Object[] { "WXW", "WTW", "WWW", 'X', Item.diamond, - 'W', inputStack, + 'W', input, 'T', new ItemStack(Config.thaumaturgeBackpackT1) }); @@ -205,12 +218,12 @@ public class CraftingManager output = BlockInterface.getBlock("candle"); output.stackSize = 6; - inputStack = ItemInterface.getItem("craftingMaterial"); - inputStack.setItemDamage(2); // Set to Silk Wisp + input = ItemInterface.getItem("craftingMaterial"); + input.setItemDamage(2); // Set to Silk Wisp RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(Block.waterStill, 600), null, output, new Object[] { "WSW", 'W', Config.wax, - 'S', inputStack + 'S', input }); output = Config.miscResources.getStackForType(ResourceType.AROMATIC_LUMP, 2); @@ -227,6 +240,19 @@ public class CraftingManager 'J', ItemInterface.getItem("royalJelly"), 'D', Config.drops.getStackForType(DropType.ENCHANTED) }); + + output = new ItemStack(Config.planksWood, 6, 0); + RecipeManagers.carpenterManager.addRecipe(8, new LiquidStack(Block.waterStill, 500), null, output, new Object[] { + "B", + 'B', new ItemStack(Config.tcLog, 1, 0) + }); + + output = new ItemStack(Config.planksWood, 8, 1); + RecipeManagers.carpenterManager.addRecipe(8, new LiquidStack(Block.waterStill, 500), null, output, new Object[] { + "B", + 'B', new ItemStack(Config.tcLog, 1, 1) + }); + // Make Aromatic Lumps a swarmer inducer. Chance is /1000. BeeManager.inducers.put(output, 80); diff --git a/thaumicbees_src/thaumicbees/compat/ForestryHelper.java b/thaumicbees_src/thaumicbees/utils/compat/ForestryHelper.java similarity index 97% rename from thaumicbees_src/thaumicbees/compat/ForestryHelper.java rename to thaumicbees_src/thaumicbees/utils/compat/ForestryHelper.java index 16003f0..9a5ea86 100644 --- a/thaumicbees_src/thaumicbees/compat/ForestryHelper.java +++ b/thaumicbees_src/thaumicbees/utils/compat/ForestryHelper.java @@ -1,4 +1,4 @@ -package thaumicbees.compat; +package thaumicbees.utils.compat; import net.minecraft.item.Item; import forestry.api.core.ItemInterface; diff --git a/thaumicbees_src/thaumicbees/compat/ShapelessBeeInfusionCraftingRecipe.java b/thaumicbees_src/thaumicbees/utils/compat/ShapelessBeeInfusionCraftingRecipe.java similarity index 99% rename from thaumicbees_src/thaumicbees/compat/ShapelessBeeInfusionCraftingRecipe.java rename to thaumicbees_src/thaumicbees/utils/compat/ShapelessBeeInfusionCraftingRecipe.java index b5c98b9..84942a2 100644 --- a/thaumicbees_src/thaumicbees/compat/ShapelessBeeInfusionCraftingRecipe.java +++ b/thaumicbees_src/thaumicbees/utils/compat/ShapelessBeeInfusionCraftingRecipe.java @@ -1,4 +1,4 @@ -package thaumicbees.compat; +package thaumicbees.utils.compat; import java.util.ArrayList; import java.util.Arrays; diff --git a/thaumicbees_src/thaumicbees/compat/ThaumcraftHelper.java b/thaumicbees_src/thaumicbees/utils/compat/ThaumcraftHelper.java similarity index 98% rename from thaumicbees_src/thaumicbees/compat/ThaumcraftHelper.java rename to thaumicbees_src/thaumicbees/utils/compat/ThaumcraftHelper.java index f95564e..e88af5c 100644 --- a/thaumicbees_src/thaumicbees/compat/ThaumcraftHelper.java +++ b/thaumicbees_src/thaumicbees/utils/compat/ThaumcraftHelper.java @@ -1,4 +1,4 @@ -package thaumicbees.compat; +package thaumicbees.utils.compat; import net.minecraft.block.Block; import net.minecraft.item.Item;