From b49fbd7ccc433680ea54dee1efa34e1f40f169b2 Mon Sep 17 00:00:00 2001 From: MysteriousAges Date: Sun, 6 Jan 2013 16:50:52 -0800 Subject: [PATCH] Backpack update. --- thaumicbees_res/build.number | 4 +- thaumicbees_res/build.xml | 2 +- .../lang/thaumicbees/en_US.properties | 1 + .../bees/FlowerProviderThaumcraftFlower.java | 6 +- .../thaumicbees/bees/ThaumicBeesPlugin.java | 11 +- .../thaumicbees/block/BlockManager.java | 10 +- .../thaumicbees/item/ItemComb.java | 2 +- .../thaumicbees/item/ItemManager.java | 86 +++++++---- .../thaumicbees/item/ItemMiscResources.java | 2 +- .../thaumicbees/main/ThaumcraftCompat.java | 133 ++++++++++++------ .../thaumicbees/main/ThaumicBees.java | 1 + .../thaumicbees/main/VersionInfo.java | 2 +- .../storage/BackpackDefinition.java | 88 ++++++++++++ 13 files changed, 266 insertions(+), 82 deletions(-) create mode 100644 thaumicbees_res/lang/thaumicbees/en_US.properties create mode 100644 thaumicbees_src/thaumicbees/storage/BackpackDefinition.java diff --git a/thaumicbees_res/build.number b/thaumicbees_res/build.number index b83a219..6de66ae 100644 --- a/thaumicbees_res/build.number +++ b/thaumicbees_res/build.number @@ -1,3 +1,3 @@ #Build Number for ANT. Do not edit! -#Tue Jan 01 04:06:47 PST 2013 -build.number=51 +#Sun Jan 06 16:13:04 PST 2013 +build.number=57 diff --git a/thaumicbees_res/build.xml b/thaumicbees_res/build.xml index 3dca6d3..51d7376 100644 --- a/thaumicbees_res/build.xml +++ b/thaumicbees_res/build.xml @@ -17,7 +17,7 @@ - + diff --git a/thaumicbees_res/lang/thaumicbees/en_US.properties b/thaumicbees_res/lang/thaumicbees/en_US.properties new file mode 100644 index 0000000..bd14f84 --- /dev/null +++ b/thaumicbees_res/lang/thaumicbees/en_US.properties @@ -0,0 +1 @@ +storage.backpack.Thaumaturge=Thaumaturge's Backpack \ No newline at end of file diff --git a/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java index f759033..54204ef 100644 --- a/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java +++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java @@ -10,13 +10,13 @@ import forestry.api.genetics.IPollinatable; public class FlowerProviderThaumcraftFlower implements IFlowerProvider { - private ItemStack[] flowers = {new ItemStack(BlockManager.ThaumcraftPlant, 1, 2), new ItemStack(BlockManager.ThaumcraftPlant, 1, 3) }; + private ItemStack[] flowers = {new ItemStack(BlockManager.tcPlant, 1, 2), new ItemStack(BlockManager.tcPlant, 1, 3) }; @Override public boolean isAcceptedFlower(World world, IBeeGenome genome, int x, int y, int z) { boolean flag = false; - if (world.getBlockId(x, y, z) == BlockManager.ThaumcraftPlant.blockID) + if (world.getBlockId(x, y, z) == BlockManager.tcPlant.blockID) { int meta = world.getBlockMetadata(x, y, z); if (meta == 2 || meta == 3) @@ -35,7 +35,7 @@ public class FlowerProviderThaumcraftFlower implements IFlowerProvider if (world.isAirBlock(x, y, z) && (blockDown == Block.dirt.blockID || blockDown == Block.grass.blockID)) { int rand = world.rand.nextInt(10); - world.setBlockAndMetadataWithNotify(x, y, z, BlockManager.ThaumcraftPlant.blockID, (rand >= 5) ? 2 : 3); + world.setBlockAndMetadataWithNotify(x, y, z, BlockManager.tcPlant.blockID, (rand >= 5) ? 2 : 3); System.out.println(x + ", " + y + ", " + ", " + z + " set to flower."); flag = true; } diff --git a/thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java b/thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java index 2a706b1..d93e747 100644 --- a/thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java +++ b/thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java @@ -24,6 +24,8 @@ import thaumicbees.item.ItemManager; import thaumicbees.item.ItemComb.CombType; import thaumicbees.item.ItemDrop.DropType; import thaumicbees.item.ItemMiscResources.ResourceType; +import thaumicbees.main.ThaumcraftCompat; +import thaumicbees.main.ThaumcraftCompat.TCMiscResource; import thaumicbees.main.ThaumicBees; import net.minecraft.block.Block; @@ -61,7 +63,6 @@ public class ThaumicBeesPlugin implements IPlugin catch (Exception e) { // Could not get Forestry config value. - } } @@ -162,7 +163,7 @@ public class ThaumicBeesPlugin implements IPlugin 0x6E0000, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID, false, hideSpecies, true, false); Allele.Scholarly.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 25); - Allele.Scholarly.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), 2); + Allele.Scholarly.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 2); Allele.Scholarly.setGenome(BeeGenomeManager.getTemplateScholarly()); learned.addMemberSpecies(Allele.Scholarly); breedingMgr.registerBeeTemplate(Allele.Scholarly.getGenome()); @@ -172,7 +173,7 @@ public class ThaumicBeesPlugin implements IPlugin 0x6E1C6D, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID, true, hideSpecies, true, false); Allele.Savant.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 40); - Allele.Savant.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), 5); + Allele.Savant.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 5); Allele.Savant.setGenome(BeeGenomeManager.getTemplateSavant()); learned.addMemberSpecies(Allele.Savant); breedingMgr.registerBeeTemplate(Allele.Savant.getGenome()); @@ -196,7 +197,7 @@ public class ThaumicBeesPlugin implements IPlugin 0xD9D636, 0xA19E10, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); Allele.Air.addProduct(ItemManager.combs.getStackForType(CombType.AIRY), 20); - Allele.Air.addSpecialty(ItemManager.quicksilver, 10); + Allele.Air.addSpecialty(new ItemStack(ItemManager.tcMiscResource, 1, TCMiscResource.QUICKSILVER.ordinal()), 10); Allele.Air.setGenome(BeeGenomeManager.getTemplateAir()); breedingMgr.registerBeeTemplate(Allele.Air.getGenome()); @@ -223,7 +224,7 @@ public class ThaumicBeesPlugin implements IPlugin 0x005100, 0x00a000, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); Allele.Earth.addProduct(ItemManager.combs.getStackForType(CombType.EARTHY), 30); - Allele.Earth.addSpecialty(ItemManager.amber, 10); + Allele.Earth.addSpecialty(new ItemStack(ItemManager.tcMiscResource, 1, TCMiscResource.AMBER.ordinal()), 10); Allele.Earth.setGenome(BeeGenomeManager.getTemplateEarth()); breedingMgr.registerBeeTemplate(Allele.Earth.getGenome()); } diff --git a/thaumicbees_src/thaumicbees/block/BlockManager.java b/thaumicbees_src/thaumicbees/block/BlockManager.java index dc6fc5b..476e846 100644 --- a/thaumicbees_src/thaumicbees/block/BlockManager.java +++ b/thaumicbees_src/thaumicbees/block/BlockManager.java @@ -6,8 +6,14 @@ import net.minecraftforge.common.Configuration; public class BlockManager { - - public static Block ThaumcraftPlant; + public static Block tcPlant; + public static Block tcCandle; + public static Block tcCrystal; + public static Block tcMarker; + public static Block tcJar; + public static Block tcLog; + public static Block tcLeaf; + public static Block tcWarded; public BlockManager() { } diff --git a/thaumicbees_src/thaumicbees/item/ItemComb.java b/thaumicbees_src/thaumicbees/item/ItemComb.java index d3eaf11..837216d 100644 --- a/thaumicbees_src/thaumicbees/item/ItemComb.java +++ b/thaumicbees_src/thaumicbees/item/ItemComb.java @@ -82,7 +82,7 @@ public class ItemComb extends Item public int getIconIndex(ItemStack stack, int pass) { // 107, 108 are the base forestry honeycomb textures. - return 107 + pass; + return (pass >= 1) ? 108 : 107; } @Override diff --git a/thaumicbees_src/thaumicbees/item/ItemManager.java b/thaumicbees_src/thaumicbees/item/ItemManager.java index b15ee54..4f68749 100644 --- a/thaumicbees_src/thaumicbees/item/ItemManager.java +++ b/thaumicbees_src/thaumicbees/item/ItemManager.java @@ -1,11 +1,14 @@ package thaumicbees.item; import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.LanguageRegistry; import thaumicbees.item.ItemComb.CombType; import thaumicbees.item.ItemDrop.DropType; import thaumicbees.item.ItemMiscResources.ResourceType; import thaumicbees.item.ItemPropolis.PropolisType; import thaumicbees.item.ItemWax.WaxType; +import thaumicbees.main.ThaumcraftCompat; +import thaumicbees.storage.BackpackDefinition; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -16,6 +19,8 @@ import forestry.api.apiculture.BeeManager; import forestry.api.core.BlockInterface; import forestry.api.core.ItemInterface; import forestry.api.recipes.*; +import forestry.api.storage.BackpackManager; +import forestry.api.storage.EnumBackpackType; public class ItemManager { @@ -39,16 +44,18 @@ public class ItemManager public static ItemCapsule magicCapsuleIce; //----- Thaumcraft Items ------------------- - public static ItemStack quicksilver; - public static ItemStack amber; - public static ItemStack fragment; - public static ItemStack airShard; - public static ItemStack fireShard; - public static ItemStack waterShard; - public static ItemStack earthShard; - public static ItemStack magicShard; - public static ItemStack dullShard; - public static ItemStack essentiaBottle; + public static Item tcFilledJar; + public static Item tcMiscResource; + public static Item tcEssentiaBottle; + public static Item tcShard; + public static Item tcGolem; + public static Item tcWispEssence; + + //----- Backpacks -------------------------- + public static Item thaumaturgeBackpackT1; + public static Item thaumaturgeBackpackT2; + + public static BackpackDefinition thaumaturgeBackpackDef; public ItemManager() { } @@ -62,11 +69,20 @@ public class ItemManager ItemManager.propolis = new ItemPropolis(configFile.getItem("propolis", itemIDBase++).getInt()); ItemManager.drops = new ItemDrop(configFile.getItem("drop", itemIDBase++).getInt()); ItemManager.miscResources = new ItemMiscResources(configFile.getItem("miscResources", itemIDBase++).getInt()); + + BackpackDefinition def = new BackpackDefinition("thaumaturge", "Thaumaturge's Backpack", 0x8700C6); + ItemManager.thaumaturgeBackpackT1 = + BackpackManager.backpackInterface.addBackpack(configFile.getItem("thaumaturgePack1", itemIDBase++).getInt(), + def, EnumBackpackType.T1); + ItemManager.thaumaturgeBackpackT2 = + BackpackManager.backpackInterface.addBackpack(configFile.getItem("thaumaturgePack2", itemIDBase++).getInt(), + def, EnumBackpackType.T2); } public static void setupCrafting() { - ItemStack output = ItemManager.essentiaBottle.copy(); + ItemStack inputStack; // Variable to hold forestry items + ItemStack output = new ItemStack(tcEssentiaBottle); output.stackSize = 8; GameRegistry.addRecipe(output, new Object[] { @@ -75,7 +91,7 @@ public class ItemManager 'C', Item.clay, 'P', Block.thinGlass }); - output = ItemManager.essentiaBottle.copy(); + output = new ItemStack(tcEssentiaBottle); output.stackSize = 4; GameRegistry.addRecipe(output, new Object[] { @@ -83,15 +99,24 @@ public class ItemManager 'W', ItemManager.wax }); - output = ItemManager.fragment.copy(); + output = new ItemStack(tcMiscResource, 1, ThaumcraftCompat.TCMiscResource.KNOWLEDGE_FRAGMENT.ordinal()); GameRegistry.addShapelessRecipe(output, new Object[] { - ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), - ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), - ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), - ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT) + ItemManager.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), + ItemManager.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), + ItemManager.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), + ItemManager.miscResources.getStackForType(ResourceType.LORE_FRAGMENT) }); + // T1 Thaumaturge's backpack + GameRegistry.addRecipe(new ItemStack(ItemManager.thaumaturgeBackpackT1), new Object[] { + "SWS", "NCN", "SWS", + 'S', Item.silk, + 'W', Block.cloth, + 'N', Item.goldNugget, + 'C', Block.chest + }); + // 20 is the 'average' time to centrifuge a comb. RecipeManagers.centrifugeManager.addRecipe(20, ItemManager.combs.getStackForType(CombType.OCCULT), new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemInterface.getItem("honeyDrop") }, @@ -118,28 +143,39 @@ public class ItemManager new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.EARTH) }, new int[] { 100, 65 }); RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.propolis.getStackForType(PropolisType.STARK), - new ItemStack[] {ItemManager.dullShard}, + new ItemStack[] {new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.DULL.ordinal())}, new int[] { 20 }); RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.propolis.getStackForType(PropolisType.AIR), - new ItemStack[] {ItemManager.airShard}, + new ItemStack[] {new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.AIR.ordinal())}, new int[] { 18 }); RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.propolis.getStackForType(PropolisType.FIRE), - new ItemStack[] {ItemManager.fireShard}, + new ItemStack[] {new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.FIRE.ordinal())}, new int[] { 18 }); RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.propolis.getStackForType(PropolisType.WATER), - new ItemStack[] {ItemManager.waterShard}, + new ItemStack[] {new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.WATER.ordinal())}, new int[] { 18 }); RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.propolis.getStackForType(PropolisType.EARTH), - new ItemStack[] {ItemManager.earthShard}, + new ItemStack[] {new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.EARTH.ordinal())}, new int[] { 18 }); // Squeezer recipes RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[] {ItemManager.propolis.getStackForType(PropolisType.FIRE) }, - new LiquidStack(Block.lavaStill, 250), ItemManager.fireShard, 15); + new LiquidStack(Block.lavaStill, 250), + new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.FIRE.ordinal()), 15); RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[] {ItemManager.propolis.getStackForType(PropolisType.WATER) }, - new LiquidStack(Block.waterStill, 1000), ItemManager.waterShard, 25); + new LiquidStack(Block.waterStill, 500), + new ItemStack(tcShard, 1, ThaumcraftCompat.TCShardType.WATER.ordinal()), 25); // Carpenter recipes + inputStack = ItemInterface.getItem("craftingMaterial"); + inputStack.setItemDamage(3); // Set to Silk Mesh + output = new ItemStack(thaumaturgeBackpackT2); + RecipeManagers.carpenterManager.addRecipe(200, new LiquidStack(Block.waterStill.blockID, 1000), null, output, new Object[] { + "WXW", "WTW", "WWW", + 'X', Item.diamond, + 'W', inputStack, + 'T', new ItemStack(ItemManager.thaumaturgeBackpackT1) }); + output = BlockInterface.getBlock("candle"); output.stackSize = 24; RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(Block.waterStill, 600), null, output, new Object[] { @@ -148,7 +184,7 @@ public class ItemManager 'S', Item.silk }); output = BlockInterface.getBlock("candle"); output.stackSize = 6; - ItemStack inputStack = ItemInterface.getItem("craftingMaterial"); + inputStack = ItemInterface.getItem("craftingMaterial"); inputStack.setItemDamage(2); // Set to Silk Wisp RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(Block.waterStill, 600), null, output, new Object[] { "WSW", diff --git a/thaumicbees_src/thaumicbees/item/ItemMiscResources.java b/thaumicbees_src/thaumicbees/item/ItemMiscResources.java index 732c341..c9421e8 100644 --- a/thaumicbees_src/thaumicbees/item/ItemMiscResources.java +++ b/thaumicbees_src/thaumicbees/item/ItemMiscResources.java @@ -15,7 +15,7 @@ public class ItemMiscResources extends Item { public enum ResourceType { - KNOWLEDGE_FRAGMENT("Lore Fragment", 2), + LORE_FRAGMENT("Lore Fragment", 2), AROMATIC_LUMP("Aromatic Lump", 3), ; diff --git a/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java b/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java index d8ae8a0..a5c5e94 100644 --- a/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java +++ b/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java @@ -1,6 +1,7 @@ package thaumicbees.main; import java.io.File; +import java.util.ArrayList; import thaumcraft.api.EnumTag; import thaumcraft.api.ObjectTags; @@ -9,10 +10,14 @@ import thaumicbees.block.BlockManager; import thaumicbees.item.ItemComb; import thaumicbees.item.ItemManager; import thaumicbees.item.ItemMiscResources; +import thaumicbees.item.ItemComb.CombType; import thaumicbees.item.ItemWax.WaxType; +import thaumicbees.storage.BackpackDefinition; +import cpw.mods.fml.common.event.FMLInterModComms; import cpw.mods.fml.common.registry.GameRegistry; import forestry.api.core.ItemInterface; +import forestry.api.storage.BackpackManager; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -23,23 +28,19 @@ import net.minecraftforge.common.Configuration; public class ThaumcraftCompat { - private static final int blockMetaSilverleaf = 2; - private static final int blockMetaCinderpearl = 3; - - private static int itemResourceID; - private static final int itemResourceQuicksilverMeta = 3; - private static final int itemResourceAmberMeta = 6; - private static final int itemResourceFragmentMeta = 9; - - private static int itemShardID; - private static final int itemShardAirMeta = 0; - private static final int itemShardFireMeta = 1; - private static final int itemShardWaterMeta = 2; - private static final int itemShardEarthMeta = 3; - private static final int itemShardMagicMeta = 4; - private static final int itemShardDullMeta = 5; - - private static int itemEssentiaBottle; + public enum TCBlockPlant + { + GREATWOOD_SAPLING, SILVERWOOD_SAPLING, SILVERLEAF, CINDERPEARL; + } + public enum TCMiscResource + { + ALUMENTUM, NITOR, THAUMIUM, QUICKSILVER, MAGIC_TALLOW, + ZOMBIE_BRAIN, AMBER, ENCHANTED_FABRIC, FLUX_FILTER, KNOWLEDGE_FRAGMENT; + } + public enum TCShardType + { + AIR, FIRE, WATER, EARTH, MAGIC, DULL; + } public static void init(String configPath) { @@ -49,35 +50,78 @@ public class ThaumcraftCompat tcConfig.load(); // Load blocks out of the Thaumcraft config to get their IDs; - p = tcConfig.getBlock("BlockCustomPlant", 2403); - BlockManager.ThaumcraftPlant = Block.blocksList[p.getInt()]; - - if (BlockManager.ThaumcraftPlant == null) - { - - } + p = tcConfig.getBlock("BlockCustomPlant", 0); + BlockManager.tcPlant = Block.blocksList[p.getInt()]; + p = tcConfig.getBlock("BlockCandle", 0); + BlockManager.tcCandle = Block.blocksList[ p.getInt()]; + p = tcConfig.getBlock("BlockCrystal", 0); + BlockManager.tcCrystal = Block.blocksList[p.getInt()]; + p = tcConfig.getBlock("BlockMarker", 0); + BlockManager.tcMarker = Block.blocksList[p.getInt()]; + p = tcConfig.getBlock("BlockJar", 0); + BlockManager.tcJar = Block.blocksList[p.getInt()]; + p = tcConfig.getBlock("BlockMagicalLeaves", 0); + BlockManager.tcLeaf = Block.blocksList[p.getInt()]; + p = tcConfig.getBlock("BlockMagicalLog", 0); + BlockManager.tcLog = Block.blocksList[p.getInt()]; + p = tcConfig.getBlock("BlockSecure", 0); + BlockManager.tcWarded = Block.blocksList[p.getInt()]; // Load items out of the Thaumcraft config to get their IDs. - p = tcConfig.getItem("ItemEssence", 25005); - itemEssentiaBottle = p.getInt() + 256; - ItemManager.essentiaBottle = new ItemStack(itemEssentiaBottle, 1, 0); - p = tcConfig.getItem("ItemResource", 25007); - itemResourceID = p.getInt() + 256; - ItemManager.quicksilver = new ItemStack(itemResourceID, 1, itemResourceQuicksilverMeta); - ItemManager.amber = new ItemStack(itemResourceID, 1, itemResourceAmberMeta); - ItemManager.fragment = new ItemStack(itemResourceID, 1, itemResourceFragmentMeta); - p = tcConfig.getItem("ItemShard", 25008); - itemShardID = p.getInt() + 256; - ItemManager.airShard = new ItemStack(itemShardID, 1, itemShardAirMeta); - ItemManager.fireShard = new ItemStack(itemShardID, 1, itemShardFireMeta); - ItemManager.waterShard = new ItemStack(itemShardID, 1, itemShardWaterMeta); - ItemManager.earthShard = new ItemStack(itemShardID, 1, itemShardEarthMeta); - ItemManager.magicShard = new ItemStack(itemShardID, 1, itemShardMagicMeta); - ItemManager.dullShard = new ItemStack(itemShardID, 1, itemShardDullMeta); + p = tcConfig.getItem("ItemEssence", 0); + ItemManager.tcEssentiaBottle = Item.itemsList[p.getInt() + 256]; + p = tcConfig.getItem("ItemResource", 0); + ItemManager.tcMiscResource = Item.itemsList[p.getInt() + 256]; + p = tcConfig.getItem("ItemShard", 0); + ItemManager.tcShard = Item.itemsList[p.getInt() + 256]; + p = tcConfig.getItem("BlockJarFilledItem", 0); + ItemManager.tcFilledJar = Item.itemsList[p.getInt() + 256]; + p = tcConfig.getItem("ItemGolemPlacer", 0); + ItemManager.tcGolem = Item.itemsList[p.getInt() + 256]; + p = tcConfig.getItem("ItemEssence", 0); + ItemManager.tcWispEssence = Item.itemsList[p.getInt() + 256]; + + // Registers TC items with Forestry's backpacks. + setupBackpacks(); + } + + public static void setupBackpacks() + { + // Add all shards and Thaumium to miner's backpack + String ids = ItemManager.tcShard.itemID + ":" + -1 + ";" + + ItemManager.tcMiscResource.itemID + ":" + TCMiscResource.THAUMIUM.ordinal(); + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "miner@" + ids); + + // All resources go into Thaumaturge's backpack + ids = ItemManager.tcMiscResource.itemID + ":" + -1 + ";" + + ItemManager.tcShard.itemID + ":" + -1 + ";" + + ItemManager.tcFilledJar.itemID + ":" + -1 + ";" + + BlockManager.tcCrystal.blockID + ":" + -1 + ";" + + BlockManager.tcJar.blockID + ":" + -1 + ";" + + ItemManager.tcGolem.itemID + ":" + -1; + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "thaumaturge@" + ids); + + // Add some plants & saplings to Forester's + ids = BlockManager.tcPlant.blockID + ":" + "-1" + ";" + + BlockManager.tcLeaf.blockID + ":" + -1 + ";" + + BlockManager.tcLog.blockID + ":" + "-1"; + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "forester@" + ids); + + // Add Wisp & brains to Hunter's + ids = ItemManager.tcWispEssence.itemID + ":" + -1 + ";" + + ItemManager.tcMiscResource.itemID + ":" + TCMiscResource.ZOMBIE_BRAIN.ordinal(); + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "hunter@" + ids); + + // Add Marker, warded stone, candle to builder + ids = BlockManager.tcCandle.blockID + ":" + -1 + ";" + + BlockManager.tcMarker.blockID + ":" + -1 + ";" + + BlockManager.tcWarded.blockID + ":" + -1; + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "builder@" + ids); } public static void setupResearch() { + // TODO: Get the path correct. //ThaumcraftApi.registerResearchXML(CommonProxy.TCBEES_RESEARCH + "/research.xml"); } @@ -89,7 +133,7 @@ public class ThaumcraftCompat ThaumcraftApi.registerObjectTag(ItemManager.wax.itemID, WaxType.MAGIC.ordinal(), tags); tags = new ObjectTags().add(EnumTag.KNOWLEDGE, 3); - ThaumcraftApi.registerObjectTag(ItemManager.miscResources.itemID, ItemMiscResources.ResourceType.KNOWLEDGE_FRAGMENT.ordinal(), tags); + ThaumcraftApi.registerObjectTag(ItemManager.miscResources.itemID, ItemMiscResources.ResourceType.LORE_FRAGMENT.ordinal(), tags); tags = new ObjectTags().add(EnumTag.MAGIC, 1).add(EnumTag.INSECT, 2); ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, ItemComb.CombType.STARK.ordinal(), tags); @@ -144,6 +188,13 @@ public class ThaumcraftCompat itemStack = ItemInterface.getItem("beeComb"); tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.TRAP, 2); ThaumcraftApi.registerObjectTag(itemStack.itemID, -1, tags); // ALL combs plox. + ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, -1, tags); + + itemStack = ItemManager.combs.getStackForType(CombType.OCCULT); + tags = new ObjectTags().add(EnumTag.INSECT, 2).add(EnumTag.TRAP, 2).add(EnumTag.MAGIC, 2); + ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags); + itemStack = ItemManager.combs.getStackForType(CombType.STARK); + ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags); // BEES! itemStack = ItemInterface.getItem("beeDroneGE"); diff --git a/thaumicbees_src/thaumicbees/main/ThaumicBees.java b/thaumicbees_src/thaumicbees/main/ThaumicBees.java index 2f4a073..2b0351b 100644 --- a/thaumicbees_src/thaumicbees/main/ThaumicBees.java +++ b/thaumicbees_src/thaumicbees/main/ThaumicBees.java @@ -3,6 +3,7 @@ package thaumicbees.main; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.SidedProxy; import cpw.mods.fml.common.event.*; +import cpw.mods.fml.common.registry.LanguageRegistry; import forestry.api.apiculture.EnumBeeType; import forestry.api.core.ItemInterface; diff --git a/thaumicbees_src/thaumicbees/main/VersionInfo.java b/thaumicbees_src/thaumicbees/main/VersionInfo.java index 5369a07..48ee61b 100644 --- a/thaumicbees_src/thaumicbees/main/VersionInfo.java +++ b/thaumicbees_src/thaumicbees/main/VersionInfo.java @@ -9,6 +9,6 @@ public class VersionInfo public static final String Logo = "/gfx/thaumicbees/logo.png"; - public static final String Depends = "required-after:Forestry@[1.7.0.0,);required-after:Thaumcraft@[3.0.1c,)"; + public static final String Depends = "required-after:Forestry@[1.7.0.1,);required-after:Thaumcraft@[3.0.1c,)"; } diff --git a/thaumicbees_src/thaumicbees/storage/BackpackDefinition.java b/thaumicbees_src/thaumicbees/storage/BackpackDefinition.java new file mode 100644 index 0000000..a71a0ea --- /dev/null +++ b/thaumicbees_src/thaumicbees/storage/BackpackDefinition.java @@ -0,0 +1,88 @@ +package thaumicbees.storage; + +import java.util.ArrayList; +import java.util.Collection; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import forestry.api.storage.IBackpackDefinition; + +/** + * Backpack definition for Forestry. + * @author MysteriousAges + * + */ +public class BackpackDefinition implements IBackpackDefinition +{ + private ArrayList items; + private String key; + private String name; + private int colour; + + public BackpackDefinition(String backpackKey, String backpackName, int backpackColour) + { + items = new ArrayList(); + this.name = backpackName; + this.key = backpackKey; + this.colour = backpackColour; + } + + @Override + public String getKey() + { + return this.key; + } + + @Override + public String getName() + { + return this.name; + } + + @Override + public int getPrimaryColour() + { + return this.colour; + } + + @Override + public int getSecondaryColour() + { + return 0xFFFFFF; + } + + @Override + public void addValidItem(ItemStack validItem) + { + if (!this.items.contains(validItem)) + { + this.items.add(validItem); + } + } + + @Override + public Collection getValidItems(EntityPlayer player) + { + return this.items; + } + + @Override + public boolean isValidItem(EntityPlayer player, ItemStack itemStack) + { + boolean flag = false; + + ItemStack stack; + for (int i = 0; i < this.items.size() && !flag; i++) + { + stack = this.items.get(i); + // If comparison stack has meta of -1 + if (stack.itemID == itemStack.itemID) + { + flag = stack.getItemDamage() == -1 || stack.getItemDamage() == itemStack.getItemDamage(); + } + } + + return flag; + } + +}