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 0000000..0f63aaf
Binary files /dev/null and b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body.png differ
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 0000000..a502723
Binary files /dev/null and b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.body2.png differ
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 0000000..44430b1
Binary files /dev/null and b/magicbees_res/mods/magicbees/textures/items/bees/skulking/larvae.outline.png differ
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);
}