From 1b820de08a05070909a267e17f033fcf58ac8710 Mon Sep 17 00:00:00 2001 From: NotAPenguin Date: Mon, 2 Sep 2024 23:17:17 +0200 Subject: The Great Renaming (#3014) * move kekztech to a single root dir * move detrav to a single root dir * move gtnh-lanthanides to a single root dir * move tectech and delete some gross reflection in gt++ * remove more reflection inside gt5u * delete more reflection in gt++ * fix imports * move bartworks and bwcrossmod * fix proxies * move galactigreg and ggfab * move gtneioreplugin * try to fix gt++ bee loader * apply the rename rules to BW * apply rename rules to bwcrossmod * apply rename rules to detrav scanner mod * apply rename rules to galacticgreg * apply rename rules to ggfab * apply rename rules to goodgenerator * apply rename rules to gtnh-lanthanides * apply rename rules to gt++ * apply rename rules to kekztech * apply rename rules to kubatech * apply rename rules to tectech * apply rename rules to gt apply the rename rules to gt * fix tt import * fix mui hopefully * fix coremod except intergalactic * rename assline recipe class * fix a class name i stumbled on * rename StructureUtility to GTStructureUtility to prevent conflict with structurelib * temporary rename of GTTooltipDataCache to old name * fix gt client/server proxy names --- .../common/redstonecircuits/CircuitBasicLogic.java | 137 +++++++++++++++++++++ .../common/redstonecircuits/CircuitBitAnd.java | 81 ++++++++++++ .../redstonecircuits/CircuitCombinationLock.java | 109 ++++++++++++++++ .../common/redstonecircuits/CircuitEquals.java | 73 +++++++++++ .../common/redstonecircuits/CircuitPulser.java | 92 ++++++++++++++ .../common/redstonecircuits/CircuitRandomizer.java | 86 +++++++++++++ .../redstonecircuits/CircuitRedstoneMeter.java | 94 ++++++++++++++ .../common/redstonecircuits/CircuitRepeater.java | 86 +++++++++++++ .../common/redstonecircuits/CircuitTimer.java | 108 ++++++++++++++++ .../redstonecircuits/GT_Circuit_BasicLogic.java | 137 --------------------- .../common/redstonecircuits/GT_Circuit_BitAnd.java | 81 ------------ .../GT_Circuit_CombinationLock.java | 109 ---------------- .../common/redstonecircuits/GT_Circuit_Equals.java | 73 ----------- .../common/redstonecircuits/GT_Circuit_Pulser.java | 92 -------------- .../redstonecircuits/GT_Circuit_Randomizer.java | 86 ------------- .../redstonecircuits/GT_Circuit_RedstoneMeter.java | 94 -------------- .../redstonecircuits/GT_Circuit_Repeater.java | 86 ------------- .../common/redstonecircuits/GT_Circuit_Timer.java | 108 ---------------- 18 files changed, 866 insertions(+), 866 deletions(-) create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitBasicLogic.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitBitAnd.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitCombinationLock.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitEquals.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitPulser.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitRandomizer.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitRedstoneMeter.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitRepeater.java create mode 100644 src/main/java/gregtech/common/redstonecircuits/CircuitTimer.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java delete mode 100644 src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java (limited to 'src/main/java/gregtech/common/redstonecircuits') diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitBasicLogic.java b/src/main/java/gregtech/common/redstonecircuits/CircuitBasicLogic.java new file mode 100644 index 0000000000..ce430f9b7e --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitBasicLogic.java @@ -0,0 +1,137 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitBasicLogic extends CircuitryBehavior { + + public CircuitBasicLogic(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[0] > 13) { + aCircuitData[0] = 13; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 2) { + aRedstoneCircuitBlock.setRedstone( + (byte) (aCircuitData[0] % 2 == (getAnyRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 4) { + aRedstoneCircuitBlock.setRedstone( + (byte) (aCircuitData[0] % 2 == (getOneRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 6) { + aRedstoneCircuitBlock.setRedstone( + (byte) (aCircuitData[0] % 2 == (getAllRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 7) { + aRedstoneCircuitBlock.setRedstone( + (byte) (15 - getStrongestRedstone(aRedstoneCircuitBlock)), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 9) { + aRedstoneCircuitBlock.setRedstone( + (byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) + ^ (getStrongestRedstone(aRedstoneCircuitBlock) | getWeakestRedstone(aRedstoneCircuitBlock))), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 11) { + aRedstoneCircuitBlock.setRedstone( + (byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ getStrongestRedstone(aRedstoneCircuitBlock) + ^ getWeakestRedstone(aRedstoneCircuitBlock)), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 13) { + aRedstoneCircuitBlock.setRedstone( + (byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) + ^ getStrongestRedstone(aRedstoneCircuitBlock) & getWeakestRedstone(aRedstoneCircuitBlock)), + aRedstoneCircuitBlock.getOutputFacing()); + } else if (aCircuitData[0] < 14) { + aRedstoneCircuitBlock.setRedstone( + (byte) (getStrongestRedstone(aRedstoneCircuitBlock) ^ 0xF), + aRedstoneCircuitBlock.getOutputFacing()); + } + } + + @Override + public String getName() { + return "Basic Logic"; + } + + @Override + public String getDescription() { + return "Regular Logic Gates"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 0) { + switch (aCircuitData[0]) { + case 0 -> { + return "OR"; + } + case 1 -> { + return "NOR"; + } + case 2 -> { + return "XOR"; + } + case 3 -> { + return "XNOR"; + } + case 4 -> { + return "AND"; + } + case 5 -> { + return "NAND"; + } + case 6 -> { + return "INVERT"; + } + case 7 -> { + return "BIT_OR"; + } + case 8 -> { + return "BIT_NOR"; + } + case 9 -> { + return "BIT_XOR"; + } + case 10 -> { + return "BIT_XNOR"; + } + case 11 -> { + return "BIT_AND"; + } + case 12 -> { + return "BIT_NAND"; + } + case 13 -> { + return "BIT_INVERT"; + } + } + } + return ""; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return ""; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitBitAnd.java b/src/main/java/gregtech/common/redstonecircuits/CircuitBitAnd.java new file mode 100644 index 0000000000..fbdf5b1ee9 --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitBitAnd.java @@ -0,0 +1,81 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitBitAnd extends CircuitryBehavior { + + public CircuitBitAnd(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 0; + aCircuitData[1] = 0; + aCircuitData[2] = 0; + aCircuitData[3] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[2] < 0) { + aCircuitData[2] = 0; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[0] > 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[1] > 1) { + aCircuitData[1] = 1; + } + if (aCircuitData[2] > 1) { + aCircuitData[2] = 1; + } + if (aCircuitData[3] > 1) { + aCircuitData[3] = 1; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aRedstoneCircuitBlock.setRedstone( + (byte) ((getStrongestRedstone(aRedstoneCircuitBlock) + & (aCircuitData[0] | aCircuitData[1] << 1 | aCircuitData[2] << 2 | aCircuitData[3] << 3)) != 0 ? 15 + : 0), + aRedstoneCircuitBlock.getOutputFacing()); + } + + @Override + public String getName() { + return "Hardcode Bit-AND"; + } + + @Override + public String getDescription() { + return "( signal & this ) != 0"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return "Bit " + aCircuitDataIndex + ":"; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return aCircuitData[aCircuitDataIndex] == 0 ? "OFF" : "ON"; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitCombinationLock.java b/src/main/java/gregtech/common/redstonecircuits/CircuitCombinationLock.java new file mode 100644 index 0000000000..8058d2b398 --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitCombinationLock.java @@ -0,0 +1,109 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitCombinationLock extends CircuitryBehavior { + + public CircuitCombinationLock(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[1] = 0; + aCircuitData[2] = 0; + aCircuitData[3] = 0; + aCircuitData[4] = 0; + aCircuitData[5] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[2] < 0) { + aCircuitData[2] = 0; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[0] > 15) { + aCircuitData[0] = 15; + } + if (aCircuitData[1] > 15) { + aCircuitData[1] = 15; + } + if (aCircuitData[2] > 15) { + aCircuitData[2] = 15; + } + if (aCircuitData[3] > 15) { + aCircuitData[3] = 15; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + if (aCircuitData[4] > 3) { + aCircuitData[4] = 3; + } + if (aCircuitData[5] < 0) { + aCircuitData[5] = 0; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + while ((aCircuitData[aCircuitData[4]] == 0) && (aCircuitData[4] < 4)) { + aCircuitData[4] += 1; + } + if (aCircuitData[4] < 4) { + int tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); + if (tRedstone > 0) { + if (aCircuitData[5] == 0) { + if (tRedstone == aCircuitData[aCircuitData[4]]) { + aCircuitData[4] += 1; + } else { + aCircuitData[4] = 0; + } + } + aCircuitData[5] = 1; + } else { + aCircuitData[5] = 0; + } + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + } else { + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[4] = 0; + } + } + + @Override + public String getName() { + return "Combination Lock"; + } + + @Override + public String getDescription() { + return "Checks Combinations"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return "Power " + aCircuitDataIndex; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + return null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitEquals.java b/src/main/java/gregtech/common/redstonecircuits/CircuitEquals.java new file mode 100644 index 0000000000..19fb9089bc --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitEquals.java @@ -0,0 +1,73 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitEquals extends CircuitryBehavior { + + public CircuitEquals(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 0; + aCircuitData[1] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[0] > 15) { + aCircuitData[0] = 15; + } + if (aCircuitData[1] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[1] > 1) { + aCircuitData[3] = 1; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aRedstoneCircuitBlock.setRedstone( + ((byte) (((aCircuitData[1] != 0) == (getStrongestRedstone(aRedstoneCircuitBlock) == aCircuitData[0])) ? 0 + : 15)), + aRedstoneCircuitBlock.getOutputFacing()); + } + + @Override + public String getName() { + return "Equals"; + } + + @Override + public String getDescription() { + return "signal == this"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return switch (aCircuitDataIndex) { + case 0 -> "Signal"; + case 1 -> aCircuitData[1] == 0 ? "Equal" : "Unequal"; + default -> ""; + }; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex > 0) { + return ""; + } + return null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitPulser.java b/src/main/java/gregtech/common/redstonecircuits/CircuitPulser.java new file mode 100644 index 0000000000..9d1bb1684e --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitPulser.java @@ -0,0 +1,92 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitPulser extends CircuitryBehavior { + + public CircuitPulser(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[1] = 16; + aCircuitData[4] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[1] > 16) { + aCircuitData[1] = 16; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + byte redstoneSignal = aCircuitData[1] == 0 ? getWeakestNonZeroRedstone(aRedstoneCircuitBlock) + : getStrongestRedstone(aRedstoneCircuitBlock); + if (aCircuitData[4] == 0) { + aCircuitData[5] = redstoneSignal; + } + if ((redstoneSignal > 0) || (aCircuitData[4] > 0)) { + int index = 4; + int tmp42_41 = aCircuitData[index]; + aCircuitData[index] = (tmp42_41 + 1); + if ((tmp42_41 >= aCircuitData[0]) && (redstoneSignal <= 0)) { + aCircuitData[4] = 0; + } + } + aRedstoneCircuitBlock.setRedstone( + (aCircuitData[4] > 0) && (aCircuitData[4] <= aCircuitData[0]) ? (byte) aCircuitData[1] + : (aCircuitData[1] <= 0) || (aCircuitData[1] > 15) ? (byte) aCircuitData[5] : 0, + aRedstoneCircuitBlock.getOutputFacing()); + } + + @Override + public String getName() { + return "Pulser"; + } + + @Override + public String getDescription() { + return "Limits&Enlengths"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return switch (aCircuitDataIndex) { + case 0 -> "Length"; + case 1 -> "RS Out"; + default -> ""; + }; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 1) { + if (aCircuitData[aCircuitDataIndex] == 16) { + return "HIGHEST"; + } + if (aCircuitData[aCircuitDataIndex] == 0) { + return "LOWEST"; + } + } + return aCircuitDataIndex > 1 ? "" : null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitRandomizer.java b/src/main/java/gregtech/common/redstonecircuits/CircuitRandomizer.java new file mode 100644 index 0000000000..986a6e858e --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitRandomizer.java @@ -0,0 +1,86 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitRandomizer extends CircuitryBehavior { + + public CircuitRandomizer(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[4] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[3] > 1) { + aCircuitData[3] = 1; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[3] == 1) { + if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] += 1; + } else { + aCircuitData[4] = 0; + } + } else if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] = 0; + } else { + aCircuitData[4] += 1; + } + if (aCircuitData[4] >= aCircuitData[0]) { + aCircuitData[4] = 0; + aRedstoneCircuitBlock + .setRedstone((byte) aRedstoneCircuitBlock.getRandom(16), aRedstoneCircuitBlock.getOutputFacing()); + } + } + + @Override + public String getName() { + return "Randomizer"; + } + + @Override + public String getDescription() { + return "Randomizes Redstone"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return switch (aCircuitDataIndex) { + case 0 -> "Delay"; + case 3 -> aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; + case 4 -> "Status"; + default -> ""; + }; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex != 0) { + return ""; + } + return null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitRedstoneMeter.java b/src/main/java/gregtech/common/redstonecircuits/CircuitRedstoneMeter.java new file mode 100644 index 0000000000..2a0172c85a --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitRedstoneMeter.java @@ -0,0 +1,94 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitRedstoneMeter extends CircuitryBehavior { + + public CircuitRedstoneMeter(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[1] = 15; + aCircuitData[2] = 0; + aCircuitData[3] = 15; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 0) { + aCircuitData[0] = 0; + } + if (aCircuitData[0] > 15) { + aCircuitData[0] = 15; + } + if (aCircuitData[1] < 0) { + aCircuitData[1] = 0; + } + if (aCircuitData[1] > 15) { + aCircuitData[1] = 15; + } + if (aCircuitData[1] < aCircuitData[0]) { + aCircuitData[1] = aCircuitData[0]; + } + if (aCircuitData[2] < 0) { + aCircuitData[2] = 0; + } + if (aCircuitData[2] > 1) { + aCircuitData[2] = 1; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[3] > 15) { + aCircuitData[3] = 15; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + byte tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); + aRedstoneCircuitBlock + .setRedstone( + ((tRedstone >= aCircuitData[0]) && (tRedstone <= aCircuitData[1]) ? 1 : 0) + != (aCircuitData[2] != 0 ? 1 : 0) ? (byte) aCircuitData[3] : 0, + aRedstoneCircuitBlock.getOutputFacing()); + } + + @Override + public String getName() { + return "Redstone Meter"; + } + + @Override + public String getDescription() { + return "Checks Boundaries"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return switch (aCircuitDataIndex) { + case 0 -> "Lower"; + case 1 -> "Upper"; + case 2 -> "Invert:"; + case 3 -> "RS Out:"; + default -> ""; + }; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 2) { + return aCircuitData[2] == 0 ? "OFF" : "ON"; + } + return null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitRepeater.java b/src/main/java/gregtech/common/redstonecircuits/CircuitRepeater.java new file mode 100644 index 0000000000..b7b28d0371 --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitRepeater.java @@ -0,0 +1,86 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitRepeater extends CircuitryBehavior { + + public CircuitRepeater(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 1; + aCircuitData[4] = 0; + aCircuitData[5] = -1; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 1) { + aCircuitData[0] = 1; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + if (aCircuitData[5] < -1) { + aCircuitData[5] = -1; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] += 1; + if (aCircuitData[5] < 0) { + aCircuitData[5] = 0; + } + } + if ((aCircuitData[5] >= 0) && (aCircuitData[5] < aCircuitData[0])) { + aCircuitData[5] += 1; + } + if (aCircuitData[4] > 0) { + if (aCircuitData[5] >= aCircuitData[0]) { + aCircuitData[4] -= 1; + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + } else { + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + } + } else { + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[5] = -1; + } + } + + @Override + public String getName() { + return "Repeater"; + } + + @Override + public String getDescription() { + return "Delays RS-Signal"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 0) { + return "Delay"; + } + return ""; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex > 0) { + return ""; + } + return null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/CircuitTimer.java b/src/main/java/gregtech/common/redstonecircuits/CircuitTimer.java new file mode 100644 index 0000000000..ae96d35069 --- /dev/null +++ b/src/main/java/gregtech/common/redstonecircuits/CircuitTimer.java @@ -0,0 +1,108 @@ +package gregtech.common.redstonecircuits; + +import gregtech.api.interfaces.IRedstoneCircuitBlock; +import gregtech.api.util.CircuitryBehavior; + +public class CircuitTimer extends CircuitryBehavior { + + public CircuitTimer(int aIndex) { + super(aIndex); + } + + @Override + public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + aCircuitData[0] = 2; + aCircuitData[1] = 1; + aCircuitData[2] = 2; + aCircuitData[4] = 0; + } + + @Override + public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[0] < 2) { + aCircuitData[0] = 2; + } + if (aCircuitData[1] < 1) { + aCircuitData[1] = 1; + } + if (aCircuitData[2] < 2) { + aCircuitData[2] = 2; + } + if (aCircuitData[3] < 0) { + aCircuitData[3] = 0; + } + if (aCircuitData[3] > 1) { + aCircuitData[3] = 1; + } + if (aCircuitData[4] < 0) { + aCircuitData[4] = 0; + } + } + + @Override + public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { + if (aCircuitData[3] == 1) { + if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] += 1; + } else { + aCircuitData[4] = 0; + } + } else if (getAnyRedstone(aRedstoneCircuitBlock)) { + aCircuitData[4] = 0; + } else { + aCircuitData[4] += 1; + } + if (aCircuitData[4] >= aCircuitData[0]) { + if (aCircuitData[1] > 1) { + if (aCircuitData[4] >= aCircuitData[0] + (aCircuitData[1] - 1) * aCircuitData[2]) { + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[4] = 0; + } else { + aRedstoneCircuitBlock.setRedstone( + (byte) ((aCircuitData[4] - aCircuitData[0]) % aCircuitData[2] == 0 ? 15 : 0), + aRedstoneCircuitBlock.getOutputFacing()); + } + } else { + aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); + aCircuitData[4] = 0; + } + } else { + aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); + } + } + + @Override + public String getName() { + return "Timer"; + } + + @Override + public String getDescription() { + return "Pulses Redstone"; + } + + @Override + public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { + return switch (aCircuitDataIndex) { + case 0 -> "Delay"; + case 1 -> "Pulses"; + case 2 -> "Length"; + case 3 -> aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; + case 4 -> "Time"; + default -> ""; + }; + } + + @Override + public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { + return false; + } + + @Override + public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { + if (aCircuitDataIndex == 3) { + return ""; + } + return null; + } +} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java deleted file mode 100644 index 34093a95de..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BasicLogic.java +++ /dev/null @@ -1,137 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_BasicLogic extends GT_CircuitryBehavior { - - public GT_Circuit_BasicLogic(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; - } - if (aCircuitData[0] > 13) { - aCircuitData[0] = 13; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 2) { - aRedstoneCircuitBlock.setRedstone( - (byte) (aCircuitData[0] % 2 == (getAnyRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 4) { - aRedstoneCircuitBlock.setRedstone( - (byte) (aCircuitData[0] % 2 == (getOneRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 6) { - aRedstoneCircuitBlock.setRedstone( - (byte) (aCircuitData[0] % 2 == (getAllRedstone(aRedstoneCircuitBlock) ? 0 : 1) ? 15 : 0), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 7) { - aRedstoneCircuitBlock.setRedstone( - (byte) (15 - getStrongestRedstone(aRedstoneCircuitBlock)), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 9) { - aRedstoneCircuitBlock.setRedstone( - (byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) - ^ (getStrongestRedstone(aRedstoneCircuitBlock) | getWeakestRedstone(aRedstoneCircuitBlock))), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 11) { - aRedstoneCircuitBlock.setRedstone( - (byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) ^ getStrongestRedstone(aRedstoneCircuitBlock) - ^ getWeakestRedstone(aRedstoneCircuitBlock)), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 13) { - aRedstoneCircuitBlock.setRedstone( - (byte) ((aCircuitData[0] % 2 == 0 ? 15 : 0) - ^ getStrongestRedstone(aRedstoneCircuitBlock) & getWeakestRedstone(aRedstoneCircuitBlock)), - aRedstoneCircuitBlock.getOutputFacing()); - } else if (aCircuitData[0] < 14) { - aRedstoneCircuitBlock.setRedstone( - (byte) (getStrongestRedstone(aRedstoneCircuitBlock) ^ 0xF), - aRedstoneCircuitBlock.getOutputFacing()); - } - } - - @Override - public String getName() { - return "Basic Logic"; - } - - @Override - public String getDescription() { - return "Regular Logic Gates"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex == 0) { - switch (aCircuitData[0]) { - case 0 -> { - return "OR"; - } - case 1 -> { - return "NOR"; - } - case 2 -> { - return "XOR"; - } - case 3 -> { - return "XNOR"; - } - case 4 -> { - return "AND"; - } - case 5 -> { - return "NAND"; - } - case 6 -> { - return "INVERT"; - } - case 7 -> { - return "BIT_OR"; - } - case 8 -> { - return "BIT_NOR"; - } - case 9 -> { - return "BIT_XOR"; - } - case 10 -> { - return "BIT_XNOR"; - } - case 11 -> { - return "BIT_AND"; - } - case 12 -> { - return "BIT_NAND"; - } - case 13 -> { - return "BIT_INVERT"; - } - } - } - return ""; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - return ""; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java deleted file mode 100644 index f5f83a7e10..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_BitAnd.java +++ /dev/null @@ -1,81 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_BitAnd extends GT_CircuitryBehavior { - - public GT_Circuit_BitAnd(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 0; - aCircuitData[1] = 0; - aCircuitData[2] = 0; - aCircuitData[3] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; - } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; - } - if (aCircuitData[2] < 0) { - aCircuitData[2] = 0; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[0] > 1) { - aCircuitData[0] = 1; - } - if (aCircuitData[1] > 1) { - aCircuitData[1] = 1; - } - if (aCircuitData[2] > 1) { - aCircuitData[2] = 1; - } - if (aCircuitData[3] > 1) { - aCircuitData[3] = 1; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aRedstoneCircuitBlock.setRedstone( - (byte) ((getStrongestRedstone(aRedstoneCircuitBlock) - & (aCircuitData[0] | aCircuitData[1] << 1 | aCircuitData[2] << 2 | aCircuitData[3] << 3)) != 0 ? 15 - : 0), - aRedstoneCircuitBlock.getOutputFacing()); - } - - @Override - public String getName() { - return "Hardcode Bit-AND"; - } - - @Override - public String getDescription() { - return "( signal & this ) != 0"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return "Bit " + aCircuitDataIndex + ":"; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - return aCircuitData[aCircuitDataIndex] == 0 ? "OFF" : "ON"; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java deleted file mode 100644 index 67d8527606..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_CombinationLock.java +++ /dev/null @@ -1,109 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_CombinationLock extends GT_CircuitryBehavior { - - public GT_Circuit_CombinationLock(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 1; - aCircuitData[1] = 0; - aCircuitData[2] = 0; - aCircuitData[3] = 0; - aCircuitData[4] = 0; - aCircuitData[5] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; - } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; - } - if (aCircuitData[2] < 0) { - aCircuitData[2] = 0; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[0] > 15) { - aCircuitData[0] = 15; - } - if (aCircuitData[1] > 15) { - aCircuitData[1] = 15; - } - if (aCircuitData[2] > 15) { - aCircuitData[2] = 15; - } - if (aCircuitData[3] > 15) { - aCircuitData[3] = 15; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - if (aCircuitData[4] > 3) { - aCircuitData[4] = 3; - } - if (aCircuitData[5] < 0) { - aCircuitData[5] = 0; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - while ((aCircuitData[aCircuitData[4]] == 0) && (aCircuitData[4] < 4)) { - aCircuitData[4] += 1; - } - if (aCircuitData[4] < 4) { - int tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); - if (tRedstone > 0) { - if (aCircuitData[5] == 0) { - if (tRedstone == aCircuitData[aCircuitData[4]]) { - aCircuitData[4] += 1; - } else { - aCircuitData[4] = 0; - } - } - aCircuitData[5] = 1; - } else { - aCircuitData[5] = 0; - } - aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); - } else { - aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[4] = 0; - } - } - - @Override - public String getName() { - return "Combination Lock"; - } - - @Override - public String getDescription() { - return "Checks Combinations"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return "Power " + aCircuitDataIndex; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - return null; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java deleted file mode 100644 index 9e9af183e8..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Equals.java +++ /dev/null @@ -1,73 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_Equals extends GT_CircuitryBehavior { - - public GT_Circuit_Equals(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 0; - aCircuitData[1] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; - } - if (aCircuitData[0] > 15) { - aCircuitData[0] = 15; - } - if (aCircuitData[1] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[1] > 1) { - aCircuitData[3] = 1; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aRedstoneCircuitBlock.setRedstone( - ((byte) (((aCircuitData[1] != 0) == (getStrongestRedstone(aRedstoneCircuitBlock) == aCircuitData[0])) ? 0 - : 15)), - aRedstoneCircuitBlock.getOutputFacing()); - } - - @Override - public String getName() { - return "Equals"; - } - - @Override - public String getDescription() { - return "signal == this"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return switch (aCircuitDataIndex) { - case 0 -> "Signal"; - case 1 -> aCircuitData[1] == 0 ? "Equal" : "Unequal"; - default -> ""; - }; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex > 0) { - return ""; - } - return null; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java deleted file mode 100644 index c54d0be060..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Pulser.java +++ /dev/null @@ -1,92 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_Pulser extends GT_CircuitryBehavior { - - public GT_Circuit_Pulser(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 1; - aCircuitData[1] = 16; - aCircuitData[4] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; - } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; - } - if (aCircuitData[1] > 16) { - aCircuitData[1] = 16; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - byte redstoneSignal = aCircuitData[1] == 0 ? getWeakestNonZeroRedstone(aRedstoneCircuitBlock) - : getStrongestRedstone(aRedstoneCircuitBlock); - if (aCircuitData[4] == 0) { - aCircuitData[5] = redstoneSignal; - } - if ((redstoneSignal > 0) || (aCircuitData[4] > 0)) { - int index = 4; - int tmp42_41 = aCircuitData[index]; - aCircuitData[index] = (tmp42_41 + 1); - if ((tmp42_41 >= aCircuitData[0]) && (redstoneSignal <= 0)) { - aCircuitData[4] = 0; - } - } - aRedstoneCircuitBlock.setRedstone( - (aCircuitData[4] > 0) && (aCircuitData[4] <= aCircuitData[0]) ? (byte) aCircuitData[1] - : (aCircuitData[1] <= 0) || (aCircuitData[1] > 15) ? (byte) aCircuitData[5] : 0, - aRedstoneCircuitBlock.getOutputFacing()); - } - - @Override - public String getName() { - return "Pulser"; - } - - @Override - public String getDescription() { - return "Limits&Enlengths"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return switch (aCircuitDataIndex) { - case 0 -> "Length"; - case 1 -> "RS Out"; - default -> ""; - }; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex == 1) { - if (aCircuitData[aCircuitDataIndex] == 16) { - return "HIGHEST"; - } - if (aCircuitData[aCircuitDataIndex] == 0) { - return "LOWEST"; - } - } - return aCircuitDataIndex > 1 ? "" : null; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java deleted file mode 100644 index 336bf9928d..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Randomizer.java +++ /dev/null @@ -1,86 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_Randomizer extends GT_CircuitryBehavior { - - public GT_Circuit_Randomizer(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 1; - aCircuitData[4] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[3] > 1) { - aCircuitData[3] = 1; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[3] == 1) { - if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] += 1; - } else { - aCircuitData[4] = 0; - } - } else if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] = 0; - } else { - aCircuitData[4] += 1; - } - if (aCircuitData[4] >= aCircuitData[0]) { - aCircuitData[4] = 0; - aRedstoneCircuitBlock - .setRedstone((byte) aRedstoneCircuitBlock.getRandom(16), aRedstoneCircuitBlock.getOutputFacing()); - } - } - - @Override - public String getName() { - return "Randomizer"; - } - - @Override - public String getDescription() { - return "Randomizes Redstone"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return switch (aCircuitDataIndex) { - case 0 -> "Delay"; - case 3 -> aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; - case 4 -> "Status"; - default -> ""; - }; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex != 0) { - return ""; - } - return null; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java deleted file mode 100644 index 4db261fcf0..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_RedstoneMeter.java +++ /dev/null @@ -1,94 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_RedstoneMeter extends GT_CircuitryBehavior { - - public GT_Circuit_RedstoneMeter(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 1; - aCircuitData[1] = 15; - aCircuitData[2] = 0; - aCircuitData[3] = 15; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 0) { - aCircuitData[0] = 0; - } - if (aCircuitData[0] > 15) { - aCircuitData[0] = 15; - } - if (aCircuitData[1] < 0) { - aCircuitData[1] = 0; - } - if (aCircuitData[1] > 15) { - aCircuitData[1] = 15; - } - if (aCircuitData[1] < aCircuitData[0]) { - aCircuitData[1] = aCircuitData[0]; - } - if (aCircuitData[2] < 0) { - aCircuitData[2] = 0; - } - if (aCircuitData[2] > 1) { - aCircuitData[2] = 1; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[3] > 15) { - aCircuitData[3] = 15; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - byte tRedstone = getStrongestRedstone(aRedstoneCircuitBlock); - aRedstoneCircuitBlock - .setRedstone( - ((tRedstone >= aCircuitData[0]) && (tRedstone <= aCircuitData[1]) ? 1 : 0) - != (aCircuitData[2] != 0 ? 1 : 0) ? (byte) aCircuitData[3] : 0, - aRedstoneCircuitBlock.getOutputFacing()); - } - - @Override - public String getName() { - return "Redstone Meter"; - } - - @Override - public String getDescription() { - return "Checks Boundaries"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return switch (aCircuitDataIndex) { - case 0 -> "Lower"; - case 1 -> "Upper"; - case 2 -> "Invert:"; - case 3 -> "RS Out:"; - default -> ""; - }; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex == 2) { - return aCircuitData[2] == 0 ? "OFF" : "ON"; - } - return null; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java deleted file mode 100644 index b96762d73b..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Repeater.java +++ /dev/null @@ -1,86 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_Repeater extends GT_CircuitryBehavior { - - public GT_Circuit_Repeater(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 1; - aCircuitData[4] = 0; - aCircuitData[5] = -1; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 1) { - aCircuitData[0] = 1; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - if (aCircuitData[5] < -1) { - aCircuitData[5] = -1; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] += 1; - if (aCircuitData[5] < 0) { - aCircuitData[5] = 0; - } - } - if ((aCircuitData[5] >= 0) && (aCircuitData[5] < aCircuitData[0])) { - aCircuitData[5] += 1; - } - if (aCircuitData[4] > 0) { - if (aCircuitData[5] >= aCircuitData[0]) { - aCircuitData[4] -= 1; - aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); - } else { - aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); - } - } else { - aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[5] = -1; - } - } - - @Override - public String getName() { - return "Repeater"; - } - - @Override - public String getDescription() { - return "Delays RS-Signal"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex == 0) { - return "Delay"; - } - return ""; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex > 0) { - return ""; - } - return null; - } -} diff --git a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java b/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java deleted file mode 100644 index 026c83dfbc..0000000000 --- a/src/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java +++ /dev/null @@ -1,108 +0,0 @@ -package gregtech.common.redstonecircuits; - -import gregtech.api.interfaces.IRedstoneCircuitBlock; -import gregtech.api.util.GT_CircuitryBehavior; - -public class GT_Circuit_Timer extends GT_CircuitryBehavior { - - public GT_Circuit_Timer(int aIndex) { - super(aIndex); - } - - @Override - public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - aCircuitData[0] = 2; - aCircuitData[1] = 1; - aCircuitData[2] = 2; - aCircuitData[4] = 0; - } - - @Override - public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[0] < 2) { - aCircuitData[0] = 2; - } - if (aCircuitData[1] < 1) { - aCircuitData[1] = 1; - } - if (aCircuitData[2] < 2) { - aCircuitData[2] = 2; - } - if (aCircuitData[3] < 0) { - aCircuitData[3] = 0; - } - if (aCircuitData[3] > 1) { - aCircuitData[3] = 1; - } - if (aCircuitData[4] < 0) { - aCircuitData[4] = 0; - } - } - - @Override - public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock) { - if (aCircuitData[3] == 1) { - if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] += 1; - } else { - aCircuitData[4] = 0; - } - } else if (getAnyRedstone(aRedstoneCircuitBlock)) { - aCircuitData[4] = 0; - } else { - aCircuitData[4] += 1; - } - if (aCircuitData[4] >= aCircuitData[0]) { - if (aCircuitData[1] > 1) { - if (aCircuitData[4] >= aCircuitData[0] + (aCircuitData[1] - 1) * aCircuitData[2]) { - aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[4] = 0; - } else { - aRedstoneCircuitBlock.setRedstone( - (byte) ((aCircuitData[4] - aCircuitData[0]) % aCircuitData[2] == 0 ? 15 : 0), - aRedstoneCircuitBlock.getOutputFacing()); - } - } else { - aRedstoneCircuitBlock.setRedstone((byte) 15, aRedstoneCircuitBlock.getOutputFacing()); - aCircuitData[4] = 0; - } - } else { - aRedstoneCircuitBlock.setRedstone((byte) 0, aRedstoneCircuitBlock.getOutputFacing()); - } - } - - @Override - public String getName() { - return "Timer"; - } - - @Override - public String getDescription() { - return "Pulses Redstone"; - } - - @Override - public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex) { - return switch (aCircuitDataIndex) { - case 0 -> "Delay"; - case 1 -> "Pulses"; - case 2 -> "Length"; - case 3 -> aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF"; - case 4 -> "Time"; - default -> ""; - }; - } - - @Override - public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex) { - return false; - } - - @Override - public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex) { - if (aCircuitDataIndex == 3) { - return ""; - } - return null; - } -} -- cgit