From 37e18fc8c73df4f27776b7a873a355f6412ee200 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 08:52:54 +0200 Subject: feat(render): glowing texture renderer Implement a glowing texture renderer class Add option to not render glowing textures --- .../api/objects/GT_RenderedGlowTexture.java | 193 +++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java new file mode 100644 index 0000000000..7d9bc7ddd0 --- /dev/null +++ b/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java @@ -0,0 +1,193 @@ +package gregtech.api.objects; + +import gregtech.GT_Mod; +import gregtech.api.enums.Dyes; +import gregtech.api.enums.Textures; +import gregtech.api.enums.Textures.BlockIcons; +import gregtech.api.interfaces.IColorModulationContainer; +import gregtech.api.interfaces.IIconContainer; +import gregtech.api.interfaces.ITexture; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.IIcon; +import org.lwjgl.opengl.GL11; + +import static gregtech.api.util.LightingHelper.MAX_BRIGHTNESS; +import static gregtech.api.util.LightingHelper.NORMAL_BRIGHTNESS; + +public class GT_RenderedGlowTexture implements ITexture, IColorModulationContainer { + final IIconContainer mIconContainer; + final boolean mAllowAlpha; + /** + * DO NOT MANIPULATE THE VALUES INSIDE THIS ARRAY!!! + *

+ * Just set this variable to another different Array instead. + * Otherwise some colored things will get Problems. + */ + public short[] mRGBa; + + public GT_RenderedGlowTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { + if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); + mIconContainer = GT_Mod.gregtechproxy.mRenderGlowTextures ? aIcon : BlockIcons.VOID; + mAllowAlpha = aAllowAlpha; + mRGBa = aRGBa; + } + + public GT_RenderedGlowTexture(IIconContainer aIcon, short[] aRGBa) { + this(aIcon, aRGBa, true); + } + + public GT_RenderedGlowTexture(IIconContainer aIcon) { + this(aIcon, Dyes._NULL.mRGBa); + } + + @Override + public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + aRenderer.field_152631_f = true; + final boolean enableAO = aRenderer.enableAO; + aRenderer.enableAO = false; + Tessellator.instance.setBrightness(MAX_BRIGHTNESS); + Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorOpaque(255, 255, 255); + aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + aRenderer.field_152631_f = false; + aRenderer.enableAO = enableAO; + } + + @Override + public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + final boolean enableAO = aRenderer.enableAO; + aRenderer.enableAO = false; + Tessellator.instance.setBrightness(MAX_BRIGHTNESS); + Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorOpaque(255, 255, 255); + aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + aRenderer.enableAO = enableAO; + } + + @Override + public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + final boolean enableAO = aRenderer.enableAO; + aRenderer.enableAO = false; + Tessellator.instance.setBrightness(MAX_BRIGHTNESS); + Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorOpaque(255, 255, 255); + aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + aRenderer.enableAO = enableAO; + } + + @Override + public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + final boolean enableAO = aRenderer.enableAO; + final Tessellator tessellator = Tessellator.instance; + IIcon aIcon = mIconContainer.getIcon(); + + float minU = aIcon.getInterpolatedU((1.0D - aRenderer.renderMaxX) * 16.0D); + float maxU = aIcon.getInterpolatedU((1.0D - aRenderer.renderMinX) * 16.0D); + float minV = aIcon.getInterpolatedV(aRenderer.renderMinZ * 16.0D); + float maxV = aIcon.getInterpolatedV(aRenderer.renderMaxZ * 16.0D); + + if (aRenderer.renderMinX < 0.0D || aRenderer.renderMaxX > 1.0D) { + minU = 16.0F - aIcon.getMaxU(); + maxU = 16.0F - aIcon.getMinU(); + } + + if (aRenderer.renderMinZ < 0.0D || aRenderer.renderMaxZ > 1.0D) { + minV = aIcon.getMinV(); + maxV = aIcon.getMaxV(); + } + + double minX = aX + aRenderer.renderMinX; + double maxX = aX + aRenderer.renderMaxX; + double minY = aY + aRenderer.renderMinY; + double minZ = aZ + aRenderer.renderMinZ; + double maxZ = aZ + aRenderer.renderMaxZ; + + Tessellator.instance.setBrightness(MAX_BRIGHTNESS); + Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); + + tessellator.addVertexWithUV(minX, minY, maxZ, maxU, maxV); + tessellator.addVertexWithUV(minX, minY, minZ, maxU, minV); + tessellator.addVertexWithUV(maxX, minY, minZ, minU, minV); + tessellator.addVertexWithUV(maxX, minY, maxZ, minU, maxV); + + if (mIconContainer.getOverlayIcon() != null) { + minU = aIcon.getInterpolatedU((1.0D - aRenderer.renderMaxX) * 16.0D); + maxU = aIcon.getInterpolatedU((1.0D - aRenderer.renderMinX) * 16.0D); + minV = aIcon.getInterpolatedV(aRenderer.renderMinZ * 16.0D); + maxV = aIcon.getInterpolatedV(aRenderer.renderMaxZ * 16.0D); + + if (aRenderer.renderMinX < 0.0D || aRenderer.renderMaxX > 1.0D) { + minU = 16.0F - aIcon.getMaxU(); + maxU = 16.0F - aIcon.getMinU(); + } + + if (aRenderer.renderMinZ < 0.0D || aRenderer.renderMaxZ > 1.0D) { + minV = aIcon.getMinV(); + maxV = aIcon.getMaxV(); + } + + minX = aX + (float)aRenderer.renderMinX; + maxX = aX + (float)aRenderer.renderMaxX; + minY = aY + (float)aRenderer.renderMinY; + minZ = aZ + (float)aRenderer.renderMinZ; + maxZ = aZ + (float)aRenderer.renderMaxZ; + + Tessellator.instance.setColorOpaque(255, 255, 255); + tessellator.addVertexWithUV(minX, minY, maxZ, maxU, maxV); + tessellator.addVertexWithUV(minX, minY, minZ, maxU, minV); + tessellator.addVertexWithUV(maxX, minY, minZ, minU, minV); + tessellator.addVertexWithUV(maxX, minY, maxZ, minU, maxV); + } + aRenderer.enableAO = enableAO; + } + + @Override + public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + final boolean enableAO = aRenderer.enableAO; + aRenderer.enableAO = false; + Tessellator.instance.setBrightness(MAX_BRIGHTNESS); + Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + aRenderer.enableAO = enableAO; + } + + @Override + public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + final boolean enableAO = aRenderer.enableAO; + aRenderer.enableAO = false; + aRenderer.field_152631_f = true; + Tessellator.instance.setBrightness(MAX_BRIGHTNESS); + Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); + if (mIconContainer.getOverlayIcon() != null) { + Tessellator.instance.setColorOpaque(255, 255, 255); + aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); + } + aRenderer.field_152631_f = false; + aRenderer.enableAO = enableAO; + } + + @Override + public short[] getRGBA() { + return mRGBa; + } + + @Override + public boolean isValidTexture() { + return mIconContainer != null; + } +} -- cgit From cca2933c1d616ccbb211e1d5f2e49e7c456cee9a Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 09:02:31 +0200 Subject: feat(render): first set of glow textures Add glowing textures to: - Qantum or Super Tanks and Chests - Active Bronze and Bricked Blast Furnaces - Active Magical Absorber Top - Fusion Reactor Control Computer Screen - Active Yellow Glass Fusion Casing used on: - Active Fusion Reactor Controller and Hatches - Plasma Generator - Lightning Rod - Computer Screen Cover --- src/main/java/gregtech/api/enums/Textures.java | 154 ++++++++++++++----------- 1 file changed, 84 insertions(+), 70 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index b2afa4216e..255f1a99b7 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -45,16 +45,18 @@ public class Textures { MACHINE_MAXV_BOTTOM, OVERLAY_SCHEST, + OVERLAY_SCHEST_GLOW, OVERLAY_STANK, - + OVERLAY_STANK_GLOW, + OVERLAY_PIPELINE_FLUID_BACK, OVERLAY_PIPELINE_FLUID_FRONT, - OVERLAY_PIPELINE_FLUID_SIDE, - + OVERLAY_PIPELINE_FLUID_SIDE, + OVERLAY_PIPELINE_ITEM_BACK, OVERLAY_PIPELINE_ITEM_FRONT, OVERLAY_PIPELINE_ITEM_SIDE, - + LONG_DISTANCE_PIPE_FLUID, LONG_DISTANCE_PIPE_ITEM, @@ -224,6 +226,7 @@ public class Textures { MACHINE_BRONZEBLASTFURNACE, MACHINE_BRONZEBLASTFURNACE_ACTIVE, + MACHINE_BRONZEBLASTFURNACE_ACTIVE_GLOW, MACHINE_CASING_ROBUST_TUNGSTENSTEEL, MACHINE_CASING_CLEAN_STAINLESSSTEEL, MACHINE_CASING_STABLE_TITANIUM, @@ -236,6 +239,7 @@ public class Textures { MACHINE_CASING_FUSION, MACHINE_CASING_FUSION_GLASS, MACHINE_CASING_FUSION_GLASS_YELLOW, + MACHINE_CASING_FUSION_GLASS_YELLOW_GLOW, MACHINE_CASING_FUSION_2, MACHINE_CASING_MAGIC, @@ -243,6 +247,7 @@ public class Textures { MACHINE_CASING_MAGIC_FRONT, MACHINE_CASING_MAGIC_FRONT_ACTIVE, MACHINE_CASING_DRAGONEGG, + MACHINE_CASING_DRAGONEGG_GLOW, MACHINE_CASING_SOLID_STEEL, MACHINE_CASING_FROST_PROOF, @@ -288,6 +293,7 @@ public class Textures { MACHINE_CASING_DENSEBRICKS, MACHINE_CASING_BRICKEDBLASTFURNACE_ACTIVE, + MACHINE_CASING_BRICKEDBLASTFURNACE_ACTIVE_GLOW, MACHINE_CASING_BRICKEDBLASTFURNACE_INACTIVE, MACHINE_COIL_KANTHAL, @@ -402,11 +408,17 @@ public class Textures { OVERLAY_FLUIDDETECTOR, OVERLAY_ITEMDETECTOR, OVERLAY_FUSION1, + OVERLAY_FUSION1_GLOW, OVERLAY_FUSION2, + OVERLAY_FUSION2_GLOW, OVERLAY_FUSION3, + OVERLAY_FUSION3_GLOW, OVERLAY_SCREEN, + OVERLAY_SCREEN_GLOW, OVERLAY_QTANK, + OVERLAY_QTANK_GLOW, OVERLAY_QCHEST, + OVERLAY_QCHEST_GLOW, OVERLAY_SHUTTER, OVERLAY_CLOSET, @@ -914,13 +926,13 @@ public class Textures { /** * Icon for Fresh CFoam */ - public static final ITexture[] FRESHFOAM = new ITexture[]{new GT_RenderedTexture(CFOAM_FRESH)}; + public static final ITexture[] FRESHFOAM = {new GT_RenderedTexture(CFOAM_FRESH)}; /** * Icons for Hardened CFoam * 0 = No Color * 1 - 16 = Colors */ - public static final ITexture[][] HARDENEDFOAMS = new ITexture[][]{ + public static final ITexture[][] HARDENEDFOAMS = { new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.CONSTRUCTION_FOAM.mRGBa)}, new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[0].mRGBa)}, new ITexture[]{new GT_RenderedTexture(CFOAM_HARDENED, Dyes.VALUES[1].mRGBa)}, @@ -944,7 +956,7 @@ public class Textures { * 0 = 8V, 1 = LV, 2 = MV, 3 = HV, 4 = EV, 5 = IV, 6 = IV, 7 = IV, 8 = IV, 9 = IV */ public static final IIconContainer[] - MACHINECASINGS_SIDE = new IIconContainer[]{ + MACHINECASINGS_SIDE = { MACHINE_8V_SIDE, MACHINE_LV_SIDE, MACHINE_MV_SIDE, @@ -962,7 +974,7 @@ public class Textures { MACHINE_OPV_SIDE, MACHINE_MAXV_SIDE, }, - MACHINECASINGS_TOP = new IIconContainer[]{ + MACHINECASINGS_TOP = { MACHINE_8V_TOP, MACHINE_LV_TOP, MACHINE_MV_TOP, @@ -980,7 +992,7 @@ public class Textures { MACHINE_OPV_TOP, MACHINE_MAXV_TOP, }, - MACHINECASINGS_BOTTOM = new IIconContainer[]{ + MACHINECASINGS_BOTTOM = { MACHINE_8V_BOTTOM, MACHINE_LV_BOTTOM, MACHINE_MV_BOTTOM, @@ -998,7 +1010,7 @@ public class Textures { MACHINE_OPV_BOTTOM, MACHINE_MAXV_BOTTOM, }, - GRANITES = new IIconContainer[]{ + GRANITES = { GRANITE_BLACK_STONE, GRANITE_BLACK_COBBLE, GRANITE_BLACK_COBBLE_MOSSY, @@ -1016,7 +1028,7 @@ public class Textures { GRANITE_RED_BRICKS_CHISELED, GRANITE_RED_SMOOTH, }, - CONCRETES = new IIconContainer[]{ + CONCRETES = { CONCRETE_DARK_STONE, CONCRETE_DARK_COBBLE, CONCRETE_DARK_COBBLE_MOSSY, @@ -1034,7 +1046,7 @@ public class Textures { CONCRETE_LIGHT_BRICKS_CHISELED, CONCRETE_LIGHT_SMOOTH, }, - STONES = new IIconContainer[]{ + STONES = { MARBLE_STONE, MARBLE_COBBLE, MARBLE_COBBLE_MOSSY, @@ -1052,7 +1064,7 @@ public class Textures { BASALT_BRICKS_CHISELED, BASALT_SMOOTH, }, - TURBINE = new IIconContainer[]{ + TURBINE = { LARGETURBINE_ST1, LARGETURBINE_ST2, LARGETURBINE_ST3, @@ -1063,7 +1075,7 @@ public class Textures { LARGETURBINE_ST8, LARGETURBINE_ST9 }, - TURBINE_ACTIVE = new IIconContainer[]{ + TURBINE_ACTIVE = { LARGETURBINE_ST_ACTIVE1, LARGETURBINE_ST_ACTIVE2, LARGETURBINE_ST_ACTIVE3, @@ -1074,7 +1086,7 @@ public class Textures { LARGETURBINE_ST_ACTIVE8, LARGETURBINE_ST_ACTIVE9 }, - TURBINE1 = new IIconContainer[]{ + TURBINE1 = { LARGETURBINE_SS1, LARGETURBINE_SS2, LARGETURBINE_SS3, @@ -1085,7 +1097,7 @@ public class Textures { LARGETURBINE_SS8, LARGETURBINE_SS9 }, - TURBINE_ACTIVE1 = new IIconContainer[]{ + TURBINE_ACTIVE1 = { LARGETURBINE_SS_ACTIVE1, LARGETURBINE_SS_ACTIVE2, LARGETURBINE_SS_ACTIVE3, @@ -1096,7 +1108,7 @@ public class Textures { LARGETURBINE_SS_ACTIVE8, LARGETURBINE_SS_ACTIVE9 }, - TURBINE2 = new IIconContainer[]{ + TURBINE2 = { LARGETURBINE_TI1, LARGETURBINE_TI2, LARGETURBINE_TI3, @@ -1107,7 +1119,7 @@ public class Textures { LARGETURBINE_TI8, LARGETURBINE_TI9 }, - TURBINE_ACTIVE2 = new IIconContainer[]{ + TURBINE_ACTIVE2 = { LARGETURBINE_TI_ACTIVE1, LARGETURBINE_TI_ACTIVE2, LARGETURBINE_TI_ACTIVE3, @@ -1118,7 +1130,7 @@ public class Textures { LARGETURBINE_TI_ACTIVE8, LARGETURBINE_TI_ACTIVE9 }, - TURBINE3 = new IIconContainer[]{ + TURBINE3 = { LARGETURBINE_TU1, LARGETURBINE_TU2, LARGETURBINE_TU3, @@ -1129,7 +1141,7 @@ public class Textures { LARGETURBINE_TU8, LARGETURBINE_TU9 }, - TURBINE_ACTIVE3 = new IIconContainer[]{ + TURBINE_ACTIVE3 = { LARGETURBINE_TU_ACTIVE1, LARGETURBINE_TU_ACTIVE2, LARGETURBINE_TU_ACTIVE3, @@ -1140,7 +1152,7 @@ public class Textures { LARGETURBINE_TU_ACTIVE8, LARGETURBINE_TU_ACTIVE9 }, - CONNECTED_HULLS = new IIconContainer[]{ + CONNECTED_HULLS = { CONCRETE_DARK_STONE, FUSIONI_1, FUSIONI_2, @@ -1167,7 +1179,7 @@ public class Textures { FUSIONII_11, FUSIONII_12, }, - STORAGE_BLOCKS1 = new IIconContainer[]{ + STORAGE_BLOCKS1 = { BLOCK_ADAMANTIUM, BLOCK_ALUMINIUM, BLOCK_AMERICIUM, @@ -1185,7 +1197,7 @@ public class Textures { BLOCK_BLUESTEEL, BLOCK_BRASS }, - STORAGE_BLOCKS2 = new IIconContainer[]{ + STORAGE_BLOCKS2 = { BLOCK_BRONZE, BLOCK_CAESIUM, BLOCK_CERIUM, @@ -1203,7 +1215,7 @@ public class Textures { BLOCK_DYSPROSIUM, BLOCK_ELECTRUM }, - STORAGE_BLOCKS3 = new IIconContainer[]{ + STORAGE_BLOCKS3 = { BLOCK_ELECTRUMFLUX, BLOCK_ENDERIUM, BLOCK_ERBIUM, @@ -1221,7 +1233,7 @@ public class Textures { BLOCK_IRONWOOD, BLOCK_KANTHAL }, - STORAGE_BLOCKS4 = new IIconContainer[]{ + STORAGE_BLOCKS4 = { BLOCK_KNIGHTMETAL, BLOCK_LANTHANUM, BLOCK_LEAD, @@ -1239,7 +1251,7 @@ public class Textures { BLOCK_NAQUADAHENRICHED, BLOCK_NAQUADRIA }, - STORAGE_BLOCKS5 = new IIconContainer[]{ + STORAGE_BLOCKS5 = { BLOCK_NEODYMIUM, BLOCK_NEODYMIUMMAGNETIC, BLOCK_NEUTRONIUM, @@ -1257,7 +1269,7 @@ public class Textures { BLOCK_PLUTONIUM241, BLOCK_PRASEODYMIUM }, - STORAGE_BLOCKS6 = new IIconContainer[]{ + STORAGE_BLOCKS6 = { BLOCK_PROMETHIUM, BLOCK_REDALLOY, BLOCK_REDSTEEL, @@ -1275,7 +1287,7 @@ public class Textures { BLOCK_STEELMAGNETIC, BLOCK_STERLINGSILVER }, - STORAGE_BLOCKS7 = new IIconContainer[]{ + STORAGE_BLOCKS7 = { BLOCK_SUNNARIUM, BLOCK_TANTALUM, BLOCK_TELLURIUM, @@ -1293,7 +1305,7 @@ public class Textures { BLOCK_URANIUM, BLOCK_URANIUM235 }, - STORAGE_BLOCKS8 = new IIconContainer[]{ + STORAGE_BLOCKS8 = { BLOCK_VANADIUM, BLOCK_VANADIUMGALLIUM, BLOCK_WROUGHTIRON, @@ -1311,7 +1323,7 @@ public class Textures { BLOCK_FIRESTONE, BLOCK_SHADOW }, - STORAGE_BLOCKS9 = new IIconContainer[]{ + STORAGE_BLOCKS9 = { BLOCK_AERCRYSTAL, BLOCK_AMBER, BLOCK_AMETHYST, @@ -1329,7 +1341,7 @@ public class Textures { BLOCK_IGNISCRYSTAL, BLOCK_JASPER }, - STORAGE_BLOCKS10 = new IIconContainer[]{ + STORAGE_BLOCKS10 = { BLOCK_LAZURITE, BLOCK_LIGNITE, BLOCK_MONAZITE, @@ -1347,7 +1359,7 @@ public class Textures { BLOCK_TANZANITE, BLOCK_TERRACRYSTAL }, - STORAGE_BLOCKS11 = new IIconContainer[]{ + STORAGE_BLOCKS11 = { BLOCK_TOPAZ, BLOCK_VINTEUM, BLOCK_YELLOWGARNET, @@ -1355,14 +1367,14 @@ public class Textures { BLOCK_CHARCOAL, BLOCK_BLAZE }; - public static ITexture[] HIDDEN_TEXTURE = new ITexture[]{ - new GT_StdRenderedTexture(BlockIcons.HIDDEN_FACE) + public static ITexture[] HIDDEN_TEXTURE = { + new GT_StdRenderedTexture(HIDDEN_FACE) }; public static ITexture[] - ERROR_RENDERING = new ITexture[]{ + ERROR_RENDERING = { new GT_RenderedTexture(RENDERING_ERROR) }; - public static ITexture[] OVERLAYS_ENERGY_IN = new ITexture[]{ + public static ITexture[] OVERLAYS_ENERGY_IN = { new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{180, 180, 180, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{220, 220, 220, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{255, 100, 0, 0}), @@ -1380,7 +1392,7 @@ public class Textures { new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{60, 60, 245, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN, new short[]{40, 40, 245, 0}), }; - public static ITexture[] OVERLAYS_ENERGY_OUT = new ITexture[]{ + public static ITexture[] OVERLAYS_ENERGY_OUT = { new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{180, 180, 180, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{220, 220, 220, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{255, 100, 0, 0}), @@ -1398,7 +1410,7 @@ public class Textures { new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{60, 60, 245, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT, new short[]{40, 40, 245, 0}), }; - public static ITexture[] OVERLAYS_ENERGY_IN_MULTI = new ITexture[]{ + public static ITexture[] OVERLAYS_ENERGY_IN_MULTI = { new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{180, 180, 180, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{220, 220, 220, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{255, 100, 0, 0}), @@ -1416,7 +1428,7 @@ public class Textures { new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{60, 60, 245, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN_MULTI, new short[]{40, 40, 245, 0}), }; - public static ITexture[] OVERLAYS_ENERGY_OUT_MULTI = new ITexture[]{ + public static ITexture[] OVERLAYS_ENERGY_OUT_MULTI = { new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{180, 180, 180, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{220, 220, 220, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{255, 100, 0, 0}), @@ -1434,7 +1446,7 @@ public class Textures { new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{60, 60, 245, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT_MULTI, new short[]{40, 40, 245, 0}), }; - public static ITexture[] OVERLAYS_ENERGY_IN_POWER = new ITexture[]{ + public static ITexture[] OVERLAYS_ENERGY_IN_POWER = { new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{180, 180, 180, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{220, 220, 220, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{255, 100, 0, 0}), @@ -1452,7 +1464,7 @@ public class Textures { new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{60, 60, 245, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_IN_POWER, new short[]{40, 40, 245, 0}), }; - public static ITexture[] OVERLAYS_ENERGY_OUT_POWER = new ITexture[]{ + public static ITexture[] OVERLAYS_ENERGY_OUT_POWER = { new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{180, 180, 180, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{220, 220, 220, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{255, 100, 0, 0}), @@ -1470,7 +1482,7 @@ public class Textures { new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{60, 60, 245, 0}), new GT_RenderedTexture(OVERLAY_ENERGY_OUT_POWER, new short[]{40, 40, 245, 0}), }; - public static ITexture[] LOCKERS = new ITexture[]{ + public static ITexture[] LOCKERS = { new GT_RenderedTexture(OVERLAY_LOCKER_000), new GT_RenderedTexture(OVERLAY_LOCKER_001), new GT_RenderedTexture(OVERLAY_LOCKER_002), @@ -1497,24 +1509,14 @@ public class Textures { */ public static ITexture[][] casingTexturePages = new ITexture[128][];//page holder so we don't make an short long array - public static ITexture getCasingTextureForId(int id){ - return casingTexturePages[(id>>7)&0x7f][id&0x7f]; - } - public static void setCasingTextureForId(int id,ITexture iTexture){ - casingTexturePages[(id>>7)&0x7f][id&0x7f]=iTexture; - } - public static void setCasingTexture(byte page,byte index,ITexture iTexture){ - casingTexturePages[page][index]=iTexture; - } - static { for (byte i = 0; i < MACHINE_CASINGS.length; i++) for (byte j = 0; j < MACHINE_CASINGS[i].length; j++) MACHINE_CASINGS[i][j] = new GT_SidedTexture(MACHINECASINGS_BOTTOM[i], MACHINECASINGS_TOP[i], MACHINECASINGS_SIDE[i], Dyes.getModulation(j - 1, Dyes.MACHINE_METAL.mRGBa)); casingTexturePages[0] = CASING_BLOCKS; //adds some known pages, modders also can do it... - GT_Utility.addTexturePage((byte)1); - GT_Utility.addTexturePage((byte)8); + GT_Utility.addTexturePage((byte) 1); + GT_Utility.addTexturePage((byte) 8); } protected IIcon mIcon; @@ -1523,6 +1525,18 @@ public class Textures { GregTech_API.sGTBlockIconload.add(this); } + public static ITexture getCasingTextureForId(int id) { + return casingTexturePages[(id >> 7) & 0x7f][id & 0x7f]; + } + + public static void setCasingTextureForId(int id, ITexture iTexture) { + casingTexturePages[(id >> 7) & 0x7f][id & 0x7f] = iTexture; + } + + public static void setCasingTexture(byte page, byte index, ITexture iTexture) { + casingTexturePages[page][index] = iTexture; + } + @Override public IIcon getIcon() { return mIcon; @@ -1534,13 +1548,13 @@ public class Textures { } @Override - public void run() { - mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "iconsets/" + this); + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; } @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationBlocksTexture; + public void run() { + mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + "iconsets/" + this); } public static class CustomIcon implements IIconContainer, Runnable { @@ -1563,13 +1577,13 @@ public class Textures { } @Override - public void run() { - mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + mIconName); + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; } @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationBlocksTexture; + public void run() { + mIcon = GregTech_API.sBlockIcons.registerIcon(RES_PATH_BLOCK + mIconName); } } } @@ -1623,7 +1637,7 @@ public class Textures { TURBINE_HUGE; public static final IIconContainer[] - DURABILITY_BAR = new IIconContainer[]{ + DURABILITY_BAR = { DURABILITY_BAR_0, DURABILITY_BAR_1, DURABILITY_BAR_2, @@ -1634,7 +1648,7 @@ public class Textures { DURABILITY_BAR_7, DURABILITY_BAR_8, }, - ENERGY_BAR = new IIconContainer[]{ + ENERGY_BAR = { ENERGY_BAR_0, ENERGY_BAR_1, ENERGY_BAR_2, @@ -1646,7 +1660,7 @@ public class Textures { ENERGY_BAR_8, }; - public static final ITexture[] ERROR_RENDERING = new ITexture[]{new GT_RenderedTexture(RENDERING_ERROR)}; + public static final ITexture[] ERROR_RENDERING = {new GT_RenderedTexture(RENDERING_ERROR)}; protected IIcon mIcon, mOverlay; @@ -1695,14 +1709,14 @@ public class Textures { } @Override - public void run() { - mIcon = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName); - mOverlay = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName + "_OVERLAY"); + public ResourceLocation getTextureFile() { + return TextureMap.locationItemsTexture; } @Override - public ResourceLocation getTextureFile() { - return TextureMap.locationItemsTexture; + public void run() { + mIcon = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName); + mOverlay = GregTech_API.sItemIcons.registerIcon(RES_PATH_ITEM + mIconName + "_OVERLAY"); } } } -- cgit From a7b25dc718ad3017db0f7127e3facbba4734ff27 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 10:58:35 +0200 Subject: feat(render): active boiler glow --- src/main/java/gregtech/api/enums/Textures.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 255f1a99b7..d0eafda5de 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -310,6 +310,7 @@ public class Textures { BOILER_FRONT, BOILER_FRONT_ACTIVE, + BOILER_FRONT_ACTIVE_GLOW, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, NAQUADAH_REACTOR_SOLID_BACK, -- cgit From d17962585feb66cd303f1df9b27db962a5b5e77d Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 11:24:14 +0200 Subject: feat(render): active high pressure lava boiler glow --- src/main/java/gregtech/api/enums/Textures.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index d0eafda5de..64beda4155 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -313,6 +313,7 @@ public class Textures { BOILER_FRONT_ACTIVE_GLOW, BOILER_LAVA_FRONT, BOILER_LAVA_FRONT_ACTIVE, + BOILER_LAVA_FRONT_ACTIVE_GLOW, NAQUADAH_REACTOR_SOLID_BACK, NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, -- cgit From 34c9326a6b2efbc89e56da996a06b7392e7cd47a Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 12:32:33 +0200 Subject: feat(render): magical energy converter and absorber glow textures --- src/main/java/gregtech/api/enums/Textures.java | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 64beda4155..f865083354 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -243,9 +243,13 @@ public class Textures { MACHINE_CASING_FUSION_2, MACHINE_CASING_MAGIC, + MACHINE_CASING_MAGIC_GLOW, MACHINE_CASING_MAGIC_ACTIVE, + MACHINE_CASING_MAGIC_ACTIVE_GLOW, MACHINE_CASING_MAGIC_FRONT, + MACHINE_CASING_MAGIC_FRONT_GLOW, MACHINE_CASING_MAGIC_FRONT_ACTIVE, + MACHINE_CASING_MAGIC_FRONT_ACTIVE_GLOW, MACHINE_CASING_DRAGONEGG, MACHINE_CASING_DRAGONEGG_GLOW, MACHINE_CASING_SOLID_STEEL, -- cgit From dc56ccc1ecd394b62c0773e284eb77d2ce35177c Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 14:21:22 +0200 Subject: fix(render): really not render glow if turned off in config --- .../api/objects/GT_RenderedGlowTexture.java | 41 ++++++++++++---------- 1 file changed, 22 insertions(+), 19 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java index 7d9bc7ddd0..7bafd9f627 100644 --- a/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java +++ b/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java @@ -2,7 +2,6 @@ package gregtech.api.objects; import gregtech.GT_Mod; import gregtech.api.enums.Dyes; -import gregtech.api.enums.Textures; import gregtech.api.enums.Textures.BlockIcons; import gregtech.api.interfaces.IColorModulationContainer; import gregtech.api.interfaces.IIconContainer; @@ -11,10 +10,8 @@ import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.IIcon; -import org.lwjgl.opengl.GL11; import static gregtech.api.util.LightingHelper.MAX_BRIGHTNESS; -import static gregtech.api.util.LightingHelper.NORMAL_BRIGHTNESS; public class GT_RenderedGlowTexture implements ITexture, IColorModulationContainer { final IIconContainer mIconContainer; @@ -27,6 +24,14 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain */ public short[] mRGBa; + public GT_RenderedGlowTexture(IIconContainer aIcon) { + this(aIcon, Dyes._NULL.mRGBa); + } + + public GT_RenderedGlowTexture(IIconContainer aIcon, short[] aRGBa) { + this(aIcon, aRGBa, true); + } + public GT_RenderedGlowTexture(IIconContainer aIcon, short[] aRGBa, boolean aAllowAlpha) { if (aRGBa.length != 4) throw new IllegalArgumentException("RGBa doesn't have 4 Values @ GT_RenderedTexture"); mIconContainer = GT_Mod.gregtechproxy.mRenderGlowTextures ? aIcon : BlockIcons.VOID; @@ -34,16 +39,14 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain mRGBa = aRGBa; } - public GT_RenderedGlowTexture(IIconContainer aIcon, short[] aRGBa) { - this(aIcon, aRGBa, true); - } - - public GT_RenderedGlowTexture(IIconContainer aIcon) { - this(aIcon, Dyes._NULL.mRGBa); + @Override + public short[] getRGBA() { + return mRGBa; } @Override public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; aRenderer.field_152631_f = true; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; @@ -60,6 +63,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain @Override public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; Tessellator.instance.setBrightness(MAX_BRIGHTNESS); @@ -74,6 +78,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain @Override public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; Tessellator.instance.setBrightness(MAX_BRIGHTNESS); @@ -88,6 +93,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain @Override public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; final Tessellator tessellator = Tessellator.instance; IIcon aIcon = mIconContainer.getIcon(); @@ -137,11 +143,11 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain maxV = aIcon.getMaxV(); } - minX = aX + (float)aRenderer.renderMinX; - maxX = aX + (float)aRenderer.renderMaxX; - minY = aY + (float)aRenderer.renderMinY; - minZ = aZ + (float)aRenderer.renderMinZ; - maxZ = aZ + (float)aRenderer.renderMaxZ; + minX = aX + (float) aRenderer.renderMinX; + maxX = aX + (float) aRenderer.renderMaxX; + minY = aY + (float) aRenderer.renderMinY; + minZ = aZ + (float) aRenderer.renderMinZ; + maxZ = aZ + (float) aRenderer.renderMaxZ; Tessellator.instance.setColorOpaque(255, 255, 255); tessellator.addVertexWithUV(minX, minY, maxZ, maxU, maxV); @@ -154,6 +160,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain @Override public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; Tessellator.instance.setBrightness(MAX_BRIGHTNESS); @@ -167,6 +174,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain @Override public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; aRenderer.field_152631_f = true; @@ -181,11 +189,6 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain aRenderer.enableAO = enableAO; } - @Override - public short[] getRGBA() { - return mRGBa; - } - @Override public boolean isValidTexture() { return mIconContainer != null; -- cgit From 72251ebd3fcd5a56624caf041c0b214b5a40cd73 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 15:08:13 +0200 Subject: feat(render): active naquadah reactor glow --- src/main/java/gregtech/api/enums/Textures.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index f865083354..943993083b 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -322,14 +322,19 @@ public class Textures { NAQUADAH_REACTOR_SOLID_FRONT, NAQUADAH_REACTOR_SOLID_SIDE, NAQUADAH_REACTOR_SOLID_BOTTOM, - NAQUADAH_REACTOR_SOLID_TOP, + NAQUADAH_REACTOR_SOLID_BACK_ACTIVE, + NAQUADAH_REACTOR_SOLID_BACK_ACTIVE_GLOW, NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE, + NAQUADAH_REACTOR_SOLID_FRONT_ACTIVE_GLOW, NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE, + NAQUADAH_REACTOR_SOLID_SIDE_ACTIVE_GLOW, NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE, - + NAQUADAH_REACTOR_SOLID_BOTTOM_ACTIVE_GLOW, NAQUADAH_REACTOR_SOLID_TOP_ACTIVE, + NAQUADAH_REACTOR_SOLID_TOP_ACTIVE_GLOW, + NAQUADAH_REACTOR_FLUID_BACK, NAQUADAH_REACTOR_FLUID_FRONT, NAQUADAH_REACTOR_FLUID_SIDE, @@ -337,10 +342,15 @@ public class Textures { NAQUADAH_REACTOR_FLUID_TOP, NAQUADAH_REACTOR_FLUID_BACK_ACTIVE, + NAQUADAH_REACTOR_FLUID_BACK_ACTIVE_GLOW, NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE, + NAQUADAH_REACTOR_FLUID_FRONT_ACTIVE_GLOW, NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE, + NAQUADAH_REACTOR_FLUID_SIDE_ACTIVE_GLOW, NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE, + NAQUADAH_REACTOR_FLUID_BOTTOM_ACTIVE_GLOW, NAQUADAH_REACTOR_FLUID_TOP_ACTIVE, + NAQUADAH_REACTOR_FLUID_TOP_ACTIVE_GLOW, DIESEL_GENERATOR_BACK, DIESEL_GENERATOR_FRONT, -- cgit From f87ba8b7089e7dc1325b883cf100f6f353725282 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 15:33:02 +0200 Subject: feat(render): activity detector covers glow --- src/main/java/gregtech/api/enums/Textures.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 943993083b..5d9be52626 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -419,6 +419,7 @@ public class Textures { OVERLAY_MUFFLER, OVERLAY_CONTROLLER, OVERLAY_ACTIVITYDETECTOR, + OVERLAY_ACTIVITYDETECTOR_GLOW, OVERLAY_ENERGYDETECTOR, OVERLAY_FLUIDDETECTOR, -- cgit From 8d25f61771836dfe0f373916fe682571910e149b Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 16:00:09 +0200 Subject: feat(render): auto maintenance hatch glow --- src/main/java/gregtech/api/enums/Textures.java | 2 ++ .../GT_MetaTileEntity_Hatch_Maintenance.java | 41 ++++++++++++++++------ 2 files changed, 32 insertions(+), 11 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 5d9be52626..2c661c2488 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -90,7 +90,9 @@ public class Textures { OVERLAY_ENERGY_IN_POWER, OVERLAY_ENERGY_OUT_POWER, OVERLAY_AUTOMAINTENANCE, + OVERLAY_AUTOMAINTENANCE_GLOW, OVERLAY_AUTOMAINTENANCE_IDLE, + OVERLAY_AUTOMAINTENANCE_IDLE_GLOW, OVERLAY_TELEPORTER_SIDES, // diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java index 2742e99816..51db14c84e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_Hatch_Maintenance.java @@ -13,6 +13,7 @@ import gregtech.api.gui.GT_GUIContainer_MaintenanceHatch; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; +import gregtech.api.objects.GT_RenderedGlowTexture; import gregtech.api.objects.GT_RenderedTexture; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_OreDictUnificator; @@ -24,6 +25,13 @@ import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_GLOW; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_IDLE; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_IDLE_GLOW; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_DUCTTAPE; +import static gregtech.api.enums.Textures.BlockIcons.OVERLAY_MAINTENANCE; + public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch { public boolean mWrench = false, mScrewdriver = false, mSoftHammer = false, mHardHammer = false, mSolderingTool = false, mCrowbar = false, mAuto; @@ -66,14 +74,25 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch @Override public ITexture[] getTexturesActive(ITexture aBaseTexture) { - if(mAuto)return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE_IDLE)}; - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE)}; + if (mAuto) return new ITexture[]{ + aBaseTexture, + new GT_RenderedTexture(OVERLAY_AUTOMAINTENANCE_IDLE), + new GT_RenderedGlowTexture(OVERLAY_AUTOMAINTENANCE_IDLE_GLOW)}; + return new ITexture[]{ + aBaseTexture, + new GT_RenderedTexture(OVERLAY_MAINTENANCE)}; } @Override public ITexture[] getTexturesInactive(ITexture aBaseTexture) { - if(mAuto)return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_AUTOMAINTENANCE)}; - return new ITexture[]{aBaseTexture, new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_MAINTENANCE), new GT_RenderedTexture(Textures.BlockIcons.OVERLAY_DUCTTAPE)}; + if (mAuto) return new ITexture[]{ + aBaseTexture, + new GT_RenderedTexture(OVERLAY_AUTOMAINTENANCE), + new GT_RenderedGlowTexture(OVERLAY_AUTOMAINTENANCE_GLOW)}; + return new ITexture[]{ + aBaseTexture, + new GT_RenderedTexture(OVERLAY_MAINTENANCE), + new GT_RenderedTexture(OVERLAY_DUCTTAPE)}; } @Override @@ -146,7 +165,7 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } public boolean isRecipeInputEqual(boolean aDecreaseStacksizeBySuccess) { - ItemStack[] mInputs=new ItemStack[]{ItemList.Duct_Tape.get(4, new Object[]{}), + ItemStack[] mInputs= {ItemList.Duct_Tape.get(4), GT_OreDictUnificator.get(OrePrefixes.cell, Materials.Lubricant, 2), GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, 4), GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2)}; @@ -188,12 +207,12 @@ public class GT_MetaTileEntity_Hatch_Maintenance extends GT_MetaTileEntity_Hatch } } } - this.mCrowbar = true; - this.mHardHammer = true; - this.mScrewdriver = true; - this.mSoftHammer = true; - this.mSolderingTool = true; - this.mWrench = true; + mCrowbar = true; + mHardHammer = true; + mScrewdriver = true; + mSoftHammer = true; + mSolderingTool = true; + mWrench = true; updateSlots(); } return true; -- cgit From b54fae0d30686583fa48d386411eb93b698dac55 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 20:01:18 +0200 Subject: feat(render): vaccum freezer glow --- src/main/java/gregtech/api/enums/Textures.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 2c661c2488..7b466c834b 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -458,7 +458,9 @@ public class Textures { OVERLAY_FRONT_LARGE_BOILER, OVERLAY_FRONT_LARGE_BOILER_ACTIVE, OVERLAY_FRONT_VACUUM_FREEZER, + OVERLAY_FRONT_VACUUM_FREEZER_GLOW, OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE, + OVERLAY_FRONT_VACUUM_FREEZER_ACTIVE_GLOW, OVERLAY_FRONT_MULTI_SMELTER, OVERLAY_FRONT_MULTI_SMELTER_ACTIVE, -- cgit From a2c8391e8b1258d75fa0e1ab44b10ab460e192d7 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 20:57:13 +0200 Subject: feat(render): active steam furnaces glow --- src/main/java/gregtech/api/enums/Textures.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 7b466c834b..7e9cb2435e 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -550,6 +550,7 @@ public class Textures { OVERLAY_FRONT_MASSFAB_ACTIVE, OVERLAY_FRONT_STEAM_HAMMER_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, + OVERLAY_FRONT_STEAM_FURNACE_ACTIVE_GLOW, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, -- cgit From ec599a012e92265954100bd809782c9080134394 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 21:25:44 +0200 Subject: feat(render): active steam alloy smelters glow --- src/main/java/gregtech/api/enums/Textures.java | 1 + 1 file changed, 1 insertion(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 7e9cb2435e..9776bf6989 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -552,6 +552,7 @@ public class Textures { OVERLAY_FRONT_STEAM_FURNACE_ACTIVE, OVERLAY_FRONT_STEAM_FURNACE_ACTIVE_GLOW, OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE, + OVERLAY_FRONT_STEAM_ALLOY_SMELTER_ACTIVE_GLOW, OVERLAY_FRONT_STEAM_MACERATOR_ACTIVE, OVERLAY_FRONT_STEAM_COMPRESSOR_ACTIVE, -- cgit From 7138bc372ae89d66755f99df11ebf145cea5d33b Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 5 May 2021 22:42:51 +0200 Subject: feat(render): scanner glow --- src/main/java/gregtech/api/enums/Textures.java | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/enums/Textures.java b/src/main/java/gregtech/api/enums/Textures.java index 9776bf6989..b0d02c60b2 100644 --- a/src/main/java/gregtech/api/enums/Textures.java +++ b/src/main/java/gregtech/api/enums/Textures.java @@ -499,6 +499,7 @@ public class Textures { OVERLAY_FRONT_ROCK_BREAKER, OVERLAY_FRONT_SCANNER, + OVERLAY_FRONT_SCANNER_GLOW, OVERLAY_BOTTOM_POTIONBREWER, OVERLAY_BOTTOM_REPLICATOR, OVERLAY_BOTTOM_MASSFAB, @@ -562,6 +563,7 @@ public class Textures { OVERLAY_FRONT_ROCK_BREAKER_ACTIVE, OVERLAY_FRONT_SCANNER_ACTIVE, + OVERLAY_FRONT_SCANNER_ACTIVE_GLOW, OVERLAY_BOTTOM_POTIONBREWER_ACTIVE, OVERLAY_BOTTOM_REPLICATOR_ACTIVE, OVERLAY_BOTTOM_MASSFAB_ACTIVE, -- cgit From 7c1425f9ce38a6eb9e1063a37e8abc374dc53a63 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Thu, 6 May 2021 01:28:41 +0200 Subject: fix(render): flickering off-world rendered multitexture with glow Isolated each Quad drawn ITexture layer rendering in own Tessellation context when rendering item blocks off world (inventory, in-hand, dropped item). --- .../java/gregtech/api/interfaces/ITexture.java | 25 ++++++++++++++++++++++ .../api/objects/GT_CopiedBlockTexture.java | 12 +++++++++++ .../api/objects/GT_RenderedGlowTexture.java | 12 +++++++++++ .../gregtech/api/objects/GT_RenderedTexture.java | 12 +++++++++++ .../api/objects/GT_StdRenderedTexture.java | 2 ++ 5 files changed, 63 insertions(+) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java index 4321cc523c..61244a10ae 100644 --- a/src/main/java/gregtech/api/interfaces/ITexture.java +++ b/src/main/java/gregtech/api/interfaces/ITexture.java @@ -2,6 +2,7 @@ package gregtech.api.interfaces; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; public interface ITexture { void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); @@ -17,4 +18,28 @@ public interface ITexture { void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); boolean isValidTexture(); + + /** + * Will initialize the {@link Tessellator} if rendering off-world (Inventory) + * @param aRenderer The {@link RenderBlocks} Renderer + * @param aNormalX The X Normal for current Quad Face + * @param aNormalY The Y Normal for current Quad Face + * @param aNormalZ The Z Normal for current Quad Face + */ + default void startDrawingQuads(RenderBlocks aRenderer, float aNormalX, float aNormalY, float aNormalZ) { + if (aRenderer.useInventoryTint) { + Tessellator.instance.startDrawingQuads(); + Tessellator.instance.setNormal(aNormalX, aNormalY, aNormalZ); + } + } + + /** + * Will run the {@link Tessellator} to draw Quads if rendering off-world (Inventory) + * @param aRenderer The {@link RenderBlocks} Renderer + */ + default void draw(RenderBlocks aRenderer) { + if (aRenderer.useInventoryTint) { + Tessellator.instance.draw(); + } + } } diff --git a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java index 184bd67556..81cd497166 100644 --- a/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java +++ b/src/main/java/gregtech/api/objects/GT_CopiedBlockTexture.java @@ -47,57 +47,69 @@ public class GT_CopiedBlockTexture implements ITexture { public void renderXPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { IIcon aIcon = getIcon(ForgeDirection.EAST.ordinal()); aRenderer.field_152631_f = true; + startDrawingQuads(aRenderer, 1.0f, 0.0f, 0.0f); new LightingHelper(aRenderer) .setupLightingXPos(aBlock, aX, aY, aZ) .setupColor(ForgeDirection.EAST.ordinal(), 0xffffff); aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, aIcon); + draw(aRenderer); aRenderer.field_152631_f = false; } @Override public void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + startDrawingQuads(aRenderer, -1.0f, 0.0f, 0.0f); IIcon aIcon = getIcon(ForgeDirection.WEST.ordinal()); new LightingHelper(aRenderer) .setupLightingXNeg(aBlock, aX, aY, aZ) .setupColor(ForgeDirection.WEST.ordinal(), 0xffffff); aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, aIcon); + draw(aRenderer); } @Override public void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + startDrawingQuads(aRenderer, 0.0f, 1.0f, 0.0f); IIcon aIcon = getIcon(ForgeDirection.UP.ordinal()); new LightingHelper(aRenderer) .setupLightingYPos(aBlock, aX, aY, aZ) .setupColor(ForgeDirection.UP.ordinal(), 0xffffff); aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, aIcon); + draw(aRenderer); } @Override public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + startDrawingQuads(aRenderer, 0.0f, -1.0f, 0.0f); IIcon aIcon = getIcon(ForgeDirection.DOWN.ordinal()); new LightingHelper(aRenderer) .setupLightingYNeg(aBlock, aX, aY, aZ) .setupColor(ForgeDirection.DOWN.ordinal(), 0xffffff); aRenderer.renderFaceYNeg(aBlock, aX, aY, aZ, aIcon); + draw(aRenderer); } @Override public void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + startDrawingQuads(aRenderer, 0.0f, 0.0f, 1.0f); IIcon aIcon = getIcon(ForgeDirection.SOUTH.ordinal()); new LightingHelper(aRenderer) .setupLightingZPos(aBlock, aX, aY, aZ) .setupColor(ForgeDirection.SOUTH.ordinal(), 0xffffff); aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, aIcon); + draw(aRenderer); } @Override public void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { + startDrawingQuads(aRenderer, 0.0f, 0.0f, -1.0f); IIcon aIcon = getIcon(ForgeDirection.NORTH.ordinal()); aRenderer.field_152631_f = true; new LightingHelper(aRenderer) .setupLightingZNeg(aBlock, aX, aY, aZ) .setupColor(ForgeDirection.NORTH.ordinal(), 0xffffff); aRenderer.renderFaceZNeg(aBlock, aX, aY, aZ, aIcon); + draw(aRenderer); aRenderer.field_152631_f = false; } diff --git a/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java b/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java index 7bafd9f627..c140e93bc6 100644 --- a/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java +++ b/src/main/java/gregtech/api/objects/GT_RenderedGlowTexture.java @@ -50,6 +50,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain aRenderer.field_152631_f = true; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; + startDrawingQuads(aRenderer, 1.0f, 0.0f, 0.0f); Tessellator.instance.setBrightness(MAX_BRIGHTNESS); Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); @@ -57,6 +58,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain Tessellator.instance.setColorOpaque(255, 255, 255); aRenderer.renderFaceXPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); } + draw(aRenderer); aRenderer.field_152631_f = false; aRenderer.enableAO = enableAO; } @@ -66,6 +68,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; + startDrawingQuads(aRenderer, -1.0f, 0.0f, 0.0f); Tessellator.instance.setBrightness(MAX_BRIGHTNESS); Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getIcon()); @@ -73,6 +76,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain Tessellator.instance.setColorOpaque(255, 255, 255); aRenderer.renderFaceXNeg(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); } + draw(aRenderer); aRenderer.enableAO = enableAO; } @@ -81,6 +85,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; + startDrawingQuads(aRenderer, 0.0f, 1.0f, 0.0f); Tessellator.instance.setBrightness(MAX_BRIGHTNESS); Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); @@ -88,6 +93,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain Tessellator.instance.setColorOpaque(255, 255, 255); aRenderer.renderFaceYPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); } + draw(aRenderer); aRenderer.enableAO = enableAO; } @@ -95,6 +101,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain public void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ) { if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; + startDrawingQuads(aRenderer, 0.0f, -1.0f, 0.0f); final Tessellator tessellator = Tessellator.instance; IIcon aIcon = mIconContainer.getIcon(); @@ -155,6 +162,7 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain tessellator.addVertexWithUV(maxX, minY, minZ, minU, minV); tessellator.addVertexWithUV(maxX, minY, maxZ, minU, maxV); } + draw(aRenderer); aRenderer.enableAO = enableAO; } @@ -163,12 +171,14 @@ public class GT_RenderedGlowTexture implements ITexture, IColorModulationContain if (!GT_Mod.gregtechproxy.mRenderGlowTextures) return; final boolean enableAO = aRenderer.enableAO; aRenderer.enableAO = false; + startDrawingQuads(aRenderer, 0.0f, 0.0f, 1.0f); Tessellator.instance.setBrightness(MAX_BRIGHTNESS); Tessellator.instance.setColorOpaque(mRGBa[0], mRGBa[1], mRGBa[2]); aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getIcon()); if (mIconContainer.getOverlayIcon() != null) { aRenderer.renderFaceZPos(aBlock, aX, aY, aZ, mIconContainer.getOverlayIcon()); } + draw(aRenderer); aRenderer.enableAO = enable