/**
   * Merges lines on a sign into a single line for processing, when the direction on the lines
   * match. Needed for support of the '!' character.
   */
  public static ArrayList<String> getItemLines(Sign sign) {
    HashMap<CompassDirection, String> directions = new HashMap<CompassDirection, String>(5);
    ArrayList<String> lines = new ArrayList<String>(3);
    for (int line = 1; line < 4; line++) {
      String text = StringUtils.removeBrackets(sign.getLine(line)).trim();
      if (!text.isEmpty() && !isFurnaceFuelLine(text) && !isFurnaceSmeltLine(text)) {
        CompassDirection direction = ItemUtils.getLineItemDirection(text);
        if (!directions.containsKey(direction)) {
          directions.put(direction, text);
        } else {
          String format = text;
          if (direction != CompassDirection.NO_DIRECTION) {
            format = format.substring(2);
          }
          directions.put(direction, directions.get(direction) + ":" + format);
        }
      }
    }

    MinecartManiaLogger.getInstance().debug("Merged Item Strings");
    Iterator<Entry<CompassDirection, String>> i = directions.entrySet().iterator();
    while (i.hasNext()) {
      Entry<CompassDirection, String> entry = i.next();
      lines.add(entry.getValue());
      MinecartManiaLogger.getInstance().debug("Item String: " + entry.getValue());
    }
    return lines;
  }