Advertisement
WackoMcGoose

I broke ModLoader

Feb 6th, 2012
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.13 KB | None | 0 0
  1. //mod_EvilMinecraft.java, only relevant sections
  2. public class mod_EvilMinecraft extends BaseMod
  3. {
  4.     public static int grassModelID;
  5.  
  6.     public void load()
  7.     {
  8.         grassModelID = ModLoader.getUniqueBlockModelID(this, true);
  9.     }
  10.  
  11.     private boolean RenderGrassBlockInWorld(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block)
  12.     {
  13.         int northBlockID = iblockaccess.getBlockId(i, j, k + 1);
  14.         if(northBlockID == 0) { northBlockID = 36; }
  15.         int eastBlockID = iblockaccess.getBlockId(i + 1, j, k);
  16.         if(eastBlockID == 0) { eastBlockID = 36; }
  17.         int southBlockID = iblockaccess.getBlockId(i, j, k - 1);
  18.         if(southBlockID == 0) { southBlockID = 36; }
  19.         int westBlockID = iblockaccess.getBlockId(i - 1, j, k);
  20.         if(westBlockID == 0) { westBlockID = 36; }
  21.         //System.out.println((new StringBuilder()).append("n=").append(northBlockID).append(" e=").append(eastBlockID).append(" s=").append(southBlockID).append(" w=").append(westBlockID).toString());
  22.         boolean blockToNW = (Block.blocksList[northBlockID].isOpaqueCube() && Block.blocksList[westBlockID].isOpaqueCube());
  23.         boolean blockToNE = (Block.blocksList[northBlockID].isOpaqueCube() && Block.blocksList[eastBlockID].isOpaqueCube());
  24.         boolean blockToSE = (Block.blocksList[southBlockID].isOpaqueCube() && Block.blocksList[eastBlockID].isOpaqueCube());
  25.         boolean blockToSW = (Block.blocksList[southBlockID].isOpaqueCube() && Block.blocksList[westBlockID].isOpaqueCube());
  26.         //Default case - Grass surrounded by solid blocks on all sides
  27.         if(blockToNW && blockToNE && blockToSE && blockToSW)
  28.         {
  29.             block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
  30.             renderblocks.renderStandardBlock(block, i, j, k);
  31.         }
  32.         else
  33.         {
  34.             //Base half-layer, placed even if grass has no solid blocks around it
  35.             block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F);
  36.             renderblocks.renderStandardBlock(block, i, j, k);
  37.             //Corner cases, NOT mutually exclusive (will usually have more than one!)
  38.             if(blockToNW)
  39.             {
  40.                 block.setBlockBounds(0.0F, 0.5F, 0.5F, 0.5F, 1.0F, 1.0F);
  41.                 renderblocks.renderStandardBlock(block, i, j, k);
  42.             }
  43.             if(blockToNE)
  44.             {
  45.                 block.setBlockBounds(0.5F, 0.5F, 0.5F, 1.0F, 1.0F, 1.0F);
  46.                 renderblocks.renderStandardBlock(block, i, j, k);
  47.             }
  48.             if(blockToSE)
  49.             {
  50.                 block.setBlockBounds(0.5F, 0.5F, 0.0F, 1.0F, 1.0F, 0.5F);
  51.                 renderblocks.renderStandardBlock(block, i, j, k);
  52.             }
  53.             if(blockToSW)
  54.             {
  55.                 block.setBlockBounds(0.0F, 0.5F, 0.0F, 0.5F, 1.0F, 0.5F);
  56.                 renderblocks.renderStandardBlock(block, i, j, k);
  57.             }
  58.         }
  59.         //Not rendered, just fix the stupid hitbox
  60.         block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
  61.         return false;
  62.     }
  63.    
  64.     public boolean RenderWorldBlock(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block, int l)
  65.     {
  66.         if(l == grassModelID)
  67.     {
  68.         return RenderGrassBlockInWorld(renderblocks, iblockaccess, i, j, k, block);
  69.     }
  70.     else
  71.         {
  72.             return false;
  73.         }
  74.     }
  75. }
  76.  
  77. //===============================================
  78. //Addition to BlockGrass.java:
  79.  
  80. public int getRenderType()
  81. {
  82.     return mod_EvilMinecraft.grassModelID;
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement