Lieber Besucher, herzlich willkommen bei: AnnoZone Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hessi James« (24. März 2012, 21:27)
Quellcode |
|
1 |
package net.minecraft.src; import net.minecraft.client.Minecraft; import org.lwjgl.opengl.GL11; public class RenderPlayer extends RenderLiving { /** The model of the Player */ private ModelCow cowModel; public RenderPlayer() { super(new ModelCow(), 0.5F); cowModel = (ModelCow)super.mainModel; setRenderPassModel(cowModel); } /** * Used to render a player's name above their head */ protected void renderName(EntityPlayer par1EntityPlayer, double par2, double par4, double par6) { if (Minecraft.isGuiEnabled() && par1EntityPlayer != renderManager.livingPlayer) { float f = 1.6F; float f1 = 0.01666667F * f; float f2 = par1EntityPlayer.getDistanceToEntity(renderManager.livingPlayer); float f3 = par1EntityPlayer.isSneaking() ? 32F : 64F; if (f2 < f3) { String s = par1EntityPlayer.username; if (!par1EntityPlayer.isSneaking()) { if (par1EntityPlayer.isPlayerSleeping()) { renderLivingLabel(par1EntityPlayer, s, par2, par4 - 1.5D, par6, 64); } else { renderLivingLabel(par1EntityPlayer, s, par2, par4, par6, 64); } } else { FontRenderer fontrenderer = getFontRendererFromRenderManager(); GL11.glPushMatrix(); GL11.glTranslatef((float)par2 + 0.0F, (float)par4 + 2.3F, (float)par6); GL11.glNormal3f(0.0F, 1.0F, 0.0F); GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GL11.glRotatef(renderManager.playerViewX, 1.0F, 0.0F, 0.0F); GL11.glScalef(-f1, -f1, f1); GL11.glDisable(GL11.GL_LIGHTING); GL11.glTranslatef(0.0F, 0.25F / f1, 0.0F); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); Tessellator tessellator = Tessellator.instance; GL11.glDisable(GL11.GL_TEXTURE_2D); tessellator.startDrawingQuads(); int i = fontrenderer.getStringWidth(s) / 2; tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F); tessellator.addVertex(-i - 1, -1D, 0.0D); tessellator.addVertex(-i - 1, 8D, 0.0D); tessellator.addVertex(i + 1, 8D, 0.0D); tessellator.addVertex(i + 1, -1D, 0.0D); tessellator.draw(); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(true); fontrenderer.drawString(s, -fontrenderer.getStringWidth(s) / 2, 0, 0x20ffffff); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_BLEND); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPopMatrix(); } } } } protected void renderPlayerScale(EntityPlayer par1EntityPlayer, float par2) { float f = 0.9375F; GL11.glScalef(f, f, f); } public void drawFirstPersonHand() { cowModel.onGround = 0.0F; cowModel.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); cowModel.leg1.render(0.0625F); } /** * Renders player with sleeping offset if sleeping */ protected void renderPlayerSleep(EntityPlayer par1EntityPlayer, double par2, double par4, double par6) { if (par1EntityPlayer.isEntityAlive() && par1EntityPlayer.isPlayerSleeping()) { super.renderLivingAt(par1EntityPlayer, par2 + (double)par1EntityPlayer.field_22063_x, par4 + (double)par1EntityPlayer.field_22062_y, par6 + (double)par1EntityPlayer.field_22061_z); } else { super.renderLivingAt(par1EntityPlayer, par2, par4, par6); } } /** * Rotates the player if the player is sleeping. This method is called in rotateCorpse. */ protected void rotatePlayer(EntityPlayer par1EntityPlayer, float par2, float par3, float par4) { if (par1EntityPlayer.isEntityAlive() && par1EntityPlayer.isPlayerSleeping()) { GL11.glRotatef(par1EntityPlayer.getBedOrientationInDegrees(), 0.0F, 1.0F, 0.0F); GL11.glRotatef(getDeathMaxRotation(par1EntityPlayer), 0.0F, 0.0F, 1.0F); GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); } else { super.rotateCorpse(par1EntityPlayer, par2, par3, par4); } } /** * Passes the specialRender and renders it */ protected void passSpecialRender(EntityLiving par1EntityLiving, double par2, double par4, double par6) { renderName((EntityPlayer)par1EntityLiving, par2, par4, par6); } /** * Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args: * entityLiving, partialTickTime */ protected void preRenderCallback(EntityLiving par1EntityLiving, float par2) { renderPlayerScale((EntityPlayer)par1EntityLiving, par2); } /** * Render the endermans eyes */ protected int renderEyes(EntityPlayer par1EntityPlayer, int par2, float par3) { if (par2 != 0) { return -1; } else { loadTexture("/mob/enderman_eyes.png"); float f = 1.0F; GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE); GL11.glDisable(GL11.GL_LIGHTING); int i = 61680; int j = i % 0x10000; int k = i / 0x10000; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(GL11.GL_LIGHTING); GL11.glColor4f(1.0F, 1.0F, 1.0F, f); return 1; } } /** * Render the block an enderman is carrying */ protected void renderCarrying(EntityPlayer par1EntityPlayer, float par2) { super.renderEquippedItems(par1EntityPlayer, par2); { GL11.glPushMatrix(); float f = 0.5F; GL11.glTranslatef(0.0F, 0.6875F, -0.75F); f *= 1.0F; GL11.glRotatef(20F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); GL11.glScalef(f, -f, f); int i = par1EntityPlayer.getBrightnessForRender(par2); int j = i % 0x10000; int k = i / 0x10000; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); loadTexture("/terrain.png"); GL11.glPopMatrix(); } } } package net.minecraft.src; import net.minecraft.client.Minecraft; import org.lwjgl.opengl.GL11; public class RenderPlayer extends RenderLiving { /** The model of the Player */ private ModelCow cowModel; public RenderPlayer() { super(new ModelCow(), 0.5F); cowModel = (ModelCow)super.mainModel; setRenderPassModel(cowModel); } /** * Used to render a player's name above their head */ protected void renderName(EntityPlayer par1EntityPlayer, double par2, double par4, double par6) { if (Minecraft.isGuiEnabled() && par1EntityPlayer != renderManager.livingPlayer) { float f = 1.6F; float f1 = 0.01666667F * f; float f2 = par1EntityPlayer.getDistanceToEntity(renderManager.livingPlayer); float f3 = par1EntityPlayer.isSneaking() ? 32F : 64F; if (f2 < f3) { String s = par1EntityPlayer.username; if (!par1EntityPlayer.isSneaking()) { if (par1EntityPlayer.isPlayerSleeping()) { renderLivingLabel(par1EntityPlayer, s, par2, par4 - 1.5D, par6, 64); } else { renderLivingLabel(par1EntityPlayer, s, par2, par4, par6, 64); } } else { FontRenderer fontrenderer = getFontRendererFromRenderManager(); GL11.glPushMatrix(); GL11.glTranslatef((float)par2 + 0.0F, (float)par4 + 2.3F, (float)par6); GL11.glNormal3f(0.0F, 1.0F, 0.0F); GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F); GL11.glRotatef(renderManager.playerViewX, 1.0F, 0.0F, 0.0F); GL11.glScalef(-f1, -f1, f1); GL11.glDisable(GL11.GL_LIGHTING); GL11.glTranslatef(0.0F, 0.25F / f1, 0.0F); GL11.glDepthMask(false); GL11.glEnable(GL11.GL_BLEND); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); Tessellator tessellator = Tessellator.instance; GL11.glDisable(GL11.GL_TEXTURE_2D); tessellator.startDrawingQuads(); int i = fontrenderer.getStringWidth(s) / 2; tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F); tessellator.addVertex(-i - 1, -1D, 0.0D); tessellator.addVertex(-i - 1, 8D, 0.0D); tessellator.addVertex(i + 1, 8D, 0.0D); tessellator.addVertex(i + 1, -1D, 0.0D); tessellator.draw(); GL11.glEnable(GL11.GL_TEXTURE_2D); GL11.glDepthMask(true); fontrenderer.drawString(s, -fontrenderer.getStringWidth(s) / 2, 0, 0x20ffffff); GL11.glEnable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_BLEND); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glPopMatrix(); } } } } protected void renderPlayerScale(EntityPlayer par1EntityPlayer, float par2) { float f = 0.9375F; GL11.glScalef(f, f, f); } public void drawFirstPersonHand() { cowModel.onGround = 0.0F; cowModel.setRotationAngles(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0625F); cowModel.leg1.render(0.0625F); } /** * Renders player with sleeping offset if sleeping */ protected void renderPlayerSleep(EntityPlayer par1EntityPlayer, double par2, double par4, double par6) { if (par1EntityPlayer.isEntityAlive() && par1EntityPlayer.isPlayerSleeping()) { super.renderLivingAt(par1EntityPlayer, par2 + (double)par1EntityPlayer.field_22063_x, par4 + (double)par1EntityPlayer.field_22062_y, par6 + (double)par1EntityPlayer.field_22061_z); } else { super.renderLivingAt(par1EntityPlayer, par2, par4, par6); } } /** * Rotates the player if the player is sleeping. This method is called in rotateCorpse. */ protected void rotatePlayer(EntityPlayer par1EntityPlayer, float par2, float par3, float par4) { if (par1EntityPlayer.isEntityAlive() && par1EntityPlayer.isPlayerSleeping()) { GL11.glRotatef(par1EntityPlayer.getBedOrientationInDegrees(), 0.0F, 1.0F, 0.0F); GL11.glRotatef(getDeathMaxRotation(par1EntityPlayer), 0.0F, 0.0F, 1.0F); GL11.glRotatef(270F, 0.0F, 1.0F, 0.0F); } else { super.rotateCorpse(par1EntityPlayer, par2, par3, par4); } } /** * Passes the specialRender and renders it */ protected void passSpecialRender(EntityLiving par1EntityLiving, double par2, double par4, double par6) { renderName((EntityPlayer)par1EntityLiving, par2, par4, par6); } /** * Allows the render to do any OpenGL state modifications necessary before the model is rendered. Args: * entityLiving, partialTickTime */ protected void preRenderCallback(EntityLiving par1EntityLiving, float par2) { renderPlayerScale((EntityPlayer)par1EntityLiving, par2); } /** * Render the endermans eyes */ protected int renderEyes(EntityPlayer par1EntityPlayer, int par2, float par3) { if (par2 != 0) { return -1; } else { loadTexture("/mob/enderman_eyes.png"); float f = 1.0F; GL11.glEnable(GL11.GL_BLEND); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glBlendFunc(GL11.GL_ONE, GL11.GL_ONE); GL11.glDisable(GL11.GL_LIGHTING); int i = 61680; int j = i % 0x10000; int k = i / 0x10000; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glEnable(GL11.GL_LIGHTING); GL11.glColor4f(1.0F, 1.0F, 1.0F, f); return 1; } } /** * Render the block an enderman is carrying */ protected void renderCarrying(EntityPlayer par1EntityPlayer, float par2) { super.renderEquippedItems(par1EntityPlayer, par2); { GL11.glPushMatrix(); float f = 0.5F; GL11.glTranslatef(0.0F, 0.6875F, -0.75F); f *= 1.0F; GL11.glRotatef(20F, 1.0F, 0.0F, 0.0F); GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); GL11.glScalef(f, -f, f); int i = par1EntityPlayer.getBrightnessForRender(par2); int j = i % 0x10000; int k = i / 0x10000; OpenGlHelper.setLightmapTextureCoords(OpenGlHelper.lightmapTexUnit, (float)j / 1.0F, (float)k / 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); loadTexture("/terrain.png"); GL11.glPopMatrix(); } } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Toni_AnnoBeta« (25. März 2012, 10:34)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Hessi James« (28. März 2012, 14:09)