/datum/hud/shell var/obj/screen/hud tool1 tool2 tool3 charge var/list/last_tools = list() var/list/obj/screen/hud/tool_selector_bg = list() var/list/obj/item/tool_selector_tools = list() var/show_tool_selector = 0 var/mob/living/silicon/shell/master New(M) master = M create_screen("", "", 'icons/mob/hud_common.dmi', "hotbar_bg", "CENTER-3:16, SOUTH to CENTER+2:16, SOUTH", HUD_LAYER) create_screen("", "", 'icons/mob/hud_common.dmi', "hotbar_side", "CENTER-3:16, SOUTH+1 to CENTER+2:16, SOUTH+1", HUD_LAYER, SOUTH) create_screen("", "", 'icons/mob/hud_common.dmi', "hotbar_side", "CENTER-4:16, SOUTH+1", HUD_LAYER, SOUTHWEST) create_screen("", "", 'icons/mob/hud_common.dmi', "hotbar_side", "CENTER-4:16, SOUTH", HUD_LAYER, EAST) create_screen("", "", 'icons/mob/hud_common.dmi', "hotbar_side", "CENTER+3:16, SOUTH+1", HUD_LAYER, SOUTHEAST) create_screen("", "", 'icons/mob/hud_common.dmi', "hotbar_side", "CENTER+3:16, SOUTH", HUD_LAYER, WEST) charge = create_screen("charge", "Battery", 'icons/mob/hud_robot.dmi', "charge4", "CENTER-3:16, SOUTH", HUD_LAYER+1) tool1 = create_screen("tool1", "Tool 1", 'icons/mob/hud_robot.dmi', "mod10", "CENTER-2:16, SOUTH", HUD_LAYER+1) tool2 = create_screen("tool2", "Tool 2", 'icons/mob/hud_robot.dmi', "mod20", "CENTER-1:16, SOUTH", HUD_LAYER+1) tool3 = create_screen("tool3", "Tool 3", 'icons/mob/hud_robot.dmi', "mod30", "CENTER:16, SOUTH", HUD_LAYER+1) create_screen("store", "Store", 'icons/mob/hud_robot.dmi', "store", "CENTER+1:16, SOUTH", HUD_LAYER+1) create_screen("tools", "Tools", 'icons/mob/hud_robot.dmi', "tools", "CENTER+2:16, SOUTH", HUD_LAYER+1) update_active_tool() update_tools() update_tool_selector() clicked(id) if (!master) return switch (id) if ("tool1") master.swap_hand(1) if ("tool2") master.swap_hand(2) if ("tool3") master.swap_hand(3) if ("store") master.store_active_tool() if ("tools") set_show_tool_selector(!show_tool_selector) proc update_charge() if (master.cell) switch(round(100*master.cell.charge/master.cell.maxcharge)) if(75 to INFINITY) charge.icon_state = "charge4" if(50 to 75) charge.icon_state = "charge3" if(25 to 50) charge.icon_state = "charge2" if(1 to 25) charge.icon_state = "charge1" else charge.icon_state = "charge0" else charge.icon_state = "charge-none" update_active_tool() tool1.icon_state = "mod1[master.active_tool == 1]" tool2.icon_state = "mod2[master.active_tool == 2]" tool3.icon_state = "mod3[master.active_tool == 3]" update_tools() for (var/obj/item/I in last_tools) remove_object(I) var/obj/item/tool1 = master.active_tools[1] var/obj/item/tool2 = master.active_tools[2] var/obj/item/tool3 = master.active_tools[3] if (tool1) add_object(tool1, HUD_LAYER+2, "CENTER-2:16, SOUTH") if (tool2) add_object(tool2, HUD_LAYER+2, "CENTER-1:16, SOUTH") if (tool3) add_object(tool3, HUD_LAYER+2, "CENTER:16, SOUTH") last_tools = master.active_tools.Copy() update_tool_selector() for (var/obj/item/tool in tool_selector_tools) remove_object(tool) tool_selector_tools.len = 0 var/i = 0 for (var/obj/item/tool in master.tools) if (!(tool in master.active_tools)) tool_selector_tools += tool tool.screen_loc = "CENTER+2:16, SOUTH+[1+i]" i += 1 for (var/obj/screen/hud/H in tool_selector_bg) remove_screen(H) tool_selector_bg.len = 0 if (tool_selector_tools.len > 0) tool_selector_bg += create_screen("", "", 'icons/mob/hud_robot.dmi', "tools-top", "CENTER+2:16, SOUTH+[tool_selector_tools.len]", HUD_LAYER+1) if (tool_selector_tools.len > 1) tool_selector_bg += create_screen("", "", 'icons/mob/hud_robot.dmi', "tools-mid", "CENTER+2:16, SOUTH+1 to CENTER+2:16, SOUTH+[tool_selector_tools.len-1]", HUD_LAYER+1) if (!show_tool_selector) for (var/obj/screen/hud/H in tool_selector_bg) // this is dumb remove_screen(H) else for (var/obj/item/tool in tool_selector_tools) add_object(tool, HUD_LAYER+2) set_show_tool_selector(show) if (show == show_tool_selector) return show_tool_selector = show if (show) for (var/obj/screen/hud/H in tool_selector_bg) add_screen(H) for (var/obj/item/tool in tool_selector_tools) add_object(tool, HUD_LAYER+2) else for (var/obj/screen/hud/H in tool_selector_bg) remove_screen(H) for (var/obj/item/tool in tool_selector_tools) remove_object(tool)