gt:                             tile.setSlotStack(13, new ItemStack(ModItems.wootzchunkhot, 1));
context: package nmd.primal.forgecraft.init;
  
  import net.minecraft.block.Block;
  import net.minecraft.block.material.Material;
  import net.minecraft.block.state.IBlockState;
  import net.minecraft.client.Minecraft;
  import net.minecraft.client.renderer.block.model.ModelResourceLocation;
  import net.minecraft.entity.player.EntityPlayer;
  import net.minecraft.init.Blocks;
  import net.minecraft.item.Item;
  import net.minecraft.item.ItemBlock;
  import net.minecraft.item.ItemStack;
  import net.minecraft.util.EnumFacing;
  import net.minecraft.util.EnumHand;
  import net.minecraft.util.math.BlockPos;
  import net.minecraft.world.World;
  import net.minecraftforge.client.model.ModelLoader;
  import net.minecraftforge.fml.common.registry.ForgeRegistries;
  import net.minecraftforge.fml.relauncher.Side;
  import net.minecraftforge.fml.relauncher.SideOnly;
  import nmd.primal.core.common.items.tools.Gallagher;
  import nmd.primal.forgecraft.blocks.Anvil.AnvilBase;
  import nmd.primal.forgecraft.blocks.Anvil.AnvilIron;
  import nmd.primal.forgecraft.blocks.Anvil.AnvilStone;
  import nmd.primal.forgecraft.blocks.*;
  import nmd.primal.forgecraft.blocks.Crucibles.Crucible;
  import nmd.primal.forgecraft.blocks.Crucibles.CrucibleHot;
  import nmd.primal.forgecraft.items.ForgeHammer;
  import nmd.primal.forgecraft.tiles.TileAnvil;
  
  /**
   * Created by kitsu on 11/26/2016.
   */
  public class ModBlocks {
  
      public static Block forge_brick;
      public static Block forge_adobe;
      public static Block bloomery_brick;
      public static Block bloomery_adobe;
      public static Block blockbreaker;
      public static Block castingform;
      public static Block castingblock;
  
      public static Block pistonbellowsoak;
      public static Block pistonbellowsjungle;
      public static Block pistonbellowsbirch;
      public static Block pistonbellowsspruce;
      public static Block pistonbellowsdarkoak;
      public static Block pistonbellowsacacia;
  
      public static Block emptycrucible;
      public static Block emptycruciblehot;
      public static Block emptycruciblecracked;
      public static Block emptycruciblecrackedhot;
  
      public static Block rawbronzecrucible;
      public static Block hotbronzecrucible;
      public static Block hotcookedbronzecrucible;
  
      public static Block rawbronzecrucible_redstone;
      public static Block hotbronzecrucible_redstone;
      public static Block hotcookedbronzecrucible_redstone;
  
      public static Block rawbronzecrucible_lapis;
      public static Block hotbronzecrucible_lapis;
      public static Block hotcookedbronzecrucible_lapis;
  
      public static Block rawbronzecrucible_diamond;
      public static Block hotbronzecrucible_diamond;
      public static Block hotcookedbronzecrucible_diamond;
  
      public static Block rawbronzecrucible_emerald;
      public static Block hotbronzecrucible_emerald;
      public static Block hotcookedbronzecrucible_emerald;
  
      public static Block rawironcrucible;
      public static Block hotironcrucible;
      public static Block hotcookedironcrucible;
      public static Block coolironcrucible;
      public static Block failedironcrucible;
      public static Block failedironcruciblehot;
  
      public static Block rawcleanironcrucible;
      public static Block hotcleanironcrucible;
      public static Block hotcookedcleanironcrucible;
      public static Block coolcleanironcrucible;
      public static Block failedcleanironcrucible;
      public static Block failedcleanironcruciblehot;
  
      public static Block rawsteelcrucible;
      public static Block hotsteelcrucible;
      public static Block hotcookedsteelcrucible;
      public static Block coolsteelcrucible;
      public static Block failedsteelcrucible;
      public static Block failedsteelcruciblehot;
  
      public static Block rawwootzcrucible;
      public static Block hotwootzcrucible;
      public static Block hotcookedwootzcrucible;
      public static Block coolwootzcrucible;
      public static Block failedwootzcrucible;
      public static Block failedwootzcruciblehot;
  
      public static Block ironball;
      public static Block ironchunk;
      public static Block ironcleanball;
      public static Block ironcleanchunk;
      public static Block steelball;
      public static Block steelchunk;
      public static Block wootzball;
      public static Block wootzchunk;
  
      public static Block stoneanvil;
      public static Block ironanvil;
  
      public static Block yewstave;
  
  
      public static void init() {
  
          forge_brick = new Forge(Material.ROCK, "forge_brick", 5000);
          forge_adobe = new Forge(Material.ROCK, "forge_adobe", 5000);
          bloomery_brick = new BloomeryBase(Material.ROCK, "bloomery_brick", 5000);
          bloomery_adobe = new BloomeryBase(Material.ROCK, "bloomery_adobe", 5000);
          blockbreaker = new Breaker(Material.WOOD, "blockbreaker", 4.0f);
          castingform = new CastingForm(Material.WOOD, "castingform");
          castingblock = new CastingBlock(Material.ROCK, "castingblock");
  
          pistonbellowsoak = new PistonBellows(Material.WOOD, "pistonbellowsoak");
          pistonbellowsjungle = new PistonBellows(Material.WOOD, "pistonbellowsjungle");
          pistonbellowsbirch = new PistonBellows(Material.WOOD, "pistonbellowsbirch");
          pistonbellowsspruce = new PistonBellows(Material.WOOD, "pistonbellowsspruce");
          pistonbellowsdarkoak = new PistonBellows(Material.WOOD, "pistonbellowsdarkoak");
          pistonbellowsacacia = new PistonBellows(Material.WOOD, "pistonbellowsacacia");
  
          emptycrucible = new Crucible(Material.ROCK, "emptycrucible");
          emptycruciblehot = new CrucibleHot(Material.ROCK, "emptycruciblehot");
          emptycruciblecracked = new Crucible(Material.ROCK, "emptycruciblecracked");
          emptycruciblecrackedhot = new CrucibleHot(Material.ROCK, "emptycruciblecrackedhot");
  
          rawbronzecrucible = new Crucible(Material.ROCK, "rawbronzecrucible");
          hotbronzecrucible = new CrucibleHot(Material.ROCK, "hotbronzecrucible");
          hotcookedbronzecrucible = new CrucibleHot(Material.ROCK, "hotcookedbronzecrucible");
  
          rawbronzecrucible_redstone = new Crucible(Material.ROCK, "rawbronzecrucible_redstone");
          hotbronzecrucible_redstone = new CrucibleHot(Material.ROCK, "hotbronzecrucible_redstone");
          hotcookedbronzecrucible_redstone = new CrucibleHot(Material.ROCK, "hotcookedbronzecrucible_redstone");
  
          rawbronzecrucible_diamond = new Crucible(Material.ROCK, "rawbronzecrucible_diamond");
          hotbronzecrucible_diamond = new CrucibleHot(Material.ROCK, "hotbronzecrucible_diamond");
          hotcookedbronzecrucible_diamond = new CrucibleHot(Material.ROCK, "hotcookedbronzecrucible_diamond");
  
          rawbronzecrucible_lapis = new Crucible(Material.ROCK, "rawbronzecrucible_lapis");
          hotbronzecrucible_lapis = new CrucibleHot(Material.ROCK, "hotbronzecrucible_lapis");
          hotcookedbronzecrucible_lapis = new CrucibleHot(Material.ROCK, "hotcookedbronzecrucible_lapis");
  
          rawbronzecrucible_emerald = new Crucible(Material.ROCK, "rawbronzecrucible_emerald");
          hotbronzecrucible_emerald = new CrucibleHot(Material.ROCK, "hotbronzecrucible_emerald");
          hotcookedbronzecrucible_emerald = new CrucibleHot(Material.ROCK, "hotcookedbronzecrucible_emerald");
  
          rawironcrucible = new Crucible(Material.ROCK, "rawironcrucible");
          hotironcrucible = new CrucibleHot(Material.ROCK, "hotironcrucible");
          hotcookedironcrucible = new CrucibleHot(Material.ROCK, "hotcookedironcrucible");
          coolironcrucible = new Crucible(Material.ROCK, "coolironcrucible");
          failedironcrucible = new Crucible(Material.ROCK, "failedironcrucible");
          failedironcruciblehot = new CrucibleHot(Material.ROCK, "failedironcruciblehot");
  
          rawcleanironcrucible = new Crucible(Material.ROCK, "rawcleanironcrucible");
          hotcleanironcrucible = new CrucibleHot(Material.ROCK, "hotcleanironcrucible");
          hotcookedcleanironcrucible = new CrucibleHot(Material.ROCK, "hotcookedcleanironcrucible");
          coolcleanironcrucible = new Crucible(Material.ROCK, "coolcleanironcrucible");
          failedcleanironcrucible = new Crucible(Material.ROCK, "failedcleanironcrucible");
          failedcleanironcruciblehot = new Crucible(Material.ROCK, "failedcleanironcruciblehot");
  
          rawsteelcrucible = new Crucible(Material.ROCK, "rawsteelcrucible");
          hotsteelcrucible = new CrucibleHot(Material.ROCK, "hotsteelcrucible");
          hotcookedsteelcrucible = new CrucibleHot(Material.ROCK, "hotcookedsteelcrucible");
          coolsteelcrucible = new Crucible(Material.ROCK, "coolsteelcrucible");
          failedsteelcrucible = new Crucible(Material.ROCK, "failedsteelcrucible");
          failedsteelcruciblehot = new Crucible(Material.ROCK, "failedsteelcruciblehot");
  
          rawwootzcrucible = new Crucible(Material.ROCK, "rawwootzcrucible");
          hotwootzcrucible = new CrucibleHot(Material.ROCK, "hotwootzcrucible");
          hotcookedwootzcrucible = new CrucibleHot(Material.ROCK, "hotcookedwootzcrucible");
          coolwootzcrucible = new Crucible(Material.ROCK, "coolwootzcrucible");
          failedwootzcrucible = new Crucible(Material.ROCK, "failedwootzcrucible");
          failedwootzcruciblehot = new Crucible(Material.ROCK, "failedwootzcruciblehot");
  
          ironball = new IngotBall(Material.IRON, "ironball", 5.0F, "ingot") {
              @Override
              public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitx, float hity, float hitz)
              {
                  if(!world.isRemote){
                      Item pItem = player.getHeldItem(hand).getItem();
                      BlockPos belowPos = pos.down();
                      //System.out.println("Activating");
                      if (pItem instanceof Gallagher && world.getBlockState(belowPos).getBlock().equals(Blocks.STONE)) {
                          player.swingArm(hand);
                          world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                          world.setBlockState(belowPos, ModBlocks.stoneanvil.getDefaultState().withProperty(AnvilStone.FACING, player.getHorizontalFacing()), 2);
                          world.playEvent(1031, pos, 0);
                          //CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(ModBlocks.stoneanvil, 1));
                          return true;
                      }
                      /*if (pItem instanceof ForgeHammer && world.getBlockState(belowPos).getBlock().equals(Blocks.IRON_BLOCK)) {
                          player.swingArm(hand);
                          world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                          world.setBlockState(belowPos, ModBlocks.ironanvil.getDefaultState().withProperty(AnvilStone.FACING, player.getHorizontalFacing()), 2);
                          world.playEvent(1031, pos, 0);
                          //CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(ModBlocks.stoneanvil, 1));
                          return true;
                      }*/
                      if (pItem instanceof Gallagher || pItem.equals(ModItems.forgehammer)) {
                          if(world.getBlockState(belowPos).getBlock() instanceof AnvilBase) {
  
                              TileAnvil tile = (TileAnvil) world.getTileEntity(belowPos);
  
                              if (tile.getSlotStack(6).isEmpty() &&
                                      tile.getSlotStack(7).isEmpty() &&
                                      tile.getSlotStack(8).isEmpty() &&
                                      tile.getSlotStack(11).isEmpty() &&
                                      tile.getSlotStack(12).isEmpty() &&
                                      tile.getSlotStack(13).isEmpty() &&
                                      tile.getSlotStack(16).isEmpty() &&
                                      tile.getSlotStack(17).isEmpty() &&
                                      tile.getSlotStack(18).isEmpty()
                                      ) {
                                  player.swingArm(hand);
                                  world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                                  tile.setSlotStack(6, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(7, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(8, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(11, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(12, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(13, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(16, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(17, new ItemStack(ModItems.ironchunkhot, 1));
                                  tile.setSlotStack(18, new ItemStack(ModItems.ironchunkhot, 1));
                                  world.playEvent(1031, pos, 0);
                                  return true;
                              }
                          }
                      }
  
                  }
                  return false;
              }
          };
          ironcleanball = new IngotBall(Material.IRON, "ironcleanball", 5.0f, "ingot") {
              @Override
              public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitx, float hity, float hitz)
              {
                  //System.out.println("Level 0");
                  if(!world.isRemote){
                      Item pItem = player.getHeldItem(hand).getItem();
                      BlockPos belowPos = pos.down();
                      //System.out.println("Activating1");
                      if (pItem instanceof ForgeHammer && world.getBlockState(belowPos).getBlock().equals(Blocks.IRON_BLOCK)) {
                          player.swingArm(hand);
                          world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                          world.setBlockState(belowPos, ModBlocks.ironanvil.getDefaultState().withProperty(AnvilStone.FACING, player.getHorizontalFacing()), 2);
                          world.playEvent(1031, pos, 0);
                          //System.out.println("Activating");
                          return true;
                      }
                      if (pItem instanceof Gallagher || pItem.equals(ModItems.forgehammer)) {
                          if(world.getBlockState(belowPos).getBlock() instanceof AnvilBase) {
  
                              TileAnvil tile = (TileAnvil) world.getTileEntity(belowPos);
  
                              if (tile.getSlotStack(6).isEmpty() &&
                                      tile.getSlotStack(7).isEmpty() &&
                                      tile.getSlotStack(8).isEmpty() &&
                                      tile.getSlotStack(11).isEmpty() &&
                                      tile.getSlotStack(12).isEmpty() &&
                                      tile.getSlotStack(13).isEmpty() &&
                                      tile.getSlotStack(16).isEmpty() &&
                                      tile.getSlotStack(17).isEmpty() &&
                                      tile.getSlotStack(18).isEmpty()
                                      ) {
                                  player.swingArm(hand);
                                  world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                                  tile.setSlotStack(6, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(7, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(8, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(11, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(12, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(13, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(16, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(17, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  tile.setSlotStack(18, new ItemStack(ModItems.ironcleanchunkhot, 1));
                                  world.playEvent(1031, pos, 0);
                                  return true;
                              }
                          }
                      }
  
                  }
                  return false;
              }
          }; // clean_iron_ingot ironcleanball.json ironcleanballhot.json - done
          steelball = new IngotBall(Material.IRON, "steelball", 6.0f, "ingot"){
              @Override
              public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitx, float hity, float hitz)
              {
                  if(!world.isRemote){
                      Item pItem = player.getHeldItem(hand).getItem();
                      BlockPos belowPos = pos.down();
                      //System.out.println("Activating");
                      if (pItem instanceof ForgeHammer && world.getBlockState(belowPos).getBlock().equals(Blocks.IRON_BLOCK)) {
                          player.swingArm(hand);
                          world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                          world.setBlockState(belowPos, ModBlocks.ironanvil.getDefaultState().withProperty(AnvilStone.FACING, player.getHorizontalFacing()), 2);
                          world.playEvent(1031, pos, 0);
                          //CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(ModBlocks.stoneanvil, 1));
                          return true;
                      }
                      if (pItem instanceof Gallagher || pItem.equals(ModItems.forgehammer)) {
                          if(world.getBlockState(belowPos).getBlock() instanceof AnvilBase) {
  
                              TileAnvil tile = (TileAnvil) world.getTileEntity(belowPos);
  
                              if (tile.getSlotStack(6).isEmpty() &&
                                      tile.getSlotStack(7).isEmpty() &&
                                      tile.getSlotStack(8).isEmpty() &&
                                      tile.getSlotStack(11).isEmpty() &&
                                      tile.getSlotStack(12).isEmpty() &&
                                      tile.getSlotStack(13).isEmpty() &&
                                      tile.getSlotStack(16).isEmpty() &&
                                      tile.getSlotStack(17).isEmpty() &&
                                      tile.getSlotStack(18).isEmpty()
                                      ) {
                                  player.swingArm(hand);
                                  world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                                  tile.setSlotStack(6, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(7, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(8, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(11, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(12, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(13, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(16, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(17, new ItemStack(ModItems.steelchunkhot, 1));
                                  tile.setSlotStack(18, new ItemStack(ModItems.steelchunkhot, 1));
                                  world.playEvent(1031, pos, 0);
                                  return true;
                              }
                          }
                      }
  
                  }
                  return false;
              }
          }; // steel_ingot steelball.json steelballhot.json
          wootzball = new IngotBall(Material.IRON, "wootzball", 6.0f, "ingot") {
          @Override
          public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitx, float hity, float hitz)
          {
              if(!world.isRemote){
                  Item pItem = player.getHeldItem(hand).getItem();
                  BlockPos belowPos = pos.down();
                  //System.out.println("Activating");
                  if (pItem instanceof ForgeHammer && world.getBlockState(belowPos).getBlock().equals(Blocks.IRON_BLOCK)) {
                      player.swingArm(hand);
                      world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                      world.setBlockState(belowPos, ModBlocks.ironanvil.getDefaultState().withProperty(AnvilStone.FACING, player.getHorizontalFacing()), 2);
                      world.playEvent(1031, pos, 0);
                      //CommonUtils.spawnItemEntityFromWorld(world, pos, new ItemStack(ModBlocks.stoneanvil, 1));
                      return true;
                  }
                  if (pItem instanceof Gallagher || pItem.equals(ModItems.forgehammer)) {
                      if(world.getBlockState(belowPos).getBlock() instanceof AnvilBase) {
  
                          TileAnvil tile = (TileAnvil) world.getTileEntity(belowPos);
  
                          if (tile.getSlotStack(6).isEmpty() &&
                                  tile.getSlotStack(7).isEmpty() &&
                                  tile.getSlotStack(8).isEmpty() &&
                                  tile.getSlotStack(11).isEmpty() &&
                                  tile.getSlotStack(12).isEmpty() &&
                                  tile.getSlotStack(13).isEmpty() &&
                                  tile.getSlotStack(16).isEmpty() &&
                                  tile.getSlotStack(17).isEmpty() &&
                                  tile.getSlotStack(18).isEmpty()
                                  ) {
                              player.swingArm(hand);
                              world.setBlockState(pos, Blocks.AIR.getDefaultState(), 2);
                              tile.setSlotStack(6, new ItemStack(ModItems.wootzchunkhot, 1));
                              tile.setSlotStack(7, new ItemStack(ModItems.wootzchunkhot, 1));
                              tile.setSlotStack(8, new ItemStack(ModItems.wootzchunkhot, 1));
                              tile.setSlotStack(11, new ItemStack(ModItems.wootzchunkhot, 1));
                              tile.setSlotStack(12, new ItemStack(ModItems.wootzchunkhot, 1));
  