From 862feea792ccd0ad67da4a3064e9a883abf20eab Mon Sep 17 00:00:00 2001 From: mezz Date: Thu, 5 Nov 2015 23:09:05 -0800 Subject: [PATCH] Ensure Forestry Queens from NEI are mated --- .../apiculture/genetics/BeeHelper.java | 9 +++++++-- .../forestry/apiculture/items/ItemBeeGE.java | 18 ++++++------------ 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/forestry/apiculture/genetics/BeeHelper.java b/src/main/java/forestry/apiculture/genetics/BeeHelper.java index 8c2d65067..10dcee0a3 100755 --- a/src/main/java/forestry/apiculture/genetics/BeeHelper.java +++ b/src/main/java/forestry/apiculture/genetics/BeeHelper.java @@ -98,15 +98,20 @@ public class BeeHelper extends SpeciesRoot implements IBeeRoot { } @Override - public ItemStack getMemberStack(IIndividual bee, int type) { - if (!isMember(bee)) { + public ItemStack getMemberStack(IIndividual individual, int type) { + if (!isMember(individual)) { return null; } + IBee bee = (IBee) individual; Item beeItem; switch (EnumBeeType.VALUES[type]) { case QUEEN: beeItem = ForestryItem.beeQueenGE.item(); + // ensure a queen is always mated + if (bee.getMate() == null) { + bee.mate(bee); + } break; case PRINCESS: beeItem = ForestryItem.beePrincessGE.item(); diff --git a/src/main/java/forestry/apiculture/items/ItemBeeGE.java b/src/main/java/forestry/apiculture/items/ItemBeeGE.java index 99a38d7b0..3fbacd3f1 100755 --- a/src/main/java/forestry/apiculture/items/ItemBeeGE.java +++ b/src/main/java/forestry/apiculture/items/ItemBeeGE.java @@ -112,27 +112,21 @@ public class ItemBeeGE extends ItemGE { @SuppressWarnings("rawtypes") @Override public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List itemList) { - if (type == EnumBeeType.QUEEN) { - return; - } - addCreativeItems(itemList, true); } @SuppressWarnings({"rawtypes", "unchecked"}) public void addCreativeItems(List itemList, boolean hideSecrets) { - - for (IIndividual individual : BeeManager.beeRoot.getIndividualTemplates()) { + for (IBee bee : BeeManager.beeRoot.getIndividualTemplates()) { // Don't show secret bees unless ordered to. - if (hideSecrets && individual.isSecret() && !Config.isDebug) { + if (hideSecrets && bee.isSecret() && !Config.isDebug) { continue; } - NBTTagCompound nbttagcompound = new NBTTagCompound(); - ItemStack someStack = new ItemStack(this); - individual.writeToNBT(nbttagcompound); - someStack.setTagCompound(nbttagcompound); - itemList.add(someStack); + ItemStack beeStack = BeeManager.beeRoot.getMemberStack(bee, type.ordinal()); + if (beeStack != null) { + itemList.add(beeStack); + } } }