diff options
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/basic/GT_MetaTileEntity_IndustrialApiary.java | 36 |
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); |