Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.ButterAleks.KirbyMod.entity.projectile.render;
- import net.minecraft.client.model.ModelBase;
- import net.minecraft.client.renderer.BufferBuilder;
- import net.minecraft.client.renderer.GlStateManager;
- import net.minecraft.client.renderer.Tessellator;
- import net.minecraft.client.renderer.entity.Render;
- import net.minecraft.client.renderer.entity.RenderManager;
- import net.minecraft.client.renderer.vertex.DefaultVertexFormats;
- import net.minecraft.entity.projectile.EntityArrow;
- import net.minecraft.util.math.MathHelper;
- import net.minecraftforge.fml.relauncher.Side;
- import net.minecraftforge.fml.relauncher.SideOnly;
- @SideOnly(Side.CLIENT)
- public abstract class RenderProjectile<T extends EntityArrow> extends Render<T>
- {
- protected ModelBase mainModel;
- public RenderProjectile(RenderManager renderManagerIn, ModelBase modelbaseIn)
- {
- super(renderManagerIn);
- this.mainModel = modelbaseIn;
- }
- /**
- * Renders the desired {@code T} type Entity.
- */
- public void doRender(T entity, double x, double y, double z, float entityYaw, float partialTicks)
- {
- this.bindEntityTexture(entity);
- GlStateManager.color(1.0F, 1.0F, 1.0F, 1.0F);
- GlStateManager.pushMatrix();
- GlStateManager.disableLighting();
- GlStateManager.translate((float)x, (float)y, (float)z);
- GlStateManager.rotate(entity.prevRotationYaw + (entity.rotationYaw - entity.prevRotationYaw) * partialTicks - 90.0F, 0.0F, 1.0F, 0.0F);
- GlStateManager.rotate(entity.prevRotationPitch + (entity.rotationPitch - entity.prevRotationPitch) * partialTicks, 0.0F, 0.0F, 1.0F);
- Tessellator tessellator = Tessellator.getInstance();
- BufferBuilder bufferbuilder = tessellator.getBuffer();
- int i = 0;
- float f = 0.0F;
- float f1 = 0.5F;
- float f2 = 0.0F;
- float f3 = 0.15625F;
- float f4 = 0.0F;
- float f5 = 0.15625F;
- float f6 = 0.15625F;
- float f7 = 0.3125F;
- float f8 = 0.05625F;
- GlStateManager.enableRescaleNormal();
- float f9 = (float)entity.arrowShake - partialTicks;
- if (f9 > 0.0F)
- {
- float f10 = -MathHelper.sin(f9 * 3.0F) * f9;
- GlStateManager.rotate(f10, 0.0F, 0.0F, 1.0F);
- }
- GlStateManager.rotate(45.0F, 1.0F, 0.0F, 0.0F);
- GlStateManager.scale(0.05625F, 0.05625F, 0.05625F);
- GlStateManager.translate(-4.0F, 0.0F, 0.0F);
- if (this.renderOutlines)
- {
- GlStateManager.enableColorMaterial();
- GlStateManager.enableOutlineMode(this.getTeamColor(entity));
- }
- GlStateManager.glNormal3f(0.05625F, 0.0F, 0.0F);
- bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
- bufferbuilder.pos(-7.0D, -2.0D, -2.0D).tex(0.0D, 0.15625D).endVertex();
- bufferbuilder.pos(-7.0D, -2.0D, 2.0D).tex(0.15625D, 0.15625D).endVertex();
- bufferbuilder.pos(-7.0D, 2.0D, 2.0D).tex(0.15625D, 0.3125D).endVertex();
- bufferbuilder.pos(-7.0D, 2.0D, -2.0D).tex(0.0D, 0.3125D).endVertex();
- tessellator.draw();
- GlStateManager.glNormal3f(-0.05625F, 0.0F, 0.0F);
- bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
- bufferbuilder.pos(-7.0D, 2.0D, -2.0D).tex(0.0D, 0.15625D).endVertex();
- bufferbuilder.pos(-7.0D, 2.0D, 2.0D).tex(0.15625D, 0.15625D).endVertex();
- bufferbuilder.pos(-7.0D, -2.0D, 2.0D).tex(0.15625D, 0.3125D).endVertex();
- bufferbuilder.pos(-7.0D, -2.0D, -2.0D).tex(0.0D, 0.3125D).endVertex();
- tessellator.draw();
- for (int j = 0; j < 4; ++j)
- {
- GlStateManager.rotate(90.0F, 1.0F, 0.0F, 0.0F);
- GlStateManager.glNormal3f(0.0F, 0.0F, 0.05625F);
- bufferbuilder.begin(7, DefaultVertexFormats.POSITION_TEX);
- bufferbuilder.pos(-8.0D, -2.0D, 0.0D).tex(0.0D, 0.0D).endVertex();
- bufferbuilder.pos(8.0D, -2.0D, 0.0D).tex(0.5D, 0.0D).endVertex();
- bufferbuilder.pos(8.0D, 2.0D, 0.0D).tex(0.5D, 0.15625D).endVertex();
- bufferbuilder.pos(-8.0D, 2.0D, 0.0D).tex(0.0D, 0.15625D).endVertex();
- tessellator.draw();
- }
- if (this.renderOutlines)
- {
- GlStateManager.disableOutlineMode();
- GlStateManager.disableColorMaterial();
- }
- GlStateManager.disableRescaleNormal();
- GlStateManager.enableLighting();
- GlStateManager.popMatrix();
- super.doRender(entity, x, y, z, entityYaw, partialTicks);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement