-
-
Save perky/4338631 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 shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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