Merge pull request #15181 from Citadel-Station-13/typecaches
no more powergaming dice bags
This commit is contained in:
@@ -12,3 +12,16 @@ GLOBAL_LIST_INIT(typecache_stack, typecacheof(/obj/item/stack))
|
||||
GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure)))
|
||||
|
||||
GLOBAL_LIST_INIT(freezing_objects, typecacheof(list(/obj/structure/closet/crate/freezer, /obj/structure/closet/secure_closet/freezer, /obj/structure/bodycontainer, /obj/item/autosurgeon, /obj/machinery/smartfridge/organ))) //list of all cold objects, that freeze organs when inside
|
||||
|
||||
GLOBAL_LIST_EMPTY(typecaches)
|
||||
|
||||
/**
|
||||
* Makes a typecache of a single typecache
|
||||
*
|
||||
* Obviously in BYOND we don't have the efficiency around here to have proper enforcement so
|
||||
* If you use this you better know what you're doing. The list you get back is globally cached and if it's modified, you might break multiple things.
|
||||
*/
|
||||
/proc/single_path_typecache_immutable(path)
|
||||
if(!GLOB.typecaches[path])
|
||||
GLOB.typecaches[path] = typecacheof(path)
|
||||
return GLOB.typecaches[path]
|
||||
|
||||
@@ -17,6 +17,11 @@
|
||||
/obj/item/dice/d100
|
||||
)
|
||||
|
||||
/obj/item/storage/dice/ComponentInitialize()
|
||||
. = ..()
|
||||
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
||||
STR.can_hold = single_path_typecache_immutable(/obj/item/dice)
|
||||
|
||||
/obj/item/storage/dice/PopulateContents()
|
||||
new /obj/item/dice/d4(src)
|
||||
new /obj/item/dice/d6(src)
|
||||
|
||||
Reference in New Issue
Block a user