001 package net.minecraft.src; 002 003 import cpw.mods.fml.common.Side; 004 import cpw.mods.fml.common.asm.SideOnly; 005 import net.minecraft.client.Minecraft; 006 import static net.minecraftforge.common.ForgeDirection.*; 007 008 import org.lwjgl.opengl.GL11; 009 import org.lwjgl.opengl.GL12; 010 011 @SideOnly(Side.CLIENT) 012 public class RenderBlocks 013 { 014 /** The IBlockAccess used by this instance of RenderBlocks */ 015 public IBlockAccess blockAccess; 016 017 /** 018 * If set to >=0, all block faces will be rendered using this texture index 019 */ 020 public int overrideBlockTexture = -1; 021 022 /** 023 * Set to true if the texture should be flipped horizontally during render*Face 024 */ 025 public boolean flipTexture = false; 026 027 /** 028 * If true, renders all faces on all blocks rather than using the logic in Block.shouldSideBeRendered. Unused. 029 */ 030 public boolean renderAllFaces = false; 031 032 /** Fancy grass side matching biome */ 033 public static boolean fancyGrass = true; 034 public boolean useInventoryTint = true; 035 public double field_83021_g; 036 public double field_83026_h; 037 public double field_83027_i; 038 public double field_83024_j; 039 public double field_83025_k; 040 public double field_83022_l; 041 public boolean field_83023_m = false; 042 public int uvRotateEast = 0; 043 public int uvRotateWest = 0; 044 public int uvRotateSouth = 0; 045 public int uvRotateNorth = 0; 046 public int uvRotateTop = 0; 047 public int uvRotateBottom = 0; 048 049 /** Whether ambient occlusion is enabled or not */ 050 public boolean enableAO; 051 052 /** Light value of the block itself */ 053 public float lightValueOwn; 054 055 /** Light value one block less in x axis */ 056 public float aoLightValueXNeg; 057 058 /** Light value one block more in y axis */ 059 public float aoLightValueYNeg; 060 061 /** Light value one block more in z axis */ 062 public float aoLightValueZNeg; 063 064 /** Light value one block more in x axis */ 065 public float aoLightValueXPos; 066 067 /** Light value one block more in y axis */ 068 public float aoLightValueYPos; 069 070 /** Light value one block more in z axis */ 071 public float aoLightValueZPos; 072 073 /** 074 * Used as a scratch variable for ambient occlusion on the north/bottom/east corner. 075 */ 076 public float aoLightValueScratchXYZNNN; 077 078 /** 079 * Used as a scratch variable for ambient occlusion between the bottom face and the north face. 080 */ 081 public float aoLightValueScratchXYNN; 082 083 /** 084 * Used as a scratch variable for ambient occlusion on the north/bottom/west corner. 085 */ 086 public float aoLightValueScratchXYZNNP; 087 088 /** 089 * Used as a scratch variable for ambient occlusion between the bottom face and the east face. 090 */ 091 public float aoLightValueScratchYZNN; 092 093 /** 094 * Used as a scratch variable for ambient occlusion between the bottom face and the west face. 095 */ 096 public float aoLightValueScratchYZNP; 097 098 /** 099 * Used as a scratch variable for ambient occlusion on the south/bottom/east corner. 100 */ 101 public float aoLightValueScratchXYZPNN; 102 103 /** 104 * Used as a scratch variable for ambient occlusion between the bottom face and the south face. 105 */ 106 public float aoLightValueScratchXYPN; 107 108 /** 109 * Used as a scratch variable for ambient occlusion on the south/bottom/west corner. 110 */ 111 public float aoLightValueScratchXYZPNP; 112 113 /** 114 * Used as a scratch variable for ambient occlusion on the north/top/east corner. 115 */ 116 public float aoLightValueScratchXYZNPN; 117 118 /** 119 * Used as a scratch variable for ambient occlusion between the top face and the north face. 120 */ 121 public float aoLightValueScratchXYNP; 122 123 /** 124 * Used as a scratch variable for ambient occlusion on the north/top/west corner. 125 */ 126 public float aoLightValueScratchXYZNPP; 127 128 /** 129 * Used as a scratch variable for ambient occlusion between the top face and the east face. 130 */ 131 public float aoLightValueScratchYZPN; 132 133 /** 134 * Used as a scratch variable for ambient occlusion on the south/top/east corner. 135 */ 136 public float aoLightValueScratchXYZPPN; 137 138 /** 139 * Used as a scratch variable for ambient occlusion between the top face and the south face. 140 */ 141 public float aoLightValueScratchXYPP; 142 143 /** 144 * Used as a scratch variable for ambient occlusion between the top face and the west face. 145 */ 146 public float aoLightValueScratchYZPP; 147 148 /** 149 * Used as a scratch variable for ambient occlusion on the south/top/west corner. 150 */ 151 public float aoLightValueScratchXYZPPP; 152 153 /** 154 * Used as a scratch variable for ambient occlusion between the north face and the east face. 155 */ 156 public float aoLightValueScratchXZNN; 157 158 /** 159 * Used as a scratch variable for ambient occlusion between the south face and the east face. 160 */ 161 public float aoLightValueScratchXZPN; 162 163 /** 164 * Used as a scratch variable for ambient occlusion between the north face and the west face. 165 */ 166 public float aoLightValueScratchXZNP; 167 168 /** 169 * Used as a scratch variable for ambient occlusion between the south face and the west face. 170 */ 171 public float aoLightValueScratchXZPP; 172 173 /** Ambient occlusion brightness XYZNNN */ 174 public int aoBrightnessXYZNNN; 175 176 /** Ambient occlusion brightness XYNN */ 177 public int aoBrightnessXYNN; 178 179 /** Ambient occlusion brightness XYZNNP */ 180 public int aoBrightnessXYZNNP; 181 182 /** Ambient occlusion brightness YZNN */ 183 public int aoBrightnessYZNN; 184 185 /** Ambient occlusion brightness YZNP */ 186 public int aoBrightnessYZNP; 187 188 /** Ambient occlusion brightness XYZPNN */ 189 public int aoBrightnessXYZPNN; 190 191 /** Ambient occlusion brightness XYPN */ 192 public int aoBrightnessXYPN; 193 194 /** Ambient occlusion brightness XYZPNP */ 195 public int aoBrightnessXYZPNP; 196 197 /** Ambient occlusion brightness XYZNPN */ 198 public int aoBrightnessXYZNPN; 199 200 /** Ambient occlusion brightness XYNP */ 201 public int aoBrightnessXYNP; 202 203 /** Ambient occlusion brightness XYZNPP */ 204 public int aoBrightnessXYZNPP; 205 206 /** Ambient occlusion brightness YZPN */ 207 public int aoBrightnessYZPN; 208 209 /** Ambient occlusion brightness XYZPPN */ 210 public int aoBrightnessXYZPPN; 211 212 /** Ambient occlusion brightness XYPP */ 213 public int aoBrightnessXYPP; 214 215 /** Ambient occlusion brightness YZPP */ 216 public int aoBrightnessYZPP; 217 218 /** Ambient occlusion brightness XYZPPP */ 219 public int aoBrightnessXYZPPP; 220 221 /** Ambient occlusion brightness XZNN */ 222 public int aoBrightnessXZNN; 223 224 /** Ambient occlusion brightness XZPN */ 225 public int aoBrightnessXZPN; 226 227 /** Ambient occlusion brightness XZNP */ 228 public int aoBrightnessXZNP; 229 230 /** Ambient occlusion brightness XZPP */ 231 public int aoBrightnessXZPP; 232 233 /** Ambient occlusion type (0=simple, 1=complex) */ 234 public int aoType = 1; 235 236 /** Brightness top left */ 237 public int brightnessTopLeft; 238 239 /** Brightness bottom left */ 240 public int brightnessBottomLeft; 241 242 /** Brightness bottom right */ 243 public int brightnessBottomRight; 244 245 /** Brightness top right */ 246 public int brightnessTopRight; 247 248 /** Red color value for the top left corner */ 249 public float colorRedTopLeft; 250 251 /** Red color value for the bottom left corner */ 252 public float colorRedBottomLeft; 253 254 /** Red color value for the bottom right corner */ 255 public float colorRedBottomRight; 256 257 /** Red color value for the top right corner */ 258 public float colorRedTopRight; 259 260 /** Green color value for the top left corner */ 261 public float colorGreenTopLeft; 262 263 /** Green color value for the bottom left corner */ 264 public float colorGreenBottomLeft; 265 266 /** Green color value for the bottom right corner */ 267 public float colorGreenBottomRight; 268 269 /** Green color value for the top right corner */ 270 public float colorGreenTopRight; 271 272 /** Blue color value for the top left corner */ 273 public float colorBlueTopLeft; 274 275 /** Blue color value for the bottom left corner */ 276 public float colorBlueBottomLeft; 277 278 /** Blue color value for the bottom right corner */ 279 public float colorBlueBottomRight; 280 281 /** Blue color value for the top right corner */ 282 public float colorBlueTopRight; 283 284 /** 285 * Grass flag for ambient occlusion on Center X, Positive Y, and Negative Z 286 */ 287 public boolean aoGrassXYZCPN; 288 289 /** 290 * Grass flag for ambient occlusion on Positive X, Positive Y, and Center Z 291 */ 292 public boolean aoGrassXYZPPC; 293 294 /** 295 * Grass flag for ambient occlusion on Negative X, Positive Y, and Center Z 296 */ 297 public boolean aoGrassXYZNPC; 298 299 /** 300 * Grass flag for ambient occlusion on Center X, Positive Y, and Positive Z 301 */ 302 public boolean aoGrassXYZCPP; 303 304 /** 305 * Grass flag for ambient occlusion on Negative X, Center Y, and Negative Z 306 */ 307 public boolean aoGrassXYZNCN; 308 309 /** 310 * Grass flag for ambient occlusion on Positive X, Center Y, and Positive Z 311 */ 312 public boolean aoGrassXYZPCP; 313 314 /** 315 * Grass flag for ambient occlusion on Negative X, Center Y, and Positive Z 316 */ 317 public boolean aoGrassXYZNCP; 318 319 /** 320 * Grass flag for ambient occlusion on Positive X, Center Y, and Negative Z 321 */ 322 public boolean aoGrassXYZPCN; 323 324 /** 325 * Grass flag for ambient occlusion on Center X, Negative Y, and Negative Z 326 */ 327 public boolean aoGrassXYZCNN; 328 329 /** 330 * Grass flag for ambient occlusion on Positive X, Negative Y, and Center Z 331 */ 332 public boolean aoGrassXYZPNC; 333 334 /** 335 * Grass flag for ambient occlusion on Negative X, Negative Y, and center Z 336 */ 337 public boolean aoGrassXYZNNC; 338 339 /** 340 * Grass flag for ambient occlusion on Center X, Negative Y, and Positive Z 341 */ 342 public boolean aoGrassXYZCNP; 343 344 public RenderBlocks(IBlockAccess par1IBlockAccess) 345 { 346 this.blockAccess = par1IBlockAccess; 347 } 348 349 public RenderBlocks() {} 350 351 public void func_82774_a(int par1) 352 { 353 this.overrideBlockTexture = par1; 354 } 355 356 /** 357 * Clear override block texture 358 */ 359 public void clearOverrideBlockTexture() 360 { 361 this.overrideBlockTexture = -1; 362 } 363 364 /** 365 * Sets the size and offset of the block to be rendered, ie: half size and rendered center block: 0.25D, 0.75D 366 */ 367 public void setRenderMinMax(double par1, double par3, double par5, double par7, double par9, double par11) 368 { 369 if (!this.field_83023_m) 370 { 371 this.field_83021_g = par1; 372 this.field_83026_h = par7; 373 this.field_83027_i = par3; 374 this.field_83024_j = par9; 375 this.field_83025_k = par5; 376 this.field_83022_l = par11; 377 } 378 } 379 380 public void func_83018_a(Block par1Block) 381 { 382 if (!this.field_83023_m) 383 { 384 this.field_83021_g = par1Block.getBlockBoundsMinX(); 385 this.field_83026_h = par1Block.getBlockBoundsMaxX(); 386 this.field_83027_i = par1Block.getBlockBoundsMinY(); 387 this.field_83024_j = par1Block.getBlockBoundsMaxY(); 388 this.field_83025_k = par1Block.getBlockBoundsMinZ(); 389 this.field_83022_l = par1Block.getBlockBoundsMaxZ(); 390 } 391 } 392 393 public void func_83019_b(double par1, double par3, double par5, double par7, double par9, double par11) 394 { 395 this.field_83021_g = par1; 396 this.field_83026_h = par7; 397 this.field_83027_i = par3; 398 this.field_83024_j = par9; 399 this.field_83025_k = par5; 400 this.field_83022_l = par11; 401 this.field_83023_m = true; 402 } 403 404 public void func_83017_b() 405 { 406 this.field_83023_m = false; 407 } 408 409 /** 410 * Renders a block using the given texture instead of the block's own default texture 411 */ 412 public void renderBlockUsingTexture(Block par1Block, int par2, int par3, int par4, int par5) 413 { 414 this.overrideBlockTexture = par5; 415 this.renderBlockByRenderType(par1Block, par2, par3, par4); 416 this.overrideBlockTexture = -1; 417 } 418 419 /** 420 * Render all faces of a block 421 */ 422 public void renderBlockAllFaces(Block par1Block, int par2, int par3, int par4) 423 { 424 this.renderAllFaces = true; 425 this.renderBlockByRenderType(par1Block, par2, par3, par4); 426 this.renderAllFaces = false; 427 } 428 429 /** 430 * Renders the block at the given coordinates using the block's rendering type 431 */ 432 public boolean renderBlockByRenderType(Block par1Block, int par2, int par3, int par4) 433 { 434 int var5 = par1Block.getRenderType(); 435 par1Block.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4); 436 this.func_83018_a(par1Block); 437 switch (var5) 438 { 439 case 0: 440 return this.renderStandardBlock(par1Block, par2, par3, par4); 441 case 31: 442 return this.renderBlockLog(par1Block, par2, par3, par4); 443 case 4: 444 return this.renderBlockFluids(par1Block, par2, par3, par4); 445 case 13: 446 return this.renderBlockCactus(par1Block, par2, par3, par4); 447 case 1: 448 return this.renderCrossedSquares(par1Block, par2, par3, par4); 449 case 19: 450 return this.renderBlockStem(par1Block, par2, par3, par4); 451 case 23: 452 return this.renderBlockLilyPad(par1Block, par2, par3, par4); 453 case 6: 454 return this.renderBlockCrops(par1Block, par2, par3, par4); 455 case 2: 456 return this.renderBlockTorch(par1Block, par2, par3, par4); 457 case 3: 458 return this.renderBlockFire(par1Block, par2, par3, par4); 459 case 5: 460 return this.renderBlockRedstoneWire(par1Block, par2, par3, par4); 461 case 8: 462 return this.renderBlockLadder(par1Block, par2, par3, par4); 463 case 7: 464 return this.renderBlockDoor(par1Block, par2, par3, par4); 465 case 9: 466 return this.renderBlockMinecartTrack((BlockRail)par1Block, par2, par3, par4); 467 case 10: 468 return this.renderBlockStairs((BlockStairs)par1Block, par2, par3, par4); 469 case 27: 470 return this.renderBlockDragonEgg((BlockDragonEgg)par1Block, par2, par3, par4); 471 case 11: 472 return this.renderBlockFence((BlockFence)par1Block, par2, par3, par4); 473 case 32: 474 return this.func_82779_a((BlockWall)par1Block, par2, par3, par4); 475 case 12: 476 return this.renderBlockLever(par1Block, par2, par3, par4); 477 case 29: 478 return this.renderBlockTripWireSource(par1Block, par2, par3, par4); 479 case 30: 480 return this.renderBlockTripWire(par1Block, par2, par3, par4); 481 case 14: 482 return this.renderBlockBed(par1Block, par2, par3, par4); 483 case 15: 484 return this.renderBlockRepeater(par1Block, par2, par3, par4); 485 case 16: 486 return this.renderPistonBase(par1Block, par2, par3, par4, false); 487 case 17: 488 return this.renderPistonExtension(par1Block, par2, par3, par4, true); 489 case 18: 490 return this.renderBlockPane((BlockPane)par1Block, par2, par3, par4); 491 case 20: 492 return this.renderBlockVine(par1Block, par2, par3, par4); 493 case 21: 494 return this.renderBlockFenceGate((BlockFenceGate)par1Block, par2, par3, par4); 495 case 24: 496 return this.renderBlockCauldron((BlockCauldron)par1Block, par2, par3, par4); 497 case 33: 498 return this.func_82780_a((BlockFlowerPot)par1Block, par2, par3, par4); 499 case 35: 500 return this.func_82775_a((BlockAnvil)par1Block, par2, par3, par4); 501 case 25: 502 return this.renderBlockBrewingStand((BlockBrewingStand)par1Block, par2, par3, par4); 503 case 26: 504 return this.renderBlockEndPortalFrame(par1Block, par2, par3, par4); 505 case 28: 506 return this.renderBlockCocoa((BlockCocoa)par1Block, par2, par3, par4); 507 case 34: 508 return this.func_82778_a((BlockBeacon)par1Block, par2, par3, par4); 509 default: 510 return FMLRenderAccessLibrary.renderWorldBlock(this, blockAccess, par2, par3, par4, par1Block, var5); 511 } 512 } 513 514 /** 515 * Render BlockEndPortalFrame 516 */ 517 public boolean renderBlockEndPortalFrame(Block par1Block, int par2, int par3, int par4) 518 { 519 int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4); 520 int var6 = var5 & 3; 521 522 if (var6 == 0) 523 { 524 this.uvRotateTop = 3; 525 } 526 else if (var6 == 3) 527 { 528 this.uvRotateTop = 1; 529 } 530 else if (var6 == 1) 531 { 532 this.uvRotateTop = 2; 533 } 534 535 if (!BlockEndPortalFrame.isEnderEyeInserted(var5)) 536 { 537 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 0.8125D, 1.0D); 538 this.renderStandardBlock(par1Block, par2, par3, par4); 539 this.uvRotateTop = 0; 540 return true; 541 } 542 else 543 { 544 this.renderAllFaces = true; 545 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 0.8125D, 1.0D); 546 this.renderStandardBlock(par1Block, par2, par3, par4); 547 this.overrideBlockTexture = 174; 548 this.setRenderMinMax(0.25D, 0.8125D, 0.25D, 0.75D, 1.0D, 0.75D); 549 this.renderStandardBlock(par1Block, par2, par3, par4); 550 this.renderAllFaces = false; 551 this.clearOverrideBlockTexture(); 552 this.uvRotateTop = 0; 553 return true; 554 } 555 } 556 557 /** 558 * render a bed at the given coordinates 559 */ 560 public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4) 561 { 562 Tessellator var5 = Tessellator.instance; 563 int var7 = par1Block.getBedDirection(blockAccess, par2, par3, par4); 564 boolean var8 = par1Block.isBedFoot(blockAccess, par2, par3, par4); 565 float var9 = 0.5F; 566 float var10 = 1.0F; 567 float var11 = 0.8F; 568 float var12 = 0.6F; 569 int var25 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4); 570 var5.setBrightness(var25); 571 var5.setColorOpaque_F(var9, var9, var9); 572 int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0); 573 if (overrideBlockTexture >= 0) var27 = overrideBlockTexture; //BugFix Proper breaking texture on underside 574 int var28 = (var27 & 15) << 4; 575 int var29 = var27 & 240; 576 double var30 = (double)((float)var28 / 256.0F); 577 double var32 = ((double)(var28 + 16) - 0.01D) / 256.0D; 578 double var34 = (double)((float)var29 / 256.0F); 579 double var36 = ((double)(var29 + 16) - 0.01D) / 256.0D; 580 double var38 = (double)par2 + this.field_83021_g; 581 double var40 = (double)par2 + this.field_83026_h; 582 double var42 = (double)par3 + this.field_83027_i + 0.1875D; 583 double var44 = (double)par4 + this.field_83025_k; 584 double var46 = (double)par4 + this.field_83022_l; 585 var5.addVertexWithUV(var38, var42, var46, var30, var36); 586 var5.addVertexWithUV(var38, var42, var44, var30, var34); 587 var5.addVertexWithUV(var40, var42, var44, var32, var34); 588 var5.addVertexWithUV(var40, var42, var46, var32, var36); 589 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); 590 var5.setColorOpaque_F(var10, var10, var10); 591 var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1); 592 if (overrideBlockTexture >= 0) var27 = overrideBlockTexture; //BugFix Proper breaking texture on top 593 var28 = (var27 & 15) << 4; 594 var29 = var27 & 240; 595 var30 = (double)((float)var28 / 256.0F); 596 var32 = ((double)(var28 + 16) - 0.01D) / 256.0D; 597 var34 = (double)((float)var29 / 256.0F); 598 var36 = ((double)(var29 + 16) - 0.01D) / 256.0D; 599 var38 = var30; 600 var40 = var32; 601 var42 = var34; 602 var44 = var34; 603 var46 = var30; 604 double var48 = var32; 605 double var50 = var36; 606 double var52 = var36; 607 608 if (var7 == 0) 609 { 610 var40 = var30; 611 var42 = var36; 612 var46 = var32; 613 var52 = var34; 614 } 615 else if (var7 == 2) 616 { 617 var38 = var32; 618 var44 = var36; 619 var48 = var30; 620 var50 = var34; 621 } 622 else if (var7 == 3) 623 { 624 var38 = var32; 625 var44 = var36; 626 var48 = var30; 627 var50 = var34; 628 var40 = var30; 629 var42 = var36; 630 var46 = var32; 631 var52 = var34; 632 } 633 634 double var54 = (double)par2 + this.field_83021_g; 635 double var56 = (double)par2 + this.field_83026_h; 636 double var58 = (double)par3 + this.field_83024_j; 637 double var60 = (double)par4 + this.field_83025_k; 638 double var62 = (double)par4 + this.field_83022_l; 639 var5.addVertexWithUV(var56, var58, var62, var46, var50); 640 var5.addVertexWithUV(var56, var58, var60, var38, var42); 641 var5.addVertexWithUV(var54, var58, var60, var40, var44); 642 var5.addVertexWithUV(var54, var58, var62, var48, var52); 643 int var64 = Direction.headInvisibleFace[var7]; 644 645 if (var8) 646 { 647 var64 = Direction.headInvisibleFace[Direction.footInvisibleFaceRemap[var7]]; 648 } 649 650 byte var65 = 4; 651 652 switch (var7) 653 { 654 case 0: 655 var65 = 5; 656 break; 657 case 1: 658 var65 = 3; 659 case 2: 660 default: 661 break; 662 case 3: 663 var65 = 2; 664 } 665 666 if (var64 != 2 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2))) 667 { 668 var5.setBrightness(this.field_83025_k > 0.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1)); 669 var5.setColorOpaque_F(var11, var11, var11); 670 this.flipTexture = var65 == 2; 671 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2)); 672 } 673 674 if (var64 != 3 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3))) 675 { 676 var5.setBrightness(this.field_83022_l < 1.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1)); 677 var5.setColorOpaque_F(var11, var11, var11); 678 this.flipTexture = var65 == 3; 679 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3)); 680 } 681 682 if (var64 != 4 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4))) 683 { 684 var5.setBrightness(this.field_83025_k > 0.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4)); 685 var5.setColorOpaque_F(var12, var12, var12); 686 this.flipTexture = var65 == 4; 687 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4)); 688 } 689 690 if (var64 != 5 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5))) 691 { 692 var5.setBrightness(this.field_83022_l < 1.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4)); 693 var5.setColorOpaque_F(var12, var12, var12); 694 this.flipTexture = var65 == 5; 695 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5)); 696 } 697 698 this.flipTexture = false; 699 return true; 700 } 701 702 /** 703 * Render BlockBrewingStand 704 */ 705 public boolean renderBlockBrewingStand(BlockBrewingStand par1BlockBrewingStand, int par2, int par3, int par4) 706 { 707 this.setRenderMinMax(0.4375D, 0.0D, 0.4375D, 0.5625D, 0.875D, 0.5625D); 708 this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4); 709 this.overrideBlockTexture = 156; 710 this.setRenderMinMax(0.5625D, 0.0D, 0.3125D, 0.9375D, 0.125D, 0.6875D); 711 this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4); 712 this.setRenderMinMax(0.125D, 0.0D, 0.0625D, 0.5D, 0.125D, 0.4375D); 713 this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4); 714 this.setRenderMinMax(0.125D, 0.0D, 0.5625D, 0.5D, 0.125D, 0.9375D); 715 this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4); 716 this.clearOverrideBlockTexture(); 717 Tessellator var5 = Tessellator.instance; 718 var5.setBrightness(par1BlockBrewingStand.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 719 float var6 = 1.0F; 720 int var7 = par1BlockBrewingStand.colorMultiplier(this.blockAccess, par2, par3, par4); 721 float var8 = (float)(var7 >> 16 & 255) / 255.0F; 722 float var9 = (float)(var7 >> 8 & 255) / 255.0F; 723 float var10 = (float)(var7 & 255) / 255.0F; 724 725 if (EntityRenderer.anaglyphEnable) 726 { 727 float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F; 728 float var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F; 729 float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F; 730 var8 = var11; 731 var9 = var12; 732 var10 = var13; 733 } 734 735 var5.setColorOpaque_F(var6 * var8, var6 * var9, var6 * var10); 736 int var34 = par1BlockBrewingStand.getBlockTextureFromSideAndMetadata(0, 0); 737 738 if (this.overrideBlockTexture >= 0) 739 { 740 var34 = this.overrideBlockTexture; 741 } 742 743 int var35 = (var34 & 15) << 4; 744 int var36 = var34 & 240; 745 double var14 = (double)((float)var36 / 256.0F); 746 double var16 = (double)(((float)var36 + 15.99F) / 256.0F); 747 int var18 = this.blockAccess.getBlockMetadata(par2, par3, par4); 748 749 for (int var19 = 0; var19 < 3; ++var19) 750 { 751 double var20 = (double)var19 * Math.PI * 2.0D / 3.0D + (Math.PI / 2D); 752 double var22 = (double)(((float)var35 + 8.0F) / 256.0F); 753 double var24 = (double)(((float)var35 + 15.99F) / 256.0F); 754 755 if ((var18 & 1 << var19) != 0) 756 { 757 var22 = (double)(((float)var35 + 7.99F) / 256.0F); 758 var24 = (double)(((float)var35 + 0.0F) / 256.0F); 759 } 760 761 double var26 = (double)par2 + 0.5D; 762 double var28 = (double)par2 + 0.5D + Math.sin(var20) * 8.0D / 16.0D; 763 double var30 = (double)par4 + 0.5D; 764 double var32 = (double)par4 + 0.5D + Math.cos(var20) * 8.0D / 16.0D; 765 var5.addVertexWithUV(var26, (double)(par3 + 1), var30, var22, var14); 766 var5.addVertexWithUV(var26, (double)(par3 + 0), var30, var22, var16); 767 var5.addVertexWithUV(var28, (double)(par3 + 0), var32, var24, var16); 768 var5.addVertexWithUV(var28, (double)(par3 + 1), var32, var24, var14); 769 var5.addVertexWithUV(var28, (double)(par3 + 1), var32, var24, var14); 770 var5.addVertexWithUV(var28, (double)(par3 + 0), var32, var24, var16); 771 var5.addVertexWithUV(var26, (double)(par3 + 0), var30, var22, var16); 772 var5.addVertexWithUV(var26, (double)(par3 + 1), var30, var22, var14); 773 } 774 775 par1BlockBrewingStand.setBlockBoundsForItemRender(); 776 return true; 777 } 778 779 /** 780 * Render block cauldron 781 */ 782 public boolean renderBlockCauldron(BlockCauldron par1BlockCauldron, int par2, int par3, int par4) 783 { 784 this.renderStandardBlock(par1BlockCauldron, par2, par3, par4); 785 Tessellator var5 = Tessellator.instance; 786 var5.setBrightness(par1BlockCauldron.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 787 float var6 = 1.0F; 788 int var7 = par1BlockCauldron.colorMultiplier(this.blockAccess, par2, par3, par4); 789 float var8 = (float)(var7 >> 16 & 255) / 255.0F; 790 float var9 = (float)(var7 >> 8 & 255) / 255.0F; 791 float var10 = (float)(var7 & 255) / 255.0F; 792 float var12; 793 794 if (EntityRenderer.anaglyphEnable) 795 { 796 float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F; 797 var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F; 798 float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F; 799 var8 = var11; 800 var9 = var12; 801 var10 = var13; 802 } 803 804 var5.setColorOpaque_F(var6 * var8, var6 * var9, var6 * var10); 805 short var16 = 154; 806 var12 = 0.125F; 807 this.renderSouthFace(par1BlockCauldron, (double)((float)par2 - 1.0F + var12), (double)par3, (double)par4, var16); 808 this.renderNorthFace(par1BlockCauldron, (double)((float)par2 + 1.0F - var12), (double)par3, (double)par4, var16); 809 this.renderWestFace(par1BlockCauldron, (double)par2, (double)par3, (double)((float)par4 - 1.0F + var12), var16); 810 this.renderEastFace(par1BlockCauldron, (double)par2, (double)par3, (double)((float)par4 + 1.0F - var12), var16); 811 short var17 = 139; 812 this.renderTopFace(par1BlockCauldron, (double)par2, (double)((float)par3 - 1.0F + 0.25F), (double)par4, var17); 813 this.renderBottomFace(par1BlockCauldron, (double)par2, (double)((float)par3 + 1.0F - 0.75F), (double)par4, var17); 814 int var14 = this.blockAccess.getBlockMetadata(par2, par3, par4); 815 816 if (var14 > 0) 817 { 818 short var15 = 205; 819 820 if (var14 > 3) 821 { 822 var14 = 3; 823 } 824 825 this.renderTopFace(par1BlockCauldron, (double)par2, (double)((float)par3 - 1.0F + (6.0F + (float)var14 * 3.0F) / 16.0F), (double)par4, var15); 826 } 827 828 return true; 829 } 830 831 public boolean func_82780_a(BlockFlowerPot par1BlockFlowerPot, int par2, int par3, int par4) 832 { 833 this.renderStandardBlock(par1BlockFlowerPot, par2, par3, par4); 834 Tessellator var5 = Tessellator.instance; 835 var5.setBrightness(par1BlockFlowerPot.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 836 float var6 = 1.0F; 837 int var7 = par1BlockFlowerPot.colorMultiplier(this.blockAccess, par2, par3, par4); 838 int var8 = par1BlockFlowerPot.getBlockTextureFromSide(0); 839 float var9 = (float)(var7 >> 16 & 255) / 255.0F; 840 float var10 = (float)(var7 >> 8 & 255) / 255.0F; 841 float var11 = (float)(var7 & 255) / 255.0F; 842 float var12; 843 float var14; 844 845 if (EntityRenderer.anaglyphEnable) 846 { 847 var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F; 848 float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F; 849 var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F; 850 var9 = var12; 851 var10 = var13; 852 var11 = var14; 853 } 854 855 var5.setColorOpaque_F(var6 * var9, var6 * var10, var6 * var11); 856 var12 = 0.1865F; 857 this.renderSouthFace(par1BlockFlowerPot, (double)((float)par2 - 0.5F + var12), (double)par3, (double)par4, var8); 858 this.renderNorthFace(par1BlockFlowerPot, (double)((float)par2 + 0.5F - var12), (double)par3, (double)par4, var8); 859 this.renderWestFace(par1BlockFlowerPot, (double)par2, (double)par3, (double)((float)par4 - 0.5F + var12), var8); 860 this.renderEastFace(par1BlockFlowerPot, (double)par2, (double)par3, (double)((float)par4 + 0.5F - var12), var8); 861 this.renderTopFace(par1BlockFlowerPot, (double)par2, (double)((float)par3 - 0.5F + var12 + 0.1875F), (double)par4, Block.dirt.blockIndexInTexture); 862 int var19 = this.blockAccess.getBlockMetadata(par2, par3, par4); 863 864 if (var19 != 0) 865 { 866 var14 = 0.0F; 867 float var15 = 4.0F; 868 float var16 = 0.0F; 869 BlockFlower var17 = null; 870 871 switch (var19) 872 { 873 case 1: 874 var17 = Block.plantRed; 875 break; 876 case 2: 877 var17 = Block.plantYellow; 878 case 3: 879 case 4: 880 case 5: 881 case 6: 882 default: 883 break; 884 case 7: 885 var17 = Block.mushroomRed; 886 break; 887 case 8: 888 var17 = Block.mushroomBrown; 889 } 890 891 var5.addTranslation(var14 / 16.0F, var15 / 16.0F, var16 / 16.0F); 892 893 if (var17 != null) 894 { 895 this.renderBlockByRenderType(var17, par2, par3, par4); 896 } 897 else if (var19 == 9) 898 { 899 this.renderAllFaces = true; 900 float var18 = 0.125F; 901 this.setRenderMinMax((double)(0.5F - var18), 0.0D, (double)(0.5F - var18), (double)(0.5F + var18), 0.25D, (double)(0.5F + var18)); 902 this.renderStandardBlock(Block.cactus, par2, par3, par4); 903 this.setRenderMinMax((double)(0.5F - var18), 0.25D, (double)(0.5F - var18), (double)(0.5F + var18), 0.5D, (double)(0.5F + var18)); 904 this.renderStandardBlock(Block.cactus, par2, par3, par4); 905 this.setRenderMinMax((double)(0.5F - var18), 0.5D, (double)(0.5F - var18), (double)(0.5F + var18), 0.75D, (double)(0.5F + var18)); 906 this.renderStandardBlock(Block.cactus, par2, par3, par4); 907 this.renderAllFaces = false; 908 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 909 } 910 else if (var19 == 3) 911 { 912 this.drawCrossedSquares(Block.sapling, 0, (double)par2, (double)par3, (double)par4, 0.75F); 913 } 914 else if (var19 == 5) 915 { 916 this.drawCrossedSquares(Block.sapling, 2, (double)par2, (double)par3, (double)par4, 0.75F); 917 } 918 else if (var19 == 4) 919 { 920 this.drawCrossedSquares(Block.sapling, 1, (double)par2, (double)par3, (double)par4, 0.75F); 921 } 922 else if (var19 == 6) 923 { 924 this.drawCrossedSquares(Block.sapling, 3, (double)par2, (double)par3, (double)par4, 0.75F); 925 } 926 else if (var19 == 11) 927 { 928 var7 = Block.tallGrass.colorMultiplier(this.blockAccess, par2, par3, par4); 929 var9 = (float)(var7 >> 16 & 255) / 255.0F; 930 var10 = (float)(var7 >> 8 & 255) / 255.0F; 931 var11 = (float)(var7 & 255) / 255.0F; 932 var5.setColorOpaque_F(var6 * var9, var6 * var10, var6 * var11); 933 this.drawCrossedSquares(Block.tallGrass, 2, (double)par2, (double)par3, (double)par4, 0.75F); 934 } 935 else if (var19 == 10) 936 { 937 this.drawCrossedSquares(Block.deadBush, 2, (double)par2, (double)par3, (double)par4, 0.75F); 938 } 939 940 var5.addTranslation(-var14 / 16.0F, -var15 / 16.0F, -var16 / 16.0F); 941 } 942 943 return true; 944 } 945 946 public boolean func_82775_a(BlockAnvil par1BlockAnvil, int par2, int par3, int par4) 947 { 948 return this.func_85096_a(par1BlockAnvil, par2, par3, par4, this.blockAccess.getBlockMetadata(par2, par3, par4)); 949 } 950 951 public boolean func_85096_a(BlockAnvil par1BlockAnvil, int par2, int par3, int par4, int par5) 952 { 953 Tessellator var6 = Tessellator.instance; 954 var6.setBrightness(par1BlockAnvil.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 955 float var7 = 1.0F; 956 int var8 = par1BlockAnvil.colorMultiplier(this.blockAccess, par2, par3, par4); 957 float var9 = (float)(var8 >> 16 & 255) / 255.0F; 958 float var10 = (float)(var8 >> 8 & 255) / 255.0F; 959 float var11 = (float)(var8 & 255) / 255.0F; 960 961 if (EntityRenderer.anaglyphEnable) 962 { 963 float var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F; 964 float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F; 965 float var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F; 966 var9 = var12; 967 var10 = var13; 968 var11 = var14; 969 } 970 971 var6.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11); 972 return this.func_82776_a(par1BlockAnvil, par2, par3, par4, par5, false); 973 } 974 975 public boolean func_82776_a(BlockAnvil par1BlockAnvil, int par2, int par3, int par4, int par5, boolean par6) 976 { 977 int var7 = par6 ? 0 : par5 & 3; 978 boolean var8 = false; 979 float var9 = 0.0F; 980 981 switch (var7) 982 { 983 case 0: 984 this.uvRotateSouth = 2; 985 this.uvRotateNorth = 1; 986 this.uvRotateTop = 3; 987 this.uvRotateBottom = 3; 988 break; 989 case 1: 990 this.uvRotateEast = 1; 991 this.uvRotateWest = 2; 992 this.uvRotateTop = 2; 993 this.uvRotateBottom = 1; 994 var8 = true; 995 break; 996 case 2: 997 this.uvRotateSouth = 1; 998 this.uvRotateNorth = 2; 999 break; 1000 case 3: 1001 this.uvRotateEast = 2; 1002 this.uvRotateWest = 1; 1003 this.uvRotateTop = 1; 1004 this.uvRotateBottom = 2; 1005 var8 = true; 1006 } 1007 1008 var9 = this.func_82777_a(par1BlockAnvil, par2, par3, par4, 0, var9, 0.75F, 0.25F, 0.75F, var8, par6, par5); 1009 var9 = this.func_82777_a(par1BlockAnvil, par2, par3, par4, 1, var9, 0.5F, 0.0625F, 0.625F, var8, par6, par5); 1010 var9 = this.func_82777_a(par1BlockAnvil, par2, par3, par4, 2, var9, 0.25F, 0.3125F, 0.5F, var8, par6, par5); 1011 this.func_82777_a(par1BlockAnvil, par2, par3, par4, 3, var9, 0.625F, 0.375F, 1.0F, var8, par6, par5); 1012 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 1013 this.uvRotateEast = 0; 1014 this.uvRotateWest = 0; 1015 this.uvRotateSouth = 0; 1016 this.uvRotateNorth = 0; 1017 this.uvRotateTop = 0; 1018 this.uvRotateBottom = 0; 1019 return true; 1020 } 1021 1022 public float func_82777_a(BlockAnvil par1BlockAnvil, int par2, int par3, int par4, int par5, float par6, float par7, float par8, float par9, boolean par10, boolean par11, int par12) 1023 { 1024 if (par10) 1025 { 1026 float var13 = par7; 1027 par7 = par9; 1028 par9 = var13; 1029 } 1030 1031 par7 /= 2.0F; 1032 par9 /= 2.0F; 1033 par1BlockAnvil.field_82521_b = par5; 1034 this.setRenderMinMax((double)(0.5F - par7), (double)par6, (double)(0.5F - par9), (double)(0.5F + par7), (double)(par6 + par8), (double)(0.5F + par9)); 1035 1036 if (par11) 1037 { 1038 Tessellator var14 = Tessellator.instance; 1039 var14.startDrawingQuads(); 1040 var14.setNormal(0.0F, -1.0F, 0.0F); 1041 this.renderBottomFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(0, par12)); 1042 var14.draw(); 1043 var14.startDrawingQuads(); 1044 var14.setNormal(0.0F, 1.0F, 0.0F); 1045 this.renderTopFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(1, par12)); 1046 var14.draw(); 1047 var14.startDrawingQuads(); 1048 var14.setNormal(0.0F, 0.0F, -1.0F); 1049 this.renderEastFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(2, par12)); 1050 var14.draw(); 1051 var14.startDrawingQuads(); 1052 var14.setNormal(0.0F, 0.0F, 1.0F); 1053 this.renderWestFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(3, par12)); 1054 var14.draw(); 1055 var14.startDrawingQuads(); 1056 var14.setNormal(-1.0F, 0.0F, 0.0F); 1057 this.renderNorthFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(4, par12)); 1058 var14.draw(); 1059 var14.startDrawingQuads(); 1060 var14.setNormal(1.0F, 0.0F, 0.0F); 1061 this.renderSouthFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(5, par12)); 1062 var14.draw(); 1063 } 1064 else 1065 { 1066 this.renderStandardBlock(par1BlockAnvil, par2, par3, par4); 1067 } 1068 1069 return par6 + par8; 1070 } 1071 1072 /** 1073 * Renders a torch block at the given coordinates 1074 */ 1075 public boolean renderBlockTorch(Block par1Block, int par2, int par3, int par4) 1076 { 1077 int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4); 1078 Tessellator var6 = Tessellator.instance; 1079 var6.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 1080 var6.setColorOpaque_F(1.0F, 1.0F, 1.0F); 1081 double var7 = 0.4000000059604645D; 1082 double var9 = 0.5D - var7; 1083 double var11 = 0.20000000298023224D; 1084 1085 if (var5 == 1) 1086 { 1087 this.renderTorchAtAngle(par1Block, (double)par2 - var9, (double)par3 + var11, (double)par4, -var7, 0.0D); 1088 } 1089 else if (var5 == 2) 1090 { 1091 this.renderTorchAtAngle(par1Block, (double)par2 + var9, (double)par3 + var11, (double)par4, var7, 0.0D); 1092 } 1093 else if (var5 == 3) 1094 { 1095 this.renderTorchAtAngle(par1Block, (double)par2, (double)par3 + var11, (double)par4 - var9, 0.0D, -var7); 1096 } 1097 else if (var5 == 4) 1098 { 1099 this.renderTorchAtAngle(par1Block, (double)par2, (double)par3 + var11, (double)par4 + var9, 0.0D, var7); 1100 } 1101 else 1102 { 1103 this.renderTorchAtAngle(par1Block, (double)par2, (double)par3, (double)par4, 0.0D, 0.0D); 1104 } 1105 1106 return true; 1107 } 1108 1109 /** 1110 * render a redstone repeater at the given coordinates 1111 */ 1112 public boolean renderBlockRepeater(Block par1Block, int par2, int par3, int par4) 1113 { 1114 int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4); 1115 int var6 = var5 & 3; 1116 int var7 = (var5 & 12) >> 2; 1117 this.renderStandardBlock(par1Block, par2, par3, par4); 1118 Tessellator var8 = Tessellator.instance; 1119 var8.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 1120 var8.setColorOpaque_F(1.0F, 1.0F, 1.0F); 1121 double var9 = -0.1875D; 1122 boolean var11 = ((BlockRedstoneRepeater)par1Block).func_82523_e(this.blockAccess, par2, par3, par4, var5); 1123 double var12 = 0.0D; 1124 double var14 = 0.0D; 1125 double var16 = 0.0D; 1126 double var18 = 0.0D; 1127 1128 switch (var6) 1129 { 1130 case 0: 1131 var18 = -0.3125D; 1132 var14 = BlockRedstoneRepeater.repeaterTorchOffset[var7]; 1133 break; 1134 case 1: 1135 var16 = 0.3125D; 1136 var12 = -BlockRedstoneRepeater.repeaterTorchOffset[var7]; 1137 break; 1138 case 2: 1139 var18 = 0.3125D; 1140 var14 = -BlockRedstoneRepeater.repeaterTorchOffset[var7]; 1141 break; 1142 case 3: 1143 var16 = -0.3125D; 1144 var12 = BlockRedstoneRepeater.repeaterTorchOffset[var7]; 1145 } 1146 1147 if (!var11) 1148 { 1149 this.renderTorchAtAngle(par1Block, (double)par2 + var12, (double)par3 + var9, (double)par4 + var14, 0.0D, 0.0D); 1150 } 1151 else 1152 { 1153 this.func_82774_a(17); 1154 byte var20 = 16; 1155 byte var21 = 16; 1156 float var22 = 2.0F; 1157 float var23 = 14.0F; 1158 float var24 = 7.0F; 1159 float var25 = 9.0F; 1160 1161 switch (var6) 1162 { 1163 case 1: 1164 case 3: 1165 var22 = 7.0F; 1166 var23 = 9.0F; 1167 var24 = 2.0F; 1168 var25 = 14.0F; 1169 case 0: 1170 case 2: 1171 default: 1172 this.setRenderMinMax((double)(var22 / 16.0F + (float)var12), 0.125D, (double)(var24 / 16.0F + (float)var14), (double)(var23 / 16.0F + (float)var12), 0.25D, (double)(var25 / 16.0F + (float)var14)); 1173 var8.addVertexWithUV((double)((float)par2 + var22 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var24 / 16.0F) + var14, (double)(((float)var20 + var22) / 256.0F), (double)(((float)var21 + var24) / 256.0F)); 1174 var8.addVertexWithUV((double)((float)par2 + var22 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var25 / 16.0F) + var14, (double)(((float)var20 + var22) / 256.0F), (double)(((float)var21 + var25) / 256.0F)); 1175 var8.addVertexWithUV((double)((float)par2 + var23 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var25 / 16.0F) + var14, (double)(((float)var20 + var23) / 256.0F), (double)(((float)var21 + var25) / 256.0F)); 1176 var8.addVertexWithUV((double)((float)par2 + var23 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var24 / 16.0F) + var14, (double)(((float)var20 + var23) / 256.0F), (double)(((float)var21 + var24) / 256.0F)); 1177 this.renderStandardBlock(par1Block, par2, par3, par4); 1178 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 0.125D, 1.0D); 1179 this.clearOverrideBlockTexture(); 1180 } 1181 } 1182 1183 var8.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 1184 var8.setColorOpaque_F(1.0F, 1.0F, 1.0F); 1185 this.renderTorchAtAngle(par1Block, (double)par2 + var16, (double)par3 + var9, (double)par4 + var18, 0.0D, 0.0D); 1186 int var51 = par1Block.getBlockTextureFromSide(1); 1187 int var53 = (var51 & 15) << 4; 1188 int var52 = var51 & 240; 1189 double var55 = (double)((float)var53 / 256.0F); 1190 double var54 = (double)(((float)var53 + 15.99F) / 256.0F); 1191 double var27 = (double)((float)var52 / 256.0F); 1192 double var29 = (double)(((float)var52 + 15.99F) / 256.0F); 1193 double var31 = 0.125D; 1194 double var33 = (double)(par2 + 1); 1195 double var35 = (double)(par2 + 1); 1196 double var37 = (double)(par2 + 0); 1197 double var39 = (double)(par2 + 0); 1198 double var41 = (double)(par4 + 0); 1199 double var43 = (double)(par4 + 1); 1200 double var45 = (double)(par4 + 1); 1201 double var47 = (double)(par4 + 0); 1202 double var49 = (double)par3 + var31; 1203 1204 if (var6 == 2) 1205 { 1206 var33 = var35 = (double)(par2 + 0); 1207 var37 = var39 = (double)(par2 + 1); 1208 var41 = var47 = (double)(par4 + 1); 1209 var43 = var45 = (double)(par4 + 0); 1210 } 1211 else if (var6 == 3) 1212 { 1213 var33 = var39 = (double)(par2 + 0); 1214 var35 = var37 = (double)(par2 + 1); 1215 var41 = var43 = (double)(par4 + 0); 1216 var45 = var47 = (double)(par4 + 1); 1217 } 1218 else if (var6 == 1) 1219 { 1220 var33 = var39 = (double)(par2 + 1); 1221 var35 = var37 = (double)(par2 + 0); 1222 var41 = var43 = (double)(par4 + 1); 1223 var45 = var47 = (double)(par4 + 0); 1224 } 1225 1226 var8.addVertexWithUV(var39, var49, var47, var55, var27); 1227 var8.addVertexWithUV(var37, var49, var45, var55, var29); 1228 var8.addVertexWithUV(var35, var49, var43, var54, var29); 1229 var8.addVertexWithUV(var33, var49, var41, var54, var27); 1230 return true; 1231 } 1232 1233 /** 1234 * Render all faces of the piston base 1235 */ 1236 public void renderPistonBaseAllFaces(Block par1Block, int par2, int par3, int par4) 1237 { 1238 this.renderAllFaces = true; 1239 this.renderPistonBase(par1Block, par2, par3, par4, true); 1240 this.renderAllFaces = false; 1241 } 1242 1243 /** 1244 * renders a block as a piston base 1245 */ 1246 public boolean renderPistonBase(Block par1Block, int par2, int par3, int par4, boolean par5) 1247 { 1248 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 1249 boolean var7 = par5 || (var6 & 8) != 0; 1250 int var8 = BlockPistonBase.getOrientation(var6); 1251 1252 if (var7) 1253 { 1254 switch (var8) 1255 { 1256 case 0: 1257 this.uvRotateEast = 3; 1258 this.uvRotateWest = 3; 1259 this.uvRotateSouth = 3; 1260 this.uvRotateNorth = 3; 1261 this.setRenderMinMax(0.0D, 0.25D, 0.0D, 1.0D, 1.0D, 1.0D); 1262 break; 1263 case 1: 1264 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 0.75D, 1.0D); 1265 break; 1266 case 2: 1267 this.uvRotateSouth = 1; 1268 this.uvRotateNorth = 2; 1269 this.setRenderMinMax(0.0D, 0.0D, 0.25D, 1.0D, 1.0D, 1.0D); 1270 break; 1271 case 3: 1272 this.uvRotateSouth = 2; 1273 this.uvRotateNorth = 1; 1274 this.uvRotateTop = 3; 1275 this.uvRotateBottom = 3; 1276 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.75D); 1277 break; 1278 case 4: 1279 this.uvRotateEast = 1; 1280 this.uvRotateWest = 2; 1281 this.uvRotateTop = 2; 1282 this.uvRotateBottom = 1; 1283 this.setRenderMinMax(0.25D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 1284 break; 1285 case 5: 1286 this.uvRotateEast = 2; 1287 this.uvRotateWest = 1; 1288 this.uvRotateTop = 1; 1289 this.uvRotateBottom = 2; 1290 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 0.75D, 1.0D, 1.0D); 1291 } 1292 1293 this.renderStandardBlock(par1Block, par2, par3, par4); 1294 this.uvRotateEast = 0; 1295 this.uvRotateWest = 0; 1296 this.uvRotateSouth = 0; 1297 this.uvRotateNorth = 0; 1298 this.uvRotateTop = 0; 1299 this.uvRotateBottom = 0; 1300 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 1301 } 1302 else 1303 { 1304 switch (var8) 1305 { 1306 case 0: 1307 this.uvRotateEast = 3; 1308 this.uvRotateWest = 3; 1309 this.uvRotateSouth = 3; 1310 this.uvRotateNorth = 3; 1311 case 1: 1312 default: 1313 break; 1314 case 2: 1315 this.uvRotateSouth = 1; 1316 this.uvRotateNorth = 2; 1317 break; 1318 case 3: 1319 this.uvRotateSouth = 2; 1320 this.uvRotateNorth = 1; 1321 this.uvRotateTop = 3; 1322 this.uvRotateBottom = 3; 1323 break; 1324 case 4: 1325 this.uvRotateEast = 1; 1326 this.uvRotateWest = 2; 1327 this.uvRotateTop = 2; 1328 this.uvRotateBottom = 1; 1329 break; 1330 case 5: 1331 this.uvRotateEast = 2; 1332 this.uvRotateWest = 1; 1333 this.uvRotateTop = 1; 1334 this.uvRotateBottom = 2; 1335 } 1336 1337 this.renderStandardBlock(par1Block, par2, par3, par4); 1338 this.uvRotateEast = 0; 1339 this.uvRotateWest = 0; 1340 this.uvRotateSouth = 0; 1341 this.uvRotateNorth = 0; 1342 this.uvRotateTop = 0; 1343 this.uvRotateBottom = 0; 1344 } 1345 1346 return true; 1347 } 1348 1349 /** 1350 * Render piston rod up/down 1351 */ 1352 public void renderPistonRodUD(double par1, double par3, double par5, double par7, double par9, double par11, float par13, double par14) 1353 { 1354 int var16 = 108; 1355 1356 if (this.overrideBlockTexture >= 0) 1357 { 1358 var16 = this.overrideBlockTexture; 1359 } 1360 1361 int var17 = (var16 & 15) << 4; 1362 int var18 = var16 & 240; 1363 Tessellator var19 = Tessellator.instance; 1364 double var20 = (double)((float)(var17 + 0) / 256.0F); 1365 double var22 = (double)((float)(var18 + 0) / 256.0F); 1366 double var24 = ((double)var17 + par14 - 0.01D) / 256.0D; 1367 double var26 = ((double)((float)var18 + 4.0F) - 0.01D) / 256.0D; 1368 var19.setColorOpaque_F(par13, par13, par13); 1369 var19.addVertexWithUV(par1, par7, par9, var24, var22); 1370 var19.addVertexWithUV(par1, par5, par9, var20, var22); 1371 var19.addVertexWithUV(par3, par5, par11, var20, var26); 1372 var19.addVertexWithUV(par3, par7, par11, var24, var26); 1373 } 1374 1375 /** 1376 * Render piston rod south/north 1377 */ 1378 public void renderPistonRodSN(double par1, double par3, double par5, double par7, double par9, double par11, float par13, double par14) 1379 { 1380 int var16 = 108; 1381 1382 if (this.overrideBlockTexture >= 0) 1383 { 1384 var16 = this.overrideBlockTexture; 1385 } 1386 1387 int var17 = (var16 & 15) << 4; 1388 int var18 = var16 & 240; 1389 Tessellator var19 = Tessellator.instance; 1390 double var20 = (double)((float)(var17 + 0) / 256.0F); 1391 double var22 = (double)((float)(var18 + 0) / 256.0F); 1392 double var24 = ((double)var17 + par14 - 0.01D) / 256.0D; 1393 double var26 = ((double)((float)var18 + 4.0F) - 0.01D) / 256.0D; 1394 var19.setColorOpaque_F(par13, par13, par13); 1395 var19.addVertexWithUV(par1, par5, par11, var24, var22); 1396 var19.addVertexWithUV(par1, par5, par9, var20, var22); 1397 var19.addVertexWithUV(par3, par7, par9, var20, var26); 1398 var19.addVertexWithUV(par3, par7, par11, var24, var26); 1399 } 1400 1401 /** 1402 * Render piston rod east/west 1403 */ 1404 public void renderPistonRodEW(double par1, double par3, double par5, double par7, double par9, double par11, float par13, double par14) 1405 { 1406 int var16 = 108; 1407 1408 if (this.overrideBlockTexture >= 0) 1409 { 1410 var16 = this.overrideBlockTexture; 1411 } 1412 1413 int var17 = (var16 & 15) << 4; 1414 int var18 = var16 & 240; 1415 Tessellator var19 = Tessellator.instance; 1416 double var20 = (double)((float)(var17 + 0) / 256.0F); 1417 double var22 = (double)((float)(var18 + 0) / 256.0F); 1418 double var24 = ((double)var17 + par14 - 0.01D) / 256.0D; 1419 double var26 = ((double)((float)var18 + 4.0F) - 0.01D) / 256.0D; 1420 var19.setColorOpaque_F(par13, par13, par13); 1421 var19.addVertexWithUV(par3, par5, par9, var24, var22); 1422 var19.addVertexWithUV(par1, par5, par9, var20, var22); 1423 var19.addVertexWithUV(par1, par7, par11, var20, var26); 1424 var19.addVertexWithUV(par3, par7, par11, var24, var26); 1425 } 1426 1427 /** 1428 * Render all faces of the piston extension 1429 */ 1430 public void renderPistonExtensionAllFaces(Block par1Block, int par2, int par3, int par4, boolean par5) 1431 { 1432 this.renderAllFaces = true; 1433 this.renderPistonExtension(par1Block, par2, par3, par4, par5); 1434 this.renderAllFaces = false; 1435 } 1436 1437 /** 1438 * renders the pushing part of a piston 1439 */ 1440 public boolean renderPistonExtension(Block par1Block, int par2, int par3, int par4, boolean par5) 1441 { 1442 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 1443 int var7 = BlockPistonExtension.getDirectionMeta(var6); 1444 float var11 = par1Block.getBlockBrightness(this.blockAccess, par2, par3, par4); 1445 float var12 = par5 ? 1.0F : 0.5F; 1446 double var13 = par5 ? 16.0D : 8.0D; 1447 1448 switch (var7) 1449 { 1450 case 0: 1451 this.uvRotateEast = 3; 1452 this.uvRotateWest = 3; 1453 this.uvRotateSouth = 3; 1454 this.uvRotateNorth = 3; 1455 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 0.25D, 1.0D); 1456 this.renderStandardBlock(par1Block, par2, par3, par4); 1457 this.renderPistonRodUD((double)((float)par2 + 0.375F), (double)((float)par2 + 0.625F), (double)((float)par3 + 0.25F), (double)((float)par3 + 0.25F + var12), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.625F), var11 * 0.8F, var13); 1458 this.renderPistonRodUD((double)((float)par2 + 0.625F), (double)((float)par2 + 0.375F), (double)((float)par3 + 0.25F), (double)((float)par3 + 0.25F + var12), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.375F), var11 * 0.8F, var13); 1459 this.renderPistonRodUD((double)((float)par2 + 0.375F), (double)((float)par2 + 0.375F), (double)((float)par3 + 0.25F), (double)((float)par3 + 0.25F + var12), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.625F), var11 * 0.6F, var13); 1460 this.renderPistonRodUD((double)((float)par2 + 0.625F), (double)((float)par2 + 0.625F), (double)((float)par3 + 0.25F), (double)((float)par3 + 0.25F + var12), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.375F), var11 * 0.6F, var13); 1461 break; 1462 case 1: 1463 this.setRenderMinMax(0.0D, 0.75D, 0.0D, 1.0D, 1.0D, 1.0D); 1464 this.renderStandardBlock(par1Block, par2, par3, par4); 1465 this.renderPistonRodUD((double)((float)par2 + 0.375F), (double)((float)par2 + 0.625F), (double)((float)par3 - 0.25F + 1.0F - var12), (double)((float)par3 - 0.25F + 1.0F), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.625F), var11 * 0.8F, var13); 1466 this.renderPistonRodUD((double)((float)par2 + 0.625F), (double)((float)par2 + 0.375F), (double)((float)par3 - 0.25F + 1.0F - var12), (double)((float)par3 - 0.25F + 1.0F), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.375F), var11 * 0.8F, var13); 1467 this.renderPistonRodUD((double)((float)par2 + 0.375F), (double)((float)par2 + 0.375F), (double)((float)par3 - 0.25F + 1.0F - var12), (double)((float)par3 - 0.25F + 1.0F), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.625F), var11 * 0.6F, var13); 1468 this.renderPistonRodUD((double)((float)par2 + 0.625F), (double)((float)par2 + 0.625F), (double)((float)par3 - 0.25F + 1.0F - var12), (double)((float)par3 - 0.25F + 1.0F), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.375F), var11 * 0.6F, var13); 1469 break; 1470 case 2: 1471 this.uvRotateSouth = 1; 1472 this.uvRotateNorth = 2; 1473 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.25D); 1474 this.renderStandardBlock(par1Block, par2, par3, par4); 1475 this.renderPistonRodSN((double)((float)par2 + 0.375F), (double)((float)par2 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par4 + 0.25F), (double)((float)par4 + 0.25F + var12), var11 * 0.6F, var13); 1476 this.renderPistonRodSN((double)((float)par2 + 0.625F), (double)((float)par2 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par4 + 0.25F), (double)((float)par4 + 0.25F + var12), var11 * 0.6F, var13); 1477 this.renderPistonRodSN((double)((float)par2 + 0.375F), (double)((float)par2 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.375F), (double)((float)par4 + 0.25F), (double)((float)par4 + 0.25F + var12), var11 * 0.5F, var13); 1478 this.renderPistonRodSN((double)((float)par2 + 0.625F), (double)((float)par2 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.625F), (double)((float)par4 + 0.25F), (double)((float)par4 + 0.25F + var12), var11, var13); 1479 break; 1480 case 3: 1481 this.uvRotateSouth = 2; 1482 this.uvRotateNorth = 1; 1483 this.uvRotateTop = 3; 1484 this.uvRotateBottom = 3; 1485 this.setRenderMinMax(0.0D, 0.0D, 0.75D, 1.0D, 1.0D, 1.0D); 1486 this.renderStandardBlock(par1Block, par2, par3, par4); 1487 this.renderPistonRodSN((double)((float)par2 + 0.375F), (double)((float)par2 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par4 - 0.25F + 1.0F - var12), (double)((float)par4 - 0.25F + 1.0F), var11 * 0.6F, var13); 1488 this.renderPistonRodSN((double)((float)par2 + 0.625F), (double)((float)par2 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par4 - 0.25F + 1.0F - var12), (double)((float)par4 - 0.25F + 1.0F), var11 * 0.6F, var13); 1489 this.renderPistonRodSN((double)((float)par2 + 0.375F), (double)((float)par2 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.375F), (double)((float)par4 - 0.25F + 1.0F - var12), (double)((float)par4 - 0.25F + 1.0F), var11 * 0.5F, var13); 1490 this.renderPistonRodSN((double)((float)par2 + 0.625F), (double)((float)par2 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.625F), (double)((float)par4 - 0.25F + 1.0F - var12), (double)((float)par4 - 0.25F + 1.0F), var11, var13); 1491 break; 1492 case 4: 1493 this.uvRotateEast = 1; 1494 this.uvRotateWest = 2; 1495 this.uvRotateTop = 2; 1496 this.uvRotateBottom = 1; 1497 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 0.25D, 1.0D, 1.0D); 1498 this.renderStandardBlock(par1Block, par2, par3, par4); 1499 this.renderPistonRodEW((double)((float)par2 + 0.25F), (double)((float)par2 + 0.25F + var12), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.375F), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.375F), var11 * 0.5F, var13); 1500 this.renderPistonRodEW((double)((float)par2 + 0.25F), (double)((float)par2 + 0.25F + var12), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.625F), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.625F), var11, var13); 1501 this.renderPistonRodEW((double)((float)par2 + 0.25F), (double)((float)par2 + 0.25F + var12), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.375F), var11 * 0.6F, var13); 1502 this.renderPistonRodEW((double)((float)par2 + 0.25F), (double)((float)par2 + 0.25F + var12), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.625F), var11 * 0.6F, var13); 1503 break; 1504 case 5: 1505 this.uvRotateEast = 2; 1506 this.uvRotateWest = 1; 1507 this.uvRotateTop = 1; 1508 this.uvRotateBottom = 2; 1509 this.setRenderMinMax(0.75D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 1510 this.renderStandardBlock(par1Block, par2, par3, par4); 1511 this.renderPistonRodEW((double)((float)par2 - 0.25F + 1.0F - var12), (double)((float)par2 - 0.25F + 1.0F), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.375F), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.375F), var11 * 0.5F, var13); 1512 this.renderPistonRodEW((double)((float)par2 - 0.25F + 1.0F - var12), (double)((float)par2 - 0.25F + 1.0F), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.625F), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.625F), var11, var13); 1513 this.renderPistonRodEW((double)((float)par2 - 0.25F + 1.0F - var12), (double)((float)par2 - 0.25F + 1.0F), (double)((float)par3 + 0.375F), (double)((float)par3 + 0.625F), (double)((float)par4 + 0.375F), (double)((float)par4 + 0.375F), var11 * 0.6F, var13); 1514 this.renderPistonRodEW((double)((float)par2 - 0.25F + 1.0F - var12), (double)((float)par2 - 0.25F + 1.0F), (double)((float)par3 + 0.625F), (double)((float)par3 + 0.375F), (double)((float)par4 + 0.625F), (double)((float)par4 + 0.625F), var11 * 0.6F, var13); 1515 } 1516 1517 this.uvRotateEast = 0; 1518 this.uvRotateWest = 0; 1519 this.uvRotateSouth = 0; 1520 this.uvRotateNorth = 0; 1521 this.uvRotateTop = 0; 1522 this.uvRotateBottom = 0; 1523 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 1524 return true; 1525 } 1526 1527 /** 1528 * Renders a lever block at the given coordinates 1529 */ 1530 public boolean renderBlockLever(Block par1Block, int par2, int par3, int par4) 1531 { 1532 int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4); 1533 int var6 = var5 & 7; 1534 boolean var7 = (var5 & 8) > 0; 1535 Tessellator var8 = Tessellator.instance; 1536 boolean var9 = this.overrideBlockTexture >= 0; 1537 1538 if (!var9) 1539 { 1540 this.overrideBlockTexture = Block.cobblestone.blockIndexInTexture; 1541 } 1542 1543 float var10 = 0.25F; 1544 float var11 = 0.1875F; 1545 float var12 = 0.1875F; 1546 1547 if (var6 == 5) 1548 { 1549 this.setRenderMinMax((double)(0.5F - var11), 0.0D, (double)(0.5F - var10), (double)(0.5F + var11), (double)var12, (double)(0.5F + var10)); 1550 } 1551 else if (var6 == 6) 1552 { 1553 this.setRenderMinMax((double)(0.5F - var10), 0.0D, (double)(0.5F - var11), (double)(0.5F + var10), (double)var12, (double)(0.5F + var11)); 1554 } 1555 else if (var6 == 4) 1556 { 1557 this.setRenderMinMax((double)(0.5F - var11), (double)(0.5F - var10), (double)(1.0F - var12), (double)(0.5F + var11), (double)(0.5F + var10), 1.0D); 1558 } 1559 else if (var6 == 3) 1560 { 1561 this.setRenderMinMax((double)(0.5F - var11), (double)(0.5F - var10), 0.0D, (double)(0.5F + var11), (double)(0.5F + var10), (double)var12); 1562 } 1563 else if (var6 == 2) 1564 { 1565 this.setRenderMinMax((double)(1.0F - var12), (double)(0.5F - var10), (double)(0.5F - var11), 1.0D, (double)(0.5F + var10), (double)(0.5F + var11)); 1566 } 1567 else if (var6 == 1) 1568 { 1569 this.setRenderMinMax(0.0D, (double)(0.5F - var10), (double)(0.5F - var11), (double)var12, (double)(0.5F + var10), (double)(0.5F + var11)); 1570 } 1571 else if (var6 == 0) 1572 { 1573 this.setRenderMinMax((double)(0.5F - var10), (double)(1.0F - var12), (double)(0.5F - var11), (double)(0.5F + var10), 1.0D, (double)(0.5F + var11)); 1574 } 1575 else if (var6 == 7) 1576 { 1577 this.setRenderMinMax((double)(0.5F - var11), (double)(1.0F - var12), (double)(0.5F - var10), (double)(0.5F + var11), 1.0D, (double)(0.5F + var10)); 1578 } 1579 1580 this.renderStandardBlock(par1Block, par2, par3, par4); 1581 1582 if (!var9) 1583 { 1584 this.overrideBlockTexture = -1; 1585 } 1586 1587 var8.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 1588 float var13 = 1.0F; 1589 1590 if (Block.lightValue[par1Block.blockID] > 0) 1591 { 1592 var13 = 1.0F; 1593 } 1594 1595 var8.setColorOpaque_F(var13, var13, var13); 1596 int var14 = par1Block.getBlockTextureFromSide(0); 1597 1598 if (this.overrideBlockTexture >= 0) 1599 { 1600 var14 = this.overrideBlockTexture; 1601 } 1602 1603 int var15 = (var14 & 15) << 4; 1604 int var16 = var14 & 240; 1605 float var17 = (float)var15 / 256.0F; 1606 float var18 = ((float)var15 + 15.99F) / 256.0F; 1607 float var19 = (float)var16 / 256.0F; 1608 float var20 = ((float)var16 + 15.99F) / 256.0F; 1609 Vec3[] var21 = new Vec3[8]; 1610 float var22 = 0.0625F; 1611 float var23 = 0.0625F; 1612 float var24 = 0.625F; 1613 var21[0] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), 0.0D, (double)(-var23)); 1614 var21[1] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, 0.0D, (double)(-var23)); 1615 var21[2] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, 0.0D, (double)var23); 1616 var21[3] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), 0.0D, (double)var23); 1617 var21[4] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), (double)var24, (double)(-var23)); 1618 var21[5] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, (double)var24, (double)(-var23)); 1619 var21[6] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, (double)var24, (double)var23); 1620 var21[7] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), (double)var24, (double)var23); 1621 1622 for (int var25 = 0; var25 < 8; ++var25) 1623 { 1624 if (var7) 1625 { 1626 var21[var25].zCoord -= 0.0625D; 1627 var21[var25].rotateAroundX(((float)Math.PI * 2F / 9F)); 1628 } 1629 else 1630 { 1631 var21[var25].zCoord += 0.0625D; 1632 var21[var25].rotateAroundX(-((float)Math.PI * 2F / 9F)); 1633 } 1634 1635 if (var6 == 0 || var6 == 7) 1636 { 1637 var21[var25].rotateAroundZ((float)Math.PI); 1638 } 1639 1640 if (var6 == 6 || var6 == 0) 1641 { 1642 var21[var25].rotateAroundY(((float)Math.PI / 2F)); 1643 } 1644 1645 if (var6 > 0 && var6 < 5) 1646 { 1647 var21[var25].yCoord -= 0.375D; 1648 var21[var25].rotateAroundX(((float)Math.PI / 2F)); 1649 1650 if (var6 == 4) 1651 { 1652 var21[var25].rotateAroundY(0.0F); 1653 } 1654 1655 if (var6 == 3) 1656 { 1657 var21[var25].rotateAroundY((float)Math.PI); 1658 } 1659 1660 if (var6 == 2) 1661 { 1662 var21[var25].rotateAroundY(((float)Math.PI / 2F)); 1663 } 1664 1665 if (var6 == 1) 1666 { 1667 var21[var25].rotateAroundY(-((float)Math.PI / 2F)); 1668 } 1669 1670 var21[var25].xCoord += (double)par2 + 0.5D; 1671 var21[var25].yCoord += (double)((float)par3 + 0.5F); 1672 var21[var25].zCoord += (double)par4 + 0.5D; 1673 } 1674 else if (var6 != 0 && var6 != 7) 1675 { 1676 var21[var25].xCoord += (double)par2 + 0.5D; 1677 var21[var25].yCoord += (double)((float)par3 + 0.125F); 1678 var21[var25].zCoord += (double)par4 + 0.5D; 1679 } 1680 else 1681 { 1682 var21[var25].xCoord += (double)par2 + 0.5D; 1683 var21[var25].yCoord += (double)((float)par3 + 0.875F); 1684 var21[var25].zCoord += (double)par4 + 0.5D; 1685 } 1686 } 1687 1688 Vec3 var30 = null; 1689 Vec3 var26 = null; 1690 Vec3 var27 = null; 1691 Vec3 var28 = null; 1692 1693 for (int var29 = 0; var29 < 6; ++var29) 1694 { 1695 if (var29 == 0) 1696 { 1697 var17 = (float)(var15 + 7) / 256.0F; 1698 var18 = ((float)(var15 + 9) - 0.01F) / 256.0F; 1699 var19 = (float)(var16 + 6) / 256.0F; 1700 var20 = ((float)(var16 + 8) - 0.01F) / 256.0F; 1701 } 1702 else if (var29 == 2) 1703 { 1704 var17 = (float)(var15 + 7) / 256.0F; 1705 var18 = ((float)(var15 + 9) - 0.01F) / 256.0F; 1706 var19 = (float)(var16 + 6) / 256.0F; 1707 var20 = ((float)(var16 + 16) - 0.01F) / 256.0F; 1708 } 1709 1710 if (var29 == 0) 1711 { 1712 var30 = var21[0]; 1713 var26 = var21[1]; 1714 var27 = var21[2]; 1715 var28 = var21[3]; 1716 } 1717 else if (var29 == 1) 1718 { 1719 var30 = var21[7]; 1720 var26 = var21[6]; 1721 var27 = var21[5]; 1722 var28 = var21[4]; 1723 } 1724 else if (var29 == 2) 1725 { 1726 var30 = var21[1]; 1727 var26 = var21[0]; 1728 var27 = var21[4]; 1729 var28 = var21[5]; 1730 } 1731 else if (var29 == 3) 1732 { 1733 var30 = var21[2]; 1734 var26 = var21[1]; 1735 var27 = var21[5]; 1736 var28 = var21[6]; 1737 } 1738 else if (var29 == 4) 1739 { 1740 var30 = var21[3]; 1741 var26 = var21[2]; 1742 var27 = var21[6]; 1743 var28 = var21[7]; 1744 } 1745 else if (var29 == 5) 1746 { 1747 var30 = var21[0]; 1748 var26 = var21[3]; 1749 var27 = var21[7]; 1750 var28 = var21[4]; 1751 } 1752 1753 var8.addVertexWithUV(var30.xCoord, var30.yCoord, var30.zCoord, (double)var17, (double)var20); 1754 var8.addVertexWithUV(var26.xCoord, var26.yCoord, var26.zCoord, (double)var18, (double)var20); 1755 var8.addVertexWithUV(var27.xCoord, var27.yCoord, var27.zCoord, (double)var18, (double)var19); 1756 var8.addVertexWithUV(var28.xCoord, var28.yCoord, var28.zCoord, (double)var17, (double)var19); 1757 } 1758 1759 return true; 1760 } 1761 1762 /** 1763 * Renders a trip wire source block at the given coordinates 1764 */ 1765 public boolean renderBlockTripWireSource(Block par1Block, int par2, int par3, int par4) 1766 { 1767 Tessellator var5 = Tessellator.instance; 1768 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 1769 int var7 = var6 & 3; 1770 boolean var8 = (var6 & 4) == 4; 1771 boolean var9 = (var6 & 8) == 8; 1772 boolean var10 = !this.blockAccess.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4); 1773 boolean var11 = this.overrideBlockTexture >= 0; 1774 1775 if (!var11) 1776 { 1777 this.overrideBlockTexture = Block.planks.blockIndexInTexture; 1778 } 1779 1780 float var12 = 0.25F; 1781 float var13 = 0.125F; 1782 float var14 = 0.125F; 1783 float var15 = 0.3F - var12; 1784 float var16 = 0.3F + var12; 1785 1786 if (var7 == 2) 1787 { 1788 this.setRenderMinMax((double)(0.5F - var13), (double)var15, (double)(1.0F - var14), (double)(0.5F + var13), (double)var16, 1.0D); 1789 } 1790 else if (var7 == 0) 1791 { 1792 this.setRenderMinMax((double)(0.5F - var13), (double)var15, 0.0D, (double)(0.5F + var13), (double)var16, (double)var14); 1793 } 1794 else if (var7 == 1) 1795 { 1796 this.setRenderMinMax((double)(1.0F - var14), (double)var15, (double)(0.5F - var13), 1.0D, (double)var16, (double)(0.5F + var13)); 1797 } 1798 else if (var7 == 3) 1799 { 1800 this.setRenderMinMax(0.0D, (double)var15, (double)(0.5F - var13), (double)var14, (double)var16, (double)(0.5F + var13)); 1801 } 1802 1803 this.renderStandardBlock(par1Block, par2, par3, par4); 1804 1805 if (!var11) 1806 { 1807 this.overrideBlockTexture = -1; 1808 } 1809 1810 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 1811 float var17 = 1.0F; 1812 1813 if (Block.lightValue[par1Block.blockID] > 0) 1814 { 1815 var17 = 1.0F; 1816 } 1817 1818 var5.setColorOpaque_F(var17, var17, var17); 1819 int var18 = par1Block.getBlockTextureFromSide(0); 1820 1821 if (this.overrideBlockTexture >= 0) 1822 { 1823 var18 = this.overrideBlockTexture; 1824 } 1825 1826 int var19 = (var18 & 15) << 4; 1827 int var20 = var18 & 240; 1828 float var21 = (float)var19 / 256.0F; 1829 float var22 = ((float)var19 + 15.99F) / 256.0F; 1830 float var23 = (float)var20 / 256.0F; 1831 float var24 = ((float)var20 + 15.99F) / 256.0F; 1832 Vec3[] var25 = new Vec3[8]; 1833 float var26 = 0.046875F; 1834 float var27 = 0.046875F; 1835 float var28 = 0.3125F; 1836 var25[0] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), 0.0D, (double)(-var27)); 1837 var25[1] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, 0.0D, (double)(-var27)); 1838 var25[2] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, 0.0D, (double)var27); 1839 var25[3] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), 0.0D, (double)var27); 1840 var25[4] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), (double)var28, (double)(-var27)); 1841 var25[5] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, (double)var28, (double)(-var27)); 1842 var25[6] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, (double)var28, (double)var27); 1843 var25[7] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), (double)var28, (double)var27); 1844 1845 for (int var29 = 0; var29 < 8; ++var29) 1846 { 1847 var25[var29].zCoord += 0.0625D; 1848 1849 if (var9) 1850 { 1851 var25[var29].rotateAroundX(0.5235988F); 1852 var25[var29].yCoord -= 0.4375D; 1853 } 1854 else if (var8) 1855 { 1856 var25[var29].rotateAroundX(0.08726647F); 1857 var25[var29].yCoord -= 0.4375D; 1858 } 1859 else 1860 { 1861 var25[var29].rotateAroundX(-((float)Math.PI * 2F / 9F)); 1862 var25[var29].yCoord -= 0.375D; 1863 } 1864 1865 var25[var29].rotateAroundX(((float)Math.PI / 2F)); 1866 1867 if (var7 == 2) 1868 { 1869 var25[var29].rotateAroundY(0.0F); 1870 } 1871 1872 if (var7 == 0) 1873 { 1874 var25[var29].rotateAroundY((float)Math.PI); 1875 } 1876 1877 if (var7 == 1) 1878 { 1879 var25[var29].rotateAroundY(((float)Math.PI / 2F)); 1880 } 1881 1882 if (var7 == 3) 1883 { 1884 var25[var29].rotateAroundY(-((float)Math.PI / 2F)); 1885 } 1886 1887 var25[var29].xCoord += (double)par2 + 0.5D; 1888 var25[var29].yCoord += (double)((float)par3 + 0.3125F); 1889 var25[var29].zCoord += (double)par4 + 0.5D; 1890 } 1891 1892 Vec3 var61 = null; 1893 Vec3 var30 = null; 1894 Vec3 var31 = null; 1895 Vec3 var32 = null; 1896 byte var33 = 7; 1897 byte var34 = 9; 1898 byte var35 = 9; 1899 byte var36 = 16; 1900 1901 for (int var37 = 0; var37 < 6; ++var37) 1902 { 1903 if (var37 == 0) 1904 { 1905 var61 = var25[0]; 1906 var30 = var25[1]; 1907 var31 = var25[2]; 1908 var32 = var25[3]; 1909 var21 = (float)(var19 + var33) / 256.0F; 1910 var22 = (float)(var19 + var34) / 256.0F; 1911 var23 = (float)(var20 + var35) / 256.0F; 1912 var24 = (float)(var20 + var35 + 2) / 256.0F; 1913 } 1914 else if (var37 == 1) 1915 { 1916 var61 = var25[7]; 1917 var30 = var25[6]; 1918 var31 = var25[5]; 1919 var32 = var25[4]; 1920 } 1921 else if (var37 == 2) 1922 { 1923 var61 = var25[1]; 1924 var30 = var25[0]; 1925 var31 = var25[4]; 1926 var32 = var25[5]; 1927 var21 = (float)(var19 + var33) / 256.0F; 1928 var22 = (float)(var19 + var34) / 256.0F; 1929 var23 = (float)(var20 + var35) / 256.0F; 1930 var24 = (float)(var20 + var36) / 256.0F; 1931 } 1932 else if (var37 == 3) 1933 { 1934 var61 = var25[2]; 1935 var30 = var25[1]; 1936 var31 = var25[5]; 1937 var32 = var25[6]; 1938 } 1939 else if (var37 == 4) 1940 { 1941 var61 = var25[3]; 1942 var30 = var25[2]; 1943 var31 = var25[6]; 1944 var32 = var25[7]; 1945 } 1946 else if (var37 == 5) 1947 { 1948 var61 = var25[0]; 1949 var30 = var25[3]; 1950 var31 = var25[7]; 1951 var32 = var25[4]; 1952 } 1953 1954 var5.addVertexWithUV(var61.xCoord, var61.yCoord, var61.zCoord, (double)var21, (double)var24); 1955 var5.addVertexWithUV(var30.xCoord, var30.yCoord, var30.zCoord, (double)var22, (double)var24); 1956 var5.addVertexWithUV(var31.xCoord, var31.yCoord, var31.zCoord, (double)var22, (double)var23); 1957 var5.addVertexWithUV(var32.xCoord, var32.yCoord, var32.zCoord, (double)var21, (double)var23); 1958 } 1959 1960 float var62 = 0.09375F; 1961 float var38 = 0.09375F; 1962 float var39 = 0.03125F; 1963 var25[0] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), 0.0D, (double)(-var38)); 1964 var25[1] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, 0.0D, (double)(-var38)); 1965 var25[2] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, 0.0D, (double)var38); 1966 var25[3] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), 0.0D, (double)var38); 1967 var25[4] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), (double)var39, (double)(-var38)); 1968 var25[5] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, (double)var39, (double)(-var38)); 1969 var25[6] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, (double)var39, (double)var38); 1970 var25[7] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), (double)var39, (double)var38); 1971 1972 for (int var40 = 0; var40 < 8; ++var40) 1973 { 1974 var25[var40].zCoord += 0.21875D; 1975 1976 if (var9) 1977 { 1978 var25[var40].yCoord -= 0.09375D; 1979 var25[var40].zCoord -= 0.1625D; 1980 var25[var40].rotateAroundX(0.0F); 1981 } 1982 else if (var8) 1983 { 1984 var25[var40].yCoord += 0.015625D; 1985 var25[var40].zCoord -= 0.171875D; 1986 var25[var40].rotateAroundX(0.17453294F); 1987 } 1988 else 1989 { 1990 var25[var40].rotateAroundX(0.87266463F); 1991 } 1992 1993 if (var7 == 2) 1994 { 1995 var25[var40].rotateAroundY(0.0F); 1996 } 1997 1998 if (var7 == 0) 1999 { 2000 var25[var40].rotateAroundY((float)Math.PI); 2001 } 2002 2003 if (var7 == 1) 2004 { 2005 var25[var40].rotateAroundY(((float)Math.PI / 2F)); 2006 } 2007 2008 if (var7 == 3) 2009 { 2010 var25[var40].rotateAroundY(-((float)Math.PI / 2F)); 2011 } 2012 2013 var25[var40].xCoord += (double)par2 + 0.5D; 2014 var25[var40].yCoord += (double)((float)par3 + 0.3125F); 2015 var25[var40].zCoord += (double)par4 + 0.5D; 2016 } 2017 2018 byte var63 = 5; 2019 byte var41 = 11; 2020 byte var42 = 3; 2021 byte var43 = 9; 2022 2023 for (int var44 = 0; var44 < 6; ++var44) 2024 { 2025 if (var44 == 0) 2026 { 2027 var61 = var25[0]; 2028 var30 = var25[1]; 2029 var31 = var25[2]; 2030 var32 = var25[3]; 2031 var21 = (float)(var19 + var63) / 256.0F; 2032 var22 = (float)(var19 + var41) / 256.0F; 2033 var23 = (float)(var20 + var42) / 256.0F; 2034 var24 = (float)(var20 + var43) / 256.0F; 2035 } 2036 else if (var44 == 1) 2037 { 2038 var61 = var25[7]; 2039 var30 = var25[6]; 2040 var31 = var25[5]; 2041 var32 = var25[4]; 2042 } 2043 else if (var44 == 2) 2044 { 2045 var61 = var25[1]; 2046 var30 = var25[0]; 2047 var31 = var25[4]; 2048 var32 = var25[5]; 2049 var21 = (float)(var19 + var63) / 256.0F; 2050 var22 = (float)(var19 + var41) / 256.0F; 2051 var23 = (float)(var20 + var42) / 256.0F; 2052 var24 = (float)(var20 + var42 + 2) / 256.0F; 2053 } 2054 else if (var44 == 3) 2055 { 2056 var61 = var25[2]; 2057 var30 = var25[1]; 2058 var31 = var25[5]; 2059 var32 = var25[6]; 2060 } 2061 else if (var44 == 4) 2062 { 2063 var61 = var25[3]; 2064 var30 = var25[2]; 2065 var31 = var25[6]; 2066 var32 = var25[7]; 2067 } 2068 else if (var44 == 5) 2069 { 2070 var61 = var25[0]; 2071 var30 = var25[3]; 2072 var31 = var25[7]; 2073 var32 = var25[4]; 2074 } 2075 2076 var5.addVertexWithUV(var61.xCoord, var61.yCoord, var61.zCoord, (double)var21, (double)var24); 2077 var5.addVertexWithUV(var30.xCoord, var30.yCoord, var30.zCoord, (double)var22, (double)var24); 2078 var5.addVertexWithUV(var31.xCoord, var31.yCoord, var31.zCoord, (double)var22, (double)var23); 2079 var5.addVertexWithUV(var32.xCoord, var32.yCoord, var32.zCoord, (double)var21, (double)var23); 2080 } 2081 2082 if (var8) 2083 { 2084 double var64 = var25[0].yCoord; 2085 float var46 = 0.03125F; 2086 float var47 = 0.5F - var46 / 2.0F; 2087 float var48 = var47 + var46; 2088 int var49 = (Block.tripWire.blockIndexInTexture & 15) << 4; 2089 int var50 = Block.tripWire.blockIndexInTexture & 240; 2090 double var51 = (double)((float)var49 / 256.0F); 2091 double var53 = (double)((float)(var49 + 16) / 256.0F); 2092 double var55 = (double)((float)(var50 + (var8 ? 2 : 0)) / 256.0F); 2093 double var57 = (double)((float)(var50 + (var8 ? 4 : 2)) / 256.0F); 2094 double var59 = (double)(var10 ? 3.5F : 1.5F) / 16.0D; 2095 var17 = par1Block.getBlockBrightness(this.blockAccess, par2, par3, par4) * 0.75F; 2096 var5.setColorOpaque_F(var17, var17, var17); 2097 2098 if (var7 == 2) 2099 { 2100 var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.25D, var51, var55); 2101 var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.25D, var51, var57); 2102 var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4, var53, var57); 2103 var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4, var53, var55); 2104 var5.addVertexWithUV((double)((float)par2 + var47), var64, (double)par4 + 0.5D, var51, var55); 2105 var5.addVertexWithUV((double)((float)par2 + var48), var64, (double)par4 + 0.5D, var51, var57); 2106 var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.25D, var53, var57); 2107 var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.25D, var53, var55); 2108 } 2109 else if (var7 == 0) 2110 { 2111 var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.75D, var51, var55); 2112 var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.75D, var51, var57); 2113 var5.addVertexWithUV((double)((float)par2 + var48), var64, (double)par4 + 0.5D, var53, var57); 2114 var5.addVertexWithUV((double)((float)par2 + var47), var64, (double)par4 + 0.5D, var53, var55); 2115 var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)(par4 + 1), var51, var55); 2116 var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)(par4 + 1), var51, var57); 2117 var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.75D, var53, var57); 2118 var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.75D, var53, var55); 2119 } 2120 else if (var7 == 1) 2121 { 2122 var5.addVertexWithUV((double)par2, (double)par3 + var59, (double)((float)par4 + var48), var51, var57); 2123 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var48), var53, var57); 2124 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var47), var53, var55); 2125 var5.addVertexWithUV((double)par2, (double)par3 + var59, (double)((float)par4 + var47), var51, var55); 2126 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var48), var51, var57); 2127 var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var48), var53, var57); 2128 var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var47), var53, var55); 2129 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var47), var51, var55); 2130 } 2131 else 2132 { 2133 var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var48), var51, var57); 2134 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var48), var53, var57); 2135 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var47), var53, var55); 2136 var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var47), var51, var55); 2137 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var48), var51, var57); 2138 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var59, (double)((float)par4 + var48), var53, var57); 2139 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var59, (double)((float)par4 + var47), var53, var55); 2140 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var47), var51, var55); 2141 } 2142 } 2143 2144 return true; 2145 } 2146 2147 /** 2148 * Renders a trip wire block at the given coordinates 2149 */ 2150 public boolean renderBlockTripWire(Block par1Block, int par2, int par3, int par4) 2151 { 2152 Tessellator var5 = Tessellator.instance; 2153 int var6 = par1Block.getBlockTextureFromSide(0); 2154 int var7 = this.blockAccess.getBlockMetadata(par2, par3, par4); 2155 boolean var8 = (var7 & 4) == 4; 2156 boolean var9 = (var7 & 2) == 2; 2157 2158 if (this.overrideBlockTexture >= 0) 2159 { 2160 var6 = this.overrideBlockTexture; 2161 } 2162 2163 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2164 float var10 = par1Block.getBlockBrightness(this.blockAccess, par2, par3, par4) * 0.75F; 2165 var5.setColorOpaque_F(var10, var10, var10); 2166 int var11 = (var6 & 15) << 4; 2167 int var12 = var6 & 240; 2168 double var13 = (double)((float)var11 / 256.0F); 2169 double var15 = (double)((float)(var11 + 16) / 256.0F); 2170 double var17 = (double)((float)(var12 + (var8 ? 2 : 0)) / 256.0F); 2171 double var19 = (double)((float)(var12 + (var8 ? 4 : 2)) / 256.0F); 2172 double var21 = (double)(var9 ? 3.5F : 1.5F) / 16.0D; 2173 boolean var23 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 1); 2174 boolean var24 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 3); 2175 boolean var25 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 2); 2176 boolean var26 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 0); 2177 float var27 = 0.03125F; 2178 float var28 = 0.5F - var27 / 2.0F; 2179 float var29 = var28 + var27; 2180 2181 if (!var25 && !var24 && !var26 && !var23) 2182 { 2183 var25 = true; 2184 var26 = true; 2185 } 2186 2187 if (var25) 2188 { 2189 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var13, var17); 2190 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var13, var19); 2191 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4, var15, var19); 2192 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4, var15, var17); 2193 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4, var15, var17); 2194 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4, var15, var19); 2195 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var13, var19); 2196 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var13, var17); 2197 } 2198 2199 if (var25 || var26 && !var24 && !var23) 2200 { 2201 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var13, var17); 2202 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var13, var19); 2203 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var15, var19); 2204 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var15, var17); 2205 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var15, var17); 2206 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var15, var19); 2207 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var13, var19); 2208 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var13, var17); 2209 } 2210 2211 if (var26 || var25 && !var24 && !var23) 2212 { 2213 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var13, var17); 2214 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var13, var19); 2215 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var15, var19); 2216 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var15, var17); 2217 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var15, var17); 2218 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var15, var19); 2219 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var13, var19); 2220 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var13, var17); 2221 } 2222 2223 if (var26) 2224 { 2225 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)(par4 + 1), var13, var17); 2226 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)(par4 + 1), var13, var19); 2227 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var15, var19); 2228 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var15, var17); 2229 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var15, var17); 2230 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var15, var19); 2231 var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)(par4 + 1), var13, var19); 2232 var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)(par4 + 1), var13, var17); 2233 } 2234 2235 if (var23) 2236 { 2237 var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2238 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2239 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2240 var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2241 var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2242 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2243 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2244 var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2245 } 2246 2247 if (var23 || var24 && !var25 && !var26) 2248 { 2249 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2250 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2251 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2252 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2253 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2254 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2255 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2256 var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2257 } 2258 2259 if (var24 || var23 && !var25 && !var26) 2260 { 2261 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2262 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2263 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2264 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2265 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2266 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2267 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2268 var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2269 } 2270 2271 if (var24) 2272 { 2273 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2274 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2275 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2276 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2277 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17); 2278 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var28), var15, var17); 2279 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var29), var15, var19); 2280 var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19); 2281 } 2282 2283 return true; 2284 } 2285 2286 /** 2287 * Renders a fire block at the given coordinates 2288 */ 2289 public boolean renderBlockFire(Block par1Block, int par2, int par3, int par4) 2290 { 2291 Tessellator var5 = Tessellator.instance; 2292 int var6 = par1Block.getBlockTextureFromSide(0); 2293 2294 if (this.overrideBlockTexture >= 0) 2295 { 2296 var6 = this.overrideBlockTexture; 2297 } 2298 2299 var5.setColorOpaque_F(1.0F, 1.0F, 1.0F); 2300 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2301 int var7 = (var6 & 15) << 4; 2302 int var8 = var6 & 240; 2303 double var9 = (double)((float)var7 / 256.0F); 2304 double var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2305 double var13 = (double)((float)var8 / 256.0F); 2306 double var15 = (double)(((float)var8 + 15.99F) / 256.0F); 2307 float var17 = 1.4F; 2308 double var32; 2309 double var20; 2310 double var22; 2311 double var24; 2312 double var26; 2313 double var28; 2314 double var30; 2315 2316 if (!this.blockAccess.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !Block.fire.canBlockCatchFire(this.blockAccess, par2, par3 - 1, par4, UP)) 2317 { 2318 float var36 = 0.2F; 2319 float var19 = 0.0625F; 2320 2321 if ((par2 + par3 + par4 & 1) == 1) 2322 { 2323 var9 = (double)((float)var7 / 256.0F); 2324 var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2325 var13 = (double)((float)(var8 + 16) / 256.0F); 2326 var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F); 2327 } 2328 2329 if ((par2 / 2 + par3 / 2 + par4 / 2 & 1) == 1) 2330 { 2331 var20 = var11; 2332 var11 = var9; 2333 var9 = var20; 2334 } 2335 2336 if (Block.fire.canBlockCatchFire(this.blockAccess, par2 - 1, par3, par4, EAST)) 2337 { 2338 var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); 2339 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15); 2340 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); 2341 var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); 2342 var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); 2343 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); 2344 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15); 2345 var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); 2346 } 2347 2348 if (Block.fire.canBlockCatchFire(this.blockAccess, par2 + 1, par3, par4, WEST)) 2349 { 2350 var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); 2351 var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); 2352 var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15); 2353 var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); 2354 var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13); 2355 var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15); 2356 var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); 2357 var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13); 2358 } 2359 2360 if (Block.fire.canBlockCatchFire(this.blockAccess, par2, par3, par4 - 1, SOUTH)) 2361 { 2362 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13); 2363 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15); 2364 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); 2365 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var9, var13); 2366 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var9, var13); 2367 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15); 2368 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15); 2369 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13); 2370 } 2371 2372 if (Block.fire.canBlockCatchFire(this.blockAccess, par2, par3, par4 + 1, NORTH)) 2373 { 2374 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13); 2375 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15); 2376 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var11, var15); 2377 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var11, var13); 2378 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var11, var13); 2379 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var11, var15); 2380 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15); 2381 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13); 2382 } 2383 2384 if (Block.fire.canBlockCatchFire(this.blockAccess, par2, par3 + 1, par4, DOWN)) 2385 { 2386 var20 = (double)par2 + 0.5D + 0.5D; 2387 var22 = (double)par2 + 0.5D - 0.5D; 2388 var24 = (double)par4 + 0.5D + 0.5D; 2389 var26 = (double)par4 + 0.5D - 0.5D; 2390 var28 = (double)par2 + 0.5D - 0.5D; 2391 var30 = (double)par2 + 0.5D + 0.5D; 2392 var32 = (double)par4 + 0.5D - 0.5D; 2393 double var34 = (double)par4 + 0.5D + 0.5D; 2394 var9 = (double)((float)var7 / 256.0F); 2395 var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2396 var13 = (double)((float)var8 / 256.0F); 2397 var15 = (double)(((float)var8 + 15.99F) / 256.0F); 2398 ++par3; 2399 var17 = -0.2F; 2400 2401 if ((par2 + par3 + par4 & 1) == 0) 2402 { 2403 var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 0), var11, var13); 2404 var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 0), var11, var15); 2405 var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 1), var9, var15); 2406 var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 1), var9, var13); 2407 var9 = (double)((float)var7 / 256.0F); 2408 var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2409 var13 = (double)((float)(var8 + 16) / 256.0F); 2410 var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F); 2411 var5.addVertexWithUV(var30, (double)((float)par3 + var17), (double)(par4 + 1), var11, var13); 2412 var5.addVertexWithUV(var22, (double)(par3 + 0), (double)(par4 + 1), var11, var15); 2413 var5.addVertexWithUV(var22, (double)(par3 + 0), (double)(par4 + 0), var9, var15); 2414 var5.addVertexWithUV(var30, (double)((float)par3 + var17), (double)(par4 + 0), var9, var13); 2415 } 2416 else 2417 { 2418 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var34, var11, var13); 2419 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var26, var11, var15); 2420 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var26, var9, var15); 2421 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var34, var9, var13); 2422 var9 = (double)((float)var7 / 256.0F); 2423 var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2424 var13 = (double)((float)(var8 + 16) / 256.0F); 2425 var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F); 2426 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var32, var11, var13); 2427 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var24, var11, var15); 2428 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var24, var9, var15); 2429 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var32, var9, var13); 2430 } 2431 } 2432 } 2433 else 2434 { 2435 double var18 = (double)par2 + 0.5D + 0.2D; 2436 var20 = (double)par2 + 0.5D - 0.2D; 2437 var22 = (double)par4 + 0.5D + 0.2D; 2438 var24 = (double)par4 + 0.5D - 0.2D; 2439 var26 = (double)par2 + 0.5D - 0.3D; 2440 var28 = (double)par2 + 0.5D + 0.3D; 2441 var30 = (double)par4 + 0.5D - 0.3D; 2442 var32 = (double)par4 + 0.5D + 0.3D; 2443 var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 1), var11, var13); 2444 var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 1), var11, var15); 2445 var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 0), var9, var15); 2446 var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 0), var9, var13); 2447 var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 0), var11, var13); 2448 var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 0), var11, var15); 2449 var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 1), var9, var15); 2450 var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 1), var9, var13); 2451 var9 = (double)((float)var7 / 256.0F); 2452 var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2453 var13 = (double)((float)(var8 + 16) / 256.0F); 2454 var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F); 2455 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var32, var11, var13); 2456 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var24, var11, var15); 2457 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var24, var9, var15); 2458 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var32, var9, var13); 2459 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var30, var11, var13); 2460 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var22, var11, var15); 2461 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var22, var9, var15); 2462 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var30, var9, var13); 2463 var18 = (double)par2 + 0.5D - 0.5D; 2464 var20 = (double)par2 + 0.5D + 0.5D; 2465 var22 = (double)par4 + 0.5D - 0.5D; 2466 var24 = (double)par4 + 0.5D + 0.5D; 2467 var26 = (double)par2 + 0.5D - 0.4D; 2468 var28 = (double)par2 + 0.5D + 0.4D; 2469 var30 = (double)par4 + 0.5D - 0.4D; 2470 var32 = (double)par4 + 0.5D + 0.4D; 2471 var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 0), var9, var13); 2472 var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 0), var9, var15); 2473 var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 1), var11, var15); 2474 var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 1), var11, var13); 2475 var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 1), var9, var13); 2476 var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 1), var9, var15); 2477 var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 0), var11, var15); 2478 var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 0), var11, var13); 2479 var9 = (double)((float)var7 / 256.0F); 2480 var11 = (double)(((float)var7 + 15.99F) / 256.0F); 2481 var13 = (double)((float)var8 / 256.0F); 2482 var15 = (double)(((float)var8 + 15.99F) / 256.0F); 2483 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var32, var9, var13); 2484 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var24, var9, var15); 2485 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var24, var11, var15); 2486 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var32, var11, var13); 2487 var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var30, var9, var13); 2488 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var22, var9, var15); 2489 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var22, var11, var15); 2490 var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var30, var11, var13); 2491 } 2492 2493 return true; 2494 } 2495 2496 /** 2497 * Renders a redstone wire block at the given coordinates 2498 */ 2499 public boolean renderBlockRedstoneWire(Block par1Block, int par2, int par3, int par4) 2500 { 2501 Tessellator var5 = Tessellator.instance; 2502 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 2503 int var7 = par1Block.getBlockTextureFromSideAndMetadata(1, var6); 2504 2505 if (this.overrideBlockTexture >= 0) 2506 { 2507 var7 = this.overrideBlockTexture; 2508 } 2509 2510 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2511 float var8 = 1.0F; 2512 float var9 = (float)var6 / 15.0F; 2513 float var10 = var9 * 0.6F + 0.4F; 2514 2515 if (var6 == 0) 2516 { 2517 var10 = 0.3F; 2518 } 2519 2520 float var11 = var9 * var9 * 0.7F - 0.5F; 2521 float var12 = var9 * var9 * 0.6F - 0.7F; 2522 2523 if (var11 < 0.0F) 2524 { 2525 var11 = 0.0F; 2526 } 2527 2528 if (var12 < 0.0F) 2529 { 2530 var12 = 0.0F; 2531 } 2532 2533 var5.setColorOpaque_F(var10, var11, var12); 2534 int var13 = (var7 & 15) << 4; 2535 int var14 = var7 & 240; 2536 double var15 = (double)((float)var13 / 256.0F); 2537 double var17 = (double)(((float)var13 + 15.99F) / 256.0F); 2538 double var19 = (double)((float)var14 / 256.0F); 2539 double var21 = (double)(((float)var14 + 15.99F) / 256.0F); 2540 boolean var29 = BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 - 1, par3, par4, 1) || !this.blockAccess.isBlockNormalCube(par2 - 1, par3, par4) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 - 1, par3 - 1, par4, -1); 2541 boolean var30 = BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 + 1, par3, par4, 3) || !this.blockAccess.isBlockNormalCube(par2 + 1, par3, par4) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 + 1, par3 - 1, par4, -1); 2542 boolean var31 = BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3, par4 - 1, 2) || !this.blockAccess.isBlockNormalCube(par2, par3, par4 - 1) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3 - 1, par4 - 1, -1); 2543 boolean var32 = BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3, par4 + 1, 0) || !this.blockAccess.isBlockNormalCube(par2, par3, par4 + 1) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3 - 1, par4 + 1, -1); 2544 2545 if (!this.blockAccess.isBlockNormalCube(par2, par3 + 1, par4)) 2546 { 2547 if (this.blockAccess.isBlockNormalCube(par2 - 1, par3, par4) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 - 1, par3 + 1, par4, -1)) 2548 { 2549 var29 = true; 2550 } 2551 2552 if (this.blockAccess.isBlockNormalCube(par2 + 1, par3, par4) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 + 1, par3 + 1, par4, -1)) 2553 { 2554 var30 = true; 2555 } 2556 2557 if (this.blockAccess.isBlockNormalCube(par2, par3, par4 - 1) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3 + 1, par4 - 1, -1)) 2558 { 2559 var31 = true; 2560 } 2561 2562 if (this.blockAccess.isBlockNormalCube(par2, par3, par4 + 1) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3 + 1, par4 + 1, -1)) 2563 { 2564 var32 = true; 2565 } 2566 } 2567 2568 float var34 = (float)(par2 + 0); 2569 float var35 = (float)(par2 + 1); 2570 float var36 = (float)(par4 + 0); 2571 float var37 = (float)(par4 + 1); 2572 byte var38 = 0; 2573 2574 if ((var29 || var30) && !var31 && !var32) 2575 { 2576 var38 = 1; 2577 } 2578 2579 if ((var31 || var32) && !var30 && !var29) 2580 { 2581 var38 = 2; 2582 } 2583 2584 if (var38 != 0) 2585 { 2586 var15 = (double)((float)(var13 + 16) / 256.0F); 2587 var17 = (double)(((float)(var13 + 16) + 15.99F) / 256.0F); 2588 var19 = (double)((float)var14 / 256.0F); 2589 var21 = (double)(((float)var14 + 15.99F) / 256.0F); 2590 } 2591 2592 if (var38 == 0) 2593 { 2594 if (!var29) 2595 { 2596 var34 += 0.3125F; 2597 } 2598 2599 if (!var29) 2600 { 2601 var15 += 0.01953125D; 2602 } 2603 2604 if (!var30) 2605 { 2606 var35 -= 0.3125F; 2607 } 2608 2609 if (!var30) 2610 { 2611 var17 -= 0.01953125D; 2612 } 2613 2614 if (!var31) 2615 { 2616 var36 += 0.3125F; 2617 } 2618 2619 if (!var31) 2620 { 2621 var19 += 0.01953125D; 2622 } 2623 2624 if (!var32) 2625 { 2626 var37 -= 0.3125F; 2627 } 2628 2629 if (!var32) 2630 { 2631 var21 -= 0.01953125D; 2632 } 2633 2634 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21); 2635 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19); 2636 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19); 2637 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21); 2638 var5.setColorOpaque_F(var8, var8, var8); 2639 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21 + 0.0625D); 2640 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19 + 0.0625D); 2641 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19 + 0.0625D); 2642 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21 + 0.0625D); 2643 } 2644 else if (var38 == 1) 2645 { 2646 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21); 2647 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19); 2648 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19); 2649 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21); 2650 var5.setColorOpaque_F(var8, var8, var8); 2651 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21 + 0.0625D); 2652 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19 + 0.0625D); 2653 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19 + 0.0625D); 2654 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21 + 0.0625D); 2655 } 2656 else if (var38 == 2) 2657 { 2658 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21); 2659 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var15, var21); 2660 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19); 2661 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var17, var19); 2662 var5.setColorOpaque_F(var8, var8, var8); 2663 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21 + 0.0625D); 2664 var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var15, var21 + 0.0625D); 2665 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19 + 0.0625D); 2666 var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var17, var19 + 0.0625D); 2667 } 2668 2669 if (!this.blockAccess.isBlockNormalCube(par2, par3 + 1, par4)) 2670 { 2671 var15 = (double)((float)(var13 + 16) / 256.0F); 2672 var17 = (double)(((float)(var13 + 16) + 15.99F) / 256.0F); 2673 var19 = (double)((float)var14 / 256.0F); 2674 var21 = (double)(((float)var14 + 15.99F) / 256.0F); 2675 2676 if (this.blockAccess.isBlockNormalCube(par2 - 1, par3, par4) && this.blockAccess.getBlockId(par2 - 1, par3 + 1, par4) == Block.redstoneWire.blockID) 2677 { 2678 var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12); 2679 var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var19); 2680 var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var19); 2681 var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var21); 2682 var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var21); 2683 var5.setColorOpaque_F(var8, var8, var8); 2684 var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var19 + 0.0625D); 2685 var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var19 + 0.0625D); 2686 var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var21 + 0.0625D); 2687 var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var21 + 0.0625D); 2688 } 2689 2690 if (this.blockAccess.isBlockNormalCube(par2 + 1, par3, par4) && this.blockAccess.getBlockId(par2 + 1, par3 + 1, par4) == Block.redstoneWire.blockID) 2691 { 2692 var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12); 2693 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var21); 2694 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var21); 2695 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var19); 2696 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var19); 2697 var5.setColorOpaque_F(var8, var8, var8); 2698 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var21 + 0.0625D); 2699 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var21 + 0.0625D); 2700 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var19 + 0.0625D); 2701 var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var19 + 0.0625D); 2702 } 2703 2704 if (this.blockAccess.isBlockNormalCube(par2, par3, par4 - 1) && this.blockAccess.getBlockId(par2, par3 + 1, par4 - 1) == Block.redstoneWire.blockID) 2705 { 2706 var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12); 2707 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var21); 2708 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var21); 2709 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var19); 2710 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var19); 2711 var5.setColorOpaque_F(var8, var8, var8); 2712 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var21 + 0.0625D); 2713 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var21 + 0.0625D); 2714 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var19 + 0.0625D); 2715 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var19 + 0.0625D); 2716 } 2717 2718 if (this.blockAccess.isBlockNormalCube(par2, par3, par4 + 1) && this.blockAccess.getBlockId(par2, par3 + 1, par4 + 1) == Block.redstoneWire.blockID) 2719 { 2720 var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12); 2721 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var19); 2722 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var19); 2723 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var21); 2724 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var21); 2725 var5.setColorOpaque_F(var8, var8, var8); 2726 var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var19 + 0.0625D); 2727 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var19 + 0.0625D); 2728 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var21 + 0.0625D); 2729 var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var21 + 0.0625D); 2730 } 2731 } 2732 2733 return true; 2734 } 2735 2736 /** 2737 * Renders a minecart track block at the given coordinates 2738 */ 2739 public boolean renderBlockMinecartTrack(BlockRail par1BlockRail, int par2, int par3, int par4) 2740 { 2741 Tessellator var5 = Tessellator.instance; 2742 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 2743 int var7 = par1BlockRail.getBlockTextureFromSideAndMetadata(0, var6); 2744 2745 if (this.overrideBlockTexture >= 0) 2746 { 2747 var7 = this.overrideBlockTexture; 2748 } 2749 2750 if (par1BlockRail.isPowered()) 2751 { 2752 var6 &= 7; 2753 } 2754 2755 var5.setBrightness(par1BlockRail.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2756 var5.setColorOpaque_F(1.0F, 1.0F, 1.0F); 2757 int var8 = (var7 & 15) << 4; 2758 int var9 = var7 & 240; 2759 double var10 = (double)((float)var8 / 256.0F); 2760 double var12 = (double)(((float)var8 + 15.99F) / 256.0F); 2761 double var14 = (double)((float)var9 / 256.0F); 2762 double var16 = (double)(((float)var9 + 15.99F) / 256.0F); 2763 double var18 = 0.0625D; 2764 double var20 = (double)(par2 + 1); 2765 double var22 = (double)(par2 + 1); 2766 double var24 = (double)(par2 + 0); 2767 double var26 = (double)(par2 + 0); 2768 double var28 = (double)(par4 + 0); 2769 double var30 = (double)(par4 + 1); 2770 double var32 = (double)(par4 + 1); 2771 double var34 = (double)(par4 + 0); 2772 double var36 = (double)par3 + var18; 2773 double var38 = (double)par3 + var18; 2774 double var40 = (double)par3 + var18; 2775 double var42 = (double)par3 + var18; 2776 2777 if (var6 != 1 && var6 != 2 && var6 != 3 && var6 != 7) 2778 { 2779 if (var6 == 8) 2780 { 2781 var20 = var22 = (double)(par2 + 0); 2782 var24 = var26 = (double)(par2 + 1); 2783 var28 = var34 = (double)(par4 + 1); 2784 var30 = var32 = (double)(par4 + 0); 2785 } 2786 else if (var6 == 9) 2787 { 2788 var20 = var26 = (double)(par2 + 0); 2789 var22 = var24 = (double)(par2 + 1); 2790 var28 = var30 = (double)(par4 + 0); 2791 var32 = var34 = (double)(par4 + 1); 2792 } 2793 } 2794 else 2795 { 2796 var20 = var26 = (double)(par2 + 1); 2797 var22 = var24 = (double)(par2 + 0); 2798 var28 = var30 = (double)(par4 + 1); 2799 var32 = var34 = (double)(par4 + 0); 2800 } 2801 2802 if (var6 != 2 && var6 != 4) 2803 { 2804 if (var6 == 3 || var6 == 5) 2805 { 2806 ++var38; 2807 ++var40; 2808 } 2809 } 2810 else 2811 { 2812 ++var36; 2813 ++var42; 2814 } 2815 2816 var5.addVertexWithUV(var20, var36, var28, var12, var14); 2817 var5.addVertexWithUV(var22, var38, var30, var12, var16); 2818 var5.addVertexWithUV(var24, var40, var32, var10, var16); 2819 var5.addVertexWithUV(var26, var42, var34, var10, var14); 2820 var5.addVertexWithUV(var26, var42, var34, var10, var14); 2821 var5.addVertexWithUV(var24, var40, var32, var10, var16); 2822 var5.addVertexWithUV(var22, var38, var30, var12, var16); 2823 var5.addVertexWithUV(var20, var36, var28, var12, var14); 2824 return true; 2825 } 2826 2827 /** 2828 * Renders a ladder block at the given coordinates 2829 */ 2830 public boolean renderBlockLadder(Block par1Block, int par2, int par3, int par4) 2831 { 2832 Tessellator var5 = Tessellator.instance; 2833 int var6 = par1Block.getBlockTextureFromSide(0); 2834 2835 if (this.overrideBlockTexture >= 0) 2836 { 2837 var6 = this.overrideBlockTexture; 2838 } 2839 2840 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2841 float var7 = 1.0F; 2842 var5.setColorOpaque_F(var7, var7, var7); 2843 int var22 = (var6 & 15) << 4; 2844 int var8 = var6 & 240; 2845 double var9 = (double)((float)var22 / 256.0F); 2846 double var11 = (double)(((float)var22 + 15.99F) / 256.0F); 2847 double var13 = (double)((float)var8 / 256.0F); 2848 double var15 = (double)(((float)var8 + 15.99F) / 256.0F); 2849 int var17 = this.blockAccess.getBlockMetadata(par2, par3, par4); 2850 double var18 = 0.0D; 2851 double var20 = 0.05000000074505806D; 2852 2853 if (var17 == 5) 2854 { 2855 var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 1) + var18, (double)(par4 + 1) + var18, var9, var13); 2856 var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 0) - var18, (double)(par4 + 1) + var18, var9, var15); 2857 var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 0) - var18, (double)(par4 + 0) - var18, var11, var15); 2858 var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 1) + var18, (double)(par4 + 0) - var18, var11, var13); 2859 } 2860 2861 if (var17 == 4) 2862 { 2863 var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 0) - var18, (double)(par4 + 1) + var18, var11, var15); 2864 var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 1) + var18, (double)(par4 + 1) + var18, var11, var13); 2865 var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 1) + var18, (double)(par4 + 0) - var18, var9, var13); 2866 var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 0) - var18, (double)(par4 + 0) - var18, var9, var15); 2867 } 2868 2869 if (var17 == 3) 2870 { 2871 var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 0) - var18, (double)par4 + var20, var11, var15); 2872 var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 1) + var18, (double)par4 + var20, var11, var13); 2873 var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 1) + var18, (double)par4 + var20, var9, var13); 2874 var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 0) - var18, (double)par4 + var20, var9, var15); 2875 } 2876 2877 if (var17 == 2) 2878 { 2879 var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 1) + var18, (double)(par4 + 1) - var20, var9, var13); 2880 var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 0) - var18, (double)(par4 + 1) - var20, var9, var15); 2881 var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 0) - var18, (double)(par4 + 1) - var20, var11, var15); 2882 var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 1) + var18, (double)(par4 + 1) - var20, var11, var13); 2883 } 2884 2885 return true; 2886 } 2887 2888 /** 2889 * Render block vine 2890 */ 2891 public boolean renderBlockVine(Block par1Block, int par2, int par3, int par4) 2892 { 2893 Tessellator var5 = Tessellator.instance; 2894 int var6 = par1Block.getBlockTextureFromSide(0); 2895 2896 if (this.overrideBlockTexture >= 0) 2897 { 2898 var6 = this.overrideBlockTexture; 2899 } 2900 2901 float var7 = 1.0F; 2902 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2903 int var8 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4); 2904 float var9 = (float)(var8 >> 16 & 255) / 255.0F; 2905 float var10 = (float)(var8 >> 8 & 255) / 255.0F; 2906 float var11 = (float)(var8 & 255) / 255.0F; 2907 var5.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11); 2908 var8 = (var6 & 15) << 4; 2909 int var21 = var6 & 240; 2910 double var22 = (double)((float)var8 / 256.0F); 2911 double var12 = (double)(((float)var8 + 15.99F) / 256.0F); 2912 double var14 = (double)((float)var21 / 256.0F); 2913 double var16 = (double)(((float)var21 + 15.99F) / 256.0F); 2914 double var18 = 0.05000000074505806D; 2915 int var20 = this.blockAccess.getBlockMetadata(par2, par3, par4); 2916 2917 if ((var20 & 2) != 0) 2918 { 2919 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 1), var22, var14); 2920 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 1), var22, var16); 2921 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 0), var12, var16); 2922 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 0), var12, var14); 2923 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 0), var12, var14); 2924 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 0), var12, var16); 2925 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 1), var22, var16); 2926 var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 1), var22, var14); 2927 } 2928 2929 if ((var20 & 8) != 0) 2930 { 2931 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 1), var12, var16); 2932 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 1), var12, var14); 2933 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 0), var22, var14); 2934 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 0), var22, var16); 2935 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 0), var22, var16); 2936 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 0), var22, var14); 2937 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 1), var12, var14); 2938 var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 1), var12, var16); 2939 } 2940 2941 if ((var20 & 4) != 0) 2942 { 2943 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + var18, var12, var16); 2944 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)par4 + var18, var12, var14); 2945 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)par4 + var18, var22, var14); 2946 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + var18, var22, var16); 2947 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + var18, var22, var16); 2948 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)par4 + var18, var22, var14); 2949 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)par4 + var18, var12, var14); 2950 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + var18, var12, var16); 2951 } 2952 2953 if ((var20 & 1) != 0) 2954 { 2955 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)(par4 + 1) - var18, var22, var14); 2956 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - var18, var22, var16); 2957 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - var18, var12, var16); 2958 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)(par4 + 1) - var18, var12, var14); 2959 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)(par4 + 1) - var18, var12, var14); 2960 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - var18, var12, var16); 2961 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - var18, var22, var16); 2962 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)(par4 + 1) - var18, var22, var14); 2963 } 2964 2965 if (this.blockAccess.isBlockNormalCube(par2, par3 + 1, par4)) 2966 { 2967 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1) - var18, (double)(par4 + 0), var22, var14); 2968 var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1) - var18, (double)(par4 + 1), var22, var16); 2969 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1) - var18, (double)(par4 + 1), var12, var16); 2970 var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1) - var18, (double)(par4 + 0), var12, var14); 2971 } 2972 2973 return true; 2974 } 2975 2976 public boolean renderBlockPane(BlockPane par1BlockPane, int par2, int par3, int par4) 2977 { 2978 int var5 = this.blockAccess.getHeight(); 2979 Tessellator var6 = Tessellator.instance; 2980 var6.setBrightness(par1BlockPane.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 2981 float var7 = 1.0F; 2982 int var8 = par1BlockPane.colorMultiplier(this.blockAccess, par2, par3, par4); 2983 float var9 = (float)(var8 >> 16 & 255) / 255.0F; 2984 float var10 = (float)(var8 >> 8 & 255) / 255.0F; 2985 float var11 = (float)(var8 & 255) / 255.0F; 2986 2987 if (EntityRenderer.anaglyphEnable) 2988 { 2989 float var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F; 2990 float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F; 2991 float var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F; 2992 var9 = var12; 2993 var10 = var13; 2994 var11 = var14; 2995 } 2996 2997 var6.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11); 2998 boolean var64 = false; 2999 boolean var67 = false; 3000 int var68; 3001 int var65; 3002 int var66; 3003 3004 if (this.overrideBlockTexture >= 0) 3005 { 3006 var65 = this.overrideBlockTexture; 3007 var66 = this.overrideBlockTexture; 3008 } 3009 else 3010 { 3011 var68 = this.blockAccess.getBlockMetadata(par2, par3, par4); 3012 var65 = par1BlockPane.getBlockTextureFromSideAndMetadata(0, var68); 3013 var66 = par1BlockPane.getSideTextureIndex(); 3014 } 3015 3016 var68 = (var65 & 15) << 4; 3017 int var15 = var65 & 240; 3018 double var16 = (double)((float)var68 / 256.0F); 3019 double var18 = (double)(((float)var68 + 7.99F) / 256.0F); 3020 double var20 = (double)(((float)var68 + 15.99F) / 256.0F); 3021 double var22 = (double)((float)var15 / 256.0F); 3022 double var24 = (double)(((float)var15 + 15.99F) / 256.0F); 3023 int var26 = (var66 & 15) << 4; 3024 int var27 = var66 & 240; 3025 double var28 = (double)((float)(var26 + 7) / 256.0F); 3026 double var30 = (double)(((float)var26 + 8.99F) / 256.0F); 3027 double var32 = (double)((float)var27 / 256.0F); 3028 double var34 = (double)((float)(var27 + 8) / 256.0F); 3029 double var36 = (double)(((float)var27 + 15.99F) / 256.0F); 3030 double var38 = (double)par2; 3031 double var40 = (double)par2 + 0.5D; 3032 double var42 = (double)(par2 + 1); 3033 double var44 = (double)par4; 3034 double var46 = (double)par4 + 0.5D; 3035 double var48 = (double)(par4 + 1); 3036 double var50 = (double)par2 + 0.5D - 0.0625D; 3037 double var52 = (double)par2 + 0.5D + 0.0625D; 3038 double var54 = (double)par4 + 0.5D - 0.0625D; 3039 double var56 = (double)par4 + 0.5D + 0.0625D; 3040 boolean var58 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2, par3, par4 - 1)); 3041 boolean var59 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2, par3, par4 + 1)); 3042 boolean var60 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2 - 1, par3, par4)); 3043 boolean var61 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2 + 1, par3, par4)); 3044 boolean var62 = par1BlockPane.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1); 3045 boolean var63 = par1BlockPane.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0); 3046 3047 if ((!var60 || !var61) && (var60 || var61 || var58 || var59)) 3048 { 3049 if (var60 && !var61) 3050 { 3051 var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var16, var22); 3052 var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var16, var24); 3053 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24); 3054 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22); 3055 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var16, var22); 3056 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var16, var24); 3057 var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var18, var24); 3058 var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var18, var22); 3059 3060 if (!var59 && !var58) 3061 { 3062 var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var28, var32); 3063 var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var28, var36); 3064 var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var30, var36); 3065 var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var30, var32); 3066 var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var28, var32); 3067 var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var28, var36); 3068 var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var30, var36); 3069 var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var30, var32); 3070 } 3071 3072 if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 - 1, par3 + 1, par4)) 3073 { 3074 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3075 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var36); 3076 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var36); 3077 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3078 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3079 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var36); 3080 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var36); 3081 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3082 } 3083 3084 if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2 - 1, par3 - 1, par4)) 3085 { 3086 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var34); 3087 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var36); 3088 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var36); 3089 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var34); 3090 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34); 3091 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var36); 3092 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var36); 3093 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34); 3094 } 3095 } 3096 else if (!var60 && var61) 3097 { 3098 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22); 3099 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24); 3100 var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var20, var24); 3101 var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var20, var22); 3102 var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var18, var22); 3103 var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var18, var24); 3104 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var20, var24); 3105 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var20, var22); 3106 3107 if (!var59 && !var58) 3108 { 3109 var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var28, var32); 3110 var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var28, var36); 3111 var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var30, var36); 3112 var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var30, var32); 3113 var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var28, var32); 3114 var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var28, var36); 3115 var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var30, var36); 3116 var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var30, var32); 3117 } 3118 3119 if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 + 1, par3 + 1, par4)) 3120 { 3121 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var32); 3122 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3123 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3124 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var32); 3125 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var32); 3126 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3127 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3128 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var32); 3129 } 3130 3131 if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2 + 1, par3 - 1, par4)) 3132 { 3133 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var32); 3134 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var34); 3135 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var34); 3136 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var32); 3137 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var32); 3138 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34); 3139 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34); 3140 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var32); 3141 } 3142 } 3143 } 3144 else 3145 { 3146 var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var16, var22); 3147 var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var16, var24); 3148 var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var20, var24); 3149 var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var20, var22); 3150 var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var16, var22); 3151 var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var16, var24); 3152 var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var20, var24); 3153 var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var20, var22); 3154 3155 if (var62) 3156 { 3157 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var36); 3158 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var32); 3159 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var32); 3160 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var36); 3161 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var36); 3162 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var32); 3163 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var32); 3164 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var36); 3165 } 3166 else 3167 { 3168 if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 - 1, par3 + 1, par4)) 3169 { 3170 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3171 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var36); 3172 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var36); 3173 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3174 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3175 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var36); 3176 var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var36); 3177 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3178 } 3179 3180 if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 + 1, par3 + 1, par4)) 3181 { 3182 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var32); 3183 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3184 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3185 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var32); 3186 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var32); 3187 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34); 3188 var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34); 3189 var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var32); 3190 } 3191 } 3192 3193 if (var63) 3194 { 3195 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var36); 3196 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var32); 3197 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var32); 3198 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var36); 3199 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var36); 3200 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var32); 3201 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var32); 3202 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var36); 3203 } 3204 else 3205 { 3206 if (par3 > 1 && this.blockAccess.isAirBlock(par2 - 1, par3 - 1, par4)) 3207 { 3208 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var34); 3209 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var36); 3210 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var36); 3211 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var34); 3212 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34); 3213 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var36); 3214 var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var36); 3215 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34); 3216 } 3217 3218 if (par3 > 1 && this.blockAccess.isAirBlock(par2 + 1, par3 - 1, par4)) 3219 { 3220 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var32); 3221 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var34); 3222 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var34); 3223 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var32); 3224 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var32); 3225 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34); 3226 var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34); 3227 var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var32); 3228 } 3229 } 3230 } 3231 3232 if ((!var58 || !var59) && (var60 || var61 || var58 || var59)) 3233 { 3234 if (var58 && !var59) 3235 { 3236 var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var16, var22); 3237 var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var16, var24); 3238 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24); 3239 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22); 3240 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var16, var22); 3241 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var16, var24); 3242 var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var18, var24); 3243 var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var18, var22); 3244 3245 if (!var61 && !var60) 3246 { 3247 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var32); 3248 var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var28, var36); 3249 var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var30, var36); 3250 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var32); 3251 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32); 3252 var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var28, var36); 3253 var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var30, var36); 3254 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32); 3255 } 3256 3257 if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 - 1)) 3258 { 3259 var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var32); 3260 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var34); 3261 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var34); 3262 var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var32); 3263 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32); 3264 var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var34); 3265 var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var34); 3266 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32); 3267 } 3268 3269 if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 - 1)) 3270 { 3271 var6.addVertexWithUV(var50, (double)par3, var44, var30, var32); 3272 var6.addVertexWithUV(var50, (double)par3, var46, var30, var34); 3273 var6.addVertexWithUV(var52, (double)par3, var46, var28, var34); 3274 var6.addVertexWithUV(var52, (double)par3, var44, var28, var32); 3275 var6.addVertexWithUV(var50, (double)par3, var46, var30, var32); 3276 var6.addVertexWithUV(var50, (double)par3, var44, var30, var34); 3277 var6.addVertexWithUV(var52, (double)par3, var44, var28, var34); 3278 var6.addVertexWithUV(var52, (double)par3, var46, var28, var32); 3279 } 3280 } 3281 else if (!var58 && var59) 3282 { 3283 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22); 3284 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24); 3285 var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var20, var24); 3286 var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var20, var22); 3287 var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var18, var22); 3288 var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var18, var24); 3289 var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var20, var24); 3290 var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var20, var22); 3291 3292 if (!var61 && !var60) 3293 { 3294 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32); 3295 var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var28, var36); 3296 var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var30, var36); 3297 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32); 3298 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var32); 3299 var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var28, var36); 3300 var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var30, var36); 3301 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var32); 3302 } 3303 3304 if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 + 1)) 3305 { 3306 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var34); 3307 var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var36); 3308 var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var36); 3309 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var34); 3310 var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var34); 3311 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var36); 3312 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var36); 3313 var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var34); 3314 } 3315 3316 if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 + 1)) 3317 { 3318 var6.addVertexWithUV(var50, (double)par3, var46, var28, var34); 3319 var6.addVertexWithUV(var50, (double)par3, var48, var28, var36); 3320 var6.addVertexWithUV(var52, (double)par3, var48, var30, var36); 3321 var6.addVertexWithUV(var52, (double)par3, var46, var30, var34); 3322 var6.addVertexWithUV(var50, (double)par3, var48, var28, var34); 3323 var6.addVertexWithUV(var50, (double)par3, var46, var28, var36); 3324 var6.addVertexWithUV(var52, (double)par3, var46, var30, var36); 3325 var6.addVertexWithUV(var52, (double)par3, var48, var30, var34); 3326 } 3327 } 3328 } 3329 else 3330 { 3331 var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var16, var22); 3332 var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var16, var24); 3333 var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var20, var24); 3334 var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var20, var22); 3335 var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var16, var22); 3336 var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var16, var24); 3337 var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var20, var24); 3338 var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var20, var22); 3339 3340 if (var62) 3341 { 3342 var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var36); 3343 var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var30, var32); 3344 var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var28, var32); 3345 var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var36); 3346 var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var30, var36); 3347 var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var32); 3348 var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var32); 3349 var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var28, var36); 3350 } 3351 else 3352 { 3353 if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 - 1)) 3354 { 3355 var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var32); 3356 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var34); 3357 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var34); 3358 var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var32); 3359 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32); 3360 var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var34); 3361 var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var34); 3362 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32); 3363 } 3364 3365 if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 + 1)) 3366 { 3367 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var34); 3368 var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var36); 3369 var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var36); 3370 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var34); 3371 var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var34); 3372 var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var36); 3373 var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var36); 3374 var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var34); 3375 } 3376 } 3377 3378 if (var63) 3379 { 3380 var6.addVertexWithUV(var52, (double)par3, var48, var30, var36); 3381 var6.addVertexWithUV(var52, (double)par3, var44, var30, var32); 3382 var6.addVertexWithUV(var50, (double)par3, var44, var28, var32); 3383 var6.addVertexWithUV(var50, (double)par3, var48, var28, var36); 3384 var6.addVertexWithUV(var52, (double)par3, var44, var30, var36); 3385 var6.addVertexWithUV(var52, (double)par3, var48, var30, var32); 3386 var6.addVertexWithUV(var50, (double)par3, var48, var28, var32); 3387 var6.addVertexWithUV(var50, (double)par3, var44, var28, var36); 3388 } 3389 else 3390 { 3391 if (par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 - 1)) 3392 { 3393 var6.addVertexWithUV(var50, (double)par3, var44, var30, var32); 3394 var6.addVertexWithUV(var50, (double)par3, var46, var30, var34); 3395 var6.addVertexWithUV(var52, (double)par3, var46, var28, var34); 3396 var6.addVertexWithUV(var52, (double)par3, var44, var28, var32); 3397 var6.addVertexWithUV(var50, (double)par3, var46, var30, var32); 3398 var6.addVertexWithUV(var50, (double)par3, var44, var30, var34); 3399 var6.addVertexWithUV(var52, (double)par3, var44, var28, var34); 3400 var6.addVertexWithUV(var52, (double)par3, var46, var28, var32); 3401 } 3402 3403 if (par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 + 1)) 3404 { 3405 var6.addVertexWithUV(var50, (double)par3, var46, var28, var34); 3406 var6.addVertexWithUV(var50, (double)par3, var48, var28, var36); 3407 var6.addVertexWithUV(var52, (double)par3, var48, var30, var36); 3408 var6.addVertexWithUV(var52, (double)par3, var46, var30, var34); 3409 var6.addVertexWithUV(var50, (double)par3, var48, var28, var34); 3410 var6.addVertexWithUV(var50, (double)par3, var46, var28, var36); 3411 var6.addVertexWithUV(var52, (double)par3, var46, var30, var36); 3412 var6.addVertexWithUV(var52, (double)par3, var48, var30, var34); 3413 } 3414 } 3415 } 3416 3417 return true; 3418 } 3419 3420 /** 3421 * Renders any block requiring croseed squares such as reeds, flowers, and mushrooms 3422 */ 3423 public boolean renderCrossedSquares(Block par1Block, int par2, int par3, int par4) 3424 { 3425 Tessellator var5 = Tessellator.instance; 3426 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 3427 float var6 = 1.0F; 3428 int var7 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4); 3429 float var8 = (float)(var7 >> 16 & 255) / 255.0F; 3430 float var9 = (float)(var7 >> 8 & 255) / 255.0F; 3431 float var10 = (float)(var7 & 255) / 255.0F; 3432 3433 if (EntityRenderer.anaglyphEnable) 3434 { 3435 float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F; 3436 float var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F; 3437 float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F; 3438 var8 = var11; 3439 var9 = var12; 3440 var10 = var13; 3441 } 3442 3443 var5.setColorOpaque_F(var6 * var8, var6 * var9, var6 * var10); 3444 double var19 = (double)par2; 3445 double var20 = (double)par3; 3446 double var15 = (double)par4; 3447 3448 if (par1Block == Block.tallGrass) 3449 { 3450 long var17 = (long)(par2 * 3129871) ^(long)par4 * 116129781L ^(long)par3; 3451 var17 = var17 * var17 * 42317861L + var17 * 11L; 3452 var19 += ((double)((float)(var17 >> 16 & 15L) / 15.0F) - 0.5D) * 0.5D; 3453 var20 += ((double)((float)(var17 >> 20 & 15L) / 15.0F) - 1.0D) * 0.2D; 3454 var15 += ((double)((float)(var17 >> 24 & 15L) / 15.0F) - 0.5D) * 0.5D; 3455 } 3456 3457 this.drawCrossedSquares(par1Block, this.blockAccess.getBlockMetadata(par2, par3, par4), var19, var20, var15, 1.0F); 3458 return true; 3459 } 3460 3461 /** 3462 * Render block stem 3463 */ 3464 public boolean renderBlockStem(Block par1Block, int par2, int par3, int par4) 3465 { 3466 BlockStem var5 = (BlockStem)par1Block; 3467 Tessellator var6 = Tessellator.instance; 3468 var6.setBrightness(var5.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 3469 float var7 = 1.0F; 3470 int var8 = var5.colorMultiplier(this.blockAccess, par2, par3, par4); 3471 float var9 = (float)(var8 >> 16 & 255) / 255.0F; 3472 float var10 = (float)(var8 >> 8 & 255) / 255.0F; 3473 float var11 = (float)(var8 & 255) / 255.0F; 3474 3475 if (EntityRenderer.anaglyphEnable) 3476 { 3477 float var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F; 3478 float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F; 3479 float var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F; 3480 var9 = var12; 3481 var10 = var13; 3482 var11 = var14; 3483 } 3484 3485 var6.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11); 3486 var5.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4); 3487 int var15 = var5.getState(this.blockAccess, par2, par3, par4); 3488 3489 if (var15 < 0) 3490 { 3491 this.renderBlockStemSmall(var5, this.blockAccess.getBlockMetadata(par2, par3, par4), this.field_83024_j, (double)par2, (double)((float)par3 - 0.0625F), (double)par4); 3492 } 3493 else 3494 { 3495 this.renderBlockStemSmall(var5, this.blockAccess.getBlockMetadata(par2, par3, par4), 0.5D, (double)par2, (double)((float)par3 - 0.0625F), (double)par4); 3496 this.renderBlockStemBig(var5, this.blockAccess.getBlockMetadata(par2, par3, par4), var15, this.field_83024_j, (double)par2, (double)((float)par3 - 0.0625F), (double)par4); 3497 } 3498 3499 return true; 3500 } 3501 3502 /** 3503 * Render block crops 3504 */ 3505 public boolean renderBlockCrops(Block par1Block, int par2, int par3, int par4) 3506 { 3507 Tessellator var5 = Tessellator.instance; 3508 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 3509 var5.setColorOpaque_F(1.0F, 1.0F, 1.0F); 3510 this.renderBlockCropsImpl(par1Block, this.blockAccess.getBlockMetadata(par2, par3, par4), (double)par2, (double)((float)par3 - 0.0625F), (double)par4); 3511 return true; 3512 } 3513 3514 /** 3515 * Renders a torch at the given coordinates, with the base slanting at the given delta 3516 */ 3517 public void renderTorchAtAngle(Block par1Block, double par2, double par4, double par6, double par8, double par10) 3518 { 3519 Tessellator var12 = Tessellator.instance; 3520 int var13 = par1Block.getBlockTextureFromSide(0); 3521 3522 if (this.overrideBlockTexture >= 0) 3523 { 3524 var13 = this.overrideBlockTexture; 3525 } 3526 3527 int var14 = (var13 & 15) << 4; 3528 int var15 = var13 & 240; 3529 float var16 = (float)var14 / 256.0F; 3530 float var17 = ((float)var14 + 15.99F) / 256.0F; 3531 float var18 = (float)var15 / 256.0F; 3532 float var19 = ((float)var15 + 15.99F) / 256.0F; 3533 double var20 = (double)var16 + 0.02734375D; 3534 double var22 = (double)var18 + 0.0234375D; 3535 double var24 = (double)var16 + 0.03515625D; 3536 double var26 = (double)var18 + 0.03125D; 3537 double var28 = (double)var16 + 0.02734375D; 3538 double var30 = (double)var18 + 0.05078125D; 3539 double var32 = (double)var16 + 0.03515625D; 3540 double var34 = (double)var18 + 0.05859375D; 3541 par2 += 0.5D; 3542 par6 += 0.5D; 3543 double var36 = par2 - 0.5D; 3544 double var38 = par2 + 0.5D; 3545 double var40 = par6 - 0.5D; 3546 double var42 = par6 + 0.5D; 3547 double var44 = 0.0625D; 3548 double var46 = 0.625D; 3549 var12.addVertexWithUV(par2 + par8 * (1.0D - var46) - var44, par4 + var46, par6 + par10 * (1.0D - var46) - var44, var20, var22); 3550 var12.addVertexWithUV(par2 + par8 * (1.0D - var46) - var44, par4 + var46, par6 + par10 * (1.0D - var46) + var44, var20, var26); 3551 var12.addVertexWithUV(par2 + par8 * (1.0D - var46) + var44, par4 + var46, par6 + par10 * (1.0D - var46) + var44, var24, var26); 3552 var12.addVertexWithUV(par2 + par8 * (1.0D - var46) + var44, par4 + var46, par6 + par10 * (1.0D - var46) - var44, var24, var22); 3553 var12.addVertexWithUV(par2 + var44 + par8, par4, par6 - var44 + par10, var32, var30); 3554 var12.addVertexWithUV(par2 + var44 + par8, par4, par6 + var44 + par10, var32, var34); 3555 var12.addVertexWithUV(par2 - var44 + par8, par4, par6 + var44 + par10, var28, var34); 3556 var12.addVertexWithUV(par2 - var44 + par8, par4, par6 - var44 + par10, var28, var30); 3557 var12.addVertexWithUV(par2 - var44, par4 + 1.0D, var40, (double)var16, (double)var18); 3558 var12.addVertexWithUV(par2 - var44 + par8, par4 + 0.0D, var40 + par10, (double)var16, (double)var19); 3559 var12.addVertexWithUV(par2 - var44 + par8, par4 + 0.0D, var42 + par10, (double)var17, (double)var19); 3560 var12.addVertexWithUV(par2 - var44, par4 + 1.0D, var42, (double)var17, (double)var18); 3561 var12.addVertexWithUV(par2 + var44, par4 + 1.0D, var42, (double)var16, (double)var18); 3562 var12.addVertexWithUV(par2 + par8 + var44, par4 + 0.0D, var42 + par10, (double)var16, (double)var19); 3563 var12.addVertexWithUV(par2 + par8 + var44, par4 + 0.0D, var40 + par10, (double)var17, (double)var19); 3564 var12.addVertexWithUV(par2 + var44, par4 + 1.0D, var40, (double)var17, (double)var18); 3565 var12.addVertexWithUV(var36, par4 + 1.0D, par6 + var44, (double)var16, (double)var18); 3566 var12.addVertexWithUV(var36 + par8, par4 + 0.0D, par6 + var44 + par10, (double)var16, (double)var19); 3567 var12.addVertexWithUV(var38 + par8, par4 + 0.0D, par6 + var44 + par10, (double)var17, (double)var19); 3568 var12.addVertexWithUV(var38, par4 + 1.0D, par6 + var44, (double)var17, (double)var18); 3569 var12.addVertexWithUV(var38, par4 + 1.0D, par6 - var44, (double)var16, (double)var18); 3570 var12.addVertexWithUV(var38 + par8, par4 + 0.0D, par6 - var44 + par10, (double)var16, (double)var19); 3571 var12.addVertexWithUV(var36 + par8, par4 + 0.0D, par6 - var44 + par10, (double)var17, (double)var19); 3572 var12.addVertexWithUV(var36, par4 + 1.0D, par6 - var44, (double)var17, (double)var18); 3573 } 3574 3575 /** 3576 * Utility function to draw crossed swuares 3577 */ 3578 public void drawCrossedSquares(Block par1Block, int par2, double par3, double par5, double par7, float par9) 3579 { 3580 Tessellator var10 = Tessellator.instance; 3581 int var11 = par1Block.getBlockTextureFromSideAndMetadata(0, par2); 3582 3583 if (this.overrideBlockTexture >= 0) 3584 { 3585 var11 = this.overrideBlockTexture; 3586 } 3587 3588 int var12 = (var11 & 15) << 4; 3589 int var13 = var11 & 240; 3590 double var14 = (double)((float)var12 / 256.0F); 3591 double var16 = (double)(((float)var12 + 15.99F) / 256.0F); 3592 double var18 = (double)((float)var13 / 256.0F); 3593 double var20 = (double)(((float)var13 + 15.99F) / 256.0F); 3594 double var22 = 0.45D * (double)par9; 3595 double var24 = par3 + 0.5D - var22; 3596 double var26 = par3 + 0.5D + var22; 3597 double var28 = par7 + 0.5D - var22; 3598 double var30 = par7 + 0.5D + var22; 3599 var10.addVertexWithUV(var24, par5 + (double)par9, var28, var14, var18); 3600 var10.addVertexWithUV(var24, par5 + 0.0D, var28, var14, var20); 3601 var10.addVertexWithUV(var26, par5 + 0.0D, var30, var16, var20); 3602 var10.addVertexWithUV(var26, par5 + (double)par9, var30, var16, var18); 3603 var10.addVertexWithUV(var26, par5 + (double)par9, var30, var14, var18); 3604 var10.addVertexWithUV(var26, par5 + 0.0D, var30, var14, var20); 3605 var10.addVertexWithUV(var24, par5 + 0.0D, var28, var16, var20); 3606 var10.addVertexWithUV(var24, par5 + (double)par9, var28, var16, var18); 3607 var10.addVertexWithUV(var24, par5 + (double)par9, var30, var14, var18); 3608 var10.addVertexWithUV(var24, par5 + 0.0D, var30, var14, var20); 3609 var10.addVertexWithUV(var26, par5 + 0.0D, var28, var16, var20); 3610 var10.addVertexWithUV(var26, par5 + (double)par9, var28, var16, var18); 3611 var10.addVertexWithUV(var26, par5 + (double)par9, var28, var14, var18); 3612 var10.addVertexWithUV(var26, par5 + 0.0D, var28, var14, var20); 3613 var10.addVertexWithUV(var24, par5 + 0.0D, var30, var16, var20); 3614 var10.addVertexWithUV(var24, par5 + (double)par9, var30, var16, var18); 3615 } 3616 3617 /** 3618 * Render block stem small 3619 */ 3620 public void renderBlockStemSmall(Block par1Block, int par2, double par3, double par5, double par7, double par9) 3621 { 3622 Tessellator var11 = Tessellator.instance; 3623 int var12 = par1Block.getBlockTextureFromSideAndMetadata(0, par2); 3624 3625 if (this.overrideBlockTexture >= 0) 3626 { 3627 var12 = this.overrideBlockTexture; 3628 } 3629 3630 int var13 = (var12 & 15) << 4; 3631 int var14 = var12 & 240; 3632 double var15 = (double)((float)var13 / 256.0F); 3633 double var17 = (double)(((float)var13 + 15.99F) / 256.0F); 3634 double var19 = (double)((float)var14 / 256.0F); 3635 double var21 = ((double)var14 + 15.989999771118164D * par3) / 256.0D; 3636 double var23 = par5 + 0.5D - 0.44999998807907104D; 3637 double var25 = par5 + 0.5D + 0.44999998807907104D; 3638 double var27 = par9 + 0.5D - 0.44999998807907104D; 3639 double var29 = par9 + 0.5D + 0.44999998807907104D; 3640 var11.addVertexWithUV(var23, par7 + par3, var27, var15, var19); 3641 var11.addVertexWithUV(var23, par7 + 0.0D, var27, var15, var21); 3642 var11.addVertexWithUV(var25, par7 + 0.0D, var29, var17, var21); 3643 var11.addVertexWithUV(var25, par7 + par3, var29, var17, var19); 3644 var11.addVertexWithUV(var25, par7 + par3, var29, var15, var19); 3645 var11.addVertexWithUV(var25, par7 + 0.0D, var29, var15, var21); 3646 var11.addVertexWithUV(var23, par7 + 0.0D, var27, var17, var21); 3647 var11.addVertexWithUV(var23, par7 + par3, var27, var17, var19); 3648 var11.addVertexWithUV(var23, par7 + par3, var29, var15, var19); 3649 var11.addVertexWithUV(var23, par7 + 0.0D, var29, var15, var21); 3650 var11.addVertexWithUV(var25, par7 + 0.0D, var27, var17, var21); 3651 var11.addVertexWithUV(var25, par7 + par3, var27, var17, var19); 3652 var11.addVertexWithUV(var25, par7 + par3, var27, var15, var19); 3653 var11.addVertexWithUV(var25, par7 + 0.0D, var27, var15, var21); 3654 var11.addVertexWithUV(var23, par7 + 0.0D, var29, var17, var21); 3655 var11.addVertexWithUV(var23, par7 + par3, var29, var17, var19); 3656 } 3657 3658 /** 3659 * Render BlockLilyPad 3660 */ 3661 public boolean renderBlockLilyPad(Block par1Block, int par2, int par3, int par4) 3662 { 3663 Tessellator var5 = Tessellator.instance; 3664 int var6 = par1Block.blockIndexInTexture; 3665 3666 if (this.overrideBlockTexture >= 0) 3667 { 3668 var6 = this.overrideBlockTexture; 3669 } 3670 3671 int var7 = (var6 & 15) << 4; 3672 int var8 = var6 & 240; 3673 float var9 = 0.015625F; 3674 double var10 = (double)((float)var7 / 256.0F); 3675 double var12 = (double)(((float)var7 + 15.99F) / 256.0F); 3676 double var14 = (double)((float)var8 / 256.0F); 3677 double var16 = (double)(((float)var8 + 15.99F) / 256.0F); 3678 long var18 = (long)(par2 * 3129871) ^(long)par4 * 116129781L ^(long)par3; 3679 var18 = var18 * var18 * 42317861L + var18 * 11L; 3680 int var20 = (int)(var18 >> 16 & 3L); 3681 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 3682 float var21 = (float)par2 + 0.5F; 3683 float var22 = (float)par4 + 0.5F; 3684 float var23 = (float)(var20 & 1) * 0.5F * (float)(1 - var20 / 2 % 2 * 2); 3685 float var24 = (float)(var20 + 1 & 1) * 0.5F * (float)(1 - (var20 + 1) / 2 % 2 * 2); 3686 var5.setColorOpaque_I(par1Block.getBlockColor()); 3687 var5.addVertexWithUV((double)(var21 + var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 + var24), var10, var14); 3688 var5.addVertexWithUV((double)(var21 + var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 + var24), var12, var14); 3689 var5.addVertexWithUV((double)(var21 - var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 - var24), var12, var16); 3690 var5.addVertexWithUV((double)(var21 - var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 - var24), var10, var16); 3691 var5.setColorOpaque_I((par1Block.getBlockColor() & 16711422) >> 1); 3692 var5.addVertexWithUV((double)(var21 - var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 - var24), var10, var16); 3693 var5.addVertexWithUV((double)(var21 - var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 - var24), var12, var16); 3694 var5.addVertexWithUV((double)(var21 + var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 + var24), var12, var14); 3695 var5.addVertexWithUV((double)(var21 + var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 + var24), var10, var14); 3696 return true; 3697 } 3698 3699 /** 3700 * Render block stem big 3701 */ 3702 public void renderBlockStemBig(Block par1Block, int par2, int par3, double par4, double par6, double par8, double par10) 3703 { 3704 Tessellator var12 = Tessellator.instance; 3705 int var13 = par1Block.getBlockTextureFromSideAndMetadata(0, par2) + 16; 3706 3707 if (this.overrideBlockTexture >= 0) 3708 { 3709 var13 = this.overrideBlockTexture; 3710 } 3711 3712 int var14 = (var13 & 15) << 4; 3713 int var15 = var13 & 240; 3714 double var16 = (double)((float)var14 / 256.0F); 3715 double var18 = (double)(((float)var14 + 15.99F) / 256.0F); 3716 double var20 = (double)((float)var15 / 256.0F); 3717 double var22 = ((double)var15 + 15.989999771118164D * par4) / 256.0D; 3718 double var24 = par6 + 0.5D - 0.5D; 3719 double var26 = par6 + 0.5D + 0.5D; 3720 double var28 = par10 + 0.5D - 0.5D; 3721 double var30 = par10 + 0.5D + 0.5D; 3722 double var32 = par6 + 0.5D; 3723 double var34 = par10 + 0.5D; 3724 3725 if ((par3 + 1) / 2 % 2 == 1) 3726 { 3727 double var36 = var18; 3728 var18 = var16; 3729 var16 = var36; 3730 } 3731 3732 if (par3 < 2) 3733 { 3734 var12.addVertexWithUV(var24, par8 + par4, var34, var16, var20); 3735 var12.addVertexWithUV(var24, par8 + 0.0D, var34, var16, var22); 3736 var12.addVertexWithUV(var26, par8 + 0.0D, var34, var18, var22); 3737 var12.addVertexWithUV(var26, par8 + par4, var34, var18, var20); 3738 var12.addVertexWithUV(var26, par8 + par4, var34, var18, var20); 3739 var12.addVertexWithUV(var26, par8 + 0.0D, var34, var18, var22); 3740 var12.addVertexWithUV(var24, par8 + 0.0D, var34, var16, var22); 3741 var12.addVertexWithUV(var24, par8 + par4, var34, var16, var20); 3742 } 3743 else 3744 { 3745 var12.addVertexWithUV(var32, par8 + par4, var30, var16, var20); 3746 var12.addVertexWithUV(var32, par8 + 0.0D, var30, var16, var22); 3747 var12.addVertexWithUV(var32, par8 + 0.0D, var28, var18, var22); 3748 var12.addVertexWithUV(var32, par8 + par4, var28, var18, var20); 3749 var12.addVertexWithUV(var32, par8 + par4, var28, var18, var20); 3750 var12.addVertexWithUV(var32, par8 + 0.0D, var28, var18, var22); 3751 var12.addVertexWithUV(var32, par8 + 0.0D, var30, var16, var22); 3752 var12.addVertexWithUV(var32, par8 + par4, var30, var16, var20); 3753 } 3754 } 3755 3756 /** 3757 * Render block crops implementation 3758 */ 3759 public void renderBlockCropsImpl(Block par1Block, int par2, double par3, double par5, double par7) 3760 { 3761 Tessellator var9 = Tessellator.instance; 3762 int var10 = par1Block.getBlockTextureFromSideAndMetadata(0, par2); 3763 3764 if (this.overrideBlockTexture >= 0) 3765 { 3766 var10 = this.overrideBlockTexture; 3767 } 3768 3769 int var11 = (var10 & 15) << 4; 3770 int var12 = var10 & 240; 3771 double var13 = (double)((float)var11 / 256.0F); 3772 double var15 = (double)(((float)var11 + 15.99F) / 256.0F); 3773 double var17 = (double)((float)var12 / 256.0F); 3774 double var19 = (double)(((float)var12 + 15.99F) / 256.0F); 3775 double var21 = par3 + 0.5D - 0.25D; 3776 double var23 = par3 + 0.5D + 0.25D; 3777 double var25 = par7 + 0.5D - 0.5D; 3778 double var27 = par7 + 0.5D + 0.5D; 3779 var9.addVertexWithUV(var21, par5 + 1.0D, var25, var13, var17); 3780 var9.addVertexWithUV(var21, par5 + 0.0D, var25, var13, var19); 3781 var9.addVertexWithUV(var21, par5 + 0.0D, var27, var15, var19); 3782 var9.addVertexWithUV(var21, par5 + 1.0D, var27, var15, var17); 3783 var9.addVertexWithUV(var21, par5 + 1.0D, var27, var13, var17); 3784 var9.addVertexWithUV(var21, par5 + 0.0D, var27, var13, var19); 3785 var9.addVertexWithUV(var21, par5 + 0.0D, var25, var15, var19); 3786 var9.addVertexWithUV(var21, par5 + 1.0D, var25, var15, var17); 3787 var9.addVertexWithUV(var23, par5 + 1.0D, var27, var13, var17); 3788 var9.addVertexWithUV(var23, par5 + 0.0D, var27, var13, var19); 3789 var9.addVertexWithUV(var23, par5 + 0.0D, var25, var15, var19); 3790 var9.addVertexWithUV(var23, par5 + 1.0D, var25, var15, var17); 3791 var9.addVertexWithUV(var23, par5 + 1.0D, var25, var13, var17); 3792 var9.addVertexWithUV(var23, par5 + 0.0D, var25, var13, var19); 3793 var9.addVertexWithUV(var23, par5 + 0.0D, var27, var15, var19); 3794 var9.addVertexWithUV(var23, par5 + 1.0D, var27, var15, var17); 3795 var21 = par3 + 0.5D - 0.5D; 3796 var23 = par3 + 0.5D + 0.5D; 3797 var25 = par7 + 0.5D - 0.25D; 3798 var27 = par7 + 0.5D + 0.25D; 3799 var9.addVertexWithUV(var21, par5 + 1.0D, var25, var13, var17); 3800 var9.addVertexWithUV(var21, par5 + 0.0D, var25, var13, var19); 3801 var9.addVertexWithUV(var23, par5 + 0.0D, var25, var15, var19); 3802 var9.addVertexWithUV(var23, par5 + 1.0D, var25, var15, var17); 3803 var9.addVertexWithUV(var23, par5 + 1.0D, var25, var13, var17); 3804 var9.addVertexWithUV(var23, par5 + 0.0D, var25, var13, var19); 3805 var9.addVertexWithUV(var21, par5 + 0.0D, var25, var15, var19); 3806 var9.addVertexWithUV(var21, par5 + 1.0D, var25, var15, var17); 3807 var9.addVertexWithUV(var23, par5 + 1.0D, var27, var13, var17); 3808 var9.addVertexWithUV(var23, par5 + 0.0D, var27, var13, var19); 3809 var9.addVertexWithUV(var21, par5 + 0.0D, var27, var15, var19); 3810 var9.addVertexWithUV(var21, par5 + 1.0D, var27, var15, var17); 3811 var9.addVertexWithUV(var21, par5 + 1.0D, var27, var13, var17); 3812 var9.addVertexWithUV(var21, par5 + 0.0D, var27, var13, var19); 3813 var9.addVertexWithUV(var23, par5 + 0.0D, var27, var15, var19); 3814 var9.addVertexWithUV(var23, par5 + 1.0D, var27, var15, var17); 3815 } 3816 3817 /** 3818 * Renders a block based on the BlockFluids class at the given coordinates 3819 */ 3820 public boolean renderBlockFluids(Block par1Block, int par2, int par3, int par4) 3821 { 3822 Tessellator var5 = Tessellator.instance; 3823 int var6 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4); 3824 float var7 = (float)(var6 >> 16 & 255) / 255.0F; 3825 float var8 = (float)(var6 >> 8 & 255) / 255.0F; 3826 float var9 = (float)(var6 & 255) / 255.0F; 3827 boolean var10 = par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1); 3828 boolean var11 = par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0); 3829 boolean[] var12 = new boolean[] {par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2), par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3), par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4), par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5)}; 3830 3831 if (!var10 && !var11 && !var12[0] && !var12[1] && !var12[2] && !var12[3]) 3832 { 3833 return false; 3834 } 3835 else 3836 { 3837 boolean var13 = false; 3838 float var14 = 0.5F; 3839 float var15 = 1.0F; 3840 float var16 = 0.8F; 3841 float var17 = 0.6F; 3842 double var18 = 0.0D; 3843 double var20 = 1.0D; 3844 Material var22 = par1Block.blockMaterial; 3845 int var23 = this.blockAccess.getBlockMetadata(par2, par3, par4); 3846 double var24 = (double)this.getFluidHeight(par2, par3, par4, var22); 3847 double var26 = (double)this.getFluidHeight(par2, par3, par4 + 1, var22); 3848 double var28 = (double)this.getFluidHeight(par2 + 1, par3, par4 + 1, var22); 3849 double var30 = (double)this.getFluidHeight(par2 + 1, par3, par4, var22); 3850 double var32 = 0.0010000000474974513D; 3851 int var34; 3852 int var37; 3853 3854 if (this.renderAllFaces || var10) 3855 { 3856 var13 = true; 3857 var34 = par1Block.getBlockTextureFromSideAndMetadata(1, var23); 3858 float var35 = (float)BlockFluid.getFlowDirection(this.blockAccess, par2, par3, par4, var22); 3859 3860 if (var35 > -999.0F) 3861 { 3862 var34 = par1Block.getBlockTextureFromSideAndMetadata(2, var23); 3863 } 3864 3865 var24 -= var32; 3866 var26 -= var32; 3867 var28 -= var32; 3868 var30 -= var32; 3869 int var36 = (var34 & 15) << 4; 3870 var37 = var34 & 240; 3871 double var38 = ((double)var36 + 8.0D) / 256.0D; 3872 double var40 = ((double)var37 + 8.0D) / 256.0D; 3873 3874 if (var35 < -999.0F) 3875 { 3876 var35 = 0.0F; 3877 } 3878 else 3879 { 3880 var38 = (double)((float)(var36 + 16) / 256.0F); 3881 var40 = (double)((float)(var37 + 16) / 256.0F); 3882 } 3883 3884 double var42 = (double)(MathHelper.sin(var35) * 8.0F) / 256.0D; 3885 double var44 = (double)(MathHelper.cos(var35) * 8.0F) / 256.0D; 3886 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 3887 float var46 = 1.0F; 3888 var5.setColorOpaque_F(var15 * var46 * var7, var15 * var46 * var8, var15 * var46 * var9); 3889 var5.addVertexWithUV((double)(par2 + 0), (double)par3 + var24, (double)(par4 + 0), var38 - var44 - var42, var40 - var44 + var42); 3890 var5.addVertexWithUV((double)(par2 + 0), (double)par3 + var26, (double)(par4 + 1), var38 - var44 + var42, var40 + var44 + var42); 3891 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var28, (double)(par4 + 1), var38 + var44 + var42, var40 + var44 - var42); 3892 var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var30, (double)(par4 + 0), var38 + var44 - var42, var40 - var44 - var42); 3893 } 3894 3895 if (this.renderAllFaces || var11) 3896 { 3897 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4)); 3898 float var65 = 1.0F; 3899 var5.setColorOpaque_F(var14 * var65, var14 * var65, var14 * var65); 3900 this.renderBottomFace(par1Block, (double)par2, (double)par3 + var32, (double)par4, par1Block.getBlockTextureFromSide(0)); 3901 var13 = true; 3902 } 3903 3904 for (var34 = 0; var34 < 4; ++var34) 3905 { 3906 int var64 = par2; 3907 var37 = par4; 3908 3909 if (var34 == 0) 3910 { 3911 var37 = par4 - 1; 3912 } 3913 3914 if (var34 == 1) 3915 { 3916 ++var37; 3917 } 3918 3919 if (var34 == 2) 3920 { 3921 var64 = par2 - 1; 3922 } 3923 3924 if (var34 == 3) 3925 { 3926 ++var64; 3927 } 3928 3929 int var66 = par1Block.getBlockTextureFromSideAndMetadata(var34 + 2, var23); 3930 int var39 = (var66 & 15) << 4; 3931 int var67 = var66 & 240; 3932 3933 if (this.renderAllFaces || var12[var34]) 3934 { 3935 double var43; 3936 double var41; 3937 double var47; 3938 double var45; 3939 double var51; 3940 double var49; 3941 3942 if (var34 == 0) 3943 { 3944 var41 = var24; 3945 var43 = var30; 3946 var45 = (double)par2; 3947 var49 = (double)(par2 + 1); 3948 var47 = (double)par4 + var32; 3949 var51 = (double)par4 + var32; 3950 } 3951 else if (var34 == 1) 3952 { 3953 var41 = var28; 3954 var43 = var26; 3955 var45 = (double)(par2 + 1); 3956 var49 = (double)par2; 3957 var47 = (double)(par4 + 1) - var32; 3958 var51 = (double)(par4 + 1) - var32; 3959 } 3960 else if (var34 == 2) 3961 { 3962 var41 = var26; 3963 var43 = var24; 3964 var45 = (double)par2 + var32; 3965 var49 = (double)par2 + var32; 3966 var47 = (double)(par4 + 1); 3967 var51 = (double)par4; 3968 } 3969 else 3970 { 3971 var41 = var30; 3972 var43 = var28; 3973 var45 = (double)(par2 + 1) - var32; 3974 var49 = (double)(par2 + 1) - var32; 3975 var47 = (double)par4; 3976 var51 = (double)(par4 + 1); 3977 } 3978 3979 var13 = true; 3980 double var53 = (double)((float)(var39 + 0) / 256.0F); 3981 double var55 = ((double)(var39 + 16) - 0.01D) / 256.0D; 3982 double var57 = ((double)var67 + (1.0D - var41) * 16.0D) / 256.0D; 3983 double var59 = ((double)var67 + (1.0D - var43) * 16.0D) / 256.0D; 3984 double var61 = ((double)(var67 + 16) - 0.01D) / 256.0D; 3985 var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, var64, par3, var37)); 3986 float var63 = 1.0F; 3987 3988 if (var34 < 2) 3989 { 3990 var63 *= var16; 3991 } 3992 else 3993 { 3994 var63 *= var17; 3995 } 3996 3997 var5.setColorOpaque_F(var15 * var63 * var7, var15 * var63 * var8, var15 * var63 * var9); 3998 var5.addVertexWithUV(var45, (double)par3 + var41, var47, var53, var57); 3999 var5.addVertexWithUV(var49, (double)par3 + var43, var51, var55, var59); 4000 var5.addVertexWithUV(var49, (double)(par3 + 0), var51, var55, var61); 4001 var5.addVertexWithUV(var45, (double)(par3 + 0), var47, var53, var61); 4002 } 4003 } 4004 4005 this.field_83027_i = var18; 4006 this.field_83024_j = var20; 4007 return var13; 4008 } 4009 } 4010 4011 /** 4012 * Get fluid height 4013 */ 4014 public float getFluidHeight(int par1, int par2, int par3, Material par4Material) 4015 { 4016 int var5 = 0; 4017 float var6 = 0.0F; 4018 4019 for (int var7 = 0; var7 < 4; ++var7) 4020 { 4021 int var8 = par1 - (var7 & 1); 4022 int var10 = par3 - (var7 >> 1 & 1); 4023 4024 if (this.blockAccess.getBlockMaterial(var8, par2 + 1, var10) == par4Material) 4025 { 4026 return 1.0F; 4027 } 4028 4029 Material var11 = this.blockAccess.getBlockMaterial(var8, par2, var10); 4030 4031 if (var11 == par4Material) 4032 { 4033 int var12 = this.blockAccess.getBlockMetadata(var8, par2, var10); 4034 4035 if (var12 >= 8 || var12 == 0) 4036 { 4037 var6 += BlockFluid.getFluidHeightPercent(var12) * 10.0F; 4038 var5 += 10; 4039 } 4040 4041 var6 += BlockFluid.getFluidHeightPercent(var12); 4042 ++var5; 4043 } 4044 else if (!var11.isSolid()) 4045 { 4046 ++var6; 4047 ++var5; 4048 } 4049 } 4050 4051 return 1.0F - var6 / (float)var5; 4052 } 4053 4054 public void func_78588_a(Block par1Block, World par2World, int par3, int par4, int par5, int par6) 4055 { 4056 float var7 = 0.5F; 4057 float var8 = 1.0F; 4058 float var9 = 0.8F; 4059 float var10 = 0.6F; 4060 Tessellator var11 = Tessellator.instance; 4061 var11.startDrawingQuads(); 4062 var11.setBrightness(par1Block.getMixedBrightnessForBlock(par2World, par3, par4, par5)); 4063 float var12 = 1.0F; 4064 float var13 = 1.0F; 4065 4066 if (var13 < var12) 4067 { 4068 var13 = var12; 4069 } 4070 4071 var11.setColorOpaque_F(var7 * var13, var7 * var13, var7 * var13); 4072 this.renderBottomFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(0, par6)); 4073 var13 = 1.0F; 4074 4075 if (var13 < var12) 4076 { 4077 var13 = var12; 4078 } 4079 4080 var11.setColorOpaque_F(var8 * var13, var8 * var13, var8 * var13); 4081 this.renderTopFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(1, par6)); 4082 var13 = 1.0F; 4083 4084 if (var13 < var12) 4085 { 4086 var13 = var12; 4087 } 4088 4089 var11.setColorOpaque_F(var9 * var13, var9 * var13, var9 * var13); 4090 this.renderEastFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(2, par6)); 4091 var13 = 1.0F; 4092 4093 if (var13 < var12) 4094 { 4095 var13 = var12; 4096 } 4097 4098 var11.setColorOpaque_F(var9 * var13, var9 * var13, var9 * var13); 4099 this.renderWestFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(3, par6)); 4100 var13 = 1.0F; 4101 4102 if (var13 < var12) 4103 { 4104 var13 = var12; 4105 } 4106 4107 var11.setColorOpaque_F(var10 * var13, var10 * var13, var10 * var13); 4108 this.renderNorthFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(4, par6)); 4109 var13 = 1.0F; 4110 4111 if (var13 < var12) 4112 { 4113 var13 = var12; 4114 } 4115 4116 var11.setColorOpaque_F(var10 * var13, var10 * var13, var10 * var13); 4117 this.renderSouthFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(5, par6)); 4118 var11.draw(); 4119 } 4120 4121 /** 4122 * Renders a standard cube block at the given coordinates 4123 */ 4124 public boolean renderStandardBlock(Block par1Block, int par2, int par3, int par4) 4125 { 4126 int var5 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4); 4127 float var6 = (float)(var5 >> 16 & 255) / 255.0F; 4128 float var7 = (float)(var5 >> 8 & 255) / 255.0F; 4129 float var8 = (float)(var5 & 255) / 255.0F; 4130 4131 if (EntityRenderer.anaglyphEnable) 4132 { 4133 float var9 = (var6 * 30.0F + var7 * 59.0F + var8 * 11.0F) / 100.0F; 4134 float var10 = (var6 * 30.0F + var7 * 70.0F) / 100.0F; 4135 float var11 = (var6 * 30.0F + var8 * 70.0F) / 100.0F; 4136 var6 = var9; 4137 var7 = var10; 4138 var8 = var11; 4139 } 4140 4141 return Minecraft.isAmbientOcclusionEnabled() && Block.lightValue[par1Block.blockID] == 0 ? this.renderStandardBlockWithAmbientOcclusion(par1Block, par2, par3, par4, var6, var7, var8) : this.renderStandardBlockWithColorMultiplier(par1Block, par2, par3, par4, var6, var7, var8); 4142 } 4143 4144 /** 4145 * Renders a log block at the given coordinates 4146 */ 4147 public boolean renderBlockLog(Block par1Block, int par2, int par3, int par4) 4148 { 4149 int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4); 4150 int var6 = var5 & 12; 4151 4152 if (var6 == 4) 4153 { 4154 this.uvRotateEast = 1; 4155 this.uvRotateWest = 1; 4156 this.uvRotateTop = 1; 4157 this.uvRotateBottom = 1; 4158 } 4159 else if (var6 == 8) 4160 { 4161 this.uvRotateSouth = 1; 4162 this.uvRotateNorth = 1; 4163 } 4164 4165 boolean var7 = this.renderStandardBlock(par1Block, par2, par3, par4); 4166 this.uvRotateSouth = 0; 4167 this.uvRotateEast = 0; 4168 this.uvRotateWest = 0; 4169 this.uvRotateNorth = 0; 4170 this.uvRotateTop = 0; 4171 this.uvRotateBottom = 0; 4172 return var7; 4173 } 4174 4175 public boolean renderStandardBlockWithAmbientOcclusion(Block par1Block, int par2, int par3, int par4, float par5, float par6, float par7) 4176 { 4177 this.enableAO = true; 4178 boolean var8 = false; 4179 float var9 = this.lightValueOwn; 4180 float var10 = this.lightValueOwn; 4181 float var11 = this.lightValueOwn; 4182 float var12 = this.lightValueOwn; 4183 boolean var13 = true; 4184 boolean var14 = true; 4185 boolean var15 = true; 4186 boolean var16 = true; 4187 boolean var17 = true; 4188 boolean var18 = true; 4189 this.lightValueOwn = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4); 4190 this.aoLightValueXNeg = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4); 4191 this.aoLightValueYNeg = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4); 4192 this.aoLightValueZNeg = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1); 4193 this.aoLightValueXPos = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4); 4194 this.aoLightValueYPos = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4); 4195 this.aoLightValueZPos = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1); 4196 int var19 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4); 4197 int var20 = var19; 4198 int var21 = var19; 4199 int var22 = var19; 4200 int var23 = var19; 4201 int var24 = var19; 4202 int var25 = var19; 4203 4204 if (this.field_83027_i <= 0.0D) 4205 { 4206 var21 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4); 4207 } 4208 4209 if (this.field_83024_j >= 1.0D) 4210 { 4211 var24 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4); 4212 } 4213 4214 if (this.field_83021_g <= 0.0D) 4215 { 4216 var20 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4); 4217 } 4218 4219 if (this.field_83026_h >= 1.0D) 4220 { 4221 var23 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4); 4222 } 4223 4224 if (this.field_83025_k <= 0.0D) 4225 { 4226 var22 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1); 4227 } 4228 4229 if (this.field_83022_l >= 1.0D) 4230 { 4231 var25 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1); 4232 } 4233 4234 Tessellator var26 = Tessellator.instance; 4235 var26.setBrightness(983055); 4236 this.aoGrassXYZPPC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3 + 1, par4)]; 4237 this.aoGrassXYZPNC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3 - 1, par4)]; 4238 this.aoGrassXYZPCP = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3, par4 + 1)]; 4239 this.aoGrassXYZPCN = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3, par4 - 1)]; 4240 this.aoGrassXYZNPC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3 + 1, par4)]; 4241 this.aoGrassXYZNNC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3 - 1, par4)]; 4242 this.aoGrassXYZNCN = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3, par4 - 1)]; 4243 this.aoGrassXYZNCP = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3, par4 + 1)]; 4244 this.aoGrassXYZCPP = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 + 1, par4 + 1)]; 4245 this.aoGrassXYZCPN = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 + 1, par4 - 1)]; 4246 this.aoGrassXYZCNP = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 - 1, par4 + 1)]; 4247 this.aoGrassXYZCNN = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 - 1, par4 - 1)]; 4248 4249 if (par1Block.blockIndexInTexture == 3) 4250 { 4251 var18 = false; 4252 var17 = false; 4253 var16 = false; 4254 var15 = false; 4255 var13 = false; 4256 } 4257 4258 if (this.overrideBlockTexture >= 0) 4259 { 4260 var18 = false; 4261 var17 = false; 4262 var16 = false; 4263 var15 = false; 4264 var13 = false; 4265 } 4266 4267 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0)) 4268 { 4269 if (this.aoType > 0) 4270 { 4271 if (this.field_83027_i <= 0.0D) 4272 { 4273 --par3; 4274 } 4275 4276 this.aoBrightnessXYNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4); 4277 this.aoBrightnessYZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1); 4278 this.aoBrightnessYZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1); 4279 this.aoBrightnessXYPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4); 4280 this.aoLightValueScratchXYNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4); 4281 this.aoLightValueScratchYZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1); 4282 this.aoLightValueScratchYZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1); 4283 this.aoLightValueScratchXYPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4); 4284 4285 if (!this.aoGrassXYZCNN && !this.aoGrassXYZNNC) 4286 { 4287 this.aoLightValueScratchXYZNNN = this.aoLightValueScratchXYNN; 4288 this.aoBrightnessXYZNNN = this.aoBrightnessXYNN; 4289 } 4290 else 4291 { 4292 this.aoLightValueScratchXYZNNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 - 1); 4293 this.aoBrightnessXYZNNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 - 1); 4294 } 4295 4296 if (!this.aoGrassXYZCNP && !this.aoGrassXYZNNC) 4297 { 4298 this.aoLightValueScratchXYZNNP = this.aoLightValueScratchXYNN; 4299 this.aoBrightnessXYZNNP = this.aoBrightnessXYNN; 4300 } 4301 else 4302 { 4303 this.aoLightValueScratchXYZNNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 + 1); 4304 this.aoBrightnessXYZNNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 + 1); 4305 } 4306 4307 if (!this.aoGrassXYZCNN && !this.aoGrassXYZPNC) 4308 { 4309 this.aoLightValueScratchXYZPNN = this.aoLightValueScratchXYPN; 4310 this.aoBrightnessXYZPNN = this.aoBrightnessXYPN; 4311 } 4312 else 4313 { 4314 this.aoLightValueScratchXYZPNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 - 1); 4315 this.aoBrightnessXYZPNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 - 1); 4316 } 4317 4318 if (!this.aoGrassXYZCNP && !this.aoGrassXYZPNC) 4319 { 4320 this.aoLightValueScratchXYZPNP = this.aoLightValueScratchXYPN; 4321 this.aoBrightnessXYZPNP = this.aoBrightnessXYPN; 4322 } 4323 else 4324 { 4325 this.aoLightValueScratchXYZPNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 + 1); 4326 this.aoBrightnessXYZPNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 + 1); 4327 } 4328 4329 if (this.field_83027_i <= 0.0D) 4330 { 4331 ++par3; 4332 } 4333 4334 var9 = (this.aoLightValueScratchXYZNNP + this.aoLightValueScratchXYNN + this.aoLightValueScratchYZNP + this.aoLightValueYNeg) / 4.0F; 4335 var12 = (this.aoLightValueScratchYZNP + this.aoLightValueYNeg + this.aoLightValueScratchXYZPNP + this.aoLightValueScratchXYPN) / 4.0F; 4336 var11 = (this.aoLightValueYNeg + this.aoLightValueScratchYZNN + this.aoLightValueScratchXYPN + this.aoLightValueScratchXYZPNN) / 4.0F; 4337 var10 = (this.aoLightValueScratchXYNN + this.aoLightValueScratchXYZNNN + this.aoLightValueYNeg + this.aoLightValueScratchYZNN) / 4.0F; 4338 this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXYZNNP, this.aoBrightnessXYNN, this.aoBrightnessYZNP, var21); 4339 this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessYZNP, this.aoBrightnessXYZPNP, this.aoBrightnessXYPN, var21); 4340 this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessYZNN, this.aoBrightnessXYPN, this.aoBrightnessXYZPNN, var21); 4341 this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXYNN, this.aoBrightnessXYZNNN, this.aoBrightnessYZNN, var21); 4342 } 4343 else 4344 { 4345 var12 = this.aoLightValueYNeg; 4346 var11 = this.aoLightValueYNeg; 4347 var10 = this.aoLightValueYNeg; 4348 var9 = this.aoLightValueYNeg; 4349 this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = this.aoBrightnessXYNN; 4350 } 4351 4352 this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var13 ? par5 : 1.0F) * 0.5F; 4353 this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var13 ? par6 : 1.0F) * 0.5F; 4354 this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var13 ? par7 : 1.0F) * 0.5F; 4355 this.colorRedTopLeft *= var9; 4356 this.colorGreenTopLeft *= var9; 4357 this.colorBlueTopLeft *= var9; 4358 this.colorRedBottomLeft *= var10; 4359 this.colorGreenBottomLeft *= var10; 4360 this.colorBlueBottomLeft *= var10; 4361 this.colorRedBottomRight *= var11; 4362 this.colorGreenBottomRight *= var11; 4363 this.colorBlueBottomRight *= var11; 4364 this.colorRedTopRight *= var12; 4365 this.colorGreenTopRight *= var12; 4366 this.colorBlueTopRight *= var12; 4367 this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0)); 4368 var8 = true; 4369 } 4370 4371 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1)) 4372 { 4373 if (this.aoType > 0) 4374 { 4375 if (this.field_83024_j >= 1.0D) 4376 { 4377 ++par3; 4378 } 4379 4380 this.aoBrightnessXYNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4); 4381 this.aoBrightnessXYPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4); 4382 this.aoBrightnessYZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1); 4383 this.aoBrightnessYZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1); 4384 this.aoLightValueScratchXYNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4); 4385 this.aoLightValueScratchXYPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4); 4386 this.aoLightValueScratchYZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1); 4387 this.aoLightValueScratchYZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1); 4388 4389 if (!this.aoGrassXYZCPN && !this.aoGrassXYZNPC) 4390 { 4391 this.aoLightValueScratchXYZNPN = this.aoLightValueScratchXYNP; 4392 this.aoBrightnessXYZNPN = this.aoBrightnessXYNP; 4393 } 4394 else 4395 { 4396 this.aoLightValueScratchXYZNPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 - 1); 4397 this.aoBrightnessXYZNPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 - 1); 4398 } 4399 4400 if (!this.aoGrassXYZCPN && !this.aoGrassXYZPPC) 4401 { 4402 this.aoLightValueScratchXYZPPN = this.aoLightValueScratchXYPP; 4403 this.aoBrightnessXYZPPN = this.aoBrightnessXYPP; 4404 } 4405 else 4406 { 4407 this.aoLightValueScratchXYZPPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 - 1); 4408 this.aoBrightnessXYZPPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 - 1); 4409 } 4410 4411 if (!this.aoGrassXYZCPP && !this.aoGrassXYZNPC) 4412 { 4413 this.aoLightValueScratchXYZNPP = this.aoLightValueScratchXYNP; 4414 this.aoBrightnessXYZNPP = this.aoBrightnessXYNP; 4415 } 4416 else 4417 { 4418 this.aoLightValueScratchXYZNPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 + 1); 4419 this.aoBrightnessXYZNPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 + 1); 4420 } 4421 4422 if (!this.aoGrassXYZCPP && !this.aoGrassXYZPPC) 4423 { 4424 this.aoLightValueScratchXYZPPP = this.aoLightValueScratchXYPP; 4425 this.aoBrightnessXYZPPP = this.aoBrightnessXYPP; 4426 } 4427 else 4428 { 4429 this.aoLightValueScratchXYZPPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 + 1); 4430 this.aoBrightnessXYZPPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 + 1); 4431 } 4432 4433 if (this.field_83024_j >= 1.0D) 4434 { 4435 --par3; 4436 } 4437 4438 var12 = (this.aoLightValueScratchXYZNPP + this.aoLightValueScratchXYNP + this.aoLightValueScratchYZPP + this.aoLightValueYPos) / 4.0F; 4439 var9 = (this.aoLightValueScratchYZPP + this.aoLightValueYPos + this.aoLightValueScratchXYZPPP + this.aoLightValueScratchXYPP) / 4.0F; 4440 var10 = (this.aoLightValueYPos + this.aoLightValueScratchYZPN + this.aoLightValueScratchXYPP + this.aoLightValueScratchXYZPPN) / 4.0F; 4441 var11 = (this.aoLightValueScratchXYNP + this.aoLightValueScratchXYZNPN + this.aoLightValueYPos + this.aoLightValueScratchYZPN) / 4.0F; 4442 this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXYZNPP, this.aoBrightnessXYNP, this.aoBrightnessYZPP, var24); 4443 this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessYZPP, this.aoBrightnessXYZPPP, this.aoBrightnessXYPP, var24); 4444 this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessYZPN, this.aoBrightnessXYPP, this.aoBrightnessXYZPPN, var24); 4445 this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessXYNP, this.aoBrightnessXYZNPN, this.aoBrightnessYZPN, var24); 4446 } 4447 else 4448 { 4449 var12 = this.aoLightValueYPos; 4450 var11 = this.aoLightValueYPos; 4451 var10 = this.aoLightValueYPos; 4452 var9 = this.aoLightValueYPos; 4453 this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var24; 4454 } 4455 4456 this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = var14 ? par5 : 1.0F; 4457 this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = var14 ? par6 : 1.0F; 4458 this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = var14 ? par7 : 1.0F; 4459 this.colorRedTopLeft *= var9; 4460 this.colorGreenTopLeft *= var9; 4461 this.colorBlueTopLeft *= var9; 4462 this.colorRedBottomLeft *= var10; 4463 this.colorGreenBottomLeft *= var10; 4464 this.colorBlueBottomLeft *= var10; 4465 this.colorRedBottomRight *= var11; 4466 this.colorGreenBottomRight *= var11; 4467 this.colorBlueBottomRight *= var11; 4468 this.colorRedTopRight *= var12; 4469 this.colorGreenTopRight *= var12; 4470 this.colorBlueTopRight *= var12; 4471 this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1)); 4472 var8 = true; 4473 } 4474 4475 int var27; 4476 4477 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2)) 4478 { 4479 if (this.aoType > 0) 4480 { 4481 if (this.field_83025_k <= 0.0D) 4482 { 4483 --par4; 4484 } 4485 4486 this.aoLightValueScratchXZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4); 4487 this.aoLightValueScratchYZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4); 4488 this.aoLightValueScratchYZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4); 4489 this.aoLightValueScratchXZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4); 4490 this.aoBrightnessXZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4); 4491 this.aoBrightnessYZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4); 4492 this.aoBrightnessYZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4); 4493 this.aoBrightnessXZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4); 4494 4495 if (!this.aoGrassXYZNCN && !this.aoGrassXYZCNN) 4496 { 4497 this.aoLightValueScratchXYZNNN = this.aoLightValueScratchXZNN; 4498 this.aoBrightnessXYZNNN = this.aoBrightnessXZNN; 4499 } 4500 else 4501 { 4502 this.aoLightValueScratchXYZNNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 - 1, par4); 4503 this.aoBrightnessXYZNNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 - 1, par4); 4504 } 4505 4506 if (!this.aoGrassXYZNCN && !this.aoGrassXYZCPN) 4507 { 4508 this.aoLightValueScratchXYZNPN = this.aoLightValueScratchXZNN; 4509 this.aoBrightnessXYZNPN = this.aoBrightnessXZNN; 4510 } 4511 else 4512 { 4513 this.aoLightValueScratchXYZNPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 + 1, par4); 4514 this.aoBrightnessXYZNPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 + 1, par4); 4515 } 4516 4517 if (!this.aoGrassXYZPCN && !this.aoGrassXYZCNN) 4518 { 4519 this.aoLightValueScratchXYZPNN = this.aoLightValueScratchXZPN; 4520 this.aoBrightnessXYZPNN = this.aoBrightnessXZPN; 4521 } 4522 else 4523 { 4524 this.aoLightValueScratchXYZPNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 - 1, par4); 4525 this.aoBrightnessXYZPNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 - 1, par4); 4526 } 4527 4528 if (!this.aoGrassXYZPCN && !this.aoGrassXYZCPN) 4529 { 4530 this.aoLightValueScratchXYZPPN = this.aoLightValueScratchXZPN; 4531 this.aoBrightnessXYZPPN = this.aoBrightnessXZPN; 4532 } 4533 else 4534 { 4535 this.aoLightValueScratchXYZPPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 + 1, par4); 4536 this.aoBrightnessXYZPPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 + 1, par4); 4537 } 4538 4539 if (this.field_83025_k <= 0.0D) 4540 { 4541 ++par4; 4542 } 4543 4544 var9 = (this.aoLightValueScratchXZNN + this.aoLightValueScratchXYZNPN + this.aoLightValueZNeg + this.aoLightValueScratchYZPN) / 4.0F; 4545 var10 = (this.aoLightValueZNeg + this.aoLightValueScratchYZPN + this.aoLightValueScratchXZPN + this.aoLightValueScratchXYZPPN) / 4.0F; 4546 var11 = (this.aoLightValueScratchYZNN + this.aoLightValueZNeg + this.aoLightValueScratchXYZPNN + this.aoLightValueScratchXZPN) / 4.0F; 4547 var12 = (this.aoLightValueScratchXYZNNN + this.aoLightValueScratchXZNN + this.aoLightValueScratchYZNN + this.aoLightValueZNeg) / 4.0F; 4548 this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXZNN, this.aoBrightnessXYZNPN, this.aoBrightnessYZPN, var22); 4549 this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessYZPN, this.aoBrightnessXZPN, this.aoBrightnessXYZPPN, var22); 4550 this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessYZNN, this.aoBrightnessXYZPNN, this.aoBrightnessXZPN, var22); 4551 this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXYZNNN, this.aoBrightnessXZNN, this.aoBrightnessYZNN, var22); 4552 } 4553 else 4554 { 4555 var12 = this.aoLightValueZNeg; 4556 var11 = this.aoLightValueZNeg; 4557 var10 = this.aoLightValueZNeg; 4558 var9 = this.aoLightValueZNeg; 4559 this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var22; 4560 } 4561 4562 this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var15 ? par5 : 1.0F) * 0.8F; 4563 this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var15 ? par6 : 1.0F) * 0.8F; 4564 this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var15 ? par7 : 1.0F) * 0.8F; 4565 this.colorRedTopLeft *= var9; 4566 this.colorGreenTopLeft *= var9; 4567 this.colorBlueTopLeft *= var9; 4568 this.colorRedBottomLeft *= var10; 4569 this.colorGreenBottomLeft *= var10; 4570 this.colorBlueBottomLeft *= var10; 4571 this.colorRedBottomRight *= var11; 4572 this.colorGreenBottomRight *= var11; 4573 this.colorBlueBottomRight *= var11; 4574 this.colorRedTopRight *= var12; 4575 this.colorGreenTopRight *= var12; 4576 this.colorBlueTopRight *= var12; 4577 var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); 4578 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27); 4579 4580 if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0) 4581 { 4582 this.colorRedTopLeft *= par5; 4583 this.colorRedBottomLeft *= par5; 4584 this.colorRedBottomRight *= par5; 4585 this.colorRedTopRight *= par5; 4586 this.colorGreenTopLeft *= par6; 4587 this.colorGreenBottomLeft *= par6; 4588 this.colorGreenBottomRight *= par6; 4589 this.colorGreenTopRight *= par6; 4590 this.colorBlueTopLeft *= par7; 4591 this.colorBlueBottomLeft *= par7; 4592 this.colorBlueBottomRight *= par7; 4593 this.colorBlueTopRight *= par7; 4594 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 4595 } 4596 4597 var8 = true; 4598 } 4599 4600 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3)) 4601 { 4602 if (this.aoType > 0) 4603 { 4604 if (this.field_83022_l >= 1.0D) 4605 { 4606 ++par4; 4607 } 4608 4609 this.aoLightValueScratchXZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4); 4610 this.aoLightValueScratchXZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4); 4611 this.aoLightValueScratchYZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4); 4612 this.aoLightValueScratchYZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4); 4613 this.aoBrightnessXZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4); 4614 this.aoBrightnessXZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4); 4615 this.aoBrightnessYZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4); 4616 this.aoBrightnessYZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4); 4617 4618 if (!this.aoGrassXYZNCP && !this.aoGrassXYZCNP) 4619 { 4620 this.aoLightValueScratchXYZNNP = this.aoLightValueScratchXZNP; 4621 this.aoBrightnessXYZNNP = this.aoBrightnessXZNP; 4622 } 4623 else 4624 { 4625 this.aoLightValueScratchXYZNNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 - 1, par4); 4626 this.aoBrightnessXYZNNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 - 1, par4); 4627 } 4628 4629 if (!this.aoGrassXYZNCP && !this.aoGrassXYZCPP) 4630 { 4631 this.aoLightValueScratchXYZNPP = this.aoLightValueScratchXZNP; 4632 this.aoBrightnessXYZNPP = this.aoBrightnessXZNP; 4633 } 4634 else 4635 { 4636 this.aoLightValueScratchXYZNPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 + 1, par4); 4637 this.aoBrightnessXYZNPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 + 1, par4); 4638 } 4639 4640 if (!this.aoGrassXYZPCP && !this.aoGrassXYZCNP) 4641 { 4642 this.aoLightValueScratchXYZPNP = this.aoLightValueScratchXZPP; 4643 this.aoBrightnessXYZPNP = this.aoBrightnessXZPP; 4644 } 4645 else 4646 { 4647 this.aoLightValueScratchXYZPNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 - 1, par4); 4648 this.aoBrightnessXYZPNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 - 1, par4); 4649 } 4650 4651 if (!this.aoGrassXYZPCP && !this.aoGrassXYZCPP) 4652 { 4653 this.aoLightValueScratchXYZPPP = this.aoLightValueScratchXZPP; 4654 this.aoBrightnessXYZPPP = this.aoBrightnessXZPP; 4655 } 4656 else 4657 { 4658 this.aoLightValueScratchXYZPPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 + 1, par4); 4659 this.aoBrightnessXYZPPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 + 1, par4); 4660 } 4661 4662 if (this.field_83022_l >= 1.0D) 4663 { 4664 --par4; 4665 } 4666 4667 var9 = (this.aoLightValueScratchXZNP + this.aoLightValueScratchXYZNPP + this.aoLightValueZPos + this.aoLightValueScratchYZPP) / 4.0F; 4668 var12 = (this.aoLightValueZPos + this.aoLightValueScratchYZPP + this.aoLightValueScratchXZPP + this.aoLightValueScratchXYZPPP) / 4.0F; 4669 var11 = (this.aoLightValueScratchYZNP + this.aoLightValueZPos + this.aoLightValueScratchXYZPNP + this.aoLightValueScratchXZPP) / 4.0F; 4670 var10 = (this.aoLightValueScratchXYZNNP + this.aoLightValueScratchXZNP + this.aoLightValueScratchYZNP + this.aoLightValueZPos) / 4.0F; 4671 this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXZNP, this.aoBrightnessXYZNPP, this.aoBrightnessYZPP, var25); 4672 this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessYZPP, this.aoBrightnessXZPP, this.aoBrightnessXYZPPP, var25); 4673 this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessYZNP, this.aoBrightnessXYZPNP, this.aoBrightnessXZPP, var25); 4674 this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXYZNNP, this.aoBrightnessXZNP, this.aoBrightnessYZNP, var25); 4675 } 4676 else 4677 { 4678 var12 = this.aoLightValueZPos; 4679 var11 = this.aoLightValueZPos; 4680 var10 = this.aoLightValueZPos; 4681 var9 = this.aoLightValueZPos; 4682 this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var25; 4683 } 4684 4685 this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var16 ? par5 : 1.0F) * 0.8F; 4686 this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var16 ? par6 : 1.0F) * 0.8F; 4687 this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var16 ? par7 : 1.0F) * 0.8F; 4688 this.colorRedTopLeft *= var9; 4689 this.colorGreenTopLeft *= var9; 4690 this.colorBlueTopLeft *= var9; 4691 this.colorRedBottomLeft *= var10; 4692 this.colorGreenBottomLeft *= var10; 4693 this.colorBlueBottomLeft *= var10; 4694 this.colorRedBottomRight *= var11; 4695 this.colorGreenBottomRight *= var11; 4696 this.colorBlueBottomRight *= var11; 4697 this.colorRedTopRight *= var12; 4698 this.colorGreenTopRight *= var12; 4699 this.colorBlueTopRight *= var12; 4700 var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); 4701 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3)); 4702 4703 if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0) 4704 { 4705 this.colorRedTopLeft *= par5; 4706 this.colorRedBottomLeft *= par5; 4707 this.colorRedBottomRight *= par5; 4708 this.colorRedTopRight *= par5; 4709 this.colorGreenTopLeft *= par6; 4710 this.colorGreenBottomLeft *= par6; 4711 this.colorGreenBottomRight *= par6; 4712 this.colorGreenTopRight *= par6; 4713 this.colorBlueTopLeft *= par7; 4714 this.colorBlueBottomLeft *= par7; 4715 this.colorBlueBottomRight *= par7; 4716 this.colorBlueTopRight *= par7; 4717 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 4718 } 4719 4720 var8 = true; 4721 } 4722 4723 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4)) 4724 { 4725 if (this.aoType > 0) 4726 { 4727 if (this.field_83021_g <= 0.0D) 4728 { 4729 --par2; 4730 } 4731 4732 this.aoLightValueScratchXYNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4); 4733 this.aoLightValueScratchXZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1); 4734 this.aoLightValueScratchXZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1); 4735 this.aoLightValueScratchXYNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4); 4736 this.aoBrightnessXYNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4); 4737 this.aoBrightnessXZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1); 4738 this.aoBrightnessXZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1); 4739 this.aoBrightnessXYNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4); 4740 4741 if (!this.aoGrassXYZNCN && !this.aoGrassXYZNNC) 4742 { 4743 this.aoLightValueScratchXYZNNN = this.aoLightValueScratchXZNN; 4744 this.aoBrightnessXYZNNN = this.aoBrightnessXZNN; 4745 } 4746 else 4747 { 4748 this.aoLightValueScratchXYZNNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 - 1); 4749 this.aoBrightnessXYZNNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 - 1); 4750 } 4751 4752 if (!this.aoGrassXYZNCP && !this.aoGrassXYZNNC) 4753 { 4754 this.aoLightValueScratchXYZNNP = this.aoLightValueScratchXZNP; 4755 this.aoBrightnessXYZNNP = this.aoBrightnessXZNP; 4756 } 4757 else 4758 { 4759 this.aoLightValueScratchXYZNNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 + 1); 4760 this.aoBrightnessXYZNNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 + 1); 4761 } 4762 4763 if (!this.aoGrassXYZNCN && !this.aoGrassXYZNPC) 4764 { 4765 this.aoLightValueScratchXYZNPN = this.aoLightValueScratchXZNN; 4766 this.aoBrightnessXYZNPN = this.aoBrightnessXZNN; 4767 } 4768 else 4769 { 4770 this.aoLightValueScratchXYZNPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 - 1); 4771 this.aoBrightnessXYZNPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 - 1); 4772 } 4773 4774 if (!this.aoGrassXYZNCP && !this.aoGrassXYZNPC) 4775 { 4776 this.aoLightValueScratchXYZNPP = this.aoLightValueScratchXZNP; 4777 this.aoBrightnessXYZNPP = this.aoBrightnessXZNP; 4778 } 4779 else 4780 { 4781 this.aoLightValueScratchXYZNPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 + 1); 4782 this.aoBrightnessXYZNPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 + 1); 4783 } 4784 4785 if (this.field_83021_g <= 0.0D) 4786 { 4787 ++par2; 4788 } 4789 4790 var12 = (this.aoLightValueScratchXYNN + this.aoLightValueScratchXYZNNP + this.aoLightValueXNeg + this.aoLightValueScratchXZNP) / 4.0F; 4791 var9 = (this.aoLightValueXNeg + this.aoLightValueScratchXZNP + this.aoLightValueScratchXYNP + this.aoLightValueScratchXYZNPP) / 4.0F; 4792 var10 = (this.aoLightValueScratchXZNN + this.aoLightValueXNeg + this.aoLightValueScratchXYZNPN + this.aoLightValueScratchXYNP) / 4.0F; 4793 var11 = (this.aoLightValueScratchXYZNNN + this.aoLightValueScratchXYNN + this.aoLightValueScratchXZNN + this.aoLightValueXNeg) / 4.0F; 4794 this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXYNN, this.aoBrightnessXYZNNP, this.aoBrightnessXZNP, var20); 4795 this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXZNP, this.aoBrightnessXYNP, this.aoBrightnessXYZNPP, var20); 4796 this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXZNN, this.aoBrightnessXYZNPN, this.aoBrightnessXYNP, var20); 4797 this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessXYZNNN, this.aoBrightnessXYNN, this.aoBrightnessXZNN, var20); 4798 } 4799 else 4800 { 4801 var12 = this.aoLightValueXNeg; 4802 var11 = this.aoLightValueXNeg; 4803 var10 = this.aoLightValueXNeg; 4804 var9 = this.aoLightValueXNeg; 4805 this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var20; 4806 } 4807 4808 this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var17 ? par5 : 1.0F) * 0.6F; 4809 this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var17 ? par6 : 1.0F) * 0.6F; 4810 this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var17 ? par7 : 1.0F) * 0.6F; 4811 this.colorRedTopLeft *= var9; 4812 this.colorGreenTopLeft *= var9; 4813 this.colorBlueTopLeft *= var9; 4814 this.colorRedBottomLeft *= var10; 4815 this.colorGreenBottomLeft *= var10; 4816 this.colorBlueBottomLeft *= var10; 4817 this.colorRedBottomRight *= var11; 4818 this.colorGreenBottomRight *= var11; 4819 this.colorBlueBottomRight *= var11; 4820 this.colorRedTopRight *= var12; 4821 this.colorGreenTopRight *= var12; 4822 this.colorBlueTopRight *= var12; 4823 var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); 4824 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27); 4825 4826 if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0) 4827 { 4828 this.colorRedTopLeft *= par5; 4829 this.colorRedBottomLeft *= par5; 4830 this.colorRedBottomRight *= par5; 4831 this.colorRedTopRight *= par5; 4832 this.colorGreenTopLeft *= par6; 4833 this.colorGreenBottomLeft *= par6; 4834 this.colorGreenBottomRight *= par6; 4835 this.colorGreenTopRight *= par6; 4836 this.colorBlueTopLeft *= par7; 4837 this.colorBlueBottomLeft *= par7; 4838 this.colorBlueBottomRight *= par7; 4839 this.colorBlueTopRight *= par7; 4840 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 4841 } 4842 4843 var8 = true; 4844 } 4845 4846 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5)) 4847 { 4848 if (this.aoType > 0) 4849 { 4850 if (this.field_83026_h >= 1.0D) 4851 { 4852 ++par2; 4853 } 4854 4855 this.aoLightValueScratchXYPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4); 4856 this.aoLightValueScratchXZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1); 4857 this.aoLightValueScratchXZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1); 4858 this.aoLightValueScratchXYPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4); 4859 this.aoBrightnessXYPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4); 4860 this.aoBrightnessXZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1); 4861 this.aoBrightnessXZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1); 4862 this.aoBrightnessXYPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4); 4863 4864 if (!this.aoGrassXYZPNC && !this.aoGrassXYZPCN) 4865 { 4866 this.aoLightValueScratchXYZPNN = this.aoLightValueScratchXZPN; 4867 this.aoBrightnessXYZPNN = this.aoBrightnessXZPN; 4868 } 4869 else 4870 { 4871 this.aoLightValueScratchXYZPNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 - 1); 4872 this.aoBrightnessXYZPNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 - 1); 4873 } 4874 4875 if (!this.aoGrassXYZPNC && !this.aoGrassXYZPCP) 4876 { 4877 this.aoLightValueScratchXYZPNP = this.aoLightValueScratchXZPP; 4878 this.aoBrightnessXYZPNP = this.aoBrightnessXZPP; 4879 } 4880 else 4881 { 4882 this.aoLightValueScratchXYZPNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 + 1); 4883 this.aoBrightnessXYZPNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 + 1); 4884 } 4885 4886 if (!this.aoGrassXYZPPC && !this.aoGrassXYZPCN) 4887 { 4888 this.aoLightValueScratchXYZPPN = this.aoLightValueScratchXZPN; 4889 this.aoBrightnessXYZPPN = this.aoBrightnessXZPN; 4890 } 4891 else 4892 { 4893 this.aoLightValueScratchXYZPPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 - 1); 4894 this.aoBrightnessXYZPPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 - 1); 4895 } 4896 4897 if (!this.aoGrassXYZPPC && !this.aoGrassXYZPCP) 4898 { 4899 this.aoLightValueScratchXYZPPP = this.aoLightValueScratchXZPP; 4900 this.aoBrightnessXYZPPP = this.aoBrightnessXZPP; 4901 } 4902 else 4903 { 4904 this.aoLightValueScratchXYZPPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 + 1); 4905 this.aoBrightnessXYZPPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 + 1); 4906 } 4907 4908 if (this.field_83026_h >= 1.0D) 4909 { 4910 --par2; 4911 } 4912 4913 var9 = (this.aoLightValueScratchXYPN + this.aoLightValueScratchXYZPNP + this.aoLightValueXPos + this.aoLightValueScratchXZPP) / 4.0F; 4914 var12 = (this.aoLightValueXPos + this.aoLightValueScratchXZPP + this.aoLightValueScratchXYPP + this.aoLightValueScratchXYZPPP) / 4.0F; 4915 var11 = (this.aoLightValueScratchXZPN + this.aoLightValueXPos + this.aoLightValueScratchXYZPPN + this.aoLightValueScratchXYPP) / 4.0F; 4916 var10 = (this.aoLightValueScratchXYZPNN + this.aoLightValueScratchXYPN + this.aoLightValueScratchXZPN + this.aoLightValueXPos) / 4.0F; 4917 this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXYPN, this.aoBrightnessXYZPNP, this.aoBrightnessXZPP, var23); 4918 this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXZPP, this.aoBrightnessXYPP, this.aoBrightnessXYZPPP, var23); 4919 this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessXZPN, this.aoBrightnessXYZPPN, this.aoBrightnessXYPP, var23); 4920 this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXYZPNN, this.aoBrightnessXYPN, this.aoBrightnessXZPN, var23); 4921 } 4922 else 4923 { 4924 var12 = this.aoLightValueXPos; 4925 var11 = this.aoLightValueXPos; 4926 var10 = this.aoLightValueXPos; 4927 var9 = this.aoLightValueXPos; 4928 this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var23; 4929 } 4930 4931 this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var18 ? par5 : 1.0F) * 0.6F; 4932 this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var18 ? par6 : 1.0F) * 0.6F; 4933 this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var18 ? par7 : 1.0F) * 0.6F; 4934 this.colorRedTopLeft *= var9; 4935 this.colorGreenTopLeft *= var9; 4936 this.colorBlueTopLeft *= var9; 4937 this.colorRedBottomLeft *= var10; 4938 this.colorGreenBottomLeft *= var10; 4939 this.colorBlueBottomLeft *= var10; 4940 this.colorRedBottomRight *= var11; 4941 this.colorGreenBottomRight *= var11; 4942 this.colorBlueBottomRight *= var11; 4943 this.colorRedTopRight *= var12; 4944 this.colorGreenTopRight *= var12; 4945 this.colorBlueTopRight *= var12; 4946 var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); 4947 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27); 4948 4949 if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0) 4950 { 4951 this.colorRedTopLeft *= par5; 4952 this.colorRedBottomLeft *= par5; 4953 this.colorRedBottomRight *= par5; 4954 this.colorRedTopRight *= par5; 4955 this.colorGreenTopLeft *= par6; 4956 this.colorGreenBottomLeft *= par6; 4957 this.colorGreenBottomRight *= par6; 4958 this.colorGreenTopRight *= par6; 4959 this.colorBlueTopLeft *= par7; 4960 this.colorBlueBottomLeft *= par7; 4961 this.colorBlueBottomRight *= par7; 4962 this.colorBlueTopRight *= par7; 4963 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 4964 } 4965 4966 var8 = true; 4967 } 4968 4969 this.enableAO = false; 4970 return var8; 4971 } 4972 4973 /** 4974 * Get ambient occlusion brightness 4975 */ 4976 public int getAoBrightness(int par1, int par2, int par3, int par4) 4977 { 4978 if (par1 == 0) 4979 { 4980 par1 = par4; 4981 } 4982 4983 if (par2 == 0) 4984 { 4985 par2 = par4; 4986 } 4987 4988 if (par3 == 0) 4989 { 4990 par3 = par4; 4991 } 4992 4993 return par1 + par2 + par3 + par4 >> 2 & 16711935; 4994 } 4995 4996 /** 4997 * Renders a standard cube block at the given coordinates, with a given color ratio. Args: block, x, y, z, r, g, b 4998 */ 4999 public boolean renderStandardBlockWithColorMultiplier(Block par1Block, int par2, int par3, int par4, float par5, float par6, float par7) 5000 { 5001 this.enableAO = false; 5002 Tessellator var8 = Tessellator.instance; 5003 boolean var9 = false; 5004 float var10 = 0.5F; 5005 float var11 = 1.0F; 5006 float var12 = 0.8F; 5007 float var13 = 0.6F; 5008 float var14 = var11 * par5; 5009 float var15 = var11 * par6; 5010 float var16 = var11 * par7; 5011 float var17 = var10; 5012 float var18 = var12; 5013 float var19 = var13; 5014 float var20 = var10; 5015 float var21 = var12; 5016 float var22 = var13; 5017 float var23 = var10; 5018 float var24 = var12; 5019 float var25 = var13; 5020 5021 if (par1Block != Block.grass) 5022 { 5023 var17 = var10 * par5; 5024 var18 = var12 * par5; 5025 var19 = var13 * par5; 5026 var20 = var10 * par6; 5027 var21 = var12 * par6; 5028 var22 = var13 * par6; 5029 var23 = var10 * par7; 5030 var24 = var12 * par7; 5031 var25 = var13 * par7; 5032 } 5033 5034 int var26 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4); 5035 5036 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0)) 5037 { 5038 var8.setBrightness(this.field_83027_i > 0.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4)); 5039 var8.setColorOpaque_F(var17, var20, var23); 5040 this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0)); 5041 var9 = true; 5042 } 5043 5044 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1)) 5045 { 5046 var8.setBrightness(this.field_83024_j < 1.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); 5047 var8.setColorOpaque_F(var14, var15, var16); 5048 this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1)); 5049 var9 = true; 5050 } 5051 5052 int var28; 5053 5054 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2)) 5055 { 5056 var8.setBrightness(this.field_83025_k > 0.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1)); 5057 var8.setColorOpaque_F(var18, var21, var24); 5058 var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); 5059 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28); 5060 5061 if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0) 5062 { 5063 var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7); 5064 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 5065 } 5066 5067 var9 = true; 5068 } 5069 5070 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3)) 5071 { 5072 var8.setBrightness(this.field_83022_l < 1.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1)); 5073 var8.setColorOpaque_F(var18, var21, var24); 5074 var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); 5075 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28); 5076 5077 if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0) 5078 { 5079 var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7); 5080 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 5081 } 5082 5083 var9 = true; 5084 } 5085 5086 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4)) 5087 { 5088 var8.setBrightness(this.field_83021_g > 0.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4)); 5089 var8.setColorOpaque_F(var19, var22, var25); 5090 var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); 5091 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28); 5092 5093 if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0) 5094 { 5095 var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7); 5096 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 5097 } 5098 5099 var9 = true; 5100 } 5101 5102 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5)) 5103 { 5104 var8.setBrightness(this.field_83026_h < 1.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4)); 5105 var8.setColorOpaque_F(var19, var22, var25); 5106 var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); 5107 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28); 5108 5109 if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0) 5110 { 5111 var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7); 5112 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, 38); 5113 } 5114 5115 var9 = true; 5116 } 5117 5118 return var9; 5119 } 5120 5121 /** 5122 * Renders a Cocoa block at the given coordinates 5123 */ 5124 public boolean renderBlockCocoa(BlockCocoa par1BlockCocoa, int par2, int par3, int par4) 5125 { 5126 Tessellator var5 = Tessellator.instance; 5127 var5.setBrightness(par1BlockCocoa.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4)); 5128 var5.setColorOpaque_F(1.0F, 1.0F, 1.0F); 5129 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 5130 int var7 = par1BlockCocoa.getBlockTextureFromSide(1); 5131 int var8 = BlockDirectional.getDirection(var6); 5132 int var9 = BlockCocoa.func_72219_c(var6); 5133 var7 = var7 + 2 - var9; 5134 int var10 = 4 + var9 * 2; 5135 int var11 = 5 + var9 * 2; 5136 int var12 = (var7 & 15) << 4; 5137 int var13 = var7 & 240; 5138 double var14 = 15.0D - (double)var10; 5139 double var16 = 15.0D; 5140 double var18 = 4.0D; 5141 double var20 = 4.0D + (double)var11; 5142 double var22 = ((double)var12 + var14) / 256.0D; 5143 double var24 = ((double)var12 + var16 - 0.01D) / 256.0D; 5144 double var26 = ((double)var13 + var18) / 256.0D; 5145 double var28 = ((double)var13 + var20 - 0.01D) / 256.0D; 5146 double var30 = 0.0D; 5147 double var32 = 0.0D; 5148 5149 switch (var8) 5150 { 5151 case 0: 5152 var30 = 8.0D - (double)(var10 / 2); 5153 var32 = 15.0D - (double)var10; 5154 break; 5155 case 1: 5156 var30 = 1.0D; 5157 var32 = 8.0D - (double)(var10 / 2); 5158 break; 5159 case 2: 5160 var30 = 8.0D - (double)(var10 / 2); 5161 var32 = 1.0D; 5162 break; 5163 case 3: 5164 var30 = 15.0D - (double)var10; 5165 var32 = 8.0D - (double)(var10 / 2); 5166 } 5167 5168 double var34 = (double)par2 + var30 / 16.0D; 5169 double var36 = (double)par2 + (var30 + (double)var10) / 16.0D; 5170 double var38 = (double)par3 + (12.0D - (double)var11) / 16.0D; 5171 double var40 = (double)par3 + 0.75D; 5172 double var42 = (double)par4 + var32 / 16.0D; 5173 double var44 = (double)par4 + (var32 + (double)var10) / 16.0D; 5174 var5.addVertexWithUV(var34, var38, var42, var22, var28); 5175 var5.addVertexWithUV(var34, var38, var44, var24, var28); 5176 var5.addVertexWithUV(var34, var40, var44, var24, var26); 5177 var5.addVertexWithUV(var34, var40, var42, var22, var26); 5178 var5.addVertexWithUV(var36, var38, var44, var22, var28); 5179 var5.addVertexWithUV(var36, var38, var42, var24, var28); 5180 var5.addVertexWithUV(var36, var40, var42, var24, var26); 5181 var5.addVertexWithUV(var36, var40, var44, var22, var26); 5182 var5.addVertexWithUV(var36, var38, var42, var22, var28); 5183 var5.addVertexWithUV(var34, var38, var42, var24, var28); 5184 var5.addVertexWithUV(var34, var40, var42, var24, var26); 5185 var5.addVertexWithUV(var36, var40, var42, var22, var26); 5186 var5.addVertexWithUV(var34, var38, var44, var22, var28); 5187 var5.addVertexWithUV(var36, var38, var44, var24, var28); 5188 var5.addVertexWithUV(var36, var40, var44, var24, var26); 5189 var5.addVertexWithUV(var34, var40, var44, var22, var26); 5190 int var46 = var10; 5191 5192 if (var9 >= 2) 5193 { 5194 var46 = var10 - 1; 5195 } 5196 5197 var22 = (double)((float)(var12 + 0) / 256.0F); 5198 var24 = ((double)(var12 + var46) - 0.01D) / 256.0D; 5199 var26 = (double)((float)(var13 + 0) / 256.0F); 5200 var28 = ((double)(var13 + var46) - 0.01D) / 256.0D; 5201 var5.addVertexWithUV(var34, var40, var44, var22, var28); 5202 var5.addVertexWithUV(var36, var40, var44, var24, var28); 5203 var5.addVertexWithUV(var36, var40, var42, var24, var26); 5204 var5.addVertexWithUV(var34, var40, var42, var22, var26); 5205 var5.addVertexWithUV(var34, var38, var42, var22, var26); 5206 var5.addVertexWithUV(var36, var38, var42, var24, var26); 5207 var5.addVertexWithUV(var36, var38, var44, var24, var28); 5208 var5.addVertexWithUV(var34, var38, var44, var22, var28); 5209 var22 = (double)((float)(var12 + 12) / 256.0F); 5210 var24 = ((double)(var12 + 16) - 0.01D) / 256.0D; 5211 var26 = (double)((float)(var13 + 0) / 256.0F); 5212 var28 = ((double)(var13 + 4) - 0.01D) / 256.0D; 5213 var30 = 8.0D; 5214 var32 = 0.0D; 5215 double var47; 5216 5217 switch (var8) 5218 { 5219 case 0: 5220 var30 = 8.0D; 5221 var32 = 12.0D; 5222 var47 = var22; 5223 var22 = var24; 5224 var24 = var47; 5225 break; 5226 case 1: 5227 var30 = 0.0D; 5228 var32 = 8.0D; 5229 break; 5230 case 2: 5231 var30 = 8.0D; 5232 var32 = 0.0D; 5233 break; 5234 case 3: 5235 var30 = 12.0D; 5236 var32 = 8.0D; 5237 var47 = var22; 5238 var22 = var24; 5239 var24 = var47; 5240 } 5241 5242 var34 = (double)par2 + var30 / 16.0D; 5243 var36 = (double)par2 + (var30 + 4.0D) / 16.0D; 5244 var38 = (double)par3 + 0.75D; 5245 var40 = (double)par3 + 1.0D; 5246 var42 = (double)par4 + var32 / 16.0D; 5247 var44 = (double)par4 + (var32 + 4.0D) / 16.0D; 5248 5249 if (var8 != 2 && var8 != 0) 5250 { 5251 if (var8 == 1 || var8 == 3) 5252 { 5253 var5.addVertexWithUV(var36, var38, var42, var22, var28); 5254 var5.addVertexWithUV(var34, var38, var42, var24, var28); 5255 var5.addVertexWithUV(var34, var40, var42, var24, var26); 5256 var5.addVertexWithUV(var36, var40, var42, var22, var26); 5257 var5.addVertexWithUV(var34, var38, var42, var24, var28); 5258 var5.addVertexWithUV(var36, var38, var42, var22, var28); 5259 var5.addVertexWithUV(var36, var40, var42, var22, var26); 5260 var5.addVertexWithUV(var34, var40, var42, var24, var26); 5261 } 5262 } 5263 else 5264 { 5265 var5.addVertexWithUV(var34, var38, var42, var24, var28); 5266 var5.addVertexWithUV(var34, var38, var44, var22, var28); 5267 var5.addVertexWithUV(var34, var40, var44, var22, var26); 5268 var5.addVertexWithUV(var34, var40, var42, var24, var26); 5269 var5.addVertexWithUV(var34, var38, var44, var22, var28); 5270 var5.addVertexWithUV(var34, var38, var42, var24, var28); 5271 var5.addVertexWithUV(var34, var40, var42, var24, var26); 5272 var5.addVertexWithUV(var34, var40, var44, var22, var26); 5273 } 5274 5275 return true; 5276 } 5277 5278 public boolean func_82778_a(BlockBeacon par1BlockBeacon, int par2, int par3, int par4) 5279 { 5280 float var5 = 0.1875F; 5281 this.func_82774_a(Block.obsidian.blockIndexInTexture); 5282 this.setRenderMinMax(0.125D, 0.0D, 0.125D, 0.875D, (double)var5, 0.875D); 5283 this.renderStandardBlock(par1BlockBeacon, par2, par3, par4); 5284 this.func_82774_a(Block.glass.blockIndexInTexture); 5285 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 5286 this.renderStandardBlock(par1BlockBeacon, par2, par3, par4); 5287 this.func_82774_a(41); 5288 this.setRenderMinMax(0.1875D, (double)var5, 0.1875D, 0.8125D, 0.875D, 0.8125D); 5289 this.renderStandardBlock(par1BlockBeacon, par2, par3, par4); 5290 this.clearOverrideBlockTexture(); 5291 return true; 5292 } 5293 5294 /** 5295 * Renders a cactus block at the given coordinates 5296 */ 5297 public boolean renderBlockCactus(Block par1Block, int par2, int par3, int par4) 5298 { 5299 int var5 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4); 5300 float var6 = (float)(var5 >> 16 & 255) / 255.0F; 5301 float var7 = (float)(var5 >> 8 & 255) / 255.0F; 5302 float var8 = (float)(var5 & 255) / 255.0F; 5303 5304 if (EntityRenderer.anaglyphEnable) 5305 { 5306 float var9 = (var6 * 30.0F + var7 * 59.0F + var8 * 11.0F) / 100.0F; 5307 float var10 = (var6 * 30.0F + var7 * 70.0F) / 100.0F; 5308 float var11 = (var6 * 30.0F + var8 * 70.0F) / 100.0F; 5309 var6 = var9; 5310 var7 = var10; 5311 var8 = var11; 5312 } 5313 5314 return this.renderBlockCactusImpl(par1Block, par2, par3, par4, var6, var7, var8); 5315 } 5316 5317 /** 5318 * Render block cactus implementation 5319 */ 5320 public boolean renderBlockCactusImpl(Block par1Block, int par2, int par3, int par4, float par5, float par6, float par7) 5321 { 5322 Tessellator var8 = Tessellator.instance; 5323 boolean var9 = false; 5324 float var10 = 0.5F; 5325 float var11 = 1.0F; 5326 float var12 = 0.8F; 5327 float var13 = 0.6F; 5328 float var14 = var10 * par5; 5329 float var15 = var11 * par5; 5330 float var16 = var12 * par5; 5331 float var17 = var13 * par5; 5332 float var18 = var10 * par6; 5333 float var19 = var11 * par6; 5334 float var20 = var12 * par6; 5335 float var21 = var13 * par6; 5336 float var22 = var10 * par7; 5337 float var23 = var11 * par7; 5338 float var24 = var12 * par7; 5339 float var25 = var13 * par7; 5340 float var26 = 0.0625F; 5341 int var28 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4); 5342 5343 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0)) 5344 { 5345 var8.setBrightness(this.field_83027_i > 0.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4)); 5346 var8.setColorOpaque_F(var14, var18, var22); 5347 this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0)); 5348 var9 = true; 5349 } 5350 5351 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1)) 5352 { 5353 var8.setBrightness(this.field_83024_j < 1.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); 5354 var8.setColorOpaque_F(var15, var19, var23); 5355 this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1)); 5356 var9 = true; 5357 } 5358 5359 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2)) 5360 { 5361 var8.setBrightness(this.field_83025_k > 0.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1)); 5362 var8.setColorOpaque_F(var16, var20, var24); 5363 var8.addTranslation(0.0F, 0.0F, var26); 5364 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2)); 5365 var8.addTranslation(0.0F, 0.0F, -var26); 5366 var9 = true; 5367 } 5368 5369 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3)) 5370 { 5371 var8.setBrightness(this.field_83022_l < 1.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1)); 5372 var8.setColorOpaque_F(var16, var20, var24); 5373 var8.addTranslation(0.0F, 0.0F, -var26); 5374 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3)); 5375 var8.addTranslation(0.0F, 0.0F, var26); 5376 var9 = true; 5377 } 5378 5379 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4)) 5380 { 5381 var8.setBrightness(this.field_83021_g > 0.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4)); 5382 var8.setColorOpaque_F(var17, var21, var25); 5383 var8.addTranslation(var26, 0.0F, 0.0F); 5384 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4)); 5385 var8.addTranslation(-var26, 0.0F, 0.0F); 5386 var9 = true; 5387 } 5388 5389 if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5)) 5390 { 5391 var8.setBrightness(this.field_83026_h < 1.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4)); 5392 var8.setColorOpaque_F(var17, var21, var25); 5393 var8.addTranslation(-var26, 0.0F, 0.0F); 5394 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5)); 5395 var8.addTranslation(var26, 0.0F, 0.0F); 5396 var9 = true; 5397 } 5398 5399 return var9; 5400 } 5401 5402 public boolean renderBlockFence(BlockFence par1BlockFence, int par2, int par3, int par4) 5403 { 5404 boolean var5 = false; 5405 float var6 = 0.375F; 5406 float var7 = 0.625F; 5407 this.setRenderMinMax((double)var6, 0.0D, (double)var6, (double)var7, 1.0D, (double)var7); 5408 this.renderStandardBlock(par1BlockFence, par2, par3, par4); 5409 var5 = true; 5410 boolean var8 = false; 5411 boolean var9 = false; 5412 5413 if (par1BlockFence.canConnectFenceTo(this.blockAccess, par2 - 1, par3, par4) || par1BlockFence.canConnectFenceTo(this.blockAccess, par2 + 1, par3, par4)) 5414 { 5415 var8 = true; 5416 } 5417 5418 if (par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 - 1) || par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 + 1)) 5419 { 5420 var9 = true; 5421 } 5422 5423 boolean var10 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2 - 1, par3, par4); 5424 boolean var11 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2 + 1, par3, par4); 5425 boolean var12 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 - 1); 5426 boolean var13 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 + 1); 5427 5428 if (!var8 && !var9) 5429 { 5430 var8 = true; 5431 } 5432 5433 var6 = 0.4375F; 5434 var7 = 0.5625F; 5435 float var14 = 0.75F; 5436 float var15 = 0.9375F; 5437 float var16 = var10 ? 0.0F : var6; 5438 float var17 = var11 ? 1.0F : var7; 5439 float var18 = var12 ? 0.0F : var6; 5440 float var19 = var13 ? 1.0F : var7; 5441 5442 if (var8) 5443 { 5444 this.setRenderMinMax((double)var16, (double)var14, (double)var6, (double)var17, (double)var15, (double)var7); 5445 this.renderStandardBlock(par1BlockFence, par2, par3, par4); 5446 var5 = true; 5447 } 5448 5449 if (var9) 5450 { 5451 this.setRenderMinMax((double)var6, (double)var14, (double)var18, (double)var7, (double)var15, (double)var19); 5452 this.renderStandardBlock(par1BlockFence, par2, par3, par4); 5453 var5 = true; 5454 } 5455 5456 var14 = 0.375F; 5457 var15 = 0.5625F; 5458 5459 if (var8) 5460 { 5461 this.setRenderMinMax((double)var16, (double)var14, (double)var6, (double)var17, (double)var15, (double)var7); 5462 this.renderStandardBlock(par1BlockFence, par2, par3, par4); 5463 var5 = true; 5464 } 5465 5466 if (var9) 5467 { 5468 this.setRenderMinMax((double)var6, (double)var14, (double)var18, (double)var7, (double)var15, (double)var19); 5469 this.renderStandardBlock(par1BlockFence, par2, par3, par4); 5470 var5 = true; 5471 } 5472 5473 par1BlockFence.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4); 5474 return var5; 5475 } 5476 5477 public boolean func_82779_a(BlockWall par1BlockWall, int par2, int par3, int par4) 5478 { 5479 boolean var5 = par1BlockWall.canConnectWallTo(this.blockAccess, par2 - 1, par3, par4); 5480 boolean var6 = par1BlockWall.canConnectWallTo(this.blockAccess, par2 + 1, par3, par4); 5481 boolean var7 = par1BlockWall.canConnectWallTo(this.blockAccess, par2, par3, par4 - 1); 5482 boolean var8 = par1BlockWall.canConnectWallTo(this.blockAccess, par2, par3, par4 + 1); 5483 boolean var9 = var7 && var8 && !var5 && !var6; 5484 boolean var10 = !var7 && !var8 && var5 && var6; 5485 boolean var11 = this.blockAccess.isAirBlock(par2, par3 + 1, par4); 5486 5487 if ((var9 || var10) && var11) 5488 { 5489 if (var9) 5490 { 5491 this.setRenderMinMax(0.3125D, 0.0D, 0.0D, 0.6875D, 0.8125D, 1.0D); 5492 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5493 } 5494 else 5495 { 5496 this.setRenderMinMax(0.0D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D); 5497 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5498 } 5499 } 5500 else 5501 { 5502 this.setRenderMinMax(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D); 5503 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5504 5505 if (var5) 5506 { 5507 this.setRenderMinMax(0.0D, 0.0D, 0.3125D, 0.25D, 0.8125D, 0.6875D); 5508 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5509 } 5510 5511 if (var6) 5512 { 5513 this.setRenderMinMax(0.75D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D); 5514 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5515 } 5516 5517 if (var7) 5518 { 5519 this.setRenderMinMax(0.3125D, 0.0D, 0.0D, 0.6875D, 0.8125D, 0.25D); 5520 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5521 } 5522 5523 if (var8) 5524 { 5525 this.setRenderMinMax(0.3125D, 0.0D, 0.75D, 0.6875D, 0.8125D, 1.0D); 5526 this.renderStandardBlock(par1BlockWall, par2, par3, par4); 5527 } 5528 } 5529 5530 par1BlockWall.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4); 5531 return true; 5532 } 5533 5534 public boolean renderBlockDragonEgg(BlockDragonEgg par1BlockDragonEgg, int par2, int par3, int par4) 5535 { 5536 boolean var5 = false; 5537 int var6 = 0; 5538 5539 for (int var7 = 0; var7 < 8; ++var7) 5540 { 5541 byte var8 = 0; 5542 byte var9 = 1; 5543 5544 if (var7 == 0) 5545 { 5546 var8 = 2; 5547 } 5548 5549 if (var7 == 1) 5550 { 5551 var8 = 3; 5552 } 5553 5554 if (var7 == 2) 5555 { 5556 var8 = 4; 5557 } 5558 5559 if (var7 == 3) 5560 { 5561 var8 = 5; 5562 var9 = 2; 5563 } 5564 5565 if (var7 == 4) 5566 { 5567 var8 = 6; 5568 var9 = 3; 5569 } 5570 5571 if (var7 == 5) 5572 { 5573 var8 = 7; 5574 var9 = 5; 5575 } 5576 5577 if (var7 == 6) 5578 { 5579 var8 = 6; 5580 var9 = 2; 5581 } 5582 5583 if (var7 == 7) 5584 { 5585 var8 = 3; 5586 } 5587 5588 float var10 = (float)var8 / 16.0F; 5589 float var11 = 1.0F - (float)var6 / 16.0F; 5590 float var12 = 1.0F - (float)(var6 + var9) / 16.0F; 5591 var6 += var9; 5592 this.setRenderMinMax((double)(0.5F - var10), (double)var12, (double)(0.5F - var10), (double)(0.5F + var10), (double)var11, (double)(0.5F + var10)); 5593 this.renderStandardBlock(par1BlockDragonEgg, par2, par3, par4); 5594 } 5595 5596 var5 = true; 5597 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 5598 return var5; 5599 } 5600 5601 /** 5602 * Render block fence gate 5603 */ 5604 public boolean renderBlockFenceGate(BlockFenceGate par1BlockFenceGate, int par2, int par3, int par4) 5605 { 5606 boolean var5 = true; 5607 int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4); 5608 boolean var7 = BlockFenceGate.isFenceGateOpen(var6); 5609 int var8 = BlockDirectional.getDirection(var6); 5610 float var9 = 0.375F; 5611 float var10 = 0.5625F; 5612 float var11 = 0.75F; 5613 float var12 = 0.9375F; 5614 float var13 = 0.3125F; 5615 float var14 = 1.0F; 5616 5617 if ((var8 == 2 || var8 == 0) && this.blockAccess.getBlockId(par2 - 1, par3, par4) == Block.cobblestoneWall.blockID && this.blockAccess.getBlockId(par2 + 1, par3, par4) == Block.cobblestoneWall.blockID || (var8 == 3 || var8 == 1) && this.blockAccess.getBlockId(par2, par3, par4 - 1) == Block.cobblestoneWall.blockID && this.blockAccess.getBlockId(par2, par3, par4 + 1) == Block.cobblestoneWall.blockID) 5618 { 5619 var9 -= 0.1875F; 5620 var10 -= 0.1875F; 5621 var11 -= 0.1875F; 5622 var12 -= 0.1875F; 5623 var13 -= 0.1875F; 5624 var14 -= 0.1875F; 5625 } 5626 5627 this.renderAllFaces = true; 5628 float var15; 5629 float var17; 5630 float var16; 5631 float var18; 5632 5633 if (var8 != 3 && var8 != 1) 5634 { 5635 var15 = 0.0F; 5636 var16 = 0.125F; 5637 var17 = 0.4375F; 5638 var18 = 0.5625F; 5639 this.setRenderMinMax((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18); 5640 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5641 var15 = 0.875F; 5642 var16 = 1.0F; 5643 this.setRenderMinMax((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18); 5644 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5645 } 5646 else 5647 { 5648 this.uvRotateTop = 1; 5649 var15 = 0.4375F; 5650 var16 = 0.5625F; 5651 var17 = 0.0F; 5652 var18 = 0.125F; 5653 this.setRenderMinMax((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18); 5654 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5655 var17 = 0.875F; 5656 var18 = 1.0F; 5657 this.setRenderMinMax((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18); 5658 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5659 this.uvRotateTop = 0; 5660 } 5661 5662 if (var7) 5663 { 5664 if (var8 == 2 || var8 == 0) 5665 { 5666 this.uvRotateTop = 1; 5667 } 5668 5669 if (var8 == 3) 5670 { 5671 this.setRenderMinMax(0.8125D, (double)var9, 0.0D, 0.9375D, (double)var12, 0.125D); 5672 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5673 this.setRenderMinMax(0.8125D, (double)var9, 0.875D, 0.9375D, (double)var12, 1.0D); 5674 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5675 this.setRenderMinMax(0.5625D, (double)var9, 0.0D, 0.8125D, (double)var10, 0.125D); 5676 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5677 this.setRenderMinMax(0.5625D, (double)var9, 0.875D, 0.8125D, (double)var10, 1.0D); 5678 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5679 this.setRenderMinMax(0.5625D, (double)var11, 0.0D, 0.8125D, (double)var12, 0.125D); 5680 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5681 this.setRenderMinMax(0.5625D, (double)var11, 0.875D, 0.8125D, (double)var12, 1.0D); 5682 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5683 } 5684 else if (var8 == 1) 5685 { 5686 this.setRenderMinMax(0.0625D, (double)var9, 0.0D, 0.1875D, (double)var12, 0.125D); 5687 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5688 this.setRenderMinMax(0.0625D, (double)var9, 0.875D, 0.1875D, (double)var12, 1.0D); 5689 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5690 this.setRenderMinMax(0.1875D, (double)var9, 0.0D, 0.4375D, (double)var10, 0.125D); 5691 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5692 this.setRenderMinMax(0.1875D, (double)var9, 0.875D, 0.4375D, (double)var10, 1.0D); 5693 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5694 this.setRenderMinMax(0.1875D, (double)var11, 0.0D, 0.4375D, (double)var12, 0.125D); 5695 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5696 this.setRenderMinMax(0.1875D, (double)var11, 0.875D, 0.4375D, (double)var12, 1.0D); 5697 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5698 } 5699 else if (var8 == 0) 5700 { 5701 this.setRenderMinMax(0.0D, (double)var9, 0.8125D, 0.125D, (double)var12, 0.9375D); 5702 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5703 this.setRenderMinMax(0.875D, (double)var9, 0.8125D, 1.0D, (double)var12, 0.9375D); 5704 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5705 this.setRenderMinMax(0.0D, (double)var9, 0.5625D, 0.125D, (double)var10, 0.8125D); 5706 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5707 this.setRenderMinMax(0.875D, (double)var9, 0.5625D, 1.0D, (double)var10, 0.8125D); 5708 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5709 this.setRenderMinMax(0.0D, (double)var11, 0.5625D, 0.125D, (double)var12, 0.8125D); 5710 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5711 this.setRenderMinMax(0.875D, (double)var11, 0.5625D, 1.0D, (double)var12, 0.8125D); 5712 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5713 } 5714 else if (var8 == 2) 5715 { 5716 this.setRenderMinMax(0.0D, (double)var9, 0.0625D, 0.125D, (double)var12, 0.1875D); 5717 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5718 this.setRenderMinMax(0.875D, (double)var9, 0.0625D, 1.0D, (double)var12, 0.1875D); 5719 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5720 this.setRenderMinMax(0.0D, (double)var9, 0.1875D, 0.125D, (double)var10, 0.4375D); 5721 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5722 this.setRenderMinMax(0.875D, (double)var9, 0.1875D, 1.0D, (double)var10, 0.4375D); 5723 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5724 this.setRenderMinMax(0.0D, (double)var11, 0.1875D, 0.125D, (double)var12, 0.4375D); 5725 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5726 this.setRenderMinMax(0.875D, (double)var11, 0.1875D, 1.0D, (double)var12, 0.4375D); 5727 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5728 } 5729 } 5730 else if (var8 != 3 && var8 != 1) 5731 { 5732 var15 = 0.375F; 5733 var16 = 0.5F; 5734 var17 = 0.4375F; 5735 var18 = 0.5625F; 5736 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18); 5737 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5738 var15 = 0.5F; 5739 var16 = 0.625F; 5740 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18); 5741 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5742 var15 = 0.625F; 5743 var16 = 0.875F; 5744 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18); 5745 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5746 this.setRenderMinMax((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18); 5747 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5748 var15 = 0.125F; 5749 var16 = 0.375F; 5750 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18); 5751 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5752 this.setRenderMinMax((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18); 5753 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5754 } 5755 else 5756 { 5757 this.uvRotateTop = 1; 5758 var15 = 0.4375F; 5759 var16 = 0.5625F; 5760 var17 = 0.375F; 5761 var18 = 0.5F; 5762 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18); 5763 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5764 var17 = 0.5F; 5765 var18 = 0.625F; 5766 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18); 5767 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5768 var17 = 0.625F; 5769 var18 = 0.875F; 5770 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18); 5771 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5772 this.setRenderMinMax((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18); 5773 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5774 var17 = 0.125F; 5775 var18 = 0.375F; 5776 this.setRenderMinMax((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18); 5777 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5778 this.setRenderMinMax((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18); 5779 this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4); 5780 } 5781 5782 this.renderAllFaces = false; 5783 this.uvRotateTop = 0; 5784 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 5785 return var5; 5786 } 5787 5788 /** 5789 * Renders a stair block at the given coordinates 5790 */ 5791 public boolean renderBlockStairs(BlockStairs par1BlockStairs, int par2, int par3, int par4) 5792 { 5793 par1BlockStairs.func_82541_d(this.blockAccess, par2, par3, par4); 5794 this.func_83018_a(par1BlockStairs); 5795 this.renderStandardBlock(par1BlockStairs, par2, par3, par4); 5796 boolean var5 = par1BlockStairs.func_82542_g(this.blockAccess, par2, par3, par4); 5797 this.func_83018_a(par1BlockStairs); 5798 this.renderStandardBlock(par1BlockStairs, par2, par3, par4); 5799 5800 if (var5 && par1BlockStairs.func_82544_h(this.blockAccess, par2, par3, par4)) 5801 { 5802 this.func_83018_a(par1BlockStairs); 5803 this.renderStandardBlock(par1BlockStairs, par2, par3, par4); 5804 } 5805 5806 return true; 5807 } 5808 5809 /** 5810 * Renders a door block at the given coordinates 5811 */ 5812 public boolean renderBlockDoor(Block par1Block, int par2, int par3, int par4) 5813 { 5814 Tessellator var5 = Tessellator.instance; 5815 boolean var6 = false; 5816 float var7 = 0.5F; 5817 float var8 = 1.0F; 5818 float var9 = 0.8F; 5819 float var10 = 0.6F; 5820 int var11 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4); 5821 var5.setBrightness(this.field_83027_i > 0.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4)); 5822 var5.setColorOpaque_F(var7, var7, var7); 5823 this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0)); 5824 var6 = true; 5825 var5.setBrightness(this.field_83024_j < 1.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4)); 5826 var5.setColorOpaque_F(var8, var8, var8); 5827 this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1)); 5828 var6 = true; 5829 var5.setBrightness(this.field_83025_k > 0.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1)); 5830 var5.setColorOpaque_F(var9, var9, var9); 5831 int var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2); 5832 5833 if (var13 < 0) 5834 { 5835 this.flipTexture = true; 5836 var13 = -var13; 5837 } 5838 5839 this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var13); 5840 var6 = true; 5841 this.flipTexture = false; 5842 var5.setBrightness(this.field_83022_l < 1.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1)); 5843 var5.setColorOpaque_F(var9, var9, var9); 5844 var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3); 5845 5846 if (var13 < 0) 5847 { 5848 this.flipTexture = true; 5849 var13 = -var13; 5850 } 5851 5852 this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var13); 5853 var6 = true; 5854 this.flipTexture = false; 5855 var5.setBrightness(this.field_83021_g > 0.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4)); 5856 var5.setColorOpaque_F(var10, var10, var10); 5857 var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4); 5858 5859 if (var13 < 0) 5860 { 5861 this.flipTexture = true; 5862 var13 = -var13; 5863 } 5864 5865 this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var13); 5866 var6 = true; 5867 this.flipTexture = false; 5868 var5.setBrightness(this.field_83026_h < 1.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4)); 5869 var5.setColorOpaque_F(var10, var10, var10); 5870 var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5); 5871 5872 if (var13 < 0) 5873 { 5874 this.flipTexture = true; 5875 var13 = -var13; 5876 } 5877 5878 this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var13); 5879 var6 = true; 5880 this.flipTexture = false; 5881 return var6; 5882 } 5883 5884 /** 5885 * Renders the given texture to the bottom face of the block. Args: block, x, y, z, texture 5886 */ 5887 public void renderBottomFace(Block par1Block, double par2, double par4, double par6, int par8) 5888 { 5889 Tessellator var9 = Tessellator.instance; 5890 5891 if (this.overrideBlockTexture >= 0) 5892 { 5893 par8 = this.overrideBlockTexture; 5894 } 5895 5896 int var10 = (par8 & 15) << 4; 5897 int var11 = par8 & 240; 5898 double var12 = ((double)var10 + this.field_83021_g * 16.0D) / 256.0D; 5899 double var14 = ((double)var10 + this.field_83026_h * 16.0D - 0.01D) / 256.0D; 5900 double var16 = ((double)var11 + this.field_83025_k * 16.0D) / 256.0D; 5901 double var18 = ((double)var11 + this.field_83022_l * 16.0D - 0.01D) / 256.0D; 5902 5903 if (this.field_83021_g < 0.0D || this.field_83026_h > 1.0D) 5904 { 5905 var12 = (double)(((float)var10 + 0.0F) / 256.0F); 5906 var14 = (double)(((float)var10 + 15.99F) / 256.0F); 5907 } 5908 5909 if (this.field_83025_k < 0.0D || this.field_83022_l > 1.0D) 5910 { 5911 var16 = (double)(((float)var11 + 0.0F) / 256.0F); 5912 var18 = (double)(((float)var11 + 15.99F) / 256.0F); 5913 } 5914 5915 double var20 = var14; 5916 double var22 = var12; 5917 double var24 = var16; 5918 double var26 = var18; 5919 5920 if (this.uvRotateBottom == 2) 5921 { 5922 var12 = ((double)var10 + this.field_83025_k * 16.0D) / 256.0D; 5923 var16 = ((double)(var11 + 16) - this.field_83026_h * 16.0D) / 256.0D; 5924 var14 = ((double)var10 + this.field_83022_l * 16.0D) / 256.0D; 5925 var18 = ((double)(var11 + 16) - this.field_83021_g * 16.0D) / 256.0D; 5926 var24 = var16; 5927 var26 = var18; 5928 var20 = var12; 5929 var22 = var14; 5930 var16 = var18; 5931 var18 = var24; 5932 } 5933 else if (this.uvRotateBottom == 1) 5934 { 5935 var12 = ((double)(var10 + 16) - this.field_83022_l * 16.0D) / 256.0D; 5936 var16 = ((double)var11 + this.field_83021_g * 16.0D) / 256.0D; 5937 var14 = ((double)(var10 + 16) - this.field_83025_k * 16.0D) / 256.0D; 5938 var18 = ((double)var11 + this.field_83026_h * 16.0D) / 256.0D; 5939 var20 = var14; 5940 var22 = var12; 5941 var12 = var14; 5942 var14 = var22; 5943 var24 = var18; 5944 var26 = var16; 5945 } 5946 else if (this.uvRotateBottom == 3) 5947 { 5948 var12 = ((double)(var10 + 16) - this.field_83021_g * 16.0D) / 256.0D; 5949 var14 = ((double)(var10 + 16) - this.field_83026_h * 16.0D - 0.01D) / 256.0D; 5950 var16 = ((double)(var11 + 16) - this.field_83025_k * 16.0D) / 256.0D; 5951 var18 = ((double)(var11 + 16) - this.field_83022_l * 16.0D - 0.01D) / 256.0D; 5952 var20 = var14; 5953 var22 = var12; 5954 var24 = var16; 5955 var26 = var18; 5956 } 5957 5958 double var28 = par2 + this.field_83021_g; 5959 double var30 = par2 + this.field_83026_h; 5960 double var32 = par4 + this.field_83027_i; 5961 double var34 = par6 + this.field_83025_k; 5962 double var36 = par6 + this.field_83022_l; 5963 5964 if (this.enableAO) 5965 { 5966 var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); 5967 var9.setBrightness(this.brightnessTopLeft); 5968 var9.addVertexWithUV(var28, var32, var36, var22, var26); 5969 var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); 5970 var9.setBrightness(this.brightnessBottomLeft); 5971 var9.addVertexWithUV(var28, var32, var34, var12, var16); 5972 var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); 5973 var9.setBrightness(this.brightnessBottomRight); 5974 var9.addVertexWithUV(var30, var32, var34, var20, var24); 5975 var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); 5976 var9.setBrightness(this.brightnessTopRight); 5977 var9.addVertexWithUV(var30, var32, var36, var14, var18); 5978 } 5979 else 5980 { 5981 var9.addVertexWithUV(var28, var32, var36, var22, var26); 5982 var9.addVertexWithUV(var28, var32, var34, var12, var16); 5983 var9.addVertexWithUV(var30, var32, var34, var20, var24); 5984 var9.addVertexWithUV(var30, var32, var36, var14, var18); 5985 } 5986 } 5987 5988 /** 5989 * Renders the given texture to the top face of the block. Args: block, x, y, z, texture 5990 */ 5991 public void renderTopFace(Block par1Block, double par2, double par4, double par6, int par8) 5992 { 5993 Tessellator var9 = Tessellator.instance; 5994 5995 if (this.overrideBlockTexture >= 0) 5996 { 5997 par8 = this.overrideBlockTexture; 5998 } 5999 6000 int var10 = (par8 & 15) << 4; 6001 int var11 = par8 & 240; 6002 double var12 = ((double)var10 + this.field_83021_g * 16.0D) / 256.0D; 6003 double var14 = ((double)var10 + this.field_83026_h * 16.0D - 0.01D) / 256.0D; 6004 double var16 = ((double)var11 + this.field_83025_k * 16.0D) / 256.0D; 6005 double var18 = ((double)var11 + this.field_83022_l * 16.0D - 0.01D) / 256.0D; 6006 6007 if (this.field_83021_g < 0.0D || this.field_83026_h > 1.0D) 6008 { 6009 var12 = (double)(((float)var10 + 0.0F) / 256.0F); 6010 var14 = (double)(((float)var10 + 15.99F) / 256.0F); 6011 } 6012 6013 if (this.field_83025_k < 0.0D || this.field_83022_l > 1.0D) 6014 { 6015 var16 = (double)(((float)var11 + 0.0F) / 256.0F); 6016 var18 = (double)(((float)var11 + 15.99F) / 256.0F); 6017 } 6018 6019 double var20 = var14; 6020 double var22 = var12; 6021 double var24 = var16; 6022 double var26 = var18; 6023 6024 if (this.uvRotateTop == 1) 6025 { 6026 var12 = ((double)var10 + this.field_83025_k * 16.0D) / 256.0D; 6027 var16 = ((double)(var11 + 16) - this.field_83026_h * 16.0D) / 256.0D; 6028 var14 = ((double)var10 + this.field_83022_l * 16.0D) / 256.0D; 6029 var18 = ((double)(var11 + 16) - this.field_83021_g * 16.0D) / 256.0D; 6030 var24 = var16; 6031 var26 = var18; 6032 var20 = var12; 6033 var22 = var14; 6034 var16 = var18; 6035 var18 = var24; 6036 } 6037 else if (this.uvRotateTop == 2) 6038 { 6039 var12 = ((double)(var10 + 16) - this.field_83022_l * 16.0D) / 256.0D; 6040 var16 = ((double)var11 + this.field_83021_g * 16.0D) / 256.0D; 6041 var14 = ((double)(var10 + 16) - this.field_83025_k * 16.0D) / 256.0D; 6042 var18 = ((double)var11 + this.field_83026_h * 16.0D) / 256.0D; 6043 var20 = var14; 6044 var22 = var12; 6045 var12 = var14; 6046 var14 = var22; 6047 var24 = var18; 6048 var26 = var16; 6049 } 6050 else if (this.uvRotateTop == 3) 6051 { 6052 var12 = ((double)(var10 + 16) - this.field_83021_g * 16.0D) / 256.0D; 6053 var14 = ((double)(var10 + 16) - this.field_83026_h * 16.0D - 0.01D) / 256.0D; 6054 var16 = ((double)(var11 + 16) - this.field_83025_k * 16.0D) / 256.0D; 6055 var18 = ((double)(var11 + 16) - this.field_83022_l * 16.0D - 0.01D) / 256.0D; 6056 var20 = var14; 6057 var22 = var12; 6058 var24 = var16; 6059 var26 = var18; 6060 } 6061 6062 double var28 = par2 + this.field_83021_g; 6063 double var30 = par2 + this.field_83026_h; 6064 double var32 = par4 + this.field_83024_j; 6065 double var34 = par6 + this.field_83025_k; 6066 double var36 = par6 + this.field_83022_l; 6067 6068 if (this.enableAO) 6069 { 6070 var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); 6071 var9.setBrightness(this.brightnessTopLeft); 6072 var9.addVertexWithUV(var30, var32, var36, var14, var18); 6073 var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); 6074 var9.setBrightness(this.brightnessBottomLeft); 6075 var9.addVertexWithUV(var30, var32, var34, var20, var24); 6076 var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); 6077 var9.setBrightness(this.brightnessBottomRight); 6078 var9.addVertexWithUV(var28, var32, var34, var12, var16); 6079 var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); 6080 var9.setBrightness(this.brightnessTopRight); 6081 var9.addVertexWithUV(var28, var32, var36, var22, var26); 6082 } 6083 else 6084 { 6085 var9.addVertexWithUV(var30, var32, var36, var14, var18); 6086 var9.addVertexWithUV(var30, var32, var34, var20, var24); 6087 var9.addVertexWithUV(var28, var32, var34, var12, var16); 6088 var9.addVertexWithUV(var28, var32, var36, var22, var26); 6089 } 6090 } 6091 6092 /** 6093 * Renders the given texture to the east (z-negative) face of the block. Args: block, x, y, z, texture 6094 */ 6095 public void renderEastFace(Block par1Block, double par2, double par4, double par6, int par8) 6096 { 6097 Tessellator var9 = Tessellator.instance; 6098 6099 if (this.overrideBlockTexture >= 0) 6100 { 6101 par8 = this.overrideBlockTexture; 6102 } 6103 6104 int var10 = (par8 & 15) << 4; 6105 int var11 = par8 & 240; 6106 double var12 = ((double)var10 + this.field_83021_g * 16.0D) / 256.0D; 6107 double var14 = ((double)var10 + this.field_83026_h * 16.0D - 0.01D) / 256.0D; 6108 double var16 = ((double)(var11 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6109 double var18 = ((double)(var11 + 16) - this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6110 double var20; 6111 6112 if (this.flipTexture) 6113 { 6114 var20 = var12; 6115 var12 = var14; 6116 var14 = var20; 6117 } 6118 6119 if (this.field_83021_g < 0.0D || this.field_83026_h > 1.0D) 6120 { 6121 var12 = (double)(((float)var10 + 0.0F) / 256.0F); 6122 var14 = (double)(((float)var10 + 15.99F) / 256.0F); 6123 } 6124 6125 if (this.field_83027_i < 0.0D || this.field_83024_j > 1.0D) 6126 { 6127 var16 = (double)(((float)var11 + 0.0F) / 256.0F); 6128 var18 = (double)(((float)var11 + 15.99F) / 256.0F); 6129 } 6130 6131 var20 = var14; 6132 double var22 = var12; 6133 double var24 = var16; 6134 double var26 = var18; 6135 6136 if (this.uvRotateEast == 2) 6137 { 6138 var12 = ((double)var10 + this.field_83027_i * 16.0D) / 256.0D; 6139 var16 = ((double)(var11 + 16) - this.field_83021_g * 16.0D) / 256.0D; 6140 var14 = ((double)var10 + this.field_83024_j * 16.0D) / 256.0D; 6141 var18 = ((double)(var11 + 16) - this.field_83026_h * 16.0D) / 256.0D; 6142 var24 = var16; 6143 var26 = var18; 6144 var20 = var12; 6145 var22 = var14; 6146 var16 = var18; 6147 var18 = var24; 6148 } 6149 else if (this.uvRotateEast == 1) 6150 { 6151 var12 = ((double)(var10 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6152 var16 = ((double)var11 + this.field_83026_h * 16.0D) / 256.0D; 6153 var14 = ((double)(var10 + 16) - this.field_83027_i * 16.0D) / 256.0D; 6154 var18 = ((double)var11 + this.field_83021_g * 16.0D) / 256.0D; 6155 var20 = var14; 6156 var22 = var12; 6157 var12 = var14; 6158 var14 = var22; 6159 var24 = var18; 6160 var26 = var16; 6161 } 6162 else if (this.uvRotateEast == 3) 6163 { 6164 var12 = ((double)(var10 + 16) - this.field_83021_g * 16.0D) / 256.0D; 6165 var14 = ((double)(var10 + 16) - this.field_83026_h * 16.0D - 0.01D) / 256.0D; 6166 var16 = ((double)var11 + this.field_83024_j * 16.0D) / 256.0D; 6167 var18 = ((double)var11 + this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6168 var20 = var14; 6169 var22 = var12; 6170 var24 = var16; 6171 var26 = var18; 6172 } 6173 6174 double var28 = par2 + this.field_83021_g; 6175 double var30 = par2 + this.field_83026_h; 6176 double var32 = par4 + this.field_83027_i; 6177 double var34 = par4 + this.field_83024_j; 6178 double var36 = par6 + this.field_83025_k; 6179 6180 if (this.enableAO) 6181 { 6182 var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); 6183 var9.setBrightness(this.brightnessTopLeft); 6184 var9.addVertexWithUV(var28, var34, var36, var20, var24); 6185 var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); 6186 var9.setBrightness(this.brightnessBottomLeft); 6187 var9.addVertexWithUV(var30, var34, var36, var12, var16); 6188 var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); 6189 var9.setBrightness(this.brightnessBottomRight); 6190 var9.addVertexWithUV(var30, var32, var36, var22, var26); 6191 var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); 6192 var9.setBrightness(this.brightnessTopRight); 6193 var9.addVertexWithUV(var28, var32, var36, var14, var18); 6194 } 6195 else 6196 { 6197 var9.addVertexWithUV(var28, var34, var36, var20, var24); 6198 var9.addVertexWithUV(var30, var34, var36, var12, var16); 6199 var9.addVertexWithUV(var30, var32, var36, var22, var26); 6200 var9.addVertexWithUV(var28, var32, var36, var14, var18); 6201 } 6202 } 6203 6204 /** 6205 * Renders the given texture to the west (z-positive) face of the block. Args: block, x, y, z, texture 6206 */ 6207 public void renderWestFace(Block par1Block, double par2, double par4, double par6, int par8) 6208 { 6209 Tessellator var9 = Tessellator.instance; 6210 6211 if (this.overrideBlockTexture >= 0) 6212 { 6213 par8 = this.overrideBlockTexture; 6214 } 6215 6216 int var10 = (par8 & 15) << 4; 6217 int var11 = par8 & 240; 6218 double var12 = ((double)var10 + this.field_83021_g * 16.0D) / 256.0D; 6219 double var14 = ((double)var10 + this.field_83026_h * 16.0D - 0.01D) / 256.0D; 6220 double var16 = ((double)(var11 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6221 double var18 = ((double)(var11 + 16) - this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6222 double var20; 6223 6224 if (this.flipTexture) 6225 { 6226 var20 = var12; 6227 var12 = var14; 6228 var14 = var20; 6229 } 6230 6231 if (this.field_83021_g < 0.0D || this.field_83026_h > 1.0D) 6232 { 6233 var12 = (double)(((float)var10 + 0.0F) / 256.0F); 6234 var14 = (double)(((float)var10 + 15.99F) / 256.0F); 6235 } 6236 6237 if (this.field_83027_i < 0.0D || this.field_83024_j > 1.0D) 6238 { 6239 var16 = (double)(((float)var11 + 0.0F) / 256.0F); 6240 var18 = (double)(((float)var11 + 15.99F) / 256.0F); 6241 } 6242 6243 var20 = var14; 6244 double var22 = var12; 6245 double var24 = var16; 6246 double var26 = var18; 6247 6248 if (this.uvRotateWest == 1) 6249 { 6250 var12 = ((double)var10 + this.field_83027_i * 16.0D) / 256.0D; 6251 var18 = ((double)(var11 + 16) - this.field_83021_g * 16.0D) / 256.0D; 6252 var14 = ((double)var10 + this.field_83024_j * 16.0D) / 256.0D; 6253 var16 = ((double)(var11 + 16) - this.field_83026_h * 16.0D) / 256.0D; 6254 var24 = var16; 6255 var26 = var18; 6256 var20 = var12; 6257 var22 = var14; 6258 var16 = var18; 6259 var18 = var24; 6260 } 6261 else if (this.uvRotateWest == 2) 6262 { 6263 var12 = ((double)(var10 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6264 var16 = ((double)var11 + this.field_83021_g * 16.0D) / 256.0D; 6265 var14 = ((double)(var10 + 16) - this.field_83027_i * 16.0D) / 256.0D; 6266 var18 = ((double)var11 + this.field_83026_h * 16.0D) / 256.0D; 6267 var20 = var14; 6268 var22 = var12; 6269 var12 = var14; 6270 var14 = var22; 6271 var24 = var18; 6272 var26 = var16; 6273 } 6274 else if (this.uvRotateWest == 3) 6275 { 6276 var12 = ((double)(var10 + 16) - this.field_83021_g * 16.0D) / 256.0D; 6277 var14 = ((double)(var10 + 16) - this.field_83026_h * 16.0D - 0.01D) / 256.0D; 6278 var16 = ((double)var11 + this.field_83024_j * 16.0D) / 256.0D; 6279 var18 = ((double)var11 + this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6280 var20 = var14; 6281 var22 = var12; 6282 var24 = var16; 6283 var26 = var18; 6284 } 6285 6286 double var28 = par2 + this.field_83021_g; 6287 double var30 = par2 + this.field_83026_h; 6288 double var32 = par4 + this.field_83027_i; 6289 double var34 = par4 + this.field_83024_j; 6290 double var36 = par6 + this.field_83022_l; 6291 6292 if (this.enableAO) 6293 { 6294 var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); 6295 var9.setBrightness(this.brightnessTopLeft); 6296 var9.addVertexWithUV(var28, var34, var36, var12, var16); 6297 var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); 6298 var9.setBrightness(this.brightnessBottomLeft); 6299 var9.addVertexWithUV(var28, var32, var36, var22, var26); 6300 var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); 6301 var9.setBrightness(this.brightnessBottomRight); 6302 var9.addVertexWithUV(var30, var32, var36, var14, var18); 6303 var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); 6304 var9.setBrightness(this.brightnessTopRight); 6305 var9.addVertexWithUV(var30, var34, var36, var20, var24); 6306 } 6307 else 6308 { 6309 var9.addVertexWithUV(var28, var34, var36, var12, var16); 6310 var9.addVertexWithUV(var28, var32, var36, var22, var26); 6311 var9.addVertexWithUV(var30, var32, var36, var14, var18); 6312 var9.addVertexWithUV(var30, var34, var36, var20, var24); 6313 } 6314 } 6315 6316 /** 6317 * Renders the given texture to the north (x-negative) face of the block. Args: block, x, y, z, texture 6318 */ 6319 public void renderNorthFace(Block par1Block, double par2, double par4, double par6, int par8) 6320 { 6321 Tessellator var9 = Tessellator.instance; 6322 6323 if (this.overrideBlockTexture >= 0) 6324 { 6325 par8 = this.overrideBlockTexture; 6326 } 6327 6328 int var10 = (par8 & 15) << 4; 6329 int var11 = par8 & 240; 6330 double var12 = ((double)var10 + this.field_83025_k * 16.0D) / 256.0D; 6331 double var14 = ((double)var10 + this.field_83022_l * 16.0D - 0.01D) / 256.0D; 6332 double var16 = ((double)(var11 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6333 double var18 = ((double)(var11 + 16) - this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6334 double var20; 6335 6336 if (this.flipTexture) 6337 { 6338 var20 = var12; 6339 var12 = var14; 6340 var14 = var20; 6341 } 6342 6343 if (this.field_83025_k < 0.0D || this.field_83022_l > 1.0D) 6344 { 6345 var12 = (double)(((float)var10 + 0.0F) / 256.0F); 6346 var14 = (double)(((float)var10 + 15.99F) / 256.0F); 6347 } 6348 6349 if (this.field_83027_i < 0.0D || this.field_83024_j > 1.0D) 6350 { 6351 var16 = (double)(((float)var11 + 0.0F) / 256.0F); 6352 var18 = (double)(((float)var11 + 15.99F) / 256.0F); 6353 } 6354 6355 var20 = var14; 6356 double var22 = var12; 6357 double var24 = var16; 6358 double var26 = var18; 6359 6360 if (this.uvRotateNorth == 1) 6361 { 6362 var12 = ((double)var10 + this.field_83027_i * 16.0D) / 256.0D; 6363 var16 = ((double)(var11 + 16) - this.field_83022_l * 16.0D) / 256.0D; 6364 var14 = ((double)var10 + this.field_83024_j * 16.0D) / 256.0D; 6365 var18 = ((double)(var11 + 16) - this.field_83025_k * 16.0D) / 256.0D; 6366 var24 = var16; 6367 var26 = var18; 6368 var20 = var12; 6369 var22 = var14; 6370 var16 = var18; 6371 var18 = var24; 6372 } 6373 else if (this.uvRotateNorth == 2) 6374 { 6375 var12 = ((double)(var10 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6376 var16 = ((double)var11 + this.field_83025_k * 16.0D) / 256.0D; 6377 var14 = ((double)(var10 + 16) - this.field_83027_i * 16.0D) / 256.0D; 6378 var18 = ((double)var11 + this.field_83022_l * 16.0D) / 256.0D; 6379 var20 = var14; 6380 var22 = var12; 6381 var12 = var14; 6382 var14 = var22; 6383 var24 = var18; 6384 var26 = var16; 6385 } 6386 else if (this.uvRotateNorth == 3) 6387 { 6388 var12 = ((double)(var10 + 16) - this.field_83025_k * 16.0D) / 256.0D; 6389 var14 = ((double)(var10 + 16) - this.field_83022_l * 16.0D - 0.01D) / 256.0D; 6390 var16 = ((double)var11 + this.field_83024_j * 16.0D) / 256.0D; 6391 var18 = ((double)var11 + this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6392 var20 = var14; 6393 var22 = var12; 6394 var24 = var16; 6395 var26 = var18; 6396 } 6397 6398 double var28 = par2 + this.field_83021_g; 6399 double var30 = par4 + this.field_83027_i; 6400 double var32 = par4 + this.field_83024_j; 6401 double var34 = par6 + this.field_83025_k; 6402 double var36 = par6 + this.field_83022_l; 6403 6404 if (this.enableAO) 6405 { 6406 var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); 6407 var9.setBrightness(this.brightnessTopLeft); 6408 var9.addVertexWithUV(var28, var32, var36, var20, var24); 6409 var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); 6410 var9.setBrightness(this.brightnessBottomLeft); 6411 var9.addVertexWithUV(var28, var32, var34, var12, var16); 6412 var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); 6413 var9.setBrightness(this.brightnessBottomRight); 6414 var9.addVertexWithUV(var28, var30, var34, var22, var26); 6415 var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); 6416 var9.setBrightness(this.brightnessTopRight); 6417 var9.addVertexWithUV(var28, var30, var36, var14, var18); 6418 } 6419 else 6420 { 6421 var9.addVertexWithUV(var28, var32, var36, var20, var24); 6422 var9.addVertexWithUV(var28, var32, var34, var12, var16); 6423 var9.addVertexWithUV(var28, var30, var34, var22, var26); 6424 var9.addVertexWithUV(var28, var30, var36, var14, var18); 6425 } 6426 } 6427 6428 /** 6429 * Renders the given texture to the south (x-positive) face of the block. Args: block, x, y, z, texture 6430 */ 6431 public void renderSouthFace(Block par1Block, double par2, double par4, double par6, int par8) 6432 { 6433 Tessellator var9 = Tessellator.instance; 6434 6435 if (this.overrideBlockTexture >= 0) 6436 { 6437 par8 = this.overrideBlockTexture; 6438 } 6439 6440 int var10 = (par8 & 15) << 4; 6441 int var11 = par8 & 240; 6442 double var12 = ((double)var10 + this.field_83025_k * 16.0D) / 256.0D; 6443 double var14 = ((double)var10 + this.field_83022_l * 16.0D - 0.01D) / 256.0D; 6444 double var16 = ((double)(var11 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6445 double var18 = ((double)(var11 + 16) - this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6446 double var20; 6447 6448 if (this.flipTexture) 6449 { 6450 var20 = var12; 6451 var12 = var14; 6452 var14 = var20; 6453 } 6454 6455 if (this.field_83025_k < 0.0D || this.field_83022_l > 1.0D) 6456 { 6457 var12 = (double)(((float)var10 + 0.0F) / 256.0F); 6458 var14 = (double)(((float)var10 + 15.99F) / 256.0F); 6459 } 6460 6461 if (this.field_83027_i < 0.0D || this.field_83024_j > 1.0D) 6462 { 6463 var16 = (double)(((float)var11 + 0.0F) / 256.0F); 6464 var18 = (double)(((float)var11 + 15.99F) / 256.0F); 6465 } 6466 6467 var20 = var14; 6468 double var22 = var12; 6469 double var24 = var16; 6470 double var26 = var18; 6471 6472 if (this.uvRotateSouth == 2) 6473 { 6474 var12 = ((double)var10 + this.field_83027_i * 16.0D) / 256.0D; 6475 var16 = ((double)(var11 + 16) - this.field_83025_k * 16.0D) / 256.0D; 6476 var14 = ((double)var10 + this.field_83024_j * 16.0D) / 256.0D; 6477 var18 = ((double)(var11 + 16) - this.field_83022_l * 16.0D) / 256.0D; 6478 var24 = var16; 6479 var26 = var18; 6480 var20 = var12; 6481 var22 = var14; 6482 var16 = var18; 6483 var18 = var24; 6484 } 6485 else if (this.uvRotateSouth == 1) 6486 { 6487 var12 = ((double)(var10 + 16) - this.field_83024_j * 16.0D) / 256.0D; 6488 var16 = ((double)var11 + this.field_83022_l * 16.0D) / 256.0D; 6489 var14 = ((double)(var10 + 16) - this.field_83027_i * 16.0D) / 256.0D; 6490 var18 = ((double)var11 + this.field_83025_k * 16.0D) / 256.0D; 6491 var20 = var14; 6492 var22 = var12; 6493 var12 = var14; 6494 var14 = var22; 6495 var24 = var18; 6496 var26 = var16; 6497 } 6498 else if (this.uvRotateSouth == 3) 6499 { 6500 var12 = ((double)(var10 + 16) - this.field_83025_k * 16.0D) / 256.0D; 6501 var14 = ((double)(var10 + 16) - this.field_83022_l * 16.0D - 0.01D) / 256.0D; 6502 var16 = ((double)var11 + this.field_83024_j * 16.0D) / 256.0D; 6503 var18 = ((double)var11 + this.field_83027_i * 16.0D - 0.01D) / 256.0D; 6504 var20 = var14; 6505 var22 = var12; 6506 var24 = var16; 6507 var26 = var18; 6508 } 6509 6510 double var28 = par2 + this.field_83026_h; 6511 double var30 = par4 + this.field_83027_i; 6512 double var32 = par4 + this.field_83024_j; 6513 double var34 = par6 + this.field_83025_k; 6514 double var36 = par6 + this.field_83022_l; 6515 6516 if (this.enableAO) 6517 { 6518 var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft); 6519 var9.setBrightness(this.brightnessTopLeft); 6520 var9.addVertexWithUV(var28, var30, var36, var22, var26); 6521 var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft); 6522 var9.setBrightness(this.brightnessBottomLeft); 6523 var9.addVertexWithUV(var28, var30, var34, var14, var18); 6524 var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight); 6525 var9.setBrightness(this.brightnessBottomRight); 6526 var9.addVertexWithUV(var28, var32, var34, var20, var24); 6527 var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight); 6528 var9.setBrightness(this.brightnessTopRight); 6529 var9.addVertexWithUV(var28, var32, var36, var12, var16); 6530 } 6531 else 6532 { 6533 var9.addVertexWithUV(var28, var30, var36, var22, var26); 6534 var9.addVertexWithUV(var28, var30, var34, var14, var18); 6535 var9.addVertexWithUV(var28, var32, var34, var20, var24); 6536 var9.addVertexWithUV(var28, var32, var36, var12, var16); 6537 } 6538 } 6539 6540 /** 6541 * Is called to render the image of a block on an inventory, as a held item, or as a an item on the ground 6542 */ 6543 public void renderBlockAsItem(Block par1Block, int par2, float par3) 6544 { 6545 Tessellator var4 = Tessellator.instance; 6546 boolean var5 = par1Block.blockID == Block.grass.blockID; 6547 int var6; 6548 float var7; 6549 float var8; 6550 float var9; 6551 6552 if (this.useInventoryTint) 6553 { 6554 var6 = par1Block.getRenderColor(par2); 6555 6556 if (var5) 6557 { 6558 var6 = 16777215; 6559 } 6560 6561 var7 = (float)(var6 >> 16 & 255) / 255.0F; 6562 var8 = (float)(var6 >> 8 & 255) / 255.0F; 6563 var9 = (float)(var6 & 255) / 255.0F; 6564 GL11.glColor4f(var7 * par3, var8 * par3, var9 * par3, 1.0F); 6565 } 6566 6567 var6 = par1Block.getRenderType(); 6568 this.func_83018_a(par1Block); 6569 int var14; 6570 6571 if (var6 != 0 && var6 != 31 && var6 != 16 && var6 != 26) 6572 { 6573 if (var6 == 1) 6574 { 6575 var4.startDrawingQuads(); 6576 var4.setNormal(0.0F, -1.0F, 0.0F); 6577 this.drawCrossedSquares(par1Block, par2, -0.5D, -0.5D, -0.5D, 1.0F); 6578 var4.draw(); 6579 } 6580 else if (var6 == 19) 6581 { 6582 var4.startDrawingQuads(); 6583 var4.setNormal(0.0F, -1.0F, 0.0F); 6584 par1Block.setBlockBoundsForItemRender(); 6585 this.renderBlockStemSmall(par1Block, par2, this.field_83024_j, -0.5D, -0.5D, -0.5D); 6586 var4.draw(); 6587 } 6588 else if (var6 == 23) 6589 { 6590 var4.startDrawingQuads(); 6591 var4.setNormal(0.0F, -1.0F, 0.0F); 6592 par1Block.setBlockBoundsForItemRender(); 6593 var4.draw(); 6594 } 6595 else if (var6 == 13) 6596 { 6597 par1Block.setBlockBoundsForItemRender(); 6598 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6599 var7 = 0.0625F; 6600 var4.startDrawingQuads(); 6601 var4.setNormal(0.0F, -1.0F, 0.0F); 6602 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0)); 6603 var4.draw(); 6604 var4.startDrawingQuads(); 6605 var4.setNormal(0.0F, 1.0F, 0.0F); 6606 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1)); 6607 var4.draw(); 6608 var4.startDrawingQuads(); 6609 var4.setNormal(0.0F, 0.0F, -1.0F); 6610 var4.addTranslation(0.0F, 0.0F, var7); 6611 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2)); 6612 var4.addTranslation(0.0F, 0.0F, -var7); 6613 var4.draw(); 6614 var4.startDrawingQuads(); 6615 var4.setNormal(0.0F, 0.0F, 1.0F); 6616 var4.addTranslation(0.0F, 0.0F, -var7); 6617 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3)); 6618 var4.addTranslation(0.0F, 0.0F, var7); 6619 var4.draw(); 6620 var4.startDrawingQuads(); 6621 var4.setNormal(-1.0F, 0.0F, 0.0F); 6622 var4.addTranslation(var7, 0.0F, 0.0F); 6623 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4)); 6624 var4.addTranslation(-var7, 0.0F, 0.0F); 6625 var4.draw(); 6626 var4.startDrawingQuads(); 6627 var4.setNormal(1.0F, 0.0F, 0.0F); 6628 var4.addTranslation(-var7, 0.0F, 0.0F); 6629 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5)); 6630 var4.addTranslation(var7, 0.0F, 0.0F); 6631 var4.draw(); 6632 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6633 } 6634 else if (var6 == 22) 6635 { 6636 GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); 6637 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6638 ChestItemRenderHelper.instance.renderChest(par1Block, par2, par3); 6639 GL11.glEnable(GL12.GL_RESCALE_NORMAL); 6640 } 6641 else if (var6 == 6) 6642 { 6643 var4.startDrawingQuads(); 6644 var4.setNormal(0.0F, -1.0F, 0.0F); 6645 this.renderBlockCropsImpl(par1Block, par2, -0.5D, -0.5D, -0.5D); 6646 var4.draw(); 6647 } 6648 else if (var6 == 2) 6649 { 6650 var4.startDrawingQuads(); 6651 var4.setNormal(0.0F, -1.0F, 0.0F); 6652 this.renderTorchAtAngle(par1Block, -0.5D, -0.5D, -0.5D, 0.0D, 0.0D); 6653 var4.draw(); 6654 } 6655 else if (var6 == 10) 6656 { 6657 for (var14 = 0; var14 < 2; ++var14) 6658 { 6659 if (var14 == 0) 6660 { 6661 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.5D); 6662 } 6663 6664 if (var14 == 1) 6665 { 6666 this.setRenderMinMax(0.0D, 0.0D, 0.5D, 1.0D, 0.5D, 1.0D); 6667 } 6668 6669 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6670 var4.startDrawingQuads(); 6671 var4.setNormal(0.0F, -1.0F, 0.0F); 6672 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0)); 6673 var4.draw(); 6674 var4.startDrawingQuads(); 6675 var4.setNormal(0.0F, 1.0F, 0.0F); 6676 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1)); 6677 var4.draw(); 6678 var4.startDrawingQuads(); 6679 var4.setNormal(0.0F, 0.0F, -1.0F); 6680 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2)); 6681 var4.draw(); 6682 var4.startDrawingQuads(); 6683 var4.setNormal(0.0F, 0.0F, 1.0F); 6684 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3)); 6685 var4.draw(); 6686 var4.startDrawingQuads(); 6687 var4.setNormal(-1.0F, 0.0F, 0.0F); 6688 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4)); 6689 var4.draw(); 6690 var4.startDrawingQuads(); 6691 var4.setNormal(1.0F, 0.0F, 0.0F); 6692 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5)); 6693 var4.draw(); 6694 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6695 } 6696 } 6697 else if (var6 == 27) 6698 { 6699 var14 = 0; 6700 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6701 var4.startDrawingQuads(); 6702 6703 for (int var15 = 0; var15 < 8; ++var15) 6704 { 6705 byte var16 = 0; 6706 byte var17 = 1; 6707 6708 if (var15 == 0) 6709 { 6710 var16 = 2; 6711 } 6712 6713 if (var15 == 1) 6714 { 6715 var16 = 3; 6716 } 6717 6718 if (var15 == 2) 6719 { 6720 var16 = 4; 6721 } 6722 6723 if (var15 == 3) 6724 { 6725 var16 = 5; 6726 var17 = 2; 6727 } 6728 6729 if (var15 == 4) 6730 { 6731 var16 = 6; 6732 var17 = 3; 6733 } 6734 6735 if (var15 == 5) 6736 { 6737 var16 = 7; 6738 var17 = 5; 6739 } 6740 6741 if (var15 == 6) 6742 { 6743 var16 = 6; 6744 var17 = 2; 6745 } 6746 6747 if (var15 == 7) 6748 { 6749 var16 = 3; 6750 } 6751 6752 float var11 = (float)var16 / 16.0F; 6753 float var12 = 1.0F - (float)var14 / 16.0F; 6754 float var13 = 1.0F - (float)(var14 + var17) / 16.0F; 6755 var14 += var17; 6756 this.setRenderMinMax((double)(0.5F - var11), (double)var13, (double)(0.5F - var11), (double)(0.5F + var11), (double)var12, (double)(0.5F + var11)); 6757 var4.setNormal(0.0F, -1.0F, 0.0F); 6758 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0)); 6759 var4.setNormal(0.0F, 1.0F, 0.0F); 6760 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1)); 6761 var4.setNormal(0.0F, 0.0F, -1.0F); 6762 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2)); 6763 var4.setNormal(0.0F, 0.0F, 1.0F); 6764 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3)); 6765 var4.setNormal(-1.0F, 0.0F, 0.0F); 6766 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4)); 6767 var4.setNormal(1.0F, 0.0F, 0.0F); 6768 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5)); 6769 } 6770 6771 var4.draw(); 6772 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6773 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 6774 } 6775 else if (var6 == 11) 6776 { 6777 for (var14 = 0; var14 < 4; ++var14) 6778 { 6779 var8 = 0.125F; 6780 6781 if (var14 == 0) 6782 { 6783 this.setRenderMinMax((double)(0.5F - var8), 0.0D, 0.0D, (double)(0.5F + var8), 1.0D, (double)(var8 * 2.0F)); 6784 } 6785 6786 if (var14 == 1) 6787 { 6788 this.setRenderMinMax((double)(0.5F - var8), 0.0D, (double)(1.0F - var8 * 2.0F), (double)(0.5F + var8), 1.0D, 1.0D); 6789 } 6790 6791 var8 = 0.0625F; 6792 6793 if (var14 == 2) 6794 { 6795 this.setRenderMinMax((double)(0.5F - var8), (double)(1.0F - var8 * 3.0F), (double)(-var8 * 2.0F), (double)(0.5F + var8), (double)(1.0F - var8), (double)(1.0F + var8 * 2.0F)); 6796 } 6797 6798 if (var14 == 3) 6799 { 6800 this.setRenderMinMax((double)(0.5F - var8), (double)(0.5F - var8 * 3.0F), (double)(-var8 * 2.0F), (double)(0.5F + var8), (double)(0.5F - var8), (double)(1.0F + var8 * 2.0F)); 6801 } 6802 6803 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6804 var4.startDrawingQuads(); 6805 var4.setNormal(0.0F, -1.0F, 0.0F); 6806 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0)); 6807 var4.draw(); 6808 var4.startDrawingQuads(); 6809 var4.setNormal(0.0F, 1.0F, 0.0F); 6810 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1)); 6811 var4.draw(); 6812 var4.startDrawingQuads(); 6813 var4.setNormal(0.0F, 0.0F, -1.0F); 6814 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2)); 6815 var4.draw(); 6816 var4.startDrawingQuads(); 6817 var4.setNormal(0.0F, 0.0F, 1.0F); 6818 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3)); 6819 var4.draw(); 6820 var4.startDrawingQuads(); 6821 var4.setNormal(-1.0F, 0.0F, 0.0F); 6822 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4)); 6823 var4.draw(); 6824 var4.startDrawingQuads(); 6825 var4.setNormal(1.0F, 0.0F, 0.0F); 6826 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5)); 6827 var4.draw(); 6828 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6829 } 6830 6831 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 6832 } 6833 else if (var6 == 21) 6834 { 6835 for (var14 = 0; var14 < 3; ++var14) 6836 { 6837 var8 = 0.0625F; 6838 6839 if (var14 == 0) 6840 { 6841 this.setRenderMinMax((double)(0.5F - var8), 0.30000001192092896D, 0.0D, (double)(0.5F + var8), 1.0D, (double)(var8 * 2.0F)); 6842 } 6843 6844 if (var14 == 1) 6845 { 6846 this.setRenderMinMax((double)(0.5F - var8), 0.30000001192092896D, (double)(1.0F - var8 * 2.0F), (double)(0.5F + var8), 1.0D, 1.0D); 6847 } 6848 6849 var8 = 0.0625F; 6850 6851 if (var14 == 2) 6852 { 6853 this.setRenderMinMax((double)(0.5F - var8), 0.5D, 0.0D, (double)(0.5F + var8), (double)(1.0F - var8), 1.0D); 6854 } 6855 6856 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6857 var4.startDrawingQuads(); 6858 var4.setNormal(0.0F, -1.0F, 0.0F); 6859 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0)); 6860 var4.draw(); 6861 var4.startDrawingQuads(); 6862 var4.setNormal(0.0F, 1.0F, 0.0F); 6863 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1)); 6864 var4.draw(); 6865 var4.startDrawingQuads(); 6866 var4.setNormal(0.0F, 0.0F, -1.0F); 6867 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2)); 6868 var4.draw(); 6869 var4.startDrawingQuads(); 6870 var4.setNormal(0.0F, 0.0F, 1.0F); 6871 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3)); 6872 var4.draw(); 6873 var4.startDrawingQuads(); 6874 var4.setNormal(-1.0F, 0.0F, 0.0F); 6875 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4)); 6876 var4.draw(); 6877 var4.startDrawingQuads(); 6878 var4.setNormal(1.0F, 0.0F, 0.0F); 6879 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5)); 6880 var4.draw(); 6881 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6882 } 6883 } 6884 else if (var6 == 32) 6885 { 6886 for (var14 = 0; var14 < 2; ++var14) 6887 { 6888 if (var14 == 0) 6889 { 6890 this.setRenderMinMax(0.0D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D); 6891 } 6892 6893 if (var14 == 1) 6894 { 6895 this.setRenderMinMax(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D); 6896 } 6897 6898 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6899 var4.startDrawingQuads(); 6900 var4.setNormal(0.0F, -1.0F, 0.0F); 6901 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(0, par2)); 6902 var4.draw(); 6903 var4.startDrawingQuads(); 6904 var4.setNormal(0.0F, 1.0F, 0.0F); 6905 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(1, par2)); 6906 var4.draw(); 6907 var4.startDrawingQuads(); 6908 var4.setNormal(0.0F, 0.0F, -1.0F); 6909 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(2, par2)); 6910 var4.draw(); 6911 var4.startDrawingQuads(); 6912 var4.setNormal(0.0F, 0.0F, 1.0F); 6913 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(3, par2)); 6914 var4.draw(); 6915 var4.startDrawingQuads(); 6916 var4.setNormal(-1.0F, 0.0F, 0.0F); 6917 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(4, par2)); 6918 var4.draw(); 6919 var4.startDrawingQuads(); 6920 var4.setNormal(1.0F, 0.0F, 0.0F); 6921 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(5, par2)); 6922 var4.draw(); 6923 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6924 } 6925 6926 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 6927 } 6928 else if (var6 == 35) 6929 { 6930 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6931 this.func_82776_a((BlockAnvil)par1Block, 0, 0, 0, par2, true); 6932 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6933 } 6934 else if (var6 == 34) 6935 { 6936 for (var14 = 0; var14 < 3; ++var14) 6937 { 6938 if (var14 == 0) 6939 { 6940 this.setRenderMinMax(0.125D, 0.0D, 0.125D, 0.875D, 0.1875D, 0.875D); 6941 this.func_82774_a(Block.obsidian.blockIndexInTexture); 6942 } 6943 else if (var14 == 1) 6944 { 6945 this.setRenderMinMax(0.1875D, 0.1875D, 0.1875D, 0.8125D, 0.875D, 0.8125D); 6946 this.func_82774_a(41); 6947 } 6948 else if (var14 == 2) 6949 { 6950 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 6951 this.func_82774_a(Block.glass.blockIndexInTexture); 6952 } 6953 6954 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 6955 var4.startDrawingQuads(); 6956 var4.setNormal(0.0F, -1.0F, 0.0F); 6957 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(0, par2)); 6958 var4.draw(); 6959 var4.startDrawingQuads(); 6960 var4.setNormal(0.0F, 1.0F, 0.0F); 6961 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(1, par2)); 6962 var4.draw(); 6963 var4.startDrawingQuads(); 6964 var4.setNormal(0.0F, 0.0F, -1.0F); 6965 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(2, par2)); 6966 var4.draw(); 6967 var4.startDrawingQuads(); 6968 var4.setNormal(0.0F, 0.0F, 1.0F); 6969 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(3, par2)); 6970 var4.draw(); 6971 var4.startDrawingQuads(); 6972 var4.setNormal(-1.0F, 0.0F, 0.0F); 6973 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(4, par2)); 6974 var4.draw(); 6975 var4.startDrawingQuads(); 6976 var4.setNormal(1.0F, 0.0F, 0.0F); 6977 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(5, par2)); 6978 var4.draw(); 6979 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 6980 } 6981 6982 this.setRenderMinMax(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D); 6983 this.clearOverrideBlockTexture(); 6984 } 6985 else 6986 { 6987 FMLRenderAccessLibrary.renderInventoryBlock(this, par1Block, par2, var6); 6988 } 6989 } 6990 else 6991 { 6992 if (var6 == 16) 6993 { 6994 par2 = 1; 6995 } 6996 6997 par1Block.setBlockBoundsForItemRender(); 6998 this.func_83018_a(par1Block); 6999 GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F); 7000 GL11.glTranslatef(-0.5F, -0.5F, -0.5F); 7001 var4.startDrawingQuads(); 7002 var4.setNormal(0.0F, -1.0F, 0.0F); 7003 this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(0, par2)); 7004 var4.draw(); 7005 7006 if (var5 && this.useInventoryTint) 7007 { 7008 var14 = par1Block.getRenderColor(par2); 7009 var8 = (float)(var14 >> 16 & 255) / 255.0F; 7010 var9 = (float)(var14 >> 8 & 255) / 255.0F; 7011 float var10 = (float)(var14 & 255) / 255.0F; 7012 GL11.glColor4f(var8 * par3, var9 * par3, var10 * par3, 1.0F); 7013 } 7014 7015 var4.startDrawingQuads(); 7016 var4.setNormal(0.0F, 1.0F, 0.0F); 7017 this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(1, par2)); 7018 var4.draw(); 7019 7020 if (var5 && this.useInventoryTint) 7021 { 7022 GL11.glColor4f(par3, par3, par3, 1.0F); 7023 } 7024 7025 var4.startDrawingQuads(); 7026 var4.setNormal(0.0F, 0.0F, -1.0F); 7027 this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(2, par2)); 7028 var4.draw(); 7029 var4.startDrawingQuads(); 7030 var4.setNormal(0.0F, 0.0F, 1.0F); 7031 this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(3, par2)); 7032 var4.draw(); 7033 var4.startDrawingQuads(); 7034 var4.setNormal(-1.0F, 0.0F, 0.0F); 7035 this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(4, par2)); 7036 var4.draw(); 7037 var4.startDrawingQuads(); 7038 var4.setNormal(1.0F, 0.0F, 0.0F); 7039 this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(5, par2)); 7040 var4.draw(); 7041 GL11.glTranslatef(0.5F, 0.5F, 0.5F); 7042 } 7043 } 7044 7045 /** 7046 * Checks to see if the item's render type indicates that it should be rendered as a regular block or not. 7047 */ 7048 public static boolean renderItemIn3d(int par0) 7049 { 7050 switch (par0) 7051 { 7052 case 0: 7053 return true; 7054 case 31: 7055 return true; 7056 case 13: 7057 return true; 7058 case 10: 7059 return true; 7060 case 11: 7061 return true; 7062 case 27: 7063 return true; 7064 case 22: 7065 return true; 7066 case 21: 7067 return true; 7068 case 16: 7069 return true; 7070 case 26: 7071 return true; 7072 case 32: 7073 return true; 7074 case 34: 7075 return true; 7076 case 35: 7077 return true; 7078 default: 7079 return FMLRenderAccessLibrary.renderItemAsFull3DBlock(par0); 7080 } 7081 } 7082 }