diff options
author | Matej Dipčár <492666@mail.muni.cz> | 2022-09-22 03:14:01 +0200 |
---|---|---|
committer | Matej Dipčár <492666@mail.muni.cz> | 2022-09-23 02:15:55 +0200 |
commit | 16dc222b95a9b45258a678f7b884121c4ba25a8a (patch) | |
tree | f118e3f4d47f87c51d66edb29d4acbfbd1f90014 /src/main | |
parent | 9b4ca40de856f5cad609d44c0ec680b253f5a4bc (diff) | |
download | GT5-Unofficial-16dc222b95a9b45258a678f7b884121c4ba25a8a.tar.gz GT5-Unofficial-16dc222b95a9b45258a678f7b884121c4ba25a8a.tar.bz2 GT5-Unofficial-16dc222b95a9b45258a678f7b884121c4ba25a8a.zip |
Abstract `convertRatioToRedstone` properly
Diffstat (limited to 'src/main')
3 files changed, 25 insertions, 34 deletions
diff --git a/src/main/java/gregtech/api/util/GT_Utility.java b/src/main/java/gregtech/api/util/GT_Utility.java index 706694d6dd..f7fd9ce914 100644 --- a/src/main/java/gregtech/api/util/GT_Utility.java +++ b/src/main/java/gregtech/api/util/GT_Utility.java @@ -4254,10 +4254,29 @@ public class GT_Utility { return Textures.BlockIcons.ERROR_TEXTURE_INDEX; } - public static byte convertRatioToRedstone(long value, long max) { - if (value <= 0) return 0; // Empty - if (value >= max) return 15; // Full - return (byte) (1 + (14 * value) / max); // Range 1-14 + public static byte convertRatioToRedstone(long used, long max, int threshold, boolean inverted) { + byte signal; + if (used <= 0) { // Empty + signal = 0; + } else if (used >= max) { // Full + signal = 15; + } else { // Range 1-14 + signal = (byte) (1 + (14 * used) / max); + } + + if (inverted) { + signal = (byte) (15 - signal); + } + + if (threshold > 0) { + if (inverted && used >= threshold) { + return 0; + } else if (!inverted && used < threshold) { + return 0; + } + } + + return signal; } @AutoValue diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java index 953318c455..e4de13b65d 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ItemMeter.java @@ -100,21 +100,7 @@ public class GT_Cover_ItemMeter extends GT_CoverBehaviorBase<GT_Cover_ItemMeter. } } - byte signal = GT_Utility.convertRatioToRedstone(used, max); - - if (inverted) { - signal = (byte) (15 - signal); - } - - if (threshold > 0) { - if (inverted && used >= threshold) { - return 0; - } else if (!inverted && used < threshold) { - return 0; - } - } - - return signal; + return GT_Utility.convertRatioToRedstone(used, max, threshold, inverted); } @Override diff --git a/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java index 7816e3dd48..48304d3fed 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_LiquidMeter.java @@ -70,21 +70,7 @@ public class GT_Cover_LiquidMeter extends GT_CoverBehaviorBase<GT_Cover_LiquidMe } } - byte signal = GT_Utility.convertRatioToRedstone(used, max); - - if (inverted) { - signal = (byte) (15 - signal); - } - - if (threshold > 0) { - if (inverted && used >= threshold) { - return 0; - } else if (!inverted && used < threshold) { - return 0; - } - } - - return signal; + return GT_Utility.convertRatioToRedstone(used, max, threshold, inverted); } else { return 0; } |