package noahs200010.Dest1ny.Render;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityClientPlayerMP;
import net.minecraft.client.multiplayer.WorldClient;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBow;
import net.minecraft.item.ItemEgg;
import net.minecraft.item.ItemEnderPearl;
import net.minecraft.item.ItemFishingRod;
import net.minecraft.item.ItemSnowball;
import net.minecraft.item.ItemStack;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.MathHelper;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3;
import noahs200010.Dest1ny.ModuleBase.EnumModuleType;
import noahs200010.Dest1ny.ModuleBase.Module;
import org.lwjgl.opengl.GL11;
public class Projectiles
extends Module
{
public double pZ = -9000.0D;
public double pY = -9000.0D;
public double pX = -9000.0D;
public Projectiles()
{
super("Projectiles", 0, EnumModuleType.RENDER);
}
public void onRender()
{
ItemStack is = mc.thePlayer.inventory.getCurrentItem();
if (is != null)
{
Item id = is.getItem();
boolean drawPrediction = true;
float var4 = 0.05F;
float var5 = 3.2F;
float var6 = 0.0F;
boolean var7 = false;
if ((id instanceof ItemBow))
{
var4 = 0.05F;
var5 = 3.2F;
}
else if ((id instanceof ItemEnderPearl))
{
var4 = 0.03F;
var5 = 1.5F;
}
else if ((id instanceof ItemSnowball))
{
var4 = 0.03F;
var5 = 1.5F;
}
else if ((id instanceof ItemFishingRod))
{
var5 = 1.5F;
}
else if ((id instanceof ItemEgg))
{
var4 = 0.03F;
var5 = 1.5F;
}
else if ((is.getItemDamage() & 0x4000) > 0)
{
var4 = 0.05F;
var5 = 0.5F;
var6 = -20.0F;
}
else
{
drawPrediction = false;
}
if (drawPrediction)
{
AxisAlignedBB var9 = AxisAlignedBB.getBoundingBox(0.0D, 0.0D, 0.0D, 0.0D, 0.0D, 0.0D);
float var10 = (float)mc.thePlayer.posX;
float var11 = (float)mc.thePlayer.posY;
float var12 = (float)mc.thePlayer.posZ;
float var13 = mc.thePlayer****tationYaw;
float var14 = mc.thePlayer****tationPitch;
float var15 = var13 / 180.0F * 3.141593F;
float var16 = MathHelper.sin(var15);
float var17 = MathHelper.cos(var15);
float var18 = var14 / 180.0F * 3.141593F;
float var19 = MathHelper.cos(var18);
float var20 = (var14 + var6) / 180.0F * 3.141593F;
float var21 = MathHelper.sin(var20);
float var22 = var10 - var17 * 0.16F;
float var23 = var11 - 0.1F;
float var24 = var12 - var16 * 0.16F;
float var25 = -var16 * var19 * 0.4F;
float var26 = -var21 * 0.4F;
float var27 = var17 * var19 * 0.4F;
float var28 = MathHelper.sqrt_double(var25 * var25 + var26 * var26 + var27 * var27);
var25 /= var28;
var26 /= var28;
var27 /= var28;
var25 *= var5;
var26 *= var5;
var27 *= var5;
float var29 = var22;
float var30 = var23;
float var31 = var24;
GL11.glPushMatrix();
GL11.glColor3f(0.27F, 0.7F, 0.92F);
enableDefaults();
beginGLLines();
int var32 = 0;
boolean var33 = true;
while (var33)
{
var32++;
var29 += var25;
var30 += var26;
var31 += var27;
Vec3 var34 = Vec3.createVectorHelper(var22, var23, var24);
Vec3 var35 = Vec3.createVectorHelper(var29, var30, var31);
MovingObjectPosition var8 = mc.theWorld.rayTraceBlocks(var34, var35);
if (var8 != null)
{
var22 = (float)var8.hitVec.xCoord;
var23 = (float)var8.hitVec.yCoord;
var24 = (float)var8.hitVec.zCoord;
var33 = false;
}
else if (var32 > 200)
{
var33 = false;
}
else
{
drawLine3D(var22 - var10, var23 - var11, var24 - var12, var29 - var10, var30 - var11, var31 - var12);
if (var7)
{
var9.setBounds(var22 - 0.125F, var23, var24 - 0.125F, var22 + 0.125F, var23 + 0.25F, var24 + 0.125F);
var4 = 0.0F;
for (int var36 = 0; var36 < 5; var36++)
{
float var37 = (float)(var9.minY + (var9.maxY - var9.minY) * var36 / 5.0D);
float var38 = (float)(var9.minY + (var9.maxY - var9.minY) * (var36 + 1) / 5.0D);
AxisAlignedBB var39 = AxisAlignedBB.getBoundingBox(var9.minX, var37, var9.minZ, var9.maxX, var38, var9.maxZ);
if (mc.theWorld.isAABBInMaterial(var39, Material.water)) {
var4 += 0.2F;
}
}
float var40 = var4 * 2.0F - 1.0F;
var26 += 0.04F * var40;
float var37 = 0.92F;
if (var4 > 0.0F)
{
var37 *= 0.9F;
var26 *= 0.8F;
}
var25 *= var37;
var26 *= var37;
var27 *= var37;
}
else
{
var25 *= 0.99F;
var26 *= 0.99F;
var27 *= 0.99F;
var26 -= var4;
}
var22 = var29;
var23 = var30;
var24 = var31;
}
if (!var33)
{
this.pX = var22;
this.pY = var23;
this.pZ = var24;
GL11.glVertex3d(this.pX - var10 - 0.5D, this.pY - var11, this.pZ - var12 - 0.5D);
GL11.glVertex3d(this.pX - var10 - 0.5D, this.pY - var11, this.pZ - var12 + 0.5D);
GL11.glVertex3d(this.pX - var10 + 0.5D, this.pY - var11, this.pZ - var12 + 0.5D);
GL11.glVertex3d(this.pX - var10 + 0.5D, this.pY - var11, this.pZ - var12 - 0.5D);
GL11.glVertex3d(this.pX - var10 + 0.5D, this.pY - var11, this.pZ - var12 + 0.5D);
GL11.glVertex3d(this.pX - var10 - 0.5D, this.pY - var11, this.pZ - var12 + 0.5D);
GL11.glVertex3d(this.pX - var10 - 0.5D, this.pY - var11, this.pZ - var12 - 0.5D);
GL11.glVertex3d(this.pX - var10 + 0.5D, this.pY - var11, this.pZ - var12 - 0.5D);
GL11.glVertex3d(this.pX - var10 - 0.5D, this.pY - var11, this.pZ - var12 - 0.5D);
GL11.glVertex3d(this.pX - var10 + 0.5D, this.pY - var11, this.pZ - var12 + 0.5D);
GL11.glVertex3d(this.pX - var10 - 0.5D, this.pY - var11, this.pZ - var12 + 0.5D);
GL11.glVertex3d(this.pX - var10 + 0.5D, this.pY - var11, this.pZ - var12 - 0.5D);
}
}
endGLLines();
disableDefaults();
GL11.glPopMatrix();
}
}
}
public void drawLine3D(float var1, float var2, float var3, float var4, float var5, float var6)
{
GL11.glVertex3d(var1, var2, var3);
GL11.glVertex3d(var4, var5, var6);
}
public void beginGLLines()
{
GL11.glBegin(1);
}
public void endGLLines() {}
public static void enableDefaults()
{
mc.entityRenderer.disableLightmap(0.0D);
GL11.glEnable(3042);
GL11.glDisable(2896);
GL11.glDisable(2929);
GL11.glEnable(2848);
GL11.glDisable(3553);
GL11.glHint(3154, 4354);
GL11.glBlendFunc(770, 771);
GL11.glEnable(32925);
GL11.glEnable(32926);
GL11.glShadeModel(7425);
GL11.glLineWidth(1.8F);
GL11.glEnable(3042);
GL11.glDisable(2896);
GL11.glDisable(2929);
GL11.glEnable(2848);
GL11.glDisable(3553);
GL11.glHint(3154, 4354);
GL11.glBlendFunc(770, 771);
GL11.glEnable(32925);
GL11.glEnable(32926);
GL11.glShadeModel(7425);
GL11.glDepthMask(false);
}
public static void disableDefaults()
{
GL11.glDisable(3042);
GL11.glEnable(3553);
GL11.glDisable(2848);
GL11.glEnable(2896);
GL11.glEnable(2929);
GL11.glDisable(32925);
GL11.glDisable(32926);
GL11.glDepthMask(true);
GL11.glDisable(32926);
GL11.glDisable(32925);
GL11.glEnable(3553);
GL11.glDisable(2848);
GL11.glEnable(2929);
GL11.glEnable(2896);
GL11.glDisable(3042);
mc.entityRenderer.enableLightmap(0.0D);
}
}