icbm/src/main/java/icbm/zhapin/render/RShrapnel.java

142 lines
5.5 KiB
Java

package icbm.zhapin.render;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import icbm.zhapin.ESuiPian;
import net.minecraft.block.Block;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.Render;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.util.MathHelper;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
@SideOnly(Side.CLIENT)
public class RShrapnel extends Render {
public void renderArrow(
final ESuiPian suiPian,
final double par2,
final double par4,
final double par6,
final float par8,
final float par9
) {
if (suiPian.isAnvil) {
GL11.glPushMatrix();
GL11.glTranslatef((float) par2, (float) par4, (float) par6);
this.bindTexture(TextureMap.locationBlocksTexture);
// yay anvilcraft
final Block block = Blocks.anvil;
final World world = suiPian.worldObj;
GL11.glDisable(2896);
this.field_147909_c.blockAccess = (IBlockAccess) world;
final Tessellator var12 = Tessellator.instance;
var12.startDrawingQuads();
var12.setTranslation(
(double) (-MathHelper.floor_double(suiPian.posX) - 0.5f),
(double) (-MathHelper.floor_double(suiPian.posY) - 0.5f),
(double) (-MathHelper.floor_double(suiPian.posZ) - 0.5f)
);
this.field_147909_c.renderBlockByRenderType(
block,
MathHelper.floor_double(suiPian.posX),
MathHelper.floor_double(suiPian.posY),
MathHelper.floor_double(suiPian.posZ)
);
var12.setTranslation(0.0, 0.0, 0.0);
var12.draw();
GL11.glEnable(2896);
GL11.glPopMatrix();
} else {
this.bindTexture(new ResourceLocation("icbm", "textures/models/fragment.png")
);
GL11.glPushMatrix();
GL11.glTranslatef((float) par2, (float) par4, (float) par6);
GL11.glRotatef(
suiPian.prevRotationYaw
+ (suiPian.rotationYaw - suiPian.prevRotationYaw) * par9 - 90.0f,
0.0f,
1.0f,
0.0f
);
GL11.glRotatef(
suiPian.prevRotationPitch
+ (suiPian.rotationPitch - suiPian.prevRotationPitch) * par9,
0.0f,
0.0f,
1.0f
);
final Tessellator var13 = Tessellator.instance;
final byte var14 = 0;
final float var15 = 0.0f;
final float var16 = 0.5f;
final float var17 = (0 + var14 * 10) / 32.0f;
final float var18 = (5 + var14 * 10) / 32.0f;
final float var19 = 0.0f;
final float var20 = 0.15625f;
final float var21 = (5 + var14 * 10) / 32.0f;
final float var22 = (10 + var14 * 10) / 32.0f;
final float var23 = 0.05625f;
GL11.glEnable(32826);
final float var24 = suiPian.arrowShake - par9;
if (var24 > 0.0f) {
final float var25 = -MathHelper.sin(var24 * 3.0f) * var24;
GL11.glRotatef(var25, 0.0f, 0.0f, 1.0f);
}
GL11.glRotatef(45.0f, 1.0f, 0.0f, 0.0f);
GL11.glScalef(var23, var23, var23);
GL11.glTranslatef(-4.0f, 0.0f, 0.0f);
GL11.glNormal3f(var23, 0.0f, 0.0f);
var13.startDrawingQuads();
var13.addVertexWithUV(-7.0, -2.0, -2.0, (double) var19, (double) var21);
var13.addVertexWithUV(-7.0, -2.0, 2.0, (double) var20, (double) var21);
var13.addVertexWithUV(-7.0, 2.0, 2.0, (double) var20, (double) var22);
var13.addVertexWithUV(-7.0, 2.0, -2.0, (double) var19, (double) var22);
var13.draw();
GL11.glNormal3f(-var23, 0.0f, 0.0f);
var13.startDrawingQuads();
var13.addVertexWithUV(-7.0, 2.0, -2.0, (double) var19, (double) var21);
var13.addVertexWithUV(-7.0, 2.0, 2.0, (double) var20, (double) var21);
var13.addVertexWithUV(-7.0, -2.0, 2.0, (double) var20, (double) var22);
var13.addVertexWithUV(-7.0, -2.0, -2.0, (double) var19, (double) var22);
var13.draw();
for (int var26 = 0; var26 < 4; ++var26) {
GL11.glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
GL11.glNormal3f(0.0f, 0.0f, var23);
var13.startDrawingQuads();
var13.addVertexWithUV(-8.0, -2.0, 0.0, (double) var15, (double) var17);
var13.addVertexWithUV(8.0, -2.0, 0.0, (double) var16, (double) var17);
var13.addVertexWithUV(8.0, 2.0, 0.0, (double) var16, (double) var18);
var13.addVertexWithUV(-8.0, 2.0, 0.0, (double) var15, (double) var18);
var13.draw();
}
GL11.glDisable(32826);
GL11.glPopMatrix();
}
}
public void doRender(
final Entity par1Entity,
final double par2,
final double par4,
final double par6,
final float par8,
final float par9
) {
this.renderArrow((ESuiPian) par1Entity, par2, par4, par6, par8, par9);
}
@Override
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
return null;
}
}