diff options
author | Yang Xizhi <60341015+GlodBlock@users.noreply.github.com> | 2021-12-16 22:27:05 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-16 15:27:05 +0100 |
commit | 418b98867ff94439f0a5ba9740f1bbe51a0a0036 (patch) | |
tree | aca11c20d78e8a309b8d1ba054310393e28c03b7 | |
parent | 1f884366285fd734df11c8213a5df204c24a7bb7 (diff) | |
download | GT5-Unofficial-418b98867ff94439f0a5ba9740f1bbe51a0a0036.tar.gz GT5-Unofficial-418b98867ff94439f0a5ba9740f1bbe51a0a0036.tar.bz2 GT5-Unofficial-418b98867ff94439f0a5ba9740f1bbe51a0a0036.zip |
fix rgb overflow (#814)
fix https://github.com/GTNewHorizons/GT-New-Horizons-Modpack/issues/9104
-rw-r--r-- | src/main/java/gregtech/common/GT_Client.java | 39 |
1 files changed, 23 insertions, 16 deletions
diff --git a/src/main/java/gregtech/common/GT_Client.java b/src/main/java/gregtech/common/GT_Client.java index b9701bb451..2637342fc2 100644 --- a/src/main/java/gregtech/common/GT_Client.java +++ b/src/main/java/gregtech/common/GT_Client.java @@ -630,72 +630,79 @@ public class GT_Client extends GT_Proxy int tDirection = mAnimationDirection ? 1 : -1; for (Object o : mPosR) { Materials tMaterial = (Materials) o; - tMaterial.mRGBa[0] += tDirection; + tMaterial.mRGBa[0] = getSafeRGBValue(tMaterial.mRGBa[0], tDirection); } for (Materials tMaterial : mPosG) { - tMaterial.mRGBa[1] += tDirection; + tMaterial.mRGBa[1] = getSafeRGBValue(tMaterial.mRGBa[1], tDirection); } for (Materials tMaterial : mPosB) { - tMaterial.mRGBa[2] += tDirection; + tMaterial.mRGBa[2] = getSafeRGBValue(tMaterial.mRGBa[2], tDirection); } for (Materials tMaterial : mPosA) { - tMaterial.mRGBa[3] += tDirection; + tMaterial.mRGBa[3] = getSafeRGBValue(tMaterial.mRGBa[3], tDirection); } for (Materials tMaterial : mNegR) { - tMaterial.mRGBa[0] -= tDirection; + tMaterial.mRGBa[0] = getSafeRGBValue(tMaterial.mRGBa[0], -tDirection); } for (Materials tMaterial : mNegG) { - tMaterial.mRGBa[1] -= tDirection; + tMaterial.mRGBa[1] = getSafeRGBValue(tMaterial.mRGBa[1], -tDirection); } for (Materials tMaterial : mNegB) { - tMaterial.mRGBa[2] -= tDirection; + tMaterial.mRGBa[2] = getSafeRGBValue(tMaterial.mRGBa[2], -tDirection); } for (Materials tMaterial : mNegA) { - tMaterial.mRGBa[3] -= tDirection; + tMaterial.mRGBa[3] = getSafeRGBValue(tMaterial.mRGBa[3], -tDirection); } for (Materials tMaterial : mMoltenPosR) { - tMaterial.mMoltenRGBa[0] += tDirection; + tMaterial.mMoltenRGBa[0] = getSafeRGBValue(tMaterial.mMoltenRGBa[0], tDirection); } for (Materials tMaterial : mMoltenPosG) { - tMaterial.mMoltenRGBa[1] += tDirection; + tMaterial.mMoltenRGBa[1] = getSafeRGBValue(tMaterial.mMoltenRGBa[1], tDirection); } for (Materials tMaterial : mMoltenPosB) { - tMaterial.mMoltenRGBa[2] += tDirection; + tMaterial.mMoltenRGBa[2] = getSafeRGBValue(tMaterial.mMoltenRGBa[2], tDirection); } for (Materials tMaterial : mMoltenPosA) { - tMaterial.mMoltenRGBa[3] += tDirection; + tMaterial.mMoltenRGBa[3] = getSafeRGBValue(tMaterial.mMoltenRGBa[3], tDirection); } for (Materials tMaterial : mMoltenNegR) { - tMaterial.mMoltenRGBa[0] -= tDirection; + tMaterial.mMoltenRGBa[0] = getSafeRGBValue(tMaterial.mMoltenRGBa[0], -tDirection); } for (Materials tMaterial : mMoltenNegG) { - tMaterial.mMoltenRGBa[1] -= tDirection; + tMaterial.mMoltenRGBa[1] = getSafeRGBValue(tMaterial.mMoltenRGBa[1], -tDirection); } for (Materials tMaterial : mMoltenNegB) { - tMaterial.mMoltenRGBa[2] -= tDirection; + tMaterial.mMoltenRGBa[2] = getSafeRGBValue(tMaterial.mMoltenRGBa[2], -tDirection); } for (Materials tMaterial : mMoltenNegA) { - tMaterial.mMoltenRGBa[3] -= tDirection; + tMaterial.mMoltenRGBa[3] = getSafeRGBValue(tMaterial.mMoltenRGBa[3], -tDirection); } } } + public short getSafeRGBValue(short aRBG, int aDelta) { + int tmp = aRBG + aDelta; + if (tmp > 255) tmp = 255; + if (tmp < 0) tmp = 0; + return (short) tmp; + } + @Override public void doSonictronSound(ItemStack aStack, World aWorld, double aX, double aY, double aZ) { if (GT_Utility.isStackInvalid(aStack)) |