aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java
index 09ad7ddbf3..472c39c744 100644
--- a/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java
+++ b/src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java
@@ -14,6 +14,7 @@ import forestry.api.core.*;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IEffectData;
import forestry.api.genetics.IIndividual;
+import forestry.apiculture.genetics.Bee;
import forestry.core.errors.EnumErrorCode;
import forestry.plugins.PluginApiculture;
import gregtech.api.interfaces.ITexture;
@@ -21,6 +22,7 @@ import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_BasicMachine;
import gregtech.api.render.TextureFactory;
+import gregtech.api.util.GT_ApiaryModifier;
import gregtech.api.util.GT_ApiaryUpgrade;
import gregtech.api.util.GT_Utility;
import gregtech.common.GT_Client;
@@ -30,8 +32,6 @@ import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.*;
-import net.bdew.gendustry.api.ApiaryModifiers;
-import net.bdew.gendustry.api.items.IApiaryUpgrade;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer;
@@ -232,9 +232,8 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
IAlleleBeeSpecies primary = genome.getPrimary();
IAlleleBeeSpecies secondary = genome.getSecondary();
- float speed = genome.getSpeed()
- * getProductionModifier(null, 1f)
- * beemodifier.getProductionModifier(null, 1.f);
+ float speed = genome.getSpeed();
+ float prodMod = getProductionModifier(null, 1f) * beemodifier.getProductionModifier(null, 1.f);
HashMap<GT_Utility.ItemId, Float> drops = new HashMap<>();
HashMap<GT_Utility.ItemId, ItemStack> dropstacks = new HashMap<>();
@@ -244,7 +243,9 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
GT_Utility.ItemId id = GT_Utility.ItemId.createNoCopy(entry.getKey());
drops.merge(
id,
- Math.min(1f, entry.getValue() * speed) * (float) entry.getKey().stackSize * cycles,
+ Bee.getFinalChance(entry.getValue(), speed, prodMod, 8f)
+ * (float) entry.getKey().stackSize
+ * cycles,
Float::sum);
dropstacks.computeIfAbsent(id, k -> entry.getKey());
}
@@ -253,7 +254,7 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
GT_Utility.ItemId id = GT_Utility.ItemId.createNoCopy(entry.getKey());
drops.merge(
id,
- Math.min(1f, (float) Math.round(entry.getValue() / 2.0F) * speed)
+ Bee.getFinalChance(entry.getValue() / 2f, speed, prodMod, 8f)
* (float) entry.getKey().stackSize
* cycles,
Float::sum);
@@ -265,7 +266,9 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
GT_Utility.ItemId id = GT_Utility.ItemId.createNoCopy(entry.getKey());
drops.merge(
id,
- Math.min(1f, entry.getValue() * speed) * (float) entry.getKey().stackSize * cycles,
+ Bee.getFinalChance(entry.getValue(), speed, prodMod, 8f)
+ * (float) entry.getKey().stackSize
+ * cycles,
Float::sum);
dropstacks.computeIfAbsent(id, k -> entry.getKey());
}
@@ -549,7 +552,7 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
|| beeRoot.isMember(aStack, EnumBeeType.PRINCESS.ordinal());
else if (aIndex == drone) return beeRoot.isMember(aStack, EnumBeeType.DRONE.ordinal());
else if (aIndex < getOutputSlot()) {
- if (!(aStack.getItem() instanceof IApiaryUpgrade) && !GT_ApiaryUpgrade.isUpgrade(aStack)) return false;
+ if (!GT_ApiaryUpgrade.isUpgrade(aStack)) return false;
for (int i = drone + 1; i < drone + 1 + 4; i++) {
if (aIndex == i) continue;
ItemStack s = getStackInSlot(i);
@@ -815,24 +818,16 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
private float temperatureMod = 0f;
private boolean isAutomated = false;
private boolean isRetrievingPollen = false;
-
private int maxspeed = 0;
public void updateModifiers() {
- maxspeed = 0;
- ApiaryModifiers mods = new ApiaryModifiers();
+ GT_ApiaryModifier mods = new GT_ApiaryModifier();
for (int i = 2; i < 2 + 4; i++) {
ItemStack s = getInputAt(i);
if (s == null) continue;
- if (s.getItem() instanceof IApiaryUpgrade) {
- IApiaryUpgrade up = (IApiaryUpgrade) s.getItem();
- up.applyModifiers(mods, s);
- } else if (GT_ApiaryUpgrade.isUpgrade(s)) {
+ if (GT_ApiaryUpgrade.isUpgrade(s)) {
GT_ApiaryUpgrade upgrade = GT_ApiaryUpgrade.getUpgrade(s);
- if (upgrade != null) {
- maxspeed = upgrade.applyMaxSpeedModifier(maxspeed);
- upgrade.applyModifiers(mods, s);
- }
+ upgrade.applyModifiers(mods);
}
}
@@ -851,6 +846,7 @@ public class GT_MetaTileEntity_IndustrialApiary extends GT_MetaTileEntity_BasicM
temperatureMod = mods.temperature;
isAutomated = mods.isAutomated;
isRetrievingPollen = mods.isCollectingPollen;
+ maxspeed = mods.maxSpeed;
if (mLockedSpeed) mSpeed = maxspeed;
else mSpeed = Math.min(mSpeed, maxspeed);