Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private boolean RenderGrassBlockInWorld(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block)
- {
- int northBlockID = iblockaccess.getBlockId(i, j, k + 1);
- if(northBlockID == 0) { northBlockID = 36; }
- int eastBlockID = iblockaccess.getBlockId(i + 1, j, k);
- if(eastBlockID == 0) { eastBlockID = 36; }
- int southBlockID = iblockaccess.getBlockId(i, j, k - 1);
- if(southBlockID == 0) { southBlockID = 36; }
- int westBlockID = iblockaccess.getBlockId(i - 1, j, k);
- if(westBlockID == 0) { westBlockID = 36; }
- int northwestBlockID = iblockaccess.getBlockId(i - 1, j, k + 1);
- if(northwestBlockID == 0) { northwestBlockID = 36; }
- int northeastBlockID = iblockaccess.getBlockId(i + 1, j, k + 1);
- if(northeastBlockID == 0) { northeastBlockID = 36; }
- int southeastBlockID = iblockaccess.getBlockId(i + 1, j, k - 1);
- if(southeastBlockID == 0) { southeastBlockID = 36; }
- int southwestBlockID = iblockaccess.getBlockId(i - 1, j, k - 1);
- if(southwestBlockID == 0) { southwestBlockID = 36; }
- //System.out.println((new StringBuilder()).append("n=").append(northBlockID).append(" e=").append(eastBlockID).append(" s=").append(southBlockID).append(" w=").append(westBlockID).toString());
- boolean blocksToNW = ((Block.blocksList[northBlockID].isOpaqueCube() || northBlockID == Block.grass.blockID) && (Block.blocksList[westBlockID].isOpaqueCube() || westBlockID == Block.grass.blockID) && (Block.blocksList[northwestBlockID].isOpaqueCube() || northwestBlockID == Block.grass.blockID));
- boolean blocksToNE = ((Block.blocksList[northBlockID].isOpaqueCube() || northBlockID == Block.grass.blockID) && (Block.blocksList[eastBlockID].isOpaqueCube() || eastBlockID == Block.grass.blockID) && (Block.blocksList[northeastBlockID].isOpaqueCube() || northeastBlockID == Block.grass.blockID));
- boolean blocksToSE = ((Block.blocksList[southBlockID].isOpaqueCube() || southBlockID == Block.grass.blockID) && (Block.blocksList[eastBlockID].isOpaqueCube() || eastBlockID == Block.grass.blockID) && (Block.blocksList[southeastBlockID].isOpaqueCube() || southeastBlockID == Block.grass.blockID));
- boolean blocksToSW = ((Block.blocksList[southBlockID].isOpaqueCube() || southBlockID == Block.grass.blockID) && (Block.blocksList[westBlockID].isOpaqueCube() || westBlockID == Block.grass.blockID) && (Block.blocksList[southwestBlockID].isOpaqueCube() || southwestBlockID == Block.grass.blockID));
- //Default case - Grass surrounded by solid blocks on all sides or has a block on top
- if(((Block.blocksList[northBlockID].isOpaqueCube()) && (Block.blocksList[eastBlockID].isOpaqueCube()) && (Block.blocksList[southBlockID].isOpaqueCube()) && (Block.blocksList[westBlockID].isOpaqueCube())) || (iblockaccess.getBlockId(i, j + 1, k) != 0))
- {
- block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- else
- {
- //Base half-layer, placed even if grass has no solid blocks around it
- block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Corner cases, NOT mutually exclusive (will usually have more than one!)
- if(blocksToNW)
- {
- block.setBlockBounds(0.0F, 0.5F, 0.5F, 0.5F, 1.0F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- if(blocksToNE)
- {
- block.setBlockBounds(0.5F, 0.5F, 0.5F, 1.0F, 1.0F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- if(blocksToSE)
- {
- block.setBlockBounds(0.5F, 0.5F, 0.0F, 1.0F, 1.0F, 0.5F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- if(blocksToSW)
- {
- block.setBlockBounds(0.0F, 0.5F, 0.0F, 0.5F, 1.0F, 0.5F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- }
- //Not rendered, just fix the stupid hitbox
- block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
- return false;
- }
- public boolean RenderWorldBlock(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block, int l)
- {
- if(l == planterPotModelID)
- {
- return RenderPlanterPotInWorld(renderblocks, iblockaccess, i, j, k, block);
- }
- else if(l == hypercubeModelID)
- {
- return RenderHypercubeInWorld(renderblocks, iblockaccess, i, j, k, block);
- }
- else if(l == chancePotModelID)
- {
- return RenderChancePotInWorld(renderblocks, iblockaccess, i, j, k, block);
- }
- else if(l == grassModelID)
- {
- return RenderGrassBlockInWorld(renderblocks, iblockaccess, i, j, k, block);
- }
- else
- {
- return false;
- }
- }
- //Grass model ID, put in mod_EvilMinecraft:
- public static int grassModelID;
- //And in mod_EvilMinecraft.load():
- grassModelID = ModLoader.getUniqueBlockModelID(this, true);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement