diff --git a/code/_helpers/storage.dm b/code/_helpers/storage.dm new file mode 100644 index 0000000000..594b19cae4 --- /dev/null +++ b/code/_helpers/storage.dm @@ -0,0 +1,9 @@ +/proc/create_objects_in_loc(var/atom/loc, var/list/item_paths) + if(!istype(loc)) + CRASH("Inappropriate loction given.") + if(!istype(item_paths)) + CRASH("Inappropriate item path list given.") + + for(var/item_path in item_paths) + for(var/i = 1 to max(1, item_paths[item_path])) + new item_path(loc) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index e7f81877a8..28fea14370 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -21,7 +21,13 @@ var/store_items = 1 var/store_mobs = 1 + var/list/will_contain + /obj/structure/closet/initialize() + ..() + if(will_contain) + create_objects_in_loc(src, will_contain) + if(!opened) // if closed, any item at the crate's loc is put in the contents var/obj/item/I for(I in src.loc) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm index 5fd5cfd314..53606b3463 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/bar.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/bar.dm @@ -8,20 +8,7 @@ icon_broken = "cabinetdetective_broken" icon_off = "cabinetdetective_broken" - - New() - ..() - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - new /obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer( src ) - return + will_contain = list(/obj/item/weapon/reagent_containers/food/drinks/bottle/small/beer = 10) /obj/structure/closet/secure_closet/bar/update_icon() if(broken) diff --git a/polaris.dme b/polaris.dme index 5148ebed8d..1c4ff32424 100644 --- a/polaris.dme +++ b/polaris.dme @@ -58,6 +58,7 @@ #include "code\_helpers\mobs.dm" #include "code\_helpers\names.dm" #include "code\_helpers\sanitize_values.dm" +#include "code\_helpers\storage.dm" #include "code\_helpers\text.dm" #include "code\_helpers\time.dm" #include "code\_helpers\turfs.dm"