Files
Bubberstation/code/game/objects/structures/ore_containers.dm
SkyratBot d8056a2c68 [MIRROR] basic gutlunchers and ashwalker ranching [MDB IGNORE] (#24970)
* basic gutlunchers and ashwalker ranching

* Update goldgrub.dm

* UpdatePaths

* Modular

* Modular

* Modular

---------

Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-13 09:42:16 -05:00

63 lines
1.8 KiB
Plaintext

///structure to contain ores
/obj/structure/ore_container
/obj/structure/ore_container/attackby(obj/item/ore, mob/living/carbon/human/user, list/modifiers)
if(istype(ore, /obj/item/stack/ore) && !user.combat_mode)
ore.forceMove(src)
return
return ..()
/obj/structure/ore_container/Entered(atom/movable/mover)
. = ..()
update_appearance(UPDATE_OVERLAYS)
/obj/structure/ore_container/Exited(atom/movable/mover)
. = ..()
update_appearance(UPDATE_OVERLAYS)
/obj/structure/ore_container/ui_interact(mob/user, datum/tgui/ui)
. = ..()
ui = SStgui.try_update_ui(user, src, ui)
if(!ui)
ui = new(user, src, "OreContainer")
ui.open()
/obj/structure/ore_container/ui_data(mob/user)
var/list/data = list()
data["ores"] = list()
for(var/obj/item/stack/ore/ore_item in contents)
data["ores"] += list(list(
"id" = REF(ore_item),
"name" = ore_item.name,
"amount" = ore_item.amount,
))
return data
/obj/structure/ore_container/ui_static_data(mob/user)
var/list/data = list()
data["ore_images"] = list()
for(var/obj/item/stack/ore_item as anything in subtypesof(/obj/item/stack/ore))
data["ore_images"] += list(list(
"name" = initial(ore_item.name),
"icon" = icon2base64(getFlatIcon(image(icon = initial(ore_item.icon), icon_state = initial(ore_item.icon_state)), no_anim=TRUE))
))
return data
/obj/structure/ore_container/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state)
. = ..()
if(. || !isliving(ui.user))
return TRUE
var/mob/living/customer = ui.user
var/obj/item/stack_to_move
switch(action)
if("withdraw")
if(isnull(params["reference"]))
return TRUE
stack_to_move = locate(params["reference"]) in contents
if(isnull(stack_to_move))
return TRUE
stack_to_move.forceMove(get_turf(customer))
return TRUE