Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.lyesoussaiden.trinketsandsabres.blocks;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Random;
- import com.lyesoussaiden.trinketsandsabres.Main;
- import net.minecraft.block.Block;
- import net.minecraft.block.SoundType;
- import net.minecraft.block.material.MapColor;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.init.Items;
- import net.minecraft.item.Item;
- import net.minecraft.item.ItemBlock;
- import net.minecraft.util.math.BlockPos;
- import net.minecraft.util.math.MathHelper;
- import net.minecraft.world.World;
- import net.minecraftforge.fml.common.registry.GameRegistry;
- public class Block_dimstone extends Block {
- private final String name = "dimstone";
- public ItemBlock itemBlock;
- public int dimReach = 3;
- public Block_dimstone() {
- super(Material.GLASS, MapColor.SNOW);
- setUnlocalizedName(Main.ModInformation.MODID + ":" + name);
- setRegistryName(Main.ModInformation.MODID, name);
- setCreativeTab(Main.customCreativeTab);
- setHardness(25.0f);
- setResistance(1000.0f);
- setSoundType(SoundType.GLASS);
- setHarvestLevel("pickaxe", 3);
- GameRegistry.register(this);
- itemBlock = new ItemBlock(this);
- itemBlock.setRegistryName(Main.ModInformation.MODID, name);
- GameRegistry.register(itemBlock);
- }
- public String getName()
- {
- return name;
- }
- public int quantityDroppedWithBonus(int fortune, Random random)
- {
- return MathHelper.clamp_int(this.quantityDropped(random) + random.nextInt(fortune), 2, 6);
- }
- /**
- * Returns the quantity of items to drop on block destruction.
- */
- public int quantityDropped(Random random)
- {
- return 1 + random.nextInt(2);
- }
- public Item getItemDropped(IBlockState state, Random rand, int fortune)
- {
- return Items.APPLE; //Just an example.
- }
- @Override
- public void onBlockAdded(World worldIn, BlockPos pos, IBlockState state) {
- darken(worldIn, pos);
- }
- public void darken(World worldIn, BlockPos pos)
- {
- for(int x = -dimReach; x <= dimReach; x++)
- {
- for(int y = -dimReach; y <= dimReach; y++)
- {
- for(int z = -dimReach; z <= dimReach; z++)
- {
- BlockPos searchPosition = new BlockPos(pos.getX() + x, pos.getY() + y, pos.getZ() + z);
- if(worldIn.isAirBlock(searchPosition))
- {
- worldIn.setBlockState(searchPosition, modBlocks.darkair.getDefaultState());
- }
- }
- }
- }
- }
- @Override
- public void breakBlock(World worldIn, BlockPos pos, IBlockState state) {
- super.breakBlock(worldIn, pos, state);
- List<BlockPos> dimStonePositions = new ArrayList<BlockPos>();
- for(int x = -dimReach * 2; x <= dimReach * 2; x++)
- {
- for(int y = -dimReach * 2; y <= dimReach * 2; y++)
- {
- for(int z = -dimReach * 2; z <= dimReach * 2; z++)
- {
- BlockPos searchPosition = new BlockPos(pos.getX() + x, pos.getY() + y, pos.getZ() + z);
- if(worldIn.getBlockState(searchPosition).getBlock() instanceof Block_darkair)
- {
- worldIn.setBlockToAir(searchPosition);
- }
- else if(worldIn.getBlockState(searchPosition).getBlock() instanceof Block_dimstone && searchPosition != pos)
- {
- dimStonePositions.add(searchPosition);
- }
- }
- }
- }
- for(int i = 0; i < dimStonePositions.size(); i++)
- {
- darken(worldIn, dimStonePositions.get(i));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement