mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-25 05:51:56 +01:00
Clickable Storage Backgrounds (#16249)
* Clickable Storage Backgrounds * ye
This commit is contained in:
@@ -135,6 +135,24 @@
|
||||
usr.ClickOn(master)
|
||||
return TRUE
|
||||
|
||||
/obj/screen/storage/background
|
||||
name = "background storage"
|
||||
layer = SCREEN_LAYER+0.01
|
||||
|
||||
/obj/screen/storage/background/Initialize(mapload, var/obj/set_master, var/set_icon_state)
|
||||
. = ..()
|
||||
master = set_master
|
||||
if(master)
|
||||
name = master.name
|
||||
icon_state = set_icon_state
|
||||
|
||||
/obj/screen/storage/background/Click()
|
||||
if(usr.incapacitated())
|
||||
return TRUE
|
||||
if(master)
|
||||
usr.ClickOn(master)
|
||||
return TRUE
|
||||
|
||||
/obj/screen/zone_sel
|
||||
name = "damage zone"
|
||||
icon_state = "zone_sel"
|
||||
@@ -505,4 +523,4 @@
|
||||
add_overlay(handcuff_overlay)
|
||||
|
||||
/obj/screen/inventory/back
|
||||
name = "back"
|
||||
name = "back"
|
||||
|
||||
@@ -28,9 +28,7 @@
|
||||
var/obj/screen/storage/storage_start //storage UI
|
||||
var/obj/screen/storage/storage_continue
|
||||
var/obj/screen/storage/storage_end
|
||||
var/obj/screen/storage/stored_start
|
||||
var/obj/screen/storage/stored_continue
|
||||
var/obj/screen/storage/stored_end
|
||||
var/list/storage_screens = list()
|
||||
var/obj/screen/close/closer
|
||||
var/care_about_storage_depth = TRUE
|
||||
var/use_to_pickup //Set this to make it possible to use this item in an inverse way, so you can have the item in your hand and click items on the floor to pick them up.
|
||||
@@ -51,9 +49,7 @@
|
||||
QDEL_NULL(storage_start)
|
||||
QDEL_NULL(storage_continue)
|
||||
QDEL_NULL(storage_end)
|
||||
QDEL_NULL(stored_start)
|
||||
QDEL_NULL(stored_continue)
|
||||
QDEL_NULL(stored_end)
|
||||
QDEL_NULL_LIST(storage_screens)
|
||||
QDEL_NULL(closer)
|
||||
return ..()
|
||||
|
||||
@@ -167,7 +163,10 @@
|
||||
/obj/item/storage/proc/close(mob/user as mob)
|
||||
hide_from(user)
|
||||
user.s_active = null
|
||||
return
|
||||
if(!length(can_see_contents()))
|
||||
storage_start.vis_contents = list()
|
||||
QDEL_NULL_LIST(storage_screens)
|
||||
storage_screens = list()
|
||||
|
||||
/obj/item/storage/proc/close_all()
|
||||
for(var/mob/M in can_see_contents())
|
||||
@@ -266,10 +265,18 @@
|
||||
var/startpoint = 0
|
||||
var/endpoint = 1
|
||||
|
||||
storage_start.vis_contents = list()
|
||||
QDEL_NULL_LIST(storage_screens)
|
||||
storage_screens = list()
|
||||
|
||||
for(var/obj/item/O in contents)
|
||||
startpoint = endpoint + 1
|
||||
endpoint += storage_width * O.get_storage_cost()/max_storage_space
|
||||
|
||||
var/obj/screen/storage/background/stored_start = new /obj/screen/storage/background(null, O, "stored_start")
|
||||
var/obj/screen/storage/background/stored_continue = new /obj/screen/storage/background(null, O, "stored_continue")
|
||||
var/obj/screen/storage/background/stored_end = new /obj/screen/storage/background(null, O, "stored_end")
|
||||
|
||||
var/matrix/M_start = matrix()
|
||||
var/matrix/M_continue = matrix()
|
||||
var/matrix/M_end = matrix()
|
||||
@@ -280,11 +287,13 @@
|
||||
stored_start.transform = M_start
|
||||
stored_continue.transform = M_continue
|
||||
stored_end.transform = M_end
|
||||
storage_start.add_overlay(list(stored_start, stored_continue, stored_end))
|
||||
|
||||
storage_screens += list(stored_start, stored_continue, stored_end)
|
||||
storage_start.vis_contents += list(stored_start, stored_continue, stored_end)
|
||||
|
||||
O.screen_loc = "4:[round((startpoint+endpoint)/2)+2],2:16"
|
||||
O.maptext = ""
|
||||
O.layer = SCREEN_LAYER+0.01
|
||||
O.layer = SCREEN_LAYER+0.02
|
||||
|
||||
if (!defer_overlays)
|
||||
storage_start.compile_overlays()
|
||||
@@ -671,12 +680,6 @@
|
||||
storage_end = new /obj/screen/storage{icon_state = "storage_end"}
|
||||
storage_end.master = src
|
||||
|
||||
stored_start = new /obj/storage_bullshit{icon_state = "stored_start"} //we just need these to hold the icon
|
||||
|
||||
stored_continue = new /obj/storage_bullshit{icon_state = "stored_continue"}
|
||||
|
||||
stored_end = new /obj/storage_bullshit{icon_state = "stored_end"}
|
||||
|
||||
closer = new /obj/screen/close{
|
||||
icon_state = "x";
|
||||
layer = SCREEN_LAYER
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
author: Geeves
|
||||
|
||||
delete-after: True
|
||||
|
||||
changes:
|
||||
- rscadd: "You can now click on the background of an item inside a box/backpack to pick it up. This only affects storages that don't use the square slots for now."
|
||||
Reference in New Issue
Block a user