public HUDMaster(HUDManager hm, Registry rg, int x, int y, int w, int h) {
        super(hm, rg, x, y, w, h);

        setImage("HUD/Master/BG");

        //inventory slots
        int slotX, slotY = 0;
        HUDArea hudArea = null;
        for (int row = 0; row < INVENTORY_ROWS; row++) {
            for (int col = 0; col < INVENTORY_COLS; col++) {
                slotX = INV_SLOT_START_X + (col * INV_SLOT_WIDTH) + (col * INV_SLOT_SPACING_X);
                slotY = INV_SLOT_START_Y + (row * INV_SLOT_HEIGHT) + (row * INV_SLOT_SPACING_Y);

                hudArea = addArea(slotX, slotY, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "inventory");
                hudArea.setFont("SansSerif", Font.BOLD, 12);
                hudArea.setImage("HUD/Master/Slot");
            }
        }

        //trash
        hudArea = addArea(INV_TRASH_START_X, INV_TRASH_START_Y, INV_TRASH_WIDTH, INV_TRASH_HEIGHT, "trash");
        hudArea.setImage("HUD/Master/Trash");

        //paperdoll
        hudArea = addArea(PAPERDOLL_HEAD_X, PAPERDOLL_HEAD_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "head");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(PAPERDOLL_CHEST_X, PAPERDOLL_CHEST_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "chest");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(PAPERDOLL_LEGS_X, PAPERDOLL_LEGS_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "legs");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(PAPERDOLL_FEET_X, PAPERDOLL_FEET_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "feet");
        hudArea.setImage("HUD/Master/Slot");

        //hp
        hudArea = addArea(HP_X, HP_Y, VALUE_WIDTH, VALUE_HEIGHT, "hp");
        hudArea.setFont("SansSerif", Font.BOLD, 16);
        hudArea.setImage("HUD/Master/Value");

        //armor
        hudArea = addArea(AP_X, AP_Y, VALUE_WIDTH, VALUE_HEIGHT, "ap");
        hudArea.setFont("SansSerif", Font.BOLD, 16);
        hudArea.setImage("HUD/Master/Value");

        //arrows
        hudArea = addArea(ARROW_LEFT_X, ARROW_LEFT_Y, ARROW_WIDTH, ARROW_HEIGHT, "arrow_left");
        hudArea.setImage("HUD/Master/ArrowLeft");
        hudArea = addArea(ARROW_RIGHT_X, ARROW_RIGHT_Y, ARROW_WIDTH, ARROW_HEIGHT, "arrow_right");
        hudArea.setImage("HUD/Master/ArrowRight");

        //crafting items
        hudArea = addArea(CRAFT_LEFT1_X, CRAFT_LEFT1_Y, CRAFT_LEFT1_SIZE, CRAFT_LEFT1_SIZE, "craft1");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(CRAFT_LEFT2_X, CRAFT_LEFT2_Y, CRAFT_LEFT2_SIZE, CRAFT_LEFT2_SIZE, "craft2");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(CRAFT_MAIN_X, CRAFT_MAIN_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "craft3");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(CRAFT_RIGHT1_X, CRAFT_RIGHT1_Y, CRAFT_RIGHT1_SIZE, CRAFT_RIGHT1_SIZE, "craft4");
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(CRAFT_RIGHT2_X, CRAFT_RIGHT2_Y, CRAFT_RIGHT2_SIZE, CRAFT_RIGHT2_SIZE, "craft5");
        hudArea.setImage("HUD/Master/Slot");

        //crafting requirements
        hudArea = addArea(REQUIRE1_X, REQUIRE1_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "requirement1");
        hudArea.setFont("SansSerif", Font.BOLD, 12);
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(REQUIRE2_X, REQUIRE2_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "requirement2");
        hudArea.setFont("SansSerif", Font.BOLD, 12);
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(REQUIRE3_X, REQUIRE3_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "requirement3");
        hudArea.setFont("SansSerif", Font.BOLD, 12);
        hudArea.setImage("HUD/Master/Slot");
        hudArea = addArea(REQUIRE4_X, REQUIRE4_Y, INV_SLOT_WIDTH, INV_SLOT_HEIGHT, "requirement4");
        hudArea.setFont("SansSerif", Font.BOLD, 12);
        hudArea.setImage("HUD/Master/Slot");

        //create
        hudArea = addArea(CREATE_X, CREATE_Y, CREATE_WIDTH, CREATE_HEIGHT, "create");
        hudArea.setImage("HUD/Master/Create");

        //crafting categories
        hudArea = addArea(CAT_PLACEABLES_X, CAT_PLACEABLES_Y, CAT_PLACEABLES_WIDTH, CAT_HEIGHT, "placeables");
        hudArea.setImage("HUD/Master/Placeables");
        hudArea = addArea(CAT_ITEMS_X, CAT_ITEMS_Y, CAT_ITEMS_WIDTH, CAT_HEIGHT, "items");
        hudArea.setImage("HUD/Master/ItemsOn");
        hudArea = addArea(CAT_TECH_X, CAT_TECH_Y, CAT_TECH_WIDTH, CAT_HEIGHT, "attachments");
        hudArea.setImage("HUD/Master/Attachments");

        //crafting type - placeables
        hudArea = addArea(TYPE_WEAPONS_X, TYPE_WEAPONS_Y, TYPE_WEAPONS_WIDTH, TYPE_HEIGHT, "p_development");
        hudArea.setImage("HUD/Master/DevelopmentOn");
        hudArea.setIsActive(false);
        hudArea = addArea(TYPE_ARMOR_X, TYPE_ARMOR_Y, TYPE_ARMOR_WIDTH, TYPE_HEIGHT, "p_combat");
        hudArea.setImage("HUD/Master/CombatOn");
        hudArea.setIsActive(false);
        hudArea = addArea(TYPE_OTHER_X, TYPE_OTHER_Y, TYPE_OTHER_WIDTH, TYPE_HEIGHT, "p_other");
        hudArea.setImage("HUD/Master/OtherOn");
        hudArea.setIsActive(false);

        //crafting type - items
        hudArea = addArea(TYPE_WEAPONS_X, TYPE_WEAPONS_Y, TYPE_WEAPONS_WIDTH, TYPE_HEIGHT, "i_weapons");
        hudArea.setImage("HUD/Master/WeaponsOn");
        hudArea = addArea(TYPE_ARMOR_X, TYPE_ARMOR_Y, TYPE_ARMOR_WIDTH, TYPE_HEIGHT, "i_armor");
        hudArea.setImage("HUD/Master/ArmorOn");
        hudArea = addArea(TYPE_OTHER_X, TYPE_OTHER_Y, TYPE_OTHER_WIDTH, TYPE_HEIGHT, "i_other");
        hudArea.setImage("HUD/Master/OtherOn");

        //crafting type - dev
        hudArea = addArea(TYPE_ARMOR_X, TYPE_ARMOR_Y, TYPE_ARMOR_WIDTH, TYPE_HEIGHT, "t_development");
        hudArea.setImage("HUD/Master/DevelopmentOn");
        hudArea.setIsActive(false);

        //crafting - craftable
        hudArea = addArea(HAVE_MATERIALS_X, HAVE_MATERIALS_Y, HAVE_MATERIALS_WIDTH, HAVE_MATERIALS_HEIGHT, "have_materials");
        hudArea.setImage("HUD/Master/HaveMaterials");
        hudArea.setIsActive(true);

        craftDescriptions = new String[5];
        craftDescriptions[0] = "";
        craftDescriptions[1] = "";
        craftDescriptions[2] = "";
        craftDescriptions[3] = "";
        craftDescriptions[4] = "";

        requirementsDescriptions = new String[5];
        requirementsDescriptions[0] = "";
        requirementsDescriptions[1] = "";
        requirementsDescriptions[2] = "";
        requirementsDescriptions[3] = "";

        update();

        LoadMatchingItems();
        shouldRender = false;
    }