Skip to content

Instantly share code, notes, and snippets.

Created December 19, 2012 17:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save anonymous/4338626 to your computer and use it in GitHub Desktop.
Save anonymous/4338626 to your computer and use it in GitHub Desktop.
The renderWarpedTextureOverlay method is being called correctly when inside a 'gas' block, but no overlay is being drawn.
package ljdp.minechem.client;
import java.util.EnumSet;
import org.lwjgl.opengl.GL11;
import ljdp.minechem.common.MinechemBlocks;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.src.FMLRenderAccessLibrary;
import net.minecraftforge.client.MinecraftForgeClient;
import cpw.mods.fml.client.FMLClientHandler;
import cpw.mods.fml.common.ITickHandler;
import cpw.mods.fml.common.TickType;
public class TickHandler implements ITickHandler {
@Override
public void tickStart(EnumSet<TickType> type, Object... tickData) {
}
@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData) {
if(type.contains(TickType.RENDER))
renderOverlays();
}
@Override
public EnumSet<TickType> ticks() {
return EnumSet.of(TickType.RENDER);
}
@Override
public String getLabel() {
return null;
}
private void renderOverlays() {
Minecraft mc = FMLClientHandler.instance().getClient();
if (mc.renderViewEntity != null && mc.gameSettings.thirdPersonView == 0 && !mc.renderViewEntity.isPlayerSleeping()
&& mc.thePlayer.isInsideOfMaterial(MinechemBlocks.materialGas))
{
GL11.glDisable(GL11.GL_ALPHA_TEST);
int overlayTexture = mc.renderEngine.getTexture("/misc/water.png");
GL11.glBindTexture(GL11.GL_TEXTURE_2D, overlayTexture);
renderWarpedTextureOverlay(0, mc);
GL11.glEnable(GL11.GL_ALPHA_TEST);
}
}
/**
* Renders a texture that warps around based on the direction the player is looking. Texture needs to be bound
* before being called. Used for the water overlay. Args: parialTickTime
*/
private void renderWarpedTextureOverlay(float par1, Minecraft mc)
{
Tessellator var2 = Tessellator.instance;
float var3 = mc.thePlayer.getBrightness(par1);
GL11.glColor4f(var3, var3, var3, 0.5F);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
GL11.glPushMatrix();
float var4 = 4.0F;
float var5 = -1.0F;
float var6 = 1.0F;
float var7 = -1.0F;
float var8 = 1.0F;
float var9 = -0.5F;
float var10 = -mc.thePlayer.rotationYaw / 64.0F;
float var11 = mc.thePlayer.rotationPitch / 64.0F;
var2.startDrawingQuads();
var2.addVertexWithUV((double)var5, (double)var7, (double)var9, (double)(var4 + var10), (double)(var4 + var11));
var2.addVertexWithUV((double)var6, (double)var7, (double)var9, (double)(0.0F + var10), (double)(var4 + var11));
var2.addVertexWithUV((double)var6, (double)var8, (double)var9, (double)(0.0F + var10), (double)(0.0F + var11));
var2.addVertexWithUV((double)var5, (double)var8, (double)var9, (double)(var4 + var10), (double)(0.0F + var11));
var2.draw();
GL11.glPopMatrix();
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glDisable(GL11.GL_BLEND);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment