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