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