Brushing up some rough ends, re-adding bee texture effects for new effects, adjusting drop rates.

This commit is contained in:
MysteriousAges committed 2012-12-29 17:50:58 -08:00
1 parent 9eb9a0a686
commit f91dd7f625
17 files changed
+595 -216

No files matched your search

+2 -2
View File
@@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit!
#Fri Dec 28 20:21:37 PST 2012
build.number=19
#Sat Dec 29 17:49:37 PST 2012
build.number=23
+2 -1
View File
@@ -17,7 +17,7 @@
<property name="mc.version" value="1.4.6"/>
<property name="forge.version" value="6.5.0.473"/>
<property name="thaumicbees.version" value="0.0.6"/>
<property name="thaumicbees.version" value="0.9"/>
<!-- for local deployment only, not used by main -->
<property name="deploy.type" value="previews" />
@@ -83,6 +83,7 @@
<include name="**/Version.java" />
</fileset>
<filterset>
<filter token="MCVERSION" value="${mc.version}" />
<filter token="VERSION" value="${thaumicbees.version}" />
<filter token="BUILD_NUMBER" value="${build.number}" />
<filter token="FINGERPRINT" value="${key.fingerprint}" />
+5 -5
View File
@@ -1,9 +1,9 @@
[{
[
{
"modid": "ThaumicBees",
"name": "ThaumicBees",
"description": "Crossover mod for Forestry and Thaumcraft. Magic bees & more.",
"version": "0.0.2",
"mcversion": "1.4.6",
"authors": [ "MysteriousAges" ],
"credits": "Written & Designed by MysteriousAges. BIG thanks to SirSengir for all the Forestry help!",
}]
"credits": "Thanks to Sengir for the Forestry help!"
}
]
@@ -4,11 +4,16 @@ import cpw.mods.fml.common.network.IGuiHandler;
import forestry.api.apiculture.*;
import forestry.api.core.*;
import forestry.api.genetics.AlleleManager;
import java.lang.reflect.Field;
import java.util.Random;
import thaumcraft.api.EnumTag;
import thaumcraft.api.ObjectTags;
import thaumcraft.api.ThaumcraftApi;
import thaumicbees.bees.genetics.Allele;
import thaumicbees.bees.genetics.AlleleEffectCure;
import thaumicbees.bees.genetics.AlleleEffectPotion;
import thaumicbees.bees.genetics.AlleleFlower;
import thaumicbees.bees.genetics.BeeGenomeManager;
import thaumicbees.bees.genetics.BeeMutation;
@@ -16,11 +21,13 @@ import thaumicbees.bees.genetics.BeeSpecies;
import thaumicbees.item.ItemManager;
import thaumicbees.item.ItemComb.CombType;
import thaumicbees.item.ItemMiscResources.ResourceType;
import thaumicbees.main.ThaumicBees;
import net.minecraft.block.Block;
import net.minecraft.command.ICommand;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.Potion;
import net.minecraft.world.World;
public class ThaumicBeesPlugin implements IPlugin
@@ -40,6 +47,19 @@ public class ThaumicBeesPlugin implements IPlugin
public void doInit()
{
try
{
Field f = Class.forName("forestry.core.config.Config").getField("enableParticleFX");
ThaumicBees.object.configFlags.drawParticleEffects = f.getBoolean(null);
f = Class.forName("forestry.core.config.Defaults").getField("TEXTURE_PARTICLES_BEE");
thaumicbees.main.CommonProxy.FORESTRY_GFX_BEEEFFECTS = (String)f.get(null);
}
catch (Exception e)
{
// Could not get Forestry config value.
}
}
public void postInit()
@@ -54,146 +74,153 @@ public class ThaumicBeesPlugin implements IPlugin
BeeBranch.Arcane = new BeeBranch("Arcane", "arcanis");
BeeBranch.Supernatural = new BeeBranch("Supernatural", "coeleste");
BeeBranch.Stark = new BeeBranch("Stark", "torridus", "Nothing of the mundane world remains in these bees.");
BeeBranch.Elemental = new BeeBranch("Elemental", "praecantatio");
BeeBranch.Scholarly = new BeeBranch("Scholarly", "scholasticus");
AlleleFlower.alleleFlowerBookshelf = new AlleleFlower("flowerBookshelf", new FlowerProviderBookshelf(), true);
AlleleFlower.alleleFlowerThaumcraft = new AlleleFlower("flowerThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false);
Allele.flowerBookshelf = new AlleleFlower("flowerBookshelf", new FlowerProviderBookshelf(), true);
Allele.flowerThaumcraft = new AlleleFlower("flowerThaumcraftPlant", new FlowerProviderThaumcraftFlower(), false);
BeeSpecies.Esoteric = new BeeSpecies("Esoteric", "", "secretiore", BeeBranch.Arcane, 0,
Allele.cleansingEffect = new AlleleEffectCure("effectCurative", false);
Allele.digSpeed = new AlleleEffectPotion("effectDigSpeed", "Mining", Potion.digSpeed, 7, false);
Allele.moveSpeed = new AlleleEffectPotion("effectMoveSpeed", "Swiftness", Potion.moveSpeed, 5, false);
Allele.Esoteric = new BeeSpecies("Esoteric", "", "secretiore", BeeBranch.Arcane, 0,
0x001099, 0xcc763c, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
false, hideSpecies, true, true);
BeeSpecies.Esoteric.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 45);
BeeSpecies.Esoteric.setGenome(BeeGenomeManager.getTemplateEsoteric());
breedingMgr.registerBeeTemplate(BeeSpecies.Esoteric.getGenome());
Allele.Esoteric.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 20);
Allele.Esoteric.setGenome(BeeGenomeManager.getTemplateEsoteric());
breedingMgr.registerBeeTemplate(Allele.Esoteric.getGenome());
BeeSpecies.Mysterious = new BeeSpecies("Mysterious", "", "mysticus", BeeBranch.Arcane, 0,
Allele.Mysterious = new BeeSpecies("Mysterious", "", "mysticus", BeeBranch.Arcane, 0,
0x762bc2, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
false, hideSpecies, true, true);
BeeSpecies.Mysterious.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 60);
BeeSpecies.Mysterious.setGenome(BeeGenomeManager.getTemplateMysterious());
breedingMgr.registerBeeTemplate(BeeSpecies.Mysterious.getGenome());
Allele.Mysterious.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 25);
Allele.Mysterious.setGenome(BeeGenomeManager.getTemplateMysterious());
breedingMgr.registerBeeTemplate(Allele.Mysterious.getGenome());
BeeSpecies.Arcane = new BeeSpecies("Arcane", "", "arcanus", BeeBranch.Arcane, 0,
Allele.Arcane = new BeeSpecies("Arcane", "", "arcanus", BeeBranch.Arcane, 0,
0xd242df, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
true, hideSpecies, true, true);
BeeSpecies.Arcane.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 80);
BeeSpecies.Arcane.setGenome(BeeGenomeManager.getTemplateArcane());
breedingMgr.registerBeeTemplate(BeeSpecies.Arcane.getGenome());
Allele.Arcane.addProduct(ItemManager.combs.getStackForType(CombType.OCCULT), 30);
Allele.Arcane.setGenome(BeeGenomeManager.getTemplateArcane());
breedingMgr.registerBeeTemplate(Allele.Arcane.getGenome());
BeeSpecies.Charmed = new BeeSpecies("Charmed", "", "larvatus", BeeBranch.Supernatural, 0,
Allele.Charmed = new BeeSpecies("Charmed", "", "larvatus", BeeBranch.Supernatural, 0,
0x48EEEC, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
false, hideSpecies, true, true);
BeeSpecies.Charmed.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 40);
BeeSpecies.Charmed.setGenome(BeeGenomeManager.getTemplateCharmed());
breedingMgr.registerBeeTemplate(BeeSpecies.Charmed.getGenome());
Allele.Charmed.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 20);
Allele.Charmed.setGenome(BeeGenomeManager.getTemplateCharmed());
breedingMgr.registerBeeTemplate(Allele.Charmed.getGenome());
BeeSpecies.Enchanted = new BeeSpecies("Enchanted", "", "cantatus", BeeBranch.Supernatural, 0,
Allele.Enchanted = new BeeSpecies("Enchanted", "", "cantatus", BeeBranch.Supernatural, 0,
0x18e726, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
false, hideSpecies, true, true);
BeeSpecies.Enchanted.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 60);
BeeSpecies.Enchanted.setGenome(BeeGenomeManager.getTemplateEnchanted());
breedingMgr.registerBeeTemplate(BeeSpecies.Enchanted.getGenome());
Allele.Enchanted.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 30);
Allele.Enchanted.setGenome(BeeGenomeManager.getTemplateEnchanted());
breedingMgr.registerBeeTemplate(Allele.Enchanted.getGenome());
BeeSpecies.Supernatural = new BeeSpecies("Supernatural", "", "coeleste", BeeBranch.Supernatural, 0,
Allele.Supernatural = new BeeSpecies("Supernatural", "", "coeleste", BeeBranch.Supernatural, 0,
0x005614, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
true, hideSpecies, true, true);
BeeSpecies.Supernatural.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 80);
BeeSpecies.Supernatural.setGenome(BeeGenomeManager.getTemplateSupernatural());
breedingMgr.registerBeeTemplate(BeeSpecies.Supernatural.getGenome());
Allele.Supernatural.addProduct(ItemManager.combs.getStackForType(CombType.OTHERWORLDLY), 40);
Allele.Supernatural.setGenome(BeeGenomeManager.getTemplateSupernatural());
breedingMgr.registerBeeTemplate(Allele.Supernatural.getGenome());
BeeSpecies.Pupil = new BeeSpecies("Pupil", "", "disciplina", BeeBranch.Scholarly, 0,
Allele.Pupil = new BeeSpecies("Pupil", "", "disciplina", BeeBranch.Scholarly, 0,
0xFFFF00, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID,
false, hideSpecies, true, true);
BeeSpecies.Pupil.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 50);
BeeSpecies.Pupil.setGenome(BeeGenomeManager.getTemplatePupil());
breedingMgr.registerBeeTemplate(BeeSpecies.Pupil.getGenome());
Allele.Pupil.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 20);
Allele.Pupil.setGenome(BeeGenomeManager.getTemplatePupil());
breedingMgr.registerBeeTemplate(Allele.Pupil.getGenome());
BeeSpecies.Scholarly = new BeeSpecies("Scholarly", "", "studiosis", BeeBranch.Scholarly, 0,
Allele.Scholarly = new BeeSpecies("Scholarly", "", "studiosis", BeeBranch.Scholarly, 0,
0x6E0000, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID,
false, hideSpecies, true, false);
BeeSpecies.Scholarly.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 60);
BeeSpecies.Scholarly.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), 2);
BeeSpecies.Scholarly.setGenome(BeeGenomeManager.getTemplateScholarly());
breedingMgr.registerBeeTemplate(BeeSpecies.Scholarly.getGenome());
Allele.Scholarly.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 25);
Allele.Scholarly.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), 2);
Allele.Scholarly.setGenome(BeeGenomeManager.getTemplateScholarly());
breedingMgr.registerBeeTemplate(Allele.Scholarly.getGenome());
BeeSpecies.Savant = new BeeSpecies("Savant", "", "philologus", BeeBranch.Scholarly, 0,
Allele.Savant = new BeeSpecies("Savant", "", "philologus", BeeBranch.Scholarly, 0,
0x6E1C6D, defaultBodyColour, EnumTemperature.NORMAL, EnumHumidity.ARID,
true, hideSpecies, true, false);
BeeSpecies.Savant.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 70);
BeeSpecies.Savant.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), 5);
BeeSpecies.Savant.setGenome(BeeGenomeManager.getTemplateSavant());
breedingMgr.registerBeeTemplate(BeeSpecies.Savant.getGenome());
Allele.Savant.addProduct(ItemManager.combs.getStackForType(CombType.PAPERY), 40);
Allele.Savant.addSpecialty(ItemManager.miscResources.getStackForType(ResourceType.KNOWLEDGE_FRAGMENT), 5);
Allele.Savant.setGenome(BeeGenomeManager.getTemplateSavant());
breedingMgr.registerBeeTemplate(Allele.Savant.getGenome());
BeeSpecies.Stark = new BeeSpecies("Stark", "", "torridus", BeeBranch.Stark, 0,
Allele.Stark = new BeeSpecies("Stark", "", "torridus", BeeBranch.Stark, 0,
0xCCCCCC, 0x999999, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
true, hideSpecies, true, false);
BeeSpecies.Stark.addProduct(ItemManager.combs.getStackForType(CombType.STARK), 75);
BeeSpecies.Stark.setGenome(BeeGenomeManager.getTemplateStark());
breedingMgr.registerBeeTemplate(BeeSpecies.Stark.getGenome());
Allele.Stark.addProduct(ItemManager.combs.getStackForType(CombType.STARK), 5);
Allele.Stark.setGenome(BeeGenomeManager.getTemplateStark());
breedingMgr.registerBeeTemplate(Allele.Stark.getGenome());
BeeSpecies.Air = new BeeSpecies("Aura", "", "ventosa", BeeBranch.Elemental, 0,
Allele.Air = new BeeSpecies("Aura", "", "ventosa", BeeBranch.Elemental, 0,
0xD9D636, 0xA19E10, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
true, hideSpecies, true, true);
BeeSpecies.Air.addProduct(ItemManager.combs.getStackForType(CombType.AIRY), 75);
BeeSpecies.Air.addSpecialty(ItemManager.quicksilver, 35);
BeeSpecies.Air.setGenome(BeeGenomeManager.getTemplateAir());
breedingMgr.registerBeeTemplate(BeeSpecies.Air.getGenome());
Allele.Air.addProduct(ItemManager.combs.getStackForType(CombType.AIRY), 20);
Allele.Air.addSpecialty(ItemManager.quicksilver, 10);
Allele.Air.setGenome(BeeGenomeManager.getTemplateAir());
breedingMgr.registerBeeTemplate(Allele.Air.getGenome());
BeeSpecies.Fire = new BeeSpecies("Ignis", "", "praefervidus", BeeBranch.Elemental, 0,
Allele.Fire = new BeeSpecies("Ignis", "", "praefervidus", BeeBranch.Elemental, 0,
0xE50B0B, 0x95132F, EnumTemperature.HOT, EnumHumidity.ARID,
true, hideSpecies, true, true);
BeeSpecies.Fire.addProduct(ItemManager.combs.getStackForType(CombType.FIREY), 75);
BeeSpecies.Fire.addSpecialty(new ItemStack(Item.blazePowder), 35);
BeeSpecies.Fire.setGenome(BeeGenomeManager.getTemplateFire());
breedingMgr.registerBeeTemplate(BeeSpecies.Fire.getGenome());
Allele.Fire.addProduct(ItemManager.combs.getStackForType(CombType.FIREY), 20);
Allele.Fire.addSpecialty(new ItemStack(Item.blazePowder), 8);
Allele.Fire.setGenome(BeeGenomeManager.getTemplateFire());
breedingMgr.registerBeeTemplate(Allele.Fire.getGenome());
BeeSpecies.Water = new BeeSpecies("Aqua", "", "umidus", BeeBranch.Elemental, 0,
Allele.Water = new BeeSpecies("Aqua", "", "umidus", BeeBranch.Elemental, 0,
0x36CFD9, 0x1054A1, EnumTemperature.NORMAL, EnumHumidity.DAMP,
true, hideSpecies, true, true);
BeeSpecies.Water.addProduct(ItemManager.combs.getStackForType(CombType.WATERY), 75);
BeeSpecies.Water.addSpecialty(new ItemStack(Block.ice), 35);
BeeSpecies.Water.setGenome(BeeGenomeManager.getTemplateWater());
breedingMgr.registerBeeTemplate(BeeSpecies.Water.getGenome());
Allele.Water.addProduct(ItemManager.combs.getStackForType(CombType.WATERY), 20);
Allele.Water.addSpecialty(new ItemStack(Block.ice), 8);
Allele.Water.setGenome(BeeGenomeManager.getTemplateWater());
breedingMgr.registerBeeTemplate(Allele.Water.getGenome());
BeeSpecies.Earth = new BeeSpecies("Solum", "", "sordida", BeeBranch.Elemental, 0,
Allele.Earth = new BeeSpecies("Solum", "", "sordida", BeeBranch.Elemental, 0,
0x005100, 0x00a000, EnumTemperature.NORMAL, EnumHumidity.NORMAL,
true, hideSpecies, true, true);
BeeSpecies.Earth.addProduct(ItemManager.combs.getStackForType(CombType.EARTHY), 75);
BeeSpecies.Earth.addSpecialty(ItemManager.amber, 35);
BeeSpecies.Earth.setGenome(BeeGenomeManager.getTemplateEarth());
breedingMgr.registerBeeTemplate(BeeSpecies.Earth.getGenome());
Allele.Earth.addProduct(ItemManager.combs.getStackForType(CombType.EARTHY), 30);
Allele.Earth.addSpecialty(ItemManager.amber, 10);
Allele.Earth.setGenome(BeeGenomeManager.getTemplateEarth());
breedingMgr.registerBeeTemplate(Allele.Earth.getGenome());
}
private void setupBeeMutations()
{
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(), 25, 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(), 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);
// Mutations are registered with the BreedingManager in their constructor.
BeeMutation.Esoteric = new BeeMutation(Allele.getBaseSpecies("Imperial"), Allele.getBaseSpecies("Demonic"), Allele.Esoteric.getGenome(), 10, false);
BeeMutation.Esoteric1 = new BeeMutation(Allele.getBaseSpecies("Heroic"), Allele.getBaseSpecies("Demonic"), Allele.Esoteric.getGenome(), 25, false);
BeeMutation.Mysterious = new BeeMutation(Allele.Esoteric, Allele.getBaseSpecies("Ended"), Allele.Mysterious.getGenome(), 10, false);
BeeMutation.Arcane = new BeeMutation(Allele.Esoteric, Allele.Mysterious, Allele.Arcane.getGenome(), 8, false);
BeeMutation.Charmed = new BeeMutation(Allele.getBaseSpecies("Cultivated"), Allele.getBaseSpecies("Valiant"), Allele.Charmed.getGenome(), 20, false);
BeeMutation.Enchanted = new BeeMutation(Allele.Charmed, Allele.getBaseSpecies("Valiant"), Allele.Enchanted.getGenome(), 8, false);
BeeMutation.Supernatural = new BeeMutation(Allele.Charmed, Allele.Enchanted, Allele.Supernatural.getGenome(), 8, false);
BeeMutation.Pupil = new BeeMutation(Allele.Arcane, Allele.Enchanted, Allele.Pupil.getGenome(), 10, false);
BeeMutation.Scholarly = new BeeMutation(Allele.Pupil, Allele.Arcane, Allele.Scholarly.getGenome(), 8, false);
BeeMutation.Savant = new BeeMutation(Allele.Pupil, Allele.Scholarly, Allele.Savant.getGenome(), 6, false);
BeeMutation.Stark = new BeeMutation(Allele.Arcane, Allele.Supernatural, Allele.Stark.getGenome(), 8, false);
}
public static void setupBeeInfusions(World world)
{
try
{
ItemStack starkDrone = BeeSpecies.Stark.getBeeItem(world, EnumBeeType.DRONE);
ItemStack starkPrincess = BeeSpecies.Stark.getBeeItem(world, EnumBeeType.PRINCESS);
ItemStack airDrone = BeeSpecies.Air.getBeeItem(world, EnumBeeType.DRONE);
ItemStack airPrincess = BeeSpecies.Air.getBeeItem(world, EnumBeeType.PRINCESS);
ItemStack waterDrone = BeeSpecies.Water.getBeeItem(world, EnumBeeType.DRONE);
ItemStack waterPrincess = BeeSpecies.Water.getBeeItem(world, EnumBeeType.PRINCESS);
ItemStack earthDrone = BeeSpecies.Earth.getBeeItem(world, EnumBeeType.DRONE);
ItemStack earthPrincess = BeeSpecies.Earth.getBeeItem(world, EnumBeeType.PRINCESS);
ItemStack fireDrone = BeeSpecies.Fire.getBeeItem(world, EnumBeeType.DRONE);
ItemStack firePrincess = BeeSpecies.Fire.getBeeItem(world, EnumBeeType.PRINCESS);
ItemStack starkDrone = Allele.Stark.getBeeItem(world, EnumBeeType.DRONE);
ItemStack starkPrincess = Allele.Stark.getBeeItem(world, 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);
Item shard = (Item) Class.forName("thaumcraft.common.Config").getDeclaredField("itemShard").get(null);
@@ -1,17 +1,51 @@
package thaumicbees.bees.genetics;
import forestry.api.apiculture.IAlleleBeeSpecies;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
public class Allele implements IAllele
{
public static BeeSpecies Esoteric;
public static BeeSpecies Mysterious;
public static BeeSpecies Arcane;
public static BeeSpecies Charmed;
public static BeeSpecies Enchanted;
public static BeeSpecies Supernatural;
public static BeeSpecies Pupil;
public static BeeSpecies Scholarly;
public static BeeSpecies Savant;
public static BeeSpecies Stark;
public static BeeSpecies Air;
public static BeeSpecies Water;
public static BeeSpecies Earth;
public static BeeSpecies Fire;
public static AlleleFlower flowerBookshelf;
public static AlleleFlower flowerThaumcraft;
public static AlleleEffectCure cleansingEffect;
public static AlleleEffectPotion digSpeed;
public static AlleleEffectPotion moveSpeed;
private String uid;
private boolean dominant;
public static IAlleleBeeSpecies getBaseSpecies(String name)
{
return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("forestry.species").append(name).toString());
}
public static IAllele getBaseAllele(String name)
{
return AlleleManager.alleleRegistry.getAllele("forestry." + name);
}
public Allele(String id, boolean isDominant)
{
this.uid = "thaumicbees." + id;
this.dominant = isDominant;
AlleleManager.alleleRegistry.registerAllele(this);
}
@Override
@@ -0,0 +1,59 @@
package thaumicbees.bees.genetics;
import thaumicbees.main.ThaumicBees;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.IEffectData;
public abstract class AlleleEffect extends Allele implements IAlleleBeeEffect
{
public AlleleEffect(String id, boolean isDominant)
{
super(id, isDominant);
}
@Override
public boolean isCombinable()
{
return false;
}
@Override
public abstract IEffectData validateStorage(IEffectData storedData);
@Override
public abstract String getIdentifier();
@Override
public abstract IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing);
@Override
public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing)
{
int[] area = genome.getTerritory();
float mod = housing.getTerritoryModifier(genome);
// Check to make sure territory is at least 1 with housing modifications
area[0] = Math.min((int)(area[0] * mod), 1);
area[1] = Math.min((int)(area[1] * mod), 1);
area[2] = Math.min((int)(area[2] * mod), 1);
ThaumicBees.proxy.drawBeeEffects(housing.getWorld(), housing.getXCoord(), housing.getYCoord(), housing.getZCoord(),
genome.getPrimaryAsBee().getPrimaryColor(), area[0], area[1], area[2]);
return storedData;
}
@Override
public String getIconTextureFile()
{
return null;
}
@Override
public int getIconIndex()
{
return -1;
}
}
@@ -0,0 +1,87 @@
package thaumicbees.bees.genetics;
import java.util.List;
import thaumicbees.bees.EffectData;
import thaumicbees.main.ThaumicBees;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IEffectData;
public class AlleleEffectCure extends AlleleEffect
{
public AlleleEffectCure(String id, boolean isDominant)
{
super(id, isDominant);
}
@Override
public IEffectData validateStorage(IEffectData storedData)
{
if (storedData == null)
{
storedData = new EffectData(1, 0, 0);
}
return storedData;
}
@Override
public String getIdentifier()
{
return "Cleansing";
}
@Override
public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing)
{
int count = storedData.getInteger(0);
if (count == 200)
{
// Get the size of the affected area
int[] area = genome.getTerritory();
// Calculate offset
int[] min = new int[3];
int[] max = new int[3];
min[0] = housing.getXCoord() - area[0] / 2;
max[0] = housing.getXCoord() + area[0] / 2;
min[1] = housing.getYCoord() - area[1] / 2;
max[1] = housing.getYCoord() + area[1] / 2;
min[2] = housing.getZCoord() - area[2] / 2;
max[2] = housing.getZCoord() + area[2] / 2;
AxisAlignedBB bounds = AxisAlignedBB.getAABBPool().addOrModifyAABBInPool(min[0], min[1], min[2], max[0], max[1], max[2]);
List<Entity> entityList = housing.getWorld().getEntitiesWithinAABB(EntityPlayer.class, bounds);
for (Entity e : entityList)
{
if (e instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer)e;
player.curePotionEffects(new ItemStack(Item.bucketMilk));
}
}
storedData.setInteger(0, 0);
}
else
{
storedData.setInteger(0, count + 1);
}
return storedData;
}
}
@@ -1,13 +1,20 @@
package thaumicbees.bees.genetics;
import java.util.List;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.AxisAlignedBB;
import thaumicbees.bees.EffectData;
import forestry.api.apiculture.IAlleleBeeEffect;
import forestry.api.apiculture.IBeeGenome;
import forestry.api.apiculture.IBeeHousing;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IEffectData;
public class AlleleEffectPotion extends Allele implements IAlleleBeeEffect
public class AlleleEffectPotion extends AlleleEffect
{
private int potionId;
private int duration;
@@ -18,19 +25,13 @@ public class AlleleEffectPotion extends Allele implements IAlleleBeeEffect
super("effect" + name, isDominant);
this.beealyzerId = readableName;
this.potionId = potionApplied.id;
this.duration = effectDuration;
}
@Override
public boolean isCombinable()
{
return false;
this.duration = 20 * effectDuration;
}
@Override
public IEffectData validateStorage(IEffectData storedData)
{
if (!(storedData instanceof EffectData))
if (storedData == null)
{
storedData = new EffectData(1, 0, 0);
}
@@ -46,15 +47,44 @@ public class AlleleEffectPotion extends Allele implements IAlleleBeeEffect
@Override
public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing)
{
// TODO Auto-generated method stub
return null;
}
@Override
public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing)
{
// TODO Auto-generated method stub
return null;
int count = storedData.getInteger(0);
if (count == 200)
{
// Get the size of the affected area
int[] area = genome.getTerritory();
// Calculate offset
int[] min = new int[3];
int[] max = new int[3];
min[0] = housing.getXCoord() - area[0] / 2;
max[0] = housing.getXCoord() + area[0] / 2;
min[1] = housing.getYCoord() - area[1] / 2;
max[1] = housing.getYCoord() + area[1] / 2;
min[2] = housing.getZCoord() - area[2] / 2;
max[2] = housing.getZCoord() + area[2] / 2;
AxisAlignedBB bounds = AxisAlignedBB.getAABBPool().addOrModifyAABBInPool(min[0], min[1], min[2], max[0], max[1], max[2]);
List<Entity> entityList = housing.getWorld().getEntitiesWithinAABB(EntityPlayer.class, bounds);
for (Entity e : entityList)
{
if (e instanceof EntityPlayer)
{
EntityPlayer player = (EntityPlayer)e;
player.addPotionEffect(new PotionEffect(this.potionId, this.duration, 0));
}
}
storedData.setInteger(0, 0);
}
else
{
storedData.setInteger(0, count + 1);
}
return storedData;
}
@Override
@@ -6,10 +6,6 @@ import forestry.api.genetics.AlleleManager;
public class AlleleFlower extends Allele implements IAlleleFlowers
{
public static AlleleFlower alleleFlowerBookshelf;
public static AlleleFlower alleleFlowerThaumcraft;
private String uid;
private IFlowerProvider provider;
@@ -17,19 +17,19 @@ public class BeeGenomeManager
{
IAllele[] genome = new IAllele[EnumBeeChromosome.values().length];
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Esoteric;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedSlowest");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = AlleleManager.getAllele("lifespanShorter");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = AlleleManager.getAllele("fertilityNormal");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceNone");
genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = AlleleManager.getAllele("boolFalse");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceNone");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = AlleleManager.getAllele("boolFalse");
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = AlleleManager.getAllele("boolFalse");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleManager.getAllele("flowersVanilla");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = AlleleManager.getAllele("floweringSlowest");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = AlleleManager.getAllele("territoryDefault");
genome[EnumBeeChromosome.EFFECT.ordinal()] = AlleleManager.getAllele("effectNone");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Esoteric;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlowest");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShorter");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone");
genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolFalse");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceNone");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolFalse");
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolFalse");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = Allele.getBaseAllele("flowersVanilla");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlowest");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryDefault");
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.getBaseAllele("effectNone");
return genome;
}
@@ -39,9 +39,9 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseThaumic();
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceBoth1");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = AlleleManager.getAllele("floweringSlow");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = AlleleManager.getAllele("fertilityHigh");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlow");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityHigh");
return genome;
}
@@ -51,7 +51,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseArcane();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Esoteric;
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Esoteric;
return genome;
}
@@ -60,8 +60,8 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseArcane();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Mysterious;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceBoth2");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Mysterious;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2");
return genome;
}
@@ -70,10 +70,10 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseArcane();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Arcane;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceBoth2");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = AlleleManager.getAllele("fertilityNormal");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = AlleleManager.getAllele("floweringAverage");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Arcane;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityNormal");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringAverage");
return genome;
}
@@ -82,9 +82,9 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseThaumic();
genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedNorm");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = AlleleManager.getAllele("floweringSlowest");
genome[EnumBeeChromosome.NOCTURNAL.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringSlowest");
return genome;
}
@@ -93,7 +93,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseSupernatural();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Charmed;
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Charmed;
return genome;
}
@@ -102,8 +102,8 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseSupernatural();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Enchanted;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceBoth1");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Enchanted;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
return genome;
}
@@ -112,9 +112,9 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseSupernatural();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Supernatural;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceBoth2");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceBoth1");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Supernatural;
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth2");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceBoth1");
return genome;
}
@@ -123,10 +123,10 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseThaumic();
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedSlow");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = AlleleManager.getAllele("lifespanElongated");
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleFlower.alleleFlowerBookshelf;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanElongated");
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleFlower.flowerBookshelf;
return genome;
}
@@ -135,8 +135,8 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseScholarly();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Pupil;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedSlower");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Pupil;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlower");
return genome;
}
@@ -145,8 +145,8 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseScholarly();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Scholarly;
genome[EnumBeeChromosome.FERTILITY.ordinal()] = AlleleManager.getAllele("fertilityLow");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Scholarly;
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow");
return genome;
}
@@ -155,9 +155,9 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseScholarly();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Savant;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedNorm");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = AlleleManager.getAllele("fertilityLow");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Savant;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedNorm");
genome[EnumBeeChromosome.FERTILITY.ordinal()] = Allele.getBaseAllele("fertilityLow");
return genome;
}
@@ -166,7 +166,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseThaumic();
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleFlower.alleleFlowerThaumcraft;
genome[EnumBeeChromosome.FLOWER_PROVIDER.ordinal()] = AlleleFlower.flowerThaumcraft;
return genome;
}
@@ -175,7 +175,7 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Stark;
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Stark;
return genome;
}
@@ -184,12 +184,13 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Air;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedFastest");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = AlleleManager.getAllele("lifespanShortened");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = AlleleManager.getAllele("territoryLargest");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = AlleleManager.getAllele("floweringFastest");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Air;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFastest");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanShortened");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLargest");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringMaximum");
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.moveSpeed;
return genome;
}
@@ -198,13 +199,13 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Fire;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedFaster");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = AlleleManager.getAllele("lifespanNormal");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceDown3");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceUp2");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.EFFECT.ordinal()] = AlleleManager.getAllele("effectIgnition");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Fire;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFaster");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal");
genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown3");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceUp2");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.getBaseAllele("effectIgnition");
return genome;
}
@@ -213,12 +214,13 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Water;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedFast");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = AlleleManager.getAllele("lifespanLong");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceDown2");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = AlleleManager.getAllele("territoryLarge");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Water;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedFast");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLong");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown2");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.TERRITORY.ordinal()] = Allele.getBaseAllele("territoryLarge");
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.cleansingEffect;
return genome;
}
@@ -227,12 +229,14 @@ public class BeeGenomeManager
{
IAllele[] genome = getTemplateBaseElemental();
genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.Earth;
genome[EnumBeeChromosome.SPEED.ordinal()] = AlleleManager.getAllele("speedSlow");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = AlleleManager.getAllele("lifespanLonger");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = AlleleManager.getAllele("toleranceDown1");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = AlleleManager.getAllele("boolTrue");
genome[EnumBeeChromosome.SPECIES.ordinal()] = Allele.Earth;
genome[EnumBeeChromosome.SPEED.ordinal()] = Allele.getBaseAllele("speedSlow");
genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanLonger");
genome[EnumBeeChromosome.HUMIDITY_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown1");
genome[EnumBeeChromosome.TOLERANT_FLYER.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.CAVE_DWELLING.ordinal()] = Allele.getBaseAllele("boolTrue");
genome[EnumBeeChromosome.FLOWERING.ordinal()] = Allele.getBaseAllele("floweringFast");
genome[EnumBeeChromosome.EFFECT.ordinal()] = Allele.digSpeed;
return genome;
}
@@ -35,6 +35,8 @@ public class BeeMutation implements IBeeMutation
mutationTemplate = producesGenome;
baseChance = percentChance;
isSecret = hide;
BeeManager.breedingManager.registerBeeMutation(this);
}
public int getChance(IBeeHousing housing, IAllele allele0, IAllele allele1, IGenome genome0, IGenome genome1)
@@ -12,22 +12,6 @@ import net.minecraft.world.World;
public class BeeSpecies extends Allele implements IAlleleBeeSpecies
{
public static BeeSpecies Esoteric;
public static BeeSpecies Mysterious;
public static BeeSpecies Arcane;
public static BeeSpecies Charmed;
public static BeeSpecies Enchanted;
public static BeeSpecies Supernatural;
public static BeeSpecies Pupil;
public static BeeSpecies Scholarly;
public static BeeSpecies Savant;
public static BeeSpecies Stark;
public static BeeSpecies Air;
public static BeeSpecies Water;
public static BeeSpecies Earth;
public static BeeSpecies Fire;
private String name;
private String descripton;
private String binomial;
@@ -45,11 +29,6 @@ public class BeeSpecies extends Allele implements IAlleleBeeSpecies
private HashMap specialty;
private IAllele genomeTemplate[];
public static IAlleleBeeSpecies getBaseSpecies(String name)
{
return (IAlleleBeeSpecies) AlleleManager.alleleRegistry.getAllele((new StringBuilder()).append("forestry.species").append(name).toString());
}
public BeeSpecies(String speciesName, String speciesDescription, String genusName, IBranch parentBranch, int firstColour, int secondColour, EnumTemperature preferredTemp, EnumHumidity preferredHumidity, boolean hasGlowEffect, boolean isSpeciesDominant)
{
this(speciesName, speciesDescription, genusName, parentBranch, 0, firstColour, secondColour, preferredTemp, preferredHumidity, hasGlowEffect, true, true, isSpeciesDominant);
@@ -73,7 +52,6 @@ public class BeeSpecies extends Allele implements IAlleleBeeSpecies
products = new HashMap();
specialty = new HashMap();
this.genomeTemplate = new IAllele[EnumBeeChromosome.values().length];
AlleleManager.alleleRegistry.registerAllele(this);
}
public BeeSpecies setGene(EnumBeeChromosome chromosome, IAllele allele)
@@ -1,8 +1,12 @@
package thaumicbees.main;
import thaumicbees.main.render.BeeRenderEffect;
import net.minecraft.world.World;
import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.apiculture.render.EntityBeeFX;
import forestry.core.proxy.Proxies;
@SideOnly(Side.CLIENT)
public class ClientProxy extends CommonProxy
@@ -14,7 +18,33 @@ public class ClientProxy extends CommonProxy
public void preloadTextures()
{
// Preload the TCBees items file
MinecraftForgeClient.preloadTexture(TCBEES_ITEMS);
MinecraftForgeClient.preloadTexture(TCBEES_ITEMSPNG);
}
@Override
public void drawBeeEffects(World world, double xPos, double yPos, double zPos, int colour, int rangeX, int rangeY, int rangeZ)
{
// drawParticleEffects flag pulled from Forestry after configs
if (ThaumicBees.object.configFlags.drawParticleEffects)
{
double spawnX = xPos;
double spawnY = yPos;
double spawnZ = zPos;
if (world.rand.nextBoolean())
{
spawnX += 0.5;
spawnY += 0.5;
spawnZ += 0.5;
}
else
{
spawnX += world.rand.nextInt(rangeX * 2) - rangeX;
spawnY += world.rand.nextInt(rangeY);
spawnZ += world.rand.nextInt(rangeZ * 2) - rangeY;
}
this.getClientInstance().effectRenderer.addEffect(new BeeRenderEffect(world, spawnX, spawnY, spawnZ, 0f, 0f, 0f, colour));
}
}
}
@@ -1,12 +1,17 @@
package thaumicbees.main;
import cpw.mods.fml.client.FMLClientHandler;
import net.minecraft.client.Minecraft;
import net.minecraft.world.World;
public class CommonProxy
{
public static String TCBEES_GFX = "/gfx/thaumicbees";
public static String TCBEES_RESEARCH = "/research/thaumicbees";
public static String TCBEES_ITEMS = TCBEES_GFX + "/items/";
public static String TCBEES_GFX = "/gfx/thaumicbees/";
public static String TCBEES_RESEARCH = "/research/thaumicbees/";
public static String TCBEES_ITEMS = TCBEES_GFX + "items/";
public static String FORESTRY_GFX_ITEMS;
public static String FORESTRY_GFX_BEEEFFECTS;
public static String TCBEES_ITEMSPNG = TCBEES_ITEMS + "items.png";
@@ -16,5 +21,15 @@ public class CommonProxy
{
// Does nothing here.
}
public void drawBeeEffects(World world, double xPos, double yPos, double zPos, int colour, int rangeX, int rangeY, int rangeZ)
{
// Does nothing in common.
}
public Minecraft getClientInstance()
{
return FMLClientHandler.instance().getClient();
}
}
@@ -0,0 +1,7 @@
package thaumicbees.main;
public class ConfigFlags
{
public boolean drawParticleEffects;
}
@@ -25,7 +25,13 @@ import thaumicbees.item.ItemComb;
import thaumicbees.item.ItemWax;
import thaumicbees.item.ItemManager;
@Mod(modid="ThaumicBees", name="Thaumic Bees", version="0.0", dependencies="required-after:Forestry;required-after:Thaumcraft")
@Mod(
modid="ThaumicBees",
useMetadata=true,
acceptedMinecraftVersions="1.4.6",
version="@VERSION@-@BUILD_NUMBER@",
dependencies="required-after:Forestry@[1.6.5.4,);required-after:Thaumcraft@[3.0.1c,)"
)
public class ThaumicBees
{
@@ -37,18 +43,18 @@ public class ThaumicBees
private boolean ThaumcraftRecipesAdded;
private Configuration config;
public ConfigFlags configFlags;
public ThaumicBees()
{
ThaumcraftRecipesAdded = false;
this.configFlags = new ConfigFlags();
}
@Mod.PreInit
public void preInit(FMLPreInitializationEvent event)
{
this.config = new Configuration(event.getSuggestedConfigurationFile());
this.proxy.preloadTextures();
}
@Mod.Init
@@ -56,6 +62,7 @@ public class ThaumicBees
{
// Give ThaumcraftCompat a chance to set itself up.
ThaumcraftCompat.init();
this.proxy.preloadTextures();
// Grab Forestry graphics file path
proxy.FORESTRY_GFX_ITEMS = ItemInterface.getItem("beeComb").getItem().getTextureFile();
@@ -0,0 +1,102 @@
package thaumicbees.main.render;
import org.lwjgl.opengl.GL11;
import thaumicbees.main.CommonProxy;
import thaumicbees.main.ThaumicBees;
import net.minecraft.client.particle.EntityFX;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.world.World;
import net.minecraftforge.client.ForgeHooksClient;
/**
* Borrowed from Forestry with some modifications.
*/
public class BeeRenderEffect extends EntityFX
{
public int blendmode = 1;
private String texture = CommonProxy.FORESTRY_GFX_BEEEFFECTS;
public BeeRenderEffect(World world, double x, double y, double z, float motionScaleX, float motionScaleY, float motionScaleZ, int color)
{
super(world, x, y, z, 0.0D, 0.0D, 0.0D);
// Colour is stored in 4-byte int: XXRRGGBB
particleRed = (color >> 16 & 255) / 255.0F;
particleGreen = (color >> 8 & 255) / 255.0F;
particleBlue = (color & 255) / 255.0F;
this.setParticleTextureIndex(0);
this.setSize(0.1F, 0.1F);
this.particleScale *= 0.2F;
this.particleMaxAge = (int) (20.0D / (Math.random() * 0.8D + 0.2D));
this.noClip = true;
this.motionX *= 0.119999999552965164D;
this.motionY *= 0.119999999552965164D;
this.motionZ *= 0.119999999552965164D;
}
/**
* Called to update the entity's position/logic.
*/
public void onUpdate()
{
this.prevPosX = this.posX;
this.prevPosY = this.posY;
this.prevPosZ = this.posZ;
this.moveEntity(this.motionX, this.motionY, this.motionZ);
this.motionX *= 1.08D;
this.motionY *= 1.08D;
this.motionZ *= 1.08D;
if (this.particleMaxAge-- <= 0)
{
this.setDead();
}
}
public void renderParticle(Tessellator tessellator, float f, float f1, float f2, float f3, float f4, float f5)
{
tessellator.draw();
GL11.glPushMatrix();
GL11.glDepthMask(false);
GL11.glEnable(3042);
GL11.glBlendFunc(770, blendmode);
ForgeHooksClient.bindTexture(texture, 0);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
float f10 = 0.1F * particleScale;
float f11 = (float) ((prevPosX + (posX - prevPosX) * f) - interpPosX);
float f12 = (float) ((prevPosY + (posY - prevPosY) * f) - interpPosY);
float f13 = (float) ((prevPosZ + (posZ - prevPosZ) * f) - interpPosZ);
// GL11.glRotatef(this.rand.nextFloat(), 0.0F, 1.0F, 0.0F);
tessellator.startDrawingQuads();
tessellator.setBrightness(0x0000f0);
tessellator.setColorRGBA_F(particleRed, particleGreen, particleBlue, 1.0F);
tessellator.addVertexWithUV(f11 - f1 * f10 - f4 * f10, f12 - f2 * f10, f13 - f3 * f10 - f5 * f10, 0, 1);
tessellator.addVertexWithUV((f11 - f1 * f10) + f4 * f10, f12 + f2 * f10, (f13 - f3 * f10) + f5 * f10, 1, 1);
tessellator.addVertexWithUV(f11 + f1 * f10 + f4 * f10, f12 + f2 * f10, f13 + f3 * f10 + f5 * f10, 1, 0);
tessellator.addVertexWithUV((f11 + f1 * f10) - f4 * f10, f12 - f2 * f10, (f13 + f3 * f10) - f5 * f10, 0, 0);
tessellator.draw();
GL11.glDisable(3042);
GL11.glDepthMask(true);
GL11.glPopMatrix();
GL11.glBindTexture(3553 /* GL_TEXTURE_2D *//* GL_TEXTURE_2D */, ThaumicBees.proxy.getClientInstance().renderEngine.getTexture("/particles.png"));
tessellator.startDrawingQuads();
}
}