MrDood_Modding

BlockMainCrop.java

Feb 3rd, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.86 KB | None | 0 0
  1. package com.josh.gomc.crops;
  2.  
  3. import java.util.Random;
  4.  
  5. import cpw.mods.fml.relauncher.Side;
  6. import cpw.mods.fml.relauncher.SideOnly;
  7. import net.minecraft.block.Block;
  8. import net.minecraft.block.BlockBush;
  9. import net.minecraft.block.IGrowable;
  10. import net.minecraft.creativetab.CreativeTabs;
  11. import net.minecraft.init.Blocks;
  12. import net.minecraft.item.Item;
  13. import net.minecraft.util.IIcon;
  14. import net.minecraft.util.MathHelper;
  15. import net.minecraft.world.World;
  16.  
  17. public class BlockMainCrop extends BlockBush implements IGrowable{
  18.      protected int maxGrowthStage = 7;
  19.  
  20.  
  21.         @SideOnly(Side.CLIENT)
  22.         protected IIcon[] iIcon;
  23.  
  24.         public BlockMainCrop()
  25.         {
  26.          // Basic block setup
  27.             setTickRandomly(true);
  28.             float f = 0.5F;
  29.             setBlockBounds(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, 0.25F, 0.5F + f);
  30.             setCreativeTab((CreativeTabs)null);
  31.             setHardness(0.0F);
  32.             setStepSound(soundTypeGrass);
  33.             disableStats();
  34.         }
  35.  
  36.         /**
  37.          * is the block grass, dirt or farmland
  38.          */
  39.         @Override
  40.         protected boolean canPlaceBlockOn(Block parBlock)
  41.         {
  42.             return parBlock == Blocks.farmland;
  43.         }
  44.  
  45.         public void incrementGrowStage(World parWorld, Random parRand, int parX, int parY, int parZ)
  46.         {
  47.             int growStage = parWorld.getBlockMetadata(parX, parY, parZ) +
  48.                   MathHelper.getRandomIntegerInRange(parRand, 2, 5);
  49.  
  50.             if (growStage > maxGrowthStage)
  51.             {
  52.              growStage = maxGrowthStage;
  53.             }
  54.  
  55.             parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
  56.         }
  57.        
  58.         @Override
  59.         public Item getItemDropped(int p_149650_1_, Random parRand, int parFortune)
  60.         {
  61.             return Item.getItemFromBlock(this);
  62.         }
  63.  
  64.         /**
  65.          * The type of render function that is called for this block
  66.          */
  67.         @Override
  68.         public int getRenderType()
  69.         {
  70.             return 1; // Cross like flowers
  71.         }
  72.        
  73.         /**
  74.          * Gets the block's texture. Args: side, meta
  75.          */
  76.         @Override
  77.         @SideOnly(Side.CLIENT)
  78.         public IIcon getIcon(int parSide, int parGrowthStage)
  79.         {
  80.          return iIcon[parGrowthStage];
  81.         }
  82.        
  83.         /*
  84.          * Need to implement the IGrowable interface methods
  85.          */
  86.  
  87.         /*
  88.          * (non-Javadoc)
  89.          * @see net.minecraft.block.IGrowable#func_149851_a(net.minecraft.world.World,
  90.          * int, int, int, boolean)
  91.          */
  92.         @Override
  93.         // checks if finished growing (a grow stage of 7 is final stage)
  94.         public boolean func_149851_a(World parWorld, int parX, int parY, int parZ,
  95.               boolean p_149851_5_)
  96.         {
  97.             return parWorld.getBlockMetadata(parX, parY, parZ) != 7;
  98.         }
  99.  
  100.         /*
  101.          * (non-Javadoc)
  102.          * @see net.minecraft.block.IGrowable#func_149852_a(net.minecraft.world.World,
  103.          * java.util.Random, int, int, int)
  104.          */
  105.         @Override
  106.         public boolean func_149852_a(World p_149852_1_, Random parRand, int p_149852_3_,
  107.               int p_149852_4_, int p_149852_5_)
  108.         {
  109.             return true;
  110.         }
  111.  
  112.         /*
  113.          * (non-Javadoc)
  114.          * @see net.minecraft.block.IGrowable#func_149853_b(net.minecraft.world.World,
  115.          * java.util.Random, int, int, int)
  116.          */
  117.         @Override
  118.         public void func_149853_b(World parWorld, Random parRand, int parX, int parY,
  119.               int parZ)
  120.         {
  121.             incrementGrowStage(parWorld, parRand, parX, parY, parZ);
  122.         }
  123.         @Override
  124.         public void updateTick(World parWorld, int parX, int parY, int parZ, Random parRand)
  125.         {
  126.             super.updateTick(parWorld, parX, parY, parZ, parRand);
  127.             int growStage = parWorld.getBlockMetadata(parX, parY, parZ) + 1;
  128.  
  129.             if (growStage > 7)
  130.             {
  131.                 growStage = 7;
  132.             }
  133.  
  134.             parWorld.setBlockMetadataWithNotify(parX, parY, parZ, growStage, 2);
  135.         }
  136. }
Add Comment
Please, Sign In to add comment