From e86c95cdc2ae0fd09029ff31af2cc91e70c3fc4a Mon Sep 17 00:00:00 2001 From: MysteriousAges Date: Thu, 27 Dec 2012 00:27:23 -0800 Subject: [PATCH] Moving stuff around. Adding new produce items for bees. --- thaumicbees/main/ItemMagicalComb.java | 49 --------- thaumicbees/main/ThaumicBees.java | 60 ----------- .../main/research/ThaumcraftPlugin.java | 13 --- thaumicbees_res/gfx/thaumicbees/items.png | Bin 0 -> 50704 bytes .../research/thaumicbees/research.xml | 9 ++ .../forestry}/plugins/PluginThaumicBees.java | 2 +- .../thaumicbees}/bees/BeeBranch.java | 2 +- .../thaumicbees}/bees/BeeMutation.java | 21 +++- .../thaumicbees}/bees/BeeSpecies.java | 4 +- .../bees/FlowerProviderBookshelf.java | 2 +- .../thaumicbees}/bees/ThaumicBeesPlugin.java | 12 ++- .../thaumicbees/block/BlockManager.java | 17 ++++ .../thaumicbees/item/ItemComb.java | 93 ++++++++++++++++++ .../item/ItemKnowledgeFragment.java | 18 ++++ .../thaumicbees/item/ItemMagicalWax.java | 39 ++++++++ .../thaumicbees/item/ItemManager.java | 30 ++++++ .../thaumicbees/item/ItemPropolis.java | 39 ++++++++ .../thaumicbees/main/ClientProxy.java | 20 ++++ .../thaumicbees/main/CommonProxy.java | 19 ++++ .../thaumicbees/main/ThaumcraftCompat.java | 64 ++++++++++++ .../thaumicbees/main/ThaumicBees.java | 88 +++++++++++++++++ 21 files changed, 464 insertions(+), 137 deletions(-) delete mode 100644 thaumicbees/main/ItemMagicalComb.java delete mode 100644 thaumicbees/main/ThaumicBees.java delete mode 100644 thaumicbees/main/research/ThaumcraftPlugin.java create mode 100644 thaumicbees_res/gfx/thaumicbees/items.png create mode 100644 thaumicbees_res/research/thaumicbees/research.xml rename {forestry => thaumicbees_src/forestry}/plugins/PluginThaumicBees.java (65%) rename {thaumicbees/main => thaumicbees_src/thaumicbees}/bees/BeeBranch.java (97%) rename {thaumicbees/main => thaumicbees_src/thaumicbees}/bees/BeeMutation.java (74%) rename {thaumicbees/main => thaumicbees_src/thaumicbees}/bees/BeeSpecies.java (99%) rename {thaumicbees/main => thaumicbees_src/thaumicbees}/bees/FlowerProviderBookshelf.java (95%) rename {thaumicbees/main => thaumicbees_src/thaumicbees}/bees/ThaumicBeesPlugin.java (96%) create mode 100644 thaumicbees_src/thaumicbees/block/BlockManager.java create mode 100644 thaumicbees_src/thaumicbees/item/ItemComb.java create mode 100644 thaumicbees_src/thaumicbees/item/ItemKnowledgeFragment.java create mode 100644 thaumicbees_src/thaumicbees/item/ItemMagicalWax.java create mode 100644 thaumicbees_src/thaumicbees/item/ItemManager.java create mode 100644 thaumicbees_src/thaumicbees/item/ItemPropolis.java create mode 100644 thaumicbees_src/thaumicbees/main/ClientProxy.java create mode 100644 thaumicbees_src/thaumicbees/main/CommonProxy.java create mode 100644 thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java create mode 100644 thaumicbees_src/thaumicbees/main/ThaumicBees.java diff --git a/thaumicbees/main/ItemMagicalComb.java b/thaumicbees/main/ItemMagicalComb.java deleted file mode 100644 index 2d9fbf5..0000000 --- a/thaumicbees/main/ItemMagicalComb.java +++ /dev/null @@ -1,49 +0,0 @@ -package thaumicbees.main; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ItemMagicalComb extends Item -{ - - private String name; - private int colour[]; - - public ItemMagicalComb(String combName, int itemID, int colour1, int colour2) - { - super(itemID); - this.name = combName; - this.colour = new int[2]; - this.colour[0] = colour1; - this.colour[1] = colour2; - } - - @Override - public int getRenderPasses(int metadata) - { - return 2; - } - - @Override - public String getTextureFile() - { - return ThaumicBees.FORESTRY_GFX_ITEMS; - } - - @Override - public int getIconIndex(ItemStack stack, int pass) - { - return 12 * 16 + 6 + pass; - } - - @Override - @SideOnly(Side.CLIENT) - public int getColorFromItemStack(ItemStack par1ItemStack, int pass) - { - - return (pass < 2) ? this.colour[pass] : 0xFFFFFF; - } - -} diff --git a/thaumicbees/main/ThaumicBees.java b/thaumicbees/main/ThaumicBees.java deleted file mode 100644 index 3992c92..0000000 --- a/thaumicbees/main/ThaumicBees.java +++ /dev/null @@ -1,60 +0,0 @@ -package thaumicbees.main; - -import cpw.mods.fml.common.Mod; -import cpw.mods.fml.common.event.*; -import forestry.api.apiculture.EnumBeeType; -import java.io.PrintStream; -import java.lang.reflect.Field; - -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.event.EventBus; -import net.minecraftforge.event.ForgeSubscribe; -import net.minecraftforge.event.world.WorldEvent; -import thaumcraft.api.*; -import thaumicbees.main.bees.BeeSpecies; -import thaumicbees.main.bees.ThaumicBeesPlugin; - -@Mod(modid="ThaumicBees", name="Thaumic Bees", version="0.0", dependencies="required-after:Forestry;required-after:Thaumcraft") -public class ThaumicBees -{ - - @Mod.Instance(value="ThaumicBees") - public static ThaumicBees object; - private boolean ThaumcraftRecipesAdded; - public static String FORESTRY_GFX_ITEMS; - - public ThaumicBees() - { - ThaumcraftRecipesAdded = false; - } - - @Mod.PreInit - public void preInit(FMLPreInitializationEvent fmlpreinitializationevent) - { - - } - - @Mod.Init - public void init(FMLInitializationEvent fmlinitializationevent) - { - - } - - @Mod.PostInit - public void postInit(FMLPostInitializationEvent e) - { - MinecraftForge.EVENT_BUS.register(this); - } - - @ForgeSubscribe - public void worldLoad(net.minecraftforge.event.world.WorldEvent.Load e) - { - if (!ThaumcraftRecipesAdded) - { - ThaumicBeesPlugin.setupBeeInfusions(e.world); - ThaumcraftRecipesAdded = true; - } - } -} diff --git a/thaumicbees/main/research/ThaumcraftPlugin.java b/thaumicbees/main/research/ThaumcraftPlugin.java deleted file mode 100644 index fb3045a..0000000 --- a/thaumicbees/main/research/ThaumcraftPlugin.java +++ /dev/null @@ -1,13 +0,0 @@ -package thaumicbees.main.research; - -public class ThaumcraftPlugin -{ - - public static void setupResearch() - { - } - - public static void setupCrafting() - { - } -} diff --git a/thaumicbees_res/gfx/thaumicbees/items.png b/thaumicbees_res/gfx/thaumicbees/items.png new file mode 100644 index 0000000000000000000000000000000000000000..f441f24130377c98de08a240aeddb00e6b224c99 GIT binary patch literal 50704 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 + +Test Bees +Magical Bees + +Test, test test. + +Lorem Ipsom something something. + \ No newline at end of file diff --git a/forestry/plugins/PluginThaumicBees.java b/thaumicbees_src/forestry/plugins/PluginThaumicBees.java similarity index 65% rename from forestry/plugins/PluginThaumicBees.java rename to thaumicbees_src/forestry/plugins/PluginThaumicBees.java index 737cbda..892c20b 100644 --- a/forestry/plugins/PluginThaumicBees.java +++ b/thaumicbees_src/forestry/plugins/PluginThaumicBees.java @@ -1,6 +1,6 @@ package forestry.plugins; -import thaumicbees.main.bees.ThaumicBeesPlugin; +import thaumicbees.bees.ThaumicBeesPlugin; public class PluginThaumicBees extends ThaumicBeesPlugin { diff --git a/thaumicbees/main/bees/BeeBranch.java b/thaumicbees_src/thaumicbees/bees/BeeBranch.java similarity index 97% rename from thaumicbees/main/bees/BeeBranch.java rename to thaumicbees_src/thaumicbees/bees/BeeBranch.java index 7441115..35b2f86 100644 --- a/thaumicbees/main/bees/BeeBranch.java +++ b/thaumicbees_src/thaumicbees/bees/BeeBranch.java @@ -1,4 +1,4 @@ -package thaumicbees.main.bees; +package thaumicbees.bees; import forestry.api.apiculture.IBeeBranch; import forestry.api.genetics.IAlleleSpecies; diff --git a/thaumicbees/main/bees/BeeMutation.java b/thaumicbees_src/thaumicbees/bees/BeeMutation.java similarity index 74% rename from thaumicbees/main/bees/BeeMutation.java rename to thaumicbees_src/thaumicbees/bees/BeeMutation.java index c81089f..2a0aead 100644 --- a/thaumicbees/main/bees/BeeMutation.java +++ b/thaumicbees_src/thaumicbees/bees/BeeMutation.java @@ -1,4 +1,4 @@ -package thaumicbees.main.bees; +package thaumicbees.bees; import forestry.api.apiculture.*; import forestry.api.genetics.IAllele; @@ -20,10 +20,12 @@ public class BeeMutation implements IBeeMutation public static BeeMutation Pupil; public static BeeMutation Scholarly; public static BeeMutation Savant; + + private IAllele parent1; private IAllele parent2; private IAllele mutationTemplate[]; - private int chance; + private int baseChance; private boolean isSecret; public BeeMutation(IAlleleBeeSpecies species0, IAlleleBeeSpecies species1, IAllele producesGenome[], int percentChance, boolean hide) @@ -31,14 +33,23 @@ public class BeeMutation implements IBeeMutation parent1 = species0; parent2 = species1; mutationTemplate = producesGenome; - chance = percentChance; + baseChance = percentChance; isSecret = hide; BeeManager.beeMutations.add(this); } public int getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1) { - return Math.round((float) chance * BeeManager.breedingManager.getBeekeepingMode(housing.getWorld()).getMutationModifier((IBeeGenome) genome0, (IBeeGenome) genome1)); + int chance = 0; + + if ((this.parent1.getUID().equals(allele0.getUID())) && this.parent2.getUID().equals(allele1.getUID()) || + this.parent1.getUID().equals(allele1.getUID()) && this.parent2.getUID().equals(allele0.getUID())) + { + // This mutation applies. Continue calculation. + chance = Math.round((float) this.baseChance * BeeManager.breedingManager.getBeekeepingMode(housing.getWorld()).getMutationModifier((IBeeGenome) genome0, (IBeeGenome) genome1)); + } + + return chance; } public IAllele getAllele0() @@ -58,7 +69,7 @@ public class BeeMutation implements IBeeMutation public int getBaseChance() { - return chance; + return baseChance; } public boolean isPartner(IAllele allele) diff --git a/thaumicbees/main/bees/BeeSpecies.java b/thaumicbees_src/thaumicbees/bees/BeeSpecies.java similarity index 99% rename from thaumicbees/main/bees/BeeSpecies.java rename to thaumicbees_src/thaumicbees/bees/BeeSpecies.java index 97dc8f0..bfce471 100644 --- a/thaumicbees/main/bees/BeeSpecies.java +++ b/thaumicbees_src/thaumicbees/bees/BeeSpecies.java @@ -1,4 +1,4 @@ -package thaumicbees.main.bees; +package thaumicbees.bees; import forestry.api.apiculture.*; import forestry.api.core.EnumHumidity; @@ -200,7 +200,7 @@ public class BeeSpecies implements IAlleleBeeSpecies public boolean isJubilant(World world, int biomeid, int x, int i, int j) { - return false; + return true; } /** diff --git a/thaumicbees/main/bees/FlowerProviderBookshelf.java b/thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java similarity index 95% rename from thaumicbees/main/bees/FlowerProviderBookshelf.java rename to thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java index 1baec27..0a4e412 100644 --- a/thaumicbees/main/bees/FlowerProviderBookshelf.java +++ b/thaumicbees_src/thaumicbees/bees/FlowerProviderBookshelf.java @@ -1,4 +1,4 @@ -package thaumicbees.main.bees; +package thaumicbees.bees; import net.minecraft.item.ItemStack; import net.minecraft.world.World; diff --git a/thaumicbees/main/bees/ThaumicBeesPlugin.java b/thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java similarity index 96% rename from thaumicbees/main/bees/ThaumicBeesPlugin.java rename to thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java index 2524240..5c25c4e 100644 --- a/thaumicbees/main/bees/ThaumicBeesPlugin.java +++ b/thaumicbees_src/thaumicbees/bees/ThaumicBeesPlugin.java @@ -1,4 +1,4 @@ -package thaumicbees.main.bees; +package thaumicbees.bees; import cpw.mods.fml.common.network.IGuiHandler; import forestry.api.apiculture.*; @@ -9,6 +9,7 @@ import java.util.Random; import thaumcraft.api.EnumTag; import thaumcraft.api.ObjectTags; import thaumcraft.api.ThaumcraftApi; +import thaumicbees.item.ItemManager; import net.minecraft.command.ICommand; import net.minecraft.item.Item; @@ -52,6 +53,7 @@ public class ThaumicBeesPlugin implements IPlugin BeeSpecies.Esoteric = new BeeSpecies("Esoteric", "", "secretiore", BeeBranch.Arcane, 0, 0x001099, 0xcc763c, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, hideSpecies, true, true); + BeeSpecies.Esoteric.addProduct(new ItemStack(ItemManager.magicalComb), 5); BeeSpecies.Esoteric.setGene(EnumBeeChromosome.TEMPERATURE_TOLERANCE, AlleleManager.getAllele("toleranceBoth2")); breedingMgr.registerBeeTemplate(BeeSpecies.Esoteric.getGenome()); @@ -166,15 +168,15 @@ public class ThaumicBeesPlugin implements IPlugin private void setupBeeMutations() { - BeeMutation.Esoteric = new BeeMutation(BeeSpecies.getBaseSpecies("Modest"), BeeSpecies.getBaseSpecies("Wintry"), BeeSpecies.Esoteric.getGenome(), 10, false); - BeeMutation.Esoteric1 = new BeeMutation(BeeSpecies.getBaseSpecies("Marshy"), BeeSpecies.getBaseSpecies("Cultivated"), BeeSpecies.Esoteric.getGenome(), 20, false); + BeeMutation.Esoteric = new BeeMutation(BeeSpecies.getBaseSpecies("Imperial"), BeeSpecies.getBaseSpecies("Demonic"), BeeSpecies.Esoteric.getGenome(), 10, false); + BeeMutation.Esoteric1 = new BeeMutation(BeeSpecies.getBaseSpecies("Heroic"), BeeSpecies.getBaseSpecies("Demonic"), BeeSpecies.Esoteric.getGenome(), 20, false); BeeMutation.Mysterious = new BeeMutation(BeeSpecies.Esoteric, BeeSpecies.getBaseSpecies("Ended"), BeeSpecies.Mysterious.getGenome(), 10, false); BeeMutation.Arcane = new BeeMutation(BeeSpecies.Esoteric, BeeSpecies.Mysterious, BeeSpecies.Arcane.getGenome(), 8, false); BeeMutation.Charmed = new BeeMutation(BeeSpecies.getBaseSpecies("Cultivated"), BeeSpecies.getBaseSpecies("Valiant"), BeeSpecies.Charmed.getGenome(), 20, false); BeeMutation.Enchanted = new BeeMutation(BeeSpecies.Charmed, BeeSpecies.getBaseSpecies("Valiant"), BeeSpecies.Enchanted.getGenome(), 8, false); BeeMutation.Supernatural = new BeeMutation(BeeSpecies.Charmed, BeeSpecies.Enchanted, BeeSpecies.Supernatural.getGenome(), 8, false); - BeeMutation.Pupil = new BeeMutation(BeeSpecies.Arcane, BeeSpecies.Enchanted, BeeSpecies.Pupil.getGenome(), 100, false); - BeeMutation.Scholarly = new BeeMutation(BeeSpecies.Pupil, BeeSpecies.Arcane, BeeSpecies.Scholarly.getGenome(), 10, false); + BeeMutation.Pupil = new BeeMutation(BeeSpecies.Arcane, BeeSpecies.Enchanted, BeeSpecies.Pupil.getGenome(), 10, false); + BeeMutation.Scholarly = new BeeMutation(BeeSpecies.Pupil, BeeSpecies.Arcane, BeeSpecies.Scholarly.getGenome(), 8, false); BeeMutation.Savant = new BeeMutation(BeeSpecies.Pupil, BeeSpecies.Scholarly, BeeSpecies.Savant.getGenome(), 6, false); BeeMutation.Stark = new BeeMutation(BeeSpecies.Arcane, BeeSpecies.Supernatural, BeeSpecies.Stark.getGenome(), 8, false); } diff --git a/thaumicbees_src/thaumicbees/block/BlockManager.java b/thaumicbees_src/thaumicbees/block/BlockManager.java new file mode 100644 index 0000000..ae7f0f6 --- /dev/null +++ b/thaumicbees_src/thaumicbees/block/BlockManager.java @@ -0,0 +1,17 @@ +package thaumicbees.block; + +public class BlockManager +{ + + public BlockManager() { } + + public static void registerBlocks() + { + + } + + public static void setupCrafting() + { + + } +} diff --git a/thaumicbees_src/thaumicbees/item/ItemComb.java b/thaumicbees_src/thaumicbees/item/ItemComb.java new file mode 100644 index 0000000..9d17556 --- /dev/null +++ b/thaumicbees_src/thaumicbees/item/ItemComb.java @@ -0,0 +1,93 @@ +package thaumicbees.item; + +import thaumicbees.main.CommonProxy; +import thaumicbees.main.ThaumicBees; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemComb extends Item +{ + public enum CombType + { + MAGICAL("Magical Comb", 0x6e1c6d, 0xff8fff), + PAPERY("Papery Comb", 0xfff, 0xfff), + STARK("Stark Comb", 0x505759, 0xaaaebd), + ; + + private CombType(String pName, int colourA, int colourB) + { + this.name = pName; + this.combColour[0] = colourA; + this.combColour[1] = colourB; + } + + public final String name; + public int[] combColour = new int[2]; + } + + public ItemComb(int itemID) + { + super(itemID); + this.setTextureFile(CommonProxy.FORESTRY_GFX_ITEMS); + this.setCreativeTab(CreativeTabs.tabMaterials); + } + + public ItemStack getStackForType(CombType type) + { + return new ItemStack(this, 1, type.ordinal()); + } + + public ItemStack getStackForType(CombType type, int count) + { + return new ItemStack(this, count, type.ordinal()); + } + + @Override + @SideOnly(Side.CLIENT) + public boolean requiresMultipleRenderPasses() + { + return true; + } + + @Override + public int getRenderPasses(int metadata) + { + return 2; + } + + @Override + public int getIconIndex(ItemStack stack, int pass) + { + // 107, 108 are the base forestry honeycomb textures. + return 107 + pass; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack stack, int pass) + { + int colour = 0xffffff; + int meta = stack.getItemDamage(); + if (meta >= 0 && meta < CombType.values().length) + { + colour = CombType.values()[meta].combColour[pass % 2]; + } + return colour; + } + + @Override + public String getItemDisplayName(ItemStack stack) + { + String result = ""; + int meta = stack.getItemDamage(); + if (meta >= 0 && meta < CombType.values().length) + { + result = CombType.values()[meta].name; + } + return result; + } + +} diff --git a/thaumicbees_src/thaumicbees/item/ItemKnowledgeFragment.java b/thaumicbees_src/thaumicbees/item/ItemKnowledgeFragment.java new file mode 100644 index 0000000..b89afe2 --- /dev/null +++ b/thaumicbees_src/thaumicbees/item/ItemKnowledgeFragment.java @@ -0,0 +1,18 @@ +package thaumicbees.item; + +import extrabiomes.utility.CreativeTab; +import thaumicbees.main.CommonProxy; +import net.minecraft.item.Item; + +public class ItemKnowledgeFragment extends Item +{ + + public ItemKnowledgeFragment(int ID) + { + super(ID); + this.iconIndex = 3; + this.setTextureFile(CommonProxy.TCBEES_ITEMS); + this.setCreativeTab(CreativeTab.tabMaterials); + } + +} diff --git a/thaumicbees_src/thaumicbees/item/ItemMagicalWax.java b/thaumicbees_src/thaumicbees/item/ItemMagicalWax.java new file mode 100644 index 0000000..60350c6 --- /dev/null +++ b/thaumicbees_src/thaumicbees/item/ItemMagicalWax.java @@ -0,0 +1,39 @@ +package thaumicbees.item; + +import thaumicbees.main.CommonProxy; +import thaumicbees.main.ThaumicBees; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemMagicalWax extends Item +{ + + private boolean sparkly; + private int colour; + + public ItemMagicalWax(int itemID, int overlayColour, boolean hasSparklyIcon) + { + super(itemID); + this.sparkly = hasSparklyIcon; + this.colour = overlayColour; + this.setTextureFile(CommonProxy.TCBEES_ITEMS); + this.setCreativeTab(CreativeTabs.tabMisc); + } + + @Override + public int getIconIndex(ItemStack stack, int pass) + { + return this.sparkly ? 0 : 1; + } + + @Override + @SideOnly(Side.CLIENT) + public int getColorFromItemStack(ItemStack par1ItemStack, int pass) + { + + return this.colour; + } +} diff --git a/thaumicbees_src/thaumicbees/item/ItemManager.java b/thaumicbees_src/thaumicbees/item/ItemManager.java new file mode 100644 index 0000000..d098540 --- /dev/null +++ b/thaumicbees_src/thaumicbees/item/ItemManager.java @@ -0,0 +1,30 @@ +package thaumicbees.item; + +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.Configuration; +import net.minecraftforge.common.Property; +import forestry.api.recipes.*; + +public class ItemManager +{ + public static ItemComb magicalComb; + public static ItemMagicalWax magicalWax; + + public ItemManager() { } + + public static void setupItems(Configuration configFile) + { + int itemIDBase = 26090; + + Property p = configFile.getItem("combs", itemIDBase++); + ItemManager.magicalComb= new ItemComb(p.getInt()); + ItemManager.magicalWax = new ItemMagicalWax(configFile.getItem("wax", itemIDBase++).getInt(), 0xffff00, false); + } + + public static void setupCrafting() + { + // 20 is the 'average' time to centrifuge a comb. + RecipeManagers.centrifugeManager.addRecipe(25, new ItemStack(ItemManager.magicalComb), new ItemStack(ItemManager.magicalWax)); + } + +} diff --git a/thaumicbees_src/thaumicbees/item/ItemPropolis.java b/thaumicbees_src/thaumicbees/item/ItemPropolis.java new file mode 100644 index 0000000..8c48938 --- /dev/null +++ b/thaumicbees_src/thaumicbees/item/ItemPropolis.java @@ -0,0 +1,39 @@ +package thaumicbees.item; + +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; + +public class ItemPropolis extends Item +{ + public enum PropolisType + { + ; + + private PropolisType(String pName, int overlayColour) + { + this.name = pName; + this.colour = overlayColour; + } + + public String name; + public int colour; + } + + public ItemPropolis(int id) + { + super(id); + } + + @Override + public int getColorFromItemStack(ItemStack stack, int pass) + { + int colour = 0xffffff; + int meta = stack.getItemDamage(); + if (meta >= 0 && meta < PropolisType.values().length) + { + colour = PropolisType.values()[meta].colour; + } + return colour; + } + +} diff --git a/thaumicbees_src/thaumicbees/main/ClientProxy.java b/thaumicbees_src/thaumicbees/main/ClientProxy.java new file mode 100644 index 0000000..0de90d1 --- /dev/null +++ b/thaumicbees_src/thaumicbees/main/ClientProxy.java @@ -0,0 +1,20 @@ +package thaumicbees.main; + +import net.minecraftforge.client.MinecraftForgeClient; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; + +@SideOnly(Side.CLIENT) +public class ClientProxy extends CommonProxy +{ + + public ClientProxy() { } + + @Override + public void preloadTextures() + { + // Preload the TCBees items file + MinecraftForgeClient.preloadTexture(TCBEES_ITEMS); + } + +} diff --git a/thaumicbees_src/thaumicbees/main/CommonProxy.java b/thaumicbees_src/thaumicbees/main/CommonProxy.java new file mode 100644 index 0000000..6a52a88 --- /dev/null +++ b/thaumicbees_src/thaumicbees/main/CommonProxy.java @@ -0,0 +1,19 @@ +package thaumicbees.main; + +public class CommonProxy +{ + public static String TCBEES_GFX = "./gfx/thaumicbees"; + public static String TCBEES_RESEARCH = "./research/thaumicbees"; + + public static String FORESTRY_GFX_ITEMS; + + public static String TCBEES_ITEMS = TCBEES_GFX + "/items.png"; + + public CommonProxy() { } + + public void preloadTextures() + { + // Does nothing here. + } + +} diff --git a/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java b/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java new file mode 100644 index 0000000..6cb0bfc --- /dev/null +++ b/thaumicbees_src/thaumicbees/main/ThaumcraftCompat.java @@ -0,0 +1,64 @@ +package thaumicbees.main; + +import java.io.File; + +import thaumcraft.api.ThaumcraftApi; +import thaumicbees.item.ItemManager; + +import cpw.mods.fml.common.registry.GameRegistry; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.Property; +import net.minecraftforge.common.Configuration; + +public class ThaumcraftCompat +{ + + public static int itemResourceID; + public static final int itemResourceQuicksilverMeta = 3; + public static final int itemResourceAmberMeta = 6; + public static final int itemResourceFragmentMeta = 9; + + public static int itemShardID; + public static final int itemShardAirMeta = 0; + public static final int itemShardFireMeta = 1; + public static final int itemShardWaterMeta = 2; + public static final int itemShardEarthMeta = 3; + public static final int itemShardMagicMeta = 4; + public static final int itemShardDullMeta = 5; + + public static int itemEssentiaBottle; + + public static void init() + { + Configuration tcConfig = new Configuration(new File("./config/Thaumcraft.cfg")); + Property p; + + tcConfig.load(); + + // Load items out of the Thaumcraft config to get their IDs. + p = tcConfig.getItem("ItemEssence", 25005); + itemEssentiaBottle = p.getInt() + 256; + p = tcConfig.getItem("ItemResource", 25007); + itemResourceID = p.getInt() + 256; + p = tcConfig.getItem("ItemShard", 25008); + itemShardID = p.getInt() + 256; + } + + public static void setupResearch() + { + //ThaumcraftApi.registerResearchXML(CommonProxy.TCBEES_RESEARCH + "/research.xml"); + } + + public static void setupCrafting() + { + GameRegistry.addRecipe(new ItemStack(itemEssentiaBottle, 8, 0), new Object[] + { + " C ", "G G", " G ", + Character.valueOf('G'), ItemManager.magicalWax, + Character.valueOf('C'), Item.clay + }); + } +} diff --git a/thaumicbees_src/thaumicbees/main/ThaumicBees.java b/thaumicbees_src/thaumicbees/main/ThaumicBees.java new file mode 100644 index 0000000..6e83348 --- /dev/null +++ b/thaumicbees_src/thaumicbees/main/ThaumicBees.java @@ -0,0 +1,88 @@ +package thaumicbees.main; + +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.SidedProxy; +import cpw.mods.fml.common.event.*; +import forestry.api.apiculture.EnumBeeType; +import forestry.api.core.ItemInterface; + +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.BeeSpecies; +import thaumicbees.bees.ThaumicBeesPlugin; +import thaumicbees.item.ItemComb; +import thaumicbees.item.ItemMagicalWax; +import thaumicbees.item.ItemManager; + +@Mod(modid="ThaumicBees", name="Thaumic Bees", version="0.0", dependencies="required-after:Forestry;required-after:Thaumcraft") +public class ThaumicBees +{ + + @Mod.Instance(value="ThaumicBees") + public static ThaumicBees object; + + @SidedProxy(serverSide="thaumicbees.main.CommonProxy", clientSide="thaumicbees.main.ClientProxy") + public static CommonProxy proxy; + + private boolean ThaumcraftRecipesAdded; + private Configuration config; + + + public ThaumicBees() + { + ThaumcraftRecipesAdded = false; + } + + @Mod.PreInit + public void preInit(FMLPreInitializationEvent event) + { + this.config = new Configuration(event.getSuggestedConfigurationFile()); + this.proxy.preloadTextures(); + } + + @Mod.Init + public void init(FMLInitializationEvent event) + { + // Give ThaumcraftCompat a chance to set itself up. + ThaumcraftCompat.init(); + + // Grab Forestry graphics file path + proxy.FORESTRY_GFX_ITEMS = ItemInterface.getItem("beeComb").getItem().getTextureFile(); + + this.config.load(); + ItemManager.setupItems(this.config); + this.config.save(); + + ItemManager.setupCrafting(); + ThaumcraftCompat.setupCrafting(); + + ThaumcraftCompat.setupResearch(); + + } + + @Mod.PostInit + public void postInit(FMLPostInitializationEvent event) + { + MinecraftForge.EVENT_BUS.register(this); + } + + @ForgeSubscribe + public void worldLoad(net.minecraftforge.event.world.WorldEvent.Load event) + { + if (!ThaumcraftRecipesAdded) + { + ThaumicBeesPlugin.setupBeeInfusions(event.world); + ThaumcraftRecipesAdded = true; + } + } +}