Advertisement
Guest User

Untitled

a guest
Dec 25th, 2012
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.80 KB | None | 0 0
  1. package SoundLogic.SoulCraft;
  2.  
  3. import java.awt.Color;
  4. import java.util.Random;
  5.  
  6. import org.lwjgl.opengl.GL11;
  7. import org.lwjgl.opengl.GL12;
  8.  
  9. import cpw.mods.fml.client.TextureFXManager;
  10. import cpw.mods.fml.relauncher.Side;
  11. import cpw.mods.fml.relauncher.SideOnly;
  12.  
  13. import net.minecraft.block.*;
  14. import net.minecraft.block.material.*;
  15. import net.minecraft.client.Minecraft;
  16. import net.minecraft.client.renderer.RenderBlocks;
  17. import net.minecraft.client.renderer.Tessellator;
  18. import net.minecraft.client.renderer.entity.RenderManager;
  19. import net.minecraft.creativetab.*;
  20. import net.minecraft.entity.*;
  21. import net.minecraft.entity.player.*;
  22. import net.minecraft.item.*;
  23. import net.minecraft.nbt.*;
  24. import net.minecraft.util.*;
  25. import net.minecraft.world.*;
  26. import net.minecraftforge.client.*;
  27.  
  28. @SideOnly(Side.CLIENT)
  29. public class HauntedItemRenderer implements IItemRenderer {
  30. public static String texture = "%blur%/misc/glint.png"; //base enchantment glint texture
  31. public static Color hauntColor = new Color(255, 0, 0, 255); //red tint
  32. private static int dir=1;
  33. private static float speed=.01F;
  34. private static float alpha=0;
  35. static Random rand=new Random();
  36. @Override
  37. public boolean handleRenderType(ItemStack item, ItemRenderType type) {
  38. return type==type.INVENTORY || type==type.ENTITY || type==type.EQUIPPED;
  39. }
  40.  
  41. @Override
  42. public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item,
  43. ItemRendererHelper helper) {
  44. if(type==type.EQUIPPED)
  45. return true;
  46. ItemHaunted haunted=(ItemHaunted)item.getItem();
  47. ItemStack originalStack=haunted.getBaseItemStack(item);
  48. if(originalStack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.blocksList[originalStack.itemID].getRenderType()))
  49. return helper.ENTITY_ROTATION==helper || helper.INVENTORY_BLOCK==helper || helper.ENTITY_BOBBING==helper || helper.EQUIPPED_BLOCK==helper;
  50. else
  51. return helper.ENTITY_BOBBING==helper || helper.ENTITY_ROTATION==helper;
  52. }
  53. public static void tick()
  54. {
  55. alpha+=speed*dir;
  56. if(alpha>.5)
  57. {
  58. alpha=.5F;
  59. dir=-1;
  60. }
  61. if(alpha<0)
  62. {
  63. alpha=0;
  64. dir=1;
  65. speed=rand.nextFloat()*.02F;
  66. while(speed==0)
  67. {
  68. speed=rand.nextFloat()*.02F;
  69. }
  70. }
  71. }
  72. @Override
  73. public void renderItem(ItemRenderType type, ItemStack item, Object... data)
  74. {
  75. Tessellator tes = Tessellator.instance;
  76. ItemHaunted haunted=(ItemHaunted)item.getItem();
  77. ItemStack originalStack=haunted.getBaseItemStack(item);
  78. ForgeHooksClient.bindTexture(originalStack.getItem().getTextureFile(), 0);
  79. int var9=originalStack.getIconIndex();
  80. RenderBlocks render=(RenderBlocks)data[0];
  81. int texX=var9 % 16 * 16;
  82. int texY=var9 / 16 * 16;
  83. int texX2=texX+16;
  84. int texY2=texY+16;
  85. float x1=texX/256F;
  86. float x2=texX2/256F;
  87. float y1=texY/256F;
  88. float y2=texY2/256F;
  89. if(originalStack.getItem() instanceof ItemBlock && RenderBlocks.renderItemIn3d(Block.blocksList[originalStack.itemID].getRenderType()))
  90. {
  91. if(type==type.ENTITY)
  92. GL11.glDisable(GL11.GL_LIGHTING);
  93. // if(type==type.ENTITY)
  94. // GL11.glRotatef(180.0F - RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F);
  95. if(type==type.ENTITY)
  96. GL11.glScalef(.50F, .50F, 0.50F);
  97. if(type==type.EQUIPPED)
  98. {
  99. GL11.glTranslatef(0.5F, 0.5F, 0.5F);
  100. GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
  101.  
  102. }
  103. render.renderBlockAsItem(Block.blocksList[((ItemBlock)originalStack.getItem()).getBlockID()], originalStack.getItemDamage(), 1.0F);
  104. if(type==type.INVENTORY)
  105. {
  106. GL11.glDepthFunc(GL11.GL_GREATER);
  107. GL11.glDisable(GL11.GL_LIGHTING);
  108. GL11.glDepthMask(false);
  109. ForgeHooksClient.bindTexture("%blur%/misc/glint.png",0);
  110. GL11.glEnable(GL11.GL_BLEND);
  111. GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR);
  112. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  113. GL11.glColor4f(hauntColor.getRed() / 255F, hauntColor.getGreen() / 255F, hauntColor.getBlue() / 255F, hauntColor.getAlpha() / 255F);
  114.  
  115. GL11.glRotatef(-45F, 0.0F, 1.0F, 0.0F);
  116. GL11.glRotatef(-210F, 1.0F, 0.0F, 0.0F);
  117. GL11.glScalef(1.0F, 1.0F, -1F);
  118. GL11.glScalef(.1F, .1F, 1F);
  119.  
  120.  
  121. GL11.glTranslatef(-9F, -9F, 0);
  122. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  123. GL11.glDisable(GL11.GL_BLEND);
  124. GL11.glDepthMask(true);
  125. GL11.glEnable(GL11.GL_LIGHTING);
  126. GL11.glDepthFunc(GL11.GL_LEQUAL);
  127.  
  128. }
  129. else if(type==type.ENTITY)
  130. {
  131. GL11.glDepthFunc(GL11.GL_GREATER);
  132. GL11.glDisable(GL11.GL_LIGHTING);
  133. GL11.glDepthMask(false);
  134. ForgeHooksClient.bindTexture("%blur%/misc/glint.png",0);
  135. GL11.glEnable(GL11.GL_BLEND);
  136. GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR);
  137. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  138. GL11.glColor4f(hauntColor.getRed() / 255F, hauntColor.getGreen() / 255F, hauntColor.getBlue() / 255F, hauntColor.getAlpha() / 255F);
  139.  
  140. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  141. GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
  142. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  143. GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
  144. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  145. GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
  146. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  147. GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
  148. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  149. GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
  150. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  151. GL11.glDisable(GL11.GL_BLEND);
  152. GL11.glDepthMask(true);
  153. GL11.glEnable(GL11.GL_LIGHTING);
  154. GL11.glDepthFunc(GL11.GL_LEQUAL);
  155. }
  156. else if(type==type.EQUIPPED)
  157. {
  158. GL11.glDepthFunc(GL11.GL_GREATER);
  159. GL11.glDisable(GL11.GL_LIGHTING);
  160. GL11.glDepthMask(false);
  161. ForgeHooksClient.bindTexture("%blur%/misc/glint.png",0);
  162. GL11.glEnable(GL11.GL_BLEND);
  163. GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR);
  164. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  165. GL11.glColor4f(hauntColor.getRed() / 255F, hauntColor.getGreen() / 255F, hauntColor.getBlue() / 255F, hauntColor.getAlpha() / 255F);
  166.  
  167. GL11.glRotatef(-90F, 0.0F, 1.0F, 0.0F);
  168. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  169. GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
  170. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  171. GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
  172. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  173. GL11.glRotatef(90F, 1.0F, 0.0F, 0.0F);
  174. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  175. GL11.glRotatef(90F, 0.0F, 1.0F, 0.0F);
  176. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  177. GL11.glRotatef(180F, 0.0F, 1.0F, 0.0F);
  178. func_77018_b(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  179.  
  180. GL11.glDisable(GL11.GL_BLEND);
  181. GL11.glDepthMask(true);
  182. GL11.glEnable(GL11.GL_LIGHTING);
  183. GL11.glDepthFunc(GL11.GL_LEQUAL);
  184.  
  185. }
  186. GL11.glDisable(GL11.GL_LIGHTING);
  187. }
  188. else
  189. {
  190. if(type==type.EQUIPPED)
  191. {
  192. grox_renderItem(type,item,data);
  193. }
  194. else
  195. {
  196. if(type==type.ENTITY)
  197. GL11.glDisable(GL11.GL_LIGHTING);
  198. if(type==type.ENTITY)
  199. GL11.glRotatef(180.0F - RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F);
  200. draw(tes,x1,y1,x2,y2,type);
  201. GL11.glDisable(GL11.GL_LIGHTING);
  202. }
  203. }
  204. }
  205. public void grox_renderItem(ItemRenderType type, ItemStack item, Object... data)
  206. {
  207. if(type == ItemRenderType.EQUIPPED)
  208. {
  209. Tessellator var5 = Tessellator.instance;
  210. ItemHaunted haunted=(ItemHaunted)item.getItem();
  211. ItemStack originalStack=haunted.getBaseItemStack(item);
  212. ForgeHooksClient.bindTexture(originalStack.getItem().getTextureFile(), 0);
  213. int var6=originalStack.getIconIndex();
  214. float var7 = ((float)(var6 % 16 * 16) + 0.0F) / 256.0F;
  215. float var8 = ((float)(var6 % 16 * 16) + 15.99F) / 256.0F;
  216. float var9 = ((float)(var6 / 16 * 16) + 0.0F) / 256.0F;
  217. float var10 = ((float)(var6 / 16 * 16) + 15.99F) / 256.0F;
  218. float var11 = 0.0F;
  219. float var12 = 0.3F;
  220. GL11.glEnable(GL12.GL_RESCALE_NORMAL);
  221. GL11.glTranslatef(-var11, -var12, 0.0F);
  222. float var13 = 1.5F;
  223. GL11.glScalef(var13, var13, var13);
  224. GL11.glRotatef(50.0F, 0.0F, 1.0F, 0.0F);
  225. GL11.glRotatef(335.0F, 0.0F, 0.0F, 1.0F);
  226. GL11.glTranslatef(-0.9375F, -0.0625F, 0.0F);
  227. this.grox_renderItemIn2D(var5, var8, var9, var7, var10);
  228. grox_setEnchantPass(texture, 0); //starts enchantment pass
  229. GL11.glColor4f(hauntColor.getRed() / 255F, hauntColor.getGreen() / 255F, hauntColor.getBlue() / 255F, hauntColor.getAlpha() / 255F);
  230. this.grox_renderItemIn2D(var5, var8, var9, var7, var10);
  231. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  232. grox_setEnchantPass(texture, 1); //sets it to the second part
  233. GL11.glColor4f(hauntColor.getRed() / 255F, hauntColor.getGreen() / 255F, hauntColor.getBlue() / 255F, hauntColor.getAlpha() / 255F);
  234. this.grox_renderItemIn2D(var5, var8, var9, var7, var10);
  235. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  236. grox_setEnchantPass(texture, 2); //finalizes the enchantment rendering
  237. GL11.glDisable(GL12.GL_RESCALE_NORMAL);
  238. }
  239. }
  240.  
  241. public static int grox_setEnchantPass(String texture, int pass)
  242. {
  243. float var15 = 2.125F;
  244. float var16;
  245. if(pass == 0)
  246. {
  247. GL11.glDepthFunc(GL11.GL_EQUAL);
  248. GL11.glDisable(GL11.GL_LIGHTING);
  249. GL11.glBindTexture(GL11.GL_TEXTURE_2D, Minecraft.getMinecraft().renderEngine.getTexture(texture));
  250. GL11.glEnable(GL11.GL_BLEND);
  251. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  252. float var14 = 0.76F;
  253. GL11.glColor4f(0.5F * var14, 0.25F * var14, 0.8F * var14, 1.0F);
  254. GL11.glMatrixMode(GL11.GL_TEXTURE);
  255. GL11.glPushMatrix();
  256. GL11.glScalef(var15, var15, var15);
  257. var16 = (float)(Minecraft.getSystemTime() % 3000L) / 3000.0F * 0.5F;
  258. GL11.glTranslatef(var16, 0.0F, 0.0F);
  259. GL11.glRotatef(-50.0F, 0.0F, 0.0F, 1.0F);
  260. return 1;
  261. }else
  262. if(pass == 1)
  263. {
  264. GL11.glPopMatrix();
  265. GL11.glPushMatrix();
  266. GL11.glScalef(var15, var15, var15);
  267. var16 = (float)(Minecraft.getSystemTime() % 4873L) / 4873.0F * 0.5F;
  268. GL11.glTranslatef(-var16, 0.0F, 0.0F);
  269. GL11.glRotatef(10.0F, 0.0F, 0.0F, 1.0F);
  270. return 1;
  271. }else
  272. if(pass == 2)
  273. {
  274. GL11.glPopMatrix();
  275. GL11.glMatrixMode(GL11.GL_MODELVIEW);
  276. GL11.glDisable(GL11.GL_BLEND);
  277. GL11.glEnable(GL11.GL_LIGHTING);
  278. GL11.glDepthFunc(GL11.GL_LEQUAL);
  279. return -1;
  280. }
  281. return -1;
  282. }
  283.  
  284. private void grox_renderItemIn2D(Tessellator par1Tessellator, float par2, float par3, float par4, float par5)
  285. {
  286. float var6 = 1.0F;
  287. float var7 = 0.0625F;
  288. par1Tessellator.startDrawingQuads();
  289. par1Tessellator.setNormal(0.0F, 0.0F, 1.0F);
  290. par1Tessellator.addVertexWithUV(0.0D, 0.0D, 0.0D, (double)par2, (double)par5);
  291. par1Tessellator.addVertexWithUV((double)var6, 0.0D, 0.0D, (double)par4, (double)par5);
  292. par1Tessellator.addVertexWithUV((double)var6, 1.0D, 0.0D, (double)par4, (double)par3);
  293. par1Tessellator.addVertexWithUV(0.0D, 1.0D, 0.0D, (double)par2, (double)par3);
  294. par1Tessellator.draw();
  295. par1Tessellator.startDrawingQuads();
  296. par1Tessellator.setNormal(0.0F, 0.0F, -1.0F);
  297. par1Tessellator.addVertexWithUV(0.0D, 1.0D, (double)(0.0F - var7), (double)par2, (double)par3);
  298. par1Tessellator.addVertexWithUV((double)var6, 1.0D, (double)(0.0F - var7), (double)par4, (double)par3);
  299. par1Tessellator.addVertexWithUV((double)var6, 0.0D, (double)(0.0F - var7), (double)par4, (double)par5);
  300. par1Tessellator.addVertexWithUV(0.0D, 0.0D, (double)(0.0F - var7), (double)par2, (double)par5);
  301. par1Tessellator.draw();
  302. par1Tessellator.startDrawingQuads();
  303. par1Tessellator.setNormal(-1.0F, 0.0F, 0.0F);
  304. int var8;
  305. float var9;
  306. float var10;
  307. float var11;
  308.  
  309. /* Gets the width/16 of the currently bound texture, used
  310. * to fix the side rendering issues on textures != 16 */
  311. int tileSize = TextureFXManager.instance().getTextureDimensions(GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D)).width / 16;
  312.  
  313. float tx = 1.0f / (32 * tileSize);
  314. float tz = 1.0f / tileSize;
  315.  
  316. for (var8 = 0; var8 < tileSize; ++var8)
  317. {
  318. var9 = (float)var8 / tileSize;
  319. var10 = par2 + (par4 - par2) * var9 - tx;
  320. var11 = var6 * var9;
  321. par1Tessellator.addVertexWithUV((double)var11, 0.0D, (double)(0.0F - var7), (double)var10, (double)par5);
  322. par1Tessellator.addVertexWithUV((double)var11, 0.0D, 0.0D, (double)var10, (double)par5);
  323. par1Tessellator.addVertexWithUV((double)var11, 1.0D, 0.0D, (double)var10, (double)par3);
  324. par1Tessellator.addVertexWithUV((double)var11, 1.0D, (double)(0.0F - var7), (double)var10, (double)par3);
  325. }
  326.  
  327. par1Tessellator.draw();
  328. par1Tessellator.startDrawingQuads();
  329. par1Tessellator.setNormal(1.0F, 0.0F, 0.0F);
  330.  
  331. for (var8 = 0; var8 < tileSize; ++var8)
  332. {
  333. var9 = (float)var8 / tileSize;
  334. var10 = par2 + (par4 - par2) * var9 - tx;
  335. var11 = var6 * var9 + tz;
  336. par1Tessellator.addVertexWithUV((double)var11, 1.0D, (double)(0.0F - var7), (double)var10, (double)par3);
  337. par1Tessellator.addVertexWithUV((double)var11, 1.0D, 0.0D, (double)var10, (double)par3);
  338. par1Tessellator.addVertexWithUV((double)var11, 0.0D, 0.0D, (double)var10, (double)par5);
  339. par1Tessellator.addVertexWithUV((double)var11, 0.0D, (double)(0.0F - var7), (double)var10, (double)par5);
  340. }
  341.  
  342. par1Tessellator.draw();
  343. par1Tessellator.startDrawingQuads();
  344. par1Tessellator.setNormal(0.0F, 1.0F, 0.0F);
  345.  
  346. for (var8 = 0; var8 < tileSize; ++var8)
  347. {
  348. var9 = (float)var8 / tileSize;
  349. var10 = par5 + (par3 - par5) * var9 - tx;
  350. var11 = var6 * var9 + tz;
  351. par1Tessellator.addVertexWithUV(0.0D, (double)var11, 0.0D, (double)par2, (double)var10);
  352. par1Tessellator.addVertexWithUV((double)var6, (double)var11, 0.0D, (double)par4, (double)var10);
  353. par1Tessellator.addVertexWithUV((double)var6, (double)var11, (double)(0.0F - var7), (double)par4, (double)var10);
  354. par1Tessellator.addVertexWithUV(0.0D, (double)var11, (double)(0.0F - var7), (double)par2, (double)var10);
  355. }
  356.  
  357. par1Tessellator.draw();
  358. par1Tessellator.startDrawingQuads();
  359. par1Tessellator.setNormal(0.0F, -1.0F, 0.0F);
  360.  
  361. for (var8 = 0; var8 < tileSize; ++var8)
  362. {
  363. var9 = (float)var8 / tileSize;
  364. var10 = par5 + (par3 - par5) * var9 - tx;
  365. var11 = var6 * var9;
  366. par1Tessellator.addVertexWithUV((double)var6, (double)var11, 0.0D, (double)par4, (double)var10);
  367. par1Tessellator.addVertexWithUV(0.0D, (double)var11, 0.0D, (double)par2, (double)var10);
  368. par1Tessellator.addVertexWithUV(0.0D, (double)var11, (double)(0.0F - var7), (double)par2, (double)var10);
  369. par1Tessellator.addVertexWithUV((double)var6, (double)var11, (double)(0.0F - var7), (double)par4, (double)var10);
  370. }
  371.  
  372. par1Tessellator.draw();
  373. par1Tessellator.setColorRGBA(0, 0, 0, 0);
  374. } private void func_77018_b(int par1, float par2, float par3, float par4, float par5,ItemRenderType type)
  375. {
  376. for (int var6 = 0; var6 < 2; ++var6)
  377. {
  378. if (var6 == 0)
  379. {
  380. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  381. }
  382.  
  383. if (var6 == 1)
  384. {
  385. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  386. }
  387.  
  388. float var7 = 0.00390625F;
  389. float var8 = 0.00390625F;
  390. float var9 = (float)(Minecraft.getSystemTime() % (long)(3000 + var6 * 1873)) / (3000.0F + (float)(var6 * 1873)) * 256.0F;
  391. float var10 = 0.0F;
  392. Tessellator var11 = Tessellator.instance;
  393. float var12 = 4.0F;
  394.  
  395. if (var6 == 1)
  396. {
  397. var12 = -1.0F;
  398. }
  399.  
  400. if(type==type.INVENTORY)
  401. {
  402. var11.startDrawingQuads();
  403. var11.addVertexWithUV((double)(par2 + 0), (double)(par3 + par5), -1, (double)((var9 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  404. var11.addVertexWithUV((double)(par2 + par4), (double)(par3 + par5), -1, (double)((var9 + (float)par4 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  405. var11.addVertexWithUV((double)(par2 + par4), (double)(par3 + 0), -1, (double)((var9 + (float)par4) * var7), (double)((var10 + 0.0F) * var8));
  406. var11.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), -1, (double)((var9 + 0.0F) * var7), (double)((var10 + 0.0F) * var8));
  407. var11.draw();
  408. }
  409. else if(type==type.ENTITY)
  410. {
  411. var11.startDrawingQuads();
  412. var11.addVertexWithUV((double)(par2 + 0-8)/16, (double)(par3 + 0-4)/16, 1.0f/2-1.0f/16, (double)((var9 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  413. var11.addVertexWithUV((double)(par2 + par4-8)/16, (double)(par3 + 0-4)/16, 1.0f/2-1.0f/16, (double)((var9 + (float)par4 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  414. var11.addVertexWithUV((double)(par2 + par4-8)/16, (double)(par3 + par5-4)/16, 1.0f/2-1.0f/16, (double)((var9 + (float)par4) * var7), (double)((var10 + 0.0F) * var8));
  415. var11.addVertexWithUV((double)(par2 + 0-8)/16, (double)(par3 + par5-4)/16, 1.0f/2-1.0f/16, (double)((var9 + 0.0F) * var7), (double)((var10 + 0.0F) * var8));
  416. var11.draw();
  417. }
  418. else if(type==type.EQUIPPED)
  419. {
  420. var11.startDrawingQuads();
  421. var11.addVertexWithUV((double)(par2 + 0-8)/16, (double)(par3 + par5-8)/16, -.5f+1/32f, (double)((var9 + (float)par4 * var12) * var7), (double)((var10 + (float)0) * var8));
  422. var11.addVertexWithUV((double)(par2 + par4-8)/16, (double)(par3 + par5-8)/16, -.5f+1/32f, (double)((var9 + (float)par5 + (float)par5 * var12) * var7), (double)((var10 + (float)0) * var8));
  423. var11.addVertexWithUV((double)(par2 + par4-8)/16, (double)(par3 + 0-8)/16, -.5f+1/32f, (double)((var9 + (float)0) * var7), (double)((var10 + (float)par5) * var8));
  424. var11.addVertexWithUV((double)(par2 + 0-8)/16, (double)(par3 + 0-8)/16, -.5f+1/32f, (double)((var9 + (float)par5) * var7), (double)((var10 + (float)par5) * var8));
  425. var11.draw();
  426. }
  427. }
  428. }
  429. private void func_77018_a(int par1, float par2, float par3, float par4, float par5,ItemRenderType type)
  430. {
  431. for (int var6 = 0; var6 < 2; ++var6)
  432. {
  433. if (var6 == 0)
  434. {
  435. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  436. }
  437.  
  438. if (var6 == 1)
  439. {
  440. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  441. }
  442.  
  443. float var7 = 0.00390625F;
  444. float var8 = 0.00390625F;
  445. float var9 = (float)(Minecraft.getSystemTime() % (long)(3000 + var6 * 1873)) / (3000.0F + (float)(var6 * 1873)) * 256.0F;
  446. float var10 = 0.0F;
  447. Tessellator var11 = Tessellator.instance;
  448. float var12 = 4.0F;
  449.  
  450. if (var6 == 1)
  451. {
  452. var12 = -1.0F;
  453. }
  454.  
  455. if(type==type.INVENTORY)
  456. {
  457. var11.startDrawingQuads();
  458. var11.addVertexWithUV((double)(par2 + 0), (double)(par3 + par5), -50, (double)((var9 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  459. var11.addVertexWithUV((double)(par2 + par4), (double)(par3 + par5), -50, (double)((var9 + (float)par4 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  460. var11.addVertexWithUV((double)(par2 + par4), (double)(par3 + 0), -50, (double)((var9 + (float)par4) * var7), (double)((var10 + 0.0F) * var8));
  461. var11.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), -50, (double)((var9 + 0.0F) * var7), (double)((var10 + 0.0F) * var8));
  462. var11.draw();
  463. }
  464. else if(type==type.ENTITY)
  465. {
  466. var11.startDrawingQuads();
  467. var11.addVertexWithUV((double)(par2 + 0-8)/16, (double)(par3 + 0-4)/16, -1.0f/16, (double)((var9 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  468. var11.addVertexWithUV((double)(par2 + par4-8)/16, (double)(par3 + 0-4)/16, -1.0f/16, (double)((var9 + (float)par4 + (float)par5 * var12) * var7), (double)((var10 + (float)par5) * var8));
  469. var11.addVertexWithUV((double)(par2 + par4-8)/16, (double)(par3 + par5-4)/16, -1.0f/16, (double)((var9 + (float)par4) * var7), (double)((var10 + 0.0F) * var8));
  470. var11.addVertexWithUV((double)(par2 + 0-8)/16, (double)(par3 + par5-4)/16, -1.0f/16, (double)((var9 + 0.0F) * var7), (double)((var10 + 0.0F) * var8));
  471. var11.draw();
  472. }
  473. else if(type==type.EQUIPPED)
  474. {
  475. var11.startDrawingQuads();
  476. var11.addVertexWithUV((double)(par2 + 0)/16, (double)(par3 + par5)/16, 1.0f/16, (double)((var9 + (float)par4 * var12) * var7), (double)((var10 + (float)0) * var8));
  477. var11.addVertexWithUV((double)(par2 + par4)/16, (double)(par3 + par5)/16, 1.0f/16, (double)((var9 + (float)par5 + (float)par5 * var12) * var7), (double)((var10 + (float)0) * var8));
  478. var11.addVertexWithUV((double)(par2 + par4)/16, (double)(par3 + 0)/16, 1.0f/16, (double)((var9 + (float)0) * var7), (double)((var10 + (float)par5) * var8));
  479. var11.addVertexWithUV((double)(par2 + 0)/16, (double)(par3 + 0)/16, 1.0f/16, (double)((var9 + (float)par5) * var7), (double)((var10 + (float)par5) * var8));
  480. var11.draw();
  481. }
  482. }
  483. }
  484.  
  485. private void draw(Tessellator tes, float x1, float y1, float x2, float y2, ItemRenderType type) {
  486. float x1s=0;
  487. float y1s=0;
  488. float x2s=16;
  489. float y2s=16;
  490. if(type==type.ENTITY)
  491. {
  492. x1s=-.5F;
  493. y1s=.75F;
  494. x2s=.5F;
  495. y2s=-.25F;
  496. }
  497. if(type==type.EQUIPPED)
  498. {
  499. x1s=0F;
  500. y1s=0F;
  501. x2s=1F;
  502. y2s=1F;
  503. }
  504. tes.startDrawingQuads();
  505. if(type!=type.EQUIPPED)
  506. {
  507. tes.addVertexWithUV(x1s, y2s, 0, x1, y2);
  508. tes.addVertexWithUV(x2s,y2s,0,x2,y2);
  509. tes.addVertexWithUV(x2s,y1s,0,x2,y1);
  510. tes.addVertexWithUV(x1s, y1s, 0, x1,y1);
  511. }
  512. else
  513. {
  514. tes.setNormal(0.0F, 0.0F, 1.0F);
  515. tes.addVertexWithUV(x1s, y2s,-1.0f/16, x2, y1);
  516. tes.addVertexWithUV(x2s,y2s,-1.0f/16,x1,y1);
  517. tes.addVertexWithUV(x2s,y1s,-1.0f/16,x1,y2);
  518. tes.addVertexWithUV(x1s, y1s, -1.0f/16, x2,y2);
  519. tes.draw();
  520. tes.startDrawingQuads();
  521. tes.setNormal(0.0F, 0.0F, -1.0F);
  522. tes.addVertexWithUV(x1s, y2s,0f/16, x2, y1);
  523. tes.addVertexWithUV(x2s,y2s,0f/16,x1,y1);
  524. tes.addVertexWithUV(x2s,y1s,0f/16,x1,y2);
  525. tes.addVertexWithUV(x1s, y1s, 0f/16, x2,y2);
  526. tes.draw();
  527. tileEquippedItem(tes,x1,y1,x2,y2);
  528. tes.startDrawingQuads();
  529. }
  530. tes.draw();
  531.  
  532. GL11.glDepthFunc(GL11.GL_GREATER);
  533. GL11.glDisable(GL11.GL_LIGHTING);
  534. GL11.glDepthMask(false);
  535. ForgeHooksClient.bindTexture("%blur%/misc/glint.png",0);
  536. GL11.glEnable(GL11.GL_BLEND);
  537. GL11.glBlendFunc(GL11.GL_DST_COLOR, GL11.GL_DST_COLOR);
  538. GL11.glBlendFunc(GL11.GL_SRC_COLOR, GL11.GL_ONE);
  539. GL11.glColor4f(hauntColor.getRed() / 255F, hauntColor.getGreen() / 255F, hauntColor.getBlue() / 255F, hauntColor.getAlpha() / 255F);
  540. func_77018_a(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  541. func_77018_a(0 * 431278612 + 0 * 32178161, 0 - 2, 0 - 2, 20, 20,type);
  542. GL11.glDisable(GL11.GL_BLEND);
  543. GL11.glDepthMask(true);
  544. GL11.glEnable(GL11.GL_LIGHTING);
  545. GL11.glDepthFunc(GL11.GL_LEQUAL);
  546.  
  547. }
  548. public void tileEquippedItem(Tessellator par1Tessellator, float par2, float par3, float par4, float par5)
  549. {
  550. float var6 = 1.0F;
  551. float var7 = -0.0625F;
  552. float c=var7;
  553. var7=0;
  554. int var8;
  555. float var9;
  556. float var10;
  557. float var11;
  558. int tileSize = TextureFXManager.instance().getTextureDimensions(GL11.glGetInteger(GL11.GL_TEXTURE_BINDING_2D)).width / 16;
  559.  
  560. float tx = 1.0f / (32 * tileSize);
  561. float tz = -1.0f / tileSize;
  562.  
  563. par1Tessellator.startDrawingQuads();
  564. par1Tessellator.setNormal(1.0F, 0.0F, 0.0F);
  565. for (var8 = 0; var8 < tileSize; ++var8)
  566. {
  567. var9 = (float)var8 / tileSize;
  568. var10 = par2 + (par4 - par2) * var9 - tx;
  569. var11 = var6 * var9;
  570. par1Tessellator.addVertexWithUV(-(double)var11, 0.0D, (double)(0.0F - var7), (double)var10, (double)par5);
  571. par1Tessellator.addVertexWithUV(-(double)var11, 0.0D, (double)c, (double)var10, (double)par5);
  572. par1Tessellator.addVertexWithUV(-(double)var11, 1.0D, (double)c, (double)var10, (double)par3);
  573. par1Tessellator.addVertexWithUV(-(double)var11, 1.0D, (double)(0.0F - var7), (double)var10,(double)par3);
  574. }
  575.  
  576. par1Tessellator.draw();
  577. par1Tessellator.startDrawingQuads();
  578. par1Tessellator.setNormal(-1.0F, 0.0F, 0.0F);
  579.  
  580. for (var8 = 0; var8 < tileSize; ++var8)
  581. {
  582. var9 = (float)var8 / tileSize;
  583. var10 = par2 + (par4 - par2) * var9 - tx;
  584. var11 = var6 * var9 + tz;
  585. par1Tessellator.addVertexWithUV((double)var11, 1.0D, (double)(0.0F - var7), (double)var10, (double)par3);
  586. par1Tessellator.addVertexWithUV((double)var11, 1.0D, (double)c, (double)var10, (double)par3);
  587. par1Tessellator.addVertexWithUV((double)var11, 0.0D, (double)c, (double)var10, (double)par5);
  588. par1Tessellator.addVertexWithUV((double)var11, 0.0D, (double)(0.0F - var7), (double)var10, (double)par5);
  589. }
  590.  
  591. par1Tessellator.draw();
  592. par1Tessellator.startDrawingQuads();
  593. par1Tessellator.setNormal(0.0F, -1.0F, 0.0F);
  594.  
  595. for (var8 = 0; var8 < tileSize; ++var8)
  596. {
  597. var9 = (float)var8 / tileSize;
  598. var10 = par5 + (par3 - par5) * var9 - tx;
  599. var11 = var6 * var9 + tz;
  600. par1Tessellator.addVertexWithUV(0.0D, (double)var11, (double)c, (double)par2, (double)var10);
  601. par1Tessellator.addVertexWithUV((double)var6, (double)var11, (double)c, (double)par4, (double)var10);
  602. par1Tessellator.addVertexWithUV((double)var6, (double)var11, (double)(0.0F - var7), (double)par4, (double)var10);
  603. par1Tessellator.addVertexWithUV(0.0D, (double)var11, (double)(0.0F - var7), (double)par2, (double)var10);
  604. }
  605.  
  606. par1Tessellator.draw();
  607. par1Tessellator.startDrawingQuads();
  608. par1Tessellator.setNormal(0.0F, 1.0F, 0.0F);
  609.  
  610. for (var8 = 0; var8 < tileSize; ++var8)
  611. {
  612. var9 = (float)var8 / tileSize;
  613. var10 = par5 + (par3 - par5) * var9 - tx;
  614. var11 = var6 * var9;
  615. par1Tessellator.addVertexWithUV((double)var6, (double)var11, (double)c, (double)par4, (double)var10);
  616. par1Tessellator.addVertexWithUV(0.0D, (double)var11, (double)c, (double)par2, (double)var10);
  617. par1Tessellator.addVertexWithUV(0.0D, (double)var11, (double)(0.0F - var7), (double)par2, (double)var10);
  618. par1Tessellator.addVertexWithUV((double)var6, (double)var11, (double)(0.0F - var7), (double)par4, (double)var10);
  619. }
  620.  
  621. par1Tessellator.draw();
  622.  
  623. }
  624. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement