package gregtech.common.tileentities.generators; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BACK; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BACK_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BACK_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BACK_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BOTTOM; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BOTTOM_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BOTTOM_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_BOTTOM_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_FRONT; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_FRONT_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_FRONT_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_FRONT_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_SIDE; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_SIDE_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_SIDE_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_SIDE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_TOP; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_TOP_ACTIVE; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_TOP_ACTIVE_GLOW; import static gregtech.api.enums.Textures.BlockIcons.GAS_TURBINE_TOP_GLOW; import static gregtech.api.enums.Textures.BlockIcons.OVERLAYS_ENERGY_OUT; import net.minecraftforge.common.util.ForgeDirection; import gregtech.GTMod; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; import gregtech.api.metatileentity.implementations.MTEBasicGenerator; import gregtech.api.recipe.RecipeMap; import gregtech.api.recipe.RecipeMaps; import gregtech.api.render.TextureFactory; public class MTEGasTurbine extends MTEBasicGenerator { public int mEfficiency; public MTEGasTurbine(int aID, String aName, String aNameRegional, int aTier, int mEfficiency) { super( aID, aName, aNameRegional, aTier, new String[] { "Requires flammable Gasses", "Causes " + (int) (GTMod.gregtechproxy.mPollutionBaseGasTurbinePerSecond * GTMod.gregtechproxy.mPollutionGasTurbineReleasedByTier[aTier]) + " Pollution per second" }); this.mEfficiency = mEfficiency; } public MTEGasTurbine(String aName, int aTier, String[] aDescription, ITexture[][][] aTextures, int mEfficiency) { super(aName, aTier, aDescription, aTextures); this.mEfficiency = mEfficiency; } @Override public boolean isOutputFacing(ForgeDirection side) { return side == getBaseMetaTileEntity().getFrontFacing(); } @Override public MetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) { return new MTEGasTurbine(this.mName, this.mTier, this.mDescriptionArray, this.mTextures, this.mEfficiency); } @Override public RecipeMap getRecipeMap() { return RecipeMaps.gasTurbineFuels; } @Override public int getCapacity() { return 16000; } @Override public int getEfficiency() { return this.mEfficiency; } @Override public ITexture[] getFront(byte aColor) { return new ITexture[] { super.getFront(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_FRONT), TextureFactory.builder() .addIcon(GAS_TURBINE_FRONT_GLOW) .glow() .build()), OVERLAYS_ENERGY_OUT[this.mTier] }; } @Override public ITexture[] getBack(byte aColor) { return new ITexture[] { super.getBack(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_BACK), TextureFactory.builder() .addIcon(GAS_TURBINE_BACK_GLOW) .glow() .build()) }; } @Override public ITexture[] getBottom(byte aColor) { return new ITexture[] { super.getBottom(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_BOTTOM), TextureFactory.builder() .addIcon(GAS_TURBINE_BOTTOM_GLOW) .glow() .build()) }; } @Override public ITexture[] getTop(byte aColor) { return new ITexture[] { super.getTop(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_TOP), TextureFactory.builder() .addIcon(GAS_TURBINE_TOP_GLOW) .glow() .build()) }; } @Override public ITexture[] getSides(byte aColor) { return new ITexture[] { super.getSides(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_SIDE), TextureFactory.builder() .addIcon(GAS_TURBINE_SIDE_GLOW) .glow() .build()) }; } @Override public ITexture[] getFrontActive(byte aColor) { return new ITexture[] { super.getFrontActive(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_FRONT_ACTIVE), TextureFactory.builder() .addIcon(GAS_TURBINE_FRONT_ACTIVE_GLOW) .glow() .build()), OVERLAYS_ENERGY_OUT[this.mTier] }; } @Override public ITexture[] getBackActive(byte aColor) { return new ITexture[] { super.getBackActive(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_BACK_ACTIVE), TextureFactory.builder() .addIcon(GAS_TURBINE_BACK_ACTIVE_GLOW) .glow() .build()) }; } @Override public ITexture[] getBottomActive(byte aColor) { return new ITexture[] { super.getBottomActive(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_BOTTOM_ACTIVE), TextureFactory.builder() .addIcon(GAS_TURBINE_BOTTOM_ACTIVE_GLOW) .glow() .build()) }; } @Override public ITexture[] getTopActive(byte aColor) { return new ITexture[] { super.getTopActive(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_TOP_ACTIVE), TextureFactory.builder() .addIcon(GAS_TURBINE_TOP_ACTIVE_GLOW) .glow() .build()) }; } @Override public ITexture[] getSidesActive(byte aColor) { return new ITexture[] { super.getSidesActive(aColor)[0], TextureFactory.of( TextureFactory.of(GAS_TURBINE_SIDE_ACTIVE), TextureFactory.builder() .addIcon(GAS_TURBINE_SIDE_ACTIVE_GLOW) .glow() .build()) }; } @Override public int getPollution() { return (int) (GTMod.gregtechproxy.mPollutionBaseGasTurbinePerSecond * GTMod.gregtechproxy.mPollutionGasTurbineReleasedByTier[mTier]); } }