diff options
author | TheEricCheng <88154852+TheEricCheng@users.noreply.github.com> | 2023-02-17 04:07:12 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-16 21:07:12 +0100 |
commit | 4442f98e071cbcb7d78f08231a229871f119c219 (patch) | |
tree | 30addce45f2a9c625f8cfbda915a858bde55d262 | |
parent | 365d17b7aeb0b6032f6b27a252b82c4b77a5fbb7 (diff) | |
download | GT5-Unofficial-4442f98e071cbcb7d78f08231a229871f119c219.tar.gz GT5-Unofficial-4442f98e071cbcb7d78f08231a229871f119c219.tar.bz2 GT5-Unofficial-4442f98e071cbcb7d78f08231a229871f119c219.zip |
Loose mode change (#1750)
* Add files via upload
* Add files via upload
* Add files via upload
3 files changed, 44 insertions, 45 deletions
diff --git a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java index 7ee4b23628..a0f1ea6ef1 100644 --- a/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java +++ b/src/main/java/gregtech/api/items/GT_MetaGenerated_Tool.java @@ -420,14 +420,12 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item // Optimal Flow -> toolSpeed // EU/t -> toolCombatDamage, toolSpeed // Overflow Tier -> toolQuality - int aBaseEff = (int) (5 + getToolCombatDamage(aStack)) * 1000; - int aOptFlow = GT_Utility.safeInt( - (long) Math.max( - Float.MIN_NORMAL, - ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() - * ((GT_MetaGenerated_Tool) aStack.getItem()) - .getPrimaryMaterial(aStack).mToolSpeed - * 50)); + float aBaseEff = (5f + getToolCombatDamage(aStack)) * 1000f; + float aOptFlow = (Math.max( + Float.MIN_NORMAL, + ((GT_MetaGenerated_Tool) aStack.getItem()).getToolStats(aStack).getSpeedMultiplier() + * ((GT_MetaGenerated_Tool) aStack.getItem()).getPrimaryMaterial(aStack).mToolSpeed + * 50F)); aList.add( tOffset + 0, EnumChatFormatting.GRAY + String.format( @@ -479,16 +477,16 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item / 200))) + EnumChatFormatting.GRAY)); { - long[] calculatedFlow = calculateLooseFlow(aOptFlow, aBaseEff); - int aOptFlowLoose = (int) calculatedFlow[0]; - int aBaseEffLoose = (int) calculatedFlow[1]; + float[] calculatedFlow = calculateLooseFlow(aOptFlow, aBaseEff); + float aOptFlowLoose = calculatedFlow[0]; + float aBaseEffLoose = calculatedFlow[1]; aList.add( tOffset + 5, EnumChatFormatting.AQUA + String.format( transItem("500", "Turbine Efficiency (Loose): %s"), "" + EnumChatFormatting.BLUE - + aBaseEffLoose / 100 + + (long) aBaseEffLoose / 100 + "%" + EnumChatFormatting.GRAY)); aList.add( @@ -497,7 +495,8 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item transItem("501", "Optimal Steam flow (Loose): %s L/t"), "" + EnumChatFormatting.GOLD + formatNumbers( - (aOptFlowLoose * getPrimaryMaterial(aStack).mSteamMultiplier)) + ((long) aOptFlowLoose + * getPrimaryMaterial(aStack).mSteamMultiplier)) + EnumChatFormatting.GRAY)); aList.add( tOffset + 7, @@ -505,8 +504,8 @@ public abstract class GT_MetaGenerated_Tool extends GT_MetaBase_Item transItem("901", "Energy from Optimal Steam Flow (Loose): %s EU/t"), "" + EnumChatFormatting.GOLD + formatNumbers( - (aOptFlowLoose * getPrimaryMaterial(aStack).mSteamMultiplier - / 10000) * (aBaseEffLoose / 2)) + ((long) aOptFlowLoose * getPrimaryMaterial(aStack).mSteamMultiplier + / 10000) * ((long) aBaseEffLoose / 2)) + EnumChatFormatting.GRAY)); aList.add( tOffset + 8, diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java index a28c28518c..20a62fc13c 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_HPSteam.java @@ -89,9 +89,9 @@ public class GT_MetaTileEntity_LargeTurbine_HPSteam extends GT_MetaTileEntity_La int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff, int overflowEfficiency, float[] flowMultipliers) { if (looseFit) { - long[] calculatedFlow = calculateLooseFlow(aOptFlow, aBaseEff); - aOptFlow = GT_Utility.safeInt(calculatedFlow[0]); - aBaseEff = GT_Utility.safeInt(calculatedFlow[1]); + float[] calculatedFlow = calculateLooseFlow(aOptFlow, aBaseEff); + aOptFlow = GT_Utility.safeInt((long) calculatedFlow[0]); + aBaseEff = GT_Utility.safeInt((long) calculatedFlow[1]); } int tEU = 0; int totalFlow = 0; // Byproducts are based on actual flow diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java index 35deef3fed..8ccd605b3a 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_LargeTurbine_Steam.java @@ -98,9 +98,9 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg int fluidIntoPower(ArrayList<FluidStack> aFluids, int aOptFlow, int aBaseEff, int overflowEfficiency, float[] flowMultipliers) { if (looseFit) { - long[] calculatedFlow = calculateLooseFlow(aOptFlow, aBaseEff); - aOptFlow = GT_Utility.safeInt(calculatedFlow[0]); - aBaseEff = GT_Utility.safeInt(calculatedFlow[1]); + float[] calculatedFlow = calculateLooseFlow(aOptFlow, aBaseEff); + aOptFlow = GT_Utility.safeInt((long) calculatedFlow[0]); + aBaseEff = GT_Utility.safeInt((long) calculatedFlow[1]); } int tEU = 0; int totalFlow = 0; // Byproducts are based on actual flow @@ -184,37 +184,37 @@ public class GT_MetaTileEntity_LargeTurbine_Steam extends GT_MetaTileEntity_Larg return efficiency; } - public static long[] calculateLooseFlow(int aOptFlow, int aBaseEff) { - aOptFlow *= 4; - if (aBaseEff >= 26000) { - aOptFlow *= Math.pow(1.1f, ((aBaseEff - 8000) / 10000F) * 20f); - aBaseEff *= 0.6f; - } else if (aBaseEff > 22000) { - aOptFlow *= Math.pow(1.1f, ((aBaseEff - 7000) / 10000F) * 20f); - aBaseEff *= 0.65f; - } else if (aBaseEff > 18000) { - aOptFlow *= Math.pow(1.1f, ((aBaseEff - 6000) / 10000F) * 20f); - aBaseEff *= 0.70f; - } else if (aBaseEff > 14000) { - aOptFlow *= Math.pow(1.1f, ((aBaseEff - 5000) / 10000F) * 20f); - aBaseEff *= 0.75f; - } else if (aBaseEff > 10000) { - aOptFlow *= Math.pow(1.1f, ((aBaseEff - 4000) / 10000F) * 20f); - aBaseEff *= 0.8f; - } else if (aBaseEff > 6000) { - aOptFlow *= Math.pow(1.1f, ((aBaseEff - 3000) / 10000F) * 20f); - aBaseEff *= 0.85f; + public static float[] calculateLooseFlow(float aOptFlow, float aBaseEff) { + aOptFlow *= 4f; + if (aBaseEff >= 26000f) { + aOptFlow = aOptFlow * (float) Math.pow(1.1f, ((aBaseEff - 8000f) / 10000f) * 20f); + aBaseEff = aBaseEff * 0.6f; + } else if (aBaseEff > 22000f) { + aOptFlow = aOptFlow * (float) Math.pow(1.1f, ((aBaseEff - 7000f) / 10000f) * 20f); + aBaseEff = aBaseEff * 0.65f; + } else if (aBaseEff > 18000f) { + aOptFlow = aOptFlow * (float) Math.pow(1.1f, ((aBaseEff - 6000f) / 10000f) * 20f); + aBaseEff = aBaseEff * 0.70f; + } else if (aBaseEff > 14000f) { + aOptFlow = aOptFlow * (float) Math.pow(1.1f, ((aBaseEff - 5000f) / 10000f) * 20f); + aBaseEff = aBaseEff * 0.75f; + } else if (aBaseEff > 10000f) { + aOptFlow = aOptFlow * (float) Math.pow(1.1f, ((aBaseEff - 4000f) / 10000f) * 20f); + aBaseEff = aBaseEff * 0.8f; + } else if (aBaseEff > 6000f) { + aOptFlow = aOptFlow * (float) Math.pow(1.1f, ((aBaseEff - 3000f) / 10000f) * 20f); + aBaseEff = aBaseEff * 0.85f; } else { - aBaseEff *= 0.9f; + aBaseEff = aBaseEff * 0.9f; } if (aBaseEff % 100 != 0) { aBaseEff -= aBaseEff % 100; } - long[] looseFlow = new long[2]; - looseFlow[0] = GT_Utility.safeInt(aOptFlow); - looseFlow[1] = GT_Utility.safeInt(aBaseEff); + float[] looseFlow = new float[2]; + looseFlow[0] = aOptFlow; + looseFlow[1] = aBaseEff; return looseFlow; } |