Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //mod_EvilMinecraft.java, only relevant sections
- public class mod_EvilMinecraft extends BaseMod
- {
- public static int grassModelID;
- public void load()
- {
- grassModelID = ModLoader.getUniqueBlockModelID(this, true);
- }
- 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; }
- //System.out.println((new StringBuilder()).append("n=").append(northBlockID).append(" e=").append(eastBlockID).append(" s=").append(southBlockID).append(" w=").append(westBlockID).toString());
- boolean blockToNW = (Block.blocksList[northBlockID].isOpaqueCube() && Block.blocksList[westBlockID].isOpaqueCube());
- boolean blockToNE = (Block.blocksList[northBlockID].isOpaqueCube() && Block.blocksList[eastBlockID].isOpaqueCube());
- boolean blockToSE = (Block.blocksList[southBlockID].isOpaqueCube() && Block.blocksList[eastBlockID].isOpaqueCube());
- boolean blockToSW = (Block.blocksList[southBlockID].isOpaqueCube() && Block.blocksList[westBlockID].isOpaqueCube());
- //Default case - Grass surrounded by solid blocks on all sides
- if(blockToNW && blockToNE && blockToSE && blockToSW)
- {
- 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(blockToNW)
- {
- block.setBlockBounds(0.0F, 0.5F, 0.5F, 0.5F, 1.0F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- if(blockToNE)
- {
- block.setBlockBounds(0.5F, 0.5F, 0.5F, 1.0F, 1.0F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- if(blockToSE)
- {
- block.setBlockBounds(0.5F, 0.5F, 0.0F, 1.0F, 1.0F, 0.5F);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- if(blockToSW)
- {
- 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 == grassModelID)
- {
- return RenderGrassBlockInWorld(renderblocks, iblockaccess, i, j, k, block);
- }
- else
- {
- return false;
- }
- }
- }
- //===============================================
- //Addition to BlockGrass.java:
- public int getRenderType()
- {
- return mod_EvilMinecraft.grassModelID;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement