aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone
diff options
context:
space:
mode:
authorJakub <53441451+kuba6000@users.noreply.github.com>2022-08-29 16:04:28 +0200
committerGitHub <noreply@github.com>2022-08-29 16:04:28 +0200
commit7d1f51a8937e0a86486267437d444696e81e8aa0 (patch)
treea5b145e7271998f7b4b968a2212ed487e54a92b5 /src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone
parent5267969156d30b4bb5f4cb2279ebb49db6bd40e2 (diff)
downloadGT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.tar.gz
GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.tar.bz2
GT5-Unofficial-7d1f51a8937e0a86486267437d444696e81e8aa0.zip
Buildscript + Spotless (#318)
* Convert AES.java to readable class * Buildscript * Spotless
Diffstat (limited to 'src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone')
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java230
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneButtonPanel.java436
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java954
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneLamp.java115
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthDisplay.java288
-rw-r--r--src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthScale.java83
6 files changed, 1115 insertions, 991 deletions
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java
index 9bb2443683..2f88c6a784 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneBase.java
@@ -12,110 +12,128 @@ import net.minecraft.nbt.NBTTagCompound;
public abstract class GT_MetaTileEntity_RedstoneBase extends GT_MetaTileEntity_TieredMachineBlock {
- protected int mOpenerCount;
-
- public GT_MetaTileEntity_RedstoneBase(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String aDescription, ITexture... aTextures) {
- super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public GT_MetaTileEntity_RedstoneBase(int aID, String aName, String aNameRegional, int aTier, int aInvSlotCount, String[] aDescription, ITexture... aTextures) {
- super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public GT_MetaTileEntity_RedstoneBase(String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- public GT_MetaTileEntity_RedstoneBase(String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) {
- super(aName, aTier, aInvSlotCount, aDescription, aTextures);
- }
-
- @Override
- public final boolean isSimpleMachine() {
- return false;
- }
-
- @Override
- public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) {
- return aSide != getBaseMetaTileEntity().getFrontFacing();
- }
-
- @Override
- public final boolean isValidSlot(int aIndex) {
- return false;
- }
-
- @Override
- public final boolean isFacingValid(byte aFacing) {
- return true;
- }
-
- @Override
- public final boolean isAccessAllowed(EntityPlayer aPlayer) {
- return true;
- }
-
- @Override
- public abstract void saveNBTData(NBTTagCompound aNBT);
-
- @Override
- public abstract void loadNBTData(NBTTagCompound aNBT);
-
- @Override
- public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) {
- return false;
- }
-
- @Override
- public Object getServerGUI(int aID, InventoryPlayer aPlayerInventory, gregtech.api.interfaces.tileentity.IGregTechTileEntity aBaseMetaTileEntity) {
- return null;
- }
-
- @Override
- public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, gregtech.api.interfaces.tileentity.IGregTechTileEntity aBaseMetaTileEntity) {
- return null;
- }
-
- @Override
- public final void onOpenGUI() {
- super.onOpenGUI();
- mOpenerCount++;
- }
-
- @Override
- public final void onCloseGUI() {
- super.onCloseGUI();
- mOpenerCount--;
- }
-
- public boolean hasRedstoneSignal() {
- if (getBaseMetaTileEntity().getStrongestRedstone() > 0) {
- return true;
- }
- for (byte i=0;i<6;i++) {
- if (getBaseMetaTileEntity().getOutputRedstoneSignal(i) > 0) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return false;
- }
-
- @Override
- public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return false;
- }
-
- @Override
- public String[] getDescription() {
- return new String[]{
- this.mDescription,
- CORE.GT_Tooltip
- };
- }
-
+ protected int mOpenerCount;
+
+ public GT_MetaTileEntity_RedstoneBase(
+ int aID,
+ String aName,
+ String aNameRegional,
+ int aTier,
+ int aInvSlotCount,
+ String aDescription,
+ ITexture... aTextures) {
+ super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_RedstoneBase(
+ int aID,
+ String aName,
+ String aNameRegional,
+ int aTier,
+ int aInvSlotCount,
+ String[] aDescription,
+ ITexture... aTextures) {
+ super(aID, aName, aNameRegional, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_RedstoneBase(
+ String aName, int aTier, int aInvSlotCount, String aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ public GT_MetaTileEntity_RedstoneBase(
+ String aName, int aTier, int aInvSlotCount, String[] aDescription, ITexture[][][] aTextures) {
+ super(aName, aTier, aInvSlotCount, aDescription, aTextures);
+ }
+
+ @Override
+ public final boolean isSimpleMachine() {
+ return false;
+ }
+
+ @Override
+ public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) {
+ return aSide != getBaseMetaTileEntity().getFrontFacing();
+ }
+
+ @Override
+ public final boolean isValidSlot(int aIndex) {
+ return false;
+ }
+
+ @Override
+ public final boolean isFacingValid(byte aFacing) {
+ return true;
+ }
+
+ @Override
+ public final boolean isAccessAllowed(EntityPlayer aPlayer) {
+ return true;
+ }
+
+ @Override
+ public abstract void saveNBTData(NBTTagCompound aNBT);
+
+ @Override
+ public abstract void loadNBTData(NBTTagCompound aNBT);
+
+ @Override
+ public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) {
+ return false;
+ }
+
+ @Override
+ public Object getServerGUI(
+ int aID,
+ InventoryPlayer aPlayerInventory,
+ gregtech.api.interfaces.tileentity.IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ @Override
+ public Object getClientGUI(
+ int aID,
+ InventoryPlayer aPlayerInventory,
+ gregtech.api.interfaces.tileentity.IGregTechTileEntity aBaseMetaTileEntity) {
+ return null;
+ }
+
+ @Override
+ public final void onOpenGUI() {
+ super.onOpenGUI();
+ mOpenerCount++;
+ }
+
+ @Override
+ public final void onCloseGUI() {
+ super.onCloseGUI();
+ mOpenerCount--;
+ }
+
+ public boolean hasRedstoneSignal() {
+ if (getBaseMetaTileEntity().getStrongestRedstone() > 0) {
+ return true;
+ }
+ for (byte i = 0; i < 6; i++) {
+ if (getBaseMetaTileEntity().getOutputRedstoneSignal(i) > 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public String[] getDescription() {
+ return new String[] {this.mDescription, CORE.GT_Tooltip};
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneButtonPanel.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneButtonPanel.java
index 0c0cc44d93..3cf868a998 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneButtonPanel.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneButtonPanel.java
@@ -12,196 +12,250 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.nbt.NBTTagCompound;
public class GT_MetaTileEntity_RedstoneButtonPanel extends GT_MetaTileEntity_RedstoneBase {
-
- public byte mRedstoneStrength = 0, mType = 0, mUpdate = 0;
-
- public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[64];
-
- static {
- for (int i=0;i<64;i++) {
- sIconList[i] = new CustomIcon("TileEntities/gt4/redstone/ButtonPanel/"+i);
- }
- }
-
- public GT_MetaTileEntity_RedstoneButtonPanel(int aID) {
- super(aID, "redstone.button.panel", "Button Panel", 5, 0, "Right-click with Screwdriver to change Button Design");
- }
-
- public GT_MetaTileEntity_RedstoneButtonPanel(final String aName, String aDescription, final ITexture[][][] aTextures) {
- super(aName, 5, 0, aDescription, aTextures);
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_RedstoneButtonPanel(this.mName, mDescription, this.mTextures);
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setByte("mRedstoneStrength", mRedstoneStrength);
- aNBT.setByte("mType", mType);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- mRedstoneStrength = aNBT.getByte("mRedstoneStrength");
- mType = aNBT.getByte("mType");
- }
-
- @Override
- public void onValueUpdate(byte aValue) {
- mRedstoneStrength = (byte)(aValue & 15);
- mType = (byte)(aValue >>> 4);
- }
-
- @Override
- public byte getUpdateData() {
- return (byte)((mRedstoneStrength & 15) | (mType << 4));
- }
-
- @Override
- public boolean onRightclick(IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
- if (aSide == getBaseMetaTileEntity().getFrontFacing()) {
- if (getBaseMetaTileEntity().isServerSide()) {
- mUpdate = 2;
- switch (mType) {
- case 0: default:
- switch (aSide) {
- case 0: case 1:
- mRedstoneStrength = (byte)((byte)( aX*4) + 4 * (byte)( aZ*4));
- break;
- case 2:
- mRedstoneStrength = (byte)((byte)(4-aX*4) + 4 * (byte)(4-aY*4));
- break;
- case 3:
- mRedstoneStrength = (byte)((byte)( aX*4) + 4 * (byte)(4-aY*4));
- break;
- case 4:
- mRedstoneStrength = (byte)((byte)( aZ*4) + 4 * (byte)(4-aY*4));
- break;
- case 5:
- mRedstoneStrength = (byte)((byte)(4-aZ*4) + 4 * (byte)(4-aY*4));
- break;
- }
- break;
- case 1:
- switch (aSide) {
- case 0: case 1:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << (((byte)( aX*2) + 2 * (byte)( aZ*2)))));
- break;
- case 2:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << (((byte)(2-aX*2) + 2 * (byte)(2-aY*2)))));
- break;
- case 3:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << (((byte)( aX*2) + 2 * (byte)(2-aY*2)))));
- break;
- case 4:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << (((byte)( aZ*2) + 2 * (byte)(2-aY*2)))));
- break;
- case 5:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << (((byte)(2-aZ*2) + 2 * (byte)(2-aY*2)))));
- break;
- }
- break;
- case 2:
- switch (aSide) {
- case 0: case 1:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << ((byte)( aZ*4))));
- break;
- case 2:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << ((byte)(4-aY*4))));
- break;
- case 3:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << ((byte)(4-aY*4))));
- break;
- case 4:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << ((byte)(4-aY*4))));
- break;
- case 5:
- mRedstoneStrength = (byte)(mRedstoneStrength ^ (1 << ((byte)(4-aY*4))));
- break;
- }
- break;
- }
- }
- return true;
- }
- return false;
- }
-
- @Override
+
+ public byte mRedstoneStrength = 0, mType = 0, mUpdate = 0;
+
+ public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[64];
+
+ static {
+ for (int i = 0; i < 64; i++) {
+ sIconList[i] = new CustomIcon("TileEntities/gt4/redstone/ButtonPanel/" + i);
+ }
+ }
+
+ public GT_MetaTileEntity_RedstoneButtonPanel(int aID) {
+ super(
+ aID,
+ "redstone.button.panel",
+ "Button Panel",
+ 5,
+ 0,
+ "Right-click with Screwdriver to change Button Design");
+ }
+
+ public GT_MetaTileEntity_RedstoneButtonPanel(
+ final String aName, String aDescription, final ITexture[][][] aTextures) {
+ super(aName, 5, 0, aDescription, aTextures);
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_RedstoneButtonPanel(this.mName, mDescription, this.mTextures);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setByte("mRedstoneStrength", mRedstoneStrength);
+ aNBT.setByte("mType", mType);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ mRedstoneStrength = aNBT.getByte("mRedstoneStrength");
+ mType = aNBT.getByte("mType");
+ }
+
+ @Override
+ public void onValueUpdate(byte aValue) {
+ mRedstoneStrength = (byte) (aValue & 15);
+ mType = (byte) (aValue >>> 4);
+ }
+
+ @Override
+ public byte getUpdateData() {
+ return (byte) ((mRedstoneStrength & 15) | (mType << 4));
+ }
+
+ @Override
+ public boolean onRightclick(
+ IGregTechTileEntity aBaseMetaTileEntity, EntityPlayer aPlayer, byte aSide, float aX, float aY, float aZ) {
+ if (aSide == getBaseMetaTileEntity().getFrontFacing()) {
+ if (getBaseMetaTileEntity().isServerSide()) {
+ mUpdate = 2;
+ switch (mType) {
+ case 0:
+ default:
+ switch (aSide) {
+ case 0:
+ case 1:
+ mRedstoneStrength = (byte) ((byte) (aX * 4) + 4 * (byte) (aZ * 4));
+ break;
+ case 2:
+ mRedstoneStrength = (byte) ((byte) (4 - aX * 4) + 4 * (byte) (4 - aY * 4));
+ break;
+ case 3:
+ mRedstoneStrength = (byte) ((byte) (aX * 4) + 4 * (byte) (4 - aY * 4));
+ break;
+ case 4:
+ mRedstoneStrength = (byte) ((byte) (aZ * 4) + 4 * (byte) (4 - aY * 4));
+ break;
+ case 5:
+ mRedstoneStrength = (byte) ((byte) (4 - aZ * 4) + 4 * (byte) (4 - aY * 4));
+ break;
+ }
+ break;
+ case 1:
+ switch (aSide) {
+ case 0:
+ case 1:
+ mRedstoneStrength =
+ (byte) (mRedstoneStrength ^ (1 << (((byte) (aX * 2) + 2 * (byte) (aZ * 2)))));
+ break;
+ case 2:
+ mRedstoneStrength = (byte)
+ (mRedstoneStrength ^ (1 << (((byte) (2 - aX * 2) + 2 * (byte) (2 - aY * 2)))));
+ break;
+ case 3:
+ mRedstoneStrength = (byte)
+ (mRedstoneStrength ^ (1 << (((byte) (aX * 2) + 2 * (byte) (2 - aY * 2)))));
+ break;
+ case 4:
+ mRedstoneStrength = (byte)
+ (mRedstoneStrength ^ (1 << (((byte) (aZ * 2) + 2 * (byte) (2 - aY * 2)))));
+ break;
+ case 5:
+ mRedstoneStrength = (byte)
+ (mRedstoneStrength ^ (1 << (((byte) (2 - aZ * 2) + 2 * (byte) (2 - aY * 2)))));
+ break;
+ }
+ break;
+ case 2:
+ switch (aSide) {
+ case 0:
+ case 1:
+ mRedstoneStrength = (byte) (mRedstoneStrength ^ (1 << ((byte) (aZ * 4))));
+ break;
+ case 2:
+ mRedstoneStrength = (byte) (mRedstoneStrength ^ (1 << ((byte) (4 - aY * 4))));
+ break;
+ case 3:
+ mRedstoneStrength = (byte) (mRedstoneStrength ^ (1 << ((byte) (4 - aY * 4))));
+ break;
+ case 4:
+ mRedstoneStrength = (byte) (mRedstoneStrength ^ (1 << ((byte) (4 - aY * 4))));
+ break;
+ case 5:
+ mRedstoneStrength = (byte) (mRedstoneStrength ^ (1 << ((byte) (4 - aY * 4))));
+ break;
+ }
+ break;
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+
+ @Override
public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- if (getBaseMetaTileEntity().isServerSide()) {
- getBaseMetaTileEntity().setGenericRedstoneOutput(true);
- if (mUpdate > 0) {
- mUpdate--;
- }
- else if (getBaseMetaTileEntity().isAllowedToWork()) {
- mRedstoneStrength = 0;
- }
- for (byte i = 0; i < 6; i++) {
- getBaseMetaTileEntity().setStrongOutputRedstoneSignal(i, i == getBaseMetaTileEntity().getFrontFacing()?(byte)0:mRedstoneStrength);
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal(i, i == getBaseMetaTileEntity().getFrontFacing()?(byte)0:mRedstoneStrength);
- }
- }
- }
-
- @Override
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (aSide == getBaseMetaTileEntity().getFrontFacing()) mType=(byte)((mType+1)%3);
- }
-
- @Override
- public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
- final ITexture[][][] rTextures = new ITexture[10][17][];
- for (byte i = -1; i < 16; i++) {
- rTextures[0][i + 1] = this.getFront(i);
- rTextures[1][i + 1] = this.getSides(i);
- rTextures[2][i + 1] = this.getBottom(i);
- rTextures[3][i + 1] = this.getTop(i);
- rTextures[4][i + 1] = this.getSides(i);
- rTextures[5][i + 1] = this.getFront(i);
- rTextures[6][i + 1] = this.getSidesActive(i);
- rTextures[7][i + 1] = this.getBottomActive(i);
- rTextures[8][i + 1] = this.getTopActive(i);
- rTextures[9][i + 1] = this.getSidesActive(i);
- }
- return rTextures;
- }
-
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- if (aSide == aFacing) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(sIconList[mType*16+mRedstoneStrength])};
- }
- return this.mTextures[(aActive || hasRedstoneSignal() ? 5 : 0) + (aSide == aFacing ? 0 : aSide == GT_Utility.getOppositeSide(aFacing) ? 1 : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][aColorIndex + 1];
- }
-
- public ITexture[] getFront(final byte aColor) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
- }
-
- public ITexture[] getTop(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Main_Off)};
- }
-
- public ITexture[] getTopActive(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Main_On)};
- }
-
- public ITexture[] getBottom(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Main_Off)};
- }
-
- public ITexture[] getBottomActive(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Main_On)};
- }
-
- public ITexture[] getSides(final byte aColor) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Main_Off)};
- }
-
- public ITexture[] getSidesActive(final byte aColor) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Main_On)};
- }
+ if (getBaseMetaTileEntity().isServerSide()) {
+ getBaseMetaTileEntity().setGenericRedstoneOutput(true);
+ if (mUpdate > 0) {
+ mUpdate--;
+ } else if (getBaseMetaTileEntity().isAllowedToWork()) {
+ mRedstoneStrength = 0;
+ }
+ for (byte i = 0; i < 6; i++) {
+ getBaseMetaTileEntity()
+ .setStrongOutputRedstoneSignal(
+ i, i == getBaseMetaTileEntity().getFrontFacing() ? (byte) 0 : mRedstoneStrength);
+ getBaseMetaTileEntity()
+ .setInternalOutputRedstoneSignal(
+ i, i == getBaseMetaTileEntity().getFrontFacing() ? (byte) 0 : mRedstoneStrength);
+ }
+ }
+ }
+
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (aSide == getBaseMetaTileEntity().getFrontFacing()) mType = (byte) ((mType + 1) % 3);
+ }
+
+ @Override
+ public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
+ final ITexture[][][] rTextures = new ITexture[10][17][];
+ for (byte i = -1; i < 16; i++) {
+ rTextures[0][i + 1] = this.getFront(i);
+ rTextures[1][i + 1] = this.getSides(i);
+ rTextures[2][i + 1] = this.getBottom(i);
+ rTextures[3][i + 1] = this.getTop(i);
+ rTextures[4][i + 1] = this.getSides(i);
+ rTextures[5][i + 1] = this.getFront(i);
+ rTextures[6][i + 1] = this.getSidesActive(i);
+ rTextures[7][i + 1] = this.getBottomActive(i);
+ rTextures[8][i + 1] = this.getTopActive(i);
+ rTextures[9][i + 1] = this.getSidesActive(i);
+ }
+ return rTextures;
+ }
+
+ @Override
+ public ITexture[] getTexture(
+ final IGregTechTileEntity aBaseMetaTileEntity,
+ final byte aSide,
+ final byte aFacing,
+ final byte aColorIndex,
+ final boolean aActive,
+ final boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1],
+ new GT_RenderedTexture(sIconList[mType * 16 + mRedstoneStrength])
+ };
+ }
+ return this.mTextures[
+ (aActive || hasRedstoneSignal() ? 5 : 0)
+ + (aSide == aFacing
+ ? 0
+ : aSide == GT_Utility.getOppositeSide(aFacing)
+ ? 1
+ : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][
+ aColorIndex + 1];
+ }
+
+ public ITexture[] getFront(final byte aColor) {
+ return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getTop(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Main_Off)
+ };
+ }
+
+ public ITexture[] getTopActive(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Main_On)
+ };
+ }
+
+ public ITexture[] getBottom(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Main_Off)
+ };
+ }
+
+ public ITexture[] getBottomActive(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Main_On)
+ };
+ }
+
+ public ITexture[] getSides(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Main_Off)
+ };
+ }
+
+ public ITexture[] getSidesActive(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Main_On)
+ };
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java
index 379345ec6a..caba805f65 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneCircuitBlock.java
@@ -1,11 +1,7 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.redstone;
-import java.util.*;
-
import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Textures;
-import gregtech.api.enums.Textures.BlockIcons;
import gregtech.api.interfaces.IRedstoneCircuitBlock;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.ICoverable;
@@ -17,6 +13,7 @@ import gregtech.api.util.*;
import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_Container_RedstoneCircuitBlock;
import gtPlusPlus.xmod.gregtech.api.gui.computer.GT_GUIContainer_RedstoneCircuitBlock;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
+import java.util.*;
import net.minecraft.block.Block;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
@@ -24,475 +21,482 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
-public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_RedstoneBase implements IRedstoneCircuitBlock {
-
- public int mGate = 0, mGateData[] = new int[]{0, 0, 0, 0, 0, 0, 0, 0};
- public boolean bOutput = true;
-
- public GT_MetaTileEntity_RedstoneCircuitBlock(int aID) {
- super(aID, "redstone.circuit", "Redstone Circuit Block", 1, 5, "Computes Redstone");
- }
-
- public GT_MetaTileEntity_RedstoneCircuitBlock(final String aName, String aDescription, final ITexture[][][] aTextures) {
- super(aName, 1, 5, aDescription, aTextures);
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_RedstoneCircuitBlock(this.mName, mDescription, this.mTextures);
- }
-
- @Override
- public Object getServerGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_Container_RedstoneCircuitBlock(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- @Override
- public Object getClientGUI(final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) {
- return new GT_GUIContainer_RedstoneCircuitBlock(aPlayerInventory, aBaseMetaTileEntity);
- }
-
- @Override
- public boolean hasSidedRedstoneOutputBehavior() {
- return true;
- }
-
- @Override
- public boolean isEnetInput() {
- return true;
- }
-
- @Override
- public boolean isEnetOutput() {
- return true;
- }
-
- @Override
- public boolean isInputFacing(byte aSide) {
- return !this.isOutputFacing(aSide);
- }
-
- @Override
- public boolean isElectric() {
- return true;
- }
-
- @Override
- public boolean isPneumatic() {
- return false;
- }
-
- @Override
- public boolean isSteampowered() {
- return false;
- }
-
- @Override
- public boolean isOutputFacing(byte aSide) {
- return aSide == this.getOutputFacing();
- }
-
- @Override
- public long getMinimumStoredEU() {
- return 512;
- }
-
- @Override
- public long maxEUInput() {
- return GT_Values.V[1];
- }
-
- @Override
- public long maxEUOutput() {
- return bOutput ? GT_Values.V[1] : 0;
- }
-
- @Override
- public long maxAmperesIn() {
- return 2;
- }
-
- @Override
- public long maxAmperesOut() {
- return 1;
- }
-
- @Override
- public int getSizeInventory() {
- return 5;
- }
-
- @Override
- public long maxEUStore() {
- return GT_Values.V[3] * 1024;
- }
-
- @Override
- public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) {
- if (aBaseMetaTileEntity.isClientSide()) {
- return true;
- }
- aBaseMetaTileEntity.openGUI(aPlayer, 147);
- return true;
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setInteger("mGate", mGate);
- aNBT.setIntArray("mGateData", mGateData);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- mGate = aNBT.getInteger("mGate");
- mGateData = aNBT.getIntArray("mGateData");
- if (mGateData.length != 8)
- mGateData = new int[]{0, 0, 0, 0, 0, 0, 0, 0};
- }
-
- public void switchOutput() {
- bOutput = !bOutput;
- }
-
- public void switchGateForward(boolean aShift) {
- try {
- Set<Integer> tKeys = GregTech_API.sCircuitryBehaviors.keySet();
- ArrayList<Integer> tList = new ArrayList<Integer>();
- tList.addAll(tKeys);
- if (tList.size() <= 0)
- return;
- Collections.sort(tList);
- if (!GregTech_API.sCircuitryBehaviors.containsKey(mGate))
- mGate = tList.get(0);
- int tIndex = Collections.binarySearch(tList, mGate);
- tIndex += aShift ? 16 : 1;
- while (tIndex >= tList.size())
- tIndex -= tList.size();
- mGate = tList.get(tIndex);
- switchGate();
- }
- catch (Throwable e) {
- GT_Log.err.print(e);
- }
- }
-
- public void switchGateBackward(boolean aShift) {
- try {
- Set<Integer> tKeys = GregTech_API.sCircuitryBehaviors.keySet();
- ArrayList<Integer> tList = new ArrayList<Integer>();
- tList.addAll(tKeys);
- if (tList.size() <= 0)
- return;
- Collections.sort(tList);
- if (!GregTech_API.sCircuitryBehaviors.containsKey(mGate))
- mGate = tList.get(0);
- int tIndex = Collections.binarySearch(tList, mGate);
- tIndex -= aShift ? 16 : 1;
- while (tIndex < 0)
- tIndex += tList.size();
- mGate = tList.get(tIndex);
- switchGate();
- }
- catch (Throwable e) {
- GT_Log.err.print(e);
- }
- }
-
- @Override
- public void onFacingChange() {
- resetRedstone();
- }
-
- private void resetRedstone() {
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 0, (byte) 0);
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 1, (byte) 0);
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 2, (byte) 0);
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 3, (byte) 0);
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 4, (byte) 0);
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 5, (byte) 0);
- }
-
- public void changeGateData(int aIndex, int aValue) {
- mGateData[aIndex] += aValue;
- validateGateData();
- }
-
- public void stackGateData(int aIndex, ItemStack aStack) {
- mGateData[aIndex] = GT_Utility.stackToInt(aStack);
- validateGateData();
- }
-
- private void switchGate() {
- resetRedstone();
- for (int i = 0; i < mGateData.length; i++)
- mGateData[i] = 0;
- GT_CircuitryBehavior tBehaviour = GregTech_API.sCircuitryBehaviors.get(mGate);
- if (tBehaviour != null)
- try {
- tBehaviour.initParameters(mGateData, this);
- }
- catch (Throwable e) {
- GT_Log.err.print(e);
- }
- validateGateData();
- }
-
- private void validateGateData() {
- GT_CircuitryBehavior tBehaviour = GregTech_API.sCircuitryBehaviors.get(mGate);
- if (tBehaviour != null)
- try {
- tBehaviour.validateParameters(mGateData, this);
- }
- catch (Throwable e) {
- GT_Log.err.print(e);
- }
- }
-
- @Override
- public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {
- super.onFirstTick(aBaseMetaTileEntity);
- getBaseMetaTileEntity().setGenericRedstoneOutput(true);
- validateGateData();
- }
-
- @Override
- public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- super.onPreTick(aBaseMetaTileEntity, aTick);
- getBaseMetaTileEntity().setGenericRedstoneOutput(true);
- if (getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().isServerSide()) {
- mInventory[0] = mInventory[1] = mInventory[2] = mInventory[3] = mInventory[4] = null;
- if (getBaseMetaTileEntity().getUniversalEnergyStored() >= getMinimumStoredEU()) {
- if (getBaseMetaTileEntity().isActive()) {
- GT_CircuitryBehavior tBehaviour = GregTech_API.sCircuitryBehaviors.get(mGate);
- if (tBehaviour != null) {
- try {
- tBehaviour.onTick(mGateData, this);
- if (tBehaviour.displayItemStack(mGateData, this, 0))
- mInventory[1] = getCoverByID(mGateData[0]);
- if (tBehaviour.displayItemStack(mGateData, this, 1))
- mInventory[2] = getCoverByID(mGateData[1]);
- if (tBehaviour.displayItemStack(mGateData, this, 2))
- mInventory[3] = getCoverByID(mGateData[2]);
- if (tBehaviour.displayItemStack(mGateData, this, 3))
- mInventory[4] = getCoverByID(mGateData[3]);
- }
- catch (Throwable e) {
- GT_Log.err.print(e);
- }
- }
- }
- getBaseMetaTileEntity().setErrorDisplayID(0);
- }
- else {
- getBaseMetaTileEntity().setErrorDisplayID(1);
- }
- }
- }
-
- @Override
- public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
- super.onPostTick(aBaseMetaTileEntity, aTick);
- //Only Calc server-side
- if (!this.getBaseMetaTileEntity().isServerSide()) {
- return;
- }
- //Emit Redstone
- for (byte i=0;i<6;i++) {
- byte aRedstone = getBaseMetaTileEntity().getOutputRedstoneSignal(i);
- this.getBaseMetaTileEntity().setInternalOutputRedstoneSignal(i, aRedstone);
- }
-
- }
-
- @Override
- public final boolean hasRedstoneSignal() {
- for (byte i=0;i<6;i++) {
- if (getBaseMetaTileEntity().getOutputRedstoneSignal(i) > 0) {
- return true;
- }
- }
- return false;
- }
-
- @Override
- public boolean allowGeneralRedstoneOutput() {
- return true;
- }
-
- /** The Item List for Covers */
- public static final Map<Integer, ItemStack> sCoversItems = new HashMap<Integer, ItemStack>();
-
- private static void initCovers() {
- for (GT_ItemStack aKey : GregTech_API.sCovers.keySet()) {
- ItemStack aStack = aKey.toStack().copy();
- if (aStack != null) {
- sCoversItems.put(GT_Utility.stackToInt(aStack), aStack);
- }
- }
- }
-
- public static ItemStack getCoverByID(int aStack) {
- if (sCoversItems.isEmpty()) {
- initCovers();
- }
- return sCoversItems.get(Integer.valueOf(aStack));
- }
-
- @Override
- public byte getOutputFacing() {
- return getBaseMetaTileEntity().getBackFacing();
- }
-
- @Override
- public boolean setRedstone(byte aStrength, byte aSide) {
- if (getOutputRedstone(aSide) != aStrength) {
- if (getBaseMetaTileEntity().decreaseStoredEnergyUnits(1, false)) {
- getBaseMetaTileEntity().setInternalOutputRedstoneSignal(aSide, aStrength);
- getBaseMetaTileEntity().setErrorDisplayID(0);
- return true;
- }
- else {
- getBaseMetaTileEntity().setErrorDisplayID(1);
- return false;
- }
- }
- return false;
- }
-
- /* @Override
- public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
- if (aSide == getOutputFacing()) {
- if (aSide == 0)
- return aRedstone ? 56 : 54;
- if (aSide == 1)
- return aRedstone ? 53 : 52;
- return aRedstone ? 94 : 93;
- }
- if (aSide == 0)
- return aRedstone ? 60 : 59;
- if (aSide == 1)
- return aRedstone ? 58 : 57;
- return aRedstone ? 62 : 61;
- }*/
-
- @Override
- public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return false;
- }
-
- @Override
- public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
- return false;
- }
-
- @Override
- public byte getOutputRedstone(byte aSide) {
- return getBaseMetaTileEntity().getOutputRedstoneSignal(aSide);
- }
-
- @Override
- public byte getInputRedstone(byte aSide) {
- return getBaseMetaTileEntity().getInternalInputRedstoneSignal(aSide);
- }
-
- @Override
- public Block getBlockAtSide(byte aSide) {
- return getBaseMetaTileEntity().getBlockAtSide(aSide);
- }
-
- @Override
- public byte getMetaIDAtSide(byte aSide) {
- return getBaseMetaTileEntity().getMetaIDAtSide(aSide);
- }
-
- @Override
- public TileEntity getTileEntityAtSide(byte aSide) {
- return getBaseMetaTileEntity().getTileEntityAtSide(aSide);
- }
-
- @Override
- public int getRandom(int aRange) {
- return getBaseMetaTileEntity().getRandomNumber(aRange);
- }
-
- @Override
- public GT_CoverBehavior getCover(byte aSide) {
- return getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide);
- }
-
- @Override
- public int getCoverID(byte aSide) {
- return getBaseMetaTileEntity().getCoverIDAtSide(aSide);
- }
-
- @Override
- public int getCoverVariable(byte aSide) {
- return getBaseMetaTileEntity().getCoverDataAtSide(aSide);
- }
-
- @Override
- public ICoverable getOwnTileEntity() {
- return getBaseMetaTileEntity();
- }
-
- @Override
- public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
- final ITexture[][][] rTextures = new ITexture[10][17][];
- for (byte i = -1; i < 16; i++) {
- rTextures[0][i + 1] = this.getSides(i);
- rTextures[1][i + 1] = this.getBack(i);
- rTextures[2][i + 1] = this.getBottom(i);
- rTextures[3][i + 1] = this.getTop(i);
- rTextures[4][i + 1] = this.getSides(i);
- rTextures[5][i + 1] = this.getSidesActive(i);
- rTextures[6][i + 1] = this.getBackActive(i);
- rTextures[7][i + 1] = this.getBottomActive(i);
- rTextures[8][i + 1] = this.getTopActive(i);
- rTextures[9][i + 1] = this.getSidesActive(i);
- }
- return rTextures;
- }
-
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- return this.mTextures[(aActive || hasRedstoneSignal() ? 5 : 0) + (aSide == aFacing ? 0 : aSide == GT_Utility.getOppositeSide(aFacing) ? 1 : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][aColorIndex
- + 1];
- }
-
- private GT_RenderedTexture getBase() {
- return new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top);
- }
-
- public ITexture[] getTop(final byte aColor) {
- return new ITexture[]{getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Off)};
- }
-
- public ITexture[] getTopActive(final byte aColor) {
- return new ITexture[]{getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_On)};
- }
-
- public ITexture[] getBack(final byte aColor) {
- return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Off), new GT_RenderedTexture(TexturesGtBlock.Casing_InventoryManagaer_Red)};
- }
-
- public ITexture[] getBackActive(final byte aColor) {
- return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On), new GT_RenderedTexture(TexturesGtBlock.Casing_InventoryManagaer_Red_Redstone)};
- }
-
- public ITexture[] getBottom(final byte aColor) {
- return new ITexture[]{getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Off)};
- }
-
- public ITexture[] getBottomActive(final byte aColor) {
- return new ITexture[]{getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_On)};
- }
-
- public ITexture[] getSides(final byte aColor) {
- return new ITexture[]{getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Off)};
- }
-
- public ITexture[] getSidesActive(final byte aColor) {
- return new ITexture[]{getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On)};
- }
-
+public class GT_MetaTileEntity_RedstoneCircuitBlock extends GT_MetaTileEntity_RedstoneBase
+ implements IRedstoneCircuitBlock {
+
+ public int mGate = 0, mGateData[] = new int[] {0, 0, 0, 0, 0, 0, 0, 0};
+ public boolean bOutput = true;
+
+ public GT_MetaTileEntity_RedstoneCircuitBlock(int aID) {
+ super(aID, "redstone.circuit", "Redstone Circuit Block", 1, 5, "Computes Redstone");
+ }
+
+ public GT_MetaTileEntity_RedstoneCircuitBlock(
+ final String aName, String aDescription, final ITexture[][][] aTextures) {
+ super(aName, 1, 5, aDescription, aTextures);
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_RedstoneCircuitBlock(this.mName, mDescription, this.mTextures);
+ }
+
+ @Override
+ public Object getServerGUI(
+ final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_Container_RedstoneCircuitBlock(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public Object getClientGUI(
+ final int aID, final InventoryPlayer aPlayerInventory, final IGregTechTileEntity aBaseMetaTileEntity) {
+ return new GT_GUIContainer_RedstoneCircuitBlock(aPlayerInventory, aBaseMetaTileEntity);
+ }
+
+ @Override
+ public boolean hasSidedRedstoneOutputBehavior() {
+ return true;
+ }
+
+ @Override
+ public boolean isEnetInput() {
+ return true;
+ }
+
+ @Override
+ public boolean isEnetOutput() {
+ return true;
+ }
+
+ @Override
+ public boolean isInputFacing(byte aSide) {
+ return !this.isOutputFacing(aSide);
+ }
+
+ @Override
+ public boolean isElectric() {
+ return true;
+ }
+
+ @Override
+ public boolean isPneumatic() {
+ return false;
+ }
+
+ @Override
+ public boolean isSteampowered() {
+ return false;
+ }
+
+ @Override
+ public boolean isOutputFacing(byte aSide) {
+ return aSide == this.getOutputFacing();
+ }
+
+ @Override
+ public long getMinimumStoredEU() {
+ return 512;
+ }
+
+ @Override
+ public long maxEUInput() {
+ return GT_Values.V[1];
+ }
+
+ @Override
+ public long maxEUOutput() {
+ return bOutput ? GT_Values.V[1] : 0;
+ }
+
+ @Override
+ public long maxAmperesIn() {
+ return 2;
+ }
+
+ @Override
+ public long maxAmperesOut() {
+ return 1;
+ }
+
+ @Override
+ public int getSizeInventory() {
+ return 5;
+ }
+
+ @Override
+ public long maxEUStore() {
+ return GT_Values.V[3] * 1024;
+ }
+
+ @Override
+ public boolean onRightclick(final IGregTechTileEntity aBaseMetaTileEntity, final EntityPlayer aPlayer) {
+ if (aBaseMetaTileEntity.isClientSide()) {
+ return true;
+ }
+ aBaseMetaTileEntity.openGUI(aPlayer, 147);
+ return true;
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setInteger("mGate", mGate);
+ aNBT.setIntArray("mGateData", mGateData);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ mGate = aNBT.getInteger("mGate");
+ mGateData = aNBT.getIntArray("mGateData");
+ if (mGateData.length != 8) mGateData = new int[] {0, 0, 0, 0, 0, 0, 0, 0};
+ }
+
+ public void switchOutput() {
+ bOutput = !bOutput;
+ }
+
+ public void switchGateForward(boolean aShift) {
+ try {
+ Set<Integer> tKeys = GregTech_API.sCircuitryBehaviors.keySet();
+ ArrayList<Integer> tList = new ArrayList<Integer>();
+ tList.addAll(tKeys);
+ if (tList.size() <= 0) return;
+ Collections.sort(tList);
+ if (!GregTech_API.sCircuitryBehaviors.containsKey(mGate)) mGate = tList.get(0);
+ int tIndex = Collections.binarySearch(tList, mGate);
+ tIndex += aShift ? 16 : 1;
+ while (tIndex >= tList.size()) tIndex -= tList.size();
+ mGate = tList.get(tIndex);
+ switchGate();
+ } catch (Throwable e) {
+ GT_Log.err.print(e);
+ }
+ }
+
+ public void switchGateBackward(boolean aShift) {
+ try {
+ Set<Integer> tKeys = GregTech_API.sCircuitryBehaviors.keySet();
+ ArrayList<Integer> tList = new ArrayList<Integer>();
+ tList.addAll(tKeys);
+ if (tList.size() <= 0) return;
+ Collections.sort(tList);
+ if (!GregTech_API.sCircuitryBehaviors.containsKey(mGate)) mGate = tList.get(0);
+ int tIndex = Collections.binarySearch(tList, mGate);
+ tIndex -= aShift ? 16 : 1;
+ while (tIndex < 0) tIndex += tList.size();
+ mGate = tList.get(tIndex);
+ switchGate();
+ } catch (Throwable e) {
+ GT_Log.err.print(e);
+ }
+ }
+
+ @Override
+ public void onFacingChange() {
+ resetRedstone();
+ }
+
+ private void resetRedstone() {
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 0, (byte) 0);
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 1, (byte) 0);
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 2, (byte) 0);
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 3, (byte) 0);
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 4, (byte) 0);
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal((byte) 5, (byte) 0);
+ }
+
+ public void changeGateData(int aIndex, int aValue) {
+ mGateData[aIndex] += aValue;
+ validateGateData();
+ }
+
+ public void stackGateData(int aIndex, ItemStack aStack) {
+ mGateData[aIndex] = GT_Utility.stackToInt(aStack);
+ validateGateData();
+ }
+
+ private void switchGate() {
+ resetRedstone();
+ for (int i = 0; i < mGateData.length; i++) mGateData[i] = 0;
+ GT_CircuitryBehavior tBehaviour = GregTech_API.sCircuitryBehaviors.get(mGate);
+ if (tBehaviour != null)
+ try {
+ tBehaviour.initParameters(mGateData, this);
+ } catch (Throwable e) {
+ GT_Log.err.print(e);
+ }
+ validateGateData();
+ }
+
+ private void validateGateData() {
+ GT_CircuitryBehavior tBehaviour = GregTech_API.sCircuitryBehaviors.get(mGate);
+ if (tBehaviour != null)
+ try {
+ tBehaviour.validateParameters(mGateData, this);
+ } catch (Throwable e) {
+ GT_Log.err.print(e);
+ }
+ }
+
+ @Override
+ public void onFirstTick(IGregTechTileEntity aBaseMetaTileEntity) {
+ super.onFirstTick(aBaseMetaTileEntity);
+ getBaseMetaTileEntity().setGenericRedstoneOutput(true);
+ validateGateData();
+ }
+
+ @Override
+ public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ super.onPreTick(aBaseMetaTileEntity, aTick);
+ getBaseMetaTileEntity().setGenericRedstoneOutput(true);
+ if (getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().isServerSide()) {
+ mInventory[0] = mInventory[1] = mInventory[2] = mInventory[3] = mInventory[4] = null;
+ if (getBaseMetaTileEntity().getUniversalEnergyStored() >= getMinimumStoredEU()) {
+ if (getBaseMetaTileEntity().isActive()) {
+ GT_CircuitryBehavior tBehaviour = GregTech_API.sCircuitryBehaviors.get(mGate);
+ if (tBehaviour != null) {
+ try {
+ tBehaviour.onTick(mGateData, this);
+ if (tBehaviour.displayItemStack(mGateData, this, 0))
+ mInventory[1] = getCoverByID(mGateData[0]);
+ if (tBehaviour.displayItemStack(mGateData, this, 1))
+ mInventory[2] = getCoverByID(mGateData[1]);
+ if (tBehaviour.displayItemStack(mGateData, this, 2))
+ mInventory[3] = getCoverByID(mGateData[2]);
+ if (tBehaviour.displayItemStack(mGateData, this, 3))
+ mInventory[4] = getCoverByID(mGateData[3]);
+ } catch (Throwable e) {
+ GT_Log.err.print(e);
+ }
+ }
+ }
+ getBaseMetaTileEntity().setErrorDisplayID(0);
+ } else {
+ getBaseMetaTileEntity().setErrorDisplayID(1);
+ }
+ }
+ }
+
+ @Override
+ public void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTick) {
+ super.onPostTick(aBaseMetaTileEntity, aTick);
+ // Only Calc server-side
+ if (!this.getBaseMetaTileEntity().isServerSide()) {
+ return;
+ }
+ // Emit Redstone
+ for (byte i = 0; i < 6; i++) {
+ byte aRedstone = getBaseMetaTileEntity().getOutputRedstoneSignal(i);
+ this.getBaseMetaTileEntity().setInternalOutputRedstoneSignal(i, aRedstone);
+ }
+ }
+
+ @Override
+ public final boolean hasRedstoneSignal() {
+ for (byte i = 0; i < 6; i++) {
+ if (getBaseMetaTileEntity().getOutputRedstoneSignal(i) > 0) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public boolean allowGeneralRedstoneOutput() {
+ return true;
+ }
+
+ /** The Item List for Covers */
+ public static final Map<Integer, ItemStack> sCoversItems = new HashMap<Integer, ItemStack>();
+
+ private static void initCovers() {
+ for (GT_ItemStack aKey : GregTech_API.sCovers.keySet()) {
+ ItemStack aStack = aKey.toStack().copy();
+ if (aStack != null) {
+ sCoversItems.put(GT_Utility.stackToInt(aStack), aStack);
+ }
+ }
+ }
+
+ public static ItemStack getCoverByID(int aStack) {
+ if (sCoversItems.isEmpty()) {
+ initCovers();
+ }
+ return sCoversItems.get(Integer.valueOf(aStack));
+ }
+
+ @Override
+ public byte getOutputFacing() {
+ return getBaseMetaTileEntity().getBackFacing();
+ }
+
+ @Override
+ public boolean setRedstone(byte aStrength, byte aSide) {
+ if (getOutputRedstone(aSide) != aStrength) {
+ if (getBaseMetaTileEntity().decreaseStoredEnergyUnits(1, false)) {
+ getBaseMetaTileEntity().setInternalOutputRedstoneSignal(aSide, aStrength);
+ getBaseMetaTileEntity().setErrorDisplayID(0);
+ return true;
+ } else {
+ getBaseMetaTileEntity().setErrorDisplayID(1);
+ return false;
+ }
+ }
+ return false;
+ }
+
+ /* @Override
+ public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
+ if (aSide == getOutputFacing()) {
+ if (aSide == 0)
+ return aRedstone ? 56 : 54;
+ if (aSide == 1)
+ return aRedstone ? 53 : 52;
+ return aRedstone ? 94 : 93;
+ }
+ if (aSide == 0)
+ return aRedstone ? 60 : 59;
+ if (aSide == 1)
+ return aRedstone ? 58 : 57;
+ return aRedstone ? 62 : 61;
+ }*/
+
+ @Override
+ public boolean allowPullStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public boolean allowPutStack(IGregTechTileEntity aBaseMetaTileEntity, int aIndex, byte aSide, ItemStack aStack) {
+ return false;
+ }
+
+ @Override
+ public byte getOutputRedstone(byte aSide) {
+ return getBaseMetaTileEntity().getOutputRedstoneSignal(aSide);
+ }
+
+ @Override
+ public byte getInputRedstone(byte aSide) {
+ return getBaseMetaTileEntity().getInternalInputRedstoneSignal(aSide);
+ }
+
+ @Override
+ public Block getBlockAtSide(byte aSide) {
+ return getBaseMetaTileEntity().getBlockAtSide(aSide);
+ }
+
+ @Override
+ public byte getMetaIDAtSide(byte aSide) {
+ return getBaseMetaTileEntity().getMetaIDAtSide(aSide);
+ }
+
+ @Override
+ public TileEntity getTileEntityAtSide(byte aSide) {
+ return getBaseMetaTileEntity().getTileEntityAtSide(aSide);
+ }
+
+ @Override
+ public int getRandom(int aRange) {
+ return getBaseMetaTileEntity().getRandomNumber(aRange);
+ }
+
+ @Override
+ public GT_CoverBehavior getCover(byte aSide) {
+ return getBaseMetaTileEntity().getCoverBehaviorAtSide(aSide);
+ }
+
+ @Override
+ public int getCoverID(byte aSide) {
+ return getBaseMetaTileEntity().getCoverIDAtSide(aSide);
+ }
+
+ @Override
+ public int getCoverVariable(byte aSide) {
+ return getBaseMetaTileEntity().getCoverDataAtSide(aSide);
+ }
+
+ @Override
+ public ICoverable getOwnTileEntity() {
+ return getBaseMetaTileEntity();
+ }
+
+ @Override
+ public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
+ final ITexture[][][] rTextures = new ITexture[10][17][];
+ for (byte i = -1; i < 16; i++) {
+ rTextures[0][i + 1] = this.getSides(i);
+ rTextures[1][i + 1] = this.getBack(i);
+ rTextures[2][i + 1] = this.getBottom(i);
+ rTextures[3][i + 1] = this.getTop(i);
+ rTextures[4][i + 1] = this.getSides(i);
+ rTextures[5][i + 1] = this.getSidesActive(i);
+ rTextures[6][i + 1] = this.getBackActive(i);
+ rTextures[7][i + 1] = this.getBottomActive(i);
+ rTextures[8][i + 1] = this.getTopActive(i);
+ rTextures[9][i + 1] = this.getSidesActive(i);
+ }
+ return rTextures;
+ }
+
+ @Override
+ public ITexture[] getTexture(
+ final IGregTechTileEntity aBaseMetaTileEntity,
+ final byte aSide,
+ final byte aFacing,
+ final byte aColorIndex,
+ final boolean aActive,
+ final boolean aRedstone) {
+ return this.mTextures[
+ (aActive || hasRedstoneSignal() ? 5 : 0)
+ + (aSide == aFacing
+ ? 0
+ : aSide == GT_Utility.getOppositeSide(aFacing)
+ ? 1
+ : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][
+ aColorIndex + 1];
+ }
+
+ private GT_RenderedTexture getBase() {
+ return new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top);
+ }
+
+ public ITexture[] getTop(final byte aColor) {
+ return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Off)};
+ }
+
+ public ITexture[] getTopActive(final byte aColor) {
+ return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_On)};
+ }
+
+ public ITexture[] getBack(final byte aColor) {
+ return new ITexture[] {
+ getBase(),
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Off),
+ new GT_RenderedTexture(TexturesGtBlock.Casing_InventoryManagaer_Red)
+ };
+ }
+
+ public ITexture[] getBackActive(final byte aColor) {
+ return new ITexture[] {
+ getBase(),
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On),
+ new GT_RenderedTexture(TexturesGtBlock.Casing_InventoryManagaer_Red_Redstone)
+ };
+ }
+
+ public ITexture[] getBottom(final byte aColor) {
+ return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Off)};
+ }
+
+ public ITexture[] getBottomActive(final byte aColor) {
+ return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_On)};
+ }
+
+ public ITexture[] getSides(final byte aColor) {
+ return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Off)};
+ }
+
+ public ITexture[] getSidesActive(final byte aColor) {
+ return new ITexture[] {getBase(), new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On)};
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneLamp.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneLamp.java
index 81517c83b9..dfb844654b 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneLamp.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneLamp.java
@@ -10,66 +10,67 @@ import net.minecraft.nbt.NBTTagCompound;
public class GT_MetaTileEntity_RedstoneLamp extends GT_MetaTileEntity_RedstoneBase {
- public byte mRedstoneStrength = 0, mType = 0;
- public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[2];
-
- static {
- sIconList[0] = new CustomIcon("TileEntities/gt4/redstone/Lamp/off");
- sIconList[1] = new CustomIcon("TileEntities/gt4/redstone/Lamp/on");
- }
-
- public GT_MetaTileEntity_RedstoneLamp(int aID) {
- super(aID, "redstone.lamp", "Redstone Controlled Lamp", 0, 0, "Redstone Controlled Lamp");
- }
+ public byte mRedstoneStrength = 0, mType = 0;
+ public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[2];
+
+ static {
+ sIconList[0] = new CustomIcon("TileEntities/gt4/redstone/Lamp/off");
+ sIconList[1] = new CustomIcon("TileEntities/gt4/redstone/Lamp/on");
+ }
+
+ public GT_MetaTileEntity_RedstoneLamp(int aID) {
+ super(aID, "redstone.lamp", "Redstone Controlled Lamp", 0, 0, "Redstone Controlled Lamp");
+ }
+
+ public GT_MetaTileEntity_RedstoneLamp(final String aName, String aDescription, final ITexture[][][] aTextures) {
+ super(aName, 0, 0, aDescription, aTextures);
+ }
- public GT_MetaTileEntity_RedstoneLamp(final String aName, String aDescription, final ITexture[][][] aTextures) {
- super(aName, 0, 0, aDescription, aTextures);
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_RedstoneLamp(this.mName, mDescription, this.mTextures);
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
-
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
-
- }
-
@Override
- public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- if (getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().isServerSide()) {
- getBaseMetaTileEntity().setLightValue(getBaseMetaTileEntity().getStrongestRedstone());
- getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().getStrongestRedstone()>0);
- }
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_RedstoneLamp(this.mName, mDescription, this.mTextures);
}
-
- @Override
- public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
- final ITexture[][][] rTextures = new ITexture[10][17][];
- for (byte i = -1; i < 16; i++) {
- rTextures[0][i + 1] = this.getSides(i);
- rTextures[1][i + 1] = this.getSidesActive(i);
- }
- return rTextures;
- }
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- return this.mTextures[(aActive ? 1 : 0)][aColorIndex + 1];
- }
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {}
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {}
- public ITexture[] getSides(final byte aColor) {
- return new ITexture[] {new GT_RenderedTexture(sIconList[0])};
- }
-
- public ITexture[] getSidesActive(final byte aColor) {
- return new ITexture[] {new GT_RenderedTexture(sIconList[1])};
- }
-
+ @Override
+ public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ if (getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().isServerSide()) {
+ getBaseMetaTileEntity().setLightValue(getBaseMetaTileEntity().getStrongestRedstone());
+ getBaseMetaTileEntity().setActive(getBaseMetaTileEntity().getStrongestRedstone() > 0);
+ }
+ }
+
+ @Override
+ public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
+ final ITexture[][][] rTextures = new ITexture[10][17][];
+ for (byte i = -1; i < 16; i++) {
+ rTextures[0][i + 1] = this.getSides(i);
+ rTextures[1][i + 1] = this.getSidesActive(i);
+ }
+ return rTextures;
+ }
+
+ @Override
+ public ITexture[] getTexture(
+ final IGregTechTileEntity aBaseMetaTileEntity,
+ final byte aSide,
+ final byte aFacing,
+ final byte aColorIndex,
+ final boolean aActive,
+ final boolean aRedstone) {
+ return this.mTextures[(aActive ? 1 : 0)][aColorIndex + 1];
+ }
+
+ public ITexture[] getSides(final byte aColor) {
+ return new ITexture[] {new GT_RenderedTexture(sIconList[0])};
+ }
+
+ public ITexture[] getSidesActive(final byte aColor) {
+ return new ITexture[] {new GT_RenderedTexture(sIconList[1])};
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthDisplay.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthDisplay.java
index 1f65385793..3b07f8b3ff 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthDisplay.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthDisplay.java
@@ -1,7 +1,6 @@
package gtPlusPlus.xmod.gregtech.common.tileentities.redstone;
import gregtech.api.enums.Textures;
-import gregtech.api.enums.Textures.BlockIcons;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
import gregtech.api.metatileentity.MetaTileEntity;
@@ -14,131 +13,164 @@ import net.minecraft.nbt.NBTTagCompound;
public class GT_MetaTileEntity_RedstoneStrengthDisplay extends GT_MetaTileEntity_RedstoneBase {
- public byte mRedstoneStrength = 0, mType = 0;
- public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[144];
-
- static {
- for (int i=0;i<144;i++) {
- sIconList[i] = new CustomIcon("TileEntities/gt4/redstone/Display/"+i);
- }
- }
-
- public GT_MetaTileEntity_RedstoneStrengthDisplay(int aID, String aUnlocal, String aLocal, String aDescription) {
- super(aID, aUnlocal, aLocal, 5, 0, aDescription);
- }
-
- public GT_MetaTileEntity_RedstoneStrengthDisplay(final String aName, String aDescription, final ITexture[][][] aTextures) {
- super(aName, 5, 0, aDescription, aTextures);
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_RedstoneStrengthDisplay(this.mName, mDescription, this.mTextures);
- }
-
- @Override
- public void saveNBTData(NBTTagCompound aNBT) {
- aNBT.setByte("mRedstoneStrength", mRedstoneStrength);
- aNBT.setByte("mType", mType);
- }
-
- @Override
- public void loadNBTData(NBTTagCompound aNBT) {
- mRedstoneStrength = aNBT.getByte("mRedstoneStrength");
- mType = aNBT.getByte("mType");
- }
-
- @Override
- public void onValueUpdate(byte aValue) {
- mRedstoneStrength = (byte) (aValue & 15);
- mType = (byte) (aValue >>> 4);
- }
-
- @Override
- public byte getUpdateData() {
- return (byte) ((mRedstoneStrength & 15) | (mType << 4));
- }
-
- @Override
- public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
- super.onPreTick(aBaseMetaTileEntity, aTick);
- if (getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().isServerSide()) {
- mRedstoneStrength = getBaseMetaTileEntity().getStrongestRedstone();
- }
- }
-
- /*@Override
- public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
- if (aSide == 0)
- return aRedstone ? 60 : 59;
- if (aSide == 1)
- return aRedstone ? 58 : 57;
- return aRedstone ? 62 : 61;
- }*/
-
- @Override
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (aSide == getBaseMetaTileEntity().getFrontFacing())
- mType = (byte) ((mType + 1) % 6);
- }
-
- /*@Override
- public IIcon getTextureIcon(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
- return aSide == aFacing ? sIconList[mType * 16 + mRedstoneStrength] : null;
- }*/
-
- @Override
- public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
- final ITexture[][][] rTextures = new ITexture[10][17][];
- for (byte i = -1; i < 16; i++) {
- rTextures[0][i + 1] = this.getFront(i);
- rTextures[1][i + 1] = this.getSides(i);
- rTextures[2][i + 1] = this.getBottom(i);
- rTextures[3][i + 1] = this.getTop(i);
- rTextures[4][i + 1] = this.getSides(i);
- rTextures[5][i + 1] = this.getFront(i);
- rTextures[6][i + 1] = this.getSidesActive(i);
- rTextures[7][i + 1] = this.getBottomActive(i);
- rTextures[8][i + 1] = this.getTopActive(i);
- rTextures[9][i + 1] = this.getSidesActive(i);
- }
- return rTextures;
- }
-
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- if (aSide == aFacing) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(sIconList[mType * 16 + mRedstoneStrength])};
- }
- return this.mTextures[(aActive || hasRedstoneSignal() ? 5 : 0) + (aSide == aFacing ? 0 : aSide == GT_Utility.getOppositeSide(aFacing) ? 1 : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][aColorIndex + 1];
- }
-
- public ITexture[] getFront(final byte aColor) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
- }
-
- public ITexture[] getTop(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Off)};
- }
-
- public ITexture[] getTopActive(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_On)};
- }
-
- public ITexture[] getBottom(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Off)};
- }
-
- public ITexture[] getBottomActive(final byte aColor) {
- return new ITexture[] { Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_On)};
- }
-
- public ITexture[] getSides(final byte aColor) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Off)};
- }
-
- public ITexture[] getSidesActive(final byte aColor) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1], new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On)};
- }
-
+ public byte mRedstoneStrength = 0, mType = 0;
+ public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[144];
+
+ static {
+ for (int i = 0; i < 144; i++) {
+ sIconList[i] = new CustomIcon("TileEntities/gt4/redstone/Display/" + i);
+ }
+ }
+
+ public GT_MetaTileEntity_RedstoneStrengthDisplay(int aID, String aUnlocal, String aLocal, String aDescription) {
+ super(aID, aUnlocal, aLocal, 5, 0, aDescription);
+ }
+
+ public GT_MetaTileEntity_RedstoneStrengthDisplay(
+ final String aName, String aDescription, final ITexture[][][] aTextures) {
+ super(aName, 5, 0, aDescription, aTextures);
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_RedstoneStrengthDisplay(this.mName, mDescription, this.mTextures);
+ }
+
+ @Override
+ public void saveNBTData(NBTTagCompound aNBT) {
+ aNBT.setByte("mRedstoneStrength", mRedstoneStrength);
+ aNBT.setByte("mType", mType);
+ }
+
+ @Override
+ public void loadNBTData(NBTTagCompound aNBT) {
+ mRedstoneStrength = aNBT.getByte("mRedstoneStrength");
+ mType = aNBT.getByte("mType");
+ }
+
+ @Override
+ public void onValueUpdate(byte aValue) {
+ mRedstoneStrength = (byte) (aValue & 15);
+ mType = (byte) (aValue >>> 4);
+ }
+
+ @Override
+ public byte getUpdateData() {
+ return (byte) ((mRedstoneStrength & 15) | (mType << 4));
+ }
+
+ @Override
+ public void onPreTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
+ super.onPreTick(aBaseMetaTileEntity, aTick);
+ if (getBaseMetaTileEntity().isAllowedToWork() && getBaseMetaTileEntity().isServerSide()) {
+ mRedstoneStrength = getBaseMetaTileEntity().getStrongestRedstone();
+ }
+ }
+
+ /*@Override
+ public int getTextureIndex(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
+ if (aSide == 0)
+ return aRedstone ? 60 : 59;
+ if (aSide == 1)
+ return aRedstone ? 58 : 57;
+ return aRedstone ? 62 : 61;
+ }*/
+
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (aSide == getBaseMetaTileEntity().getFrontFacing()) mType = (byte) ((mType + 1) % 6);
+ }
+
+ /*@Override
+ public IIcon getTextureIcon(byte aSide, byte aFacing, boolean aActive, boolean aRedstone) {
+ return aSide == aFacing ? sIconList[mType * 16 + mRedstoneStrength] : null;
+ }*/
+
+ @Override
+ public ITexture[][][] getTextureSet(final ITexture[] aTextures) {
+ final ITexture[][][] rTextures = new ITexture[10][17][];
+ for (byte i = -1; i < 16; i++) {
+ rTextures[0][i + 1] = this.getFront(i);
+ rTextures[1][i + 1] = this.getSides(i);
+ rTextures[2][i + 1] = this.getBottom(i);
+ rTextures[3][i + 1] = this.getTop(i);
+ rTextures[4][i + 1] = this.getSides(i);
+ rTextures[5][i + 1] = this.getFront(i);
+ rTextures[6][i + 1] = this.getSidesActive(i);
+ rTextures[7][i + 1] = this.getBottomActive(i);
+ rTextures[8][i + 1] = this.getTopActive(i);
+ rTextures[9][i + 1] = this.getSidesActive(i);
+ }
+ return rTextures;
+ }
+
+ @Override
+ public ITexture[] getTexture(
+ final IGregTechTileEntity aBaseMetaTileEntity,
+ final byte aSide,
+ final byte aFacing,
+ final byte aColorIndex,
+ final boolean aActive,
+ final boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1],
+ new GT_RenderedTexture(sIconList[mType * 16 + mRedstoneStrength])
+ };
+ }
+ return this.mTextures[
+ (aActive || hasRedstoneSignal() ? 5 : 0)
+ + (aSide == aFacing
+ ? 0
+ : aSide == GT_Utility.getOppositeSide(aFacing)
+ ? 1
+ : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][
+ aColorIndex + 1];
+ }
+
+ public ITexture[] getFront(final byte aColor) {
+ return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1]};
+ }
+
+ public ITexture[] getTop(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_Off)
+ };
+ }
+
+ public ITexture[] getTopActive(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Top_On)
+ };
+ }
+
+ public ITexture[] getBottom(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_Off)
+ };
+ }
+
+ public ITexture[] getBottomActive(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Bottom_On)
+ };
+ }
+
+ public ITexture[] getSides(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_Off)
+ };
+ }
+
+ public ITexture[] getSidesActive(final byte aColor) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColor + 1],
+ new GT_RenderedTexture(TexturesGtBlock.Casing_Redstone_Side_On)
+ };
+ }
}
diff --git a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthScale.java b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthScale.java
index efa3763370..8945f3f7b5 100644
--- a/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthScale.java
+++ b/src/main/java/gtPlusPlus/xmod/gregtech/common/tileentities/redstone/GT_MetaTileEntity_RedstoneStrengthScale.java
@@ -12,39 +12,54 @@ import net.minecraft.entity.player.EntityPlayer;
public class GT_MetaTileEntity_RedstoneStrengthScale extends GT_MetaTileEntity_RedstoneStrengthDisplay {
- public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[32];
-
- static {
- for (int i=0;i<32;i++) {
- sIconList[i] = new CustomIcon("TileEntities/gt4/redstone/Scale/"+i);
- }
- }
-
- public GT_MetaTileEntity_RedstoneStrengthScale(int aID) {
- super(aID, "redstone.display.scale", "Redstone Scale", "Redstone Strength on a Scale");
- }
-
- public GT_MetaTileEntity_RedstoneStrengthScale(final String aName, String aDescription, final ITexture[][][] aTextures) {
- super(aName, aDescription, aTextures);
- }
-
- @Override
- public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
- return new GT_MetaTileEntity_RedstoneStrengthScale(this.mName, mDescription, this.mTextures);
- }
-
- @Override
- public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
- if (aSide == getBaseMetaTileEntity().getFrontFacing())
- mType = (byte) ((mType + 1) % 2);
- }
-
- @Override
- public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) {
- if (aSide == aFacing) {
- return new ITexture[] {Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1], new GT_RenderedTexture(sIconList[mType * 16 + mRedstoneStrength])};
- }
- return this.mTextures[(aActive || hasRedstoneSignal() ? 5 : 0) + (aSide == aFacing ? 0 : aSide == GT_Utility.getOppositeSide(aFacing) ? 1 : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][aColorIndex + 1];
- }
+ public static TexturesGtBlock.CustomIcon[] sIconList = new TexturesGtBlock.CustomIcon[32];
+ static {
+ for (int i = 0; i < 32; i++) {
+ sIconList[i] = new CustomIcon("TileEntities/gt4/redstone/Scale/" + i);
+ }
+ }
+
+ public GT_MetaTileEntity_RedstoneStrengthScale(int aID) {
+ super(aID, "redstone.display.scale", "Redstone Scale", "Redstone Strength on a Scale");
+ }
+
+ public GT_MetaTileEntity_RedstoneStrengthScale(
+ final String aName, String aDescription, final ITexture[][][] aTextures) {
+ super(aName, aDescription, aTextures);
+ }
+
+ @Override
+ public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_RedstoneStrengthScale(this.mName, mDescription, this.mTextures);
+ }
+
+ @Override
+ public void onScrewdriverRightClick(byte aSide, EntityPlayer aPlayer, float aX, float aY, float aZ) {
+ if (aSide == getBaseMetaTileEntity().getFrontFacing()) mType = (byte) ((mType + 1) % 2);
+ }
+
+ @Override
+ public ITexture[] getTexture(
+ final IGregTechTileEntity aBaseMetaTileEntity,
+ final byte aSide,
+ final byte aFacing,
+ final byte aColorIndex,
+ final boolean aActive,
+ final boolean aRedstone) {
+ if (aSide == aFacing) {
+ return new ITexture[] {
+ Textures.BlockIcons.MACHINE_CASINGS[mTier][aColorIndex + 1],
+ new GT_RenderedTexture(sIconList[mType * 16 + mRedstoneStrength])
+ };
+ }
+ return this.mTextures[
+ (aActive || hasRedstoneSignal() ? 5 : 0)
+ + (aSide == aFacing
+ ? 0
+ : aSide == GT_Utility.getOppositeSide(aFacing)
+ ? 1
+ : aSide == 0 ? 2 : aSide == 1 ? 3 : 4)][
+ aColorIndex + 1];
+ }
}