diff --git a/src/main/java/forestry/apiculture/BeekeepingLogic.java b/src/main/java/forestry/apiculture/BeekeepingLogic.java index 3979a7aa3..48830daf8 100755 --- a/src/main/java/forestry/apiculture/BeekeepingLogic.java +++ b/src/main/java/forestry/apiculture/BeekeepingLogic.java @@ -154,6 +154,22 @@ public class BeekeepingLogic implements IBeekeepingLogic { if (queenWorkCycleThrottle >= PluginApiculture.ticksPerBeeWorkCycle) { queenWorkCycleThrottle = 0; + boolean hasFlower = queen.hasFlower(housing); + + if (housingSupportsMultipleErrorStates) { + housing.setErrorCondition(!hasFlower, EnumErrorCode.NOFLOWER); + } else { + if (hasFlower) { + housing.setErrorState(EnumErrorCode.OK); + } else { + housing.setErrorState(EnumErrorCode.NOFLOWER); + } + } + + if (!hasFlower) { + return; + } + doProduction(); queen.plantFlowerRandom(housing); doPollination(); @@ -278,7 +294,6 @@ public class BeekeepingLogic implements IBeekeepingLogic { } private boolean queenCanWork() { - boolean hasFlower = queen.hasFlower(housing); if (housingSupportsMultipleErrorStates) { try { @@ -287,9 +302,7 @@ public class BeekeepingLogic implements IBeekeepingLogic { housing.setErrorCondition(true, errorState); } - housing.setErrorCondition(!hasFlower, EnumErrorCode.NOFLOWER); - - return (errorStates.size() == 0) && hasFlower; + return (errorStates.size() == 0); } catch (Throwable ignored) { // queen might not support getCanWork(housing) } @@ -301,13 +314,6 @@ public class BeekeepingLogic implements IBeekeepingLogic { return false; } - if (hasFlower) { - housing.setErrorState(EnumErrorCode.OK); - } else { - housing.setErrorState(EnumErrorCode.NOFLOWER); - return false; - } - return true; }