diff options
Diffstat (limited to 'src/main/java/gregtech/api/interfaces/ITexture.java')
-rw-r--r-- | src/main/java/gregtech/api/interfaces/ITexture.java | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/main/java/gregtech/api/interfaces/ITexture.java b/src/main/java/gregtech/api/interfaces/ITexture.java new file mode 100644 index 0000000000..e97fa4539a --- /dev/null +++ b/src/main/java/gregtech/api/interfaces/ITexture.java @@ -0,0 +1,55 @@ +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); + + void renderXNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + void renderYPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + void renderYNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + void renderZPos(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + void renderZNeg(RenderBlocks aRenderer, Block aBlock, int aX, int aY, int aZ); + + boolean isValidTexture(); + + /** + * @return {@code true} if this texture is from the old package + */ + default boolean isOldTexture() { + return true; + } + + /** + * 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 && !isOldTexture()) { + 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 && !isOldTexture()) { + Tessellator.instance.draw(); + } + } +} |