package net.minecraft.client.renderer;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.BlockAnvil;
import net.minecraft.block.BlockBeacon;
import net.minecraft.block.BlockBed;
import net.minecraft.block.BlockBrewingStand;
import net.minecraft.block.BlockCauldron;
import net.minecraft.block.BlockCocoa;
import net.minecraft.block.BlockDirectional;
import net.minecraft.block.BlockDragonEgg;
import net.minecraft.block.BlockEndPortalFrame;
import net.minecraft.block.BlockFence;
import net.minecraft.block.BlockFenceGate;
import net.minecraft.block.BlockFlower;
import net.minecraft.block.BlockFlowerPot;
import net.minecraft.block.BlockFluid;
import net.minecraft.block.BlockPane;
import net.minecraft.block.BlockPistonBase;
import net.minecraft.block.BlockPistonExtension;
import net.minecraft.block.BlockRail;
import net.minecraft.block.BlockRedstoneRepeater;
import net.minecraft.block.BlockRedstoneWire;
import net.minecraft.block.BlockStairs;
import net.minecraft.block.BlockStem;
import net.minecraft.block.BlockTripWire;
import net.minecraft.block.BlockWall;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.src.FMLRenderAccessLibrary;
import net.minecraft.util.Direction;
import net.minecraft.util.MathHelper;
import net.minecraft.util.Vec3;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL12;
import static net.minecraftforge.common.ForgeDirection.*;
@SideOnly(Side.CLIENT)
public class RenderBlocks
{
/** The IBlockAccess used by this instance of RenderBlocks */
public IBlockAccess blockAccess;
/**
* If set to >=0, all block faces will be rendered using this texture index
*/
public int overrideBlockTexture = -1;
/**
* Set to true if the texture should be flipped horizontally during render*Face
*/
public boolean flipTexture = false;
/**
* If true, renders all faces on all blocks rather than using the logic in Block.shouldSideBeRendered. Unused.
*/
public boolean renderAllFaces = false;
/** Fancy grass side matching biome */
public static boolean fancyGrass = true;
public boolean useInventoryTint = true;
/** The minimum X value for rendering (default 0.0). */
public double renderMinX;
/** The maximum X value for rendering (default 1.0). */
public double renderMaxX;
/** The minimum Y value for rendering (default 0.0). */
public double renderMinY;
/** The maximum Y value for rendering (default 1.0). */
public double renderMaxY;
/** The minimum Z value for rendering (default 0.0). */
public double renderMinZ;
/** The maximum Z value for rendering (default 1.0). */
public double renderMaxZ;
/**
* Set by overrideBlockBounds, to keep this class from changing the visual bounding box.
*/
public boolean lockBlockBounds = false;
public int uvRotateEast = 0;
public int uvRotateWest = 0;
public int uvRotateSouth = 0;
public int uvRotateNorth = 0;
public int uvRotateTop = 0;
public int uvRotateBottom = 0;
/** Whether ambient occlusion is enabled or not */
public boolean enableAO;
/** Light value of the block itself */
public float lightValueOwn;
/** Light value one block less in x axis */
public float aoLightValueXNeg;
/** Light value one block more in y axis */
public float aoLightValueYNeg;
/** Light value one block more in z axis */
public float aoLightValueZNeg;
/** Light value one block more in x axis */
public float aoLightValueXPos;
/** Light value one block more in y axis */
public float aoLightValueYPos;
/** Light value one block more in z axis */
public float aoLightValueZPos;
/**
* Used as a scratch variable for ambient occlusion on the north/bottom/east corner.
*/
public float aoLightValueScratchXYZNNN;
/**
* Used as a scratch variable for ambient occlusion between the bottom face and the north face.
*/
public float aoLightValueScratchXYNN;
/**
* Used as a scratch variable for ambient occlusion on the north/bottom/west corner.
*/
public float aoLightValueScratchXYZNNP;
/**
* Used as a scratch variable for ambient occlusion between the bottom face and the east face.
*/
public float aoLightValueScratchYZNN;
/**
* Used as a scratch variable for ambient occlusion between the bottom face and the west face.
*/
public float aoLightValueScratchYZNP;
/**
* Used as a scratch variable for ambient occlusion on the south/bottom/east corner.
*/
public float aoLightValueScratchXYZPNN;
/**
* Used as a scratch variable for ambient occlusion between the bottom face and the south face.
*/
public float aoLightValueScratchXYPN;
/**
* Used as a scratch variable for ambient occlusion on the south/bottom/west corner.
*/
public float aoLightValueScratchXYZPNP;
/**
* Used as a scratch variable for ambient occlusion on the north/top/east corner.
*/
public float aoLightValueScratchXYZNPN;
/**
* Used as a scratch variable for ambient occlusion between the top face and the north face.
*/
public float aoLightValueScratchXYNP;
/**
* Used as a scratch variable for ambient occlusion on the north/top/west corner.
*/
public float aoLightValueScratchXYZNPP;
/**
* Used as a scratch variable for ambient occlusion between the top face and the east face.
*/
public float aoLightValueScratchYZPN;
/**
* Used as a scratch variable for ambient occlusion on the south/top/east corner.
*/
public float aoLightValueScratchXYZPPN;
/**
* Used as a scratch variable for ambient occlusion between the top face and the south face.
*/
public float aoLightValueScratchXYPP;
/**
* Used as a scratch variable for ambient occlusion between the top face and the west face.
*/
public float aoLightValueScratchYZPP;
/**
* Used as a scratch variable for ambient occlusion on the south/top/west corner.
*/
public float aoLightValueScratchXYZPPP;
/**
* Used as a scratch variable for ambient occlusion between the north face and the east face.
*/
public float aoLightValueScratchXZNN;
/**
* Used as a scratch variable for ambient occlusion between the south face and the east face.
*/
public float aoLightValueScratchXZPN;
/**
* Used as a scratch variable for ambient occlusion between the north face and the west face.
*/
public float aoLightValueScratchXZNP;
/**
* Used as a scratch variable for ambient occlusion between the south face and the west face.
*/
public float aoLightValueScratchXZPP;
/** Ambient occlusion brightness XYZNNN */
public int aoBrightnessXYZNNN;
/** Ambient occlusion brightness XYNN */
public int aoBrightnessXYNN;
/** Ambient occlusion brightness XYZNNP */
public int aoBrightnessXYZNNP;
/** Ambient occlusion brightness YZNN */
public int aoBrightnessYZNN;
/** Ambient occlusion brightness YZNP */
public int aoBrightnessYZNP;
/** Ambient occlusion brightness XYZPNN */
public int aoBrightnessXYZPNN;
/** Ambient occlusion brightness XYPN */
public int aoBrightnessXYPN;
/** Ambient occlusion brightness XYZPNP */
public int aoBrightnessXYZPNP;
/** Ambient occlusion brightness XYZNPN */
public int aoBrightnessXYZNPN;
/** Ambient occlusion brightness XYNP */
public int aoBrightnessXYNP;
/** Ambient occlusion brightness XYZNPP */
public int aoBrightnessXYZNPP;
/** Ambient occlusion brightness YZPN */
public int aoBrightnessYZPN;
/** Ambient occlusion brightness XYZPPN */
public int aoBrightnessXYZPPN;
/** Ambient occlusion brightness XYPP */
public int aoBrightnessXYPP;
/** Ambient occlusion brightness YZPP */
public int aoBrightnessYZPP;
/** Ambient occlusion brightness XYZPPP */
public int aoBrightnessXYZPPP;
/** Ambient occlusion brightness XZNN */
public int aoBrightnessXZNN;
/** Ambient occlusion brightness XZPN */
public int aoBrightnessXZPN;
/** Ambient occlusion brightness XZNP */
public int aoBrightnessXZNP;
/** Ambient occlusion brightness XZPP */
public int aoBrightnessXZPP;
/** Ambient occlusion type (0=simple, 1=complex) */
public int aoType = 1;
/** Brightness top left */
public int brightnessTopLeft;
/** Brightness bottom left */
public int brightnessBottomLeft;
/** Brightness bottom right */
public int brightnessBottomRight;
/** Brightness top right */
public int brightnessTopRight;
/** Red color value for the top left corner */
public float colorRedTopLeft;
/** Red color value for the bottom left corner */
public float colorRedBottomLeft;
/** Red color value for the bottom right corner */
public float colorRedBottomRight;
/** Red color value for the top right corner */
public float colorRedTopRight;
/** Green color value for the top left corner */
public float colorGreenTopLeft;
/** Green color value for the bottom left corner */
public float colorGreenBottomLeft;
/** Green color value for the bottom right corner */
public float colorGreenBottomRight;
/** Green color value for the top right corner */
public float colorGreenTopRight;
/** Blue color value for the top left corner */
public float colorBlueTopLeft;
/** Blue color value for the bottom left corner */
public float colorBlueBottomLeft;
/** Blue color value for the bottom right corner */
public float colorBlueBottomRight;
/** Blue color value for the top right corner */
public float colorBlueTopRight;
/**
* Grass flag for ambient occlusion on Center X, Positive Y, and Negative Z
*/
public boolean aoGrassXYZCPN;
/**
* Grass flag for ambient occlusion on Positive X, Positive Y, and Center Z
*/
public boolean aoGrassXYZPPC;
/**
* Grass flag for ambient occlusion on Negative X, Positive Y, and Center Z
*/
public boolean aoGrassXYZNPC;
/**
* Grass flag for ambient occlusion on Center X, Positive Y, and Positive Z
*/
public boolean aoGrassXYZCPP;
/**
* Grass flag for ambient occlusion on Negative X, Center Y, and Negative Z
*/
public boolean aoGrassXYZNCN;
/**
* Grass flag for ambient occlusion on Positive X, Center Y, and Positive Z
*/
public boolean aoGrassXYZPCP;
/**
* Grass flag for ambient occlusion on Negative X, Center Y, and Positive Z
*/
public boolean aoGrassXYZNCP;
/**
* Grass flag for ambient occlusion on Positive X, Center Y, and Negative Z
*/
public boolean aoGrassXYZPCN;
/**
* Grass flag for ambient occlusion on Center X, Negative Y, and Negative Z
*/
public boolean aoGrassXYZCNN;
/**
* Grass flag for ambient occlusion on Positive X, Negative Y, and Center Z
*/
public boolean aoGrassXYZPNC;
/**
* Grass flag for ambient occlusion on Negative X, Negative Y, and center Z
*/
public boolean aoGrassXYZNNC;
/**
* Grass flag for ambient occlusion on Center X, Negative Y, and Positive Z
*/
public boolean aoGrassXYZCNP;
public RenderBlocks(IBlockAccess par1IBlockAccess)
{
this.blockAccess = par1IBlockAccess;
}
public RenderBlocks() {}
/**
* Sets overrideBlockTexture
*/
public void setOverrideBlockTexture(int par1)
{
this.overrideBlockTexture = par1;
}
/**
* Clear override block texture
*/
public void clearOverrideBlockTexture()
{
this.overrideBlockTexture = -1;
}
/**
* Sets the bounding box for the block to draw in, e.g. 0.25-0.75 on all axes for a half-size, centered block.
*/
public void setRenderBounds(double par1, double par3, double par5, double par7, double par9, double par11)
{
if (!this.lockBlockBounds)
{
this.renderMinX = par1;
this.renderMaxX = par7;
this.renderMinY = par3;
this.renderMaxY = par9;
this.renderMinZ = par5;
this.renderMaxZ = par11;
}
}
/**
* Like setRenderBounds, but automatically pulling the bounds from the given Block.
*/
public void setRenderBoundsFromBlock(Block par1Block)
{
if (!this.lockBlockBounds)
{
this.renderMinX = par1Block.getBlockBoundsMinX();
this.renderMaxX = par1Block.getBlockBoundsMaxX();
this.renderMinY = par1Block.getBlockBoundsMinY();
this.renderMaxY = par1Block.getBlockBoundsMaxY();
this.renderMinZ = par1Block.getBlockBoundsMinZ();
this.renderMaxZ = par1Block.getBlockBoundsMaxZ();
}
}
/**
* Like setRenderBounds, but locks the values so that RenderBlocks won't change them. If you use this, you must
* call unlockBlockBounds after you finish rendering!
*/
public void overrideBlockBounds(double par1, double par3, double par5, double par7, double par9, double par11)
{
this.renderMinX = par1;
this.renderMaxX = par7;
this.renderMinY = par3;
this.renderMaxY = par9;
this.renderMinZ = par5;
this.renderMaxZ = par11;
this.lockBlockBounds = true;
}
/**
* Unlocks the visual bounding box so that RenderBlocks can change it again.
*/
public void unlockBlockBounds()
{
this.lockBlockBounds = false;
}
/**
* Renders a block using the given texture instead of the block's own default texture
*/
public void renderBlockUsingTexture(Block par1Block, int par2, int par3, int par4, int par5)
{
this.overrideBlockTexture = par5;
this.renderBlockByRenderType(par1Block, par2, par3, par4);
this.overrideBlockTexture = -1;
}
/**
* Render all faces of a block
*/
public void renderBlockAllFaces(Block par1Block, int par2, int par3, int par4)
{
this.renderAllFaces = true;
this.renderBlockByRenderType(par1Block, par2, par3, par4);
this.renderAllFaces = false;
}
/**
* Renders the block at the given coordinates using the block's rendering type
*/
public boolean renderBlockByRenderType(Block par1Block, int par2, int par3, int par4)
{
int var5 = par1Block.getRenderType();
par1Block.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4);
this.setRenderBoundsFromBlock(par1Block);
switch (var5)
{
case 0:
return this.renderStandardBlock(par1Block, par2, par3, par4);
case 31:
return this.renderBlockLog(par1Block, par2, par3, par4);
case 4:
return this.renderBlockFluids(par1Block, par2, par3, par4);
case 13:
return this.renderBlockCactus(par1Block, par2, par3, par4);
case 1:
return this.renderCrossedSquares(par1Block, par2, par3, par4);
case 19:
return this.renderBlockStem(par1Block, par2, par3, par4);
case 23:
return this.renderBlockLilyPad(par1Block, par2, par3, par4);
case 6:
return this.renderBlockCrops(par1Block, par2, par3, par4);
case 2:
return this.renderBlockTorch(par1Block, par2, par3, par4);
case 3:
return this.renderBlockFire(par1Block, par2, par3, par4);
case 5:
return this.renderBlockRedstoneWire(par1Block, par2, par3, par4);
case 8:
return this.renderBlockLadder(par1Block, par2, par3, par4);
case 7:
return this.renderBlockDoor(par1Block, par2, par3, par4);
case 9:
return this.renderBlockMinecartTrack((BlockRail)par1Block, par2, par3, par4);
case 10:
return this.renderBlockStairs((BlockStairs)par1Block, par2, par3, par4);
case 27:
return this.renderBlockDragonEgg((BlockDragonEgg)par1Block, par2, par3, par4);
case 11:
return this.renderBlockFence((BlockFence)par1Block, par2, par3, par4);
case 32:
return this.renderBlockWall((BlockWall)par1Block, par2, par3, par4);
case 12:
return this.renderBlockLever(par1Block, par2, par3, par4);
case 29:
return this.renderBlockTripWireSource(par1Block, par2, par3, par4);
case 30:
return this.renderBlockTripWire(par1Block, par2, par3, par4);
case 14:
return this.renderBlockBed(par1Block, par2, par3, par4);
case 15:
return this.renderBlockRepeater(par1Block, par2, par3, par4);
case 16:
return this.renderPistonBase(par1Block, par2, par3, par4, false);
case 17:
return this.renderPistonExtension(par1Block, par2, par3, par4, true);
case 18:
return this.renderBlockPane((BlockPane)par1Block, par2, par3, par4);
case 20:
return this.renderBlockVine(par1Block, par2, par3, par4);
case 21:
return this.renderBlockFenceGate((BlockFenceGate)par1Block, par2, par3, par4);
case 24:
return this.renderBlockCauldron((BlockCauldron)par1Block, par2, par3, par4);
case 33:
return this.renderBlockFlowerpot((BlockFlowerPot)par1Block, par2, par3, par4);
case 35:
return this.renderBlockAnvil((BlockAnvil)par1Block, par2, par3, par4);
case 25:
return this.renderBlockBrewingStand((BlockBrewingStand)par1Block, par2, par3, par4);
case 26:
return this.renderBlockEndPortalFrame(par1Block, par2, par3, par4);
case 28:
return this.renderBlockCocoa((BlockCocoa)par1Block, par2, par3, par4);
case 34:
return this.renderBlockBeacon((BlockBeacon)par1Block, par2, par3, par4);
default:
return FMLRenderAccessLibrary.renderWorldBlock(this, blockAccess, par2, par3, par4, par1Block, var5);
}
}
/**
* Render BlockEndPortalFrame
*/
public boolean renderBlockEndPortalFrame(Block par1Block, int par2, int par3, int par4)
{
int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var6 = var5 & 3;
if (var6 == 0)
{
this.uvRotateTop = 3;
}
else if (var6 == 3)
{
this.uvRotateTop = 1;
}
else if (var6 == 1)
{
this.uvRotateTop = 2;
}
if (!BlockEndPortalFrame.isEnderEyeInserted(var5))
{
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 0.8125D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
this.uvRotateTop = 0;
return true;
}
else
{
this.renderAllFaces = true;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 0.8125D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
this.overrideBlockTexture = 174;
this.setRenderBounds(0.25D, 0.8125D, 0.25D, 0.75D, 1.0D, 0.75D);
this.renderStandardBlock(par1Block, par2, par3, par4);
this.renderAllFaces = false;
this.clearOverrideBlockTexture();
this.uvRotateTop = 0;
return true;
}
}
/**
* render a bed at the given coordinates
*/
public boolean renderBlockBed(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var7 = par1Block.getBedDirection(blockAccess, par2, par3, par4);
boolean var8 = par1Block.isBedFoot(blockAccess, par2, par3, par4);
float var9 = 0.5F;
float var10 = 1.0F;
float var11 = 0.8F;
float var12 = 0.6F;
int var25 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4);
var5.setBrightness(var25);
var5.setColorOpaque_F(var9, var9, var9);
int var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0);
if (overrideBlockTexture >= 0) var27 = overrideBlockTexture; //BugFix Proper breaking texture on underside
int var28 = (var27 & 15) << 4;
int var29 = var27 & 240;
double var30 = (double)((float)var28 / 256.0F);
double var32 = ((double)(var28 + 16) - 0.01D) / 256.0D;
double var34 = (double)((float)var29 / 256.0F);
double var36 = ((double)(var29 + 16) - 0.01D) / 256.0D;
double var38 = (double)par2 + this.renderMinX;
double var40 = (double)par2 + this.renderMaxX;
double var42 = (double)par3 + this.renderMinY + 0.1875D;
double var44 = (double)par4 + this.renderMinZ;
double var46 = (double)par4 + this.renderMaxZ;
var5.addVertexWithUV(var38, var42, var46, var30, var36);
var5.addVertexWithUV(var38, var42, var44, var30, var34);
var5.addVertexWithUV(var40, var42, var44, var32, var34);
var5.addVertexWithUV(var40, var42, var46, var32, var36);
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
var5.setColorOpaque_F(var10, var10, var10);
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1);
if (overrideBlockTexture >= 0) var27 = overrideBlockTexture; //BugFix Proper breaking texture on top
var28 = (var27 & 15) << 4;
var29 = var27 & 240;
var30 = (double)((float)var28 / 256.0F);
var32 = ((double)(var28 + 16) - 0.01D) / 256.0D;
var34 = (double)((float)var29 / 256.0F);
var36 = ((double)(var29 + 16) - 0.01D) / 256.0D;
var38 = var30;
var40 = var32;
var42 = var34;
var44 = var34;
var46 = var30;
double var48 = var32;
double var50 = var36;
double var52 = var36;
if (var7 == 0)
{
var40 = var30;
var42 = var36;
var46 = var32;
var52 = var34;
}
else if (var7 == 2)
{
var38 = var32;
var44 = var36;
var48 = var30;
var50 = var34;
}
else if (var7 == 3)
{
var38 = var32;
var44 = var36;
var48 = var30;
var50 = var34;
var40 = var30;
var42 = var36;
var46 = var32;
var52 = var34;
}
double var54 = (double)par2 + this.renderMinX;
double var56 = (double)par2 + this.renderMaxX;
double var58 = (double)par3 + this.renderMaxY;
double var60 = (double)par4 + this.renderMinZ;
double var62 = (double)par4 + this.renderMaxZ;
var5.addVertexWithUV(var56, var58, var62, var46, var50);
var5.addVertexWithUV(var56, var58, var60, var38, var42);
var5.addVertexWithUV(var54, var58, var60, var40, var44);
var5.addVertexWithUV(var54, var58, var62, var48, var52);
int var64 = Direction.headInvisibleFace[var7];
if (var8)
{
var64 = Direction.headInvisibleFace[Direction.footInvisibleFaceRemap[var7]];
}
byte var65 = 4;
switch (var7)
{
case 0:
var65 = 5;
break;
case 1:
var65 = 3;
case 2:
default:
break;
case 3:
var65 = 2;
}
if (var64 != 2 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2)))
{
var5.setBrightness(this.renderMinZ > 0.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1));
var5.setColorOpaque_F(var11, var11, var11);
this.flipTexture = var65 == 2;
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2));
}
if (var64 != 3 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3)))
{
var5.setBrightness(this.renderMaxZ < 1.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1));
var5.setColorOpaque_F(var11, var11, var11);
this.flipTexture = var65 == 3;
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3));
}
if (var64 != 4 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4)))
{
var5.setBrightness(this.renderMinZ > 0.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4));
var5.setColorOpaque_F(var12, var12, var12);
this.flipTexture = var65 == 4;
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4));
}
if (var64 != 5 && (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5)))
{
var5.setBrightness(this.renderMaxZ < 1.0D ? var25 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4));
var5.setColorOpaque_F(var12, var12, var12);
this.flipTexture = var65 == 5;
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5));
}
this.flipTexture = false;
return true;
}
/**
* Render BlockBrewingStand
*/
public boolean renderBlockBrewingStand(BlockBrewingStand par1BlockBrewingStand, int par2, int par3, int par4)
{
this.setRenderBounds(0.4375D, 0.0D, 0.4375D, 0.5625D, 0.875D, 0.5625D);
this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4);
this.overrideBlockTexture = 156;
this.setRenderBounds(0.5625D, 0.0D, 0.3125D, 0.9375D, 0.125D, 0.6875D);
this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4);
this.setRenderBounds(0.125D, 0.0D, 0.0625D, 0.5D, 0.125D, 0.4375D);
this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4);
this.setRenderBounds(0.125D, 0.0D, 0.5625D, 0.5D, 0.125D, 0.9375D);
this.renderStandardBlock(par1BlockBrewingStand, par2, par3, par4);
this.clearOverrideBlockTexture();
Tessellator var5 = Tessellator.instance;
var5.setBrightness(par1BlockBrewingStand.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var6 = 1.0F;
int var7 = par1BlockBrewingStand.colorMultiplier(this.blockAccess, par2, par3, par4);
float var8 = (float)(var7 >> 16 & 255) / 255.0F;
float var9 = (float)(var7 >> 8 & 255) / 255.0F;
float var10 = (float)(var7 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F;
float var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F;
float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F;
var8 = var11;
var9 = var12;
var10 = var13;
}
var5.setColorOpaque_F(var6 * var8, var6 * var9, var6 * var10);
int var34 = par1BlockBrewingStand.getBlockTextureFromSideAndMetadata(0, 0);
if (this.overrideBlockTexture >= 0)
{
var34 = this.overrideBlockTexture;
}
int var35 = (var34 & 15) << 4;
int var36 = var34 & 240;
double var14 = (double)((float)var36 / 256.0F);
double var16 = (double)(((float)var36 + 15.99F) / 256.0F);
int var18 = this.blockAccess.getBlockMetadata(par2, par3, par4);
for (int var19 = 0; var19 < 3; ++var19)
{
double var20 = (double)var19 * Math.PI * 2.0D / 3.0D + (Math.PI / 2D);
double var22 = (double)(((float)var35 + 8.0F) / 256.0F);
double var24 = (double)(((float)var35 + 15.99F) / 256.0F);
if ((var18 & 1 << var19) != 0)
{
var22 = (double)(((float)var35 + 7.99F) / 256.0F);
var24 = (double)(((float)var35 + 0.0F) / 256.0F);
}
double var26 = (double)par2 + 0.5D;
double var28 = (double)par2 + 0.5D + Math.sin(var20) * 8.0D / 16.0D;
double var30 = (double)par4 + 0.5D;
double var32 = (double)par4 + 0.5D + Math.cos(var20) * 8.0D / 16.0D;
var5.addVertexWithUV(var26, (double)(par3 + 1), var30, var22, var14);
var5.addVertexWithUV(var26, (double)(par3 + 0), var30, var22, var16);
var5.addVertexWithUV(var28, (double)(par3 + 0), var32, var24, var16);
var5.addVertexWithUV(var28, (double)(par3 + 1), var32, var24, var14);
var5.addVertexWithUV(var28, (double)(par3 + 1), var32, var24, var14);
var5.addVertexWithUV(var28, (double)(par3 + 0), var32, var24, var16);
var5.addVertexWithUV(var26, (double)(par3 + 0), var30, var22, var16);
var5.addVertexWithUV(var26, (double)(par3 + 1), var30, var22, var14);
}
par1BlockBrewingStand.setBlockBoundsForItemRender();
return true;
}
/**
* Render block cauldron
*/
public boolean renderBlockCauldron(BlockCauldron par1BlockCauldron, int par2, int par3, int par4)
{
this.renderStandardBlock(par1BlockCauldron, par2, par3, par4);
Tessellator var5 = Tessellator.instance;
var5.setBrightness(par1BlockCauldron.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var6 = 1.0F;
int var7 = par1BlockCauldron.colorMultiplier(this.blockAccess, par2, par3, par4);
float var8 = (float)(var7 >> 16 & 255) / 255.0F;
float var9 = (float)(var7 >> 8 & 255) / 255.0F;
float var10 = (float)(var7 & 255) / 255.0F;
float var12;
if (EntityRenderer.anaglyphEnable)
{
float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F;
var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F;
float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F;
var8 = var11;
var9 = var12;
var10 = var13;
}
var5.setColorOpaque_F(var6 * var8, var6 * var9, var6 * var10);
short var16 = 154;
var12 = 0.125F;
this.renderSouthFace(par1BlockCauldron, (double)((float)par2 - 1.0F + var12), (double)par3, (double)par4, var16);
this.renderNorthFace(par1BlockCauldron, (double)((float)par2 + 1.0F - var12), (double)par3, (double)par4, var16);
this.renderWestFace(par1BlockCauldron, (double)par2, (double)par3, (double)((float)par4 - 1.0F + var12), var16);
this.renderEastFace(par1BlockCauldron, (double)par2, (double)par3, (double)((float)par4 + 1.0F - var12), var16);
short var17 = 139;
this.renderTopFace(par1BlockCauldron, (double)par2, (double)((float)par3 - 1.0F + 0.25F), (double)par4, var17);
this.renderBottomFace(par1BlockCauldron, (double)par2, (double)((float)par3 + 1.0F - 0.75F), (double)par4, var17);
int var14 = this.blockAccess.getBlockMetadata(par2, par3, par4);
if (var14 > 0)
{
short var15 = 205;
if (var14 > 3)
{
var14 = 3;
}
this.renderTopFace(par1BlockCauldron, (double)par2, (double)((float)par3 - 1.0F + (6.0F + (float)var14 * 3.0F) / 16.0F), (double)par4, var15);
}
return true;
}
/**
* Renders flower pot
*/
public boolean renderBlockFlowerpot(BlockFlowerPot par1BlockFlowerPot, int par2, int par3, int par4)
{
this.renderStandardBlock(par1BlockFlowerPot, par2, par3, par4);
Tessellator var5 = Tessellator.instance;
var5.setBrightness(par1BlockFlowerPot.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var6 = 1.0F;
int var7 = par1BlockFlowerPot.colorMultiplier(this.blockAccess, par2, par3, par4);
int var8 = par1BlockFlowerPot.getBlockTextureFromSide(0);
float var9 = (float)(var7 >> 16 & 255) / 255.0F;
float var10 = (float)(var7 >> 8 & 255) / 255.0F;
float var11 = (float)(var7 & 255) / 255.0F;
float var12;
float var14;
if (EntityRenderer.anaglyphEnable)
{
var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F;
float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F;
var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F;
var9 = var12;
var10 = var13;
var11 = var14;
}
var5.setColorOpaque_F(var6 * var9, var6 * var10, var6 * var11);
var12 = 0.1865F;
this.renderSouthFace(par1BlockFlowerPot, (double)((float)par2 - 0.5F + var12), (double)par3, (double)par4, var8);
this.renderNorthFace(par1BlockFlowerPot, (double)((float)par2 + 0.5F - var12), (double)par3, (double)par4, var8);
this.renderWestFace(par1BlockFlowerPot, (double)par2, (double)par3, (double)((float)par4 - 0.5F + var12), var8);
this.renderEastFace(par1BlockFlowerPot, (double)par2, (double)par3, (double)((float)par4 + 0.5F - var12), var8);
this.renderTopFace(par1BlockFlowerPot, (double)par2, (double)((float)par3 - 0.5F + var12 + 0.1875F), (double)par4, Block.dirt.blockIndexInTexture);
int var19 = this.blockAccess.getBlockMetadata(par2, par3, par4);
if (var19 != 0)
{
var14 = 0.0F;
float var15 = 4.0F;
float var16 = 0.0F;
BlockFlower var17 = null;
switch (var19)
{
case 1:
var17 = Block.plantRed;
break;
case 2:
var17 = Block.plantYellow;
case 3:
case 4:
case 5:
case 6:
default:
break;
case 7:
var17 = Block.mushroomRed;
break;
case 8:
var17 = Block.mushroomBrown;
}
var5.addTranslation(var14 / 16.0F, var15 / 16.0F, var16 / 16.0F);
if (var17 != null)
{
this.renderBlockByRenderType(var17, par2, par3, par4);
}
else if (var19 == 9)
{
this.renderAllFaces = true;
float var18 = 0.125F;
this.setRenderBounds((double)(0.5F - var18), 0.0D, (double)(0.5F - var18), (double)(0.5F + var18), 0.25D, (double)(0.5F + var18));
this.renderStandardBlock(Block.cactus, par2, par3, par4);
this.setRenderBounds((double)(0.5F - var18), 0.25D, (double)(0.5F - var18), (double)(0.5F + var18), 0.5D, (double)(0.5F + var18));
this.renderStandardBlock(Block.cactus, par2, par3, par4);
this.setRenderBounds((double)(0.5F - var18), 0.5D, (double)(0.5F - var18), (double)(0.5F + var18), 0.75D, (double)(0.5F + var18));
this.renderStandardBlock(Block.cactus, par2, par3, par4);
this.renderAllFaces = false;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (var19 == 3)
{
this.drawCrossedSquares(Block.sapling, 0, (double)par2, (double)par3, (double)par4, 0.75F);
}
else if (var19 == 5)
{
this.drawCrossedSquares(Block.sapling, 2, (double)par2, (double)par3, (double)par4, 0.75F);
}
else if (var19 == 4)
{
this.drawCrossedSquares(Block.sapling, 1, (double)par2, (double)par3, (double)par4, 0.75F);
}
else if (var19 == 6)
{
this.drawCrossedSquares(Block.sapling, 3, (double)par2, (double)par3, (double)par4, 0.75F);
}
else if (var19 == 11)
{
var7 = Block.tallGrass.colorMultiplier(this.blockAccess, par2, par3, par4);
var9 = (float)(var7 >> 16 & 255) / 255.0F;
var10 = (float)(var7 >> 8 & 255) / 255.0F;
var11 = (float)(var7 & 255) / 255.0F;
var5.setColorOpaque_F(var6 * var9, var6 * var10, var6 * var11);
this.drawCrossedSquares(Block.tallGrass, 2, (double)par2, (double)par3, (double)par4, 0.75F);
}
else if (var19 == 10)
{
this.drawCrossedSquares(Block.deadBush, 2, (double)par2, (double)par3, (double)par4, 0.75F);
}
var5.addTranslation(-var14 / 16.0F, -var15 / 16.0F, -var16 / 16.0F);
}
return true;
}
/**
* Renders anvil
*/
public boolean renderBlockAnvil(BlockAnvil par1BlockAnvil, int par2, int par3, int par4)
{
return this.renderBlockAnvilMetadata(par1BlockAnvil, par2, par3, par4, this.blockAccess.getBlockMetadata(par2, par3, par4));
}
/**
* Renders anvil block with metadata
*/
public boolean renderBlockAnvilMetadata(BlockAnvil par1BlockAnvil, int par2, int par3, int par4, int par5)
{
Tessellator var6 = Tessellator.instance;
var6.setBrightness(par1BlockAnvil.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var7 = 1.0F;
int var8 = par1BlockAnvil.colorMultiplier(this.blockAccess, par2, par3, par4);
float var9 = (float)(var8 >> 16 & 255) / 255.0F;
float var10 = (float)(var8 >> 8 & 255) / 255.0F;
float var11 = (float)(var8 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F;
float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F;
float var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F;
var9 = var12;
var10 = var13;
var11 = var14;
}
var6.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11);
return this.renderBlockAnvilOrient(par1BlockAnvil, par2, par3, par4, par5, false);
}
/**
* Renders anvil block with orientation
*/
public boolean renderBlockAnvilOrient(BlockAnvil par1BlockAnvil, int par2, int par3, int par4, int par5, boolean par6)
{
int var7 = par6 ? 0 : par5 & 3;
boolean var8 = false;
float var9 = 0.0F;
switch (var7)
{
case 0:
this.uvRotateSouth = 2;
this.uvRotateNorth = 1;
this.uvRotateTop = 3;
this.uvRotateBottom = 3;
break;
case 1:
this.uvRotateEast = 1;
this.uvRotateWest = 2;
this.uvRotateTop = 2;
this.uvRotateBottom = 1;
var8 = true;
break;
case 2:
this.uvRotateSouth = 1;
this.uvRotateNorth = 2;
break;
case 3:
this.uvRotateEast = 2;
this.uvRotateWest = 1;
this.uvRotateTop = 1;
this.uvRotateBottom = 2;
var8 = true;
}
var9 = this.renderBlockAnvilRotate(par1BlockAnvil, par2, par3, par4, 0, var9, 0.75F, 0.25F, 0.75F, var8, par6, par5);
var9 = this.renderBlockAnvilRotate(par1BlockAnvil, par2, par3, par4, 1, var9, 0.5F, 0.0625F, 0.625F, var8, par6, par5);
var9 = this.renderBlockAnvilRotate(par1BlockAnvil, par2, par3, par4, 2, var9, 0.25F, 0.3125F, 0.5F, var8, par6, par5);
this.renderBlockAnvilRotate(par1BlockAnvil, par2, par3, par4, 3, var9, 0.625F, 0.375F, 1.0F, var8, par6, par5);
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
this.uvRotateEast = 0;
this.uvRotateWest = 0;
this.uvRotateSouth = 0;
this.uvRotateNorth = 0;
this.uvRotateTop = 0;
this.uvRotateBottom = 0;
return true;
}
/**
* Renders anvil block with rotation
*/
public float renderBlockAnvilRotate(BlockAnvil par1BlockAnvil, int par2, int par3, int par4, int par5, float par6, float par7, float par8, float par9, boolean par10, boolean par11, int par12)
{
if (par10)
{
float var13 = par7;
par7 = par9;
par9 = var13;
}
par7 /= 2.0F;
par9 /= 2.0F;
par1BlockAnvil.field_82521_b = par5;
this.setRenderBounds((double)(0.5F - par7), (double)par6, (double)(0.5F - par9), (double)(0.5F + par7), (double)(par6 + par8), (double)(0.5F + par9));
if (par11)
{
Tessellator var14 = Tessellator.instance;
var14.startDrawingQuads();
var14.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(0, par12));
var14.draw();
var14.startDrawingQuads();
var14.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(1, par12));
var14.draw();
var14.startDrawingQuads();
var14.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(2, par12));
var14.draw();
var14.startDrawingQuads();
var14.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(3, par12));
var14.draw();
var14.startDrawingQuads();
var14.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(4, par12));
var14.draw();
var14.startDrawingQuads();
var14.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1BlockAnvil, 0.0D, 0.0D, 0.0D, par1BlockAnvil.getBlockTextureFromSideAndMetadata(5, par12));
var14.draw();
}
else
{
this.renderStandardBlock(par1BlockAnvil, par2, par3, par4);
}
return par6 + par8;
}
/**
* Renders a torch block at the given coordinates
*/
public boolean renderBlockTorch(Block par1Block, int par2, int par3, int par4)
{
int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4);
Tessellator var6 = Tessellator.instance;
var6.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
var6.setColorOpaque_F(1.0F, 1.0F, 1.0F);
double var7 = 0.4000000059604645D;
double var9 = 0.5D - var7;
double var11 = 0.20000000298023224D;
if (var5 == 1)
{
this.renderTorchAtAngle(par1Block, (double)par2 - var9, (double)par3 + var11, (double)par4, -var7, 0.0D);
}
else if (var5 == 2)
{
this.renderTorchAtAngle(par1Block, (double)par2 + var9, (double)par3 + var11, (double)par4, var7, 0.0D);
}
else if (var5 == 3)
{
this.renderTorchAtAngle(par1Block, (double)par2, (double)par3 + var11, (double)par4 - var9, 0.0D, -var7);
}
else if (var5 == 4)
{
this.renderTorchAtAngle(par1Block, (double)par2, (double)par3 + var11, (double)par4 + var9, 0.0D, var7);
}
else
{
this.renderTorchAtAngle(par1Block, (double)par2, (double)par3, (double)par4, 0.0D, 0.0D);
}
return true;
}
/**
* render a redstone repeater at the given coordinates
*/
public boolean renderBlockRepeater(Block par1Block, int par2, int par3, int par4)
{
int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var6 = var5 & 3;
int var7 = (var5 & 12) >> 2;
this.renderStandardBlock(par1Block, par2, par3, par4);
Tessellator var8 = Tessellator.instance;
var8.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
var8.setColorOpaque_F(1.0F, 1.0F, 1.0F);
double var9 = -0.1875D;
boolean var11 = ((BlockRedstoneRepeater)par1Block).func_82523_e(this.blockAccess, par2, par3, par4, var5);
double var12 = 0.0D;
double var14 = 0.0D;
double var16 = 0.0D;
double var18 = 0.0D;
switch (var6)
{
case 0:
var18 = -0.3125D;
var14 = BlockRedstoneRepeater.repeaterTorchOffset[var7];
break;
case 1:
var16 = 0.3125D;
var12 = -BlockRedstoneRepeater.repeaterTorchOffset[var7];
break;
case 2:
var18 = 0.3125D;
var14 = -BlockRedstoneRepeater.repeaterTorchOffset[var7];
break;
case 3:
var16 = -0.3125D;
var12 = BlockRedstoneRepeater.repeaterTorchOffset[var7];
}
if (!var11)
{
this.renderTorchAtAngle(par1Block, (double)par2 + var12, (double)par3 + var9, (double)par4 + var14, 0.0D, 0.0D);
}
else
{
this.setOverrideBlockTexture(17);
byte var20 = 16;
byte var21 = 16;
float var22 = 2.0F;
float var23 = 14.0F;
float var24 = 7.0F;
float var25 = 9.0F;
switch (var6)
{
case 1:
case 3:
var22 = 7.0F;
var23 = 9.0F;
var24 = 2.0F;
var25 = 14.0F;
case 0:
case 2:
default:
this.setRenderBounds((double)(var22 / 16.0F + (float)var12), 0.125D, (double)(var24 / 16.0F + (float)var14), (double)(var23 / 16.0F + (float)var12), 0.25D, (double)(var25 / 16.0F + (float)var14));
var8.addVertexWithUV((double)((float)par2 + var22 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var24 / 16.0F) + var14, (double)(((float)var20 + var22) / 256.0F), (double)(((float)var21 + var24) / 256.0F));
var8.addVertexWithUV((double)((float)par2 + var22 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var25 / 16.0F) + var14, (double)(((float)var20 + var22) / 256.0F), (double)(((float)var21 + var25) / 256.0F));
var8.addVertexWithUV((double)((float)par2 + var23 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var25 / 16.0F) + var14, (double)(((float)var20 + var23) / 256.0F), (double)(((float)var21 + var25) / 256.0F));
var8.addVertexWithUV((double)((float)par2 + var23 / 16.0F) + var12, (double)((float)par3 + 0.25F), (double)((float)par4 + var24 / 16.0F) + var14, (double)(((float)var20 + var23) / 256.0F), (double)(((float)var21 + var24) / 256.0F));
this.renderStandardBlock(par1Block, par2, par3, par4);
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 0.125D, 1.0D);
this.clearOverrideBlockTexture();
}
}
var8.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
var8.setColorOpaque_F(1.0F, 1.0F, 1.0F);
this.renderTorchAtAngle(par1Block, (double)par2 + var16, (double)par3 + var9, (double)par4 + var18, 0.0D, 0.0D);
int var51 = par1Block.getBlockTextureFromSide(1);
int var53 = (var51 & 15) << 4;
int var52 = var51 & 240;
double var55 = (double)((float)var53 / 256.0F);
double var54 = (double)(((float)var53 + 15.99F) / 256.0F);
double var27 = (double)((float)var52 / 256.0F);
double var29 = (double)(((float)var52 + 15.99F) / 256.0F);
double var31 = 0.125D;
double var33 = (double)(par2 + 1);
double var35 = (double)(par2 + 1);
double var37 = (double)(par2 + 0);
double var39 = (double)(par2 + 0);
double var41 = (double)(par4 + 0);
double var43 = (double)(par4 + 1);
double var45 = (double)(par4 + 1);
double var47 = (double)(par4 + 0);
double var49 = (double)par3 + var31;
if (var6 == 2)
{
var33 = var35 = (double)(par2 + 0);
var37 = var39 = (double)(par2 + 1);
var41 = var47 = (double)(par4 + 1);
var43 = var45 = (double)(par4 + 0);
}
else if (var6 == 3)
{
var33 = var39 = (double)(par2 + 0);
var35 = var37 = (double)(par2 + 1);
var41 = var43 = (double)(par4 + 0);
var45 = var47 = (double)(par4 + 1);
}
else if (var6 == 1)
{
var33 = var39 = (double)(par2 + 1);
var35 = var37 = (double)(par2 + 0);
var41 = var43 = (double)(par4 + 1);
var45 = var47 = (double)(par4 + 0);
}
var8.addVertexWithUV(var39, var49, var47, var55, var27);
var8.addVertexWithUV(var37, var49, var45, var55, var29);
var8.addVertexWithUV(var35, var49, var43, var54, var29);
var8.addVertexWithUV(var33, var49, var41, var54, var27);
return true;
}
/**
* Render all faces of the piston base
*/
public void renderPistonBaseAllFaces(Block par1Block, int par2, int par3, int par4)
{
this.renderAllFaces = true;
this.renderPistonBase(par1Block, par2, par3, par4, true);
this.renderAllFaces = false;
}
/**
* renders a block as a piston base
*/
public boolean renderPistonBase(Block par1Block, int par2, int par3, int par4, boolean par5)
{
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
boolean var7 = par5 || (var6 & 8) != 0;
int var8 = BlockPistonBase.getOrientation(var6);
if (var7)
{
switch (var8)
{
case 0:
this.uvRotateEast = 3;
this.uvRotateWest = 3;
this.uvRotateSouth = 3;
this.uvRotateNorth = 3;
this.setRenderBounds(0.0D, 0.25D, 0.0D, 1.0D, 1.0D, 1.0D);
break;
case 1:
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 0.75D, 1.0D);
break;
case 2:
this.uvRotateSouth = 1;
this.uvRotateNorth = 2;
this.setRenderBounds(0.0D, 0.0D, 0.25D, 1.0D, 1.0D, 1.0D);
break;
case 3:
this.uvRotateSouth = 2;
this.uvRotateNorth = 1;
this.uvRotateTop = 3;
this.uvRotateBottom = 3;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.75D);
break;
case 4:
this.uvRotateEast = 1;
this.uvRotateWest = 2;
this.uvRotateTop = 2;
this.uvRotateBottom = 1;
this.setRenderBounds(0.25D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
break;
case 5:
this.uvRotateEast = 2;
this.uvRotateWest = 1;
this.uvRotateTop = 1;
this.uvRotateBottom = 2;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 0.75D, 1.0D, 1.0D);
}
this.renderStandardBlock(par1Block, par2, par3, par4);
this.uvRotateEast = 0;
this.uvRotateWest = 0;
this.uvRotateSouth = 0;
this.uvRotateNorth = 0;
this.uvRotateTop = 0;
this.uvRotateBottom = 0;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else
{
switch (var8)
{
case 0:
this.uvRotateEast = 3;
this.uvRotateWest = 3;
this.uvRotateSouth = 3;
this.uvRotateNorth = 3;
case 1:
default:
break;
case 2:
this.uvRotateSouth = 1;
this.uvRotateNorth = 2;
break;
case 3:
this.uvRotateSouth = 2;
this.uvRotateNorth = 1;
this.uvRotateTop = 3;
this.uvRotateBottom = 3;
break;
case 4:
this.uvRotateEast = 1;
this.uvRotateWest = 2;
this.uvRotateTop = 2;
this.uvRotateBottom = 1;
break;
case 5:
this.uvRotateEast = 2;
this.uvRotateWest = 1;
this.uvRotateTop = 1;
this.uvRotateBottom = 2;
}
this.renderStandardBlock(par1Block, par2, par3, par4);
this.uvRotateEast = 0;
this.uvRotateWest = 0;
this.uvRotateSouth = 0;
this.uvRotateNorth = 0;
this.uvRotateTop = 0;
this.uvRotateBottom = 0;
}
return true;
}
/**
* Render piston rod up/down
*/
public void renderPistonRodUD(double par1, double par3, double par5, double par7, double par9, double par11, float par13, double par14)
{
int var16 = 108;
if (this.overrideBlockTexture >= 0)
{
var16 = this.overrideBlockTexture;
}
int var17 = (var16 & 15) << 4;
int var18 = var16 & 240;
Tessellator var19 = Tessellator.instance;
double var20 = (double)((float)(var17 + 0) / 256.0F);
double var22 = (double)((float)(var18 + 0) / 256.0F);
double var24 = ((double)var17 + par14 - 0.01D) / 256.0D;
double var26 = ((double)((float)var18 + 4.0F) - 0.01D) / 256.0D;
var19.setColorOpaque_F(par13, par13, par13);
var19.addVertexWithUV(par1, par7, par9, var24, var22);
var19.addVertexWithUV(par1, par5, par9, var20, var22);
var19.addVertexWithUV(par3, par5, par11, var20, var26);
var19.addVertexWithUV(par3, par7, par11, var24, var26);
}
/**
* Render piston rod south/north
*/
public void renderPistonRodSN(double par1, double par3, double par5, double par7, double par9, double par11, float par13, double par14)
{
int var16 = 108;
if (this.overrideBlockTexture >= 0)
{
var16 = this.overrideBlockTexture;
}
int var17 = (var16 & 15) << 4;
int var18 = var16 & 240;
Tessellator var19 = Tessellator.instance;
double var20 = (double)((float)(var17 + 0) / 256.0F);
double var22 = (double)((float)(var18 + 0) / 256.0F);
double var24 = ((double)var17 + par14 - 0.01D) / 256.0D;
double var26 = ((double)((float)var18 + 4.0F) - 0.01D) / 256.0D;
var19.setColorOpaque_F(par13, par13, par13);
var19.addVertexWithUV(par1, par5, par11, var24, var22);
var19.addVertexWithUV(par1, par5, par9, var20, var22);
var19.addVertexWithUV(par3, par7, par9, var20, var26);
var19.addVertexWithUV(par3, par7, par11, var24, var26);
}
/**
* Render piston rod east/west
*/
public void renderPistonRodEW(double par1, double par3, double par5, double par7, double par9, double par11, float par13, double par14)
{
int var16 = 108;
if (this.overrideBlockTexture >= 0)
{
var16 = this.overrideBlockTexture;
}
int var17 = (var16 & 15) << 4;
int var18 = var16 & 240;
Tessellator var19 = Tessellator.instance;
double var20 = (double)((float)(var17 + 0) / 256.0F);
double var22 = (double)((float)(var18 + 0) / 256.0F);
double var24 = ((double)var17 + par14 - 0.01D) / 256.0D;
double var26 = ((double)((float)var18 + 4.0F) - 0.01D) / 256.0D;
var19.setColorOpaque_F(par13, par13, par13);
var19.addVertexWithUV(par3, par5, par9, var24, var22);
var19.addVertexWithUV(par1, par5, par9, var20, var22);
var19.addVertexWithUV(par1, par7, par11, var20, var26);
var19.addVertexWithUV(par3, par7, par11, var24, var26);
}
/**
* Render all faces of the piston extension
*/
public void renderPistonExtensionAllFaces(Block par1Block, int par2, int par3, int par4, boolean par5)
{
this.renderAllFaces = true;
this.renderPistonExtension(par1Block, par2, par3, par4, par5);
this.renderAllFaces = false;
}
/**
* renders the pushing part of a piston
*/
public boolean renderPistonExtension(Block par1Block, int par2, int par3, int par4, boolean par5)
{
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var7 = BlockPistonExtension.getDirectionMeta(var6);
float var11 = par1Block.getBlockBrightness(this.blockAccess, par2, par3, par4);
float var12 = par5 ? 1.0F : 0.5F;
double var13 = par5 ? 16.0D : 8.0D;
switch (var7)
{
case 0:
this.uvRotateEast = 3;
this.uvRotateWest = 3;
this.uvRotateSouth = 3;
this.uvRotateNorth = 3;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 0.25D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
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);
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);
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);
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);
break;
case 1:
this.setRenderBounds(0.0D, 0.75D, 0.0D, 1.0D, 1.0D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
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);
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);
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);
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);
break;
case 2:
this.uvRotateSouth = 1;
this.uvRotateNorth = 2;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.25D);
this.renderStandardBlock(par1Block, par2, par3, par4);
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);
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);
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);
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);
break;
case 3:
this.uvRotateSouth = 2;
this.uvRotateNorth = 1;
this.uvRotateTop = 3;
this.uvRotateBottom = 3;
this.setRenderBounds(0.0D, 0.0D, 0.75D, 1.0D, 1.0D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
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);
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);
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);
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);
break;
case 4:
this.uvRotateEast = 1;
this.uvRotateWest = 2;
this.uvRotateTop = 2;
this.uvRotateBottom = 1;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 0.25D, 1.0D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
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);
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);
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);
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);
break;
case 5:
this.uvRotateEast = 2;
this.uvRotateWest = 1;
this.uvRotateTop = 1;
this.uvRotateBottom = 2;
this.setRenderBounds(0.75D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
this.renderStandardBlock(par1Block, par2, par3, par4);
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);
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);
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);
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);
}
this.uvRotateEast = 0;
this.uvRotateWest = 0;
this.uvRotateSouth = 0;
this.uvRotateNorth = 0;
this.uvRotateTop = 0;
this.uvRotateBottom = 0;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
return true;
}
/**
* Renders a lever block at the given coordinates
*/
public boolean renderBlockLever(Block par1Block, int par2, int par3, int par4)
{
int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var6 = var5 & 7;
boolean var7 = (var5 & 8) > 0;
Tessellator var8 = Tessellator.instance;
boolean var9 = this.overrideBlockTexture >= 0;
if (!var9)
{
this.overrideBlockTexture = Block.cobblestone.blockIndexInTexture;
}
float var10 = 0.25F;
float var11 = 0.1875F;
float var12 = 0.1875F;
if (var6 == 5)
{
this.setRenderBounds((double)(0.5F - var11), 0.0D, (double)(0.5F - var10), (double)(0.5F + var11), (double)var12, (double)(0.5F + var10));
}
else if (var6 == 6)
{
this.setRenderBounds((double)(0.5F - var10), 0.0D, (double)(0.5F - var11), (double)(0.5F + var10), (double)var12, (double)(0.5F + var11));
}
else if (var6 == 4)
{
this.setRenderBounds((double)(0.5F - var11), (double)(0.5F - var10), (double)(1.0F - var12), (double)(0.5F + var11), (double)(0.5F + var10), 1.0D);
}
else if (var6 == 3)
{
this.setRenderBounds((double)(0.5F - var11), (double)(0.5F - var10), 0.0D, (double)(0.5F + var11), (double)(0.5F + var10), (double)var12);
}
else if (var6 == 2)
{
this.setRenderBounds((double)(1.0F - var12), (double)(0.5F - var10), (double)(0.5F - var11), 1.0D, (double)(0.5F + var10), (double)(0.5F + var11));
}
else if (var6 == 1)
{
this.setRenderBounds(0.0D, (double)(0.5F - var10), (double)(0.5F - var11), (double)var12, (double)(0.5F + var10), (double)(0.5F + var11));
}
else if (var6 == 0)
{
this.setRenderBounds((double)(0.5F - var10), (double)(1.0F - var12), (double)(0.5F - var11), (double)(0.5F + var10), 1.0D, (double)(0.5F + var11));
}
else if (var6 == 7)
{
this.setRenderBounds((double)(0.5F - var11), (double)(1.0F - var12), (double)(0.5F - var10), (double)(0.5F + var11), 1.0D, (double)(0.5F + var10));
}
this.renderStandardBlock(par1Block, par2, par3, par4);
if (!var9)
{
this.overrideBlockTexture = -1;
}
var8.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var13 = 1.0F;
if (Block.lightValue[par1Block.blockID] > 0)
{
var13 = 1.0F;
}
var8.setColorOpaque_F(var13, var13, var13);
int var14 = par1Block.getBlockTextureFromSide(0);
if (this.overrideBlockTexture >= 0)
{
var14 = this.overrideBlockTexture;
}
int var15 = (var14 & 15) << 4;
int var16 = var14 & 240;
float var17 = (float)var15 / 256.0F;
float var18 = ((float)var15 + 15.99F) / 256.0F;
float var19 = (float)var16 / 256.0F;
float var20 = ((float)var16 + 15.99F) / 256.0F;
Vec3[] var21 = new Vec3[8];
float var22 = 0.0625F;
float var23 = 0.0625F;
float var24 = 0.625F;
var21[0] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), 0.0D, (double)(-var23));
var21[1] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, 0.0D, (double)(-var23));
var21[2] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, 0.0D, (double)var23);
var21[3] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), 0.0D, (double)var23);
var21[4] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), (double)var24, (double)(-var23));
var21[5] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, (double)var24, (double)(-var23));
var21[6] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var22, (double)var24, (double)var23);
var21[7] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var22), (double)var24, (double)var23);
for (int var25 = 0; var25 < 8; ++var25)
{
if (var7)
{
var21[var25].zCoord -= 0.0625D;
var21[var25].rotateAroundX(((float)Math.PI * 2F / 9F));
}
else
{
var21[var25].zCoord += 0.0625D;
var21[var25].rotateAroundX(-((float)Math.PI * 2F / 9F));
}
if (var6 == 0 || var6 == 7)
{
var21[var25].rotateAroundZ((float)Math.PI);
}
if (var6 == 6 || var6 == 0)
{
var21[var25].rotateAroundY(((float)Math.PI / 2F));
}
if (var6 > 0 && var6 < 5)
{
var21[var25].yCoord -= 0.375D;
var21[var25].rotateAroundX(((float)Math.PI / 2F));
if (var6 == 4)
{
var21[var25].rotateAroundY(0.0F);
}
if (var6 == 3)
{
var21[var25].rotateAroundY((float)Math.PI);
}
if (var6 == 2)
{
var21[var25].rotateAroundY(((float)Math.PI / 2F));
}
if (var6 == 1)
{
var21[var25].rotateAroundY(-((float)Math.PI / 2F));
}
var21[var25].xCoord += (double)par2 + 0.5D;
var21[var25].yCoord += (double)((float)par3 + 0.5F);
var21[var25].zCoord += (double)par4 + 0.5D;
}
else if (var6 != 0 && var6 != 7)
{
var21[var25].xCoord += (double)par2 + 0.5D;
var21[var25].yCoord += (double)((float)par3 + 0.125F);
var21[var25].zCoord += (double)par4 + 0.5D;
}
else
{
var21[var25].xCoord += (double)par2 + 0.5D;
var21[var25].yCoord += (double)((float)par3 + 0.875F);
var21[var25].zCoord += (double)par4 + 0.5D;
}
}
Vec3 var30 = null;
Vec3 var26 = null;
Vec3 var27 = null;
Vec3 var28 = null;
for (int var29 = 0; var29 < 6; ++var29)
{
if (var29 == 0)
{
var17 = (float)(var15 + 7) / 256.0F;
var18 = ((float)(var15 + 9) - 0.01F) / 256.0F;
var19 = (float)(var16 + 6) / 256.0F;
var20 = ((float)(var16 + 8) - 0.01F) / 256.0F;
}
else if (var29 == 2)
{
var17 = (float)(var15 + 7) / 256.0F;
var18 = ((float)(var15 + 9) - 0.01F) / 256.0F;
var19 = (float)(var16 + 6) / 256.0F;
var20 = ((float)(var16 + 16) - 0.01F) / 256.0F;
}
if (var29 == 0)
{
var30 = var21[0];
var26 = var21[1];
var27 = var21[2];
var28 = var21[3];
}
else if (var29 == 1)
{
var30 = var21[7];
var26 = var21[6];
var27 = var21[5];
var28 = var21[4];
}
else if (var29 == 2)
{
var30 = var21[1];
var26 = var21[0];
var27 = var21[4];
var28 = var21[5];
}
else if (var29 == 3)
{
var30 = var21[2];
var26 = var21[1];
var27 = var21[5];
var28 = var21[6];
}
else if (var29 == 4)
{
var30 = var21[3];
var26 = var21[2];
var27 = var21[6];
var28 = var21[7];
}
else if (var29 == 5)
{
var30 = var21[0];
var26 = var21[3];
var27 = var21[7];
var28 = var21[4];
}
var8.addVertexWithUV(var30.xCoord, var30.yCoord, var30.zCoord, (double)var17, (double)var20);
var8.addVertexWithUV(var26.xCoord, var26.yCoord, var26.zCoord, (double)var18, (double)var20);
var8.addVertexWithUV(var27.xCoord, var27.yCoord, var27.zCoord, (double)var18, (double)var19);
var8.addVertexWithUV(var28.xCoord, var28.yCoord, var28.zCoord, (double)var17, (double)var19);
}
return true;
}
/**
* Renders a trip wire source block at the given coordinates
*/
public boolean renderBlockTripWireSource(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var7 = var6 & 3;
boolean var8 = (var6 & 4) == 4;
boolean var9 = (var6 & 8) == 8;
boolean var10 = !this.blockAccess.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4);
boolean var11 = this.overrideBlockTexture >= 0;
if (!var11)
{
this.overrideBlockTexture = Block.planks.blockIndexInTexture;
}
float var12 = 0.25F;
float var13 = 0.125F;
float var14 = 0.125F;
float var15 = 0.3F - var12;
float var16 = 0.3F + var12;
if (var7 == 2)
{
this.setRenderBounds((double)(0.5F - var13), (double)var15, (double)(1.0F - var14), (double)(0.5F + var13), (double)var16, 1.0D);
}
else if (var7 == 0)
{
this.setRenderBounds((double)(0.5F - var13), (double)var15, 0.0D, (double)(0.5F + var13), (double)var16, (double)var14);
}
else if (var7 == 1)
{
this.setRenderBounds((double)(1.0F - var14), (double)var15, (double)(0.5F - var13), 1.0D, (double)var16, (double)(0.5F + var13));
}
else if (var7 == 3)
{
this.setRenderBounds(0.0D, (double)var15, (double)(0.5F - var13), (double)var14, (double)var16, (double)(0.5F + var13));
}
this.renderStandardBlock(par1Block, par2, par3, par4);
if (!var11)
{
this.overrideBlockTexture = -1;
}
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var17 = 1.0F;
if (Block.lightValue[par1Block.blockID] > 0)
{
var17 = 1.0F;
}
var5.setColorOpaque_F(var17, var17, var17);
int var18 = par1Block.getBlockTextureFromSide(0);
if (this.overrideBlockTexture >= 0)
{
var18 = this.overrideBlockTexture;
}
int var19 = (var18 & 15) << 4;
int var20 = var18 & 240;
float var21 = (float)var19 / 256.0F;
float var22 = ((float)var19 + 15.99F) / 256.0F;
float var23 = (float)var20 / 256.0F;
float var24 = ((float)var20 + 15.99F) / 256.0F;
Vec3[] var25 = new Vec3[8];
float var26 = 0.046875F;
float var27 = 0.046875F;
float var28 = 0.3125F;
var25[0] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), 0.0D, (double)(-var27));
var25[1] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, 0.0D, (double)(-var27));
var25[2] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, 0.0D, (double)var27);
var25[3] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), 0.0D, (double)var27);
var25[4] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), (double)var28, (double)(-var27));
var25[5] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, (double)var28, (double)(-var27));
var25[6] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var26, (double)var28, (double)var27);
var25[7] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var26), (double)var28, (double)var27);
for (int var29 = 0; var29 < 8; ++var29)
{
var25[var29].zCoord += 0.0625D;
if (var9)
{
var25[var29].rotateAroundX(0.5235988F);
var25[var29].yCoord -= 0.4375D;
}
else if (var8)
{
var25[var29].rotateAroundX(0.08726647F);
var25[var29].yCoord -= 0.4375D;
}
else
{
var25[var29].rotateAroundX(-((float)Math.PI * 2F / 9F));
var25[var29].yCoord -= 0.375D;
}
var25[var29].rotateAroundX(((float)Math.PI / 2F));
if (var7 == 2)
{
var25[var29].rotateAroundY(0.0F);
}
if (var7 == 0)
{
var25[var29].rotateAroundY((float)Math.PI);
}
if (var7 == 1)
{
var25[var29].rotateAroundY(((float)Math.PI / 2F));
}
if (var7 == 3)
{
var25[var29].rotateAroundY(-((float)Math.PI / 2F));
}
var25[var29].xCoord += (double)par2 + 0.5D;
var25[var29].yCoord += (double)((float)par3 + 0.3125F);
var25[var29].zCoord += (double)par4 + 0.5D;
}
Vec3 var61 = null;
Vec3 var30 = null;
Vec3 var31 = null;
Vec3 var32 = null;
byte var33 = 7;
byte var34 = 9;
byte var35 = 9;
byte var36 = 16;
for (int var37 = 0; var37 < 6; ++var37)
{
if (var37 == 0)
{
var61 = var25[0];
var30 = var25[1];
var31 = var25[2];
var32 = var25[3];
var21 = (float)(var19 + var33) / 256.0F;
var22 = (float)(var19 + var34) / 256.0F;
var23 = (float)(var20 + var35) / 256.0F;
var24 = (float)(var20 + var35 + 2) / 256.0F;
}
else if (var37 == 1)
{
var61 = var25[7];
var30 = var25[6];
var31 = var25[5];
var32 = var25[4];
}
else if (var37 == 2)
{
var61 = var25[1];
var30 = var25[0];
var31 = var25[4];
var32 = var25[5];
var21 = (float)(var19 + var33) / 256.0F;
var22 = (float)(var19 + var34) / 256.0F;
var23 = (float)(var20 + var35) / 256.0F;
var24 = (float)(var20 + var36) / 256.0F;
}
else if (var37 == 3)
{
var61 = var25[2];
var30 = var25[1];
var31 = var25[5];
var32 = var25[6];
}
else if (var37 == 4)
{
var61 = var25[3];
var30 = var25[2];
var31 = var25[6];
var32 = var25[7];
}
else if (var37 == 5)
{
var61 = var25[0];
var30 = var25[3];
var31 = var25[7];
var32 = var25[4];
}
var5.addVertexWithUV(var61.xCoord, var61.yCoord, var61.zCoord, (double)var21, (double)var24);
var5.addVertexWithUV(var30.xCoord, var30.yCoord, var30.zCoord, (double)var22, (double)var24);
var5.addVertexWithUV(var31.xCoord, var31.yCoord, var31.zCoord, (double)var22, (double)var23);
var5.addVertexWithUV(var32.xCoord, var32.yCoord, var32.zCoord, (double)var21, (double)var23);
}
float var62 = 0.09375F;
float var38 = 0.09375F;
float var39 = 0.03125F;
var25[0] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), 0.0D, (double)(-var38));
var25[1] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, 0.0D, (double)(-var38));
var25[2] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, 0.0D, (double)var38);
var25[3] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), 0.0D, (double)var38);
var25[4] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), (double)var39, (double)(-var38));
var25[5] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, (double)var39, (double)(-var38));
var25[6] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)var62, (double)var39, (double)var38);
var25[7] = this.blockAccess.getWorldVec3Pool().getVecFromPool((double)(-var62), (double)var39, (double)var38);
for (int var40 = 0; var40 < 8; ++var40)
{
var25[var40].zCoord += 0.21875D;
if (var9)
{
var25[var40].yCoord -= 0.09375D;
var25[var40].zCoord -= 0.1625D;
var25[var40].rotateAroundX(0.0F);
}
else if (var8)
{
var25[var40].yCoord += 0.015625D;
var25[var40].zCoord -= 0.171875D;
var25[var40].rotateAroundX(0.17453294F);
}
else
{
var25[var40].rotateAroundX(0.87266463F);
}
if (var7 == 2)
{
var25[var40].rotateAroundY(0.0F);
}
if (var7 == 0)
{
var25[var40].rotateAroundY((float)Math.PI);
}
if (var7 == 1)
{
var25[var40].rotateAroundY(((float)Math.PI / 2F));
}
if (var7 == 3)
{
var25[var40].rotateAroundY(-((float)Math.PI / 2F));
}
var25[var40].xCoord += (double)par2 + 0.5D;
var25[var40].yCoord += (double)((float)par3 + 0.3125F);
var25[var40].zCoord += (double)par4 + 0.5D;
}
byte var63 = 5;
byte var41 = 11;
byte var42 = 3;
byte var43 = 9;
for (int var44 = 0; var44 < 6; ++var44)
{
if (var44 == 0)
{
var61 = var25[0];
var30 = var25[1];
var31 = var25[2];
var32 = var25[3];
var21 = (float)(var19 + var63) / 256.0F;
var22 = (float)(var19 + var41) / 256.0F;
var23 = (float)(var20 + var42) / 256.0F;
var24 = (float)(var20 + var43) / 256.0F;
}
else if (var44 == 1)
{
var61 = var25[7];
var30 = var25[6];
var31 = var25[5];
var32 = var25[4];
}
else if (var44 == 2)
{
var61 = var25[1];
var30 = var25[0];
var31 = var25[4];
var32 = var25[5];
var21 = (float)(var19 + var63) / 256.0F;
var22 = (float)(var19 + var41) / 256.0F;
var23 = (float)(var20 + var42) / 256.0F;
var24 = (float)(var20 + var42 + 2) / 256.0F;
}
else if (var44 == 3)
{
var61 = var25[2];
var30 = var25[1];
var31 = var25[5];
var32 = var25[6];
}
else if (var44 == 4)
{
var61 = var25[3];
var30 = var25[2];
var31 = var25[6];
var32 = var25[7];
}
else if (var44 == 5)
{
var61 = var25[0];
var30 = var25[3];
var31 = var25[7];
var32 = var25[4];
}
var5.addVertexWithUV(var61.xCoord, var61.yCoord, var61.zCoord, (double)var21, (double)var24);
var5.addVertexWithUV(var30.xCoord, var30.yCoord, var30.zCoord, (double)var22, (double)var24);
var5.addVertexWithUV(var31.xCoord, var31.yCoord, var31.zCoord, (double)var22, (double)var23);
var5.addVertexWithUV(var32.xCoord, var32.yCoord, var32.zCoord, (double)var21, (double)var23);
}
if (var8)
{
double var64 = var25[0].yCoord;
float var46 = 0.03125F;
float var47 = 0.5F - var46 / 2.0F;
float var48 = var47 + var46;
int var49 = (Block.tripWire.blockIndexInTexture & 15) << 4;
int var50 = Block.tripWire.blockIndexInTexture & 240;
double var51 = (double)((float)var49 / 256.0F);
double var53 = (double)((float)(var49 + 16) / 256.0F);
double var55 = (double)((float)(var50 + (var8 ? 2 : 0)) / 256.0F);
double var57 = (double)((float)(var50 + (var8 ? 4 : 2)) / 256.0F);
double var59 = (double)(var10 ? 3.5F : 1.5F) / 16.0D;
var17 = par1Block.getBlockBrightness(this.blockAccess, par2, par3, par4) * 0.75F;
var5.setColorOpaque_F(var17, var17, var17);
if (var7 == 2)
{
var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.25D, var51, var55);
var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.25D, var51, var57);
var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4, var53, var57);
var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4, var53, var55);
var5.addVertexWithUV((double)((float)par2 + var47), var64, (double)par4 + 0.5D, var51, var55);
var5.addVertexWithUV((double)((float)par2 + var48), var64, (double)par4 + 0.5D, var51, var57);
var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.25D, var53, var57);
var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.25D, var53, var55);
}
else if (var7 == 0)
{
var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.75D, var51, var55);
var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.75D, var51, var57);
var5.addVertexWithUV((double)((float)par2 + var48), var64, (double)par4 + 0.5D, var53, var57);
var5.addVertexWithUV((double)((float)par2 + var47), var64, (double)par4 + 0.5D, var53, var55);
var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)(par4 + 1), var51, var55);
var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)(par4 + 1), var51, var57);
var5.addVertexWithUV((double)((float)par2 + var48), (double)par3 + var59, (double)par4 + 0.75D, var53, var57);
var5.addVertexWithUV((double)((float)par2 + var47), (double)par3 + var59, (double)par4 + 0.75D, var53, var55);
}
else if (var7 == 1)
{
var5.addVertexWithUV((double)par2, (double)par3 + var59, (double)((float)par4 + var48), var51, var57);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var48), var53, var57);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var47), var53, var55);
var5.addVertexWithUV((double)par2, (double)par3 + var59, (double)((float)par4 + var47), var51, var55);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var48), var51, var57);
var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var48), var53, var57);
var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var47), var53, var55);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var59, (double)((float)par4 + var47), var51, var55);
}
else
{
var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var48), var51, var57);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var48), var53, var57);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var47), var53, var55);
var5.addVertexWithUV((double)par2 + 0.5D, var64, (double)((float)par4 + var47), var51, var55);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var48), var51, var57);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var59, (double)((float)par4 + var48), var53, var57);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var59, (double)((float)par4 + var47), var53, var55);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var59, (double)((float)par4 + var47), var51, var55);
}
}
return true;
}
/**
* Renders a trip wire block at the given coordinates
*/
public boolean renderBlockTripWire(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = par1Block.getBlockTextureFromSide(0);
int var7 = this.blockAccess.getBlockMetadata(par2, par3, par4);
boolean var8 = (var7 & 4) == 4;
boolean var9 = (var7 & 2) == 2;
if (this.overrideBlockTexture >= 0)
{
var6 = this.overrideBlockTexture;
}
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var10 = par1Block.getBlockBrightness(this.blockAccess, par2, par3, par4) * 0.75F;
var5.setColorOpaque_F(var10, var10, var10);
int var11 = (var6 & 15) << 4;
int var12 = var6 & 240;
double var13 = (double)((float)var11 / 256.0F);
double var15 = (double)((float)(var11 + 16) / 256.0F);
double var17 = (double)((float)(var12 + (var8 ? 2 : 0)) / 256.0F);
double var19 = (double)((float)(var12 + (var8 ? 4 : 2)) / 256.0F);
double var21 = (double)(var9 ? 3.5F : 1.5F) / 16.0D;
boolean var23 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 1);
boolean var24 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 3);
boolean var25 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 2);
boolean var26 = BlockTripWire.func_72148_a(this.blockAccess, par2, par3, par4, var7, 0);
float var27 = 0.03125F;
float var28 = 0.5F - var27 / 2.0F;
float var29 = var28 + var27;
if (!var25 && !var24 && !var26 && !var23)
{
var25 = true;
var26 = true;
}
if (var25)
{
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var13, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var13, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var13, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var13, var17);
}
if (var25 || var26 && !var24 && !var23)
{
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var13, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var13, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.25D, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.25D, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var13, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var13, var17);
}
if (var26 || var25 && !var24 && !var23)
{
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var13, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var13, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.5D, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.5D, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var13, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var13, var17);
}
if (var26)
{
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)(par4 + 1), var13, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)(par4 + 1), var13, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)par4 + 0.75D, var15, var17);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)par4 + 0.75D, var15, var19);
var5.addVertexWithUV((double)((float)par2 + var29), (double)par3 + var21, (double)(par4 + 1), var13, var19);
var5.addVertexWithUV((double)((float)par2 + var28), (double)par3 + var21, (double)(par4 + 1), var13, var17);
}
if (var23)
{
var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
}
if (var23 || var24 && !var25 && !var26)
{
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2 + 0.25D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
}
if (var24 || var23 && !var25 && !var26)
{
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2 + 0.5D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
}
if (var24)
{
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var28), var13, var17);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var28), var15, var17);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var21, (double)((float)par4 + var29), var15, var19);
var5.addVertexWithUV((double)par2 + 0.75D, (double)par3 + var21, (double)((float)par4 + var29), var13, var19);
}
return true;
}
/**
* Renders a fire block at the given coordinates
*/
public boolean renderBlockFire(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = par1Block.getBlockTextureFromSide(0);
if (this.overrideBlockTexture >= 0)
{
var6 = this.overrideBlockTexture;
}
var5.setColorOpaque_F(1.0F, 1.0F, 1.0F);
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
int var7 = (var6 & 15) << 4;
int var8 = var6 & 240;
double var9 = (double)((float)var7 / 256.0F);
double var11 = (double)(((float)var7 + 15.99F) / 256.0F);
double var13 = (double)((float)var8 / 256.0F);
double var15 = (double)(((float)var8 + 15.99F) / 256.0F);
float var17 = 1.4F;
double var20;
double var22;
double var24;
double var26;
double var28;
double var30;
double var32;
if (!this.blockAccess.doesBlockHaveSolidTopSurface(par2, par3 - 1, par4) && !Block.fire.canBlockCatchFire(this.blockAccess, par2, par3 - 1, par4, UP))
{
float var36 = 0.2F;
float var19 = 0.0625F;
if ((par2 + par3 + par4 & 1) == 1)
{
var9 = (double)((float)var7 / 256.0F);
var11 = (double)(((float)var7 + 15.99F) / 256.0F);
var13 = (double)((float)(var8 + 16) / 256.0F);
var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F);
}
if ((par2 / 2 + par3 / 2 + par4 / 2 & 1) == 1)
{
var20 = var11;
var11 = var9;
var9 = var20;
}
if (Block.fire.canBlockCatchFire(this.blockAccess, par2 - 1, par3, par4, EAST))
{
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV((double)((float)par2 + var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
}
if (Block.fire.canBlockCatchFire(this.blockAccess, par2 + 1, par3, par4, WEST))
{
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV((double)(par2 + 1 - 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV((double)((float)(par2 + 1) - var36), (double)((float)par3 + var17 + var19), (double)(par4 + 0), var9, var13);
}
if (Block.fire.canBlockCatchFire(this.blockAccess, par2, par3, par4 - 1, SOUTH))
{
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var9, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var9, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 0), var11, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)par4 + var36), var11, var13);
}
if (Block.fire.canBlockCatchFire(this.blockAccess, par2, par3, par4 + 1, NORTH))
{
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var11, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var11, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 0) + var19), (double)(par4 + 1 - 0), var9, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17 + var19), (double)((float)(par4 + 1) - var36), var9, var13);
}
if (Block.fire.canBlockCatchFire(this.blockAccess, par2, par3 + 1, par4, DOWN))
{
var20 = (double)par2 + 0.5D + 0.5D;
var22 = (double)par2 + 0.5D - 0.5D;
var24 = (double)par4 + 0.5D + 0.5D;
var26 = (double)par4 + 0.5D - 0.5D;
var28 = (double)par2 + 0.5D - 0.5D;
var30 = (double)par2 + 0.5D + 0.5D;
var32 = (double)par4 + 0.5D - 0.5D;
double var34 = (double)par4 + 0.5D + 0.5D;
var9 = (double)((float)var7 / 256.0F);
var11 = (double)(((float)var7 + 15.99F) / 256.0F);
var13 = (double)((float)var8 / 256.0F);
var15 = (double)(((float)var8 + 15.99F) / 256.0F);
++par3;
var17 = -0.2F;
if ((par2 + par3 + par4 & 1) == 0)
{
var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 0), var11, var13);
var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 0), var11, var15);
var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 1), var9, var15);
var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 1), var9, var13);
var9 = (double)((float)var7 / 256.0F);
var11 = (double)(((float)var7 + 15.99F) / 256.0F);
var13 = (double)((float)(var8 + 16) / 256.0F);
var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F);
var5.addVertexWithUV(var30, (double)((float)par3 + var17), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV(var22, (double)(par3 + 0), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV(var22, (double)(par3 + 0), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV(var30, (double)((float)par3 + var17), (double)(par4 + 0), var9, var13);
}
else
{
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var34, var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var26, var11, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var26, var9, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var34, var9, var13);
var9 = (double)((float)var7 / 256.0F);
var11 = (double)(((float)var7 + 15.99F) / 256.0F);
var13 = (double)((float)(var8 + 16) / 256.0F);
var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var32, var11, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var24, var11, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var24, var9, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var32, var9, var13);
}
}
}
else
{
double var18 = (double)par2 + 0.5D + 0.2D;
var20 = (double)par2 + 0.5D - 0.2D;
var22 = (double)par4 + 0.5D + 0.2D;
var24 = (double)par4 + 0.5D - 0.2D;
var26 = (double)par2 + 0.5D - 0.3D;
var28 = (double)par2 + 0.5D + 0.3D;
var30 = (double)par4 + 0.5D - 0.3D;
var32 = (double)par4 + 0.5D + 0.3D;
var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 0), var11, var13);
var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 0), var11, var15);
var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 1), var9, var15);
var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 1), var9, var13);
var9 = (double)((float)var7 / 256.0F);
var11 = (double)(((float)var7 + 15.99F) / 256.0F);
var13 = (double)((float)(var8 + 16) / 256.0F);
var15 = (double)(((float)var8 + 15.99F + 16.0F) / 256.0F);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var32, var11, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var24, var11, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var24, var9, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var32, var9, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var30, var11, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var22, var11, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var22, var9, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var30, var9, var13);
var18 = (double)par2 + 0.5D - 0.5D;
var20 = (double)par2 + 0.5D + 0.5D;
var22 = (double)par4 + 0.5D - 0.5D;
var24 = (double)par4 + 0.5D + 0.5D;
var26 = (double)par2 + 0.5D - 0.4D;
var28 = (double)par2 + 0.5D + 0.4D;
var30 = (double)par4 + 0.5D - 0.4D;
var32 = (double)par4 + 0.5D + 0.4D;
var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 0), var9, var13);
var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 0), var9, var15);
var5.addVertexWithUV(var18, (double)(par3 + 0), (double)(par4 + 1), var11, var15);
var5.addVertexWithUV(var26, (double)((float)par3 + var17), (double)(par4 + 1), var11, var13);
var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 1), var9, var13);
var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 1), var9, var15);
var5.addVertexWithUV(var20, (double)(par3 + 0), (double)(par4 + 0), var11, var15);
var5.addVertexWithUV(var28, (double)((float)par3 + var17), (double)(par4 + 0), var11, var13);
var9 = (double)((float)var7 / 256.0F);
var11 = (double)(((float)var7 + 15.99F) / 256.0F);
var13 = (double)((float)var8 / 256.0F);
var15 = (double)(((float)var8 + 15.99F) / 256.0F);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var32, var9, var13);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var24, var9, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var24, var11, var15);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var32, var11, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)par3 + var17), var30, var9, var13);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), var22, var9, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), var22, var11, var15);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)par3 + var17), var30, var11, var13);
}
return true;
}
/**
* Renders a redstone wire block at the given coordinates
*/
public boolean renderBlockRedstoneWire(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var7 = par1Block.getBlockTextureFromSideAndMetadata(1, var6);
if (this.overrideBlockTexture >= 0)
{
var7 = this.overrideBlockTexture;
}
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var8 = 1.0F;
float var9 = (float)var6 / 15.0F;
float var10 = var9 * 0.6F + 0.4F;
if (var6 == 0)
{
var10 = 0.3F;
}
float var11 = var9 * var9 * 0.7F - 0.5F;
float var12 = var9 * var9 * 0.6F - 0.7F;
if (var11 < 0.0F)
{
var11 = 0.0F;
}
if (var12 < 0.0F)
{
var12 = 0.0F;
}
var5.setColorOpaque_F(var10, var11, var12);
int var13 = (var7 & 15) << 4;
int var14 = var7 & 240;
double var15 = (double)((float)var13 / 256.0F);
double var17 = (double)(((float)var13 + 15.99F) / 256.0F);
double var19 = (double)((float)var14 / 256.0F);
double var21 = (double)(((float)var14 + 15.99F) / 256.0F);
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);
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);
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);
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);
if (!this.blockAccess.isBlockNormalCube(par2, par3 + 1, par4))
{
if (this.blockAccess.isBlockNormalCube(par2 - 1, par3, par4) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 - 1, par3 + 1, par4, -1))
{
var29 = true;
}
if (this.blockAccess.isBlockNormalCube(par2 + 1, par3, par4) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2 + 1, par3 + 1, par4, -1))
{
var30 = true;
}
if (this.blockAccess.isBlockNormalCube(par2, par3, par4 - 1) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3 + 1, par4 - 1, -1))
{
var31 = true;
}
if (this.blockAccess.isBlockNormalCube(par2, par3, par4 + 1) && BlockRedstoneWire.isPowerProviderOrWire(this.blockAccess, par2, par3 + 1, par4 + 1, -1))
{
var32 = true;
}
}
float var34 = (float)(par2 + 0);
float var35 = (float)(par2 + 1);
float var36 = (float)(par4 + 0);
float var37 = (float)(par4 + 1);
byte var38 = 0;
if ((var29 || var30) && !var31 && !var32)
{
var38 = 1;
}
if ((var31 || var32) && !var30 && !var29)
{
var38 = 2;
}
if (var38 != 0)
{
var15 = (double)((float)(var13 + 16) / 256.0F);
var17 = (double)(((float)(var13 + 16) + 15.99F) / 256.0F);
var19 = (double)((float)var14 / 256.0F);
var21 = (double)(((float)var14 + 15.99F) / 256.0F);
}
if (var38 == 0)
{
if (!var29)
{
var34 += 0.3125F;
}
if (!var29)
{
var15 += 0.01953125D;
}
if (!var30)
{
var35 -= 0.3125F;
}
if (!var30)
{
var17 -= 0.01953125D;
}
if (!var31)
{
var36 += 0.3125F;
}
if (!var31)
{
var19 += 0.01953125D;
}
if (!var32)
{
var37 -= 0.3125F;
}
if (!var32)
{
var21 -= 0.01953125D;
}
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21 + 0.0625D);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19 + 0.0625D);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19 + 0.0625D);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21 + 0.0625D);
}
else if (var38 == 1)
{
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21 + 0.0625D);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var17, var19 + 0.0625D);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19 + 0.0625D);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var15, var21 + 0.0625D);
}
else if (var38 == 2)
{
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var15, var21);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var17, var19);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var37, var17, var21 + 0.0625D);
var5.addVertexWithUV((double)var35, (double)par3 + 0.015625D, (double)var36, var15, var21 + 0.0625D);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var36, var15, var19 + 0.0625D);
var5.addVertexWithUV((double)var34, (double)par3 + 0.015625D, (double)var37, var17, var19 + 0.0625D);
}
if (!this.blockAccess.isBlockNormalCube(par2, par3 + 1, par4))
{
var15 = (double)((float)(var13 + 16) / 256.0F);
var17 = (double)(((float)(var13 + 16) + 15.99F) / 256.0F);
var19 = (double)((float)var14 / 256.0F);
var21 = (double)(((float)var14 + 15.99F) / 256.0F);
if (this.blockAccess.isBlockNormalCube(par2 - 1, par3, par4) && this.blockAccess.getBlockId(par2 - 1, par3 + 1, par4) == Block.redstoneWire.blockID)
{
var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var19);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var19);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var21);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var21);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var19 + 0.0625D);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var19 + 0.0625D);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var21 + 0.0625D);
var5.addVertexWithUV((double)par2 + 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var21 + 0.0625D);
}
if (this.blockAccess.isBlockNormalCube(par2 + 1, par3, par4) && this.blockAccess.getBlockId(par2 + 1, par3 + 1, par4) == Block.redstoneWire.blockID)
{
var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var21);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var21);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var19);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var19);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 1), var15, var21 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1), var17, var21 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 0), var17, var19 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 1) - 0.015625D, (double)(par3 + 0), (double)(par4 + 0), var15, var19 + 0.0625D);
}
if (this.blockAccess.isBlockNormalCube(par2, par3, par4 - 1) && this.blockAccess.getBlockId(par2, par3 + 1, par4 - 1) == Block.redstoneWire.blockID)
{
var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var21);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var21);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var19);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var19);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var21 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var21 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)par4 + 0.015625D, var17, var19 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + 0.015625D, var15, var19 + 0.0625D);
}
if (this.blockAccess.isBlockNormalCube(par2, par3, par4 + 1) && this.blockAccess.getBlockId(par2, par3 + 1, par4 + 1) == Block.redstoneWire.blockID)
{
var5.setColorOpaque_F(var8 * var10, var8 * var11, var8 * var12);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var19);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var19);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var21);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var21);
var5.setColorOpaque_F(var8, var8, var8);
var5.addVertexWithUV((double)(par2 + 1), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var19 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var19 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - 0.015625D, var15, var21 + 0.0625D);
var5.addVertexWithUV((double)(par2 + 0), (double)((float)(par3 + 1) + 0.021875F), (double)(par4 + 1) - 0.015625D, var17, var21 + 0.0625D);
}
}
return true;
}
/**
* Renders a minecart track block at the given coordinates
*/
public boolean renderBlockMinecartTrack(BlockRail par1BlockRail, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var7 = par1BlockRail.getBlockTextureFromSideAndMetadata(0, var6);
if (this.overrideBlockTexture >= 0)
{
var7 = this.overrideBlockTexture;
}
if (par1BlockRail.isPowered())
{
var6 &= 7;
}
var5.setBrightness(par1BlockRail.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
var5.setColorOpaque_F(1.0F, 1.0F, 1.0F);
int var8 = (var7 & 15) << 4;
int var9 = var7 & 240;
double var10 = (double)((float)var8 / 256.0F);
double var12 = (double)(((float)var8 + 15.99F) / 256.0F);
double var14 = (double)((float)var9 / 256.0F);
double var16 = (double)(((float)var9 + 15.99F) / 256.0F);
double var18 = 0.0625D;
double var20 = (double)(par2 + 1);
double var22 = (double)(par2 + 1);
double var24 = (double)(par2 + 0);
double var26 = (double)(par2 + 0);
double var28 = (double)(par4 + 0);
double var30 = (double)(par4 + 1);
double var32 = (double)(par4 + 1);
double var34 = (double)(par4 + 0);
double var36 = (double)par3 + var18;
double var38 = (double)par3 + var18;
double var40 = (double)par3 + var18;
double var42 = (double)par3 + var18;
if (var6 != 1 && var6 != 2 && var6 != 3 && var6 != 7)
{
if (var6 == 8)
{
var20 = var22 = (double)(par2 + 0);
var24 = var26 = (double)(par2 + 1);
var28 = var34 = (double)(par4 + 1);
var30 = var32 = (double)(par4 + 0);
}
else if (var6 == 9)
{
var20 = var26 = (double)(par2 + 0);
var22 = var24 = (double)(par2 + 1);
var28 = var30 = (double)(par4 + 0);
var32 = var34 = (double)(par4 + 1);
}
}
else
{
var20 = var26 = (double)(par2 + 1);
var22 = var24 = (double)(par2 + 0);
var28 = var30 = (double)(par4 + 1);
var32 = var34 = (double)(par4 + 0);
}
if (var6 != 2 && var6 != 4)
{
if (var6 == 3 || var6 == 5)
{
++var38;
++var40;
}
}
else
{
++var36;
++var42;
}
var5.addVertexWithUV(var20, var36, var28, var12, var14);
var5.addVertexWithUV(var22, var38, var30, var12, var16);
var5.addVertexWithUV(var24, var40, var32, var10, var16);
var5.addVertexWithUV(var26, var42, var34, var10, var14);
var5.addVertexWithUV(var26, var42, var34, var10, var14);
var5.addVertexWithUV(var24, var40, var32, var10, var16);
var5.addVertexWithUV(var22, var38, var30, var12, var16);
var5.addVertexWithUV(var20, var36, var28, var12, var14);
return true;
}
/**
* Renders a ladder block at the given coordinates
*/
public boolean renderBlockLadder(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = par1Block.getBlockTextureFromSide(0);
if (this.overrideBlockTexture >= 0)
{
var6 = this.overrideBlockTexture;
}
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var7 = 1.0F;
var5.setColorOpaque_F(var7, var7, var7);
int var22 = (var6 & 15) << 4;
int var8 = var6 & 240;
double var9 = (double)((float)var22 / 256.0F);
double var11 = (double)(((float)var22 + 15.99F) / 256.0F);
double var13 = (double)((float)var8 / 256.0F);
double var15 = (double)(((float)var8 + 15.99F) / 256.0F);
int var17 = this.blockAccess.getBlockMetadata(par2, par3, par4);
double var18 = 0.0D;
double var20 = 0.05000000074505806D;
if (var17 == 5)
{
var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 1) + var18, (double)(par4 + 1) + var18, var9, var13);
var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 0) - var18, (double)(par4 + 1) + var18, var9, var15);
var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 0) - var18, (double)(par4 + 0) - var18, var11, var15);
var5.addVertexWithUV((double)par2 + var20, (double)(par3 + 1) + var18, (double)(par4 + 0) - var18, var11, var13);
}
if (var17 == 4)
{
var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 0) - var18, (double)(par4 + 1) + var18, var11, var15);
var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 1) + var18, (double)(par4 + 1) + var18, var11, var13);
var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 1) + var18, (double)(par4 + 0) - var18, var9, var13);
var5.addVertexWithUV((double)(par2 + 1) - var20, (double)(par3 + 0) - var18, (double)(par4 + 0) - var18, var9, var15);
}
if (var17 == 3)
{
var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 0) - var18, (double)par4 + var20, var11, var15);
var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 1) + var18, (double)par4 + var20, var11, var13);
var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 1) + var18, (double)par4 + var20, var9, var13);
var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 0) - var18, (double)par4 + var20, var9, var15);
}
if (var17 == 2)
{
var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 1) + var18, (double)(par4 + 1) - var20, var9, var13);
var5.addVertexWithUV((double)(par2 + 1) + var18, (double)(par3 + 0) - var18, (double)(par4 + 1) - var20, var9, var15);
var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 0) - var18, (double)(par4 + 1) - var20, var11, var15);
var5.addVertexWithUV((double)(par2 + 0) - var18, (double)(par3 + 1) + var18, (double)(par4 + 1) - var20, var11, var13);
}
return true;
}
/**
* Render block vine
*/
public boolean renderBlockVine(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = par1Block.getBlockTextureFromSide(0);
if (this.overrideBlockTexture >= 0)
{
var6 = this.overrideBlockTexture;
}
float var7 = 1.0F;
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
int var8 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4);
float var9 = (float)(var8 >> 16 & 255) / 255.0F;
float var10 = (float)(var8 >> 8 & 255) / 255.0F;
float var11 = (float)(var8 & 255) / 255.0F;
var5.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11);
var8 = (var6 & 15) << 4;
int var21 = var6 & 240;
double var22 = (double)((float)var8 / 256.0F);
double var12 = (double)(((float)var8 + 15.99F) / 256.0F);
double var14 = (double)((float)var21 / 256.0F);
double var16 = (double)(((float)var21 + 15.99F) / 256.0F);
double var18 = 0.05000000074505806D;
int var20 = this.blockAccess.getBlockMetadata(par2, par3, par4);
if ((var20 & 2) != 0)
{
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 1), var22, var14);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 1), var22, var16);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 0), var12, var16);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 0), var12, var14);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 0), var12, var14);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 0), var12, var16);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 0), (double)(par4 + 1), var22, var16);
var5.addVertexWithUV((double)par2 + var18, (double)(par3 + 1), (double)(par4 + 1), var22, var14);
}
if ((var20 & 8) != 0)
{
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 1), var12, var16);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 1), var12, var14);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 0), var22, var14);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 0), var22, var16);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 0), var22, var16);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 0), var22, var14);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 1), (double)(par4 + 1), var12, var14);
var5.addVertexWithUV((double)(par2 + 1) - var18, (double)(par3 + 0), (double)(par4 + 1), var12, var16);
}
if ((var20 & 4) != 0)
{
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + var18, var12, var16);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)par4 + var18, var12, var14);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)par4 + var18, var22, var14);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + var18, var22, var16);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)par4 + var18, var22, var16);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)par4 + var18, var22, var14);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)par4 + var18, var12, var14);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)par4 + var18, var12, var16);
}
if ((var20 & 1) != 0)
{
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)(par4 + 1) - var18, var22, var14);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - var18, var22, var16);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - var18, var12, var16);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)(par4 + 1) - var18, var12, var14);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1), (double)(par4 + 1) - var18, var12, var14);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 0), (double)(par4 + 1) - var18, var12, var16);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 0), (double)(par4 + 1) - var18, var22, var16);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1), (double)(par4 + 1) - var18, var22, var14);
}
if (this.blockAccess.isBlockNormalCube(par2, par3 + 1, par4))
{
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1) - var18, (double)(par4 + 0), var22, var14);
var5.addVertexWithUV((double)(par2 + 1), (double)(par3 + 1) - var18, (double)(par4 + 1), var22, var16);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1) - var18, (double)(par4 + 1), var12, var16);
var5.addVertexWithUV((double)(par2 + 0), (double)(par3 + 1) - var18, (double)(par4 + 0), var12, var14);
}
return true;
}
public boolean renderBlockPane(BlockPane par1BlockPane, int par2, int par3, int par4)
{
int var5 = this.blockAccess.getHeight();
Tessellator var6 = Tessellator.instance;
var6.setBrightness(par1BlockPane.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var7 = 1.0F;
int var8 = par1BlockPane.colorMultiplier(this.blockAccess, par2, par3, par4);
float var9 = (float)(var8 >> 16 & 255) / 255.0F;
float var10 = (float)(var8 >> 8 & 255) / 255.0F;
float var11 = (float)(var8 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F;
float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F;
float var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F;
var9 = var12;
var10 = var13;
var11 = var14;
}
var6.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11);
boolean var64 = false;
boolean var67 = false;
int var68;
int var65;
int var66;
if (this.overrideBlockTexture >= 0)
{
var65 = this.overrideBlockTexture;
var66 = this.overrideBlockTexture;
}
else
{
var68 = this.blockAccess.getBlockMetadata(par2, par3, par4);
var65 = par1BlockPane.getBlockTextureFromSideAndMetadata(0, var68);
var66 = par1BlockPane.getSideTextureIndex();
}
var68 = (var65 & 15) << 4;
int var15 = var65 & 240;
double var16 = (double)((float)var68 / 256.0F);
double var18 = (double)(((float)var68 + 7.99F) / 256.0F);
double var20 = (double)(((float)var68 + 15.99F) / 256.0F);
double var22 = (double)((float)var15 / 256.0F);
double var24 = (double)(((float)var15 + 15.99F) / 256.0F);
int var26 = (var66 & 15) << 4;
int var27 = var66 & 240;
double var28 = (double)((float)(var26 + 7) / 256.0F);
double var30 = (double)(((float)var26 + 8.99F) / 256.0F);
double var32 = (double)((float)var27 / 256.0F);
double var34 = (double)((float)(var27 + 8) / 256.0F);
double var36 = (double)(((float)var27 + 15.99F) / 256.0F);
double var38 = (double)par2;
double var40 = (double)par2 + 0.5D;
double var42 = (double)(par2 + 1);
double var44 = (double)par4;
double var46 = (double)par4 + 0.5D;
double var48 = (double)(par4 + 1);
double var50 = (double)par2 + 0.5D - 0.0625D;
double var52 = (double)par2 + 0.5D + 0.0625D;
double var54 = (double)par4 + 0.5D - 0.0625D;
double var56 = (double)par4 + 0.5D + 0.0625D;
boolean var58 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2, par3, par4 - 1));
boolean var59 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2, par3, par4 + 1));
boolean var60 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2 - 1, par3, par4));
boolean var61 = par1BlockPane.canThisPaneConnectToThisBlockID(this.blockAccess.getBlockId(par2 + 1, par3, par4));
boolean var62 = par1BlockPane.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1);
boolean var63 = par1BlockPane.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0);
if ((!var60 || !var61) && (var60 || var61 || var58 || var59))
{
if (var60 && !var61)
{
var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var16, var22);
var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var16, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22);
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var16, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var16, var24);
var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var18, var24);
var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var18, var22);
if (!var59 && !var58)
{
var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var28, var32);
var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var28, var36);
var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var30, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var30, var32);
var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var28, var32);
var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var28, var36);
var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var30, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var30, var32);
}
if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 - 1, par3 + 1, par4))
{
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var36);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var36);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34);
}
if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2 - 1, par3 - 1, par4))
{
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var36);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var36);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var36);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var36);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34);
}
}
else if (!var60 && var61)
{
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24);
var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var20, var24);
var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var20, var22);
var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var18, var22);
var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var18, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var20, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var20, var22);
if (!var59 && !var58)
{
var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var28, var32);
var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var28, var36);
var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var30, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var30, var32);
var6.addVertexWithUV(var40, (double)(par3 + 1), var56, var28, var32);
var6.addVertexWithUV(var40, (double)(par3 + 0), var56, var28, var36);
var6.addVertexWithUV(var40, (double)(par3 + 0), var54, var30, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1), var54, var30, var32);
}
if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 + 1, par3 + 1, par4))
{
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var32);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var32);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var32);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var32);
}
if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2 + 1, par3 - 1, par4))
{
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var32);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var32);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var32);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var32);
}
}
}
else
{
var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var16, var22);
var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var16, var24);
var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var20, var24);
var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var20, var22);
var6.addVertexWithUV(var42, (double)(par3 + 1), var46, var16, var22);
var6.addVertexWithUV(var42, (double)(par3 + 0), var46, var16, var24);
var6.addVertexWithUV(var38, (double)(par3 + 0), var46, var20, var24);
var6.addVertexWithUV(var38, (double)(par3 + 1), var46, var20, var22);
if (var62)
{
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var36);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var32);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var32);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var36);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var36);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var32);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var32);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var36);
}
else
{
if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 - 1, par3 + 1, par4))
{
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var36);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var56, var30, var36);
var6.addVertexWithUV(var38, (double)(par3 + 1) + 0.01D, var54, var28, var36);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34);
}
if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2 + 1, par3 + 1, par4))
{
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var32);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var32);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var56, var30, var32);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)(par3 + 1) + 0.01D, var54, var28, var34);
var6.addVertexWithUV(var42, (double)(par3 + 1) + 0.01D, var54, var28, var32);
}
}
if (var63)
{
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var36);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var32);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var32);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var36);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var36);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var32);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var32);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var36);
}
else
{
if (par3 > 1 && this.blockAccess.isAirBlock(par2 - 1, par3 - 1, par4))
{
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var36);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var36);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var56, var30, var36);
var6.addVertexWithUV(var38, (double)par3 - 0.01D, var54, var28, var36);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34);
}
if (par3 > 1 && this.blockAccess.isAirBlock(par2 + 1, par3 - 1, par4))
{
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var32);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var32);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var56, var30, var32);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var56, var30, var34);
var6.addVertexWithUV(var40, (double)par3 - 0.01D, var54, var28, var34);
var6.addVertexWithUV(var42, (double)par3 - 0.01D, var54, var28, var32);
}
}
}
if ((!var58 || !var59) && (var60 || var61 || var58 || var59))
{
if (var58 && !var59)
{
var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var16, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var16, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22);
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var16, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var16, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var18, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var18, var22);
if (!var61 && !var60)
{
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var32);
var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var32);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32);
var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var28, var36);
var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var30, var36);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32);
}
if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 - 1))
{
var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32);
}
if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 - 1))
{
var6.addVertexWithUV(var50, (double)par3, var44, var30, var32);
var6.addVertexWithUV(var50, (double)par3, var46, var30, var34);
var6.addVertexWithUV(var52, (double)par3, var46, var28, var34);
var6.addVertexWithUV(var52, (double)par3, var44, var28, var32);
var6.addVertexWithUV(var50, (double)par3, var46, var30, var32);
var6.addVertexWithUV(var50, (double)par3, var44, var30, var34);
var6.addVertexWithUV(var52, (double)par3, var44, var28, var34);
var6.addVertexWithUV(var52, (double)par3, var46, var28, var32);
}
}
else if (!var58 && var59)
{
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var18, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var18, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var20, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var20, var22);
var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var18, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var18, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var46, var20, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var46, var20, var22);
if (!var61 && !var60)
{
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32);
var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var28, var36);
var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var30, var36);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var32);
var6.addVertexWithUV(var50, (double)(par3 + 0), var46, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 0), var46, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var32);
}
if (var62 || par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 + 1))
{
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var34);
var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var34);
var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var34);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var34);
}
if (var63 || par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 + 1))
{
var6.addVertexWithUV(var50, (double)par3, var46, var28, var34);
var6.addVertexWithUV(var50, (double)par3, var48, var28, var36);
var6.addVertexWithUV(var52, (double)par3, var48, var30, var36);
var6.addVertexWithUV(var52, (double)par3, var46, var30, var34);
var6.addVertexWithUV(var50, (double)par3, var48, var28, var34);
var6.addVertexWithUV(var50, (double)par3, var46, var28, var36);
var6.addVertexWithUV(var52, (double)par3, var46, var30, var36);
var6.addVertexWithUV(var52, (double)par3, var48, var30, var34);
}
}
}
else
{
var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var16, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var16, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var20, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var20, var22);
var6.addVertexWithUV(var40, (double)(par3 + 1), var44, var16, var22);
var6.addVertexWithUV(var40, (double)(par3 + 0), var44, var16, var24);
var6.addVertexWithUV(var40, (double)(par3 + 0), var48, var20, var24);
var6.addVertexWithUV(var40, (double)(par3 + 1), var48, var20, var22);
if (var62)
{
var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var28, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var28, var36);
}
else
{
if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 - 1))
{
var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var30, var32);
var6.addVertexWithUV(var50, (double)(par3 + 1), var44, var30, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var44, var28, var34);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var28, var32);
}
if (par3 < var5 - 1 && this.blockAccess.isAirBlock(par2, par3 + 1, par4 + 1))
{
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var34);
var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var34);
var6.addVertexWithUV(var50, (double)(par3 + 1), var48, var28, var34);
var6.addVertexWithUV(var50, (double)(par3 + 1), var46, var28, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var46, var30, var36);
var6.addVertexWithUV(var52, (double)(par3 + 1), var48, var30, var34);
}
}
if (var63)
{
var6.addVertexWithUV(var52, (double)par3, var48, var30, var36);
var6.addVertexWithUV(var52, (double)par3, var44, var30, var32);
var6.addVertexWithUV(var50, (double)par3, var44, var28, var32);
var6.addVertexWithUV(var50, (double)par3, var48, var28, var36);
var6.addVertexWithUV(var52, (double)par3, var44, var30, var36);
var6.addVertexWithUV(var52, (double)par3, var48, var30, var32);
var6.addVertexWithUV(var50, (double)par3, var48, var28, var32);
var6.addVertexWithUV(var50, (double)par3, var44, var28, var36);
}
else
{
if (par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 - 1))
{
var6.addVertexWithUV(var50, (double)par3, var44, var30, var32);
var6.addVertexWithUV(var50, (double)par3, var46, var30, var34);
var6.addVertexWithUV(var52, (double)par3, var46, var28, var34);
var6.addVertexWithUV(var52, (double)par3, var44, var28, var32);
var6.addVertexWithUV(var50, (double)par3, var46, var30, var32);
var6.addVertexWithUV(var50, (double)par3, var44, var30, var34);
var6.addVertexWithUV(var52, (double)par3, var44, var28, var34);
var6.addVertexWithUV(var52, (double)par3, var46, var28, var32);
}
if (par3 > 1 && this.blockAccess.isAirBlock(par2, par3 - 1, par4 + 1))
{
var6.addVertexWithUV(var50, (double)par3, var46, var28, var34);
var6.addVertexWithUV(var50, (double)par3, var48, var28, var36);
var6.addVertexWithUV(var52, (double)par3, var48, var30, var36);
var6.addVertexWithUV(var52, (double)par3, var46, var30, var34);
var6.addVertexWithUV(var50, (double)par3, var48, var28, var34);
var6.addVertexWithUV(var50, (double)par3, var46, var28, var36);
var6.addVertexWithUV(var52, (double)par3, var46, var30, var36);
var6.addVertexWithUV(var52, (double)par3, var48, var30, var34);
}
}
}
return true;
}
/**
* Renders any block requiring croseed squares such as reeds, flowers, and mushrooms
*/
public boolean renderCrossedSquares(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var6 = 1.0F;
int var7 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4);
float var8 = (float)(var7 >> 16 & 255) / 255.0F;
float var9 = (float)(var7 >> 8 & 255) / 255.0F;
float var10 = (float)(var7 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var11 = (var8 * 30.0F + var9 * 59.0F + var10 * 11.0F) / 100.0F;
float var12 = (var8 * 30.0F + var9 * 70.0F) / 100.0F;
float var13 = (var8 * 30.0F + var10 * 70.0F) / 100.0F;
var8 = var11;
var9 = var12;
var10 = var13;
}
var5.setColorOpaque_F(var6 * var8, var6 * var9, var6 * var10);
double var19 = (double)par2;
double var20 = (double)par3;
double var15 = (double)par4;
if (par1Block == Block.tallGrass)
{
long var17 = (long)(par2 * 3129871) ^ (long)par4 * 116129781L ^ (long)par3;
var17 = var17 * var17 * 42317861L + var17 * 11L;
var19 += ((double)((float)(var17 >> 16 & 15L) / 15.0F) - 0.5D) * 0.5D;
var20 += ((double)((float)(var17 >> 20 & 15L) / 15.0F) - 1.0D) * 0.2D;
var15 += ((double)((float)(var17 >> 24 & 15L) / 15.0F) - 0.5D) * 0.5D;
}
this.drawCrossedSquares(par1Block, this.blockAccess.getBlockMetadata(par2, par3, par4), var19, var20, var15, 1.0F);
return true;
}
/**
* Render block stem
*/
public boolean renderBlockStem(Block par1Block, int par2, int par3, int par4)
{
BlockStem var5 = (BlockStem)par1Block;
Tessellator var6 = Tessellator.instance;
var6.setBrightness(var5.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var7 = 1.0F;
int var8 = var5.colorMultiplier(this.blockAccess, par2, par3, par4);
float var9 = (float)(var8 >> 16 & 255) / 255.0F;
float var10 = (float)(var8 >> 8 & 255) / 255.0F;
float var11 = (float)(var8 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var12 = (var9 * 30.0F + var10 * 59.0F + var11 * 11.0F) / 100.0F;
float var13 = (var9 * 30.0F + var10 * 70.0F) / 100.0F;
float var14 = (var9 * 30.0F + var11 * 70.0F) / 100.0F;
var9 = var12;
var10 = var13;
var11 = var14;
}
var6.setColorOpaque_F(var7 * var9, var7 * var10, var7 * var11);
var5.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4);
int var15 = var5.getState(this.blockAccess, par2, par3, par4);
if (var15 < 0)
{
this.renderBlockStemSmall(var5, this.blockAccess.getBlockMetadata(par2, par3, par4), this.renderMaxY, (double)par2, (double)((float)par3 - 0.0625F), (double)par4);
}
else
{
this.renderBlockStemSmall(var5, this.blockAccess.getBlockMetadata(par2, par3, par4), 0.5D, (double)par2, (double)((float)par3 - 0.0625F), (double)par4);
this.renderBlockStemBig(var5, this.blockAccess.getBlockMetadata(par2, par3, par4), var15, this.renderMaxY, (double)par2, (double)((float)par3 - 0.0625F), (double)par4);
}
return true;
}
/**
* Render block crops
*/
public boolean renderBlockCrops(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
var5.setColorOpaque_F(1.0F, 1.0F, 1.0F);
this.renderBlockCropsImpl(par1Block, this.blockAccess.getBlockMetadata(par2, par3, par4), (double)par2, (double)((float)par3 - 0.0625F), (double)par4);
return true;
}
/**
* Renders a torch at the given coordinates, with the base slanting at the given delta
*/
public void renderTorchAtAngle(Block par1Block, double par2, double par4, double par6, double par8, double par10)
{
Tessellator var12 = Tessellator.instance;
int var13 = par1Block.getBlockTextureFromSide(0);
if (this.overrideBlockTexture >= 0)
{
var13 = this.overrideBlockTexture;
}
int var14 = (var13 & 15) << 4;
int var15 = var13 & 240;
float var16 = (float)var14 / 256.0F;
float var17 = ((float)var14 + 15.99F) / 256.0F;
float var18 = (float)var15 / 256.0F;
float var19 = ((float)var15 + 15.99F) / 256.0F;
double var20 = (double)var16 + 0.02734375D;
double var22 = (double)var18 + 0.0234375D;
double var24 = (double)var16 + 0.03515625D;
double var26 = (double)var18 + 0.03125D;
double var28 = (double)var16 + 0.02734375D;
double var30 = (double)var18 + 0.05078125D;
double var32 = (double)var16 + 0.03515625D;
double var34 = (double)var18 + 0.05859375D;
par2 += 0.5D;
par6 += 0.5D;
double var36 = par2 - 0.5D;
double var38 = par2 + 0.5D;
double var40 = par6 - 0.5D;
double var42 = par6 + 0.5D;
double var44 = 0.0625D;
double var46 = 0.625D;
var12.addVertexWithUV(par2 + par8 * (1.0D - var46) - var44, par4 + var46, par6 + par10 * (1.0D - var46) - var44, var20, var22);
var12.addVertexWithUV(par2 + par8 * (1.0D - var46) - var44, par4 + var46, par6 + par10 * (1.0D - var46) + var44, var20, var26);
var12.addVertexWithUV(par2 + par8 * (1.0D - var46) + var44, par4 + var46, par6 + par10 * (1.0D - var46) + var44, var24, var26);
var12.addVertexWithUV(par2 + par8 * (1.0D - var46) + var44, par4 + var46, par6 + par10 * (1.0D - var46) - var44, var24, var22);
var12.addVertexWithUV(par2 + var44 + par8, par4, par6 - var44 + par10, var32, var30);
var12.addVertexWithUV(par2 + var44 + par8, par4, par6 + var44 + par10, var32, var34);
var12.addVertexWithUV(par2 - var44 + par8, par4, par6 + var44 + par10, var28, var34);
var12.addVertexWithUV(par2 - var44 + par8, par4, par6 - var44 + par10, var28, var30);
var12.addVertexWithUV(par2 - var44, par4 + 1.0D, var40, (double)var16, (double)var18);
var12.addVertexWithUV(par2 - var44 + par8, par4 + 0.0D, var40 + par10, (double)var16, (double)var19);
var12.addVertexWithUV(par2 - var44 + par8, par4 + 0.0D, var42 + par10, (double)var17, (double)var19);
var12.addVertexWithUV(par2 - var44, par4 + 1.0D, var42, (double)var17, (double)var18);
var12.addVertexWithUV(par2 + var44, par4 + 1.0D, var42, (double)var16, (double)var18);
var12.addVertexWithUV(par2 + par8 + var44, par4 + 0.0D, var42 + par10, (double)var16, (double)var19);
var12.addVertexWithUV(par2 + par8 + var44, par4 + 0.0D, var40 + par10, (double)var17, (double)var19);
var12.addVertexWithUV(par2 + var44, par4 + 1.0D, var40, (double)var17, (double)var18);
var12.addVertexWithUV(var36, par4 + 1.0D, par6 + var44, (double)var16, (double)var18);
var12.addVertexWithUV(var36 + par8, par4 + 0.0D, par6 + var44 + par10, (double)var16, (double)var19);
var12.addVertexWithUV(var38 + par8, par4 + 0.0D, par6 + var44 + par10, (double)var17, (double)var19);
var12.addVertexWithUV(var38, par4 + 1.0D, par6 + var44, (double)var17, (double)var18);
var12.addVertexWithUV(var38, par4 + 1.0D, par6 - var44, (double)var16, (double)var18);
var12.addVertexWithUV(var38 + par8, par4 + 0.0D, par6 - var44 + par10, (double)var16, (double)var19);
var12.addVertexWithUV(var36 + par8, par4 + 0.0D, par6 - var44 + par10, (double)var17, (double)var19);
var12.addVertexWithUV(var36, par4 + 1.0D, par6 - var44, (double)var17, (double)var18);
}
/**
* Utility function to draw crossed swuares
*/
public void drawCrossedSquares(Block par1Block, int par2, double par3, double par5, double par7, float par9)
{
Tessellator var10 = Tessellator.instance;
int var11 = par1Block.getBlockTextureFromSideAndMetadata(0, par2);
if (this.overrideBlockTexture >= 0)
{
var11 = this.overrideBlockTexture;
}
int var12 = (var11 & 15) << 4;
int var13 = var11 & 240;
double var14 = (double)((float)var12 / 256.0F);
double var16 = (double)(((float)var12 + 15.99F) / 256.0F);
double var18 = (double)((float)var13 / 256.0F);
double var20 = (double)(((float)var13 + 15.99F) / 256.0F);
double var22 = 0.45D * (double)par9;
double var24 = par3 + 0.5D - var22;
double var26 = par3 + 0.5D + var22;
double var28 = par7 + 0.5D - var22;
double var30 = par7 + 0.5D + var22;
var10.addVertexWithUV(var24, par5 + (double)par9, var28, var14, var18);
var10.addVertexWithUV(var24, par5 + 0.0D, var28, var14, var20);
var10.addVertexWithUV(var26, par5 + 0.0D, var30, var16, var20);
var10.addVertexWithUV(var26, par5 + (double)par9, var30, var16, var18);
var10.addVertexWithUV(var26, par5 + (double)par9, var30, var14, var18);
var10.addVertexWithUV(var26, par5 + 0.0D, var30, var14, var20);
var10.addVertexWithUV(var24, par5 + 0.0D, var28, var16, var20);
var10.addVertexWithUV(var24, par5 + (double)par9, var28, var16, var18);
var10.addVertexWithUV(var24, par5 + (double)par9, var30, var14, var18);
var10.addVertexWithUV(var24, par5 + 0.0D, var30, var14, var20);
var10.addVertexWithUV(var26, par5 + 0.0D, var28, var16, var20);
var10.addVertexWithUV(var26, par5 + (double)par9, var28, var16, var18);
var10.addVertexWithUV(var26, par5 + (double)par9, var28, var14, var18);
var10.addVertexWithUV(var26, par5 + 0.0D, var28, var14, var20);
var10.addVertexWithUV(var24, par5 + 0.0D, var30, var16, var20);
var10.addVertexWithUV(var24, par5 + (double)par9, var30, var16, var18);
}
/**
* Render block stem small
*/
public void renderBlockStemSmall(Block par1Block, int par2, double par3, double par5, double par7, double par9)
{
Tessellator var11 = Tessellator.instance;
int var12 = par1Block.getBlockTextureFromSideAndMetadata(0, par2);
if (this.overrideBlockTexture >= 0)
{
var12 = this.overrideBlockTexture;
}
int var13 = (var12 & 15) << 4;
int var14 = var12 & 240;
double var15 = (double)((float)var13 / 256.0F);
double var17 = (double)(((float)var13 + 15.99F) / 256.0F);
double var19 = (double)((float)var14 / 256.0F);
double var21 = ((double)var14 + 15.989999771118164D * par3) / 256.0D;
double var23 = par5 + 0.5D - 0.44999998807907104D;
double var25 = par5 + 0.5D + 0.44999998807907104D;
double var27 = par9 + 0.5D - 0.44999998807907104D;
double var29 = par9 + 0.5D + 0.44999998807907104D;
var11.addVertexWithUV(var23, par7 + par3, var27, var15, var19);
var11.addVertexWithUV(var23, par7 + 0.0D, var27, var15, var21);
var11.addVertexWithUV(var25, par7 + 0.0D, var29, var17, var21);
var11.addVertexWithUV(var25, par7 + par3, var29, var17, var19);
var11.addVertexWithUV(var25, par7 + par3, var29, var15, var19);
var11.addVertexWithUV(var25, par7 + 0.0D, var29, var15, var21);
var11.addVertexWithUV(var23, par7 + 0.0D, var27, var17, var21);
var11.addVertexWithUV(var23, par7 + par3, var27, var17, var19);
var11.addVertexWithUV(var23, par7 + par3, var29, var15, var19);
var11.addVertexWithUV(var23, par7 + 0.0D, var29, var15, var21);
var11.addVertexWithUV(var25, par7 + 0.0D, var27, var17, var21);
var11.addVertexWithUV(var25, par7 + par3, var27, var17, var19);
var11.addVertexWithUV(var25, par7 + par3, var27, var15, var19);
var11.addVertexWithUV(var25, par7 + 0.0D, var27, var15, var21);
var11.addVertexWithUV(var23, par7 + 0.0D, var29, var17, var21);
var11.addVertexWithUV(var23, par7 + par3, var29, var17, var19);
}
/**
* Render BlockLilyPad
*/
public boolean renderBlockLilyPad(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = par1Block.blockIndexInTexture;
if (this.overrideBlockTexture >= 0)
{
var6 = this.overrideBlockTexture;
}
int var7 = (var6 & 15) << 4;
int var8 = var6 & 240;
float var9 = 0.015625F;
double var10 = (double)((float)var7 / 256.0F);
double var12 = (double)(((float)var7 + 15.99F) / 256.0F);
double var14 = (double)((float)var8 / 256.0F);
double var16 = (double)(((float)var8 + 15.99F) / 256.0F);
long var18 = (long)(par2 * 3129871) ^ (long)par4 * 116129781L ^ (long)par3;
var18 = var18 * var18 * 42317861L + var18 * 11L;
int var20 = (int)(var18 >> 16 & 3L);
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var21 = (float)par2 + 0.5F;
float var22 = (float)par4 + 0.5F;
float var23 = (float)(var20 & 1) * 0.5F * (float)(1 - var20 / 2 % 2 * 2);
float var24 = (float)(var20 + 1 & 1) * 0.5F * (float)(1 - (var20 + 1) / 2 % 2 * 2);
var5.setColorOpaque_I(par1Block.getBlockColor());
var5.addVertexWithUV((double)(var21 + var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 + var24), var10, var14);
var5.addVertexWithUV((double)(var21 + var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 + var24), var12, var14);
var5.addVertexWithUV((double)(var21 - var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 - var24), var12, var16);
var5.addVertexWithUV((double)(var21 - var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 - var24), var10, var16);
var5.setColorOpaque_I((par1Block.getBlockColor() & 16711422) >> 1);
var5.addVertexWithUV((double)(var21 - var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 - var24), var10, var16);
var5.addVertexWithUV((double)(var21 - var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 - var24), var12, var16);
var5.addVertexWithUV((double)(var21 + var23 + var24), (double)((float)par3 + var9), (double)(var22 - var23 + var24), var12, var14);
var5.addVertexWithUV((double)(var21 + var23 - var24), (double)((float)par3 + var9), (double)(var22 + var23 + var24), var10, var14);
return true;
}
/**
* Render block stem big
*/
public void renderBlockStemBig(Block par1Block, int par2, int par3, double par4, double par6, double par8, double par10)
{
Tessellator var12 = Tessellator.instance;
int var13 = par1Block.getBlockTextureFromSideAndMetadata(0, par2) + 16;
if (this.overrideBlockTexture >= 0)
{
var13 = this.overrideBlockTexture;
}
int var14 = (var13 & 15) << 4;
int var15 = var13 & 240;
double var16 = (double)((float)var14 / 256.0F);
double var18 = (double)(((float)var14 + 15.99F) / 256.0F);
double var20 = (double)((float)var15 / 256.0F);
double var22 = ((double)var15 + 15.989999771118164D * par4) / 256.0D;
double var24 = par6 + 0.5D - 0.5D;
double var26 = par6 + 0.5D + 0.5D;
double var28 = par10 + 0.5D - 0.5D;
double var30 = par10 + 0.5D + 0.5D;
double var32 = par6 + 0.5D;
double var34 = par10 + 0.5D;
if ((par3 + 1) / 2 % 2 == 1)
{
double var36 = var18;
var18 = var16;
var16 = var36;
}
if (par3 < 2)
{
var12.addVertexWithUV(var24, par8 + par4, var34, var16, var20);
var12.addVertexWithUV(var24, par8 + 0.0D, var34, var16, var22);
var12.addVertexWithUV(var26, par8 + 0.0D, var34, var18, var22);
var12.addVertexWithUV(var26, par8 + par4, var34, var18, var20);
var12.addVertexWithUV(var26, par8 + par4, var34, var18, var20);
var12.addVertexWithUV(var26, par8 + 0.0D, var34, var18, var22);
var12.addVertexWithUV(var24, par8 + 0.0D, var34, var16, var22);
var12.addVertexWithUV(var24, par8 + par4, var34, var16, var20);
}
else
{
var12.addVertexWithUV(var32, par8 + par4, var30, var16, var20);
var12.addVertexWithUV(var32, par8 + 0.0D, var30, var16, var22);
var12.addVertexWithUV(var32, par8 + 0.0D, var28, var18, var22);
var12.addVertexWithUV(var32, par8 + par4, var28, var18, var20);
var12.addVertexWithUV(var32, par8 + par4, var28, var18, var20);
var12.addVertexWithUV(var32, par8 + 0.0D, var28, var18, var22);
var12.addVertexWithUV(var32, par8 + 0.0D, var30, var16, var22);
var12.addVertexWithUV(var32, par8 + par4, var30, var16, var20);
}
}
/**
* Render block crops implementation
*/
public void renderBlockCropsImpl(Block par1Block, int par2, double par3, double par5, double par7)
{
Tessellator var9 = Tessellator.instance;
int var10 = par1Block.getBlockTextureFromSideAndMetadata(0, par2);
if (this.overrideBlockTexture >= 0)
{
var10 = this.overrideBlockTexture;
}
int var11 = (var10 & 15) << 4;
int var12 = var10 & 240;
double var13 = (double)((float)var11 / 256.0F);
double var15 = (double)(((float)var11 + 15.99F) / 256.0F);
double var17 = (double)((float)var12 / 256.0F);
double var19 = (double)(((float)var12 + 15.99F) / 256.0F);
double var21 = par3 + 0.5D - 0.25D;
double var23 = par3 + 0.5D + 0.25D;
double var25 = par7 + 0.5D - 0.5D;
double var27 = par7 + 0.5D + 0.5D;
var9.addVertexWithUV(var21, par5 + 1.0D, var25, var13, var17);
var9.addVertexWithUV(var21, par5 + 0.0D, var25, var13, var19);
var9.addVertexWithUV(var21, par5 + 0.0D, var27, var15, var19);
var9.addVertexWithUV(var21, par5 + 1.0D, var27, var15, var17);
var9.addVertexWithUV(var21, par5 + 1.0D, var27, var13, var17);
var9.addVertexWithUV(var21, par5 + 0.0D, var27, var13, var19);
var9.addVertexWithUV(var21, par5 + 0.0D, var25, var15, var19);
var9.addVertexWithUV(var21, par5 + 1.0D, var25, var15, var17);
var9.addVertexWithUV(var23, par5 + 1.0D, var27, var13, var17);
var9.addVertexWithUV(var23, par5 + 0.0D, var27, var13, var19);
var9.addVertexWithUV(var23, par5 + 0.0D, var25, var15, var19);
var9.addVertexWithUV(var23, par5 + 1.0D, var25, var15, var17);
var9.addVertexWithUV(var23, par5 + 1.0D, var25, var13, var17);
var9.addVertexWithUV(var23, par5 + 0.0D, var25, var13, var19);
var9.addVertexWithUV(var23, par5 + 0.0D, var27, var15, var19);
var9.addVertexWithUV(var23, par5 + 1.0D, var27, var15, var17);
var21 = par3 + 0.5D - 0.5D;
var23 = par3 + 0.5D + 0.5D;
var25 = par7 + 0.5D - 0.25D;
var27 = par7 + 0.5D + 0.25D;
var9.addVertexWithUV(var21, par5 + 1.0D, var25, var13, var17);
var9.addVertexWithUV(var21, par5 + 0.0D, var25, var13, var19);
var9.addVertexWithUV(var23, par5 + 0.0D, var25, var15, var19);
var9.addVertexWithUV(var23, par5 + 1.0D, var25, var15, var17);
var9.addVertexWithUV(var23, par5 + 1.0D, var25, var13, var17);
var9.addVertexWithUV(var23, par5 + 0.0D, var25, var13, var19);
var9.addVertexWithUV(var21, par5 + 0.0D, var25, var15, var19);
var9.addVertexWithUV(var21, par5 + 1.0D, var25, var15, var17);
var9.addVertexWithUV(var23, par5 + 1.0D, var27, var13, var17);
var9.addVertexWithUV(var23, par5 + 0.0D, var27, var13, var19);
var9.addVertexWithUV(var21, par5 + 0.0D, var27, var15, var19);
var9.addVertexWithUV(var21, par5 + 1.0D, var27, var15, var17);
var9.addVertexWithUV(var21, par5 + 1.0D, var27, var13, var17);
var9.addVertexWithUV(var21, par5 + 0.0D, var27, var13, var19);
var9.addVertexWithUV(var23, par5 + 0.0D, var27, var15, var19);
var9.addVertexWithUV(var23, par5 + 1.0D, var27, var15, var17);
}
/**
* Renders a block based on the BlockFluids class at the given coordinates
*/
public boolean renderBlockFluids(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
int var6 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4);
float var7 = (float)(var6 >> 16 & 255) / 255.0F;
float var8 = (float)(var6 >> 8 & 255) / 255.0F;
float var9 = (float)(var6 & 255) / 255.0F;
boolean var10 = par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1);
boolean var11 = par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0);
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)};
if (!var10 && !var11 && !var12[0] && !var12[1] && !var12[2] && !var12[3])
{
return false;
}
else
{
boolean var13 = false;
float var14 = 0.5F;
float var15 = 1.0F;
float var16 = 0.8F;
float var17 = 0.6F;
double var18 = 0.0D;
double var20 = 1.0D;
Material var22 = par1Block.blockMaterial;
int var23 = this.blockAccess.getBlockMetadata(par2, par3, par4);
double var24 = (double)this.getFluidHeight(par2, par3, par4, var22);
double var26 = (double)this.getFluidHeight(par2, par3, par4 + 1, var22);
double var28 = (double)this.getFluidHeight(par2 + 1, par3, par4 + 1, var22);
double var30 = (double)this.getFluidHeight(par2 + 1, par3, par4, var22);
double var32 = 0.0010000000474974513D;
int var34;
int var37;
if (this.renderAllFaces || var10)
{
var13 = true;
var34 = par1Block.getBlockTextureFromSideAndMetadata(1, var23);
float var35 = (float)BlockFluid.getFlowDirection(this.blockAccess, par2, par3, par4, var22);
if (var35 > -999.0F)
{
var34 = par1Block.getBlockTextureFromSideAndMetadata(2, var23);
}
var24 -= var32;
var26 -= var32;
var28 -= var32;
var30 -= var32;
int var36 = (var34 & 15) << 4;
var37 = var34 & 240;
double var38 = ((double)var36 + 8.0D) / 256.0D;
double var40 = ((double)var37 + 8.0D) / 256.0D;
if (var35 < -999.0F)
{
var35 = 0.0F;
}
else
{
var38 = (double)((float)(var36 + 16) / 256.0F);
var40 = (double)((float)(var37 + 16) / 256.0F);
}
double var42 = (double)(MathHelper.sin(var35) * 8.0F) / 256.0D;
double var44 = (double)(MathHelper.cos(var35) * 8.0F) / 256.0D;
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
float var46 = 1.0F;
var5.setColorOpaque_F(var15 * var46 * var7, var15 * var46 * var8, var15 * var46 * var9);
var5.addVertexWithUV((double)(par2 + 0), (double)par3 + var24, (double)(par4 + 0), var38 - var44 - var42, var40 - var44 + var42);
var5.addVertexWithUV((double)(par2 + 0), (double)par3 + var26, (double)(par4 + 1), var38 - var44 + var42, var40 + var44 + var42);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var28, (double)(par4 + 1), var38 + var44 + var42, var40 + var44 - var42);
var5.addVertexWithUV((double)(par2 + 1), (double)par3 + var30, (double)(par4 + 0), var38 + var44 - var42, var40 - var44 - var42);
}
if (this.renderAllFaces || var11)
{
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4));
float var65 = 1.0F;
var5.setColorOpaque_F(var14 * var65, var14 * var65, var14 * var65);
this.renderBottomFace(par1Block, (double)par2, (double)par3 + var32, (double)par4, par1Block.getBlockTextureFromSide(0));
var13 = true;
}
for (var34 = 0; var34 < 4; ++var34)
{
int var64 = par2;
var37 = par4;
if (var34 == 0)
{
var37 = par4 - 1;
}
if (var34 == 1)
{
++var37;
}
if (var34 == 2)
{
var64 = par2 - 1;
}
if (var34 == 3)
{
++var64;
}
int var66 = par1Block.getBlockTextureFromSideAndMetadata(var34 + 2, var23);
int var39 = (var66 & 15) << 4;
int var67 = var66 & 240;
if (this.renderAllFaces || var12[var34])
{
double var43;
double var41;
double var47;
double var45;
double var51;
double var49;
if (var34 == 0)
{
var41 = var24;
var43 = var30;
var45 = (double)par2;
var49 = (double)(par2 + 1);
var47 = (double)par4 + var32;
var51 = (double)par4 + var32;
}
else if (var34 == 1)
{
var41 = var28;
var43 = var26;
var45 = (double)(par2 + 1);
var49 = (double)par2;
var47 = (double)(par4 + 1) - var32;
var51 = (double)(par4 + 1) - var32;
}
else if (var34 == 2)
{
var41 = var26;
var43 = var24;
var45 = (double)par2 + var32;
var49 = (double)par2 + var32;
var47 = (double)(par4 + 1);
var51 = (double)par4;
}
else
{
var41 = var30;
var43 = var28;
var45 = (double)(par2 + 1) - var32;
var49 = (double)(par2 + 1) - var32;
var47 = (double)par4;
var51 = (double)(par4 + 1);
}
var13 = true;
double var53 = (double)((float)(var39 + 0) / 256.0F);
double var55 = ((double)(var39 + 16) - 0.01D) / 256.0D;
double var57 = ((double)var67 + (1.0D - var41) * 16.0D) / 256.0D;
double var59 = ((double)var67 + (1.0D - var43) * 16.0D) / 256.0D;
double var61 = ((double)(var67 + 16) - 0.01D) / 256.0D;
var5.setBrightness(par1Block.getMixedBrightnessForBlock(this.blockAccess, var64, par3, var37));
float var63 = 1.0F;
if (var34 < 2)
{
var63 *= var16;
}
else
{
var63 *= var17;
}
var5.setColorOpaque_F(var15 * var63 * var7, var15 * var63 * var8, var15 * var63 * var9);
var5.addVertexWithUV(var45, (double)par3 + var41, var47, var53, var57);
var5.addVertexWithUV(var49, (double)par3 + var43, var51, var55, var59);
var5.addVertexWithUV(var49, (double)(par3 + 0), var51, var55, var61);
var5.addVertexWithUV(var45, (double)(par3 + 0), var47, var53, var61);
}
}
this.renderMinY = var18;
this.renderMaxY = var20;
return var13;
}
}
/**
* Get fluid height
*/
public float getFluidHeight(int par1, int par2, int par3, Material par4Material)
{
int var5 = 0;
float var6 = 0.0F;
for (int var7 = 0; var7 < 4; ++var7)
{
int var8 = par1 - (var7 & 1);
int var10 = par3 - (var7 >> 1 & 1);
if (this.blockAccess.getBlockMaterial(var8, par2 + 1, var10) == par4Material)
{
return 1.0F;
}
Material var11 = this.blockAccess.getBlockMaterial(var8, par2, var10);
if (var11 == par4Material)
{
int var12 = this.blockAccess.getBlockMetadata(var8, par2, var10);
if (var12 >= 8 || var12 == 0)
{
var6 += BlockFluid.getFluidHeightPercent(var12) * 10.0F;
var5 += 10;
}
var6 += BlockFluid.getFluidHeightPercent(var12);
++var5;
}
else if (!var11.isSolid())
{
++var6;
++var5;
}
}
return 1.0F - var6 / (float)var5;
}
/**
* Renders a falling sand block
*/
public void renderBlockSandFalling(Block par1Block, World par2World, int par3, int par4, int par5, int par6)
{
float var7 = 0.5F;
float var8 = 1.0F;
float var9 = 0.8F;
float var10 = 0.6F;
Tessellator var11 = Tessellator.instance;
var11.startDrawingQuads();
var11.setBrightness(par1Block.getMixedBrightnessForBlock(par2World, par3, par4, par5));
float var12 = 1.0F;
float var13 = 1.0F;
if (var13 < var12)
{
var13 = var12;
}
var11.setColorOpaque_F(var7 * var13, var7 * var13, var7 * var13);
this.renderBottomFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(0, par6));
var13 = 1.0F;
if (var13 < var12)
{
var13 = var12;
}
var11.setColorOpaque_F(var8 * var13, var8 * var13, var8 * var13);
this.renderTopFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(1, par6));
var13 = 1.0F;
if (var13 < var12)
{
var13 = var12;
}
var11.setColorOpaque_F(var9 * var13, var9 * var13, var9 * var13);
this.renderEastFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(2, par6));
var13 = 1.0F;
if (var13 < var12)
{
var13 = var12;
}
var11.setColorOpaque_F(var9 * var13, var9 * var13, var9 * var13);
this.renderWestFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(3, par6));
var13 = 1.0F;
if (var13 < var12)
{
var13 = var12;
}
var11.setColorOpaque_F(var10 * var13, var10 * var13, var10 * var13);
this.renderNorthFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(4, par6));
var13 = 1.0F;
if (var13 < var12)
{
var13 = var12;
}
var11.setColorOpaque_F(var10 * var13, var10 * var13, var10 * var13);
this.renderSouthFace(par1Block, -0.5D, -0.5D, -0.5D, par1Block.getBlockTextureFromSideAndMetadata(5, par6));
var11.draw();
}
/**
* Renders a standard cube block at the given coordinates
*/
public boolean renderStandardBlock(Block par1Block, int par2, int par3, int par4)
{
int var5 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4);
float var6 = (float)(var5 >> 16 & 255) / 255.0F;
float var7 = (float)(var5 >> 8 & 255) / 255.0F;
float var8 = (float)(var5 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var9 = (var6 * 30.0F + var7 * 59.0F + var8 * 11.0F) / 100.0F;
float var10 = (var6 * 30.0F + var7 * 70.0F) / 100.0F;
float var11 = (var6 * 30.0F + var8 * 70.0F) / 100.0F;
var6 = var9;
var7 = var10;
var8 = var11;
}
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);
}
/**
* Renders a log block at the given coordinates
*/
public boolean renderBlockLog(Block par1Block, int par2, int par3, int par4)
{
int var5 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var6 = var5 & 12;
if (var6 == 4)
{
this.uvRotateEast = 1;
this.uvRotateWest = 1;
this.uvRotateTop = 1;
this.uvRotateBottom = 1;
}
else if (var6 == 8)
{
this.uvRotateSouth = 1;
this.uvRotateNorth = 1;
}
boolean var7 = this.renderStandardBlock(par1Block, par2, par3, par4);
this.uvRotateSouth = 0;
this.uvRotateEast = 0;
this.uvRotateWest = 0;
this.uvRotateNorth = 0;
this.uvRotateTop = 0;
this.uvRotateBottom = 0;
return var7;
}
public boolean renderStandardBlockWithAmbientOcclusion(Block par1Block, int par2, int par3, int par4, float par5, float par6, float par7)
{
this.enableAO = true;
boolean var8 = false;
float var9 = this.lightValueOwn;
float var10 = this.lightValueOwn;
float var11 = this.lightValueOwn;
float var12 = this.lightValueOwn;
boolean var13 = true;
boolean var14 = true;
boolean var15 = true;
boolean var16 = true;
boolean var17 = true;
boolean var18 = true;
this.lightValueOwn = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4);
this.aoLightValueXNeg = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4);
this.aoLightValueYNeg = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4);
this.aoLightValueZNeg = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1);
this.aoLightValueXPos = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4);
this.aoLightValueYPos = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4);
this.aoLightValueZPos = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1);
int var19 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4);
int var20 = var19;
int var21 = var19;
int var22 = var19;
int var23 = var19;
int var24 = var19;
int var25 = var19;
if (this.renderMinY <= 0.0D)
{
var21 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4);
}
if (this.renderMaxY >= 1.0D)
{
var24 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4);
}
if (this.renderMinX <= 0.0D)
{
var20 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4);
}
if (this.renderMaxX >= 1.0D)
{
var23 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4);
}
if (this.renderMinZ <= 0.0D)
{
var22 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1);
}
if (this.renderMaxZ >= 1.0D)
{
var25 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1);
}
Tessellator var26 = Tessellator.instance;
var26.setBrightness(983055);
this.aoGrassXYZPPC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3 + 1, par4)];
this.aoGrassXYZPNC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3 - 1, par4)];
this.aoGrassXYZPCP = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3, par4 + 1)];
this.aoGrassXYZPCN = Block.canBlockGrass[this.blockAccess.getBlockId(par2 + 1, par3, par4 - 1)];
this.aoGrassXYZNPC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3 + 1, par4)];
this.aoGrassXYZNNC = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3 - 1, par4)];
this.aoGrassXYZNCN = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3, par4 - 1)];
this.aoGrassXYZNCP = Block.canBlockGrass[this.blockAccess.getBlockId(par2 - 1, par3, par4 + 1)];
this.aoGrassXYZCPP = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 + 1, par4 + 1)];
this.aoGrassXYZCPN = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 + 1, par4 - 1)];
this.aoGrassXYZCNP = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 - 1, par4 + 1)];
this.aoGrassXYZCNN = Block.canBlockGrass[this.blockAccess.getBlockId(par2, par3 - 1, par4 - 1)];
if (par1Block.blockIndexInTexture == 3)
{
var18 = false;
var17 = false;
var16 = false;
var15 = false;
var13 = false;
}
if (this.overrideBlockTexture >= 0)
{
var18 = false;
var17 = false;
var16 = false;
var15 = false;
var13 = false;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0))
{
if (this.aoType > 0)
{
if (this.renderMinY <= 0.0D)
{
--par3;
}
this.aoBrightnessXYNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4);
this.aoBrightnessYZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1);
this.aoBrightnessYZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1);
this.aoBrightnessXYPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4);
this.aoLightValueScratchXYNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4);
this.aoLightValueScratchYZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1);
this.aoLightValueScratchYZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1);
this.aoLightValueScratchXYPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4);
if (!this.aoGrassXYZCNN && !this.aoGrassXYZNNC)
{
this.aoLightValueScratchXYZNNN = this.aoLightValueScratchXYNN;
this.aoBrightnessXYZNNN = this.aoBrightnessXYNN;
}
else
{
this.aoLightValueScratchXYZNNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 - 1);
this.aoBrightnessXYZNNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 - 1);
}
if (!this.aoGrassXYZCNP && !this.aoGrassXYZNNC)
{
this.aoLightValueScratchXYZNNP = this.aoLightValueScratchXYNN;
this.aoBrightnessXYZNNP = this.aoBrightnessXYNN;
}
else
{
this.aoLightValueScratchXYZNNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 + 1);
this.aoBrightnessXYZNNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 + 1);
}
if (!this.aoGrassXYZCNN && !this.aoGrassXYZPNC)
{
this.aoLightValueScratchXYZPNN = this.aoLightValueScratchXYPN;
this.aoBrightnessXYZPNN = this.aoBrightnessXYPN;
}
else
{
this.aoLightValueScratchXYZPNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 - 1);
this.aoBrightnessXYZPNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 - 1);
}
if (!this.aoGrassXYZCNP && !this.aoGrassXYZPNC)
{
this.aoLightValueScratchXYZPNP = this.aoLightValueScratchXYPN;
this.aoBrightnessXYZPNP = this.aoBrightnessXYPN;
}
else
{
this.aoLightValueScratchXYZPNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 + 1);
this.aoBrightnessXYZPNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 + 1);
}
if (this.renderMinY <= 0.0D)
{
++par3;
}
var9 = (this.aoLightValueScratchXYZNNP + this.aoLightValueScratchXYNN + this.aoLightValueScratchYZNP + this.aoLightValueYNeg) / 4.0F;
var12 = (this.aoLightValueScratchYZNP + this.aoLightValueYNeg + this.aoLightValueScratchXYZPNP + this.aoLightValueScratchXYPN) / 4.0F;
var11 = (this.aoLightValueYNeg + this.aoLightValueScratchYZNN + this.aoLightValueScratchXYPN + this.aoLightValueScratchXYZPNN) / 4.0F;
var10 = (this.aoLightValueScratchXYNN + this.aoLightValueScratchXYZNNN + this.aoLightValueYNeg + this.aoLightValueScratchYZNN) / 4.0F;
this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXYZNNP, this.aoBrightnessXYNN, this.aoBrightnessYZNP, var21);
this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessYZNP, this.aoBrightnessXYZPNP, this.aoBrightnessXYPN, var21);
this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessYZNN, this.aoBrightnessXYPN, this.aoBrightnessXYZPNN, var21);
this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXYNN, this.aoBrightnessXYZNNN, this.aoBrightnessYZNN, var21);
}
else
{
var12 = this.aoLightValueYNeg;
var11 = this.aoLightValueYNeg;
var10 = this.aoLightValueYNeg;
var9 = this.aoLightValueYNeg;
this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = this.aoBrightnessXYNN;
}
this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var13 ? par5 : 1.0F) * 0.5F;
this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var13 ? par6 : 1.0F) * 0.5F;
this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var13 ? par7 : 1.0F) * 0.5F;
this.colorRedTopLeft *= var9;
this.colorGreenTopLeft *= var9;
this.colorBlueTopLeft *= var9;
this.colorRedBottomLeft *= var10;
this.colorGreenBottomLeft *= var10;
this.colorBlueBottomLeft *= var10;
this.colorRedBottomRight *= var11;
this.colorGreenBottomRight *= var11;
this.colorBlueBottomRight *= var11;
this.colorRedTopRight *= var12;
this.colorGreenTopRight *= var12;
this.colorBlueTopRight *= var12;
this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0));
var8 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1))
{
if (this.aoType > 0)
{
if (this.renderMaxY >= 1.0D)
{
++par3;
}
this.aoBrightnessXYNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4);
this.aoBrightnessXYPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4);
this.aoBrightnessYZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1);
this.aoBrightnessYZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1);
this.aoLightValueScratchXYNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4);
this.aoLightValueScratchXYPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4);
this.aoLightValueScratchYZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1);
this.aoLightValueScratchYZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1);
if (!this.aoGrassXYZCPN && !this.aoGrassXYZNPC)
{
this.aoLightValueScratchXYZNPN = this.aoLightValueScratchXYNP;
this.aoBrightnessXYZNPN = this.aoBrightnessXYNP;
}
else
{
this.aoLightValueScratchXYZNPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 - 1);
this.aoBrightnessXYZNPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 - 1);
}
if (!this.aoGrassXYZCPN && !this.aoGrassXYZPPC)
{
this.aoLightValueScratchXYZPPN = this.aoLightValueScratchXYPP;
this.aoBrightnessXYZPPN = this.aoBrightnessXYPP;
}
else
{
this.aoLightValueScratchXYZPPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 - 1);
this.aoBrightnessXYZPPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 - 1);
}
if (!this.aoGrassXYZCPP && !this.aoGrassXYZNPC)
{
this.aoLightValueScratchXYZNPP = this.aoLightValueScratchXYNP;
this.aoBrightnessXYZNPP = this.aoBrightnessXYNP;
}
else
{
this.aoLightValueScratchXYZNPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4 + 1);
this.aoBrightnessXYZNPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4 + 1);
}
if (!this.aoGrassXYZCPP && !this.aoGrassXYZPPC)
{
this.aoLightValueScratchXYZPPP = this.aoLightValueScratchXYPP;
this.aoBrightnessXYZPPP = this.aoBrightnessXYPP;
}
else
{
this.aoLightValueScratchXYZPPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4 + 1);
this.aoBrightnessXYZPPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4 + 1);
}
if (this.renderMaxY >= 1.0D)
{
--par3;
}
var12 = (this.aoLightValueScratchXYZNPP + this.aoLightValueScratchXYNP + this.aoLightValueScratchYZPP + this.aoLightValueYPos) / 4.0F;
var9 = (this.aoLightValueScratchYZPP + this.aoLightValueYPos + this.aoLightValueScratchXYZPPP + this.aoLightValueScratchXYPP) / 4.0F;
var10 = (this.aoLightValueYPos + this.aoLightValueScratchYZPN + this.aoLightValueScratchXYPP + this.aoLightValueScratchXYZPPN) / 4.0F;
var11 = (this.aoLightValueScratchXYNP + this.aoLightValueScratchXYZNPN + this.aoLightValueYPos + this.aoLightValueScratchYZPN) / 4.0F;
this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXYZNPP, this.aoBrightnessXYNP, this.aoBrightnessYZPP, var24);
this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessYZPP, this.aoBrightnessXYZPPP, this.aoBrightnessXYPP, var24);
this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessYZPN, this.aoBrightnessXYPP, this.aoBrightnessXYZPPN, var24);
this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessXYNP, this.aoBrightnessXYZNPN, this.aoBrightnessYZPN, var24);
}
else
{
var12 = this.aoLightValueYPos;
var11 = this.aoLightValueYPos;
var10 = this.aoLightValueYPos;
var9 = this.aoLightValueYPos;
this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var24;
}
this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = var14 ? par5 : 1.0F;
this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = var14 ? par6 : 1.0F;
this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = var14 ? par7 : 1.0F;
this.colorRedTopLeft *= var9;
this.colorGreenTopLeft *= var9;
this.colorBlueTopLeft *= var9;
this.colorRedBottomLeft *= var10;
this.colorGreenBottomLeft *= var10;
this.colorBlueBottomLeft *= var10;
this.colorRedBottomRight *= var11;
this.colorGreenBottomRight *= var11;
this.colorBlueBottomRight *= var11;
this.colorRedTopRight *= var12;
this.colorGreenTopRight *= var12;
this.colorBlueTopRight *= var12;
this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1));
var8 = true;
}
int var27;
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2))
{
if (this.aoType > 0)
{
if (this.renderMinZ <= 0.0D)
{
--par4;
}
this.aoLightValueScratchXZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4);
this.aoLightValueScratchYZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4);
this.aoLightValueScratchYZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4);
this.aoLightValueScratchXZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4);
this.aoBrightnessXZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4);
this.aoBrightnessYZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4);
this.aoBrightnessYZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4);
this.aoBrightnessXZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4);
if (!this.aoGrassXYZNCN && !this.aoGrassXYZCNN)
{
this.aoLightValueScratchXYZNNN = this.aoLightValueScratchXZNN;
this.aoBrightnessXYZNNN = this.aoBrightnessXZNN;
}
else
{
this.aoLightValueScratchXYZNNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 - 1, par4);
this.aoBrightnessXYZNNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 - 1, par4);
}
if (!this.aoGrassXYZNCN && !this.aoGrassXYZCPN)
{
this.aoLightValueScratchXYZNPN = this.aoLightValueScratchXZNN;
this.aoBrightnessXYZNPN = this.aoBrightnessXZNN;
}
else
{
this.aoLightValueScratchXYZNPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 + 1, par4);
this.aoBrightnessXYZNPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 + 1, par4);
}
if (!this.aoGrassXYZPCN && !this.aoGrassXYZCNN)
{
this.aoLightValueScratchXYZPNN = this.aoLightValueScratchXZPN;
this.aoBrightnessXYZPNN = this.aoBrightnessXZPN;
}
else
{
this.aoLightValueScratchXYZPNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 - 1, par4);
this.aoBrightnessXYZPNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 - 1, par4);
}
if (!this.aoGrassXYZPCN && !this.aoGrassXYZCPN)
{
this.aoLightValueScratchXYZPPN = this.aoLightValueScratchXZPN;
this.aoBrightnessXYZPPN = this.aoBrightnessXZPN;
}
else
{
this.aoLightValueScratchXYZPPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 + 1, par4);
this.aoBrightnessXYZPPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 + 1, par4);
}
if (this.renderMinZ <= 0.0D)
{
++par4;
}
var9 = (this.aoLightValueScratchXZNN + this.aoLightValueScratchXYZNPN + this.aoLightValueZNeg + this.aoLightValueScratchYZPN) / 4.0F;
var10 = (this.aoLightValueZNeg + this.aoLightValueScratchYZPN + this.aoLightValueScratchXZPN + this.aoLightValueScratchXYZPPN) / 4.0F;
var11 = (this.aoLightValueScratchYZNN + this.aoLightValueZNeg + this.aoLightValueScratchXYZPNN + this.aoLightValueScratchXZPN) / 4.0F;
var12 = (this.aoLightValueScratchXYZNNN + this.aoLightValueScratchXZNN + this.aoLightValueScratchYZNN + this.aoLightValueZNeg) / 4.0F;
this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXZNN, this.aoBrightnessXYZNPN, this.aoBrightnessYZPN, var22);
this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessYZPN, this.aoBrightnessXZPN, this.aoBrightnessXYZPPN, var22);
this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessYZNN, this.aoBrightnessXYZPNN, this.aoBrightnessXZPN, var22);
this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXYZNNN, this.aoBrightnessXZNN, this.aoBrightnessYZNN, var22);
}
else
{
var12 = this.aoLightValueZNeg;
var11 = this.aoLightValueZNeg;
var10 = this.aoLightValueZNeg;
var9 = this.aoLightValueZNeg;
this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var22;
}
this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var15 ? par5 : 1.0F) * 0.8F;
this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var15 ? par6 : 1.0F) * 0.8F;
this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var15 ? par7 : 1.0F) * 0.8F;
this.colorRedTopLeft *= var9;
this.colorGreenTopLeft *= var9;
this.colorBlueTopLeft *= var9;
this.colorRedBottomLeft *= var10;
this.colorGreenBottomLeft *= var10;
this.colorBlueBottomLeft *= var10;
this.colorRedBottomRight *= var11;
this.colorGreenBottomRight *= var11;
this.colorBlueBottomRight *= var11;
this.colorRedTopRight *= var12;
this.colorGreenTopRight *= var12;
this.colorBlueTopRight *= var12;
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0)
{
this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5;
this.colorRedBottomRight *= par5;
this.colorRedTopRight *= par5;
this.colorGreenTopLeft *= par6;
this.colorGreenBottomLeft *= par6;
this.colorGreenBottomRight *= par6;
this.colorGreenTopRight *= par6;
this.colorBlueTopLeft *= par7;
this.colorBlueBottomLeft *= par7;
this.colorBlueBottomRight *= par7;
this.colorBlueTopRight *= par7;
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var8 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3))
{
if (this.aoType > 0)
{
if (this.renderMaxZ >= 1.0D)
{
++par4;
}
this.aoLightValueScratchXZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3, par4);
this.aoLightValueScratchXZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3, par4);
this.aoLightValueScratchYZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4);
this.aoLightValueScratchYZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4);
this.aoBrightnessXZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4);
this.aoBrightnessXZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4);
this.aoBrightnessYZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4);
this.aoBrightnessYZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4);
if (!this.aoGrassXYZNCP && !this.aoGrassXYZCNP)
{
this.aoLightValueScratchXYZNNP = this.aoLightValueScratchXZNP;
this.aoBrightnessXYZNNP = this.aoBrightnessXZNP;
}
else
{
this.aoLightValueScratchXYZNNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 - 1, par4);
this.aoBrightnessXYZNNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 - 1, par4);
}
if (!this.aoGrassXYZNCP && !this.aoGrassXYZCPP)
{
this.aoLightValueScratchXYZNPP = this.aoLightValueScratchXZNP;
this.aoBrightnessXYZNPP = this.aoBrightnessXZNP;
}
else
{
this.aoLightValueScratchXYZNPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 - 1, par3 + 1, par4);
this.aoBrightnessXYZNPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3 + 1, par4);
}
if (!this.aoGrassXYZPCP && !this.aoGrassXYZCNP)
{
this.aoLightValueScratchXYZPNP = this.aoLightValueScratchXZPP;
this.aoBrightnessXYZPNP = this.aoBrightnessXZPP;
}
else
{
this.aoLightValueScratchXYZPNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 - 1, par4);
this.aoBrightnessXYZPNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 - 1, par4);
}
if (!this.aoGrassXYZPCP && !this.aoGrassXYZCPP)
{
this.aoLightValueScratchXYZPPP = this.aoLightValueScratchXZPP;
this.aoBrightnessXYZPPP = this.aoBrightnessXZPP;
}
else
{
this.aoLightValueScratchXYZPPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2 + 1, par3 + 1, par4);
this.aoBrightnessXYZPPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3 + 1, par4);
}
if (this.renderMaxZ >= 1.0D)
{
--par4;
}
var9 = (this.aoLightValueScratchXZNP + this.aoLightValueScratchXYZNPP + this.aoLightValueZPos + this.aoLightValueScratchYZPP) / 4.0F;
var12 = (this.aoLightValueZPos + this.aoLightValueScratchYZPP + this.aoLightValueScratchXZPP + this.aoLightValueScratchXYZPPP) / 4.0F;
var11 = (this.aoLightValueScratchYZNP + this.aoLightValueZPos + this.aoLightValueScratchXYZPNP + this.aoLightValueScratchXZPP) / 4.0F;
var10 = (this.aoLightValueScratchXYZNNP + this.aoLightValueScratchXZNP + this.aoLightValueScratchYZNP + this.aoLightValueZPos) / 4.0F;
this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXZNP, this.aoBrightnessXYZNPP, this.aoBrightnessYZPP, var25);
this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessYZPP, this.aoBrightnessXZPP, this.aoBrightnessXYZPPP, var25);
this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessYZNP, this.aoBrightnessXYZPNP, this.aoBrightnessXZPP, var25);
this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXYZNNP, this.aoBrightnessXZNP, this.aoBrightnessYZNP, var25);
}
else
{
var12 = this.aoLightValueZPos;
var11 = this.aoLightValueZPos;
var10 = this.aoLightValueZPos;
var9 = this.aoLightValueZPos;
this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var25;
}
this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var16 ? par5 : 1.0F) * 0.8F;
this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var16 ? par6 : 1.0F) * 0.8F;
this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var16 ? par7 : 1.0F) * 0.8F;
this.colorRedTopLeft *= var9;
this.colorGreenTopLeft *= var9;
this.colorBlueTopLeft *= var9;
this.colorRedBottomLeft *= var10;
this.colorGreenBottomLeft *= var10;
this.colorBlueBottomLeft *= var10;
this.colorRedBottomRight *= var11;
this.colorGreenBottomRight *= var11;
this.colorBlueBottomRight *= var11;
this.colorRedTopRight *= var12;
this.colorGreenTopRight *= var12;
this.colorBlueTopRight *= var12;
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3));
if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0)
{
this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5;
this.colorRedBottomRight *= par5;
this.colorRedTopRight *= par5;
this.colorGreenTopLeft *= par6;
this.colorGreenBottomLeft *= par6;
this.colorGreenBottomRight *= par6;
this.colorGreenTopRight *= par6;
this.colorBlueTopLeft *= par7;
this.colorBlueBottomLeft *= par7;
this.colorBlueBottomRight *= par7;
this.colorBlueTopRight *= par7;
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var8 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4))
{
if (this.aoType > 0)
{
if (this.renderMinX <= 0.0D)
{
--par2;
}
this.aoLightValueScratchXYNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4);
this.aoLightValueScratchXZNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1);
this.aoLightValueScratchXZNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1);
this.aoLightValueScratchXYNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4);
this.aoBrightnessXYNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4);
this.aoBrightnessXZNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1);
this.aoBrightnessXZNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1);
this.aoBrightnessXYNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4);
if (!this.aoGrassXYZNCN && !this.aoGrassXYZNNC)
{
this.aoLightValueScratchXYZNNN = this.aoLightValueScratchXZNN;
this.aoBrightnessXYZNNN = this.aoBrightnessXZNN;
}
else
{
this.aoLightValueScratchXYZNNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 - 1);
this.aoBrightnessXYZNNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 - 1);
}
if (!this.aoGrassXYZNCP && !this.aoGrassXYZNNC)
{
this.aoLightValueScratchXYZNNP = this.aoLightValueScratchXZNP;
this.aoBrightnessXYZNNP = this.aoBrightnessXZNP;
}
else
{
this.aoLightValueScratchXYZNNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 + 1);
this.aoBrightnessXYZNNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 + 1);
}
if (!this.aoGrassXYZNCN && !this.aoGrassXYZNPC)
{
this.aoLightValueScratchXYZNPN = this.aoLightValueScratchXZNN;
this.aoBrightnessXYZNPN = this.aoBrightnessXZNN;
}
else
{
this.aoLightValueScratchXYZNPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 - 1);
this.aoBrightnessXYZNPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 - 1);
}
if (!this.aoGrassXYZNCP && !this.aoGrassXYZNPC)
{
this.aoLightValueScratchXYZNPP = this.aoLightValueScratchXZNP;
this.aoBrightnessXYZNPP = this.aoBrightnessXZNP;
}
else
{
this.aoLightValueScratchXYZNPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 + 1);
this.aoBrightnessXYZNPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 + 1);
}
if (this.renderMinX <= 0.0D)
{
++par2;
}
var12 = (this.aoLightValueScratchXYNN + this.aoLightValueScratchXYZNNP + this.aoLightValueXNeg + this.aoLightValueScratchXZNP) / 4.0F;
var9 = (this.aoLightValueXNeg + this.aoLightValueScratchXZNP + this.aoLightValueScratchXYNP + this.aoLightValueScratchXYZNPP) / 4.0F;
var10 = (this.aoLightValueScratchXZNN + this.aoLightValueXNeg + this.aoLightValueScratchXYZNPN + this.aoLightValueScratchXYNP) / 4.0F;
var11 = (this.aoLightValueScratchXYZNNN + this.aoLightValueScratchXYNN + this.aoLightValueScratchXZNN + this.aoLightValueXNeg) / 4.0F;
this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXYNN, this.aoBrightnessXYZNNP, this.aoBrightnessXZNP, var20);
this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXZNP, this.aoBrightnessXYNP, this.aoBrightnessXYZNPP, var20);
this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXZNN, this.aoBrightnessXYZNPN, this.aoBrightnessXYNP, var20);
this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessXYZNNN, this.aoBrightnessXYNN, this.aoBrightnessXZNN, var20);
}
else
{
var12 = this.aoLightValueXNeg;
var11 = this.aoLightValueXNeg;
var10 = this.aoLightValueXNeg;
var9 = this.aoLightValueXNeg;
this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var20;
}
this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var17 ? par5 : 1.0F) * 0.6F;
this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var17 ? par6 : 1.0F) * 0.6F;
this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var17 ? par7 : 1.0F) * 0.6F;
this.colorRedTopLeft *= var9;
this.colorGreenTopLeft *= var9;
this.colorBlueTopLeft *= var9;
this.colorRedBottomLeft *= var10;
this.colorGreenBottomLeft *= var10;
this.colorBlueBottomLeft *= var10;
this.colorRedBottomRight *= var11;
this.colorGreenBottomRight *= var11;
this.colorBlueBottomRight *= var11;
this.colorRedTopRight *= var12;
this.colorGreenTopRight *= var12;
this.colorBlueTopRight *= var12;
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0)
{
this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5;
this.colorRedBottomRight *= par5;
this.colorRedTopRight *= par5;
this.colorGreenTopLeft *= par6;
this.colorGreenBottomLeft *= par6;
this.colorGreenBottomRight *= par6;
this.colorGreenTopRight *= par6;
this.colorBlueTopLeft *= par7;
this.colorBlueBottomLeft *= par7;
this.colorBlueBottomRight *= par7;
this.colorBlueTopRight *= par7;
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var8 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5))
{
if (this.aoType > 0)
{
if (this.renderMaxX >= 1.0D)
{
++par2;
}
this.aoLightValueScratchXYPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4);
this.aoLightValueScratchXZPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 - 1);
this.aoLightValueScratchXZPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3, par4 + 1);
this.aoLightValueScratchXYPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4);
this.aoBrightnessXYPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4);
this.aoBrightnessXZPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1);
this.aoBrightnessXZPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1);
this.aoBrightnessXYPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4);
if (!this.aoGrassXYZPNC && !this.aoGrassXYZPCN)
{
this.aoLightValueScratchXYZPNN = this.aoLightValueScratchXZPN;
this.aoBrightnessXYZPNN = this.aoBrightnessXZPN;
}
else
{
this.aoLightValueScratchXYZPNN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 - 1);
this.aoBrightnessXYZPNN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 - 1);
}
if (!this.aoGrassXYZPNC && !this.aoGrassXYZPCP)
{
this.aoLightValueScratchXYZPNP = this.aoLightValueScratchXZPP;
this.aoBrightnessXYZPNP = this.aoBrightnessXZPP;
}
else
{
this.aoLightValueScratchXYZPNP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 - 1, par4 + 1);
this.aoBrightnessXYZPNP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4 + 1);
}
if (!this.aoGrassXYZPPC && !this.aoGrassXYZPCN)
{
this.aoLightValueScratchXYZPPN = this.aoLightValueScratchXZPN;
this.aoBrightnessXYZPPN = this.aoBrightnessXZPN;
}
else
{
this.aoLightValueScratchXYZPPN = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 - 1);
this.aoBrightnessXYZPPN = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 - 1);
}
if (!this.aoGrassXYZPPC && !this.aoGrassXYZPCP)
{
this.aoLightValueScratchXYZPPP = this.aoLightValueScratchXZPP;
this.aoBrightnessXYZPPP = this.aoBrightnessXZPP;
}
else
{
this.aoLightValueScratchXYZPPP = par1Block.getAmbientOcclusionLightValue(this.blockAccess, par2, par3 + 1, par4 + 1);
this.aoBrightnessXYZPPP = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4 + 1);
}
if (this.renderMaxX >= 1.0D)
{
--par2;
}
var9 = (this.aoLightValueScratchXYPN + this.aoLightValueScratchXYZPNP + this.aoLightValueXPos + this.aoLightValueScratchXZPP) / 4.0F;
var12 = (this.aoLightValueXPos + this.aoLightValueScratchXZPP + this.aoLightValueScratchXYPP + this.aoLightValueScratchXYZPPP) / 4.0F;
var11 = (this.aoLightValueScratchXZPN + this.aoLightValueXPos + this.aoLightValueScratchXYZPPN + this.aoLightValueScratchXYPP) / 4.0F;
var10 = (this.aoLightValueScratchXYZPNN + this.aoLightValueScratchXYPN + this.aoLightValueScratchXZPN + this.aoLightValueXPos) / 4.0F;
this.brightnessTopLeft = this.getAoBrightness(this.aoBrightnessXYPN, this.aoBrightnessXYZPNP, this.aoBrightnessXZPP, var23);
this.brightnessTopRight = this.getAoBrightness(this.aoBrightnessXZPP, this.aoBrightnessXYPP, this.aoBrightnessXYZPPP, var23);
this.brightnessBottomRight = this.getAoBrightness(this.aoBrightnessXZPN, this.aoBrightnessXYZPPN, this.aoBrightnessXYPP, var23);
this.brightnessBottomLeft = this.getAoBrightness(this.aoBrightnessXYZPNN, this.aoBrightnessXYPN, this.aoBrightnessXZPN, var23);
}
else
{
var12 = this.aoLightValueXPos;
var11 = this.aoLightValueXPos;
var10 = this.aoLightValueXPos;
var9 = this.aoLightValueXPos;
this.brightnessTopLeft = this.brightnessBottomLeft = this.brightnessBottomRight = this.brightnessTopRight = var23;
}
this.colorRedTopLeft = this.colorRedBottomLeft = this.colorRedBottomRight = this.colorRedTopRight = (var18 ? par5 : 1.0F) * 0.6F;
this.colorGreenTopLeft = this.colorGreenBottomLeft = this.colorGreenBottomRight = this.colorGreenTopRight = (var18 ? par6 : 1.0F) * 0.6F;
this.colorBlueTopLeft = this.colorBlueBottomLeft = this.colorBlueBottomRight = this.colorBlueTopRight = (var18 ? par7 : 1.0F) * 0.6F;
this.colorRedTopLeft *= var9;
this.colorGreenTopLeft *= var9;
this.colorBlueTopLeft *= var9;
this.colorRedBottomLeft *= var10;
this.colorGreenBottomLeft *= var10;
this.colorBlueBottomLeft *= var10;
this.colorRedBottomRight *= var11;
this.colorGreenBottomRight *= var11;
this.colorBlueBottomRight *= var11;
this.colorRedTopRight *= var12;
this.colorGreenTopRight *= var12;
this.colorBlueTopRight *= var12;
var27 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var27);
if (Tessellator.instance.defaultTexture && fancyGrass && var27 == 3 && this.overrideBlockTexture < 0)
{
this.colorRedTopLeft *= par5;
this.colorRedBottomLeft *= par5;
this.colorRedBottomRight *= par5;
this.colorRedTopRight *= par5;
this.colorGreenTopLeft *= par6;
this.colorGreenBottomLeft *= par6;
this.colorGreenBottomRight *= par6;
this.colorGreenTopRight *= par6;
this.colorBlueTopLeft *= par7;
this.colorBlueBottomLeft *= par7;
this.colorBlueBottomRight *= par7;
this.colorBlueTopRight *= par7;
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var8 = true;
}
this.enableAO = false;
return var8;
}
/**
* Get ambient occlusion brightness
*/
public int getAoBrightness(int par1, int par2, int par3, int par4)
{
if (par1 == 0)
{
par1 = par4;
}
if (par2 == 0)
{
par2 = par4;
}
if (par3 == 0)
{
par3 = par4;
}
return par1 + par2 + par3 + par4 >> 2 & 16711935;
}
/**
* Renders a standard cube block at the given coordinates, with a given color ratio. Args: block, x, y, z, r, g, b
*/
public boolean renderStandardBlockWithColorMultiplier(Block par1Block, int par2, int par3, int par4, float par5, float par6, float par7)
{
this.enableAO = false;
Tessellator var8 = Tessellator.instance;
boolean var9 = false;
float var10 = 0.5F;
float var11 = 1.0F;
float var12 = 0.8F;
float var13 = 0.6F;
float var14 = var11 * par5;
float var15 = var11 * par6;
float var16 = var11 * par7;
float var17 = var10;
float var18 = var12;
float var19 = var13;
float var20 = var10;
float var21 = var12;
float var22 = var13;
float var23 = var10;
float var24 = var12;
float var25 = var13;
if (par1Block != Block.grass)
{
var17 = var10 * par5;
var18 = var12 * par5;
var19 = var13 * par5;
var20 = var10 * par6;
var21 = var12 * par6;
var22 = var13 * par6;
var23 = var10 * par7;
var24 = var12 * par7;
var25 = var13 * par7;
}
int var26 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4);
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0))
{
var8.setBrightness(this.renderMinY > 0.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4));
var8.setColorOpaque_F(var17, var20, var23);
this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0));
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1))
{
var8.setBrightness(this.renderMaxY < 1.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
var8.setColorOpaque_F(var14, var15, var16);
this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1));
var9 = true;
}
int var28;
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2))
{
var8.setBrightness(this.renderMinZ > 0.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1));
var8.setColorOpaque_F(var18, var21, var24);
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0)
{
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3))
{
var8.setBrightness(this.renderMaxZ < 1.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1));
var8.setColorOpaque_F(var18, var21, var24);
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0)
{
var8.setColorOpaque_F(var18 * par5, var21 * par6, var24 * par7);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4))
{
var8.setBrightness(this.renderMinX > 0.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4));
var8.setColorOpaque_F(var19, var22, var25);
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0)
{
var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5))
{
var8.setBrightness(this.renderMaxX < 1.0D ? var26 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4));
var8.setColorOpaque_F(var19, var22, var25);
var28 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var28);
if (Tessellator.instance.defaultTexture && fancyGrass && var28 == 3 && this.overrideBlockTexture < 0)
{
var8.setColorOpaque_F(var19 * par5, var22 * par6, var25 * par7);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, 38);
}
var9 = true;
}
return var9;
}
/**
* Renders a Cocoa block at the given coordinates
*/
public boolean renderBlockCocoa(BlockCocoa par1BlockCocoa, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
var5.setBrightness(par1BlockCocoa.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4));
var5.setColorOpaque_F(1.0F, 1.0F, 1.0F);
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
int var7 = par1BlockCocoa.getBlockTextureFromSide(1);
int var8 = BlockDirectional.getDirection(var6);
int var9 = BlockCocoa.func_72219_c(var6);
var7 = var7 + 2 - var9;
int var10 = 4 + var9 * 2;
int var11 = 5 + var9 * 2;
int var12 = (var7 & 15) << 4;
int var13 = var7 & 240;
double var14 = 15.0D - (double)var10;
double var16 = 15.0D;
double var18 = 4.0D;
double var20 = 4.0D + (double)var11;
double var22 = ((double)var12 + var14) / 256.0D;
double var24 = ((double)var12 + var16 - 0.01D) / 256.0D;
double var26 = ((double)var13 + var18) / 256.0D;
double var28 = ((double)var13 + var20 - 0.01D) / 256.0D;
double var30 = 0.0D;
double var32 = 0.0D;
switch (var8)
{
case 0:
var30 = 8.0D - (double)(var10 / 2);
var32 = 15.0D - (double)var10;
break;
case 1:
var30 = 1.0D;
var32 = 8.0D - (double)(var10 / 2);
break;
case 2:
var30 = 8.0D - (double)(var10 / 2);
var32 = 1.0D;
break;
case 3:
var30 = 15.0D - (double)var10;
var32 = 8.0D - (double)(var10 / 2);
}
double var34 = (double)par2 + var30 / 16.0D;
double var36 = (double)par2 + (var30 + (double)var10) / 16.0D;
double var38 = (double)par3 + (12.0D - (double)var11) / 16.0D;
double var40 = (double)par3 + 0.75D;
double var42 = (double)par4 + var32 / 16.0D;
double var44 = (double)par4 + (var32 + (double)var10) / 16.0D;
var5.addVertexWithUV(var34, var38, var42, var22, var28);
var5.addVertexWithUV(var34, var38, var44, var24, var28);
var5.addVertexWithUV(var34, var40, var44, var24, var26);
var5.addVertexWithUV(var34, var40, var42, var22, var26);
var5.addVertexWithUV(var36, var38, var44, var22, var28);
var5.addVertexWithUV(var36, var38, var42, var24, var28);
var5.addVertexWithUV(var36, var40, var42, var24, var26);
var5.addVertexWithUV(var36, var40, var44, var22, var26);
var5.addVertexWithUV(var36, var38, var42, var22, var28);
var5.addVertexWithUV(var34, var38, var42, var24, var28);
var5.addVertexWithUV(var34, var40, var42, var24, var26);
var5.addVertexWithUV(var36, var40, var42, var22, var26);
var5.addVertexWithUV(var34, var38, var44, var22, var28);
var5.addVertexWithUV(var36, var38, var44, var24, var28);
var5.addVertexWithUV(var36, var40, var44, var24, var26);
var5.addVertexWithUV(var34, var40, var44, var22, var26);
int var46 = var10;
if (var9 >= 2)
{
var46 = var10 - 1;
}
var22 = (double)((float)(var12 + 0) / 256.0F);
var24 = ((double)(var12 + var46) - 0.01D) / 256.0D;
var26 = (double)((float)(var13 + 0) / 256.0F);
var28 = ((double)(var13 + var46) - 0.01D) / 256.0D;
var5.addVertexWithUV(var34, var40, var44, var22, var28);
var5.addVertexWithUV(var36, var40, var44, var24, var28);
var5.addVertexWithUV(var36, var40, var42, var24, var26);
var5.addVertexWithUV(var34, var40, var42, var22, var26);
var5.addVertexWithUV(var34, var38, var42, var22, var26);
var5.addVertexWithUV(var36, var38, var42, var24, var26);
var5.addVertexWithUV(var36, var38, var44, var24, var28);
var5.addVertexWithUV(var34, var38, var44, var22, var28);
var22 = (double)((float)(var12 + 12) / 256.0F);
var24 = ((double)(var12 + 16) - 0.01D) / 256.0D;
var26 = (double)((float)(var13 + 0) / 256.0F);
var28 = ((double)(var13 + 4) - 0.01D) / 256.0D;
var30 = 8.0D;
var32 = 0.0D;
double var47;
switch (var8)
{
case 0:
var30 = 8.0D;
var32 = 12.0D;
var47 = var22;
var22 = var24;
var24 = var47;
break;
case 1:
var30 = 0.0D;
var32 = 8.0D;
break;
case 2:
var30 = 8.0D;
var32 = 0.0D;
break;
case 3:
var30 = 12.0D;
var32 = 8.0D;
var47 = var22;
var22 = var24;
var24 = var47;
}
var34 = (double)par2 + var30 / 16.0D;
var36 = (double)par2 + (var30 + 4.0D) / 16.0D;
var38 = (double)par3 + 0.75D;
var40 = (double)par3 + 1.0D;
var42 = (double)par4 + var32 / 16.0D;
var44 = (double)par4 + (var32 + 4.0D) / 16.0D;
if (var8 != 2 && var8 != 0)
{
if (var8 == 1 || var8 == 3)
{
var5.addVertexWithUV(var36, var38, var42, var22, var28);
var5.addVertexWithUV(var34, var38, var42, var24, var28);
var5.addVertexWithUV(var34, var40, var42, var24, var26);
var5.addVertexWithUV(var36, var40, var42, var22, var26);
var5.addVertexWithUV(var34, var38, var42, var24, var28);
var5.addVertexWithUV(var36, var38, var42, var22, var28);
var5.addVertexWithUV(var36, var40, var42, var22, var26);
var5.addVertexWithUV(var34, var40, var42, var24, var26);
}
}
else
{
var5.addVertexWithUV(var34, var38, var42, var24, var28);
var5.addVertexWithUV(var34, var38, var44, var22, var28);
var5.addVertexWithUV(var34, var40, var44, var22, var26);
var5.addVertexWithUV(var34, var40, var42, var24, var26);
var5.addVertexWithUV(var34, var38, var44, var22, var28);
var5.addVertexWithUV(var34, var38, var42, var24, var28);
var5.addVertexWithUV(var34, var40, var42, var24, var26);
var5.addVertexWithUV(var34, var40, var44, var22, var26);
}
return true;
}
/**
* Renders beacon block
*/
public boolean renderBlockBeacon(BlockBeacon par1BlockBeacon, int par2, int par3, int par4)
{
float var5 = 0.1875F;
this.setOverrideBlockTexture(Block.obsidian.blockIndexInTexture);
this.setRenderBounds(0.125D, 0.0062500000931322575D, 0.125D, 0.875D, (double)var5, 0.875D);
this.renderStandardBlock(par1BlockBeacon, par2, par3, par4);
this.setOverrideBlockTexture(Block.glass.blockIndexInTexture);
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
this.renderStandardBlock(par1BlockBeacon, par2, par3, par4);
this.setOverrideBlockTexture(41);
this.setRenderBounds(0.1875D, (double)var5, 0.1875D, 0.8125D, 0.875D, 0.8125D);
this.renderStandardBlock(par1BlockBeacon, par2, par3, par4);
this.clearOverrideBlockTexture();
return true;
}
/**
* Renders a cactus block at the given coordinates
*/
public boolean renderBlockCactus(Block par1Block, int par2, int par3, int par4)
{
int var5 = par1Block.colorMultiplier(this.blockAccess, par2, par3, par4);
float var6 = (float)(var5 >> 16 & 255) / 255.0F;
float var7 = (float)(var5 >> 8 & 255) / 255.0F;
float var8 = (float)(var5 & 255) / 255.0F;
if (EntityRenderer.anaglyphEnable)
{
float var9 = (var6 * 30.0F + var7 * 59.0F + var8 * 11.0F) / 100.0F;
float var10 = (var6 * 30.0F + var7 * 70.0F) / 100.0F;
float var11 = (var6 * 30.0F + var8 * 70.0F) / 100.0F;
var6 = var9;
var7 = var10;
var8 = var11;
}
return this.renderBlockCactusImpl(par1Block, par2, par3, par4, var6, var7, var8);
}
/**
* Render block cactus implementation
*/
public boolean renderBlockCactusImpl(Block par1Block, int par2, int par3, int par4, float par5, float par6, float par7)
{
Tessellator var8 = Tessellator.instance;
boolean var9 = false;
float var10 = 0.5F;
float var11 = 1.0F;
float var12 = 0.8F;
float var13 = 0.6F;
float var14 = var10 * par5;
float var15 = var11 * par5;
float var16 = var12 * par5;
float var17 = var13 * par5;
float var18 = var10 * par6;
float var19 = var11 * par6;
float var20 = var12 * par6;
float var21 = var13 * par6;
float var22 = var10 * par7;
float var23 = var11 * par7;
float var24 = var12 * par7;
float var25 = var13 * par7;
float var26 = 0.0625F;
int var28 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4);
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 - 1, par4, 0))
{
var8.setBrightness(this.renderMinY > 0.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4));
var8.setColorOpaque_F(var14, var18, var22);
this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0));
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3 + 1, par4, 1))
{
var8.setBrightness(this.renderMaxY < 1.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
var8.setColorOpaque_F(var15, var19, var23);
this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1));
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 - 1, 2))
{
var8.setBrightness(this.renderMinZ > 0.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1));
var8.setColorOpaque_F(var16, var20, var24);
var8.addTranslation(0.0F, 0.0F, var26);
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2));
var8.addTranslation(0.0F, 0.0F, -var26);
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2, par3, par4 + 1, 3))
{
var8.setBrightness(this.renderMaxZ < 1.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1));
var8.setColorOpaque_F(var16, var20, var24);
var8.addTranslation(0.0F, 0.0F, -var26);
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3));
var8.addTranslation(0.0F, 0.0F, var26);
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 - 1, par3, par4, 4))
{
var8.setBrightness(this.renderMinX > 0.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4));
var8.setColorOpaque_F(var17, var21, var25);
var8.addTranslation(var26, 0.0F, 0.0F);
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4));
var8.addTranslation(-var26, 0.0F, 0.0F);
var9 = true;
}
if (this.renderAllFaces || par1Block.shouldSideBeRendered(this.blockAccess, par2 + 1, par3, par4, 5))
{
var8.setBrightness(this.renderMaxX < 1.0D ? var28 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4));
var8.setColorOpaque_F(var17, var21, var25);
var8.addTranslation(-var26, 0.0F, 0.0F);
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5));
var8.addTranslation(var26, 0.0F, 0.0F);
var9 = true;
}
return var9;
}
public boolean renderBlockFence(BlockFence par1BlockFence, int par2, int par3, int par4)
{
boolean var5 = false;
float var6 = 0.375F;
float var7 = 0.625F;
this.setRenderBounds((double)var6, 0.0D, (double)var6, (double)var7, 1.0D, (double)var7);
this.renderStandardBlock(par1BlockFence, par2, par3, par4);
var5 = true;
boolean var8 = false;
boolean var9 = false;
if (par1BlockFence.canConnectFenceTo(this.blockAccess, par2 - 1, par3, par4) || par1BlockFence.canConnectFenceTo(this.blockAccess, par2 + 1, par3, par4))
{
var8 = true;
}
if (par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 - 1) || par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 + 1))
{
var9 = true;
}
boolean var10 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2 - 1, par3, par4);
boolean var11 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2 + 1, par3, par4);
boolean var12 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 - 1);
boolean var13 = par1BlockFence.canConnectFenceTo(this.blockAccess, par2, par3, par4 + 1);
if (!var8 && !var9)
{
var8 = true;
}
var6 = 0.4375F;
var7 = 0.5625F;
float var14 = 0.75F;
float var15 = 0.9375F;
float var16 = var10 ? 0.0F : var6;
float var17 = var11 ? 1.0F : var7;
float var18 = var12 ? 0.0F : var6;
float var19 = var13 ? 1.0F : var7;
if (var8)
{
this.setRenderBounds((double)var16, (double)var14, (double)var6, (double)var17, (double)var15, (double)var7);
this.renderStandardBlock(par1BlockFence, par2, par3, par4);
var5 = true;
}
if (var9)
{
this.setRenderBounds((double)var6, (double)var14, (double)var18, (double)var7, (double)var15, (double)var19);
this.renderStandardBlock(par1BlockFence, par2, par3, par4);
var5 = true;
}
var14 = 0.375F;
var15 = 0.5625F;
if (var8)
{
this.setRenderBounds((double)var16, (double)var14, (double)var6, (double)var17, (double)var15, (double)var7);
this.renderStandardBlock(par1BlockFence, par2, par3, par4);
var5 = true;
}
if (var9)
{
this.setRenderBounds((double)var6, (double)var14, (double)var18, (double)var7, (double)var15, (double)var19);
this.renderStandardBlock(par1BlockFence, par2, par3, par4);
var5 = true;
}
par1BlockFence.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4);
return var5;
}
/**
* Renders wall block
*/
public boolean renderBlockWall(BlockWall par1BlockWall, int par2, int par3, int par4)
{
boolean var5 = par1BlockWall.canConnectWallTo(this.blockAccess, par2 - 1, par3, par4);
boolean var6 = par1BlockWall.canConnectWallTo(this.blockAccess, par2 + 1, par3, par4);
boolean var7 = par1BlockWall.canConnectWallTo(this.blockAccess, par2, par3, par4 - 1);
boolean var8 = par1BlockWall.canConnectWallTo(this.blockAccess, par2, par3, par4 + 1);
boolean var9 = var7 && var8 && !var5 && !var6;
boolean var10 = !var7 && !var8 && var5 && var6;
boolean var11 = this.blockAccess.isAirBlock(par2, par3 + 1, par4);
if ((var9 || var10) && var11)
{
if (var9)
{
this.setRenderBounds(0.3125D, 0.0D, 0.0D, 0.6875D, 0.8125D, 1.0D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
}
else
{
this.setRenderBounds(0.0D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
}
}
else
{
this.setRenderBounds(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
if (var5)
{
this.setRenderBounds(0.0D, 0.0D, 0.3125D, 0.25D, 0.8125D, 0.6875D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
}
if (var6)
{
this.setRenderBounds(0.75D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
}
if (var7)
{
this.setRenderBounds(0.3125D, 0.0D, 0.0D, 0.6875D, 0.8125D, 0.25D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
}
if (var8)
{
this.setRenderBounds(0.3125D, 0.0D, 0.75D, 0.6875D, 0.8125D, 1.0D);
this.renderStandardBlock(par1BlockWall, par2, par3, par4);
}
}
par1BlockWall.setBlockBoundsBasedOnState(this.blockAccess, par2, par3, par4);
return true;
}
public boolean renderBlockDragonEgg(BlockDragonEgg par1BlockDragonEgg, int par2, int par3, int par4)
{
boolean var5 = false;
int var6 = 0;
for (int var7 = 0; var7 < 8; ++var7)
{
byte var8 = 0;
byte var9 = 1;
if (var7 == 0)
{
var8 = 2;
}
if (var7 == 1)
{
var8 = 3;
}
if (var7 == 2)
{
var8 = 4;
}
if (var7 == 3)
{
var8 = 5;
var9 = 2;
}
if (var7 == 4)
{
var8 = 6;
var9 = 3;
}
if (var7 == 5)
{
var8 = 7;
var9 = 5;
}
if (var7 == 6)
{
var8 = 6;
var9 = 2;
}
if (var7 == 7)
{
var8 = 3;
}
float var10 = (float)var8 / 16.0F;
float var11 = 1.0F - (float)var6 / 16.0F;
float var12 = 1.0F - (float)(var6 + var9) / 16.0F;
var6 += var9;
this.setRenderBounds((double)(0.5F - var10), (double)var12, (double)(0.5F - var10), (double)(0.5F + var10), (double)var11, (double)(0.5F + var10));
this.renderStandardBlock(par1BlockDragonEgg, par2, par3, par4);
}
var5 = true;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
return var5;
}
/**
* Render block fence gate
*/
public boolean renderBlockFenceGate(BlockFenceGate par1BlockFenceGate, int par2, int par3, int par4)
{
boolean var5 = true;
int var6 = this.blockAccess.getBlockMetadata(par2, par3, par4);
boolean var7 = BlockFenceGate.isFenceGateOpen(var6);
int var8 = BlockDirectional.getDirection(var6);
float var9 = 0.375F;
float var10 = 0.5625F;
float var11 = 0.75F;
float var12 = 0.9375F;
float var13 = 0.3125F;
float var14 = 1.0F;
if ((var8 == 2 || var8 == 0) && this.blockAccess.getBlockId(par2 - 1, par3, par4) == Block.cobblestoneWall.blockID && this.blockAccess.getBlockId(par2 + 1, par3, par4) == Block.cobblestoneWall.blockID || (var8 == 3 || var8 == 1) && this.blockAccess.getBlockId(par2, par3, par4 - 1) == Block.cobblestoneWall.blockID && this.blockAccess.getBlockId(par2, par3, par4 + 1) == Block.cobblestoneWall.blockID)
{
var9 -= 0.1875F;
var10 -= 0.1875F;
var11 -= 0.1875F;
var12 -= 0.1875F;
var13 -= 0.1875F;
var14 -= 0.1875F;
}
this.renderAllFaces = true;
float var15;
float var17;
float var16;
float var18;
if (var8 != 3 && var8 != 1)
{
var15 = 0.0F;
var16 = 0.125F;
var17 = 0.4375F;
var18 = 0.5625F;
this.setRenderBounds((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var15 = 0.875F;
var16 = 1.0F;
this.setRenderBounds((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
else
{
this.uvRotateTop = 1;
var15 = 0.4375F;
var16 = 0.5625F;
var17 = 0.0F;
var18 = 0.125F;
this.setRenderBounds((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var17 = 0.875F;
var18 = 1.0F;
this.setRenderBounds((double)var15, (double)var13, (double)var17, (double)var16, (double)var14, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.uvRotateTop = 0;
}
if (var7)
{
if (var8 == 2 || var8 == 0)
{
this.uvRotateTop = 1;
}
if (var8 == 3)
{
this.setRenderBounds(0.8125D, (double)var9, 0.0D, 0.9375D, (double)var12, 0.125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.8125D, (double)var9, 0.875D, 0.9375D, (double)var12, 1.0D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.5625D, (double)var9, 0.0D, 0.8125D, (double)var10, 0.125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.5625D, (double)var9, 0.875D, 0.8125D, (double)var10, 1.0D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.5625D, (double)var11, 0.0D, 0.8125D, (double)var12, 0.125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.5625D, (double)var11, 0.875D, 0.8125D, (double)var12, 1.0D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
else if (var8 == 1)
{
this.setRenderBounds(0.0625D, (double)var9, 0.0D, 0.1875D, (double)var12, 0.125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.0625D, (double)var9, 0.875D, 0.1875D, (double)var12, 1.0D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.1875D, (double)var9, 0.0D, 0.4375D, (double)var10, 0.125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.1875D, (double)var9, 0.875D, 0.4375D, (double)var10, 1.0D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.1875D, (double)var11, 0.0D, 0.4375D, (double)var12, 0.125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.1875D, (double)var11, 0.875D, 0.4375D, (double)var12, 1.0D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
else if (var8 == 0)
{
this.setRenderBounds(0.0D, (double)var9, 0.8125D, 0.125D, (double)var12, 0.9375D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.875D, (double)var9, 0.8125D, 1.0D, (double)var12, 0.9375D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.0D, (double)var9, 0.5625D, 0.125D, (double)var10, 0.8125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.875D, (double)var9, 0.5625D, 1.0D, (double)var10, 0.8125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.0D, (double)var11, 0.5625D, 0.125D, (double)var12, 0.8125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.875D, (double)var11, 0.5625D, 1.0D, (double)var12, 0.8125D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
else if (var8 == 2)
{
this.setRenderBounds(0.0D, (double)var9, 0.0625D, 0.125D, (double)var12, 0.1875D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.875D, (double)var9, 0.0625D, 1.0D, (double)var12, 0.1875D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.0D, (double)var9, 0.1875D, 0.125D, (double)var10, 0.4375D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.875D, (double)var9, 0.1875D, 1.0D, (double)var10, 0.4375D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.0D, (double)var11, 0.1875D, 0.125D, (double)var12, 0.4375D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds(0.875D, (double)var11, 0.1875D, 1.0D, (double)var12, 0.4375D);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
}
else if (var8 != 3 && var8 != 1)
{
var15 = 0.375F;
var16 = 0.5F;
var17 = 0.4375F;
var18 = 0.5625F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var15 = 0.5F;
var16 = 0.625F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var15 = 0.625F;
var16 = 0.875F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var15 = 0.125F;
var16 = 0.375F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
else
{
this.uvRotateTop = 1;
var15 = 0.4375F;
var16 = 0.5625F;
var17 = 0.375F;
var18 = 0.5F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var17 = 0.5F;
var18 = 0.625F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var17 = 0.625F;
var18 = 0.875F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
var17 = 0.125F;
var18 = 0.375F;
this.setRenderBounds((double)var15, (double)var9, (double)var17, (double)var16, (double)var10, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
this.setRenderBounds((double)var15, (double)var11, (double)var17, (double)var16, (double)var12, (double)var18);
this.renderStandardBlock(par1BlockFenceGate, par2, par3, par4);
}
this.renderAllFaces = false;
this.uvRotateTop = 0;
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
return var5;
}
/**
* Renders a stair block at the given coordinates
*/
public boolean renderBlockStairs(BlockStairs par1BlockStairs, int par2, int par3, int par4)
{
par1BlockStairs.func_82541_d(this.blockAccess, par2, par3, par4);
this.setRenderBoundsFromBlock(par1BlockStairs);
this.renderStandardBlock(par1BlockStairs, par2, par3, par4);
boolean var5 = par1BlockStairs.func_82542_g(this.blockAccess, par2, par3, par4);
this.setRenderBoundsFromBlock(par1BlockStairs);
this.renderStandardBlock(par1BlockStairs, par2, par3, par4);
if (var5 && par1BlockStairs.func_82544_h(this.blockAccess, par2, par3, par4))
{
this.setRenderBoundsFromBlock(par1BlockStairs);
this.renderStandardBlock(par1BlockStairs, par2, par3, par4);
}
return true;
}
/**
* Renders a door block at the given coordinates
*/
public boolean renderBlockDoor(Block par1Block, int par2, int par3, int par4)
{
Tessellator var5 = Tessellator.instance;
boolean var6 = false;
float var7 = 0.5F;
float var8 = 1.0F;
float var9 = 0.8F;
float var10 = 0.6F;
int var11 = par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4);
var5.setBrightness(this.renderMinY > 0.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 - 1, par4));
var5.setColorOpaque_F(var7, var7, var7);
this.renderBottomFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 0));
var6 = true;
var5.setBrightness(this.renderMaxY < 1.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3 + 1, par4));
var5.setColorOpaque_F(var8, var8, var8);
this.renderTopFace(par1Block, (double)par2, (double)par3, (double)par4, par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 1));
var6 = true;
var5.setBrightness(this.renderMinZ > 0.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 - 1));
var5.setColorOpaque_F(var9, var9, var9);
int var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 2);
if (var13 < 0)
{
this.flipTexture = true;
var13 = -var13;
}
this.renderEastFace(par1Block, (double)par2, (double)par3, (double)par4, var13);
var6 = true;
this.flipTexture = false;
var5.setBrightness(this.renderMaxZ < 1.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2, par3, par4 + 1));
var5.setColorOpaque_F(var9, var9, var9);
var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 3);
if (var13 < 0)
{
this.flipTexture = true;
var13 = -var13;
}
this.renderWestFace(par1Block, (double)par2, (double)par3, (double)par4, var13);
var6 = true;
this.flipTexture = false;
var5.setBrightness(this.renderMinX > 0.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 - 1, par3, par4));
var5.setColorOpaque_F(var10, var10, var10);
var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 4);
if (var13 < 0)
{
this.flipTexture = true;
var13 = -var13;
}
this.renderNorthFace(par1Block, (double)par2, (double)par3, (double)par4, var13);
var6 = true;
this.flipTexture = false;
var5.setBrightness(this.renderMaxX < 1.0D ? var11 : par1Block.getMixedBrightnessForBlock(this.blockAccess, par2 + 1, par3, par4));
var5.setColorOpaque_F(var10, var10, var10);
var13 = par1Block.getBlockTexture(this.blockAccess, par2, par3, par4, 5);
if (var13 < 0)
{
this.flipTexture = true;
var13 = -var13;
}
this.renderSouthFace(par1Block, (double)par2, (double)par3, (double)par4, var13);
var6 = true;
this.flipTexture = false;
return var6;
}
/**
* Renders the given texture to the bottom face of the block. Args: block, x, y, z, texture
*/
public void renderBottomFace(Block par1Block, double par2, double par4, double par6, int par8)
{
Tessellator var9 = Tessellator.instance;
if (this.overrideBlockTexture >= 0)
{
par8 = this.overrideBlockTexture;
}
int var10 = (par8 & 15) << 4;
int var11 = par8 & 240;
double var12 = ((double)var10 + this.renderMinX * 16.0D) / 256.0D;
double var14 = ((double)var10 + this.renderMaxX * 16.0D - 0.01D) / 256.0D;
double var16 = ((double)var11 + this.renderMinZ * 16.0D) / 256.0D;
double var18 = ((double)var11 + this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
if (this.renderMinX < 0.0D || this.renderMaxX > 1.0D)
{
var12 = (double)(((float)var10 + 0.0F) / 256.0F);
var14 = (double)(((float)var10 + 15.99F) / 256.0F);
}
if (this.renderMinZ < 0.0D || this.renderMaxZ > 1.0D)
{
var16 = (double)(((float)var11 + 0.0F) / 256.0F);
var18 = (double)(((float)var11 + 15.99F) / 256.0F);
}
double var20 = var14;
double var22 = var12;
double var24 = var16;
double var26 = var18;
if (this.uvRotateBottom == 2)
{
var12 = ((double)var10 + this.renderMinZ * 16.0D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMaxX * 16.0D) / 256.0D;
var14 = ((double)var10 + this.renderMaxZ * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMinX * 16.0D) / 256.0D;
var24 = var16;
var26 = var18;
var20 = var12;
var22 = var14;
var16 = var18;
var18 = var24;
}
else if (this.uvRotateBottom == 1)
{
var12 = ((double)(var10 + 16) - this.renderMaxZ * 16.0D) / 256.0D;
var16 = ((double)var11 + this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMaxX * 16.0D) / 256.0D;
var20 = var14;
var22 = var12;
var12 = var14;
var14 = var22;
var24 = var18;
var26 = var16;
}
else if (this.uvRotateBottom == 3)
{
var12 = ((double)(var10 + 16) - this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMaxX * 16.0D - 0.01D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
var20 = var14;
var22 = var12;
var24 = var16;
var26 = var18;
}
double var28 = par2 + this.renderMinX;
double var30 = par2 + this.renderMaxX;
double var32 = par4 + this.renderMinY;
double var34 = par6 + this.renderMinZ;
double var36 = par6 + this.renderMaxZ;
if (this.enableAO)
{
var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
var9.setBrightness(this.brightnessTopLeft);
var9.addVertexWithUV(var28, var32, var36, var22, var26);
var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
var9.setBrightness(this.brightnessBottomLeft);
var9.addVertexWithUV(var28, var32, var34, var12, var16);
var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
var9.setBrightness(this.brightnessBottomRight);
var9.addVertexWithUV(var30, var32, var34, var20, var24);
var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
var9.setBrightness(this.brightnessTopRight);
var9.addVertexWithUV(var30, var32, var36, var14, var18);
}
else
{
var9.addVertexWithUV(var28, var32, var36, var22, var26);
var9.addVertexWithUV(var28, var32, var34, var12, var16);
var9.addVertexWithUV(var30, var32, var34, var20, var24);
var9.addVertexWithUV(var30, var32, var36, var14, var18);
}
}
/**
* Renders the given texture to the top face of the block. Args: block, x, y, z, texture
*/
public void renderTopFace(Block par1Block, double par2, double par4, double par6, int par8)
{
Tessellator var9 = Tessellator.instance;
if (this.overrideBlockTexture >= 0)
{
par8 = this.overrideBlockTexture;
}
int var10 = (par8 & 15) << 4;
int var11 = par8 & 240;
double var12 = ((double)var10 + this.renderMinX * 16.0D) / 256.0D;
double var14 = ((double)var10 + this.renderMaxX * 16.0D - 0.01D) / 256.0D;
double var16 = ((double)var11 + this.renderMinZ * 16.0D) / 256.0D;
double var18 = ((double)var11 + this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
if (this.renderMinX < 0.0D || this.renderMaxX > 1.0D)
{
var12 = (double)(((float)var10 + 0.0F) / 256.0F);
var14 = (double)(((float)var10 + 15.99F) / 256.0F);
}
if (this.renderMinZ < 0.0D || this.renderMaxZ > 1.0D)
{
var16 = (double)(((float)var11 + 0.0F) / 256.0F);
var18 = (double)(((float)var11 + 15.99F) / 256.0F);
}
double var20 = var14;
double var22 = var12;
double var24 = var16;
double var26 = var18;
if (this.uvRotateTop == 1)
{
var12 = ((double)var10 + this.renderMinZ * 16.0D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMaxX * 16.0D) / 256.0D;
var14 = ((double)var10 + this.renderMaxZ * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMinX * 16.0D) / 256.0D;
var24 = var16;
var26 = var18;
var20 = var12;
var22 = var14;
var16 = var18;
var18 = var24;
}
else if (this.uvRotateTop == 2)
{
var12 = ((double)(var10 + 16) - this.renderMaxZ * 16.0D) / 256.0D;
var16 = ((double)var11 + this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMaxX * 16.0D) / 256.0D;
var20 = var14;
var22 = var12;
var12 = var14;
var14 = var22;
var24 = var18;
var26 = var16;
}
else if (this.uvRotateTop == 3)
{
var12 = ((double)(var10 + 16) - this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMaxX * 16.0D - 0.01D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
var20 = var14;
var22 = var12;
var24 = var16;
var26 = var18;
}
double var28 = par2 + this.renderMinX;
double var30 = par2 + this.renderMaxX;
double var32 = par4 + this.renderMaxY;
double var34 = par6 + this.renderMinZ;
double var36 = par6 + this.renderMaxZ;
if (this.enableAO)
{
var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
var9.setBrightness(this.brightnessTopLeft);
var9.addVertexWithUV(var30, var32, var36, var14, var18);
var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
var9.setBrightness(this.brightnessBottomLeft);
var9.addVertexWithUV(var30, var32, var34, var20, var24);
var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
var9.setBrightness(this.brightnessBottomRight);
var9.addVertexWithUV(var28, var32, var34, var12, var16);
var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
var9.setBrightness(this.brightnessTopRight);
var9.addVertexWithUV(var28, var32, var36, var22, var26);
}
else
{
var9.addVertexWithUV(var30, var32, var36, var14, var18);
var9.addVertexWithUV(var30, var32, var34, var20, var24);
var9.addVertexWithUV(var28, var32, var34, var12, var16);
var9.addVertexWithUV(var28, var32, var36, var22, var26);
}
}
/**
* Renders the given texture to the east (z-negative) face of the block. Args: block, x, y, z, texture
*/
public void renderEastFace(Block par1Block, double par2, double par4, double par6, int par8)
{
Tessellator var9 = Tessellator.instance;
if (this.overrideBlockTexture >= 0)
{
par8 = this.overrideBlockTexture;
}
int var10 = (par8 & 15) << 4;
int var11 = par8 & 240;
double var12 = ((double)var10 + this.renderMinX * 16.0D) / 256.0D;
double var14 = ((double)var10 + this.renderMaxX * 16.0D - 0.01D) / 256.0D;
double var16 = ((double)(var11 + 16) - this.renderMaxY * 16.0D) / 256.0D;
double var18 = ((double)(var11 + 16) - this.renderMinY * 16.0D - 0.01D) / 256.0D;
double var20;
if (this.flipTexture)
{
var20 = var12;
var12 = var14;
var14 = var20;
}
if (this.renderMinX < 0.0D || this.renderMaxX > 1.0D)
{
var12 = (double)(((float)var10 + 0.0F) / 256.0F);
var14 = (double)(((float)var10 + 15.99F) / 256.0F);
}
if (this.renderMinY < 0.0D || this.renderMaxY > 1.0D)
{
var16 = (double)(((float)var11 + 0.0F) / 256.0F);
var18 = (double)(((float)var11 + 15.99F) / 256.0F);
}
var20 = var14;
double var22 = var12;
double var24 = var16;
double var26 = var18;
if (this.uvRotateEast == 2)
{
var12 = ((double)var10 + this.renderMinY * 16.0D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)var10 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMaxX * 16.0D) / 256.0D;
var24 = var16;
var26 = var18;
var20 = var12;
var22 = var14;
var16 = var18;
var18 = var24;
}
else if (this.uvRotateEast == 1)
{
var12 = ((double)(var10 + 16) - this.renderMaxY * 16.0D) / 256.0D;
var16 = ((double)var11 + this.renderMaxX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMinY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMinX * 16.0D) / 256.0D;
var20 = var14;
var22 = var12;
var12 = var14;
var14 = var22;
var24 = var18;
var26 = var16;
}
else if (this.uvRotateEast == 3)
{
var12 = ((double)(var10 + 16) - this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMaxX * 16.0D - 0.01D) / 256.0D;
var16 = ((double)var11 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMinY * 16.0D - 0.01D) / 256.0D;
var20 = var14;
var22 = var12;
var24 = var16;
var26 = var18;
}
double var28 = par2 + this.renderMinX;
double var30 = par2 + this.renderMaxX;
double var32 = par4 + this.renderMinY;
double var34 = par4 + this.renderMaxY;
double var36 = par6 + this.renderMinZ;
if (this.enableAO)
{
var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
var9.setBrightness(this.brightnessTopLeft);
var9.addVertexWithUV(var28, var34, var36, var20, var24);
var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
var9.setBrightness(this.brightnessBottomLeft);
var9.addVertexWithUV(var30, var34, var36, var12, var16);
var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
var9.setBrightness(this.brightnessBottomRight);
var9.addVertexWithUV(var30, var32, var36, var22, var26);
var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
var9.setBrightness(this.brightnessTopRight);
var9.addVertexWithUV(var28, var32, var36, var14, var18);
}
else
{
var9.addVertexWithUV(var28, var34, var36, var20, var24);
var9.addVertexWithUV(var30, var34, var36, var12, var16);
var9.addVertexWithUV(var30, var32, var36, var22, var26);
var9.addVertexWithUV(var28, var32, var36, var14, var18);
}
}
/**
* Renders the given texture to the west (z-positive) face of the block. Args: block, x, y, z, texture
*/
public void renderWestFace(Block par1Block, double par2, double par4, double par6, int par8)
{
Tessellator var9 = Tessellator.instance;
if (this.overrideBlockTexture >= 0)
{
par8 = this.overrideBlockTexture;
}
int var10 = (par8 & 15) << 4;
int var11 = par8 & 240;
double var12 = ((double)var10 + this.renderMinX * 16.0D) / 256.0D;
double var14 = ((double)var10 + this.renderMaxX * 16.0D - 0.01D) / 256.0D;
double var16 = ((double)(var11 + 16) - this.renderMaxY * 16.0D) / 256.0D;
double var18 = ((double)(var11 + 16) - this.renderMinY * 16.0D - 0.01D) / 256.0D;
double var20;
if (this.flipTexture)
{
var20 = var12;
var12 = var14;
var14 = var20;
}
if (this.renderMinX < 0.0D || this.renderMaxX > 1.0D)
{
var12 = (double)(((float)var10 + 0.0F) / 256.0F);
var14 = (double)(((float)var10 + 15.99F) / 256.0F);
}
if (this.renderMinY < 0.0D || this.renderMaxY > 1.0D)
{
var16 = (double)(((float)var11 + 0.0F) / 256.0F);
var18 = (double)(((float)var11 + 15.99F) / 256.0F);
}
var20 = var14;
double var22 = var12;
double var24 = var16;
double var26 = var18;
if (this.uvRotateWest == 1)
{
var12 = ((double)var10 + this.renderMinY * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)var10 + this.renderMaxY * 16.0D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMaxX * 16.0D) / 256.0D;
var24 = var16;
var26 = var18;
var20 = var12;
var22 = var14;
var16 = var18;
var18 = var24;
}
else if (this.uvRotateWest == 2)
{
var12 = ((double)(var10 + 16) - this.renderMaxY * 16.0D) / 256.0D;
var16 = ((double)var11 + this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMinY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMaxX * 16.0D) / 256.0D;
var20 = var14;
var22 = var12;
var12 = var14;
var14 = var22;
var24 = var18;
var26 = var16;
}
else if (this.uvRotateWest == 3)
{
var12 = ((double)(var10 + 16) - this.renderMinX * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMaxX * 16.0D - 0.01D) / 256.0D;
var16 = ((double)var11 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMinY * 16.0D - 0.01D) / 256.0D;
var20 = var14;
var22 = var12;
var24 = var16;
var26 = var18;
}
double var28 = par2 + this.renderMinX;
double var30 = par2 + this.renderMaxX;
double var32 = par4 + this.renderMinY;
double var34 = par4 + this.renderMaxY;
double var36 = par6 + this.renderMaxZ;
if (this.enableAO)
{
var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
var9.setBrightness(this.brightnessTopLeft);
var9.addVertexWithUV(var28, var34, var36, var12, var16);
var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
var9.setBrightness(this.brightnessBottomLeft);
var9.addVertexWithUV(var28, var32, var36, var22, var26);
var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
var9.setBrightness(this.brightnessBottomRight);
var9.addVertexWithUV(var30, var32, var36, var14, var18);
var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
var9.setBrightness(this.brightnessTopRight);
var9.addVertexWithUV(var30, var34, var36, var20, var24);
}
else
{
var9.addVertexWithUV(var28, var34, var36, var12, var16);
var9.addVertexWithUV(var28, var32, var36, var22, var26);
var9.addVertexWithUV(var30, var32, var36, var14, var18);
var9.addVertexWithUV(var30, var34, var36, var20, var24);
}
}
/**
* Renders the given texture to the north (x-negative) face of the block. Args: block, x, y, z, texture
*/
public void renderNorthFace(Block par1Block, double par2, double par4, double par6, int par8)
{
Tessellator var9 = Tessellator.instance;
if (this.overrideBlockTexture >= 0)
{
par8 = this.overrideBlockTexture;
}
int var10 = (par8 & 15) << 4;
int var11 = par8 & 240;
double var12 = ((double)var10 + this.renderMinZ * 16.0D) / 256.0D;
double var14 = ((double)var10 + this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
double var16 = ((double)(var11 + 16) - this.renderMaxY * 16.0D) / 256.0D;
double var18 = ((double)(var11 + 16) - this.renderMinY * 16.0D - 0.01D) / 256.0D;
double var20;
if (this.flipTexture)
{
var20 = var12;
var12 = var14;
var14 = var20;
}
if (this.renderMinZ < 0.0D || this.renderMaxZ > 1.0D)
{
var12 = (double)(((float)var10 + 0.0F) / 256.0F);
var14 = (double)(((float)var10 + 15.99F) / 256.0F);
}
if (this.renderMinY < 0.0D || this.renderMaxY > 1.0D)
{
var16 = (double)(((float)var11 + 0.0F) / 256.0F);
var18 = (double)(((float)var11 + 15.99F) / 256.0F);
}
var20 = var14;
double var22 = var12;
double var24 = var16;
double var26 = var18;
if (this.uvRotateNorth == 1)
{
var12 = ((double)var10 + this.renderMinY * 16.0D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMaxZ * 16.0D) / 256.0D;
var14 = ((double)var10 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var24 = var16;
var26 = var18;
var20 = var12;
var22 = var14;
var16 = var18;
var18 = var24;
}
else if (this.uvRotateNorth == 2)
{
var12 = ((double)(var10 + 16) - this.renderMaxY * 16.0D) / 256.0D;
var16 = ((double)var11 + this.renderMinZ * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMinY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMaxZ * 16.0D) / 256.0D;
var20 = var14;
var22 = var12;
var12 = var14;
var14 = var22;
var24 = var18;
var26 = var16;
}
else if (this.uvRotateNorth == 3)
{
var12 = ((double)(var10 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
var16 = ((double)var11 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMinY * 16.0D - 0.01D) / 256.0D;
var20 = var14;
var22 = var12;
var24 = var16;
var26 = var18;
}
double var28 = par2 + this.renderMinX;
double var30 = par4 + this.renderMinY;
double var32 = par4 + this.renderMaxY;
double var34 = par6 + this.renderMinZ;
double var36 = par6 + this.renderMaxZ;
if (this.enableAO)
{
var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
var9.setBrightness(this.brightnessTopLeft);
var9.addVertexWithUV(var28, var32, var36, var20, var24);
var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
var9.setBrightness(this.brightnessBottomLeft);
var9.addVertexWithUV(var28, var32, var34, var12, var16);
var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
var9.setBrightness(this.brightnessBottomRight);
var9.addVertexWithUV(var28, var30, var34, var22, var26);
var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
var9.setBrightness(this.brightnessTopRight);
var9.addVertexWithUV(var28, var30, var36, var14, var18);
}
else
{
var9.addVertexWithUV(var28, var32, var36, var20, var24);
var9.addVertexWithUV(var28, var32, var34, var12, var16);
var9.addVertexWithUV(var28, var30, var34, var22, var26);
var9.addVertexWithUV(var28, var30, var36, var14, var18);
}
}
/**
* Renders the given texture to the south (x-positive) face of the block. Args: block, x, y, z, texture
*/
public void renderSouthFace(Block par1Block, double par2, double par4, double par6, int par8)
{
Tessellator var9 = Tessellator.instance;
if (this.overrideBlockTexture >= 0)
{
par8 = this.overrideBlockTexture;
}
int var10 = (par8 & 15) << 4;
int var11 = par8 & 240;
double var12 = ((double)var10 + this.renderMinZ * 16.0D) / 256.0D;
double var14 = ((double)var10 + this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
double var16 = ((double)(var11 + 16) - this.renderMaxY * 16.0D) / 256.0D;
double var18 = ((double)(var11 + 16) - this.renderMinY * 16.0D - 0.01D) / 256.0D;
double var20;
if (this.flipTexture)
{
var20 = var12;
var12 = var14;
var14 = var20;
}
if (this.renderMinZ < 0.0D || this.renderMaxZ > 1.0D)
{
var12 = (double)(((float)var10 + 0.0F) / 256.0F);
var14 = (double)(((float)var10 + 15.99F) / 256.0F);
}
if (this.renderMinY < 0.0D || this.renderMaxY > 1.0D)
{
var16 = (double)(((float)var11 + 0.0F) / 256.0F);
var18 = (double)(((float)var11 + 15.99F) / 256.0F);
}
var20 = var14;
double var22 = var12;
double var24 = var16;
double var26 = var18;
if (this.uvRotateSouth == 2)
{
var12 = ((double)var10 + this.renderMinY * 16.0D) / 256.0D;
var16 = ((double)(var11 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var14 = ((double)var10 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)(var11 + 16) - this.renderMaxZ * 16.0D) / 256.0D;
var24 = var16;
var26 = var18;
var20 = var12;
var22 = var14;
var16 = var18;
var18 = var24;
}
else if (this.uvRotateSouth == 1)
{
var12 = ((double)(var10 + 16) - this.renderMaxY * 16.0D) / 256.0D;
var16 = ((double)var11 + this.renderMaxZ * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMinY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMinZ * 16.0D) / 256.0D;
var20 = var14;
var22 = var12;
var12 = var14;
var14 = var22;
var24 = var18;
var26 = var16;
}
else if (this.uvRotateSouth == 3)
{
var12 = ((double)(var10 + 16) - this.renderMinZ * 16.0D) / 256.0D;
var14 = ((double)(var10 + 16) - this.renderMaxZ * 16.0D - 0.01D) / 256.0D;
var16 = ((double)var11 + this.renderMaxY * 16.0D) / 256.0D;
var18 = ((double)var11 + this.renderMinY * 16.0D - 0.01D) / 256.0D;
var20 = var14;
var22 = var12;
var24 = var16;
var26 = var18;
}
double var28 = par2 + this.renderMaxX;
double var30 = par4 + this.renderMinY;
double var32 = par4 + this.renderMaxY;
double var34 = par6 + this.renderMinZ;
double var36 = par6 + this.renderMaxZ;
if (this.enableAO)
{
var9.setColorOpaque_F(this.colorRedTopLeft, this.colorGreenTopLeft, this.colorBlueTopLeft);
var9.setBrightness(this.brightnessTopLeft);
var9.addVertexWithUV(var28, var30, var36, var22, var26);
var9.setColorOpaque_F(this.colorRedBottomLeft, this.colorGreenBottomLeft, this.colorBlueBottomLeft);
var9.setBrightness(this.brightnessBottomLeft);
var9.addVertexWithUV(var28, var30, var34, var14, var18);
var9.setColorOpaque_F(this.colorRedBottomRight, this.colorGreenBottomRight, this.colorBlueBottomRight);
var9.setBrightness(this.brightnessBottomRight);
var9.addVertexWithUV(var28, var32, var34, var20, var24);
var9.setColorOpaque_F(this.colorRedTopRight, this.colorGreenTopRight, this.colorBlueTopRight);
var9.setBrightness(this.brightnessTopRight);
var9.addVertexWithUV(var28, var32, var36, var12, var16);
}
else
{
var9.addVertexWithUV(var28, var30, var36, var22, var26);
var9.addVertexWithUV(var28, var30, var34, var14, var18);
var9.addVertexWithUV(var28, var32, var34, var20, var24);
var9.addVertexWithUV(var28, var32, var36, var12, var16);
}
}
/**
* Is called to render the image of a block on an inventory, as a held item, or as a an item on the ground
*/
public void renderBlockAsItem(Block par1Block, int par2, float par3)
{
Tessellator var4 = Tessellator.instance;
boolean var5 = par1Block.blockID == Block.grass.blockID;
int var6;
float var7;
float var8;
float var9;
if (this.useInventoryTint)
{
var6 = par1Block.getRenderColor(par2);
if (var5)
{
var6 = 16777215;
}
var7 = (float)(var6 >> 16 & 255) / 255.0F;
var8 = (float)(var6 >> 8 & 255) / 255.0F;
var9 = (float)(var6 & 255) / 255.0F;
GL11.glColor4f(var7 * par3, var8 * par3, var9 * par3, 1.0F);
}
var6 = par1Block.getRenderType();
this.setRenderBoundsFromBlock(par1Block);
int var14;
if (var6 != 0 && var6 != 31 && var6 != 16 && var6 != 26)
{
if (var6 == 1)
{
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.drawCrossedSquares(par1Block, par2, -0.5D, -0.5D, -0.5D, 1.0F);
var4.draw();
}
else if (var6 == 19)
{
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
par1Block.setBlockBoundsForItemRender();
this.renderBlockStemSmall(par1Block, par2, this.renderMaxY, -0.5D, -0.5D, -0.5D);
var4.draw();
}
else if (var6 == 23)
{
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
par1Block.setBlockBoundsForItemRender();
var4.draw();
}
else if (var6 == 13)
{
par1Block.setBlockBoundsForItemRender();
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var7 = 0.0625F;
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
var4.addTranslation(0.0F, 0.0F, var7);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2));
var4.addTranslation(0.0F, 0.0F, -var7);
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
var4.addTranslation(0.0F, 0.0F, -var7);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3));
var4.addTranslation(0.0F, 0.0F, var7);
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
var4.addTranslation(var7, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4));
var4.addTranslation(-var7, 0.0F, 0.0F);
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
var4.addTranslation(-var7, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5));
var4.addTranslation(var7, 0.0F, 0.0F);
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
else if (var6 == 22)
{
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
ChestItemRenderHelper.instance.renderChest(par1Block, par2, par3);
GL11.glEnable(GL12.GL_RESCALE_NORMAL);
}
else if (var6 == 6)
{
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBlockCropsImpl(par1Block, par2, -0.5D, -0.5D, -0.5D);
var4.draw();
}
else if (var6 == 2)
{
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderTorchAtAngle(par1Block, -0.5D, -0.5D, -0.5D, 0.0D, 0.0D);
var4.draw();
}
else if (var6 == 10)
{
for (var14 = 0; var14 < 2; ++var14)
{
if (var14 == 0)
{
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 0.5D);
}
if (var14 == 1)
{
this.setRenderBounds(0.0D, 0.0D, 0.5D, 1.0D, 0.5D, 1.0D);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5));
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
else if (var6 == 27)
{
var14 = 0;
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
for (int var15 = 0; var15 < 8; ++var15)
{
byte var16 = 0;
byte var17 = 1;
if (var15 == 0)
{
var16 = 2;
}
if (var15 == 1)
{
var16 = 3;
}
if (var15 == 2)
{
var16 = 4;
}
if (var15 == 3)
{
var16 = 5;
var17 = 2;
}
if (var15 == 4)
{
var16 = 6;
var17 = 3;
}
if (var15 == 5)
{
var16 = 7;
var17 = 5;
}
if (var15 == 6)
{
var16 = 6;
var17 = 2;
}
if (var15 == 7)
{
var16 = 3;
}
float var11 = (float)var16 / 16.0F;
float var12 = 1.0F - (float)var14 / 16.0F;
float var13 = 1.0F - (float)(var14 + var17) / 16.0F;
var14 += var17;
this.setRenderBounds((double)(0.5F - var11), (double)var13, (double)(0.5F - var11), (double)(0.5F + var11), (double)var12, (double)(0.5F + var11));
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0));
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1));
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2));
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3));
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4));
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5));
}
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (var6 == 11)
{
for (var14 = 0; var14 < 4; ++var14)
{
var8 = 0.125F;
if (var14 == 0)
{
this.setRenderBounds((double)(0.5F - var8), 0.0D, 0.0D, (double)(0.5F + var8), 1.0D, (double)(var8 * 2.0F));
}
if (var14 == 1)
{
this.setRenderBounds((double)(0.5F - var8), 0.0D, (double)(1.0F - var8 * 2.0F), (double)(0.5F + var8), 1.0D, 1.0D);
}
var8 = 0.0625F;
if (var14 == 2)
{
this.setRenderBounds((double)(0.5F - var8), (double)(1.0F - var8 * 3.0F), (double)(-var8 * 2.0F), (double)(0.5F + var8), (double)(1.0F - var8), (double)(1.0F + var8 * 2.0F));
}
if (var14 == 3)
{
this.setRenderBounds((double)(0.5F - var8), (double)(0.5F - var8 * 3.0F), (double)(-var8 * 2.0F), (double)(0.5F + var8), (double)(0.5F - var8), (double)(1.0F + var8 * 2.0F));
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5));
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (var6 == 21)
{
for (var14 = 0; var14 < 3; ++var14)
{
var8 = 0.0625F;
if (var14 == 0)
{
this.setRenderBounds((double)(0.5F - var8), 0.30000001192092896D, 0.0D, (double)(0.5F + var8), 1.0D, (double)(var8 * 2.0F));
}
if (var14 == 1)
{
this.setRenderBounds((double)(0.5F - var8), 0.30000001192092896D, (double)(1.0F - var8 * 2.0F), (double)(0.5F + var8), 1.0D, 1.0D);
}
var8 = 0.0625F;
if (var14 == 2)
{
this.setRenderBounds((double)(0.5F - var8), 0.5D, 0.0D, (double)(0.5F + var8), (double)(1.0F - var8), 1.0D);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(0));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(1));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(3));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(4));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSide(5));
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
else if (var6 == 32)
{
for (var14 = 0; var14 < 2; ++var14)
{
if (var14 == 0)
{
this.setRenderBounds(0.0D, 0.0D, 0.3125D, 1.0D, 0.8125D, 0.6875D);
}
if (var14 == 1)
{
this.setRenderBounds(0.25D, 0.0D, 0.25D, 0.75D, 1.0D, 0.75D);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(0, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(1, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(2, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(3, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(4, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(5, par2));
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
}
else if (var6 == 35)
{
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
this.renderBlockAnvilOrient((BlockAnvil)par1Block, 0, 0, 0, par2, true);
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
else if (var6 == 34)
{
for (var14 = 0; var14 < 3; ++var14)
{
if (var14 == 0)
{
this.setRenderBounds(0.125D, 0.0D, 0.125D, 0.875D, 0.1875D, 0.875D);
this.setOverrideBlockTexture(Block.obsidian.blockIndexInTexture);
}
else if (var14 == 1)
{
this.setRenderBounds(0.1875D, 0.1875D, 0.1875D, 0.8125D, 0.875D, 0.8125D);
this.setOverrideBlockTexture(41);
}
else if (var14 == 2)
{
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
this.setOverrideBlockTexture(Block.glass.blockIndexInTexture);
}
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(0, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(1, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(2, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(3, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(4, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(5, par2));
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
this.setRenderBounds(0.0D, 0.0D, 0.0D, 1.0D, 1.0D, 1.0D);
this.clearOverrideBlockTexture();
}
else
{
FMLRenderAccessLibrary.renderInventoryBlock(this, par1Block, par2, var6);
}
}
else
{
if (var6 == 16)
{
par2 = 1;
}
par1Block.setBlockBoundsForItemRender();
this.setRenderBoundsFromBlock(par1Block);
GL11.glRotatef(90.0F, 0.0F, 1.0F, 0.0F);
GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
var4.startDrawingQuads();
var4.setNormal(0.0F, -1.0F, 0.0F);
this.renderBottomFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(0, par2));
var4.draw();
if (var5 && this.useInventoryTint)
{
var14 = par1Block.getRenderColor(par2);
var8 = (float)(var14 >> 16 & 255) / 255.0F;
var9 = (float)(var14 >> 8 & 255) / 255.0F;
float var10 = (float)(var14 & 255) / 255.0F;
GL11.glColor4f(var8 * par3, var9 * par3, var10 * par3, 1.0F);
}
var4.startDrawingQuads();
var4.setNormal(0.0F, 1.0F, 0.0F);
this.renderTopFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(1, par2));
var4.draw();
if (var5 && this.useInventoryTint)
{
GL11.glColor4f(par3, par3, par3, 1.0F);
}
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, -1.0F);
this.renderEastFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(2, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(0.0F, 0.0F, 1.0F);
this.renderWestFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(3, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(-1.0F, 0.0F, 0.0F);
this.renderNorthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(4, par2));
var4.draw();
var4.startDrawingQuads();
var4.setNormal(1.0F, 0.0F, 0.0F);
this.renderSouthFace(par1Block, 0.0D, 0.0D, 0.0D, par1Block.getBlockTextureFromSideAndMetadata(5, par2));
var4.draw();
GL11.glTranslatef(0.5F, 0.5F, 0.5F);
}
}
/**
* Checks to see if the item's render type indicates that it should be rendered as a regular block or not.
*/
public static boolean renderItemIn3d(int par0)
{
switch (par0)
{
case 0:
return true;
case 31:
return true;
case 13:
return true;
case 10:
return true;
case 11:
return true;
case 27:
return true;
case 22:
return true;
case 21:
return true;
case 16:
return true;
case 26:
return true;
case 32:
return true;
case 34:
return true;
case 35:
return true;
default:
return FMLRenderAccessLibrary.renderItemAsFull3DBlock(par0);
}
}
}