Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //WackoMcGoose's stuff for EvilMinecraft
- package net.minecraft.src;
- import org.lwjgl.opengl.GL11;
- public class mod_EvilMinecraft extends BaseMod
- {
- public static int planterPotModelID;
- public static int hypercubeModelID;
- public static int chancePotModelID;
- public static int grassModelID;
- public static Block planterPot;
- public static Block hypercube;
- public static Block chancePot;
- public static Block trapDoorMetal;
- public static Block cactusPoison;
- public static Block blockSlime;
- public static Block blockSlimeBlock;
- public static Item itemPlanterPot;
- public static Item itemNetherFertilizer;
- //These are defined out here because BlockCactusPoison.getBlockTextureFromSide needs to know where to find them
- public static int poisonCactusTextureIndexTop = ModLoader.addOverride("/terrain.png", "/evmc/blockCactusPoisonTop.png");
- public static int poisonCactusTextureIndexSide = ModLoader.addOverride("/terrain.png", "/evmc/blockCactusPoisonSide.png");
- public static int poisonCactusTextureIndexBottom = ModLoader.addOverride("/terrain.png", "/evmc/blockCactusPoisonBottom.png");
- public mod_EvilMinecraft_Fragment()
- {
- //BlockPlanterPot
- int planterPotID = 160;
- int planterTextureIndex = 72; //Clay texture
- planterPot = new BlockPlanterPot(planterPotID, planterTextureIndex, Material.glass);
- planterPot.setHardness(0.5F);
- planterPot.setBlockName("planterPot");
- ModLoader.RegisterBlock(planterPot);
- ModLoader.AddName(planterPot, "Planter Pot");
- //ItemPlanterPot
- int itemPlanterPotID = 6500 - 256;
- int itemPlanterTextureIndex = 156; //Cauldron
- itemPlanterPot = new ItemPlanterPot(itemPlanterPotID);
- itemPlanterPot.setIconIndex(itemPlanterTextureIndex);
- itemPlanterPot.setItemName("itemPlanterPot");
- ModLoader.AddName(itemPlanterPot, "Planter Pot");
- ModLoader.AddSmelting(Block.blockClay.blockID, new ItemStack(itemPlanterPot));
- //BlockHypercube
- int hypercubeID = 200;
- int hypercubeTextureIndex = ModLoader.addOverride("/terrain.png", "/evmc/blackholeOverride.png"); //NetherPortal?
- hypercube = new BlockHypercube(hypercubeID, hypercubeTextureIndex, Material.portal);
- hypercube.setBlockName("hypercube");
- ModLoader.RegisterBlock(hypercube);
- ModLoader.AddName(hypercube, "Hyper Cube");
- ModLoader.AddRecipe(new ItemStack(hypercube), new Object[]{"B", Character.valueOf('B'), Block.bedrock});
- //BlockChancePot
- int chancePotID = 161;
- int chancePotTextureIndex = 54; //Stonebrick texture
- chancePot = new BlockChancePot(chancePotID, chancePotTextureIndex, Material.glass);
- chancePot.setHardness(0.5F);
- chancePot.setBlockName("chancePot");
- ModLoader.RegisterBlock(chancePot);
- ModLoader.AddName(chancePot, "Pot of Chance");
- ModLoader.AddRecipe(new ItemStack(chancePot), new Object[]{"BB", Character.valueOf('B'), Block.dirt}); //For testification only
- //ItemNetherFertilizer
- int itemNetherFertilizerID = 6501 - 256;
- int itemNetherFertilizerTextureIndex = ModLoader.addOverride("/gui/items.png", "/evmc/itemNetherFertilizer.png");//191; //Bonemeal for now
- itemNetherFertilizer = new ItemNetherFertilizer(itemNetherFertilizerID);
- itemNetherFertilizer.setIconIndex(itemNetherFertilizerTextureIndex);
- itemNetherFertilizer.setItemName("netherFertilizer");
- ModLoader.AddName(itemNetherFertilizer, "Nether Fertilizer");
- ModLoader.AddShapelessRecipe(new ItemStack(itemNetherFertilizer, 3), new Object[]{new ItemStack(Item.dyePowder, 1, 15), Item.rottenFlesh, Item.blazePowder});
- //BlockTrapDoorMetal
- int blockTrapDoorMetalID = 162;
- int blockTrapDoorMetalTextureIndex = ModLoader.addOverride("/terrain.png", "/evmc/blockTrapdoorMetal.png");
- trapDoorMetal = new BlockTrapDoorMetal(blockTrapDoorMetalID, blockTrapDoorMetalTextureIndex, Material.iron);
- trapDoorMetal.setHardness(5F);
- trapDoorMetal.setBlockName("trapDoorMetal");
- ModLoader.RegisterBlock(trapDoorMetal);
- ModLoader.AddName(trapDoorMetal, "Iron Trap Door");
- ModLoader.AddRecipe(new ItemStack(trapDoorMetal), new Object[]{"II", "II", Character.valueOf('I'), Item.ingotIron});
- //BlockCactusPoison
- int poisonCactusID = 163;
- //Textures are defined up above so they can be public
- cactusPoison = new BlockCactusPoison(poisonCactusID, poisonCactusTextureIndexSide);
- cactusPoison.setHardness(0.4F);
- cactusPoison.setBlockName("cactusPoison");
- ModLoader.RegisterBlock(cactusPoison);
- ModLoader.AddName(cactusPoison, "Poison Cactus");
- ModLoader.AddShapelessRecipe(new ItemStack(cactusPoison), new Object[]{Block.cactus}); //For testification only
- //BlockSlime - sticky and placed by slimes like snow and snow golems
- int blockSlimeID = 164;
- int blockSlimeTextureIndex = ModLoader.addOverride("/terrain.png", "/evmc/blockSlime.png");
- blockSlime = new BlockSlime(blockSlimeID, blockSlimeTextureIndex); //Same code as BlockSoulSand, which presets Material.sand
- blockSlime.setHardness(0.5F);
- blockSlime.setBlockName("slimeLayer");
- ModLoader.RegisterBlock(blockSlime);
- ModLoader.AddName(blockSlime, "Slime Block");
- //BlockSlimeBlock - crafted only and BOUNCY!
- int blockSlimeBlockID = 165;
- blockSlimeBlock = new BlockSlimeBlock(blockSlimeBlockID, blockSlimeTextureIndex);
- blockSlimeBlock.setHardness(0.5F);
- blockSlimeBlock.setBlockName("craftedSlime");
- ModLoader.RegisterBlock(blockSlimeBlock);
- ModLoader.AddName(blockSlimeBlock, "Slime Block");
- ModLoader.AddRecipe(new ItemStack(blockSlimeBlock), new Object[]{"SS", "SS", Character.valueOf('S'), Item.slimeBall});
- }
- public String getVersion()
- {
- return "1.1.0";
- }
- public void load()
- {
- planterPotModelID = ModLoader.getUniqueBlockModelID(this, true);
- hypercubeModelID = ModLoader.getUniqueBlockModelID(this, true);
- chancePotModelID = ModLoader.getUniqueBlockModelID(this, true);
- grassModelID = ModLoader.getUniqueBlockModelID(this, true);
- }
- private boolean RenderPlanterPotInWorld(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block)
- {
- //Base
- block.setBlockBounds(0.1875F, 0.0F, 0.1875F, 0.8125F, 0.0625F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Inner sides, also collision box
- block.setBlockBounds(0.1875F, 0.0F, 0.125F, 0.875F, 0.8125F, 0.1875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.1875F, 0.0F, 0.8125F, 0.875F, 0.8125F, 0.875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.125F, 0.0F, 0.1875F, 0.1875F, 0.875F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.8125F, 0.0F, 0.1875F, 0.875F, 0.875F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Inner side-lip
- block.setBlockBounds(0.125F, 0.8125F, 0.125F, 0.875F, 0.875F, 0.1875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.125F, 0.8125F, 0.8125F, 0.875F, 0.875F, 0.875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Outer sides
- block.setBlockBounds(0.25F, 0.0F, 0.0625F, 0.75F, 0.8125F, 0.125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.25F, 0.0F, 0.875F, 0.75F, 0.8125F, 0.9375F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F, 0.0F, 0.25F, 0.125F, 0.8125F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.875F, 0.0F, 0.25F, 0.9375F, 0.8125F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Inner lip
- block.setBlockBounds(0.1875F, 0.8125F, 0.0625F, 0.8125F, 0.875F, 0.125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.1875F, 0.8125F, 0.875F, 0.8125F, 0.875F, 0.9375F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F, 0.8125F, 0.1875F, 0.125F, 0.875F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.875F, 0.8125F, 0.1875F, 0.9375F, 0.875F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Outer lip
- block.setBlockBounds(0.25F, 0.8125F, 0.0F, 0.75F, 0.875F, 0.0625F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.25F, 0.8125F, 0.9375F, 0.75F, 0.875F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0F, 0.8125F, 0.25F, 0.0625F, 0.875F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.9375F, 0.8125F, 0.25F, 1.0F, 0.875F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Not rendered, just fix the stupid hitbox
- block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.875F, 1.0F);
- return false;
- }
- private boolean RenderHypercubeInWorld(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block)
- {
- for(int layer = 0; layer < 7; layer++)
- {
- float offset = (float)layer / 16F;
- block.setBlockBounds(0.0F + offset, 0.0F + offset, 0.0F + offset, 0.0625F + offset, 0.0625F + offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.9275F - offset, 0.0F + offset, 0.0F + offset, 1.0F - offset, 0.0625F + offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0F + offset, 0.9375F - offset, 0.0F + offset, 0.0625F + offset, 1.0F - offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.9375F - offset, 0.9375F - offset, 0.0F + offset, 1.0F - offset, 1.0F - offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F + offset, 0.0F + offset, 0.0F + offset, 0.9375F - offset, 0.0625F + offset, 0.0625F + offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F + offset, 0.0F + offset, 0.9375F - offset, 0.9375F - offset, 0.0625F + offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F + offset, 0.9375F - offset, 0.0F + offset, 0.9375F - offset, 1.0F - offset, 0.0625F + offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F + offset, 0.9375F - offset, 0.9375F - offset, 0.9375F - offset, 1.0F - offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0F + offset, 0.0625F + offset, 0.0F + offset, 0.0625F + offset, 0.9375F - offset, 0.0625F + offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0F + offset, 0.0625F + offset, 0.9375F - offset, 0.0625F + offset, 0.9375F - offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.9375F - offset, 0.0625F + offset, 0.0F + offset, 1.0F - offset, 0.9375F - offset, 0.0625F + offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.9375F - offset, 0.0625F + offset, 0.9375F - offset, 1.0F - offset, 0.9375F - offset, 1.0F - offset);
- renderblocks.renderStandardBlock(block, i, j, k);
- }
- block.setBlockBounds(0.4375F, 0.4375F, 0.4375F, 0.5625F, 0.5625F, 0.5625F);
- renderblocks.renderStandardBlock(block, i, j, k);
- return false;
- }
- private boolean RenderChancePotInWorld(RenderBlocks renderblocks, IBlockAccess iblockaccess, int i, int j, int k, Block block)
- {
- //Inner sides and lid
- block.setBlockBounds(0.1875F, 0.0F, 0.125F, 0.8125F, 0.9375F, 0.875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.125F, 0.0F, 0.1875F, 0.1875F, 0.9375F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.8125F, 0.0F, 0.1875F, 0.875F, 0.9375F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.4375F, 0.9375F, 0.4375F, 0.5625F, 1.0F, 0.5625F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Inner side-lip
- block.setBlockBounds(0.125F, 0.8125F, 0.125F, 0.875F, 0.875F, 0.1875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.125F, 0.8125F, 0.8125F, 0.875F, 0.875F, 0.875F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Outer sides
- block.setBlockBounds(0.25F, 0.0F, 0.0625F, 0.75F, 0.8125F, 0.125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.25F, 0.0F, 0.875F, 0.75F, 0.8125F, 0.9375F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F, 0.0F, 0.25F, 0.125F, 0.8125F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.875F, 0.0F, 0.25F, 0.9375F, 0.8125F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Inner lip
- block.setBlockBounds(0.1875F, 0.8125F, 0.0625F, 0.8125F, 0.875F, 0.125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.1875F, 0.8125F, 0.875F, 0.8125F, 0.875F, 0.9375F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0625F, 0.8125F, 0.1875F, 0.125F, 0.875F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.875F, 0.8125F, 0.1875F, 0.9375F, 0.875F, 0.8125F);
- renderblocks.renderStandardBlock(block, i, j, k);
- //Outer lip
- block.setBlockBounds(0.25F, 0.8125F, 0.0F, 0.75F, 0.875F, 0.0625F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.25F, 0.8125F, 0.9375F, 0.75F, 0.875F, 1.0F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.0F, 0.8125F, 0.25F, 0.0625F, 0.875F, 0.75F);
- renderblocks.renderStandardBlock(block, i, j, k);
- block.setBlockBounds(0.9375F, 0.8125F, 0.25F, 1.0F, 0.875F, 0.75F);
- 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;
- }
- 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 == 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;
- }
- }
- private void RenderBlockPlaceholderInInv(RenderBlocks renderblocks, Block block, int i)
- {
- Tessellator tessellator = Tessellator.instance;
- block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
- GL11.glTranslatef(-0.5F, -0.5F, -0.5F);
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, -1F, 0.0F);
- renderblocks.renderBottomFace(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(0, i));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, 1.0F, 0.0F);
- renderblocks.renderTopFace(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(1, i));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, 0.0F, -1F);
- renderblocks.renderEastFace(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(2, i));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(0.0F, 0.0F, 1.0F);
- renderblocks.renderWestFace(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(3, i));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(-1F, 0.0F, 0.0F);
- renderblocks.renderNorthFace(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(4, i));
- tessellator.draw();
- tessellator.startDrawingQuads();
- tessellator.setNormal(1.0F, 0.0F, 0.0F);
- renderblocks.renderSouthFace(block, 0.0D, 0.0D, 0.0D, block.getBlockTextureFromSideAndMetadata(5, i));
- tessellator.draw();
- GL11.glTranslatef(0.5F, 0.5F, 0.5F);
- block.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F);
- }
- public void RenderInvBlock(RenderBlocks renderblocks, Block block, int i, int j)
- {
- if(j == planterPotModelID || j == hypercubeModelID || j == chancePotModelID)
- {
- RenderBlockPlaceholderInInv(renderblocks, block, i);
- }
- }
- }
- //=========================================================================================================
- //BlockGrass.java
- package net.minecraft.src;
- import java.util.Random;
- public class BlockGrass extends Block
- {
- protected BlockGrass(int i)
- {
- super(i, Material.grass);
- blockIndexInTexture = 3;
- setTickOnLoad(true);
- }
- public int getBlockTextureFromSideAndMetadata(int i, int j)
- {
- if (i == 1)
- {
- return 0;
- }
- return i != 0 ? 3 : 2;
- }
- public int getBlockTexture(IBlockAccess iblockaccess, int i, int j, int k, int l)
- {
- if (l == 1)
- {
- return 0;
- }
- if (l == 0)
- {
- return 2;
- }
- Material material = iblockaccess.getBlockMaterial(i, j + 1, k);
- return material != Material.snow && material != Material.craftedSnow ? 3 : 68;
- }
- public int getBlockColor()
- {
- double d = 0.5D;
- double d1 = 1.0D;
- return ColorizerGrass.getGrassColor(d, d1);
- }
- public int getRenderColor(int i)
- {
- return getBlockColor();
- }
- public int colorMultiplier(IBlockAccess iblockaccess, int i, int j, int k)
- {
- int l = 0;
- int i1 = 0;
- int j1 = 0;
- for (int k1 = -1; k1 <= 1; k1++)
- {
- for (int l1 = -1; l1 <= 1; l1++)
- {
- int i2 = iblockaccess.getWorldChunkManager().getBiomeGenAt(i + l1, k + k1).getGrassColorAtCoords(iblockaccess, i + l1, j, k + k1);
- l += (i2 & 0xff0000) >> 16;
- i1 += (i2 & 0xff00) >> 8;
- j1 += i2 & 0xff;
- }
- }
- return (l / 9 & 0xff) << 16 | (i1 / 9 & 0xff) << 8 | j1 / 9 & 0xff;
- }
- public void updateTick(World world, int i, int j, int k, Random random)
- {
- if (world.multiplayerWorld)
- {
- return;
- }
- if (world.getBlockLightValue(i, j + 1, k) < 4 && Block.lightOpacity[world.getBlockId(i, j + 1, k)] > 2)
- {
- world.setBlockWithNotify(i, j, k, Block.dirt.blockID);
- }
- else if (world.getBlockLightValue(i, j + 1, k) >= 9)
- {
- for (int l = 0; l < 4; l++)
- {
- int i1 = (i + random.nextInt(3)) - 1;
- int j1 = (j + random.nextInt(5)) - 3;
- int k1 = (k + random.nextInt(3)) - 1;
- int l1 = world.getBlockId(i1, j1 + 1, k1);
- if (world.getBlockId(i1, j1, k1) == Block.dirt.blockID && world.getBlockLightValue(i1, j1 + 1, k1) >= 4 && Block.lightOpacity[l1] <= 2)
- {
- world.setBlockWithNotify(i1, j1, k1, Block.grass.blockID);
- }
- }
- }
- }
- public int idDropped(int i, Random random, int j)
- {
- return Block.dirt.idDropped(0, random, j);
- }
- public int getRenderType()
- {
- return mod_EvilMinecraft_Fragment.grassModelID;
- }
- }
- //=========================================================================================================
- //BlockCactusPoison.java, where the derped textures are actually being used
- package net.minecraft.src;
- public class BlockCactusPoison extends BlockCactus
- {
- protected BlockCactusPoison(int i, int j)
- {
- super(i, j); //Params %blockID%, %textureIndex%, Material.cactus
- setTickOnLoad(true);
- }
- @Override
- public void onEntityCollidedWithBlock(World world, int i, int j, int k, Entity entity)
- {
- //le EntityCaveSpider spork
- if (entity instanceof EntityLiving)
- {
- byte byte0 = 0;
- if (world.difficultySetting > 0)
- {
- if (world.difficultySetting == 1)
- {
- byte0 = 7;
- }
- else if (world.difficultySetting == 2)
- {
- byte0 = 9;
- }
- else if (world.difficultySetting == 3)
- {
- byte0 = 15;
- }
- }
- if (byte0 > 0)
- {
- ((EntityLiving)entity).addPotionEffect(new PotionEffect(Potion.poison.id, byte0 * 20, 0));
- }
- }
- //end spork
- entity.attackEntityFrom(DamageSource.cactus, 1);
- }
- @Override
- public int getBlockTextureFromSide(int i)
- {
- if (i == 1)
- {
- return mod_EvilMinecraft.poisonCactusTextureIndexTop;
- }
- if (i == 0)
- {
- return mod_EvilMinecraft.poisonCactusTextureIndexBottom;
- }
- else
- {
- return mod_EvilMinecraft.poisonCactusTextureIndexSide;
- }
- }
- @Override
- public boolean canBlockStay(World world, int i, int j, int k)
- {
- if (world.getBlockMaterial(i - 1, j, k).isSolid())
- {
- return false;
- }
- if (world.getBlockMaterial(i + 1, j, k).isSolid())
- {
- return false;
- }
- if (world.getBlockMaterial(i, j, k - 1).isSolid())
- {
- return false;
- }
- if (world.getBlockMaterial(i, j, k + 1).isSolid())
- {
- return false;
- }
- else
- {
- int l = world.getBlockId(i, j - 1, k);
- return l == this.blockID || l == Block.sand.blockID;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement