aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgreesyB <73182109+greesyB@users.noreply.github.com>2022-07-22 21:31:04 -0500
committerGitHub <noreply@github.com>2022-07-23 09:31:04 +0700
commit93f454cf59b1bd01aab2b9ac240c292033b48a73 (patch)
treec1ac737151d7aebe9e28103d067557ba400a10a9 /src
parentcab4d68fc22a05ca64d940abca854bcb69146de0 (diff)
downloadGT5-Unofficial-93f454cf59b1bd01aab2b9ac240c292033b48a73.tar.gz
GT5-Unofficial-93f454cf59b1bd01aab2b9ac240c292033b48a73.tar.bz2
GT5-Unofficial-93f454cf59b1bd01aab2b9ac240c292033b48a73.zip
Use accurate tanh, cache sievert decay (#168)
Former-commit-id: a69570a187bcc80037c871801b582544d4ff8805
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java
index dab124781a..55e1687df7 100644
--- a/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java
+++ b/src/main/java/com/github/bartimaeusnek/bartworks/common/tileentities/tiered/GT_MetaTileEntity_RadioHatch.java
@@ -47,6 +47,7 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.StatCollector;
+import java.util.HashMap;
import static com.github.bartimaeusnek.bartworks.util.BW_Util.calculateSv;
@@ -59,6 +60,7 @@ public class GT_MetaTileEntity_RadioHatch extends GT_MetaTileEntity_Hatch {
private byte mass;
private String material;
private byte coverage;
+ private static HashMap<Integer, Long> sievertDecayCache = new HashMap<>();
public GT_MetaTileEntity_RadioHatch(int aID, String aName, String aNameRegional, int aTier) {
super(aID, aName, aNameRegional, aTier, 1, new String[]{StatCollector.translateToLocal("tooltip.tile.radhatch.0.name"), StatCollector.translateToLocal("tooltip.tile.tiereddsc.3.name") + " " + (aTier - 2) + " " + ((aTier - 2) >= 2 ? StatCollector.translateToLocal("tooltip.bw.kg.1.name") : StatCollector.translateToLocal("tooltip.bw.kg.0.name")), StatCollector.translateToLocal("tooltip.tile.radhatch.1.name"), BW_Tooltip_Reference.ADDED_BY_BARTIMAEUSNEK_VIA_BARTWORKS.get()});
@@ -76,15 +78,20 @@ public class GT_MetaTileEntity_RadioHatch extends GT_MetaTileEntity_Hatch {
}
public static long calcDecayTicks(int x) {
- long ret;
+ long ret = GT_MetaTileEntity_RadioHatch.sievertDecayCache.getOrDefault(x, 0L);
+ if (ret != 0)
+ return ret;
+
if (x == 43)
ret = 5000;
else if (x == 61)
ret = 4500;
else if (x <= 100)
- ret = MathUtils.ceilLong((8000F * MathUtils.tanh(-x / 20F) + 8000F) * 1000F);
+ ret = MathUtils.ceilLong((8000D * Math.tanh(-x / 20D) + 8000D) * 1000D);
else
- ret = MathUtils.ceilLong(((8000F * MathUtils.tanh(-x / 65F) + 8000F)));
+ ret = MathUtils.ceilLong(((8000D * Math.tanh(-x / 65D) + 8000D)));
+
+ GT_MetaTileEntity_RadioHatch.sievertDecayCache.put(x, ret);
return ret;//*20;
}
@@ -156,8 +163,9 @@ public class GT_MetaTileEntity_RadioHatch extends GT_MetaTileEntity_Hatch {
if (this.mass > 0)
++this.timer;
- if (this.mass > 0 && this.sievert > 0 && GT_MetaTileEntity_RadioHatch.calcDecayTicks(this.sievert) > 0) {
- if (this.timer % (GT_MetaTileEntity_RadioHatch.calcDecayTicks(this.sievert)) == 0) {
+ if (this.mass > 0 && this.sievert > 0) {
+ float decayTicks = GT_MetaTileEntity_RadioHatch.calcDecayTicks(this.sievert);
+ if (decayTicks > 0 && this.timer % decayTicks == 0) {
this.mass--;
if (this.mass == 0) {
this.material = StatCollector.translateToLocal("tooltip.bw.empty.name");