Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.40 KB | None | 0 0
  1. package com.lyesoussaiden.trinketsandsabres.blocks;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import java.util.Random;
  6.  
  7. import com.lyesoussaiden.trinketsandsabres.Main;
  8.  
  9. import net.minecraft.block.Block;
  10. import net.minecraft.block.SoundType;
  11. import net.minecraft.block.material.MapColor;
  12. import net.minecraft.block.material.Material;
  13. import net.minecraft.block.state.IBlockState;
  14. import net.minecraft.init.Items;
  15. import net.minecraft.item.Item;
  16. import net.minecraft.item.ItemBlock;
  17. import net.minecraft.util.math.BlockPos;
  18. import net.minecraft.util.math.MathHelper;
  19. import net.minecraft.world.World;
  20. import net.minecraftforge.fml.common.registry.GameRegistry;
  21.  
  22. public class Block_dimstone extends Block {
  23.  
  24.     private final String name = "dimstone";
  25.     public ItemBlock itemBlock;
  26.     public int dimReach = 3;
  27.    
  28.     public Block_dimstone() {
  29.         super(Material.GLASS, MapColor.SNOW);
  30.         setUnlocalizedName(Main.ModInformation.MODID + ":" + name);
  31.         setRegistryName(Main.ModInformation.MODID, name);
  32.         setCreativeTab(Main.customCreativeTab);
  33.         setHardness(25.0f);
  34.         setResistance(1000.0f);
  35.         setSoundType(SoundType.GLASS);
  36.         setHarvestLevel("pickaxe", 3);
  37.        
  38.         GameRegistry.register(this);
  39.    
  40.         itemBlock = new ItemBlock(this);
  41.         itemBlock.setRegistryName(Main.ModInformation.MODID, name);
  42.         GameRegistry.register(itemBlock);
  43.     }
  44.    
  45.     public String getName()
  46.     {
  47.         return name;
  48.     }
  49.    
  50.     public int quantityDroppedWithBonus(int fortune, Random random)
  51.     {
  52.         return MathHelper.clamp_int(this.quantityDropped(random) + random.nextInt(fortune), 2, 6);
  53.     }
  54.  
  55.     /**
  56.      * Returns the quantity of items to drop on block destruction.
  57.      */
  58.     public int quantityDropped(Random random)
  59.     {
  60.         return 1 + random.nextInt(2);
  61.     }
  62.  
  63.     public Item getItemDropped(IBlockState state, Random rand, int fortune)
  64.     {
  65.         return Items.APPLE; //Just an example.
  66.     }
  67.    
  68.     @Override
  69.     public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
  70.         darken(worldIn, pos);
  71.     }
  72.    
  73.     public void darken(World worldIn, BlockPos pos)
  74.     {
  75.         for(int x = -dimReach; x <= dimReach; x++)
  76.         {
  77.             for(int y = -dimReach; y <= dimReach; y++)
  78.             {
  79.                 for(int z = -dimReach; z <= dimReach; z++)
  80.                 {
  81.                     BlockPos searchPosition = new BlockPos(pos.getX() + x, pos.getY() + y, pos.getZ() + z);
  82.                     if(worldIn.isAirBlock(searchPosition))
  83.                     {
  84.                         worldIn.setBlockState(searchPosition, modBlocks.darkair.getDefaultState());
  85.                     }
  86.                 }
  87.             }
  88.         }
  89.     }
  90.    
  91.     @Override
  92.     public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
  93.         super.breakBlock(worldIn, pos, state);
  94.        
  95.         List<BlockPos> dimStonePositions = new ArrayList<BlockPos>();
  96.        
  97.         for(int x = -dimReach * 2; x <= dimReach * 2; x++)
  98.         {
  99.             for(int y = -dimReach * 2; y <= dimReach * 2; y++)
  100.             {
  101.                 for(int z = -dimReach * 2; z <= dimReach * 2; z++)
  102.                 {
  103.                     BlockPos searchPosition = new BlockPos(pos.getX() + x, pos.getY() + y, pos.getZ() + z);
  104.                     if(worldIn.getBlockState(searchPosition).getBlock() instanceof Block_darkair)
  105.                     {
  106.                         worldIn.setBlockToAir(searchPosition);
  107.                     }
  108.                     else if(worldIn.getBlockState(searchPosition).getBlock() instanceof Block_dimstone && searchPosition != pos)
  109.                     {
  110.                         dimStonePositions.add(searchPosition);
  111.                     }
  112.                 }
  113.             }
  114.         }
  115.        
  116.         for(int i = 0; i < dimStonePositions.size(); i++)
  117.         {
  118.             darken(worldIn, dimStonePositions.get(i));
  119.         }
  120.        
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement