/* package gtPlusPlus.xmod.gregtech.common.tileentities.misc; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_TieredMachineBlock; import gregtech.api.objects.GT_ItemStack; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.minecraft.BlockPos; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock; import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.GregtechMetaTileEntity_SolarTower; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class TileEntitySolarHeater extends GT_MetaTileEntity_TieredMachineBlock { public String mSolarTower; public boolean mHasTower = false; private Integer mTX, mTY, mTZ; private Byte mRequiredFacing; public TileEntitySolarHeater(final int aID, final String aName, final String aNameRegional, final int aTier, final String aDescription, final int aSlotCount) { super(aID, aName, aNameRegional, aTier, aSlotCount, aDescription); } public TileEntitySolarHeater(final String aName, final int aTier, final String aDescription, final ITexture[][][] aTextures, final int aSlotCount) { super(aName, aTier, aSlotCount, aDescription, aTextures); } @Override public String[] getDescription() { return new String[] { this.mDescription, "Point me at a Solar Tower", CORE.GT_Tooltip }; } @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.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.getFrontActive(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 ? 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[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_IV) }; } public ITexture[] getBack(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top) }; } public ITexture[] getBottom(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Bottom) }; } public ITexture[] getTop(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_LuV) }; } public ITexture[] getSides(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top) }; } public ITexture[] getFrontActive(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_IV) }; } public ITexture[] getBackActive(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top) }; } public ITexture[] getBottomActive(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Bottom) }; } public ITexture[] getTopActive(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top), new GT_RenderedTexture(Textures.BlockIcons.SOLARPANEL_LuV) }; } public ITexture[] getSidesActive(final byte aColor) { return new ITexture[] { new GT_RenderedTexture(TexturesGtBlock.Casing_Machine_Simple_Top) }; } @Override public IMetaTileEntity newMetaEntity(final IGregTechTileEntity aTileEntity) { return new TileEntitySolarHeater(this.mName, this.mTier, this.mDescription, this.mTextures, 0); } @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[] getInfoData() { return new String[] { this.getLocalName(), "Testificate" }; } @Override public boolean isGivingInformation() { return true; } @Override public boolean isUseableByPlayer(final EntityPlayer p_70300_1_) { return false; } public boolean allowCoverOnSide(final byte aSide, final int aCoverID) { return false; } @Override public int[] getAccessibleSlotsFromSide(final int p_94128_1_) { return new int[] {}; } @Override public int getSizeInventory() { return 0; } @Override public ItemStack getStackInSlot(final int p_70301_1_) { return null; } @Override public long maxEUStore() { return 0; } @Override public int getCapacity() { return 0; } @Override public long maxEUInput() { return 0; } @Override public long maxEUOutput() { return 0; } @Override public long maxAmperesIn() { return 0; } @Override public long maxAmperesOut() { return 0; } @Override public boolean isElectric() { return false; } @Override public boolean isValidSlot(final int aIndex) { return false; } @Override public boolean isFacingValid(final byte aFacing) { return aFacing >= 2; } @Override public boolean isEnetInput() { return false; } @Override public boolean isEnetOutput() { return false; } @Override public void saveNBTData(NBTTagCompound aNBT) { aNBT.setBoolean("mHasTower", mHasTower); if (mHasTower && mTX != null && mTY != null && mTZ != null) { aNBT.setInteger("mTX", mTX); aNBT.setInteger("mTY", mTY); aNBT.setInteger("mTZ", mTZ); } } @Override public void loadNBTData(NBTTagCompound aNBT) { this.mHasTower = aNBT.getBoolean("mHasTower"); if (this.mHasTower) { if (aNBT.hasKey("mTX")) this.mTX = aNBT.getInteger("mTX"); if (aNBT.hasKey("mTY")) this.mTY = aNBT.getInteger("mTY"); if (aNBT.hasKey("mTZ")) this.mTZ = aNBT.getInteger("mTZ"); } } @Override public long getInputTier() { return 0; } @Override public long getOutputTier() { return 0; } @Override public boolean allowCoverOnSide(byte aSide, GT_ItemStack aStack) { return false; } @Override public void onExplosion() { } public GregtechMetaTileEntity_SolarTower getSolarTower() { if (this.mHasTower && this.mSolarTower != null && this.mSolarTower.length() > 0) { BlockPos p = BlockPos.generateBlockPos(mSolarTower); if (p != null) { IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntity(p.xPos, p.yPos, p.zPos); if (tTileEntity != null && tTileEntity instanceof GregtechMetaTileEntity_SolarTower) { return (GregtechMetaTileEntity_SolarTower) tTileEntity; } } } return null; } public boolean setSolarTower(BlockPos aTowerPos) { if (!this.mHasTower && setSolarTowerInternal(aTowerPos.getUniqueIdentifier())) { IGregTechTileEntity tTileEntity = getBaseMetaTileEntity().getIGregTechTileEntity(aTowerPos.xPos, aTowerPos.yPos, aTowerPos.zPos); if (tTileEntity != null && tTileEntity instanceof GregtechMetaTileEntity_SolarTower) { this.mTX = tTileEntity.getXCoord(); this.mTY = (int) tTileEntity.getYCoord(); this.mTZ = tTileEntity.getZCoord(); this.mHasTower = true; return true; } } return false; } private boolean clearSolarTower() { if (mHasTower || mTX != null || mTY != null || mTZ != null || mRequiredFacing != null || this.mSolarTower != null) { this.mTX = null; this.mTY = null; this.mTZ = null; this.mRequiredFacing = null; this.mSolarTower = null; this.mHasTower = false; return true; } return false; } private final boolean setSolarTowerInternal(String aTowerPos) { this.mSolarTower = aTowerPos; return this.mSolarTower != null && this.mSolarTower.length() > 0; } @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); } @Override public void onRemoval() { super.onRemoval(); } @Override public boolean isOutputFacing(byte aSide) { return aSide > 1; } @Override public boolean isInputFacing(byte aSide) { return false; } @Override public long getMinimumStoredEU() { return 0; } @Override public void onFacingChange() { super.onFacingChange(); } @Override public void doExplosion(long aExplosionPower) { } } */