From eacdf1e10f02be6f42957bbb065fec0345e3b64a Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Thu, 24 Dec 2020 18:46:40 +0100 Subject: Heating Coil Logic Overhaul --- .../java/gregtech/api/enums/HeatingCoilLevel.java | 64 ++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/main/java/gregtech/api/enums/HeatingCoilLevel.java (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java new file mode 100644 index 0000000000..7b1b3f7334 --- /dev/null +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -0,0 +1,64 @@ +package gregtech.api.enums; + +public enum HeatingCoilLevel { + None ( 0L), + // ULV ( 901L), //Not implemented + LV ( 1_801L), //Cupronickel + MV ( 2_701L), //KANTHAL + HV ( 3_601L), //NICHROME + EV ( 4_501L), //TUNGSTENSTEEL + IV ( 5_401L), //HSSG + // LuV ( 6_301L), //Not implemented + ZPM ( 7_201L), //NAQUADAH + UV ( 9_001L), //NAQUADAHALLOY + UHV ( 9_901L), //ELECTRUMFLUX + UEV (10_801L), //AWAKENEDDRACONIUM + UIV (11_701L), + + //Not Implemented yet + UMV (12_601L), + UXV (13_501L), + OpV (14_401L), + MAX (15_301L), + ; + + private final long HEAT; + + HeatingCoilLevel(long heat) { + this.HEAT = heat; + } + /** + * @return the coil heat, used for recipes in the Electronic Blast Furnace for example + */ + public long getHeat() { + return HEAT; + } + + /** + * @return the coil tier, used for discount in the Pyrolyse Ofen for example + */ + public byte getTier() { + return (byte) (this.ordinal() - 1); + } + + /** + * @return the coil Level, used for Parallels in the Multi Furnace for example + */ + public byte getLevel() { + return (byte) Math.max(16, 2 << (this.ordinal() -1)); + } + + /** + * @return the coil Discount, used for discount in the Multi Furnace for example + */ + public byte getCostDiscount() { + return (byte) Math.min(1, 2 << (this.ordinal() -1 -4)); //-1 bcs. of none, -4 = offset + } + + public static HeatingCoilLevel getFromTier(byte tier){ + if (tier < 0 || tier > HeatingCoilLevel.values().length -1) + return HeatingCoilLevel.None; + + return HeatingCoilLevel.values()[tier+1]; + } +} -- cgit From e141a558bbf5fa37c75d1420691fcf969e5759c8 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Mon, 28 Dec 2020 04:28:06 +0100 Subject: Refactor + Added 2 more coils + Improved Tooltips --- .../java/gregtech/api/enums/HeatingCoilLevel.java | 59 ++++++++++++---------- 1 file changed, 31 insertions(+), 28 deletions(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index 7b1b3f7334..56c09dccbe 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -1,64 +1,67 @@ package gregtech.api.enums; public enum HeatingCoilLevel { - None ( 0L), - // ULV ( 901L), //Not implemented - LV ( 1_801L), //Cupronickel - MV ( 2_701L), //KANTHAL - HV ( 3_601L), //NICHROME - EV ( 4_501L), //TUNGSTENSTEEL - IV ( 5_401L), //HSSG - // LuV ( 6_301L), //Not implemented - ZPM ( 7_201L), //NAQUADAH - UV ( 9_001L), //NAQUADAHALLOY - UHV ( 9_901L), //ELECTRUMFLUX - UEV (10_801L), //AWAKENEDDRACONIUM - UIV (11_701L), - + None, // 0 + ULV, //Not implemented 901 + LV, //Cupronickel 1801 + MV, //KANTHAL 2701 + HV, //NICHROME 3601 + EV, //TUNGSTENSTEEL 4501 + IV, //HSSG 5401 + LuV, //HSSS 6301 + ZPM, //NAQUADAH 7201 + UV, //NAQUADAHALLOY 8101 + UHV, //TRINIUM 9001 + UEV, //ELECTRUMFLUX 9901 + UIV, //AWAKENEDDRACONIUM 10801 //Not Implemented yet - UMV (12_601L), - UXV (13_501L), - OpV (14_401L), - MAX (15_301L), + UMV, + UXV, + OpV, + MAX, ; - private final long HEAT; - - HeatingCoilLevel(long heat) { - this.HEAT = heat; + /** + * @return the coil heat, used for recipes in the Electronic Blast Furnace for example + */ + public String getTierName() { + if (this.ordinal() < 1 || (this.ordinal()-1) >= GT_Values.VN.length) + return "ERROR!"; + return GT_Values.VN[this.ordinal() - 1]; } + /** * @return the coil heat, used for recipes in the Electronic Blast Furnace for example */ public long getHeat() { - return HEAT; + return this == None ? 0 : 1L + (900L * this.ordinal()); } /** * @return the coil tier, used for discount in the Pyrolyse Ofen for example */ public byte getTier() { - return (byte) (this.ordinal() - 1); + return (byte) (this.ordinal() - 2); } /** * @return the coil Level, used for Parallels in the Multi Furnace for example */ public byte getLevel() { - return (byte) Math.max(16, 2 << (this.ordinal() -1)); + return (byte) Math.max(16, 2 << (this.ordinal() - 2)); } /** * @return the coil Discount, used for discount in the Multi Furnace for example */ public byte getCostDiscount() { - return (byte) Math.min(1, 2 << (this.ordinal() -1 -4)); //-1 bcs. of none, -4 = offset + return (byte) Math.min(1, 2 << (this.ordinal() - 1 - 6)); //-1 bcs. of none, -4 = offset } public static HeatingCoilLevel getFromTier(byte tier){ if (tier < 0 || tier > HeatingCoilLevel.values().length -1) return HeatingCoilLevel.None; - return HeatingCoilLevel.values()[tier+1]; + return HeatingCoilLevel.values()[tier+2]; } -} +} \ No newline at end of file -- cgit From be14472f02fe9244a990629c930ec78e4caa1183 Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Mon, 28 Dec 2020 15:27:09 +0100 Subject: Added Tier Colors --- src/main/java/gregtech/api/enums/HeatingCoilLevel.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index 56c09dccbe..db94a3fe62 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -1,5 +1,7 @@ package gregtech.api.enums; +import net.minecraft.util.EnumChatFormatting; + public enum HeatingCoilLevel { None, // 0 ULV, //Not implemented 901 @@ -22,12 +24,12 @@ public enum HeatingCoilLevel { ; /** - * @return the coil heat, used for recipes in the Electronic Blast Furnace for example + * @return the Coils Tier Name */ public String getTierName() { if (this.ordinal() < 1 || (this.ordinal()-1) >= GT_Values.VN.length) return "ERROR!"; - return GT_Values.VN[this.ordinal() - 1]; + return GT_Values.TIER_COLORS[this.ordinal() - 1] + GT_Values.VOLTAGE_NAMES[this.ordinal() - 1] + EnumChatFormatting.RESET; } /** -- cgit From b3dee829ce94149719485a5ea045ffa88582936b Mon Sep 17 00:00:00 2001 From: bartimaeusnek <33183715+bartimaeusnek@users.noreply.github.com> Date: Tue, 29 Dec 2020 13:38:10 +0100 Subject: Fixed Min/Max switcheroo --- src/main/java/gregtech/api/enums/HeatingCoilLevel.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index db94a3fe62..f4b28ede2b 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -50,14 +50,14 @@ public enum HeatingCoilLevel { * @return the coil Level, used for Parallels in the Multi Furnace for example */ public byte getLevel() { - return (byte) Math.max(16, 2 << (this.ordinal() - 2)); + return (byte) Math.min(16, 2 << (this.ordinal() - 2)); } /** * @return the coil Discount, used for discount in the Multi Furnace for example */ public byte getCostDiscount() { - return (byte) Math.min(1, 2 << (this.ordinal() - 1 - 6)); //-1 bcs. of none, -4 = offset + return (byte) Math.max(1, 2 << (this.ordinal() - 1 - 6)); //-1 bcs. of none, -4 = offset } public static HeatingCoilLevel getFromTier(byte tier){ -- cgit From c500ef1223c14e51431fca1bde48c3a2a34d5fcb Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Wed, 10 Feb 2021 21:00:03 +0800 Subject: Fix bit fiddling Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> --- src/main/java/gregtech/api/enums/HeatingCoilLevel.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index f4b28ede2b..2388a92cd3 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -50,14 +50,14 @@ public enum HeatingCoilLevel { * @return the coil Level, used for Parallels in the Multi Furnace for example */ public byte getLevel() { - return (byte) Math.min(16, 2 << (this.ordinal() - 2)); + return (byte) (1 << Math.min(Math.max(0, this.ordinal() - 2), 4)); } /** * @return the coil Discount, used for discount in the Multi Furnace for example */ - public byte getCostDiscount() { - return (byte) Math.max(1, 2 << (this.ordinal() - 1 - 6)); //-1 bcs. of none, -4 = offset + public int getCostDiscount() { + return 1 << Math.max(0, this.ordinal() - 5); } public static HeatingCoilLevel getFromTier(byte tier){ -- cgit From 4c8cf9986d75f91b13281de1d9d476d6dd392d50 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Tue, 27 Apr 2021 23:13:38 +0200 Subject: fix(textfiles): add missing neline at end of files git and diff tools will complain if text file does not end with a newline. Fixed all text files in the repository with Linux bash shell: ```sh git ls-files -z | while IFS= read -rd '' f; do mime="$(file --brief --mime "$f")"; if [ -z "${mime##text/*}" ]; then tail -c1 "$f" | read -r _ || printf '\n' >>"$f"; fi; done ``` --- src/main/java/gregtech/api/enums/HeatingCoilLevel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index 2388a92cd3..d4446e31d0 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -66,4 +66,4 @@ public enum HeatingCoilLevel { return HeatingCoilLevel.values()[tier+2]; } -} \ No newline at end of file +} -- cgit From e5a6de86d47d12130afe179303d7de5b78c85bff Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Fri, 25 Jun 2021 20:54:11 +0800 Subject: general bugfix & tweaking pass for multis 1. stupid typo in EBF preventing it from working at all. 2. All multis now require exactly one maintenance hatch to form. 3. All multis now use the unified overclocking mechanism if possible. 4. All multis that emits pollution now require at least one muffler hatch to form. 5. Coil structure element slightly tweaked. Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> --- src/main/java/gregtech/api/enums/HeatingCoilLevel.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index d4446e31d0..c2e3ff075a 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -23,6 +23,8 @@ public enum HeatingCoilLevel { MAX, ; + private static final HeatingCoilLevel[] VALUES = values(); + /** * @return the Coils Tier Name */ @@ -61,9 +63,13 @@ public enum HeatingCoilLevel { } public static HeatingCoilLevel getFromTier(byte tier){ - if (tier < 0 || tier > HeatingCoilLevel.values().length -1) + if (tier < 0 || tier > VALUES.length -1) return HeatingCoilLevel.None; - return HeatingCoilLevel.values()[tier+2]; + return VALUES[tier+2]; + } + + public static int size() { + return VALUES.length; } } -- cgit From bfe1836ddc069653d9af9d59008ec23f4dcb6c05 Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Mon, 19 Jul 2021 15:51:27 +0800 Subject: Fixes related to coil hint blocks Also updates StructureLib to fix invisible block hint and pulled the utility methods up. Signed-off-by: Glease <4586901+Glease@users.noreply.github.com> --- src/main/java/gregtech/api/enums/HeatingCoilLevel.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/enums/HeatingCoilLevel.java') diff --git a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java index c2e3ff075a..06ceedff53 100644 --- a/src/main/java/gregtech/api/enums/HeatingCoilLevel.java +++ b/src/main/java/gregtech/api/enums/HeatingCoilLevel.java @@ -63,7 +63,7 @@ public enum HeatingCoilLevel { } public static HeatingCoilLevel getFromTier(byte tier){ - if (tier < 0 || tier > VALUES.length -1) + if (tier < 0 || tier > getMaxTier()) return HeatingCoilLevel.None; return VALUES[tier+2]; @@ -72,4 +72,8 @@ public enum HeatingCoilLevel { public static int size() { return VALUES.length; } + + public static int getMaxTier() { + return VALUES.length - 1 - 2; + } } -- cgit