From cf4206d981762fbcd00ab62f89034eb351559356 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 2 Jun 2020 01:49:21 +0200 Subject: Refactored into sided proxies --- src/main/java/client/ClientProxy.java | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/client/ClientProxy.java (limited to 'src/main/java/client') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java new file mode 100644 index 0000000000..e50639b878 --- /dev/null +++ b/src/main/java/client/ClientProxy.java @@ -0,0 +1,29 @@ +package client; + +import client.renderer.TESR_SECapacitor; +import client.renderer.TESR_SETether; +import common.CommonProxy; +import common.tileentities.TE_SpaceElevatorCapacitor; +import common.tileentities.TE_SpaceElevatorTether; +import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; + +public class ClientProxy extends CommonProxy { + + @Override + public void preInit(final FMLPreInitializationEvent e) { + super.preInit(e); + // Register TESR + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + } + + @Override + public void init(final FMLInitializationEvent e) { + super.init(e); + // Register Simple Block Renderers + //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + } + +} -- cgit From c26c2895e7188c0d4cdeae0af104075efcc404f0 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 7 Jun 2020 17:35:50 +0200 Subject: implemented correct item rendering for new multi hatches --- src/main/java/client/ClientProxy.java | 3 + src/main/java/client/renderer/HatchRenderer.java | 77 ++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 src/main/java/client/renderer/HatchRenderer.java (limited to 'src/main/java/client') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index e50639b878..c863198976 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,11 +1,13 @@ package client; +import client.renderer.HatchRenderer; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; import common.tileentities.TE_SpaceElevatorCapacitor; import common.tileentities.TE_SpaceElevatorTether; import cpw.mods.fml.client.registry.ClientRegistry; +import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; @@ -24,6 +26,7 @@ public class ClientProxy extends CommonProxy { super.init(e); // Register Simple Block Renderers //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); + RenderingRegistry.registerBlockHandler(HatchRenderer.getInstance()); } } diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java new file mode 100644 index 0000000000..0a764b3118 --- /dev/null +++ b/src/main/java/client/renderer/HatchRenderer.java @@ -0,0 +1,77 @@ +package client.renderer; + +import common.tileentities.TE_ItemProxyCable; +import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; +import cpw.mods.fml.client.registry.RenderingRegistry; +import net.minecraft.block.Block; +import net.minecraft.client.renderer.RenderBlocks; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.IBlockAccess; +import net.minecraftforge.common.util.ForgeDirection; +import org.lwjgl.opengl.GL11; + +public class HatchRenderer implements ISimpleBlockRenderingHandler { + + public static final int RID = RenderingRegistry.getNextAvailableRenderId(); + private static final HatchRenderer INSTANCE = new HatchRenderer(); + + private HatchRenderer() { + + } + + public static HatchRenderer getInstance() { + return INSTANCE; + } + + @Override + public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + final Tessellator t = Tessellator.instance; + GL11.glTranslatef(-0.5F, -0.5F, -0.5F); + t.startDrawingQuads(); + t.setNormal(0.0F, -1.0F, 0.0F); + renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(1.0F, 0.0F, 0.0F); + renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(-1.0F, 0.0F, 0.0F); + renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 0.0F, 1.0F); + renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta)); + t.draw(); + t.startDrawingQuads(); + t.setNormal(0.0F, 0.0F, -1.0F); + renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(6, meta)); + t.draw(); + GL11.glTranslatef(0.5F, 0.5F, 0.5F); + } + + @Override + public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, + RenderBlocks renderer) { + + + return false; + } + + @Override + public boolean shouldRender3DInInventory(int modelId) { + return true; + } + + @Override + public int getRenderId() { + return HatchRenderer.RID; + } +} -- cgit From 8a002687160784898ec9c67a378ec2055f38327e Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 7 Jun 2020 21:07:14 +0200 Subject: just pushing to repo --- src/main/java/client/renderer/HatchRenderer.java | 31 +++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) (limited to 'src/main/java/client') diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java index 0a764b3118..b2670af76b 100644 --- a/src/main/java/client/renderer/HatchRenderer.java +++ b/src/main/java/client/renderer/HatchRenderer.java @@ -1,14 +1,11 @@ package client.renderer; -import common.tileentities.TE_ItemProxyCable; import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.client.renderer.Tessellator; -import net.minecraft.tileentity.TileEntity; import net.minecraft.world.IBlockAccess; -import net.minecraftforge.common.util.ForgeDirection; import org.lwjgl.opengl.GL11; public class HatchRenderer implements ISimpleBlockRenderingHandler { @@ -60,7 +57,35 @@ public class HatchRenderer implements ISimpleBlockRenderingHandler { @Override public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, RenderBlocks renderer) { + final Tessellator t = Tessellator.instance; + // Set colour + int mb = block.getMixedBrightnessForBlock(world, x, y, z); + t.setBrightness(mb); + + block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + renderer.setRenderBoundsFromBlock(block); + + if (block.shouldSideBeRendered(world, x, y - 1, z, 6)) { + renderer.renderFaceYNeg(block, x, y, z, block.getIcon(world, x, y, z, 0)); + } + if (block.shouldSideBeRendered(world, x, y + 1, z, 6)) { + t.setNormal(0.0F, 1.0F, 0.0F); + renderer.renderFaceYPos(block, x, y, z, block.getIcon(world, x, y, z, 1)); + } + + if (block.shouldSideBeRendered(world, x, y, z - 1, 6)) { + renderer.renderFaceZNeg(block, x, y, z, block.getIcon(world, x, y, z, 2)); + } + if (block.shouldSideBeRendered(world, x, y, z + 1, 6)) { + renderer.renderFaceZPos(block, x, y, z, block.getIcon(world, x, y, z, 3)); + } + if (block.shouldSideBeRendered(world, x - 1, y, z, 6)) { + renderer.renderFaceXNeg(block, x, y, z, block.getIcon(world, x, y, z, 4)); + } + if (block.shouldSideBeRendered(world, x + 1, y, z, 6)) { + renderer.renderFaceXPos(block, x, y, z, block.getIcon(world, x, y, z, 5)); + } return false; } -- cgit From 76b15123238ca2f01c1bf46db8a4ea20dc7ced2b Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 8 Jun 2020 02:50:03 +0200 Subject: Removed everything related to Item Server; Deprecated current TFFT Multi Hatch in favor of GTMTE version --- src/main/java/client/ClientProxy.java | 2 - src/main/java/client/renderer/HatchRenderer.java | 102 ----------------------- 2 files changed, 104 deletions(-) delete mode 100644 src/main/java/client/renderer/HatchRenderer.java (limited to 'src/main/java/client') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index c863198976..f608861c0d 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,6 +1,5 @@ package client; -import client.renderer.HatchRenderer; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; @@ -26,7 +25,6 @@ public class ClientProxy extends CommonProxy { super.init(e); // Register Simple Block Renderers //RenderingRegistry.registerBlockHandler(ConduitRenderer.getInstance()); - RenderingRegistry.registerBlockHandler(HatchRenderer.getInstance()); } } diff --git a/src/main/java/client/renderer/HatchRenderer.java b/src/main/java/client/renderer/HatchRenderer.java deleted file mode 100644 index b2670af76b..0000000000 --- a/src/main/java/client/renderer/HatchRenderer.java +++ /dev/null @@ -1,102 +0,0 @@ -package client.renderer; - -import cpw.mods.fml.client.registry.ISimpleBlockRenderingHandler; -import cpw.mods.fml.client.registry.RenderingRegistry; -import net.minecraft.block.Block; -import net.minecraft.client.renderer.RenderBlocks; -import net.minecraft.client.renderer.Tessellator; -import net.minecraft.world.IBlockAccess; -import org.lwjgl.opengl.GL11; - -public class HatchRenderer implements ISimpleBlockRenderingHandler { - - public static final int RID = RenderingRegistry.getNextAvailableRenderId(); - private static final HatchRenderer INSTANCE = new HatchRenderer(); - - private HatchRenderer() { - - } - - public static HatchRenderer getInstance() { - return INSTANCE; - } - - @Override - public void renderInventoryBlock(Block block, int meta, int modelId, RenderBlocks renderer) { - block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - renderer.setRenderBoundsFromBlock(block); - final Tessellator t = Tessellator.instance; - GL11.glTranslatef(-0.5F, -0.5F, -0.5F); - t.startDrawingQuads(); - t.setNormal(0.0F, -1.0F, 0.0F); - renderer.renderFaceYNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(0, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(1, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(1.0F, 0.0F, 0.0F); - renderer.renderFaceZNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(2, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(-1.0F, 0.0F, 0.0F); - renderer.renderFaceZPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(3, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(0.0F, 0.0F, 1.0F); - renderer.renderFaceXNeg(block, 0.0D, 0.0D, 0.0D, block.getIcon(5, meta)); - t.draw(); - t.startDrawingQuads(); - t.setNormal(0.0F, 0.0F, -1.0F); - renderer.renderFaceXPos(block, 0.0D, 0.0D, 0.0D, block.getIcon(6, meta)); - t.draw(); - GL11.glTranslatef(0.5F, 0.5F, 0.5F); - } - - @Override - public boolean renderWorldBlock(IBlockAccess world, int x, int y, int z, Block block, int modelId, - RenderBlocks renderer) { - final Tessellator t = Tessellator.instance; - // Set colour - int mb = block.getMixedBrightnessForBlock(world, x, y, z); - t.setBrightness(mb); - - block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); - renderer.setRenderBoundsFromBlock(block); - - if (block.shouldSideBeRendered(world, x, y - 1, z, 6)) { - renderer.renderFaceYNeg(block, x, y, z, block.getIcon(world, x, y, z, 0)); - } - if (block.shouldSideBeRendered(world, x, y + 1, z, 6)) { - t.setNormal(0.0F, 1.0F, 0.0F); - renderer.renderFaceYPos(block, x, y, z, block.getIcon(world, x, y, z, 1)); - } - - if (block.shouldSideBeRendered(world, x, y, z - 1, 6)) { - renderer.renderFaceZNeg(block, x, y, z, block.getIcon(world, x, y, z, 2)); - } - if (block.shouldSideBeRendered(world, x, y, z + 1, 6)) { - renderer.renderFaceZPos(block, x, y, z, block.getIcon(world, x, y, z, 3)); - } - - if (block.shouldSideBeRendered(world, x - 1, y, z, 6)) { - renderer.renderFaceXNeg(block, x, y, z, block.getIcon(world, x, y, z, 4)); - } - if (block.shouldSideBeRendered(world, x + 1, y, z, 6)) { - renderer.renderFaceXPos(block, x, y, z, block.getIcon(world, x, y, z, 5)); - } - - return false; - } - - @Override - public boolean shouldRender3DInInventory(int modelId) { - return true; - } - - @Override - public int getRenderId() { - return HatchRenderer.RID; - } -} -- cgit From 258d5b9be22d3aad2c27a2b57d22b907b3284248 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 11 Jun 2020 20:29:50 +0200 Subject: Implemented new class for GT rendered textures! --- src/main/java/client/ClientProxy.java | 2 ++ src/main/java/client/GTTexture.java | 63 +++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/main/java/client/GTTexture.java (limited to 'src/main/java/client') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index f608861c0d..b4eb51f369 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -18,6 +18,8 @@ public class ClientProxy extends CommonProxy { // Register TESR ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + // Register GTTextures + GTTexture.init(); } @Override diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java new file mode 100644 index 0000000000..98795e6585 --- /dev/null +++ b/src/main/java/client/GTTexture.java @@ -0,0 +1,63 @@ +package client; + +import gregtech.api.GregTech_API; +import gregtech.api.interfaces.IIconContainer; +import kekztech.KekzCore; +import net.minecraft.client.renderer.texture.TextureMap; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; + +import java.util.HashMap; + +public class GTTexture implements IIconContainer { + + public static final String MULTI_HATCH_OFF = "multi_hatch_off"; + public static final String MULTI_HATCH_ON = "multi_hatch_on"; + + private static final HashMap icons = new HashMap<>(); + + private final IIcon icon; + private final IIcon overlayIcon; + + private GTTexture(String iconName) { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); + overlayIcon = null; + } + + private GTTexture(String iconName, String overlayIconName) { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); + overlayIcon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + overlayIconName); + } + + public static void registerTexture(String iconName) { + icons.put(iconName, new GTTexture(iconName)); + } + + public static void registerTexture(String iconName, String overlayIconName) { + icons.put(iconName, new GTTexture(iconName, overlayIconName)); + } + + public static void init() { + registerTexture(MULTI_HATCH_ON); + registerTexture(MULTI_HATCH_OFF); + } + + public static IIconContainer getIconContainer(String iconName) { + return icons.get(iconName); + } + + @Override + public IIcon getIcon() { + return icon; + } + + @Override + public IIcon getOverlayIcon() { + return overlayIcon; + } + + @Override + public ResourceLocation getTextureFile() { + return TextureMap.locationBlocksTexture; + } +} -- cgit From 9692e77efa9d74014738753d1c6eb0f259733476 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Thu, 18 Jun 2020 16:59:39 +0200 Subject: changed multi hatch to use some default texture from GT so I can test the actual functionality --- src/main/java/client/ClientProxy.java | 2 -- src/main/java/client/GTTexture.java | 49 +++++++++++++++++++++++------------ 2 files changed, 33 insertions(+), 18 deletions(-) (limited to 'src/main/java/client') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index b4eb51f369..f608861c0d 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -18,8 +18,6 @@ public class ClientProxy extends CommonProxy { // Register TESR ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); - // Register GTTextures - GTTexture.init(); } @Override diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java index 98795e6585..76539adaab 100644 --- a/src/main/java/client/GTTexture.java +++ b/src/main/java/client/GTTexture.java @@ -9,37 +9,44 @@ import net.minecraft.util.ResourceLocation; import java.util.HashMap; -public class GTTexture implements IIconContainer { +public class GTTexture implements IIconContainer, Runnable { + public static final String TFFT_CASING = "TFFTCasing"; public static final String MULTI_HATCH_OFF = "multi_hatch_off"; public static final String MULTI_HATCH_ON = "multi_hatch_on"; private static final HashMap icons = new HashMap<>(); + private static final String REL_PATH = "blocks/"; - private final IIcon icon; - private final IIcon overlayIcon; + static { + registerTexture(TFFT_CASING); + registerTexture(MULTI_HATCH_OFF); + registerTexture(MULTI_HATCH_ON); + } + + private IIcon icon; + private IIcon iconOverlay; + private final String iconName; + private final String iconOverlayName; private GTTexture(String iconName) { - icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); - overlayIcon = null; + this.iconName = iconName; + this.iconOverlayName = ""; + GregTech_API.sGTBlockIconload.add(this); } - private GTTexture(String iconName, String overlayIconName) { - icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); - overlayIcon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + overlayIconName); + private GTTexture(String iconName, String iconOverlayName) { + this.iconName = iconName; + this.iconOverlayName = iconOverlayName; + GregTech_API.sGTBlockIconload.add(this); } public static void registerTexture(String iconName) { icons.put(iconName, new GTTexture(iconName)); } - public static void registerTexture(String iconName, String overlayIconName) { - icons.put(iconName, new GTTexture(iconName, overlayIconName)); - } - - public static void init() { - registerTexture(MULTI_HATCH_ON); - registerTexture(MULTI_HATCH_OFF); + public static void registerTexture(String iconName, String iconOverlayName) { + icons.put(iconName, new GTTexture(iconName, iconOverlayName)); } public static IIconContainer getIconContainer(String iconName) { @@ -53,11 +60,21 @@ public class GTTexture implements IIconContainer { @Override public IIcon getOverlayIcon() { - return overlayIcon; + return iconOverlay; } @Override public ResourceLocation getTextureFile() { return TextureMap.locationBlocksTexture; } + + @Override + public void run() { + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconName); + if(!iconOverlayName.equals("")) { + iconOverlay = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconOverlayName); + } else { + KekzCore.LOGGER.info("No overlay texture specified for icon: " + iconName + "; This is fine."); + } + } } -- cgit From 8a94750eec21b70a04eca7589c2626341a5eb83f Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Mon, 22 Jun 2020 21:25:02 +0200 Subject: tried to fix GTTexture, removed more deprecated code --- src/main/java/client/GTTexture.java | 46 +++++-------------------------------- 1 file changed, 6 insertions(+), 40 deletions(-) (limited to 'src/main/java/client') diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java index 76539adaab..a449dc257b 100644 --- a/src/main/java/client/GTTexture.java +++ b/src/main/java/client/GTTexture.java @@ -2,6 +2,7 @@ package client; import gregtech.api.GregTech_API; import gregtech.api.interfaces.IIconContainer; +import gregtech.api.objects.GT_CopiedBlockTexture; import kekztech.KekzCore; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.util.IIcon; @@ -11,48 +12,18 @@ import java.util.HashMap; public class GTTexture implements IIconContainer, Runnable { - public static final String TFFT_CASING = "TFFTCasing"; - public static final String MULTI_HATCH_OFF = "multi_hatch_off"; - public static final String MULTI_HATCH_ON = "multi_hatch_on"; - - private static final HashMap icons = new HashMap<>(); - private static final String REL_PATH = "blocks/"; - - static { - registerTexture(TFFT_CASING); - registerTexture(MULTI_HATCH_OFF); - registerTexture(MULTI_HATCH_ON); - } + public static final GTTexture TFFT_CASING = new GTTexture("textures/blocks/TFFTCasing"); + public static final GTTexture MULTI_HATCH_OFF = new GTTexture("textures/blocks/multi_hatch_off"); + public static final GTTexture MULTI_HATCH_ON = new GTTexture("textures/blocks/multi_hatch_on"); private IIcon icon; - private IIcon iconOverlay; private final String iconName; - private final String iconOverlayName; private GTTexture(String iconName) { this.iconName = iconName; - this.iconOverlayName = ""; - GregTech_API.sGTBlockIconload.add(this); - } - - private GTTexture(String iconName, String iconOverlayName) { - this.iconName = iconName; - this.iconOverlayName = iconOverlayName; GregTech_API.sGTBlockIconload.add(this); } - public static void registerTexture(String iconName) { - icons.put(iconName, new GTTexture(iconName)); - } - - public static void registerTexture(String iconName, String iconOverlayName) { - icons.put(iconName, new GTTexture(iconName, iconOverlayName)); - } - - public static IIconContainer getIconContainer(String iconName) { - return icons.get(iconName); - } - @Override public IIcon getIcon() { return icon; @@ -60,7 +31,7 @@ public class GTTexture implements IIconContainer, Runnable { @Override public IIcon getOverlayIcon() { - return iconOverlay; + return null; } @Override @@ -70,11 +41,6 @@ public class GTTexture implements IIconContainer, Runnable { @Override public void run() { - icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconName); - if(!iconOverlayName.equals("")) { - iconOverlay = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + REL_PATH + iconOverlayName); - } else { - KekzCore.LOGGER.info("No overlay texture specified for icon: " + iconName + "; This is fine."); - } + icon = GregTech_API.sBlockIcons.registerIcon(KekzCore.MODID + ":" + iconName); } } -- cgit From 2178a42eca603aba98ca4e181c2c46597e638597 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 23 Jun 2020 02:17:11 +0200 Subject: Started to imlements BeamTransmitter --- src/main/java/client/ClientProxy.java | 3 + src/main/java/client/GTTexture.java | 6 +- .../java/client/renderer/TESR_BeamTransmitter.java | 65 ++++++++++++++++++++++ 3 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 src/main/java/client/renderer/TESR_BeamTransmitter.java (limited to 'src/main/java/client') diff --git a/src/main/java/client/ClientProxy.java b/src/main/java/client/ClientProxy.java index f608861c0d..5ed713f827 100644 --- a/src/main/java/client/ClientProxy.java +++ b/src/main/java/client/ClientProxy.java @@ -1,8 +1,10 @@ package client; +import client.renderer.TESR_BeamTransmitter; import client.renderer.TESR_SECapacitor; import client.renderer.TESR_SETether; import common.CommonProxy; +import common.tileentities.TE_BeamTransmitter; import common.tileentities.TE_SpaceElevatorCapacitor; import common.tileentities.TE_SpaceElevatorTether; import cpw.mods.fml.client.registry.ClientRegistry; @@ -18,6 +20,7 @@ public class ClientProxy extends CommonProxy { // Register TESR ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorTether.class, new TESR_SETether()); ClientRegistry.bindTileEntitySpecialRenderer(TE_SpaceElevatorCapacitor.class, new TESR_SECapacitor()); + ClientRegistry.bindTileEntitySpecialRenderer(TE_BeamTransmitter.class, new TESR_BeamTransmitter()); } @Override diff --git a/src/main/java/client/GTTexture.java b/src/main/java/client/GTTexture.java index a449dc257b..2ede4976fb 100644 --- a/src/main/java/client/GTTexture.java +++ b/src/main/java/client/GTTexture.java @@ -12,9 +12,9 @@ import java.util.HashMap; public class GTTexture implements IIconContainer, Runnable { - public static final GTTexture TFFT_CASING = new GTTexture("textures/blocks/TFFTCasing"); - public static final GTTexture MULTI_HATCH_OFF = new GTTexture("textures/blocks/multi_hatch_off"); - public static final GTTexture MULTI_HATCH_ON = new GTTexture("textures/blocks/multi_hatch_on"); + public static final GTTexture TFFT_CASING = new GTTexture("blocks/TFFTCasing"); + public static final GTTexture MULTI_HATCH_OFF = new GTTexture("blocks/multi_hatch_off"); + public static final GTTexture MULTI_HATCH_ON = new GTTexture("blocks/multi_hatch_on"); private IIcon icon; private final String iconName; diff --git a/src/main/java/client/renderer/TESR_BeamTransmitter.java b/src/main/java/client/renderer/TESR_BeamTransmitter.java new file mode 100644 index 0000000000..3c48dab264 --- /dev/null +++ b/src/main/java/client/renderer/TESR_BeamTransmitter.java @@ -0,0 +1,65 @@ +package client.renderer; + +import common.tileentities.TE_BeamTransmitter; +import kekztech.KekzCore; +import net.minecraft.client.renderer.OpenGlHelper; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import org.lwjgl.opengl.GL11; + +public class TESR_BeamTransmitter extends TileEntitySpecialRenderer { + + private static final ResourceLocation beamTexture = new ResourceLocation(KekzCore.MODID, "textures/effects/Tether_beam.png"); + + @Override + public void renderTileEntityAt(TileEntity te, double x, double y, double z, float partialTick) { + final TE_BeamTransmitter beamTransmitter = (TE_BeamTransmitter) te; + + GL11.glAlphaFunc(GL11.GL_GREATER, 0.1F); + // Get Tessellator instance + final Tessellator tessellator = Tessellator.instance; + // Bind beam texture and set texture params + super.bindTexture(beamTexture); + GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_S, 10497.0F); + GL11.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_TEXTURE_WRAP_T, 10497.0F); + // Set render flags for inner beam + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_CULL_FACE); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthMask(true); + OpenGlHelper.glBlendFunc(770, 1, 1, 0); + // Prepare Tessellator + tessellator.startDrawingQuads(); + tessellator.setColorRGBA(255, 255, 255, 32); + // Variables stuff II + final float exactTime = (float)beamTransmitter.getWorldObj().getTotalWorldTime() + partialTick; + final float streamTextureOffset = -exactTime * 0.2F - (float) MathHelper.floor_float(-exactTime * 0.1F); + + final double halfBeamWidth = 0.1D; + final double height = beamTransmitter.getDistanceFromTarget(); + final double uv_x1 = 0.0D; + final double uv_x2 = 1.0D; + final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you add a time sensitive number to it + final double uv_y2 = (double)beamTransmitter.getDistanceFromTarget() * (0.5D / (halfBeamWidth * 2)) + uv_y1; + // Construct mesh with texture + tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + 0.5, z + 0.5, uv_x2, uv_y2); + tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + height, z + 0.5, uv_x2, uv_y1); + tessellator.addVertexWithUV(x + 0.5 - halfBeamWidth, y + height, z + 0.5, uv_x1, uv_y1); + tessellator.addVertexWithUV(x + 0.5 - halfBeamWidth, y + 0.5, z + 0.5, uv_x1, uv_y2); + + tessellator.addVertexWithUV(x + 0.5, y + 0.5, z + 0.5 + halfBeamWidth, uv_x2, uv_y2); + tessellator.addVertexWithUV(x + 0.5, y + height, z + 0.5 + halfBeamWidth, uv_x2, uv_y1); + tessellator.addVertexWithUV(x + 0.5, y + height, z + 0.5 - halfBeamWidth, uv_x1, uv_y1); + tessellator.addVertexWithUV(x + 0.5, y + 0.5, z + 0.5 - halfBeamWidth, uv_x1, uv_y2); + // Draw! + tessellator.draw(); + + // Reset render flags + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_TEXTURE_2D); + GL11.glDepthMask(true); + } +} -- cgit From eba5bb99231d3c194e8116f03beccff39b543f8d Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Tue, 23 Jun 2020 02:20:59 +0200 Subject: mini code clean --- src/main/java/client/renderer/TESR_BeamTransmitter.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/client') diff --git a/src/main/java/client/renderer/TESR_BeamTransmitter.java b/src/main/java/client/renderer/TESR_BeamTransmitter.java index 3c48dab264..81ab52654b 100644 --- a/src/main/java/client/renderer/TESR_BeamTransmitter.java +++ b/src/main/java/client/renderer/TESR_BeamTransmitter.java @@ -42,8 +42,8 @@ public class TESR_BeamTransmitter extends TileEntitySpecialRenderer { final double height = beamTransmitter.getDistanceFromTarget(); final double uv_x1 = 0.0D; final double uv_x2 = 1.0D; - final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you add a time sensitive number to it - final double uv_y2 = (double)beamTransmitter.getDistanceFromTarget() * (0.5D / (halfBeamWidth * 2)) + uv_y1; + final double uv_y1 = -1.0D - streamTextureOffset; // This makes the beam stream upwards if you subtract a time sensitive number from it + final double uv_y2 = height * (0.5D / (halfBeamWidth * 2)) + uv_y1; // Construct mesh with texture tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + 0.5, z + 0.5, uv_x2, uv_y2); tessellator.addVertexWithUV(x + 0.5 + halfBeamWidth, y + height, z + 0.5, uv_x2, uv_y1); -- cgit