GT5-Unofficial/main/java/gregtech/common/redstonecircuits/GT_Circuit_Timer.java

130 lines
4.7 KiB
Java
Raw Normal View History

2015-04-23 16:14:22 +00:00
/* 1: */ package gregtech.common.redstonecircuits;
/* 2: */
/* 3: */ import gregtech.api.interfaces.IRedstoneCircuitBlock;
/* 4: */ import gregtech.api.util.GT_CircuitryBehavior;
/* 5: */
/* 6: */ public class GT_Circuit_Timer
/* 7: */ extends GT_CircuitryBehavior
/* 8: */ {
/* 9: */ public GT_Circuit_Timer(int aIndex)
/* 10: */ {
/* 11: 9 */ super(aIndex);
/* 12: */ }
/* 13: */
/* 14: */ public void initParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock)
/* 15: */ {
/* 16:14 */ aCircuitData[0] = 2;
/* 17:15 */ aCircuitData[1] = 1;
/* 18:16 */ aCircuitData[2] = 2;
/* 19:17 */ aCircuitData[4] = 0;
/* 20: */ }
/* 21: */
/* 22: */ public void validateParameters(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock)
/* 23: */ {
/* 24:22 */ if (aCircuitData[0] < 2) {
/* 25:22 */ aCircuitData[0] = 2;
/* 26: */ }
/* 27:23 */ if (aCircuitData[1] < 1) {
/* 28:23 */ aCircuitData[1] = 1;
/* 29: */ }
/* 30:24 */ if (aCircuitData[2] < 2) {
/* 31:24 */ aCircuitData[2] = 2;
/* 32: */ }
/* 33:25 */ if (aCircuitData[3] < 0) {
/* 34:25 */ aCircuitData[3] = 0;
/* 35: */ }
/* 36:26 */ if (aCircuitData[3] > 1) {
/* 37:26 */ aCircuitData[3] = 1;
/* 38: */ }
/* 39:27 */ if (aCircuitData[4] < 0) {
/* 40:27 */ aCircuitData[4] = 0;
/* 41: */ }
/* 42: */ }
/* 43: */
/* 44: */ public void onTick(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock)
/* 45: */ {
/* 46:32 */ if (aCircuitData[3] == 1)
/* 47: */ {
/* 48:33 */ if (getAnyRedstone(aRedstoneCircuitBlock)) {
/* 49:34 */ aCircuitData[4] += 1;
/* 50: */ } else {
/* 51:36 */ aCircuitData[4] = 0;
/* 52: */ }
/* 53: */ }
/* 54:39 */ else if (getAnyRedstone(aRedstoneCircuitBlock)) {
/* 55:40 */ aCircuitData[4] = 0;
/* 56: */ } else {
/* 57:42 */ aCircuitData[4] += 1;
/* 58: */ }
/* 59:46 */ if (aCircuitData[4] >= aCircuitData[0])
/* 60: */ {
/* 61:47 */ if (aCircuitData[1] > 1)
/* 62: */ {
/* 63:48 */ if (aCircuitData[4] >= aCircuitData[0] + (aCircuitData[1] - 1) * aCircuitData[2])
/* 64: */ {
/* 65:49 */ aRedstoneCircuitBlock.setRedstone((byte)15, aRedstoneCircuitBlock.getOutputFacing());
/* 66:50 */ aCircuitData[4] = 0;
/* 67: */ }
/* 68: */ else
/* 69: */ {
/* 70:52 */ aRedstoneCircuitBlock.setRedstone((byte)((aCircuitData[4] - aCircuitData[0]) % aCircuitData[2] == 0 ? 15 : 0), aRedstoneCircuitBlock.getOutputFacing());
/* 71: */ }
/* 72: */ }
/* 73: */ else
/* 74: */ {
/* 75:55 */ aRedstoneCircuitBlock.setRedstone((byte)15, aRedstoneCircuitBlock.getOutputFacing());
/* 76:56 */ aCircuitData[4] = 0;
/* 77: */ }
/* 78: */ }
/* 79: */ else {
/* 80:59 */ aRedstoneCircuitBlock.setRedstone((byte)0, aRedstoneCircuitBlock.getOutputFacing());
/* 81: */ }
/* 82: */ }
/* 83: */
/* 84: */ public String getName()
/* 85: */ {
/* 86:65 */ return "Timer";
/* 87: */ }
/* 88: */
/* 89: */ public String getDescription()
/* 90: */ {
/* 91:70 */ return "Pulses Redstone";
/* 92: */ }
/* 93: */
/* 94: */ public String getDataDescription(int[] aCircuitData, int aCircuitDataIndex)
/* 95: */ {
/* 96:75 */ switch (aCircuitDataIndex)
/* 97: */ {
/* 98: */ case 0:
/* 99:76 */ return "Delay";
/* :0: */ case 1:
/* :1:77 */ return "Pulses";
/* :2: */ case 2:
/* :3:78 */ return "Length";
/* :4: */ case 3:
/* :5:79 */ return aCircuitData[aCircuitDataIndex] == 1 ? "RS => ON" : "RS => OFF";
/* :6: */ case 4:
/* :7:80 */ return "Time";
/* :8: */ }
/* :9:82 */ return "";
/* ;0: */ }
/* ;1: */
/* ;2: */ public boolean displayItemStack(int[] aCircuitData, IRedstoneCircuitBlock aRedstoneCircuitBlock, int aIndex)
/* ;3: */ {
/* ;4:87 */ return false;
/* ;5: */ }
/* ;6: */
/* ;7: */ public String getDataDisplay(int[] aCircuitData, int aCircuitDataIndex)
/* ;8: */ {
/* ;9:92 */ if (aCircuitDataIndex == 3) {
/* <0:92 */ return "";
/* <1: */ }
/* <2:93 */ return null;
/* <3: */ }
/* <4: */ }
/* Location: F:\Torrent\minecraft\jd-gui-0.3.6.windows\gregtech_1.7.10-5.07.07-dev.jar
* Qualified Name: gregtech.common.redstonecircuits.GT_Circuit_Timer
* JD-Core Version: 0.7.0.1
*/