From e20ab2dfb9723e42e88619d8e3aa6355b25414b0 Mon Sep 17 00:00:00 2001 From: MysteriousAges Date: Fri, 14 Jun 2013 13:30:00 -0700 Subject: [PATCH] Updating to Forestry 2.2.8.0 fixing some shit. --- magicbees_res/build.xml | 2 +- magicbees_res/changelog.txt | 6 ++ magicbees_res/mods/magicbees/lang/en_US.xml | 1 + .../items/bees/skulking/larvae.body.png | Bin 0 -> 412 bytes .../items/bees/skulking/larvae.body.txt | 5 ++ .../items/bees/skulking/larvae.body2.png | Bin 0 -> 425 bytes .../items/bees/skulking/larvae.body2.txt | 5 ++ .../items/bees/skulking/larvae.outline.png | Bin 0 -> 403 bytes .../items/bees/skulking/larvae.outline.txt | 5 ++ .../magicbees/bees/AlleleEffect.java | 27 +++++++- .../bees/AlleleEffectAuraNodeAttract.java | 63 ++++++++---------- .../bees/AlleleEffectAuraNodeCharge.java | 41 +++++------- .../bees/AlleleEffectAuraNodeFlux.java | 44 +++++------- .../bees/AlleleEffectAuraNodePurify.java | 46 +++++-------- .../magicbees/bees/AlleleEffectCure.java | 25 +++---- .../magicbees/bees/AlleleEffectPotion.java | 25 +++---- .../magicbees/bees/AlleleEffectSpawnMob.java | 18 +---- .../bees/AlleleEffectSpawnMobWeighted.java | 19 ++---- .../magicbees/bees/BeeGenomeManager.java | 19 +++--- magicbees_src/magicbees/bees/BeeMutation.java | 40 +++++++++-- magicbees_src/magicbees/bees/BeeSpecies.java | 13 ++-- .../render/BeeRenderEffect.java | 4 +- magicbees_src/magicbees/main/ClientProxy.java | 2 +- .../tileentity/EffectJarHousing.java | 6 ++ .../magicbees/world/feature/FeatureHive.java | 3 +- 25 files changed, 211 insertions(+), 208 deletions(-) create mode 100644 magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.png create mode 100644 magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.txt create mode 100644 magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.png create mode 100644 magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.txt create mode 100644 magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.png create mode 100644 magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.txt rename magicbees_src/magicbees/{main => client}/render/BeeRenderEffect.java (96%) diff --git a/magicbees_res/build.xml b/magicbees_res/build.xml index f4b0082..3a12fdf 100644 --- a/magicbees_res/build.xml +++ b/magicbees_res/build.xml @@ -16,7 +16,7 @@ - + diff --git a/magicbees_res/changelog.txt b/magicbees_res/changelog.txt index 438390d..f7b445b 100644 --- a/magicbees_res/changelog.txt +++ b/magicbees_res/changelog.txt @@ -1,3 +1,9 @@ +2.0.1 +Modifying mutation class to allow block-requiring mutations to work in Alvearies/other multiblock hive structures. +Tweaking hive gen +Fixing mistakes in bee genome templates +Updating Biofuel capsule to use the Ethanol liquid in Forestry + 2.0.0 Enabling Retrogen of hives in case you missed them initially. Tearing out all old mutations, rewriting from the ground up. Maybe these will be less frustrating. ;) diff --git a/magicbees_res/mods/magicbees/lang/en_US.xml b/magicbees_res/mods/magicbees/lang/en_US.xml index 517ebaa..fa2a4d7 100644 --- a/magicbees_res/mods/magicbees/lang/en_US.xml +++ b/magicbees_res/mods/magicbees/lang/en_US.xml @@ -145,6 +145,7 @@ Pure Dark Chaotic + Crystal Cluster Mystical diff --git a/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.png b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.png new file mode 100644 index 0000000000000000000000000000000000000000..0f63aaf51876f1dac737a719a69769eb2a2031db GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0WWg+Q3`(%rg0Ktc8rPhVH|yR6J2qADwP^eh7kNtL)plmzFe zm6RtIr7{F0X6BXX`MHKDlo{)p>KPgsd?{K8RQ1Et#WBRgd+Ag~z7_)k*Y6cFi?=`Y zQeokDRN!bza7-##akI|Q`*h904Ubwsefodp!Y59}Kde*bR(x?-+7S?Otz(f!M&!=t zy&i{O?>ct;G~@9?4z`k5@%VTihss&YcI-LzV4k^C^I?M-ch7$|sZ=((vu*8_(z(2a zya_f^3=unZyk{*nV%@!IuBeu6z{^H2{*bB#mzaUZv%HB;u+)l_+^|M4Gcj`7j|$6# z`{g&c`4+5*<2_JoaQ^dpo*R`0PKO^`c!h=*R`PmWtO;Y2%9!Q$YhS;2G~2B6r!?10 yS+sM_lu2!m&pz4D|Dm2igLxVw#Q5`^^YwozIsP-86W$IC0|rl5KbLh*2~7Y9!JerA literal 0 HcmV?d00001 diff --git a/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.txt b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.txt new file mode 100644 index 0000000..c3822c6 --- /dev/null +++ b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.txt @@ -0,0 +1,5 @@ +0*64 +1*2 +0*48 +1*2 + diff --git a/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.png b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.png new file mode 100644 index 0000000000000000000000000000000000000000..a50272330d1f3049a2158502b515a66de447914d GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0WWg+Q3`(%rg0Ktc8rPhVH|yR6J2qADwP^eh7kNtL)plmzFe zm6RtIr7{F0X6BXX`MHKDlo{)p>KPgsd?{K8w29Tz#WBRg`|cD&u0sw2uG=?XtbWSV zCBdzDD?_uhX>CsSM59=~gqcdyH+hQwJvh*gi=_*j_eY0o{y;X_4C*Y8_k)2?MKfeQrg_)8 z`0au!|IK*V#5o@7{aE>+a&q28hR=2mj1!oqF+xnaFTC4YFVdQ I&MBb@07WyOHvj+t literal 0 HcmV?d00001 diff --git a/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.txt b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.txt new file mode 100644 index 0000000..c3822c6 --- /dev/null +++ b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.txt @@ -0,0 +1,5 @@ +0*64 +1*2 +0*48 +1*2 + diff --git a/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.png b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.png new file mode 100644 index 0000000000000000000000000000000000000000..44430b19e6cda09c512f9f7e5ef5b142b21a607c GIT binary patch literal 403 zcmeAS@N?(olHy`uVBq!ia0vp^0zj<5!3HFyJAa%3QjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0WWg+Q3`(%rg0Ktc8rPhVH|yR6J2qADwP^eh7kNtL)plmzFe zm6RtIr7{F0X6BXX`MHKDlo{)p>KPgsd?{K8RQ2A|#WBRg`|cD&zGedfmb*{0|0wo) z?^@zF@4@qcpbwf-;ZLr8QhXDw;#Xps*<$i$o&!g_#ADqRUmTXQYfW8y&Vc8OodMIs z%wINH;@+ngZB}(t=xFMh_Fc7BOrmjtPrTl~^GwPDQw*OL*0fEzr(bnt(RWHY{r$RtmyKThAyo@5F;A5P+NNspXX+RA zpcOIK*IV*O@JW0;{@iizyNrFB%qoH}4w(3T_KkFuT6k)k&gr-iliMQw9xHhGgdW)O nf3R%SOOOOP);6GWu0-AB>!#aQJ)a~F^g4s5tDnm{r-UW|Fg}#a literal 0 HcmV?d00001 diff --git a/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.txt b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.txt new file mode 100644 index 0000000..c3822c6 --- /dev/null +++ b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.txt @@ -0,0 +1,5 @@ +0*64 +1*2 +0*48 +1*2 + diff --git a/magicbees_src/magicbees/bees/AlleleEffect.java b/magicbees_src/magicbees/bees/AlleleEffect.java index 73463a4..c537acc 100644 --- a/magicbees_src/magicbees/bees/AlleleEffect.java +++ b/magicbees_src/magicbees/bees/AlleleEffect.java @@ -17,10 +17,12 @@ import forestry.api.genetics.IEffectData; public abstract class AlleleEffect extends Allele implements IAlleleBeeEffect { + protected int throttle; - public AlleleEffect(String id, boolean isDominant) + public AlleleEffect(String id, boolean isDominant, int timeout) { super("effect" + id, isDominant); + this.throttle = timeout; } @Override @@ -33,7 +35,28 @@ public abstract class AlleleEffect extends Allele implements IAlleleBeeEffect public abstract IEffectData validateStorage(IEffectData storedData); @Override - public abstract IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); + public final IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + { + int count = storedData.getInteger(0); + if (count >= this.throttle) + { + storedData = this.doEffectThrottled(genome, storedData, housing); + } + else + { + storedData.setInteger(0, count + 1); + } + return storedData; + } + + /** + * + * @param genome + * @param storedData + * @param housing + * @return + */ + protected abstract IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing); @Override public IEffectData doFX(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) diff --git a/magicbees_src/magicbees/bees/AlleleEffectAuraNodeAttract.java b/magicbees_src/magicbees/bees/AlleleEffectAuraNodeAttract.java index b5f7d93..49252ba 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectAuraNodeAttract.java +++ b/magicbees_src/magicbees/bees/AlleleEffectAuraNodeAttract.java @@ -12,13 +12,10 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectAuraNodeAttract extends AlleleEffect { - - private int throttle; public AlleleEffectAuraNodeAttract(String id, boolean isDominant, int timeout) { - super(id, isDominant); - this.throttle = timeout; + super(id, isDominant, timeout); } @Override @@ -32,46 +29,38 @@ public class AlleleEffectAuraNodeAttract extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int value = storedData.getInteger(0); - if (value >= throttle) + World w = housing.getWorld(); + if (w.rand.nextInt(10) < 1) { - World w = housing.getWorld(); - if (w.rand.nextInt(10) < 1) + float x = housing.getXCoord(); + float y = housing.getYCoord(); + float z = housing.getZCoord(); + int nodeId = ThaumcraftApi.getClosestAuraWithinRange(w, x, y, z, 1800); + if (nodeId != -1) { - float x = housing.getXCoord(); - float y = housing.getYCoord(); - float z = housing.getZCoord(); - int nodeId = ThaumcraftApi.getClosestAuraWithinRange(w, x, y, z, 1800); - if (nodeId != -1) + AuraNode node = ThaumcraftApi.getNodeCopy(nodeId); + if (node.level >= node.baseLevel * 4 / 5) { - AuraNode node = ThaumcraftApi.getNodeCopy(nodeId); - if (node.level >= node.baseLevel * 4 / 5) - { - x = (float)(x - node.xPos); - y = (float)(y - node.yPos); - z = (float)(z - node.zPos); - - float distance = (float)Math.sqrt(x * x + y * y + z * z); - x = x / distance; - y = y / distance; - z = z / distance; - - x *= 0.05f; - y *= 0.05f; - z *= 0.05f; - - ThaumcraftApi.queueNodeChanges(nodeId, -1, 0, false, null, x, y, z); - } + x = (float)(x - node.xPos); + y = (float)(y - node.yPos); + z = (float)(z - node.zPos); + + float distance = (float)Math.sqrt(x * x + y * y + z * z); + x = x / distance; + y = y / distance; + z = z / distance; + + x *= 0.05f; + y *= 0.05f; + z *= 0.05f; + + ThaumcraftApi.queueNodeChanges(nodeId, -1, 0, false, null, x, y, z); } } - storedData.setInteger(0, 0); - } - else - { - storedData.setInteger(0, value + 1); } + storedData.setInteger(0, 0); return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectAuraNodeCharge.java b/magicbees_src/magicbees/bees/AlleleEffectAuraNodeCharge.java index bb31a39..f0c47a7 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectAuraNodeCharge.java +++ b/magicbees_src/magicbees/bees/AlleleEffectAuraNodeCharge.java @@ -10,13 +10,10 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectAuraNodeCharge extends AlleleEffect { - - private int effectTimeout; AlleleEffectAuraNodeCharge(String id, boolean dominant, int timeout) { - super(id, dominant); - this.effectTimeout = timeout; + super(id, dominant, timeout); } @Override @@ -30,32 +27,26 @@ public class AlleleEffectAuraNodeCharge extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int timeout = storedData.getInteger(0); - if (timeout >= this.effectTimeout) + World world = housing.getWorld(); + int x = housing.getXCoord(); + int y = housing.getYCoord(); + int z = housing.getZCoord(); + + EnumTag tag; + do { - World world = housing.getWorld(); - int x = housing.getXCoord(); - int y = housing.getYCoord(); - int z = housing.getZCoord(); - - EnumTag tag; - do - { - tag = EnumTag.values()[world.rand.nextInt(EnumTag.values().length)]; - } - while (tag == EnumTag.UNKNOWN || tag == EnumTag.WEATHER); - - if (world.rand.nextBoolean()) - { - ThaumcraftApi.increaseLowestAura(world, x, y, z, 1); - } + tag = EnumTag.values()[world.rand.nextInt(EnumTag.values().length)]; } - else + while (tag == EnumTag.UNKNOWN || tag == EnumTag.WEATHER); + + if (world.rand.nextBoolean()) { - storedData.setInteger(0, timeout + 1); + ThaumcraftApi.increaseLowestAura(world, x, y, z, 1); } + storedData.setInteger(0, 0); + return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectAuraNodeFlux.java b/magicbees_src/magicbees/bees/AlleleEffectAuraNodeFlux.java index ec20d90..2c6d28d 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectAuraNodeFlux.java +++ b/magicbees_src/magicbees/bees/AlleleEffectAuraNodeFlux.java @@ -10,13 +10,11 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectAuraNodeFlux extends AlleleEffect { - private int effectTimeout; private int nodeRange; AlleleEffectAuraNodeFlux(String id, boolean dominant, int timeout, int range) { - super(id, dominant); - this.effectTimeout = timeout; + super(id, dominant, timeout); this.nodeRange = range; } @@ -31,34 +29,28 @@ public class AlleleEffectAuraNodeFlux extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int timeout = storedData.getInteger(0); - if (timeout >= this.effectTimeout) + World world = housing.getWorld(); + int x = housing.getXCoord(); + int y = housing.getYCoord(); + int z = housing.getZCoord(); + + EnumTag tag; + do { - World world = housing.getWorld(); - int x = housing.getXCoord(); - int y = housing.getYCoord(); - int z = housing.getZCoord(); - - EnumTag tag; - do - { - tag = EnumTag.values()[world.rand.nextInt(EnumTag.values().length)]; - } - while (tag == EnumTag.UNKNOWN || tag == EnumTag.WEATHER); - - int nodeId = ThaumcraftApi.getClosestAuraWithinRange(world, x, y, z, this.nodeRange); - if (nodeId != -1) - { - int quantity = world.rand.nextInt(2) + 1; - ThaumcraftApi.queueNodeChanges(nodeId, 0, 0, false, new ObjectTags().add(tag, quantity), 0f, 0f, 0f); - } + tag = EnumTag.values()[world.rand.nextInt(EnumTag.values().length)]; } - else + while (tag == EnumTag.UNKNOWN || tag == EnumTag.WEATHER); + + int nodeId = ThaumcraftApi.getClosestAuraWithinRange(world, x, y, z, this.nodeRange); + if (nodeId != -1) { - storedData.setInteger(0, timeout + 1); + int quantity = world.rand.nextInt(2) + 1; + ThaumcraftApi.queueNodeChanges(nodeId, 0, 0, false, new ObjectTags().add(tag, quantity), 0f, 0f, 0f); } + storedData.setInteger(0, 0); + return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectAuraNodePurify.java b/magicbees_src/magicbees/bees/AlleleEffectAuraNodePurify.java index b8d5e7f..1205019 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectAuraNodePurify.java +++ b/magicbees_src/magicbees/bees/AlleleEffectAuraNodePurify.java @@ -13,13 +13,11 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectAuraNodePurify extends AlleleEffect { - private int effectTimeout; private int nodeRange; public AlleleEffectAuraNodePurify(String id, boolean dominant, int timeout, int range) { - super(id, dominant); - this.effectTimeout = timeout; + super(id, dominant, timeout); this.nodeRange = range; } @@ -34,40 +32,32 @@ public class AlleleEffectAuraNodePurify extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int timeout = storedData.getInteger(0); - if (timeout >= this.effectTimeout) + World world = housing.getWorld(); + int x = housing.getXCoord(); + int y = housing.getYCoord(); + int z = housing.getZCoord(); + + int nodeId = ThaumcraftApi.getClosestAuraWithinRange(world, x, y, z, this.nodeRange); + if (nodeId >= 0) { - World world = housing.getWorld(); - int x = housing.getXCoord(); - int y = housing.getYCoord(); - int z = housing.getZCoord(); - - int nodeId = ThaumcraftApi.getClosestAuraWithinRange(world, x, y, z, this.nodeRange); - if (nodeId >= 0) + AuraNode node = ThaumcraftApi.getNodeCopy(nodeId); + if (node != null) { - AuraNode node = ThaumcraftApi.getNodeCopy(nodeId); - if (node != null) + int aspectCount = node.flux.tags.size(); + if (aspectCount > 0) { - int aspectCount = node.flux.tags.size(); - if (aspectCount > 0) + EnumTag selectedTag = node.flux.getAspectsSorted()[world.rand.nextInt(node.flux.tags.size())]; + if (selectedTag != null && housing.addProduct(new ItemStack(Config.solidFlux, 1, selectedTag.id), true)) { - EnumTag selectedTag = node.flux.getAspectsSorted()[world.rand.nextInt(node.flux.tags.size())]; - if (selectedTag != null && housing.addProduct(new ItemStack(Config.solidFlux, 1, selectedTag.id), true)) - { - node.flux.remove(selectedTag, 1); - ThaumcraftApi.queueNodeChanges(node.key, 0, 0, false, new ObjectTags().remove(selectedTag, 1), 0, 0, 0); - } + node.flux.remove(selectedTag, 1); + ThaumcraftApi.queueNodeChanges(node.key, 0, 0, false, new ObjectTags().remove(selectedTag, 1), 0, 0, 0); } } } - storedData.setInteger(0, 0); - } - else - { - storedData.setInteger(0, timeout + 1); } + storedData.setInteger(0, 0); return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectCure.java b/magicbees_src/magicbees/bees/AlleleEffectCure.java index cf31862..b25c245 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectCure.java +++ b/magicbees_src/magicbees/bees/AlleleEffectCure.java @@ -21,7 +21,7 @@ public class AlleleEffectCure extends AlleleEffect public AlleleEffectCure(String id, boolean isDominant) { - super(id, isDominant); + super(id, isDominant, 200); } @Override @@ -35,28 +35,19 @@ public class AlleleEffectCure extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int count = storedData.getInteger(0); + List entityList = this.getEntitiesWithinRange(genome, housing); - if (count == 200) + for (Entity e : entityList) { - List entityList = this.getEntitiesWithinRange(genome, housing); - - for (Entity e : entityList) + if (e instanceof EntityPlayer) { - if (e instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)e; - player.curePotionEffects(new ItemStack(Item.bucketMilk)); - } + EntityPlayer player = (EntityPlayer)e; + player.curePotionEffects(new ItemStack(Item.bucketMilk)); } - storedData.setInteger(0, 0); - } - else - { - storedData.setInteger(0, count + 1); } + storedData.setInteger(0, 0); return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectPotion.java b/magicbees_src/magicbees/bees/AlleleEffectPotion.java index 80e3ad1..7e917ae 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectPotion.java +++ b/magicbees_src/magicbees/bees/AlleleEffectPotion.java @@ -20,7 +20,7 @@ public class AlleleEffectPotion extends AlleleEffect public AlleleEffectPotion(String name, Potion potionApplied, int effectDuration, boolean isDominant) { - super(name, isDominant); + super(name, isDominant, 200); this.potionId = potionApplied.id; this.duration = 20 * effectDuration; } @@ -36,28 +36,19 @@ public class AlleleEffectPotion extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int count = storedData.getInteger(0); + List entityList = this.getEntitiesWithinRange(genome, housing); - if (count == 200) + for (Entity e : entityList) { - List entityList = this.getEntitiesWithinRange(genome, housing); - - for (Entity e : entityList) + if (e instanceof EntityPlayer) { - if (e instanceof EntityPlayer) - { - EntityPlayer player = (EntityPlayer)e; - player.addPotionEffect(new PotionEffect(this.potionId, this.duration, 0)); - } + EntityPlayer player = (EntityPlayer)e; + player.addPotionEffect(new PotionEffect(this.potionId, this.duration, 0)); } - storedData.setInteger(0, 0); - } - else - { - storedData.setInteger(0, count + 1); } + storedData.setInteger(0, 0); return storedData; } diff --git a/magicbees_src/magicbees/bees/AlleleEffectSpawnMob.java b/magicbees_src/magicbees/bees/AlleleEffectSpawnMob.java index dabb7e0..f2e8c52 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectSpawnMob.java +++ b/magicbees_src/magicbees/bees/AlleleEffectSpawnMob.java @@ -22,7 +22,6 @@ public class AlleleEffectSpawnMob extends AlleleEffect protected String alternateMob; protected String mobName; protected String mobSound; - protected int throttle; protected int chanceToSpawn; protected int maxMobsInArea; @@ -33,10 +32,9 @@ public class AlleleEffectSpawnMob extends AlleleEffect public AlleleEffectSpawnMob(String id, boolean isDominant, String mobToSpawn, String mobSoundFx) { - super(id, isDominant); + super(id, isDominant, 200); this.aggosOnPlayer = false; this.mobName = mobToSpawn; - this.throttle = 200; this.chanceToSpawn = 100; this.maxMobsInArea = 6; this.mobSound = mobSoundFx; @@ -54,20 +52,8 @@ public class AlleleEffectSpawnMob extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int count = storedData.getInteger(0); - - if (count >= this.throttle && !storedData.getBoolean(0)) - { - storedData.setBoolean(0, true); - storedData.setInteger(0, 0); - } - else - { - storedData.setInteger(0, count + 1); - } - // Check if we're ready to spawn the mob. if (storedData.getBoolean(0)) { diff --git a/magicbees_src/magicbees/bees/AlleleEffectSpawnMobWeighted.java b/magicbees_src/magicbees/bees/AlleleEffectSpawnMobWeighted.java index 2d37c37..c140673 100644 --- a/magicbees_src/magicbees/bees/AlleleEffectSpawnMobWeighted.java +++ b/magicbees_src/magicbees/bees/AlleleEffectSpawnMobWeighted.java @@ -11,14 +11,12 @@ import forestry.api.genetics.IEffectData; public class AlleleEffectSpawnMobWeighted extends AlleleEffect { - private int throttle; private String[] entityNames; private int[] spawnChance; public AlleleEffectSpawnMobWeighted(String id, boolean isDominant, int throttle, String[] mobs, int[] chance) { - super(id, isDominant); - this.throttle = throttle; + super(id, isDominant, throttle); if (mobs.length != chance.length) { throw new IllegalArgumentException("Array lengths must be equal!"); @@ -38,20 +36,11 @@ public class AlleleEffectSpawnMobWeighted extends AlleleEffect } @Override - public IEffectData doEffect(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) + public IEffectData doEffectThrottled(IBeeGenome genome, IEffectData storedData, IBeeHousing housing) { - int value = storedData.getInteger(0); - - if (value >= this.throttle) + if (this.spawnMob(genome, housing)) { - if (this.spawnMob(genome, housing)) - { - storedData.setInteger(0, 0); - } - } - else - { - storedData.setInteger(0, value + 1); + storedData.setInteger(0, 0); } return storedData; diff --git a/magicbees_src/magicbees/bees/BeeGenomeManager.java b/magicbees_src/magicbees/bees/BeeGenomeManager.java index 7776189..cfbac89 100644 --- a/magicbees_src/magicbees/bees/BeeGenomeManager.java +++ b/magicbees_src/magicbees/bees/BeeGenomeManager.java @@ -296,15 +296,6 @@ public class BeeGenomeManager return genome; } - public static IAllele[] getTemplateAware() - { - IAllele[] genome = getTemplateBaseSoul(); - - genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AWARE; - - return genome; - } - private static IAllele[] getTemplateBaseSoul() { IAllele[] genome = getTemplateModBase(); @@ -315,6 +306,15 @@ public class BeeGenomeManager return genome; } + public static IAllele[] getTemplateAware() + { + IAllele[] genome = getTemplateBaseSoul(); + + genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.AWARE; + + return genome; + } + public static IAllele[] getTemplateSpirit() { IAllele[] genome = getTemplateBaseSoul(); @@ -330,6 +330,7 @@ public class BeeGenomeManager IAllele[] genome = getTemplateBaseSoul(); genome[EnumBeeChromosome.SPECIES.ordinal()] = BeeSpecies.SOUL; + genome[EnumBeeChromosome.TEMPERATURE_TOLERANCE.ordinal()] = Allele.getBaseAllele("toleranceDown2"); genome[EnumBeeChromosome.LIFESPAN.ordinal()] = Allele.getBaseAllele("lifespanNormal"); return genome; diff --git a/magicbees_src/magicbees/bees/BeeMutation.java b/magicbees_src/magicbees/bees/BeeMutation.java index 5d45df2..2b59f6b 100644 --- a/magicbees_src/magicbees/bees/BeeMutation.java +++ b/magicbees_src/magicbees/bees/BeeMutation.java @@ -151,7 +151,7 @@ public class BeeMutation implements IBeeMutation new BeeMutation(Allele.getBaseSpecies("Austere"), baseA, BeeSpecies.EMERALD, 6) .setBlockRequired(Block.blockEmerald); new BeeMutation(Allele.getBaseSpecies("Rural"), BeeSpecies.COPPER, BeeSpecies.APATITE, 12) - .setBlockAndMetaRequired(BlockInterface.getBlock("resources").itemID, 0); + .setBlockRequired("oreApatite"); if (ThaumcraftHelper.isActive()) { @@ -162,7 +162,8 @@ public class BeeMutation implements IBeeMutation for (int b = a + 1; b < speciesList.length; ++b) { new BeeMutation(speciesList[a], speciesList[b], BeeSpecies.TC_STARK, 8) - .setBlockRequired(Config.tcCrystal); + .setBlockRequired(Config.tcCrystal) + .setBlockRequiredNameOverride("research.block.crystals"); } } @@ -245,6 +246,7 @@ public class BeeMutation implements IBeeMutation private int requiredBlockId; private int requiredBlockMeta; private String requiredBlockOreDictEntry; + private String requiredBlockName; private BiomeDictionary.Type requiredBiomeType; public BeeMutation(IAlleleBeeSpecies species0, IAlleleBeeSpecies species1, BeeSpecies resultSpecies, int percentChance) @@ -266,6 +268,7 @@ public class BeeMutation implements IBeeMutation this.requiredBlockMeta = OreDictionary.WILDCARD_VALUE; this.requiredBlockOreDictEntry = null; this.requiredBiomeType = null; + this.requiredBlockName = null; BeeManager.beeRoot.registerMutation(this); } @@ -320,8 +323,18 @@ public class BeeMutation implements IBeeMutation if (this.requiresBlock) { - int blockId = housing.getWorld().getBlockId(housing.getXCoord(), housing.getYCoord() - 1, housing.getZCoord()); - int blockMeta = housing.getWorld().getBlockMetadata(housing.getXCoord(), housing.getYCoord() - 1, housing.getZCoord()); + Block blockBelow; + int blockId; + int blockMeta; + int i = 1; + do + { + blockId = housing.getWorld().getBlockId(housing.getXCoord(), housing.getYCoord() - i, housing.getZCoord()); + blockMeta = housing.getWorld().getBlockMetadata(housing.getXCoord(), housing.getYCoord() - i, housing.getZCoord()); + blockBelow = Block.blocksList[blockId]; + ++i; + } + while (blockBelow != null && !(blockBelow instanceof IBeeHousing)); if (this.requiredBlockOreDictEntry != null) { @@ -444,7 +457,12 @@ public class BeeMutation implements IBeeMutation } if (this.requiresBlock) { - if (this.requiredBlockOreDictEntry != null) + if (this.requiredBlockName != null) + { + conditions.add(String.format(LocalizationManager.getLocalizedString("research.requiresBlock"), + LocalizationManager.getLocalizedString(this.requiredBlockName))); + } + else if (this.requiredBlockOreDictEntry != null) { ArrayList ores = OreDictionary.getOres(this.requiredBlockOreDictEntry); if (ores.size() > 0) @@ -454,6 +472,11 @@ public class BeeMutation implements IBeeMutation } else { + int meta = 0; + if (this.requiredBlockMeta != OreDictionary.WILDCARD_VALUE) + { + meta = this.requiredBlockMeta; + } conditions.add(String.format(LocalizationManager.getLocalizedString("research.requiresBlock"), new ItemStack(this.requiredBlockId, 1, this.requiredBlockMeta).getDisplayName())); } @@ -533,6 +556,13 @@ public class BeeMutation implements IBeeMutation return this; } + public BeeMutation setBlockRequiredNameOverride(String blockName) + { + this.requiredBlockName = blockName; + + return this; + } + public BeeMutation setMoonPhaseRestricted(MoonPhase begin, MoonPhase end) { this.isMoonRestricted = true; diff --git a/magicbees_src/magicbees/bees/BeeSpecies.java b/magicbees_src/magicbees/bees/BeeSpecies.java index 4736f13..850d9c2 100644 --- a/magicbees_src/magicbees/bees/BeeSpecies.java +++ b/magicbees_src/magicbees/bees/BeeSpecies.java @@ -122,15 +122,15 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider BeeClassification.ABOMINABLE, 0x5B5B5B, 0x960F00, EnumTemperature.HELLISH, EnumHumidity.NORMAL, true, false), OBLIVION("Oblivion", "oblivioni", - BeeClassification.ABOMINABLE, 0xD5C3E5, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, false), + BeeClassification.EXTRINSIC, 0xD5C3E5, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, false), NAMELESS("Nameless", "sine nomine", - BeeClassification.ABOMINABLE, 0x8ca7cb, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true), + BeeClassification.EXTRINSIC, 0x8ca7cb, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true), ABANDONED("Abandoned", "reliquit", - BeeClassification.ABOMINABLE, 0xc5cb8c, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true), + BeeClassification.EXTRINSIC, 0xc5cb8c, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, false, true), FORLORN("Forlorn", "perditus", - BeeClassification.ABOMINABLE, 0xcba88c, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, true, false), + BeeClassification.EXTRINSIC, 0xcba88c, 0xF696FF, EnumTemperature.COLD, EnumHumidity.NORMAL, true, false), DRACONIC("Draconic", "draconic", - BeeClassification.ABOMINABLE, 0x9f56ad, 0x5a3b62, EnumTemperature.COLD, EnumHumidity.NORMAL, true, false), + BeeClassification.EXTRINSIC, 0x9f56ad, 0x5a3b62, EnumTemperature.COLD, EnumHumidity.NORMAL, true, false), IRON("Iron", "ferrus", BeeClassification.METALLIC, 0x686868, 0xE9E9E9, EnumTemperature.NORMAL, EnumHumidity.NORMAL, false, true), @@ -1007,7 +1007,8 @@ public enum BeeSpecies implements IAlleleBeeSpecies, IIconProvider continue; icons[i][0] = itemMap.registerIcon(root + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".outline"); - icons[i][1] = body1; + icons[i][1] = (EnumBeeType.values()[i] != EnumBeeType.LARVAE) ? body1 : + itemMap.registerIcon(root + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body"); icons[i][2] = itemMap.registerIcon(root + EnumBeeType.values()[i].toString().toLowerCase(Locale.ENGLISH) + ".body2"); } } diff --git a/magicbees_src/magicbees/main/render/BeeRenderEffect.java b/magicbees_src/magicbees/client/render/BeeRenderEffect.java similarity index 96% rename from magicbees_src/magicbees/main/render/BeeRenderEffect.java rename to magicbees_src/magicbees/client/render/BeeRenderEffect.java index 8e381ed..1d2fa46 100644 --- a/magicbees_src/magicbees/main/render/BeeRenderEffect.java +++ b/magicbees_src/magicbees/client/render/BeeRenderEffect.java @@ -1,4 +1,4 @@ -package magicbees.main.render; +package magicbees.client.render; import org.lwjgl.opengl.GL11; @@ -18,7 +18,7 @@ import net.minecraftforge.client.ForgeHooksClient; public class BeeRenderEffect extends EntityFX { public int blendmode = 1; - private static final String texture = "forestry:particles/swarm_bee"; + private static String texture = "/mods/forestry/textures/items/particles/swarm_bee"; public BeeRenderEffect(World world, double x, double y, double z, float motionScaleX, float motionScaleY, float motionScaleZ, int color) { diff --git a/magicbees_src/magicbees/main/ClientProxy.java b/magicbees_src/magicbees/main/ClientProxy.java index a271c24..9d8cc81 100644 --- a/magicbees_src/magicbees/main/ClientProxy.java +++ b/magicbees_src/magicbees/main/ClientProxy.java @@ -1,7 +1,7 @@ package magicbees.main; +import magicbees.client.render.BeeRenderEffect; import magicbees.client.render.EffectJarRenderer; -import magicbees.main.render.BeeRenderEffect; import magicbees.tileentity.TileEntityEffectJar; import net.minecraft.world.World; import net.minecraftforge.client.MinecraftForgeClient; diff --git a/magicbees_src/magicbees/tileentity/EffectJarHousing.java b/magicbees_src/magicbees/tileentity/EffectJarHousing.java index 62c37e5..c05557d 100644 --- a/magicbees_src/magicbees/tileentity/EffectJarHousing.java +++ b/magicbees_src/magicbees/tileentity/EffectJarHousing.java @@ -205,4 +205,10 @@ public class EffectJarHousing implements IBeeHousing return false; } + @Override + public boolean onEggLaid(IBee queen) + { + return false; + } + } diff --git a/magicbees_src/magicbees/world/feature/FeatureHive.java b/magicbees_src/magicbees/world/feature/FeatureHive.java index 82c2db6..0f1606a 100644 --- a/magicbees_src/magicbees/world/feature/FeatureHive.java +++ b/magicbees_src/magicbees/world/feature/FeatureHive.java @@ -4,6 +4,7 @@ import java.util.Random; import magicbees.block.types.HiveType; import magicbees.main.Config; +import magicbees.main.MagicBees; import net.minecraft.block.Block; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; @@ -255,7 +256,7 @@ public class FeatureHive int max = (int)(biome.maxHeight * 64); // sanity min = (min > 1) ? min : 1; - max = (max > 5) ? max : 5; + max = (max > 10) ? max : 10; return min + random.nextInt(max); }