Part 3: Storage Improvements (#90476)

Co-authored-by: _0Steven <42909981+00-Steven@users.noreply.github.com>
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
This commit is contained in:
SyncIt21
2025-04-20 17:32:29 +05:30
committed by Shadow-Quill
parent 086b7cf2f6
commit 81c9e6ebd3
68 changed files with 2098 additions and 1670 deletions
@@ -14,13 +14,11 @@
var/foldable_result = /obj/item/stack/sheet/cardboard
/// What drawing will we get on the face of the box?
var/illustration = "writing"
storage_type = /datum/storage/box
/obj/item/storage/box/Initialize(mapload)
. = ..()
atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL
update_appearance()
atom_storage.open_sound = 'sound/items/handling/cardboard_box/cardboard_box_open.ogg'
atom_storage.rustle_sound = 'sound/items/handling/cardboard_box/cardboard_box_rustle.ogg'
/obj/item/storage/box/suicide_act(mob/living/carbon/user)
var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)
@@ -21,13 +21,7 @@
/obj/item/storage/box/debugtools
name = "box of debug tools"
icon_state = "syndiebox"
/obj/item/storage/box/debugtools/Initialize(mapload)
. = ..()
atom_storage.allow_big_nesting = TRUE
atom_storage.max_slots = 99
atom_storage.max_specific_storage = WEIGHT_CLASS_GIGANTIC
atom_storage.max_total_storage = 99
storage_type = /datum/storage/box/debug
/obj/item/storage/box/debugtools/PopulateContents()
var/static/items_inside = list(
@@ -3,11 +3,11 @@
desc = "A cardboard box folded in a manner that is optimal for concealment, rather than for stowing your belongings."
icon_state = "flat"
illustration = null
storage_type = /datum/storage/box/flat
/obj/item/storage/box/flat/Initialize(mapload)
. = ..()
AddElement(/datum/element/undertile, TRAIT_T_RAY_VISIBLE, INVISIBILITY_OBSERVER, use_anchor = TRUE, tilt_tile = TRUE)
atom_storage.max_slots = 3
/obj/item/storage/box/proc/flatten_box()
if(istype(loc, /obj/item/storage) || type != /obj/item/storage/box || contents.len)
@@ -7,15 +7,12 @@
illustration = null
/// What type of donk pocket are we gonna cram into this box?
var/donktype = /obj/item/food/donkpocket
storage_type = /datum/storage/box/donk_pockets
/obj/item/storage/box/donkpockets/PopulateContents()
for(var/i in 1 to 6)
new donktype(src)
/obj/item/storage/box/donkpockets/Initialize(mapload)
. = ..()
atom_storage.set_holdable(/obj/item/food/donkpocket)
/obj/item/storage/box/donkpockets/donkpocketspicy
name = "box of spicy-flavoured donk-pockets"
icon_state = "donkpocketboxspicy"
@@ -340,16 +337,11 @@
illustration = null
foldable_result = null
custom_price = PAYCHECK_CREW
storage_type = /datum/storage/box/gum
///Typepath of the type of gum that spawns with this box, this is passed to the wrapper for spawning in.
var/spawning_gum_type = /obj/item/food/bubblegum
/obj/item/storage/box/gum/Initialize(mapload)
. = ..()
atom_storage.set_holdable(/obj/item/storage/bubblegum_wrapper)
atom_storage.max_slots = 4
atom_storage.allow_big_nesting = TRUE
/obj/item/storage/box/gum/PopulateContents()
for(var/i in 1 to 4)
new /obj/item/storage/bubblegum_wrapper(src, spawning_gum_type)
@@ -559,14 +551,10 @@
desc = "A bag containing fresh, dry coffee arabica beans. Ethically sourced and packaged by Waffle Corp."
illustration = null
icon = 'icons/obj/food/containers.dmi'
storage_type = /datum/storage/box/coffee
var/beantype = /obj/item/food/grown/coffee
/obj/item/storage/box/coffeepack/Initialize(mapload)
. = ..()
atom_storage.set_holdable(/obj/item/food/grown/coffee)
/obj/item/storage/box/coffeepack/PopulateContents()
atom_storage.max_slots = 5
for(var/i in 1 to 5)
var/obj/item/food/grown/coffee/bean = new beantype(src)
ADD_TRAIT(bean, TRAIT_DRIED, ELEMENT_TRAIT(type))
@@ -144,15 +144,7 @@
illustration = null
w_class = WEIGHT_CLASS_SMALL
custom_price = PAYCHECK_CREW * 1.75
/obj/item/storage/box/bandages/Initialize(mapload)
. = ..()
atom_storage.max_slots = 6
atom_storage.set_holdable(list(
/obj/item/stack/medical/bandage,
/obj/item/reagent_containers/applicator/pill,
/obj/item/reagent_containers/applicator/patch,
))
storage_type = /datum/storage/box/bandages
/obj/item/storage/box/bandages/PopulateContents()
for(var/i in 1 to 5)
@@ -37,17 +37,10 @@
desc = "Drymate brand monkey cubes. Just add water!"
icon_state = "monkeycubebox"
illustration = null
custom_price = PAYCHECK_CREW * 2
storage_type = /datum/storage/box/monkey_cube
/// Which type of cube are we spawning in this box?
var/cube_type = /obj/item/food/monkeycube
custom_price = PAYCHECK_CREW * 2
/obj/item/storage/box/monkeycubes/Initialize(mapload)
. = ..()
atom_storage.max_slots = 7
atom_storage.set_holdable(
can_hold_list = /obj/item/food/monkeycube,
cant_hold_list = /obj/item/food/monkeycube/gorilla,
)
/obj/item/storage/box/monkeycubes/PopulateContents()
for(var/i in 1 to 5)
@@ -62,11 +55,7 @@
desc = "Waffle Corp. brand gorilla cubes. Do not taunt."
icon_state = "monkeycubebox"
illustration = null
/obj/item/storage/box/gorillacubes/Initialize(mapload)
. = ..()
atom_storage.max_slots = 3
atom_storage.set_holdable(/obj/item/food/monkeycube/gorilla)
storage_type = /datum/storage/box/gorilla_cube_box
/obj/item/storage/box/gorillacubes/PopulateContents()
for(var/i in 1 to 3)
@@ -115,13 +104,7 @@
/obj/item/storage/box/stabilized //every single stabilized extract from xenobiology
name = "box of stabilized extracts"
icon_state = "syndiebox"
/obj/item/storage/box/stabilized/Initialize(mapload)
. = ..()
atom_storage.allow_big_nesting = TRUE
atom_storage.max_slots = 99
atom_storage.max_specific_storage = WEIGHT_CLASS_GIGANTIC
atom_storage.max_total_storage = 99
storage_type = /datum/storage/box/stabilized
/obj/item/storage/box/stabilized/PopulateContents()
var/static/items_inside = list(
@@ -60,11 +60,7 @@
icon = 'icons/obj/toys/toy.dmi'
icon_state = "spbox"
illustration = ""
/obj/item/storage/box/snappops/Initialize(mapload)
. = ..()
atom_storage.set_holdable(/obj/item/toy/snappop)
atom_storage.max_slots = 8
storage_type = /datum/storage/box/snappops
/obj/item/storage/box/snappops/PopulateContents()
for(var/i in 1 to 8)
@@ -86,11 +82,10 @@
custom_price = PAYCHECK_CREW * 0.4
base_icon_state = "matchbox"
illustration = null
storage_type = /datum/storage/box/match
/obj/item/storage/box/matches/Initialize(mapload)
. = ..()
atom_storage.max_slots = 10
atom_storage.set_holdable(/obj/item/match)
AddElement(/datum/element/ignites_matches)
/obj/item/storage/box/matches/PopulateContents()
@@ -117,16 +112,7 @@
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
foldable_result = /obj/item/stack/sheet/cardboard //BubbleWrap
illustration = "light"
/obj/item/storage/box/lights/Initialize(mapload)
. = ..()
atom_storage.max_slots = 21
atom_storage.set_holdable(list(
/obj/item/light/tube,
/obj/item/light/bulb
))
atom_storage.max_total_storage = 21
atom_storage.allow_quick_gather = FALSE //temp workaround to re-enable filling the light replacer with the box
storage_type = /datum/storage/box/lights
/obj/item/storage/box/lights/bulbs/PopulateContents()
for(var/i in 1 to 21)
@@ -208,13 +194,7 @@
name = "box of long balloons"
desc = "A completely randomized and wacky box of long balloons, harvested straight from balloon farms on the clown planet."
illustration = "balloon"
/obj/item/storage/box/balloons/Initialize(mapload)
. = ..()
atom_storage.max_slots = 24
atom_storage.set_holdable(/obj/item/toy/balloon/long)
atom_storage.max_total_storage = 24
atom_storage.allow_quick_gather = FALSE
storage_type = /datum/storage/box/balloon
/obj/item/storage/box/balloons/PopulateContents()
for(var/i in 1 to 24)
@@ -227,6 +207,8 @@
icon_state = "stickerpack"
illustration = null
w_class = WEIGHT_CLASS_TINY
storage_type = /datum/storage/box/stickers
var/static/list/pack_labels = list(
"smile",
"frown",
@@ -238,9 +220,6 @@
/obj/item/storage/box/stickers/Initialize(mapload)
. = ..()
atom_storage.max_slots = 8
atom_storage.set_holdable(/obj/item/sticker)
atom_storage.max_specific_storage = WEIGHT_CLASS_TINY
if(isnull(illustration))
illustration = pick(pack_labels)
update_appearance()