diff --git a/thaumicbees_res/gfx/thaumicbees/items/items.png b/thaumicbees_res/gfx/thaumicbees/items/items.png index 9d08f66..538a993 100644 Binary files a/thaumicbees_res/gfx/thaumicbees/items/items.png and b/thaumicbees_res/gfx/thaumicbees/items/items.png differ diff --git a/thaumicbees_src/thaumicbees/bees/genetics/BeeGenomeManager.java b/thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java similarity index 99% rename from thaumicbees_src/thaumicbees/bees/genetics/BeeGenomeManager.java rename to thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java index cc1bc2a..5e2abd5 100644 --- a/thaumicbees_src/thaumicbees/bees/genetics/BeeGenomeManager.java +++ b/thaumicbees_src/thaumicbees/bees/BeeGenomeManager.java @@ -1,5 +1,8 @@ -package thaumicbees.bees.genetics; +package thaumicbees.bees; +import thaumicbees.bees.genetics.Allele; +import thaumicbees.bees.genetics.AlleleFlower; +import thaumicbees.bees.genetics.BeeSpecies; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; diff --git a/thaumicbees_src/thaumicbees/bees/TBBeeManager.java b/thaumicbees_src/thaumicbees/bees/TBBeeManager.java index 2d3e7e2..ea1823f 100644 --- a/thaumicbees_src/thaumicbees/bees/TBBeeManager.java +++ b/thaumicbees_src/thaumicbees/bees/TBBeeManager.java @@ -22,16 +22,21 @@ import thaumicbees.bees.genetics.AlleleEffectSpawnMob; import thaumicbees.bees.genetics.AlleleEffectSpawnWisp; import thaumicbees.bees.genetics.AlleleFlower; import thaumicbees.bees.genetics.AlleleInteger; -import thaumicbees.bees.genetics.BeeGenomeManager; import thaumicbees.bees.genetics.BeeMutation; import thaumicbees.bees.genetics.BeeSpecies; +import thaumicbees.bees.genetics.FlowerProviderAuraNode; +import thaumicbees.bees.genetics.FlowerProviderAuraNodeFlux; +import thaumicbees.bees.genetics.FlowerProviderAuraNodePurify; +import thaumicbees.bees.genetics.FlowerProviderBookshelf; +import thaumicbees.bees.genetics.FlowerProviderThaumcraftFlower; import thaumicbees.item.ItemComb; -import thaumicbees.item.ItemManager; 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.ThaumicBees; +import thaumicbees.main.utils.MoonPhase; import thaumicbees.thaumcraft.TCEntity; import thaumicbees.thaumcraft.TCMiscResource; import thaumicbees.thaumcraft.TCShardType; @@ -115,7 +120,7 @@ public class TBBeeManager "secretiore", occult, 0, 0x001099, 0xcc763c, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Esoteric.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 20); + Allele.Esoteric.addProduct(Config.combs.getStackForType(CombType.OCCULT), 20); Allele.Esoteric.setGenome(BeeGenomeManager.getTemplateEsoteric()); occult.addMemberSpecies(Allele.Esoteric); breedingMgr.registerBeeTemplate(Allele.Esoteric.getGenome()); @@ -124,7 +129,7 @@ public class TBBeeManager "mysticus", occult, 0, 0x762bc2, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Mysterious.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 25); + Allele.Mysterious.addProduct(Config.combs.getStackForType(CombType.OCCULT), 25); Allele.Mysterious.setGenome(BeeGenomeManager.getTemplateMysterious()); occult.addMemberSpecies(Allele.Mysterious); breedingMgr.registerBeeTemplate(Allele.Mysterious.getGenome()); @@ -133,8 +138,8 @@ public class TBBeeManager "arcanus", occult, 0, 0xd242df, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); - Allele.Arcane.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 30); - Allele.Arcane.addSpecialty(ItemManager.drops.getStackForType(DropType.ENCHANTED, 1), 9); + Allele.Arcane.addProduct(Config.combs.getStackForType(CombType.OCCULT), 30); + Allele.Arcane.addSpecialty(Config.drops.getStackForType(DropType.ENCHANTED, 1), 9); Allele.Arcane.setGenome(BeeGenomeManager.getTemplateArcane()); occult.addMemberSpecies(Allele.Arcane); breedingMgr.registerBeeTemplate(Allele.Arcane.getGenome()); @@ -146,7 +151,7 @@ public class TBBeeManager "larvatus", otherworldly, 0, 0x48EEEC, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Charmed.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 20); + Allele.Charmed.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 20); Allele.Charmed.setGenome(BeeGenomeManager.getTemplateCharmed()); otherworldly.addMemberSpecies(Allele.Charmed); breedingMgr.registerBeeTemplate(Allele.Charmed.getGenome()); @@ -155,7 +160,7 @@ public class TBBeeManager "cantatus", otherworldly, 0, 0x18e726, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Enchanted.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 30); + Allele.Enchanted.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 30); Allele.Enchanted.setGenome(BeeGenomeManager.getTemplateEnchanted()); otherworldly.addMemberSpecies(Allele.Enchanted); breedingMgr.registerBeeTemplate(Allele.Enchanted.getGenome()); @@ -164,8 +169,8 @@ public class TBBeeManager "coeleste", otherworldly, 0, 0x005614, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); - Allele.Supernatural.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 40); - Allele.Supernatural.addSpecialty(ItemManager.pollen.getStackForType(PollenType.UNUSUAL), 8); + Allele.Supernatural.addProduct(Config.combs.getStackForType(CombType.OTHERWORLDLY), 40); + Allele.Supernatural.addSpecialty(Config.pollen.getStackForType(PollenType.UNUSUAL), 8); Allele.Supernatural.setGenome(BeeGenomeManager.getTemplateSupernatural()); otherworldly.addMemberSpecies(Allele.Supernatural); breedingMgr.registerBeeTemplate(Allele.Supernatural.getGenome()); @@ -177,7 +182,7 @@ public class TBBeeManager "disciplina", learned, 0, 0xFFFF00, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID, false, hideSpecies, true, true); - Allele.Pupil.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 20); + Allele.Pupil.addProduct(Config.combs.getStackForType(CombType.PAPERY), 20); Allele.Pupil.setGenome(BeeGenomeManager.getTemplatePupil()); learned.addMemberSpecies(Allele.Pupil); breedingMgr.registerBeeTemplate(Allele.Pupil.getGenome()); @@ -186,8 +191,8 @@ public class TBBeeManager "studiosis", learned, 0, 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.LORE_FRAGMENT), 2); + Allele.Scholarly.addProduct(Config.combs.getStackForType(CombType.PAPERY), 25); + Allele.Scholarly.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 2); Allele.Scholarly.setGenome(BeeGenomeManager.getTemplateScholarly()); learned.addMemberSpecies(Allele.Scholarly); breedingMgr.registerBeeTemplate(Allele.Scholarly.getGenome()); @@ -196,8 +201,8 @@ public class TBBeeManager "philologus", learned, 0, 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.LORE_FRAGMENT), 5); + Allele.Savant.addProduct(Config.combs.getStackForType(CombType.PAPERY), 40); + Allele.Savant.addSpecialty(Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT), 5); Allele.Savant.setGenome(BeeGenomeManager.getTemplateSavant()); learned.addMemberSpecies(Allele.Savant); breedingMgr.registerBeeTemplate(Allele.Savant.getGenome()); @@ -209,7 +214,7 @@ public class TBBeeManager "torridae", magical, 0, 0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, false); - Allele.Stark.addProduct(ItemManager.combs.getStackForType(CombType.STARK), 10); + Allele.Stark.addProduct(Config.combs.getStackForType(CombType.STARK), 10); Allele.Stark.setGenome(BeeGenomeManager.getTemplateStark()); breedingMgr.registerBeeTemplate(Allele.Stark.getGenome()); @@ -218,8 +223,8 @@ public class TBBeeManager "ventosa", magical, 0, 0xD9D636, 0xA19E10, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); - Allele.Air.addProduct(ItemManager.combs.getStackForType(CombType.AIRY), 9); - Allele.Air.addSpecialty(new ItemStack(ItemManager.tcMiscResource, 1, TCMiscResource.QUICKSILVER.ordinal()), 2); + Allele.Air.addProduct(Config.combs.getStackForType(CombType.AIRY), 9); + Allele.Air.addSpecialty(new ItemStack(Config.tcMiscResource, 1, TCMiscResource.QUICKSILVER.ordinal()), 2); Allele.Air.setGenome(BeeGenomeManager.getTemplateAir()); breedingMgr.registerBeeTemplate(Allele.Air.getGenome()); @@ -227,7 +232,7 @@ public class TBBeeManager "praefervidus", magical, 0, 0xE50B0B, 0x95132F, EnumTemperature.HOT, EnumHumidity.ARID, true, hideSpecies, true, true); - Allele.Fire.addProduct(ItemManager.combs.getStackForType(CombType.FIREY), 15); + Allele.Fire.addProduct(Config.combs.getStackForType(CombType.FIREY), 15); Allele.Fire.addSpecialty(new ItemStack(Item.blazePowder), 8); Allele.Fire.setGenome(BeeGenomeManager.getTemplateFire()); breedingMgr.registerBeeTemplate(Allele.Fire.getGenome()); @@ -239,7 +244,7 @@ public class TBBeeManager "umidus", magical, 0, 0x36CFD9, 0x1054A1, EnumTemperature.NORMAL, EnumHumidity.DAMP, true, hideSpecies, true, true); - Allele.Water.addProduct(ItemManager.combs.getStackForType(CombType.WATERY), 20); + Allele.Water.addProduct(Config.combs.getStackForType(CombType.WATERY), 20); Allele.Water.addSpecialty(new ItemStack(Block.ice), 1).addSpecialty(forestryItem, 5); Allele.Water.setGenome(BeeGenomeManager.getTemplateWater()); breedingMgr.registerBeeTemplate(Allele.Water.getGenome()); @@ -248,8 +253,8 @@ public class TBBeeManager "sordida", magical, 0, 0x005100, 0x00a000, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); - Allele.Earth.addProduct(ItemManager.combs.getStackForType(CombType.EARTHY), 30); - Allele.Earth.addSpecialty(new ItemStack(ItemManager.tcMiscResource, 1, TCMiscResource.AMBER.ordinal()), 6); + Allele.Earth.addProduct(Config.combs.getStackForType(CombType.EARTHY), 30); + Allele.Earth.addSpecialty(new ItemStack(Config.tcMiscResource, 1, TCMiscResource.AMBER.ordinal()), 6); Allele.Earth.setGenome(BeeGenomeManager.getTemplateEarth()); breedingMgr.registerBeeTemplate(Allele.Earth.getGenome()); @@ -257,7 +262,7 @@ public class TBBeeManager "azanorius", magical, 0, 0xaa32fc, 0x7A489E, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, true); - Allele.Infused.addProduct(ItemManager.combs.getStackForType(CombType.INFUSED), 20); + Allele.Infused.addProduct(Config.combs.getStackForType(CombType.INFUSED), 20); Allele.Infused.setGenome(BeeGenomeManager.getTemplateInfused()); breedingMgr.registerBeeTemplate(Allele.Infused.getGenome()); @@ -268,7 +273,7 @@ public class TBBeeManager "sensibilis", aware, 0, 0xb0092e9, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, false); - Allele.Aware.addProduct(ItemManager.combs.getStackForType(CombType.INTELLECT), 18); + Allele.Aware.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 18); Allele.Aware.setGenome(BeeGenomeManager.getTemplateAware()); breedingMgr.registerBeeTemplate(Allele.Aware.getGenome()); @@ -276,7 +281,7 @@ public class TBBeeManager "arcanus saecula", aware, 0, 0x004c99, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, false); - Allele.Vis.addProduct(ItemManager.combs.getStackForType(CombType.INTELLECT), 25); + Allele.Vis.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 25); Allele.Vis.setGenome(BeeGenomeManager.getTemplateVis()); breedingMgr.registerBeeTemplate(Allele.Vis.getGenome()); @@ -284,7 +289,7 @@ public class TBBeeManager "arcanus puritatem", aware, 0, 0xb0092e9, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, false); - Allele.Pure.addProduct(ItemManager.combs.getStackForType(CombType.INTELLECT), 20); + Allele.Pure.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20); Allele.Pure.setGenome(BeeGenomeManager.getTemplatePure()); breedingMgr.registerBeeTemplate(Allele.Pure.getGenome()); @@ -292,7 +297,7 @@ public class TBBeeManager "arcanus labe", aware, 0, 0x004c99, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, false); - Allele.Flux.addProduct(ItemManager.combs.getStackForType(CombType.INTELLECT), 20); + Allele.Flux.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20); Allele.Flux.setGenome(BeeGenomeManager.getTemplateFlux()); breedingMgr.registerBeeTemplate(Allele.Flux.getGenome()); @@ -300,7 +305,7 @@ public class TBBeeManager "conficiens", aware, 0, 0xFFF266, 0xFF8CE9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, true, hideSpecies, true, false); - Allele.Node.addProduct(ItemManager.combs.getStackForType(CombType.INTELLECT), 20); + Allele.Node.addProduct(Config.combs.getStackForType(CombType.INTELLECT), 20); Allele.Node.setGenome(BeeGenomeManager.getTemplateNode()); breedingMgr.registerBeeTemplate(Allele.Node.getGenome()); @@ -311,7 +316,7 @@ public class TBBeeManager "malevolens", malevolent, 0, 0x524827, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Skulking.addProduct(ItemManager.combs.getStackForType(CombType.SKULKING), 10); + Allele.Skulking.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10); Allele.Skulking.setGenome(BeeGenomeManager.getTemplateSkulking()); breedingMgr.registerBeeTemplate(Allele.Skulking.getGenome()); @@ -319,8 +324,8 @@ public class TBBeeManager "cerebrum", malevolent, 0, 0x83FF70, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Brainy.addProduct(ItemManager.combs.getStackForType(CombType.SKULKING), 10).addProduct(new ItemStack(Item.rottenFlesh), 6); - Allele.Brainy.addSpecialty(new ItemStack(ItemManager.tcMiscResource, 1, TCMiscResource.ZOMBIE_BRAIN.ordinal()), 2); + Allele.Brainy.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10).addProduct(new ItemStack(Item.rottenFlesh), 6); + Allele.Brainy.addSpecialty(new ItemStack(Config.tcMiscResource, 1, TCMiscResource.ZOMBIE_BRAIN.ordinal()), 2); Allele.Brainy.setGenome(BeeGenomeManager.getTemplateBrainy()); breedingMgr.registerBeeTemplate(Allele.Brainy.getGenome()); @@ -350,7 +355,7 @@ public class TBBeeManager "chiroptera", malevolent, 0, 0x27350d, malevolentBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); - Allele.Batty.addProduct(ItemManager.combs.getStackForType(CombType.SKULKING), 10); + Allele.Batty.addProduct(Config.combs.getStackForType(CombType.SKULKING), 10); Allele.Batty.addSpecialty(new ItemStack(Item.gunpowder), 4); Allele.Batty.setGenome(BeeGenomeManager.getTemplateBatty()); breedingMgr.registerBeeTemplate(Allele.Batty.getGenome()); @@ -359,7 +364,7 @@ public class TBBeeManager "pallens", malevolent, 0, 0xccccee, 0xbf877c, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, false); - Allele.Ghastly.addProduct(ItemManager.combs.getStackForType(CombType.SKULKING), 8); + Allele.Ghastly.addProduct(Config.combs.getStackForType(CombType.SKULKING), 8); Allele.Ghastly.addSpecialty(new ItemStack(Item.ghastTear), 2); Allele.Ghastly.setGenome(BeeGenomeManager.getTemplateGhastly()); breedingMgr.registerBeeTemplate(Allele.Ghastly.getGenome()); diff --git a/thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java b/thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java index 86fc1e4..eb7569b 100644 --- a/thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/BeeMutation.java @@ -8,7 +8,7 @@ import java.util.ArrayList; import thaumcraft.api.AuraNode; import thaumcraft.api.EnumNodeType; import thaumcraft.api.ThaumcraftApi; -import thaumicbees.bees.MoonPhase; +import thaumicbees.main.utils.MoonPhase; public class BeeMutation implements IBeeMutation { diff --git a/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java b/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java index f76a4c1..6171c7b 100644 --- a/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/BeeSpecies.java @@ -84,9 +84,9 @@ public class BeeSpecies extends Allele implements IAlleleBeeSpecies return this; } - public ItemStack getBeeItem(World world, EnumBeeType beeType) + public ItemStack getBeeItem(EnumBeeType beeType) { - return BeeManager.beeInterface.getBeeStack(BeeManager.beeInterface.getBee(world, BeeManager.beeInterface.templateAsGenome(genomeTemplate)), beeType); + return BeeManager.beeInterface.getBeeStack(BeeManager.beeInterface.getBee(null, BeeManager.beeInterface.templateAsGenome(genomeTemplate)), beeType); } public String getName() diff --git a/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNode.java b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNode.java similarity index 94% rename from thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNode.java rename to thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNode.java index 7892f68..d822b1f 100644 --- a/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNode.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNode.java @@ -1,8 +1,8 @@ -package thaumicbees.bees; +package thaumicbees.bees.genetics; import thaumcraft.api.AuraNode; import thaumcraft.api.ThaumcraftApi; -import thaumicbees.block.BlockManager; +import thaumicbees.main.Config; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -34,7 +34,7 @@ public class FlowerProviderAuraNode 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.tcPlant.blockID, (rand >= 5) ? 2 : 3); + world.setBlockAndMetadataWithNotify(x, y, z, Config.tcPlant.blockID, (rand >= 5) ? 2 : 3); System.out.println(x + ", " + y + ", " + ", " + z + " set to flower."); flag = true; } diff --git a/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodeFlux.java b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodeFlux.java similarity index 96% rename from thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodeFlux.java rename to thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodeFlux.java index cc4c106..9a3fe7f 100644 --- a/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodeFlux.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodeFlux.java @@ -1,4 +1,4 @@ -package thaumicbees.bees; +package thaumicbees.bees.genetics; import thaumcraft.api.EnumTag; import thaumcraft.api.ObjectTags; diff --git a/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodePurify.java b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodePurify.java similarity index 85% rename from thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodePurify.java rename to thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodePurify.java index 8977971..ccbe115 100644 --- a/thaumicbees_src/thaumicbees/bees/FlowerProviderAuraNodePurify.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderAuraNodePurify.java @@ -1,4 +1,4 @@ -package thaumicbees.bees; +package thaumicbees.bees.genetics; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; @@ -7,8 +7,7 @@ import thaumcraft.api.AuraNode; import thaumcraft.api.EnumTag; import thaumcraft.api.ObjectTags; import thaumcraft.api.ThaumcraftApi; -import thaumicbees.block.BlockManager; -import thaumicbees.item.ItemManager; +import thaumicbees.main.Config; import forestry.api.apiculture.IBeeGenome; public class FlowerProviderAuraNodePurify extends FlowerProviderAuraNode @@ -41,7 +40,7 @@ public class FlowerProviderAuraNodePurify extends FlowerProviderAuraNode { node.flux.remove(selectedTag, 1); ThaumcraftApi.queueNodeChanges(node.key, 0, 0, false, new ObjectTags().add(selectedTag, -1), 0, 0, 0); - products = addItemToProducts(products, new ItemStack(ItemManager.solidFlux, 1, selectedTag.id)); + products = addItemToProducts(products, new ItemStack(Config.solidFlux, 1, selectedTag.id)); } } } diff --git a/thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderBookshelf.java similarity index 97% rename from thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java rename to thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderBookshelf.java index 3734104..e5875a6 100644 --- a/thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderBookshelf.java @@ -1,4 +1,4 @@ -package thaumicbees.bees; +package thaumicbees.bees.genetics; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; diff --git a/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderThaumcraftFlower.java similarity index 80% rename from thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java rename to thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderThaumcraftFlower.java index 54204ef..b42e885 100644 --- a/thaumicbees_src/thaumicbees/bees/FlowerProviderThaumcraftFlower.java +++ b/thaumicbees_src/thaumicbees/bees/genetics/FlowerProviderThaumcraftFlower.java @@ -1,6 +1,6 @@ -package thaumicbees.bees; +package thaumicbees.bees.genetics; -import thaumicbees.block.BlockManager; +import thaumicbees.main.Config; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; import net.minecraft.world.World; @@ -10,13 +10,13 @@ import forestry.api.genetics.IPollinatable; public class FlowerProviderThaumcraftFlower implements IFlowerProvider { - private ItemStack[] flowers = {new ItemStack(BlockManager.tcPlant, 1, 2), new ItemStack(BlockManager.tcPlant, 1, 3) }; + private ItemStack[] flowers = {new ItemStack(Config.tcPlant, 1, 2), new ItemStack(Config.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.tcPlant.blockID) + if (world.getBlockId(x, y, z) == Config.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.tcPlant.blockID, (rand >= 5) ? 2 : 3); + world.setBlockAndMetadataWithNotify(x, y, z, Config.tcPlant.blockID, (rand >= 5) ? 2 : 3); System.out.println(x + ", " + y + ", " + ", " + z + " set to flower."); flag = true; } diff --git a/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java b/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java new file mode 100644 index 0000000..c9bc239 --- /dev/null +++ b/thaumicbees_src/thaumicbees/block/BlockMagicApiary.java @@ -0,0 +1,33 @@ +package thaumicbees.block; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import thaumicbees.main.CommonProxy; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.item.ItemStack; +import net.minecraft.world.IBlockAccess; +import net.minecraft.world.World; +import forestry.api.apiculture.IBee; +import forestry.api.apiculture.IBeeGenome; +import forestry.api.apiculture.IBeeHousing; +import forestry.api.core.EnumHumidity; +import forestry.api.core.EnumTemperature; + +public class BlockMagicApiary extends Block +{ + public BlockMagicApiary(int par1) + { + super(par1, Material.wood); + this.setTextureFile(CommonProxy.TCBEES_ITEMS_IMAGE); + this.setBlockName("Magic Apiary"); + this.blockIndexInTexture = 48; + } + + @Override + @SideOnly(Side.CLIENT) + public int getBlockTexture(IBlockAccess par1iBlockAccess, int par2, int par3, int par4, int par5) + { + return super.getBlockTexture(par1iBlockAccess, par2, par3, par4, par5); + } +} diff --git a/thaumicbees_src/thaumicbees/block/BlockManager.java b/thaumicbees_src/thaumicbees/block/BlockManager.java deleted file mode 100644 index 476e846..0000000 --- a/thaumicbees_src/thaumicbees/block/BlockManager.java +++ /dev/null @@ -1,24 +0,0 @@ -package thaumicbees.block; - -import net.minecraft.block.Block; -import net.minecraft.item.ItemBlock; -import net.minecraftforge.common.Configuration; - -public class BlockManager -{ - 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() { } - - public static void setupBlocks(Configuration config) - { - - } -} diff --git a/thaumicbees_src/thaumicbees/item/ItemManager.java b/thaumicbees_src/thaumicbees/item/ItemManager.java deleted file mode 100644 index f5dac79..0000000 --- a/thaumicbees_src/thaumicbees/item/ItemManager.java +++ /dev/null @@ -1,377 +0,0 @@ -package thaumicbees.item; - -import cpw.mods.fml.common.FMLLog; -import cpw.mods.fml.common.event.FMLInterModComms; -import cpw.mods.fml.common.registry.GameRegistry; -import cpw.mods.fml.common.registry.LanguageRegistry; -import thaumcraft.api.EnumTag; -import thaumicbees.item.types.CapsuleType; -import thaumicbees.item.types.CombType; -import thaumicbees.item.types.DropType; -import thaumicbees.item.types.HiveFrameType; -import thaumicbees.item.types.LiquidType; -import thaumicbees.item.types.PropolisType; -import thaumicbees.item.types.ResourceType; -import thaumicbees.item.types.WaxType; -import thaumicbees.main.ThaumicBees; -import thaumicbees.storage.BackpackDefinition; -import thaumicbees.thaumcraft.TCMiscResource; -import thaumicbees.thaumcraft.TCShardType; -import thaumicbees.thaumcraft.ThaumcraftCompat; -import net.minecraft.block.Block; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.Property; -import net.minecraftforge.liquids.LiquidContainerData; -import net.minecraftforge.liquids.LiquidContainerRegistry; -import net.minecraftforge.liquids.LiquidDictionary; -import net.minecraftforge.liquids.LiquidStack; -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 -{ - public static ItemComb combs; - public static ItemWax wax; - public static ItemPropolis propolis; - public static ItemDrop drops; - public static ItemPollen pollen; - public static ItemSolidFlux solidFlux; - public static ItemMiscResources miscResources; - - //----- Liquid Capsules -------------------- - public static ItemCapsule magicCapsule; - - //----- Apiary Frames ---------------------- - public static ItemMagicHiveFrame hiveFrameMagic; - public static ItemMagicHiveFrame hiveFrameResilient; - public static ItemMagicHiveFrame hiveFrameGentle; - public static ItemMagicHiveFrame hiveFrameMetabolic; - public static ItemMagicHiveFrame hiveFrameNecrotic; - - //----- Thaumcraft Items ------------------- - 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() { } - - public static void setupItems(Configuration configFile) - { - int itemIDBase = 26090; - - Property p = configFile.getItem("combs", itemIDBase++); - ItemManager.combs= new ItemComb(p.getInt()); - ItemManager.wax = new ItemWax(configFile.getItem("wax", itemIDBase++).getInt()); - 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()); - - try - { - // 0x8700C6 = purpleish. - 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); - // Add additional items from configs to backpack. - if (ThaumicBees.getInstanceConfig().ThaumaturgeExtraItems.length() > 0) - { - FMLLog.info("Attempting to add extra items to Thaumaturge's backpack! If you get an error, check your ThaumicBees.conf."); - FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "thaumaturge@" + ThaumicBees.getInstanceConfig().ThaumaturgeExtraItems); - } - } - catch (Exception e) - { - FMLLog.severe("ThaumicBees encountered a problem during loading!"); - throw new RuntimeException("Could not register backpacks via Forestry. Check your FML Client log and see if Forestry crashed silently.", e); - } - - - ItemManager.magicCapsule = new ItemCapsule(CapsuleType.MAGIC, configFile.getItem("magicCapsule", itemIDBase++).getInt()); - - ItemManager.pollen = new ItemPollen(configFile.getItem("pollen", itemIDBase++).getInt()); - ItemManager.solidFlux = new ItemSolidFlux(configFile.getItem("fluxCrystal", itemIDBase++).getInt()); - - ItemManager.hiveFrameMagic = new ItemMagicHiveFrame(configFile.getItem("frameMagic", itemIDBase++).getInt(), HiveFrameType.MAGIC); - ItemManager.hiveFrameResilient = new ItemMagicHiveFrame(configFile.getItem("frameResilient", itemIDBase++).getInt(), HiveFrameType.RESILIENT); - ItemManager.hiveFrameGentle = new ItemMagicHiveFrame(configFile.getItem("frameGentle", itemIDBase++).getInt(), HiveFrameType.GENTLE); - ItemManager.hiveFrameMetabolic = new ItemMagicHiveFrame(configFile.getItem("frameMetabolic", itemIDBase++).getInt(), HiveFrameType.METABOLIC); - ItemManager.hiveFrameNecrotic = new ItemMagicHiveFrame(configFile.getItem("frameNecrotic", itemIDBase++).getInt(), HiveFrameType.NECROTIC); - // Future frames, so they all are clumped together. - itemIDBase++; - itemIDBase++; - itemIDBase++; - itemIDBase++; - itemIDBase++; - itemIDBase++; - itemIDBase++; - itemIDBase++; - itemIDBase++; - - // New items here. - - } - - public static void setupCrafting() - { - ItemStack inputStack; // Variable to hold forestry items - - // Essentia bottles - ItemStack output = new ItemStack(tcEssentiaBottle); - output.stackSize = 8; - GameRegistry.addRecipe(output, new Object[] - { - " C ", "GPG", "PGP", - 'G', ItemManager.wax, - 'C', Item.clay, - 'P', Block.thinGlass - }); - - output = new ItemStack(tcEssentiaBottle); - output.stackSize = 4; - GameRegistry.addRecipe(output, new Object[] { - " W ", "W W", " W ", - 'W', ItemManager.wax - }); - - // Magic capsules - output = new ItemStack(magicCapsule); output.stackSize = 4; - GameRegistry.addRecipe(output, new Object[] { - "WWW", - 'W', ItemManager.wax.getStackForType(WaxType.MAGIC) - }); - - output = new ItemStack(tcMiscResource, 1, TCMiscResource.KNOWLEDGE_FRAGMENT.ordinal()); - GameRegistry.addRecipe(output, new Object[] { - "FF", "FF", - 'F', 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 - }); - - // Concentrated Fertilizer -> Forestry fertilizer - inputStack = ItemManager.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER); - output = ItemInterface.getItem("fertilizerCompound"); - output.stackSize = 6; - GameRegistry.addRecipe(output, new Object[] { - " S ", " F ", " S ", - 'F', inputStack, - 'S', Block.sand - }); - GameRegistry.addRecipe(output, new Object[] { - " ", "SFS", " ", - 'F', inputStack, - 'S', Block.sand - }); - - output = output.copy(); - output.stackSize = 12; - GameRegistry.addRecipe(output, new Object[] { - "aaa", "aFa", "aaa", - 'F', inputStack, - 'a', ItemInterface.getItem("ash") - }); - - // "bottling" Intellect drops - GameRegistry.addRecipe(new ItemStack(Item.expBottle), new Object[] { - "DDD", "DBD", "DDD", - 'D', ItemManager.drops.getStackForType(DropType.INTELLECT), - 'B', Item.glassBottle - }); - - // "bottling" Crystal aspects. - for (EnumTag tag : EnumTag.values()) - { - if (tag != EnumTag.UNKNOWN) - { - output = new ItemStack(ItemManager.tcEssentiaBottle, 1, tag.id + 1); - GameRegistry.addRecipe(output, new Object[] { - "ccc", "cxc", "ccc", - 'c', new ItemStack(ItemManager.solidFlux, 1, tag.id), - 'x', ItemManager.tcEssentiaBottle - }); - } - } - - // 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") }, - new int[] { 100, 60 }); - RecipeManagers.centrifugeManager.addRecipe(20, ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), - new ItemStack[] {ItemInterface.getItem("beeswax"), ItemManager.wax.getStackForType(WaxType.MAGIC), ItemInterface.getItem("honeyDrop") }, - new int[] { 50, 20, 100 }); - RecipeManagers.centrifugeManager.addRecipe(20, ItemManager.combs.getStackForType(CombType.PAPERY), - new ItemStack[] {ItemInterface.getItem("beeswax"), ItemManager.wax.getStackForType(WaxType.MAGIC), new ItemStack(Item.paper) }, - new int[] { 80, 20, 5 }); - RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.combs.getStackForType(CombType.STARK), - new ItemStack[] {ItemInterface.getItem("beeswax"), ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.STARK) }, - new int[] { 10, 95, 15 }); - RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.combs.getStackForType(CombType.AIRY), - new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.AIR) }, - new int[] { 100, 65 }); - RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.combs.getStackForType(CombType.FIREY), - new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.FIRE) }, - new int[] { 100, 65 }); - RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.combs.getStackForType(CombType.WATERY), - new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.WATER)}, - new int[] { 100, 65 }); - RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.combs.getStackForType(CombType.EARTHY), - new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.EARTH) }, - new int[] { 100, 65 }); - RecipeManagers.centrifugeManager.addRecipe(25, ItemManager.combs.getStackForType(CombType.INFUSED), - new ItemStack[] {ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.wax.getStackForType(WaxType.MAGIC), ItemManager.propolis.getStackForType(PropolisType.INFUSED) }, - new int[] { 100, 50, 65 }); - RecipeManagers.centrifugeManager.addRecipe(20, ItemManager.combs.getStackForType(CombType.INTELLECT), - new ItemStack[] { ItemManager.wax.getStackForType(WaxType.MAGIC), ItemInterface.getItem("honeydew"), ItemManager.drops.getStackForType(DropType.INTELLECT) }, - new int[] { 90, 40, 2 }); - RecipeManagers.centrifugeManager.addRecipe(20, ItemManager.combs.getStackForType(CombType.SKULKING), - new ItemStack[] {ItemInterface.getItem("beeswax"), ItemInterface.getItem("propolis"), ItemInterface.getItem("honeydew") }, - new int[] { 90, 20, 35 }); - - RecipeManagers.centrifugeManager.addRecipe(8, ItemManager.propolis.getStackForType(PropolisType.STARK), - new ItemStack[] {new ItemStack(tcShard, 1, TCShardType.DULL.ordinal())}, - new int[] { 13 }); - RecipeManagers.centrifugeManager.addRecipe(8, ItemManager.propolis.getStackForType(PropolisType.AIR), - new ItemStack[] {new ItemStack(tcShard, 1, TCShardType.AIR.ordinal())}, - new int[] { 10 }); - RecipeManagers.centrifugeManager.addRecipe(8, ItemManager.propolis.getStackForType(PropolisType.FIRE), - new ItemStack[] {new ItemStack(tcShard, 1, TCShardType.FIRE.ordinal())}, - new int[] { 10 }); - RecipeManagers.centrifugeManager.addRecipe(8, ItemManager.propolis.getStackForType(PropolisType.WATER), - new ItemStack[] {new ItemStack(tcShard, 1, TCShardType.WATER.ordinal())}, - new int[] { 10 }); - RecipeManagers.centrifugeManager.addRecipe(8, ItemManager.propolis.getStackForType(PropolisType.EARTH), - new ItemStack[] {new ItemStack(tcShard, 1, TCShardType.EARTH.ordinal())}, - new int[] { 10 }); - RecipeManagers.centrifugeManager.addRecipe(8, ItemManager.propolis.getStackForType(PropolisType.INFUSED), - new ItemStack[] {new ItemStack(tcShard, 1, TCShardType.MAGIC.ordinal())}, - new int[] { 10 }); - - // Squeezer recipes - RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[] {ItemManager.propolis.getStackForType(PropolisType.FIRE) }, - new LiquidStack(Block.lavaStill, 250), - new ItemStack(tcShard, 1, TCShardType.FIRE.ordinal()), 18); - RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[] {ItemManager.propolis.getStackForType(PropolisType.WATER) }, - new LiquidStack(Block.waterStill, 500), - new ItemStack(tcShard, 1, TCShardType.WATER.ordinal()), 18); - - // 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[] { - " S ", "WWW", "WWW", - 'W', ItemManager.wax, - 'S', Item.silk - }); - - output = BlockInterface.getBlock("candle"); - output.stackSize = 6; - 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", - 'W', ItemManager.wax, - 'S', inputStack - }); - - output = ItemManager.miscResources.getStackForType(ResourceType.AROMATIC_LUMP, 2); - RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(ItemInterface.getItem("liquidHoney").itemID, 1000), null, output, new Object[] { - " P ", "JDJ", " P ", - 'P', ItemInterface.getItem("pollen"), - 'J', ItemInterface.getItem("royalJelly"), - 'D', ItemManager.drops.getStackForType(DropType.ENCHANTED) - }); - - RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(ItemInterface.getItem("liquidHoney").itemID, 1000), null, output, new Object[] { - " J ", "PDP", " J ", - 'P', ItemInterface.getItem("pollen"), - 'J', ItemInterface.getItem("royalJelly"), - 'D', ItemManager.drops.getStackForType(DropType.ENCHANTED) - }); - // Make Aromatic Lumps a swarmer inducer. Chance is /1000. - BeeManager.inducers.put(output, 80); - - } - - public static void postInit() - { - registerLiquidContainer(ItemManager.magicCapsule); - } - - private static void registerLiquidContainer(ItemCapsule baseCapsule) - { - // Forestry liquids aren't registered until PostInit, that's why we wait until now to register them. - ItemStack empty = new ItemStack(baseCapsule, 1, 0); - ItemStack filled; - LiquidStack liquid = null; - - for (LiquidType l : LiquidType.values()) - { - switch (l) - { - case EMPTY: - liquid = null; - break; - case WATER: - liquid = new LiquidStack(Block.waterStill, baseCapsule.getType().capacity); - break; - case LAVA: - liquid = new LiquidStack(Block.lavaStill, baseCapsule.getType().capacity); - break; - default: - liquid = LiquidDictionary.getLiquid(l.liquidID, baseCapsule.getType().capacity); - break; - } - - if (liquid != null) - { - filled = new ItemStack(baseCapsule, 1, l.ordinal()); - LiquidContainerRegistry.registerLiquid(new LiquidContainerData(liquid, filled, empty)); - - // Register with Squeezer/Bottler - RecipeManagers.bottlerManager.addRecipe(5, liquid, empty, filled); - RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[] {filled} , liquid, - ItemManager.wax.getStackForType(WaxType.MAGIC), 20); - l.available = true; - } - } - // Empty will be set to unavailable. Obviously, it always is. - LiquidType.EMPTY.available = true; - } - -} diff --git a/thaumicbees_src/thaumicbees/main/Config.java b/thaumicbees_src/thaumicbees/main/Config.java new file mode 100644 index 0000000..c1157dc --- /dev/null +++ b/thaumicbees_src/thaumicbees/main/Config.java @@ -0,0 +1,189 @@ +package thaumicbees.main; + +import java.io.File; + +import thaumicbees.block.BlockMagicApiary; +import thaumicbees.item.ItemCapsule; +import thaumicbees.item.ItemComb; +import thaumicbees.item.ItemDrop; +import thaumicbees.item.ItemMagicHiveFrame; +import thaumicbees.item.ItemMiscResources; +import thaumicbees.item.ItemPollen; +import thaumicbees.item.ItemPropolis; +import thaumicbees.item.ItemSolidFlux; +import thaumicbees.item.ItemWax; +import thaumicbees.item.types.CapsuleType; +import thaumicbees.item.types.HiveFrameType; +import thaumicbees.storage.BackpackDefinition; +import thaumicbees.thaumcraft.ThaumcraftCompat; +import cpw.mods.fml.common.FMLLog; +import cpw.mods.fml.common.event.FMLInterModComms; +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.api.storage.BackpackManager; +import forestry.api.storage.EnumBackpackType; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.Property; + +/** + * A class to hold some data related to mod state & functions. + * @author MysteriousAges + * + */ +public class Config +{ + public boolean DrawParticleEffects; + public boolean BeeInfusionsAdded; + public boolean ExtraBeesInstalled; + public boolean AddThaumcraftItemsToBackpacks; + public String ThaumaturgeExtraItems; + + + public static BlockMagicApiary magicApiary; + + public static ItemComb combs; + public static ItemWax wax; + public static ItemPropolis propolis; + public static ItemDrop drops; + public static ItemPollen pollen; + public static ItemSolidFlux solidFlux; + public static ItemMiscResources miscResources; + + //----- Liquid Capsules -------------------- + public static ItemCapsule magicCapsule; + + //----- Apiary Frames ---------------------- + public static ItemMagicHiveFrame hiveFrameMagic; + public static ItemMagicHiveFrame hiveFrameResilient; + public static ItemMagicHiveFrame hiveFrameGentle; + public static ItemMagicHiveFrame hiveFrameMetabolic; + public static ItemMagicHiveFrame hiveFrameNecrotic; + + //----- Backpacks ------------------------------------------ + public static Item thaumaturgeBackpackT1; + public static Item thaumaturgeBackpackT2; + public static BackpackDefinition thaumaturgeBackpackDef; + + //----- Thaumcraft Blocks ---------------------------------- + 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; + //----- Thaumcraft Items ----------------------------------- + public static Item tcFilledJar; + public static Item tcMiscResource; + public static Item tcEssentiaBottle; + public static Item tcShard; + public static Item tcGolem; + public static Item tcWispEssence; + + + //----- Config State info ---------------------------------- + private Configuration tbConfig; + + public Config(File configFile) + { + this.tbConfig = new Configuration(configFile); + + this.tbConfig.load(); + this.doMiscConfig(); + } + + public void saveConfigs() + { + this.tbConfig.save(); + } + + public void setupBlocks() + { + ThaumcraftCompat.getThaumcraftBlocks(); + + int blockIdBase = 1750; + + magicApiary = new BlockMagicApiary(tbConfig.getBlock("magicApiary", blockIdBase).getInt()); + GameRegistry.registerBlock(magicApiary, "Magic Apiary"); + } + + public void setupItems() + { + ThaumcraftCompat.getThaumcraftItems(); + + int itemIDBase = 26090; + + Property p = tbConfig.getItem("combs", itemIDBase++); + combs= new ItemComb(p.getInt()); + wax = new ItemWax(tbConfig.getItem("wax", itemIDBase++).getInt()); + propolis = new ItemPropolis(tbConfig.getItem("propolis", itemIDBase++).getInt()); + drops = new ItemDrop(tbConfig.getItem("drop", itemIDBase++).getInt()); + miscResources = new ItemMiscResources(tbConfig.getItem("miscResources", itemIDBase++).getInt()); + + try + { + // 0x8700C6 = purpleish. + BackpackDefinition def = new BackpackDefinition("thaumaturge", "Thaumaturge's Backpack", 0x8700C6); + thaumaturgeBackpackT1 = + BackpackManager.backpackInterface.addBackpack(tbConfig.getItem("thaumaturgePack1", itemIDBase++).getInt(), + def, EnumBackpackType.T1); + thaumaturgeBackpackT2 = + BackpackManager.backpackInterface.addBackpack(tbConfig.getItem("thaumaturgePack2", itemIDBase++).getInt(), + def, EnumBackpackType.T2); + // Add additional items from configs to backpack. + if (ThaumicBees.getInstanceConfig().ThaumaturgeExtraItems.length() > 0) + { + FMLLog.info("Attempting to add extra items to Thaumaturge's backpack! If you get an error, check your ThaumicBees.conf."); + FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "thaumaturge@" + ThaumicBees.getInstanceConfig().ThaumaturgeExtraItems); + } + } + catch (Exception e) + { + FMLLog.severe("ThaumicBees encountered a problem during loading!"); + throw new RuntimeException("Could not register backpacks via Forestry. Check your FML Client log and see if Forestry crashed silently.", e); + } + + + magicCapsule = new ItemCapsule(CapsuleType.MAGIC, tbConfig.getItem("magicCapsule", itemIDBase++).getInt()); + + pollen = new ItemPollen(tbConfig.getItem("pollen", itemIDBase++).getInt()); + solidFlux = new ItemSolidFlux(tbConfig.getItem("fluxCrystal", itemIDBase++).getInt()); + + hiveFrameMagic = new ItemMagicHiveFrame(tbConfig.getItem("frameMagic", itemIDBase++).getInt(), HiveFrameType.MAGIC); + hiveFrameResilient = new ItemMagicHiveFrame(tbConfig.getItem("frameResilient", itemIDBase++).getInt(), HiveFrameType.RESILIENT); + hiveFrameGentle = new ItemMagicHiveFrame(tbConfig.getItem("frameGentle", itemIDBase++).getInt(), HiveFrameType.GENTLE); + hiveFrameMetabolic = new ItemMagicHiveFrame(tbConfig.getItem("frameMetabolic", itemIDBase++).getInt(), HiveFrameType.METABOLIC); + hiveFrameNecrotic = new ItemMagicHiveFrame(tbConfig.getItem("frameNecrotic", itemIDBase++).getInt(), HiveFrameType.NECROTIC); + // Future frames, so they all are clumped together. + itemIDBase++; + itemIDBase++; + itemIDBase++; + itemIDBase++; + itemIDBase++; + itemIDBase++; + itemIDBase++; + itemIDBase++; + itemIDBase++; + + // New items here. + + } + + private void doMiscConfig() + { + Property p; + + p = tbConfig.get("general", "backpack.thaumaturge.additionalItems", ""); + p.comment = "Add additional items to the Thaumaturge's Backpack." + + "\n Format is the same as Forestry's: id:meta;id;id:meta (etc)"; + this.ThaumaturgeExtraItems = p.value; + + p = tbConfig.get("general", "backpack.forestry.addThaumcraftItems", true); + p.comment = "Set to true if you want ThaumicBees to add several Thaumcraft blocks & items to Forestry backpacks." + + "\n Set to false to disable."; + this.AddThaumcraftItemsToBackpacks = p.getBoolean(true); + } + +} diff --git a/thaumicbees_src/thaumicbees/main/ThaumicBees.java b/thaumicbees_src/thaumicbees/main/ThaumicBees.java index 9610fbe..e13eba1 100644 --- a/thaumicbees_src/thaumicbees/main/ThaumicBees.java +++ b/thaumicbees_src/thaumicbees/main/ThaumicBees.java @@ -1,34 +1,20 @@ package thaumicbees.main; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.event.ForgeSubscribe; +import thaumicbees.bees.TBBeeManager; +import thaumicbees.main.utils.CraftingManager; +import thaumicbees.main.utils.VersionInfo; +import thaumicbees.thaumcraft.ThaumcraftCompat; import cpw.mods.fml.common.FMLLog; 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 cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; import forestry.api.core.ItemInterface; -import java.io.InputStream; -import java.io.PrintStream; -import java.lang.reflect.Field; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.common.Property; -import net.minecraftforge.event.EventBus; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.world.WorldEvent; -import thaumcraft.api.*; -import thaumicbees.bees.TBBeeManager; -import thaumicbees.bees.genetics.BeeSpecies; -import thaumicbees.block.BlockManager; -import thaumicbees.item.ItemComb; -import thaumicbees.item.ItemWax; -import thaumicbees.item.ItemManager; -import thaumicbees.thaumcraft.ThaumcraftCompat; - @Mod( modid="ThaumicBees", useMetadata=true, @@ -46,15 +32,11 @@ public class ThaumicBees public static CommonProxy proxy; private String configsPath; - private Configuration config; - private ThaumicBeesConfiguration modConfig; + private Config modConfig; private TBBeeManager plugin; public ThaumicBees() { - this.modConfig = new ThaumicBeesConfiguration(); - - this.modConfig.ThaumcraftRecipesAdded = false; this.plugin = new TBBeeManager(); } @@ -62,11 +44,7 @@ public class ThaumicBees public void preInit(FMLPreInitializationEvent event) { this.configsPath = event.getModConfigurationDirectory().getAbsolutePath(); - this.config = new Configuration(event.getSuggestedConfigurationFile()); - - this.config.load(); - // Allow us to set up some extra stuff. - this.modConfig.doMiscConfig(this.config); + this.modConfig = new Config(event.getSuggestedConfigurationFile()); ThaumcraftCompat.registerResearch(); } @@ -77,8 +55,6 @@ public class ThaumicBees // Check on ExtraBees & enable content. =D this.modConfig.ExtraBeesInstalled = cpw.mods.fml.common.Loader.isModLoaded("ExtraBees"); - // Give ThaumcraftCompat a chance to set itself up. - ThaumcraftCompat.parseThaumcraftConfig(configsPath); this.proxy.preloadTextures(); try { @@ -92,17 +68,10 @@ public class ThaumicBees throw new RuntimeException("Could not get the Forestry item texture file! Did Forestry load correctly?", e); } - BlockManager.setupBlocks(this.config); - ItemManager.setupItems(this.config); - this.config.save(); + this.modConfig.setupBlocks(); + this.modConfig.setupItems(); - - // Vanilla & Forestry mechanics setup - ItemManager.setupCrafting(); - // Thaumcraft-specific crafting (Infusions, & Vis-needing) - ThaumcraftCompat.setupCrafting(); - ThaumcraftCompat.setupBackpacks(); ThaumcraftCompat.setupItemAspects(); @@ -112,28 +81,30 @@ public class ThaumicBees @Mod.PostInit public void postInit(FMLPostInitializationEvent event) { - // Item Manager has a couple tasks left to it at this point... - ItemManager.postInit(); + plugin.postInit(); + this.modConfig.saveConfigs(); + + // Vanilla, Forestry & Thaumcraft crafting setup + CraftingManager.setupCrafting(); // Forestry has init'd by this point. MinecraftForge.EVENT_BUS.register(this); - plugin.postInit(); ThaumcraftCompat.setupResearch(); } - @ForgeSubscribe + /*@ForgeSubscribe public void worldLoad(net.minecraftforge.event.world.WorldEvent.Load event) { - if (!this.modConfig.ThaumcraftRecipesAdded) + if (!this.modConfig.BeeInfusionsAdded) { - ThaumcraftCompat.setupBeeInfusions(event.world); - this.modConfig.ThaumcraftRecipesAdded = true; + CraftingManager.setupBeeInfusions(event.world); + this.modConfig.BeeInfusionsAdded = true; } - } + }*/ - public static ThaumicBeesConfiguration getInstanceConfig() + public static Config getInstanceConfig() { return object.modConfig; } diff --git a/thaumicbees_src/thaumicbees/main/ThaumicBeesConfiguration.java b/thaumicbees_src/thaumicbees/main/ThaumicBeesConfiguration.java deleted file mode 100644 index 0ac20fa..0000000 --- a/thaumicbees_src/thaumicbees/main/ThaumicBeesConfiguration.java +++ /dev/null @@ -1,35 +0,0 @@ -package thaumicbees.main; - -import net.minecraftforge.common.Configuration; -import net.minecraftforge.common.Property; - -/** - * A class to hold some data related to mod state & functions. - * @author MysteriousAges - * - */ -public class ThaumicBeesConfiguration -{ - public boolean DrawParticleEffects; - public boolean ThaumcraftRecipesAdded; - public boolean ExtraBeesInstalled; - public boolean AddThaumcraftItemsToBackpacks; - - public String ThaumaturgeExtraItems; - - public void doMiscConfig(Configuration cfg) - { - Property p; - - p = cfg.get("general", "backpack.thaumaturge.additionalItems", ""); - p.comment = "Add additional items to the Thaumaturge's Backpack." + - "\n Format is the same as Forestry's: id:meta;id;id:meta (etc)"; - this.ThaumaturgeExtraItems = p.value; - - p = cfg.get("general", "backpack.forestry.addThaumcraftItems", true); - p.comment = "Set to true if you want ThaumicBees to add several Thaumcraft blocks & items to Forestry backpacks." + - "\n Set to false to disable."; - this.AddThaumcraftItemsToBackpacks = p.getBoolean(true); - } - -} diff --git a/thaumicbees_src/thaumicbees/main/Vector3.java b/thaumicbees_src/thaumicbees/main/Vector3.java deleted file mode 100644 index 1a35ca1..0000000 --- a/thaumicbees_src/thaumicbees/main/Vector3.java +++ /dev/null @@ -1,14 +0,0 @@ -package thaumicbees.main; - -public class Vector3 -{ - public int x; - public int y; - public int z; - - public Vector3() - { - x = y = z = 0; - } - -} diff --git a/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java b/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java new file mode 100644 index 0000000..d9b2b26 --- /dev/null +++ b/thaumicbees_src/thaumicbees/main/utils/CraftingManager.java @@ -0,0 +1,382 @@ +package thaumicbees.main.utils; + +import thaumcraft.api.EnumTag; +import thaumcraft.api.ObjectTags; +import thaumcraft.api.ThaumcraftApi; +import thaumicbees.bees.BeeGenomeManager; +import thaumicbees.bees.genetics.Allele; +import thaumicbees.item.ItemCapsule; +import thaumicbees.item.types.CombType; +import thaumicbees.item.types.DropType; +import thaumicbees.item.types.LiquidType; +import thaumicbees.item.types.PropolisType; +import thaumicbees.item.types.ResourceType; +import thaumicbees.item.types.WaxType; +import thaumicbees.main.Config; +import thaumicbees.thaumcraft.ShapelessBeeInfusionCraftingRecipe; +import thaumicbees.thaumcraft.TCMiscResource; +import thaumicbees.thaumcraft.TCShardType; +import cpw.mods.fml.common.registry.GameRegistry; +import forestry.api.apiculture.BeeManager; +import forestry.api.apiculture.EnumBeeChromosome; +import forestry.api.apiculture.EnumBeeType; +import forestry.api.core.BlockInterface; +import forestry.api.core.ItemInterface; +import forestry.api.recipes.RecipeManagers; +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; +import net.minecraftforge.liquids.LiquidContainerData; +import net.minecraftforge.liquids.LiquidContainerRegistry; +import net.minecraftforge.liquids.LiquidDictionary; +import net.minecraftforge.liquids.LiquidStack; + +public class CraftingManager +{ + public static void setupCrafting() + { + ItemStack inputStack; // Variable to hold forestry items + + // Essentia bottles + ItemStack output = new ItemStack(Config.tcEssentiaBottle); + output.stackSize = 8; + GameRegistry.addRecipe(output, new Object[] + { + " C ", "GPG", "PGP", + 'G', Config.wax, + 'C', Item.clay, + 'P', Block.thinGlass + }); + + output = new ItemStack(Config.tcEssentiaBottle); + output.stackSize = 4; + GameRegistry.addRecipe(output, new Object[] { + " W ", "W W", " W ", + 'W', Config.wax + }); + + // Magic capsules + output = new ItemStack(Config.magicCapsule); output.stackSize = 4; + GameRegistry.addRecipe(output, new Object[] { + "WWW", + 'W', Config.wax.getStackForType(WaxType.MAGIC) + }); + + output = new ItemStack(Config.tcMiscResource, 1, TCMiscResource.KNOWLEDGE_FRAGMENT.ordinal()); + GameRegistry.addRecipe(output, new Object[] { + "FF", "FF", + 'F', Config.miscResources.getStackForType(ResourceType.LORE_FRAGMENT) + }); + + // T1 Thaumaturge's backpack + GameRegistry.addRecipe(new ItemStack(Config.thaumaturgeBackpackT1), new Object[] { + "SWS", "NCN", "SWS", + 'S', Item.silk, + 'W', Block.cloth, + 'N', Item.goldNugget, + 'C', Block.chest + }); + + // Concentrated Fertilizer -> Forestry fertilizer + inputStack = Config.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER); + output = ItemInterface.getItem("fertilizerCompound"); + output.stackSize = 6; + GameRegistry.addRecipe(output, new Object[] { + " S ", " F ", " S ", + 'F', inputStack, + 'S', Block.sand + }); + GameRegistry.addRecipe(output, new Object[] { + " ", "SFS", " ", + 'F', inputStack, + 'S', Block.sand + }); + + output = output.copy(); + output.stackSize = 12; + GameRegistry.addRecipe(output, new Object[] { + "aaa", "aFa", "aaa", + 'F', inputStack, + 'a', ItemInterface.getItem("ash") + }); + + // "bottling" Intellect drops + GameRegistry.addRecipe(new ItemStack(Item.expBottle), new Object[] { + "DDD", "DBD", "DDD", + 'D', Config.drops.getStackForType(DropType.INTELLECT), + 'B', Item.glassBottle + }); + + // "bottling" Crystal aspects. + for (EnumTag tag : EnumTag.values()) + { + if (tag != EnumTag.UNKNOWN) + { + output = new ItemStack(Config.tcEssentiaBottle, 1, tag.id + 1); + GameRegistry.addRecipe(output, new Object[] { + "ccc", "cxc", "ccc", + 'c', new ItemStack(Config.solidFlux, 1, tag.id), + 'x', Config.tcEssentiaBottle + }); + } + } + + // 20 is the 'average' time to centrifuge a comb. + RecipeManagers.centrifugeManager.addRecipe(20, Config.combs.getStackForType(CombType.OCCULT), + new ItemStack[] {Config.wax.getStackForType(WaxType.MAGIC), ItemInterface.getItem("honeyDrop") }, + new int[] { 100, 60 }); + RecipeManagers.centrifugeManager.addRecipe(20, Config.combs.getStackForType(CombType.OTHERWORLDLY), + new ItemStack[] {ItemInterface.getItem("beeswax"), Config.wax.getStackForType(WaxType.MAGIC), ItemInterface.getItem("honeyDrop") }, + new int[] { 50, 20, 100 }); + RecipeManagers.centrifugeManager.addRecipe(20, Config.combs.getStackForType(CombType.PAPERY), + new ItemStack[] {ItemInterface.getItem("beeswax"), Config.wax.getStackForType(WaxType.MAGIC), new ItemStack(Item.paper) }, + new int[] { 80, 20, 5 }); + RecipeManagers.centrifugeManager.addRecipe(25, Config.combs.getStackForType(CombType.STARK), + new ItemStack[] {ItemInterface.getItem("beeswax"), Config.wax.getStackForType(WaxType.MAGIC), Config.propolis.getStackForType(PropolisType.STARK) }, + new int[] { 10, 95, 15 }); + RecipeManagers.centrifugeManager.addRecipe(25, Config.combs.getStackForType(CombType.AIRY), + new ItemStack[] {Config.wax.getStackForType(WaxType.MAGIC), Config.propolis.getStackForType(PropolisType.AIR) }, + new int[] { 100, 65 }); + RecipeManagers.centrifugeManager.addRecipe(25, Config.combs.getStackForType(CombType.FIREY), + new ItemStack[] {Config.wax.getStackForType(WaxType.MAGIC), Config.propolis.getStackForType(PropolisType.FIRE) }, + new int[] { 100, 65 }); + RecipeManagers.centrifugeManager.addRecipe(25, Config.combs.getStackForType(CombType.WATERY), + new ItemStack[] {Config.wax.getStackForType(WaxType.MAGIC), Config.propolis.getStackForType(PropolisType.WATER)}, + new int[] { 100, 65 }); + RecipeManagers.centrifugeManager.addRecipe(25, Config.combs.getStackForType(CombType.EARTHY), + new ItemStack[] {Config.wax.getStackForType(WaxType.MAGIC), Config.propolis.getStackForType(PropolisType.EARTH) }, + new int[] { 100, 65 }); + RecipeManagers.centrifugeManager.addRecipe(25, Config.combs.getStackForType(CombType.INFUSED), + new ItemStack[] {Config.wax.getStackForType(WaxType.MAGIC), Config.wax.getStackForType(WaxType.MAGIC), Config.propolis.getStackForType(PropolisType.INFUSED) }, + 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 }); + 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 }); + + RecipeManagers.centrifugeManager.addRecipe(8, Config.propolis.getStackForType(PropolisType.STARK), + new ItemStack[] {new ItemStack(Config.tcShard, 1, TCShardType.DULL.ordinal())}, + new int[] { 13 }); + RecipeManagers.centrifugeManager.addRecipe(8, Config.propolis.getStackForType(PropolisType.AIR), + new ItemStack[] {new ItemStack(Config.tcShard, 1, TCShardType.AIR.ordinal())}, + new int[] { 10 }); + RecipeManagers.centrifugeManager.addRecipe(8, Config.propolis.getStackForType(PropolisType.FIRE), + new ItemStack[] {new ItemStack(Config.tcShard, 1, TCShardType.FIRE.ordinal())}, + new int[] { 10 }); + RecipeManagers.centrifugeManager.addRecipe(8, Config.propolis.getStackForType(PropolisType.WATER), + new ItemStack[] {new ItemStack(Config.tcShard, 1, TCShardType.WATER.ordinal())}, + new int[] { 10 }); + RecipeManagers.centrifugeManager.addRecipe(8, Config.propolis.getStackForType(PropolisType.EARTH), + new ItemStack[] {new ItemStack(Config.tcShard, 1, TCShardType.EARTH.ordinal())}, + new int[] { 10 }); + RecipeManagers.centrifugeManager.addRecipe(8, Config.propolis.getStackForType(PropolisType.INFUSED), + new ItemStack[] {new ItemStack(Config.tcShard, 1, TCShardType.MAGIC.ordinal())}, + new int[] { 10 }); + + // Squeezer recipes + RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[] {Config.propolis.getStackForType(PropolisType.FIRE) }, + new LiquidStack(Block.lavaStill, 250), + new ItemStack(Config.tcShard, 1, TCShardType.FIRE.ordinal()), 18); + RecipeManagers.squeezerManager.addRecipe(20, new ItemStack[] {Config.propolis.getStackForType(PropolisType.WATER) }, + new LiquidStack(Block.waterStill, 500), + new ItemStack(Config.tcShard, 1, TCShardType.WATER.ordinal()), 18); + + // Carpenter recipes + inputStack = ItemInterface.getItem("craftingMaterial"); + inputStack.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, + 'T', new ItemStack(Config.thaumaturgeBackpackT1) + }); + + output = BlockInterface.getBlock("candle"); + output.stackSize = 24; + RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(Block.waterStill, 600), null, output, new Object[] { + " S ", "WWW", "WWW", + 'W', Config.wax, + 'S', Item.silk + }); + + output = BlockInterface.getBlock("candle"); + output.stackSize = 6; + 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", + 'W', Config.wax, + 'S', inputStack + }); + + output = Config.miscResources.getStackForType(ResourceType.AROMATIC_LUMP, 2); + RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(ItemInterface.getItem("liquidHoney").itemID, 1000), null, output, new Object[] { + " P ", "JDJ", " P ", + 'P', ItemInterface.getItem("pollen"), + 'J', ItemInterface.getItem("royalJelly"), + 'D', Config.drops.getStackForType(DropType.ENCHANTED) + }); + + RecipeManagers.carpenterManager.addRecipe(30, new LiquidStack(ItemInterface.getItem("liquidHoney").itemID, 1000), null, output, new Object[] { + " J ", "PDP", " J ", + 'P', ItemInterface.getItem("pollen"), + 'J', ItemInterface.getItem("royalJelly"), + 'D', Config.drops.getStackForType(DropType.ENCHANTED) + }); + // Make Aromatic Lumps a swarmer inducer. Chance is /1000. + BeeManager.inducers.put(output, 80); + + + output = Config.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER); + ItemStack inputA = ItemInterface.getItem("apatite"); + ObjectTags tags = (new ObjectTags()).add(EnumTag.CROP, 12); + output.stackSize = 2; + ThaumcraftApi.addShapelessInfusionCraftingRecipe("FERTILIZER", "FERTILIZER", 5, tags, output, new Object[] { + inputA + }); + + output = new ItemStack(Config.hiveFrameMagic); + inputA = ItemInterface.getItem("frameUntreated"); + tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8); + ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAME", "FRAMEMAGIC", 50, tags, output, new Object[] { + inputA + }); + + 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 ", + '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", + 'F', inputA, + '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); + ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAMEMETA", "FRAMEMETABOLIC", 50, tags, output, new Object[] { + Item.magmaCream, + inputA + }); + + 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, 4); + ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMENECRO", "FRAMENECROTIC", 50, tags, output, new Object[] { + " S ", "SxS", " S ", + 'S', Item.rottenFlesh, + 'x', inputA + }); + + ItemStack drone = BeeGenomeManager.getBeeNBTForSpecies(Allele.Stark, EnumBeeType.DRONE); + ItemStack princess = BeeGenomeManager.getBeeNBTForSpecies(Allele.Stark, EnumBeeType.PRINCESS); + ItemStack airDrone = Allele.Air.getBeeItem(EnumBeeType.DRONE); + ItemStack airPrincess = Allele.Air.getBeeItem(EnumBeeType.PRINCESS); + ItemStack waterDrone = Allele.Water.getBeeItem(EnumBeeType.DRONE); + ItemStack waterPrincess = Allele.Water.getBeeItem(EnumBeeType.PRINCESS); + ItemStack earthDrone = Allele.Earth.getBeeItem(EnumBeeType.DRONE); + ItemStack earthPrincess = Allele.Earth.getBeeItem(EnumBeeType.PRINCESS); + ItemStack fireDrone = Allele.Fire.getBeeItem(EnumBeeType.DRONE); + ItemStack firePrincess = Allele.Fire.getBeeItem(EnumBeeType.PRINCESS); + ItemStack magicDrone = Allele.Infused.getBeeItem(EnumBeeType.DRONE); + ItemStack magicPrincess = Allele.Infused.getBeeItem(EnumBeeType.PRINCESS); + + String researchKey = "BEEINFUSION"; + + tags = (new ObjectTags()).add(EnumTag.WIND, 40).add(EnumTag.MOTION, 24); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION1", airDrone, + new ItemStack[] { drone, new ItemStack(Config.tcShard, 1, TCShardType.AIR.ordinal())}, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION2", airPrincess, + new ItemStack[] { princess , new ItemStack(Config.tcShard, 1, TCShardType.AIR.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + + tags = (new ObjectTags()).add(EnumTag.FIRE, 40).add( EnumTag.POWER, 24); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION3", fireDrone, new Object[] + { drone, new ItemStack(Config.tcShard, 1, TCShardType.FIRE.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION4", firePrincess, new Object[] + { princess, new ItemStack(Config.tcShard, 1, TCShardType.FIRE.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + + tags = (new ObjectTags()).add(EnumTag.WATER, 40).add( EnumTag.COLD, 24); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION5", waterDrone, new Object[] + { drone, new ItemStack(Config.tcShard, 1, TCShardType.WATER.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION6", waterPrincess, new Object[] + { princess, new ItemStack(Config.tcShard, 1, TCShardType.WATER.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + + tags = (new ObjectTags()).add(EnumTag.EARTH, 40).add( EnumTag.ROCK, 24); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION7", earthDrone, new Object[] + { drone, new ItemStack(Config.tcShard, 1, TCShardType.EARTH.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION8", earthPrincess, new Object[] + { princess, new ItemStack(Config.tcShard, 1, TCShardType.EARTH.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + + tags = new ObjectTags().add(EnumTag.MAGIC, 40).add(EnumTag.FLUX, 24); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", magicDrone, new Object[] + { drone, new ItemStack(Config.tcShard, 1, TCShardType.MAGIC.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", magicPrincess, new Object[] + { princess, new ItemStack(Config.tcShard, 1, TCShardType.MAGIC.ordinal()) }, + 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); + + + + registerLiquidContainer(Config.magicCapsule); + } + + private static void registerLiquidContainer(ItemCapsule baseCapsule) + { + ItemStack empty = new ItemStack(baseCapsule, 1, 0); + ItemStack filled; + LiquidStack liquid = null; + + for (LiquidType l : LiquidType.values()) + { + switch (l) + { + case EMPTY: + liquid = null; + break; + case WATER: + liquid = new LiquidStack(Block.waterStill, baseCapsule.getType().capacity); + break; + case LAVA: + liquid = new LiquidStack(Block.lavaStill, baseCapsule.getType().capacity); + break; + default: + liquid = LiquidDictionary.getLiquid(l.liquidID, baseCapsule.getType().capacity); + break; + } + + if (liquid != null) + { + filled = new ItemStack(baseCapsule, 1, l.ordinal()); + LiquidContainerRegistry.registerLiquid(new LiquidContainerData(liquid, filled, empty)); + + // Register with Squeezer/Bottler + RecipeManagers.bottlerManager.addRecipe(5, liquid, empty, filled); + RecipeManagers.squeezerManager.addRecipe(10, new ItemStack[] {filled} , liquid, + Config.wax.getStackForType(WaxType.MAGIC), 20); + l.available = true; + } + } + // Empty will be set to unavailable. Obviously, it always is. + LiquidType.EMPTY.available = true; + } +} diff --git a/thaumicbees_src/thaumicbees/bees/MoonPhase.java b/thaumicbees_src/thaumicbees/main/utils/MoonPhase.java similarity index 88% rename from thaumicbees_src/thaumicbees/bees/MoonPhase.java rename to thaumicbees_src/thaumicbees/main/utils/MoonPhase.java index 2df6fb8..7d71cee 100644 --- a/thaumicbees_src/thaumicbees/bees/MoonPhase.java +++ b/thaumicbees_src/thaumicbees/main/utils/MoonPhase.java @@ -1,4 +1,4 @@ -package thaumicbees.bees; +package thaumicbees.main.utils; import net.minecraft.world.World; @@ -37,6 +37,6 @@ public enum MoonPhase public static MoonPhase getMoonPhase(World w) { - return MoonPhase.values()[(int)(w.getWorldTime() / 24000L) % 8]; + return MoonPhase.values()[(int)((w.getWorldTime() + 6000) / 24000L) % 8]; } } diff --git a/thaumicbees_src/thaumicbees/main/VersionInfo.java b/thaumicbees_src/thaumicbees/main/utils/VersionInfo.java similarity index 92% rename from thaumicbees_src/thaumicbees/main/VersionInfo.java rename to thaumicbees_src/thaumicbees/main/utils/VersionInfo.java index 51a6c8b..d8ee5eb 100644 --- a/thaumicbees_src/thaumicbees/main/VersionInfo.java +++ b/thaumicbees_src/thaumicbees/main/utils/VersionInfo.java @@ -1,4 +1,4 @@ -package thaumicbees.main; +package thaumicbees.main.utils; public class VersionInfo { diff --git a/thaumicbees_src/thaumicbees/thaumcraft/ThaumcraftCompat.java b/thaumicbees_src/thaumicbees/thaumcraft/ThaumcraftCompat.java index 445d99e..9a3d3f7 100644 --- a/thaumicbees_src/thaumicbees/thaumcraft/ThaumcraftCompat.java +++ b/thaumicbees_src/thaumicbees/thaumcraft/ThaumcraftCompat.java @@ -4,15 +4,14 @@ import java.io.File; import java.util.ArrayList; import thaumcraft.api.EnumTag; +import thaumcraft.api.ItemApi; import thaumcraft.api.ObjectTags; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.research.ResearchItem; import thaumcraft.api.research.ResearchList; +import thaumicbees.bees.BeeGenomeManager; import thaumicbees.bees.genetics.Allele; -import thaumicbees.bees.genetics.BeeGenomeManager; -import thaumicbees.block.BlockManager; import thaumicbees.item.ItemComb; -import thaumicbees.item.ItemManager; import thaumicbees.item.ItemMiscResources; import thaumicbees.item.types.CombType; import thaumicbees.item.types.DropType; @@ -20,6 +19,7 @@ import thaumicbees.item.types.LiquidType; import thaumicbees.item.types.ResourceType; import thaumicbees.item.types.WaxType; import thaumicbees.main.CommonProxy; +import thaumicbees.main.Config; import thaumicbees.main.ThaumicBees; import thaumicbees.storage.BackpackDefinition; @@ -41,45 +41,26 @@ import net.minecraftforge.common.Configuration; public class ThaumcraftCompat { - - public static void parseThaumcraftConfig(String configPath) + public static void getThaumcraftBlocks() { - Configuration tcConfig = new Configuration(new File(configPath + "/Thaumcraft.cfg")); - Property p; - - tcConfig.load(); - - // Load blocks out of the Thaumcraft config to get their IDs; - 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", 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]; + Config.tcPlant = Block.blocksList[ItemApi.getItem("blockCustomPlant", 0).itemID]; + Config.tcCandle = Block.blocksList[ItemApi.getItem("blockCandle", 0).itemID]; + Config.tcCrystal = Block.blocksList[ItemApi.getItem("blockCrystal", 0).itemID]; + Config.tcMarker = Block.blocksList[ItemApi.getItem("blockMarker", 0).itemID]; + Config.tcJar = Block.blocksList[ItemApi.getItem("blockJar", 0).itemID]; + Config.tcLog = Block.blocksList[ItemApi.getItem("blockMagicalLog", 0).itemID]; + Config.tcLeaf = Block.blocksList[ItemApi.getItem("blockMagicalLeaves", 0).itemID]; + Config.tcWarded = Block.blocksList[ItemApi.getItem("blockWarded", 0).itemID]; + } + + public static void getThaumcraftItems() + { + Config.tcFilledJar = Item.itemsList[ItemApi.getItem("itemJarFilled", 0).itemID]; + Config.tcMiscResource = Item.itemsList[ItemApi.getItem("itemResource", 0).itemID]; + Config.tcEssentiaBottle = Item.itemsList[ItemApi.getItem("itemEssence", 0).itemID]; + Config.tcShard = Item.itemsList[ItemApi.getItem("itemShard", 0).itemID]; + Config.tcGolem = Item.itemsList[ItemApi.getItem("itemGolemPlacer", 0).itemID]; + Config.tcWispEssence = Item.itemsList[ItemApi.getItem("itemWispEssence", 0).itemID]; } public static void setupBackpacks() @@ -87,34 +68,35 @@ public class ThaumcraftCompat if (ThaumicBees.getInstanceConfig().AddThaumcraftItemsToBackpacks) { // Add all shards and Thaumium to miner's backpack - String ids = ItemManager.tcShard.itemID + ":" + -1 + ";" - + ItemManager.tcMiscResource.itemID + ":" + TCMiscResource.THAUMIUM.ordinal(); + String ids = Config.tcShard.itemID + ":" + -1 + ";" + + Config.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; + ids = Config.tcMiscResource.itemID + ":" + -1 + ";" + + Config.tcShard.itemID + ":" + -1 + ";" + + Config.tcFilledJar.itemID + ":" + -1 + ";" + + Config.tcCrystal.blockID + ":" + -1 + ";" + + Config.tcJar.blockID + ":" + -1 + ";" + + Config.tcGolem.itemID + ":" + -1 + ";" + + Config.solidFlux.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"; + ids = Config.tcPlant.blockID + ":" + "-1" + ";" + + Config.tcLeaf.blockID + ":" + -1 + ";" + + Config.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(); + ids = Config.tcWispEssence.itemID + ":" + -1 + ";" + + Config.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; + ids = Config.tcCandle.blockID + ":" + -1 + ";" + + Config.tcMarker.blockID + ":" + -1 + ";" + + Config.tcWarded.blockID + ":" + -1; FMLInterModComms.sendMessage("Forestry", "add-backpack-items", "builder@" + ids); } } @@ -125,34 +107,34 @@ public class ThaumcraftCompat ItemStack itemStack; tags = new ObjectTags().add(EnumTag.MAGIC, 2); - ThaumcraftApi.registerObjectTag(ItemManager.wax.itemID, WaxType.MAGIC.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.wax.itemID, WaxType.MAGIC.ordinal(), tags); tags = new ObjectTags().add(EnumTag.MAGIC, 1); - ThaumcraftApi.registerObjectTag(ItemManager.drops.itemID, DropType.ENCHANTED.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.drops.itemID, DropType.ENCHANTED.ordinal(), tags); tags = new ObjectTags().add(EnumTag.KNOWLEDGE, 1); - ThaumcraftApi.registerObjectTag(ItemManager.drops.itemID, DropType.INTELLECT.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.drops.itemID, DropType.INTELLECT.ordinal(), tags); tags = new ObjectTags().add(EnumTag.KNOWLEDGE, 3); - ThaumcraftApi.registerObjectTag(ItemManager.miscResources.itemID, ResourceType.LORE_FRAGMENT.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.miscResources.itemID, ResourceType.LORE_FRAGMENT.ordinal(), tags); tags = new ObjectTags().add(EnumTag.MAGIC, 1).add(EnumTag.INSECT, 2).add(EnumTag.CONTROL, 1); - ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, CombType.STARK.ordinal(), tags); - ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, CombType.AIRY.ordinal(), tags); - ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, CombType.FIREY.ordinal(), tags); - ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, CombType.WATERY.ordinal(), tags); - ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, CombType.EARTHY.ordinal(), tags); - ThaumcraftApi.registerObjectTag(ItemManager.combs.itemID, CombType.INFUSED.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.STARK.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.AIRY.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.FIREY.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.WATERY.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.EARTHY.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, CombType.INFUSED.ordinal(), tags); // Tagging capsules. tags = new ObjectTags().add(EnumTag.MAGIC, 2); - ThaumcraftApi.registerObjectTag(ItemManager.magicCapsule.itemID, -1, tags); + ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, -1, tags); tags = new ObjectTags().add(EnumTag.MAGIC, 2).add(EnumTag.VOID, 2); - ThaumcraftApi.registerObjectTag(ItemManager.magicCapsule.itemID, 0, tags); + ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, 0, tags); tags = new ObjectTags().add(EnumTag.MAGIC, 2).add(EnumTag.WATER, 2); - ThaumcraftApi.registerObjectTag(ItemManager.magicCapsule.itemID, LiquidType.WATER.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, LiquidType.WATER.ordinal(), tags); tags = new ObjectTags().add(EnumTag.MAGIC, 2).add(EnumTag.FIRE, 2); - ThaumcraftApi.registerObjectTag(ItemManager.magicCapsule.itemID, LiquidType.LAVA.ordinal(), tags); + ThaumcraftApi.registerObjectTag(Config.magicCapsule.itemID, LiquidType.LAVA.ordinal(), tags); for (EnumTag tag : EnumTag.values()) { @@ -161,7 +143,7 @@ public class ThaumcraftCompat continue; } tags = new ObjectTags().add(tag, 1); - ThaumcraftApi.registerObjectTag(ItemManager.solidFlux.itemID, tag.id, tags); + ThaumcraftApi.registerObjectTag(Config.solidFlux.itemID, tag.id, tags); } // Tag some Forestry stuff. @@ -245,12 +227,12 @@ 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); + ThaumcraftApi.registerObjectTag(Config.combs.itemID, -1, tags); - itemStack = ItemManager.combs.getStackForType(CombType.OCCULT); + itemStack = Config.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); + itemStack = Config.combs.getStackForType(CombType.STARK); ThaumcraftApi.registerObjectTag(itemStack.itemID, itemStack.getItemDamage(), tags); itemStack = ItemInterface.getItem("ambrosia"); @@ -289,7 +271,7 @@ public class ThaumcraftCompat { ObjectTags tags; - ResearchItem startNode = new ResearchItem("TBSTARTNODE", null, 10, 0, ItemManager.miscResources.getStackForType(ResourceType.RESEARCH_StartNode)) + ResearchItem startNode = new ResearchItem("TBSTARTNODE", null, 10, 0, Config.miscResources.getStackForType(ResourceType.RESEARCH_StartNode)) .setAutoUnlock() .registerResearchItem(); @@ -300,7 +282,7 @@ public class ThaumcraftCompat tags = new ObjectTags().add(EnumTag.INSECT, 15).add(EnumTag.MAGIC, 5).add(EnumTag.WATER, 5).add(EnumTag.EARTH, 5) .add(EnumTag.WIND, 5).add(EnumTag.FIRE, 5); - ResearchItem beeInfusion = new ResearchItem("BEEINFUSION", tags, 5, 3, ItemManager.miscResources.getStackForType(ResourceType.RESEARCH_BeeInfusion)) + ResearchItem beeInfusion = new ResearchItem("BEEINFUSION", tags, 5, 3, Config.miscResources.getStackForType(ResourceType.RESEARCH_BeeInfusion)) .setParents(starkHint, ResearchList.getResearch("UTFT")).setHidden() .registerResearchItem(); @@ -311,31 +293,31 @@ public class ThaumcraftCompat tags = new ObjectTags().add(EnumTag.WOOD, 10).add(EnumTag.TOOL, 6).add(EnumTag.INSECT, 15).add(EnumTag.BEAST, 2) .add(EnumTag.MAGIC, 5); - ResearchItem magicFrame = new ResearchItem("HIVEFRAME", tags, 10, -2, ItemManager.hiveFrameMagic) + ResearchItem magicFrame = new ResearchItem("HIVEFRAME", tags, 10, -2, Config.hiveFrameMagic) .setParents(startNode) .registerResearchItem(); tags = new ObjectTags().add(EnumTag.TOOL, 5).add(EnumTag.INSECT, 10).add(EnumTag.ARMOR, 5).add(EnumTag.EXCHANGE, 6) .add(EnumTag.MAGIC, 8); - ResearchItem magicFrame2 = new ResearchItem("HIVEFRAME2", tags, 8, -2, ItemManager.hiveFrameResilient) + ResearchItem magicFrame2 = new ResearchItem("HIVEFRAME2", tags, 8, -2, Config.hiveFrameResilient) .setParents(magicFrame).setHidden() .registerResearchItem(); tags = new ObjectTags().add(EnumTag.TOOL, 4).add(EnumTag.INSECT, 10).add(EnumTag.LIFE, 5).add(EnumTag.EXCHANGE, 6) .add(EnumTag.HEAL, 2).add(EnumTag.FLOWER, 6); - ResearchItem gentleFrame = new ResearchItem("HIVEFRAMEGENTLE", tags, 12, -2, ItemManager.hiveFrameGentle) + ResearchItem gentleFrame = new ResearchItem("HIVEFRAMEGENTLE", tags, 12, -2, Config.hiveFrameGentle) .setParents(magicFrame).setHidden() .registerResearchItem(); tags = new ObjectTags().add(EnumTag.TOOL, 4).add(EnumTag.INSECT, 10).add(EnumTag.LIFE, 6).add(EnumTag.EXCHANGE, 8) .add(EnumTag.MAGIC, 8).add(EnumTag.MOTION, 4).add(EnumTag.FLESH, 4); - ResearchItem metabolicFrame = new ResearchItem("HIVEFRAMEMETA", tags, 9, -3, ItemManager.hiveFrameMetabolic) + ResearchItem metabolicFrame = new ResearchItem("HIVEFRAMEMETA", tags, 9, -3, Config.hiveFrameMetabolic) .setParents(magicFrame).setHidden() .registerResearchItem(); tags = new ObjectTags().add(EnumTag.TOOL, 5).add(EnumTag.INSECT, 10).add(EnumTag.DEATH, 15).add(EnumTag.EXCHANGE, 6) .add(EnumTag.MAGIC, 8).add(EnumTag.POISON, 6); - ResearchItem necroticFrame = new ResearchItem("HIVEFRAMENECRO", tags, 11, -3, ItemManager.hiveFrameNecrotic) + ResearchItem necroticFrame = new ResearchItem("HIVEFRAMENECRO", tags, 11, -3, Config.hiveFrameNecrotic) .setParents(magicFrame).setHidden() .registerResearchItem(); @@ -352,116 +334,6 @@ public class ThaumcraftCompat .setParents(startNode) .registerResearchItem();*/ } - - public static void setupCrafting() - { - ItemStack output = ItemManager.miscResources.getStackForType(ResourceType.EXTENDED_FERTILIZER); - ItemStack inputA = ItemInterface.getItem("apatite"); - ObjectTags tags = (new ObjectTags()).add(EnumTag.CROP, 12); - output.stackSize = 2; - ThaumcraftApi.addShapelessInfusionCraftingRecipe("FERTILIZER", "FERTILIZER", 5, tags, output, new Object[] { - inputA - }); - - output = new ItemStack(ItemManager.hiveFrameMagic); - inputA = ItemInterface.getItem("frameUntreated"); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8); - ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAME", "FRAMEMAGIC", 50, tags, output, new Object[] { - inputA - }); - - output = new ItemStack(ItemManager.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 ", - 'f', ItemManager.hiveFrameMagic, - 'i', Item.ingotIron - }); - - output = new ItemStack(ItemManager.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", - 'F', inputA, - 'w', ItemInterface.getItem("beeswax") - - }); - - output = new ItemStack(ItemManager.hiveFrameMetabolic); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.LIFE, 8).add(EnumTag.MOTION, 8) - .add(EnumTag.EXCHANGE, 8); - ThaumcraftApi.addShapelessInfusionCraftingRecipe("HIVEFRAMEMETA", "FRAMEMETABOLIC", 50, tags, output, new Object[] { - Item.magmaCream, - inputA - }); - - output = new ItemStack(ItemManager.hiveFrameNecrotic); - tags = new ObjectTags().add(EnumTag.WOOD, 4).add(EnumTag.INSECT, 8).add(EnumTag.EXCHANGE, 12).add(EnumTag.DEATH, 10) - .add(EnumTag.POISON, 5); - ThaumcraftApi.addInfusionCraftingRecipe("HIVEFRAMENECRO", "FRAMENECROTIC", 50, tags, output, new Object[] { - " S ", "SxS", " S ", - 'S', Item.rottenFlesh, - 'x', inputA - }); - } - - public static void setupBeeInfusions(World world) - { - ItemStack drone = BeeGenomeManager.getBeeNBTForSpecies(Allele.Stark, EnumBeeType.DRONE); - ItemStack princess = BeeGenomeManager.getBeeNBTForSpecies(Allele.Stark, EnumBeeType.PRINCESS); - ItemStack airDrone = Allele.Air.getBeeItem(world, EnumBeeType.DRONE); - ItemStack airPrincess = Allele.Air.getBeeItem(world, EnumBeeType.PRINCESS); - ItemStack waterDrone = Allele.Water.getBeeItem(world, EnumBeeType.DRONE); - ItemStack waterPrincess = Allele.Water.getBeeItem(world, EnumBeeType.PRINCESS); - ItemStack earthDrone = Allele.Earth.getBeeItem(world, EnumBeeType.DRONE); - ItemStack earthPrincess = Allele.Earth.getBeeItem(world, EnumBeeType.PRINCESS); - ItemStack fireDrone = Allele.Fire.getBeeItem(world, EnumBeeType.DRONE); - ItemStack firePrincess = Allele.Fire.getBeeItem(world, EnumBeeType.PRINCESS); - ItemStack magicDrone = Allele.Infused.getBeeItem(world, EnumBeeType.DRONE); - ItemStack magicPrincess = Allele.Infused.getBeeItem(world, EnumBeeType.PRINCESS); - - String researchKey = "BEEINFUSION"; - - ObjectTags tags = (new ObjectTags()).add(EnumTag.WIND, 40).add(EnumTag.MOTION, 20); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION1", airDrone, - new ItemStack[] { drone, new ItemStack(ItemManager.tcShard, 1, TCShardType.AIR.ordinal())}, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION2", airPrincess, - new ItemStack[] { princess , new ItemStack(ItemManager.tcShard, 1, TCShardType.AIR.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - - tags = (new ObjectTags()).add(EnumTag.FIRE, 40).add( EnumTag.POWER, 20); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION3", fireDrone, new Object[] - { drone, new ItemStack(ItemManager.tcShard, 1, TCShardType.FIRE.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION4", firePrincess, new Object[] - { princess, new ItemStack(ItemManager.tcShard, 1, TCShardType.FIRE.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - - tags = (new ObjectTags()).add(EnumTag.WATER, 40).add( EnumTag.COLD, 20); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION5", waterDrone, new Object[] - { drone, new ItemStack(ItemManager.tcShard, 1, TCShardType.WATER.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION6", waterPrincess, new Object[] - { princess, new ItemStack(ItemManager.tcShard, 1, TCShardType.WATER.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - - tags = (new ObjectTags()).add(EnumTag.EARTH, 40).add( EnumTag.ROCK, 20); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION7", earthDrone, new Object[] - { drone, new ItemStack(ItemManager.tcShard, 1, TCShardType.EARTH.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION8", earthPrincess, new Object[] - { princess, new ItemStack(ItemManager.tcShard, 1, TCShardType.EARTH.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - - tags = new ObjectTags().add(EnumTag.MAGIC, 40).add(EnumTag.FLUX, 20); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION9", magicDrone, new Object[] - { drone, new ItemStack(ItemManager.tcShard, 1, TCShardType.MAGIC.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - ShapelessBeeInfusionCraftingRecipe.createNewRecipe(researchKey, "BEEINFUSION0", magicPrincess, new Object[] - { princess, new ItemStack(ItemManager.tcShard, 1, TCShardType.MAGIC.ordinal()) }, - 100, tags, Allele.Stark, EnumBeeChromosome.SPECIES); - } public static void registerResearch() {