boolean NORTHhasCraftedBlock(Location startLocation)
   {
      boolean res = false;
      int validCraftBlockRows = 0; // amount of horizontal rows that have been successfully checked for crafted blocks.

      // Check NORTH =========================================================
      // Check if there is a block to the NORTH of the players position which is a valid
      // crafted block for a shelter to gain the "indoor warmth bonus"

      Location fixedStartLoc = new Location(startLocation.getWorld(), startLocation.getX(), startLocation.getY(), startLocation.getZ()); // loc of player (foot-level)
      Location checkedLoc = new Location(fixedStartLoc.getWorld(), fixedStartLoc.getX(), fixedStartLoc.getY(), fixedStartLoc.getZ()); // loc of player (foot-level)

      int checkLimitY = (int)checkedLoc.getY() + 1; // check should be done for foot and head level of player
      int checkLimit = (int)checkedLoc.getZ() - Arctica.checkRadius;
      checkedLoc.setZ(checkedLoc.getZ() - 1); // set start next to the player                

      for(int checkedLocY = (int)checkedLoc.getY(); checkedLocY <= checkLimitY; checkedLocY++, checkedLoc.setY(checkedLoc.getY()+1))
      {
         for(int checkedLocZ = (int)checkedLoc.getZ(); checkedLocZ > checkLimit; checkedLocZ--, checkedLoc.setZ(checkedLoc.getZ() - 1)) //safer than "while"
         {
            if (!checkedLoc.getBlock().isEmpty())
            {
               //if(Arctica.debug) plugin.getServer().broadcastMessage(ChatColor.AQUA + "Gecheckt: " + checkedLoc.getBlock().getX() +  " " + checkedLoc.getBlock().getY() + " " + checkedLoc.getBlock().getZ());
               if(craftedBlocksIDlist.contains(checkedLoc.getBlock().getTypeId())) // its a valid crafted block
               {
                  //if(Arctica.debug) plugin.getServer().broadcastMessage(ChatColor.AQUA + "NORTH Block gefunden: " + checkedLoc.getBlock().getType().toString());                        
                  validCraftBlockRows++;
                  break;
               }
            }
         }
         checkedLoc.setZ(fixedStartLoc.getZ() - 1); // reset horizontal location to initial location (= next to players feet) after checking foot level to prepare for head level check
      }

      if(validCraftBlockRows >= neededCraftBlockRows) // all height levels have valid craft blocks
      {
         res = true;
      }

      return (res);
   }