Fucktons of refactoring.

*Moving ItemManager & BlockManager functionality into Config object.
*New CraftingManager to hold all the crafting stuff
*Shuffling some classes around in packages and whatnot.
*Switching to use the ItemInterface provided by Thaumcraft's API rather than reading configs.
*New texture stuff for a magic apiary.
This commit is contained in:
MysteriousAges committed 2013-02-05 01:16:01 -08:00
1 parent 827199b518
commit 6a26bec4e1
21 files changed
+754 -750

No files matched your search

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 59 KiB

@@ -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;
@@ -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());
@@ -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
{
@@ -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()
@@ -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;
}
@@ -1,4 +1,4 @@
package thaumicbees.bees;
package thaumicbees.bees.genetics;
import thaumcraft.api.EnumTag;
import thaumcraft.api.ObjectTags;
@@ -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));
}
}
}
@@ -1,4 +1,4 @@
package thaumicbees.bees;
package thaumicbees.bees.genetics;
import net.minecraft.block.Block;
import net.minecraft.item.ItemStack;
@@ -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;
}
@@ -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);
}
}
@@ -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)
{
}
}
@@ -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;
}
}
@@ -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);
}
}
@@ -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;
}
@@ -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);
}
}
@@ -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;
}
}
@@ -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;
}
}
@@ -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];
}
}
@@ -1,4 +1,4 @@
package thaumicbees.main;
package thaumicbees.main.utils;
public class VersionInfo
{
@@ -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()
{