Metastation kitchen area redesign and related features, take 2 (#30754)

* Metastation kitchen area redesign and related features, take 2

* reviews
This commit is contained in:
warriorstar-orion
2025-12-18 23:46:17 +00:00
committed by GitHub
parent e2efb09016
commit 481f035722
15 changed files with 2344 additions and 2236 deletions
@@ -11,6 +11,23 @@
icon_state = "kitchen"
request_console_flags = RC_SUPPLY
/area/station/service/break_room
name = "\improper Service Break Room"
icon_state = "servbreak"
request_console_flags = RC_SUPPLY
/area/station/service/kitchen/freezer
name = "\improper Kitchen Freezer"
icon_state = "kitchen_freezer"
/area/station/service/kitchen/storage
name = "\improper Kitchen Storage"
icon_state = "kitchen_store"
/area/station/service/pasture
name = "\improper Pasture"
icon_state = "pasture"
/area/station/service/bar
name = "\improper Bar"
icon_state = "bar"
+31 -27
View File
@@ -93,34 +93,38 @@
icon_state = "dinnerware"
icon_lightmask = "dinnerware"
category = VENDOR_TYPE_DEPARTMENTAL
products = list(/obj/item/storage/bag/tray = 8,
/obj/item/kitchen/utensil/fork = 6,
/obj/item/trash/plate = 20,
/obj/item/trash/bowl = 20,
/obj/item/kitchen/knife = 3,
/obj/item/kitchen/rollingpin = 2,
/obj/item/reagent_containers/cooking/sushimat = 3,
/obj/item/reagent_containers/drinks/drinkingglass = 8,
/obj/item/reagent_containers/condiment/pack/ketchup = 5,
/obj/item/reagent_containers/condiment/pack/hotsauce = 5,
/obj/item/reagent_containers/condiment/saltshaker =5,
/obj/item/reagent_containers/condiment/peppermill =5,
/obj/item/whetstone = 2,
/obj/item/storage/box/papersack = 20,
/obj/item/kitchen/knife/cheese = 2,
/obj/item/kitchen/knife/pizza_cutter = 2,
/obj/item/reagent_containers/cooking/mould/bear = 1,
/obj/item/reagent_containers/cooking/mould/worm = 1,
/obj/item/reagent_containers/cooking/mould/bean = 1,
/obj/item/reagent_containers/cooking/mould/ball = 1,
/obj/item/reagent_containers/cooking/mould/cane = 1,
/obj/item/reagent_containers/cooking/mould/cash = 1,
/obj/item/reagent_containers/cooking/mould/coin = 1,
/obj/item/reagent_containers/cooking/mould/loli = 1,
/obj/item/kitchen/cutter = 2)
products = list(
/obj/item/storage/bag/tray = 8,
/obj/item/kitchen/utensil/fork = 6,
/obj/item/trash/plate = 20,
/obj/item/trash/bowl = 20,
/obj/item/kitchen/knife = 3,
/obj/item/kitchen/rollingpin = 2,
/obj/item/reagent_containers/cooking/sushimat = 3,
/obj/item/reagent_containers/drinks/drinkingglass = 8,
/obj/item/whetstone = 2,
/obj/item/storage/box/papersack = 20,
/obj/item/kitchen/knife/cheese = 2,
/obj/item/kitchen/knife/pizza_cutter = 2,
/obj/item/storage/box/kitchen_moulds = 1,
/obj/item/kitchen/cutter = 2,
/obj/item/storage/box/dish_drive = 1,
/obj/item/storage/box/crewvend = 1,
/obj/item/storage/box/autochef = 1,
/obj/item/cartridge/chef = 2,
)
contraband = list(/obj/item/kitchen/rollingpin = 2,
/obj/item/kitchen/knife/butcher = 2)
contraband = list(
/obj/item/kitchen/rollingpin = 2,
/obj/item/kitchen/knife/butcher = 2,
)
prices = list(
/obj/item/storage/box/dish_drive = 100,
/obj/item/storage/box/crewvend = 100,
/obj/item/storage/box/autochef = 100,
/obj/item/cartridge/chef = 50,
)
refill_canister = /obj/item/vending_refill/dinnerware
+72 -74
View File
@@ -785,85 +785,83 @@
icon_panel = "drobe"
icon_addon = "chefdrobe"
category = VENDOR_TYPE_CLOTHING
ads_list = list("Our clothes are guaranteed to protect you from food splatters!",
"Comfortable enough for a CQC practice!")
ads_list = list(
"Our clothes are guaranteed to protect you from food splatters!",
"Comfortable enough for a CQC practice!",
)
vend_reply = "Thank you for using the ChefDrobe!"
products = list(/obj/item/clothing/under/rank/civilian/chef = 2,
/obj/item/clothing/under/misc/waiter = 2,
/obj/item/clothing/suit/chef = 2,
/obj/item/clothing/suit/chef/bw = 2,
/obj/item/clothing/suit/chef/red = 2,
/obj/item/clothing/suit/chef/darkgreen = 2,
/obj/item/clothing/suit/chef/classic = 2,
/obj/item/clothing/suit/hooded/wintercoat/chef = 2,
/obj/item/storage/belt/chef = 2,
/obj/item/storage/belt/chef/black = 2,
/obj/item/storage/belt/chef/red = 2,
/obj/item/storage/belt/chef/green = 2,
/obj/item/clothing/head/chefhat = 2,
/obj/item/clothing/head/chefhat/bw = 2,
/obj/item/clothing/head/chefhat/black = 2,
/obj/item/clothing/head/chefhat/red = 2,
/obj/item/clothing/head/soft/white = 2,
/obj/item/clothing/head/beret/white = 2,
/obj/item/clothing/shoes/laceup = 2,
/obj/item/clothing/shoes/white = 2,
/obj/item/clothing/shoes/black = 2,
/obj/item/clothing/neck/neckerchief = 2,
/obj/item/clothing/neck/neckerchief/black = 2,
/obj/item/clothing/neck/neckerchief/red = 2,
/obj/item/clothing/neck/neckerchief/green = 2,
/obj/item/clothing/accessory/waistcoat = 2,
/obj/item/clothing/accessory/armband/service = 3,
/obj/item/reagent_containers/glass/rag = 3,
/obj/item/storage/box/dish_drive = 1,
/obj/item/storage/box/crewvend = 1,
/obj/item/storage/box/autochef = 1,
/obj/item/clothing/head/helmet/space/plasmaman/chef = 2,
/obj/item/clothing/head/helmet/space/plasmaman/chef/bw = 2,
/obj/item/clothing/under/plasmaman/chef = 2,
/obj/item/clothing/under/plasmaman/chef/bw = 2,
/obj/item/cartridge/chef = 2)
products = list(
/obj/item/clothing/under/rank/civilian/chef = 2,
/obj/item/clothing/under/misc/waiter = 2,
/obj/item/clothing/suit/chef = 2,
/obj/item/clothing/suit/chef/bw = 2,
/obj/item/clothing/suit/chef/red = 2,
/obj/item/clothing/suit/chef/darkgreen = 2,
/obj/item/clothing/suit/chef/classic = 2,
/obj/item/clothing/suit/hooded/wintercoat/chef = 2,
/obj/item/storage/belt/chef = 2,
/obj/item/storage/belt/chef/black = 2,
/obj/item/storage/belt/chef/red = 2,
/obj/item/storage/belt/chef/green = 2,
/obj/item/clothing/head/chefhat = 2,
/obj/item/clothing/head/chefhat/bw = 2,
/obj/item/clothing/head/chefhat/black = 2,
/obj/item/clothing/head/chefhat/red = 2,
/obj/item/clothing/head/soft/white = 2,
/obj/item/clothing/head/beret/white = 2,
/obj/item/clothing/shoes/laceup = 2,
/obj/item/clothing/shoes/white = 2,
/obj/item/clothing/shoes/black = 2,
/obj/item/clothing/neck/neckerchief = 2,
/obj/item/clothing/neck/neckerchief/black = 2,
/obj/item/clothing/neck/neckerchief/red = 2,
/obj/item/clothing/neck/neckerchief/green = 2,
/obj/item/clothing/accessory/waistcoat = 2,
/obj/item/clothing/accessory/armband/service = 3,
/obj/item/reagent_containers/glass/rag = 3,
/obj/item/clothing/head/helmet/space/plasmaman/chef = 2,
/obj/item/clothing/head/helmet/space/plasmaman/chef/bw = 2,
/obj/item/clothing/under/plasmaman/chef = 2,
/obj/item/clothing/under/plasmaman/chef/bw = 2,
)
contraband = list(/obj/item/toy/figure/crew/chef = 1)
prices = list(/obj/item/clothing/under/rank/civilian/chef = 50,
/obj/item/clothing/under/misc/waiter = 50,
/obj/item/clothing/suit/chef = 50,
/obj/item/clothing/suit/chef/bw = 50,
/obj/item/clothing/suit/chef/red = 50,
/obj/item/clothing/suit/chef/darkgreen = 50,
/obj/item/clothing/suit/chef/classic = 50,
/obj/item/clothing/suit/hooded/wintercoat/chef = 75,
/obj/item/storage/belt/chef = 50,
/obj/item/storage/belt/chef/black = 50,
/obj/item/storage/belt/chef/red = 50,
/obj/item/storage/belt/chef/green = 50,
/obj/item/clothing/head/chefhat = 50,
/obj/item/clothing/head/chefhat/bw = 50,
/obj/item/clothing/head/chefhat/black = 50,
/obj/item/clothing/head/chefhat/red = 50,
/obj/item/clothing/head/soft/white = 30,
/obj/item/clothing/head/beret/white = 20,
/obj/item/clothing/shoes/laceup = 30,
/obj/item/clothing/shoes/white = 20,
/obj/item/clothing/shoes/black = 20,
/obj/item/clothing/neck/neckerchief = 20,
/obj/item/clothing/neck/neckerchief/black = 20,
/obj/item/clothing/neck/neckerchief/red = 20,
/obj/item/clothing/neck/neckerchief/green = 20,
/obj/item/clothing/accessory/waistcoat = 20,
/obj/item/clothing/accessory/armband/service = 20,
/obj/item/reagent_containers/glass/rag = 5,
/obj/item/storage/box/dish_drive = 100,
/obj/item/storage/box/crewvend = 100,
/obj/item/storage/box/autochef = 100,
/obj/item/clothing/head/helmet/space/plasmaman/chef = 60,
/obj/item/clothing/head/helmet/space/plasmaman/chef/bw = 60,
/obj/item/clothing/under/plasmaman/chef = 60,
/obj/item/clothing/under/plasmaman/chef/bw = 60,
/obj/item/cartridge/chef = 50)
prices = list(
/obj/item/clothing/under/rank/civilian/chef = 50,
/obj/item/clothing/under/misc/waiter = 50,
/obj/item/clothing/suit/chef = 50,
/obj/item/clothing/suit/chef/bw = 50,
/obj/item/clothing/suit/chef/red = 50,
/obj/item/clothing/suit/chef/darkgreen = 50,
/obj/item/clothing/suit/chef/classic = 50,
/obj/item/clothing/suit/hooded/wintercoat/chef = 75,
/obj/item/storage/belt/chef = 50,
/obj/item/storage/belt/chef/black = 50,
/obj/item/storage/belt/chef/red = 50,
/obj/item/storage/belt/chef/green = 50,
/obj/item/clothing/head/chefhat = 50,
/obj/item/clothing/head/chefhat/bw = 50,
/obj/item/clothing/head/chefhat/black = 50,
/obj/item/clothing/head/chefhat/red = 50,
/obj/item/clothing/head/soft/white = 30,
/obj/item/clothing/head/beret/white = 20,
/obj/item/clothing/shoes/laceup = 30,
/obj/item/clothing/shoes/white = 20,
/obj/item/clothing/shoes/black = 20,
/obj/item/clothing/neck/neckerchief = 20,
/obj/item/clothing/neck/neckerchief/black = 20,
/obj/item/clothing/neck/neckerchief/red = 20,
/obj/item/clothing/neck/neckerchief/green = 20,
/obj/item/clothing/accessory/waistcoat = 20,
/obj/item/clothing/accessory/armband/service = 20,
/obj/item/reagent_containers/glass/rag = 5,
/obj/item/clothing/head/helmet/space/plasmaman/chef = 60,
/obj/item/clothing/head/helmet/space/plasmaman/chef/bw = 60,
/obj/item/clothing/under/plasmaman/chef = 60,
/obj/item/clothing/under/plasmaman/chef/bw = 60,
)
refill_canister = /obj/item/vending_refill/chefdrobe
@@ -80,3 +80,10 @@
return
SSblackbox.record_feedback("tally", "random_spawners", 1, "[/obj/item/trash]")
/obj/effect/spawner/random/trash/spread_tiles
spawn_scatter_radius = 2
/obj/effect/spawner/random/trash/spread_tiles/Initialize(mapload)
spawn_loot_count = roll("3d3")
. = ..()
@@ -88,6 +88,7 @@ GLOBAL_LIST_INIT(metal_recipes, list(
new /datum/stack_recipe("meatspike frame", /obj/structure/kitchenspike_frame, 5, time = 5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("rack parts", /obj/item/rack_parts),
new /datum/stack_recipe("storage shelf", /obj/structure/shelf, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("spice rack", /obj/structure/shelf/spice_rack, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("metal bookcase", /obj/structure/bookcase/metal, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("gun rack", /obj/structure/gunrack, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
new /datum/stack_recipe("reflector frame", /obj/structure/reflector, 5, time = 2.5 SECONDS, one_per_turf = TRUE, on_floor = TRUE),
@@ -2047,6 +2047,20 @@
new /obj/item/kitchen/knife/cheese(src)
new /obj/item/kitchen/knife/pizza_cutter(src)
/obj/item/storage/box/kitchen_moulds
name = "kitchen mould kit"
desc = "A box of shaped moulds used for candy. Like gummy bears!"
/obj/item/storage/box/kitchen_moulds/populate_contents()
new /obj/item/reagent_containers/cooking/mould/bear(src)
new /obj/item/reagent_containers/cooking/mould/worm(src)
new /obj/item/reagent_containers/cooking/mould/bean(src)
new /obj/item/reagent_containers/cooking/mould/ball(src)
new /obj/item/reagent_containers/cooking/mould/cane(src)
new /obj/item/reagent_containers/cooking/mould/cash(src)
new /obj/item/reagent_containers/cooking/mould/coin(src)
new /obj/item/reagent_containers/cooking/mould/loli(src)
#undef NODESIGN
#undef NANOTRASEN
#undef SYNDI
+8 -1
View File
@@ -15,12 +15,13 @@ GLOBAL_LIST_INIT(shelf_colors, list("basic", "sci", "sup", "serv", "med", "sec",
/// The current overlay of the top shelf. Used for interleaving objects and shelf layers for the illusion of depth.
var/image/shelf_overlay
var/build_stack_type = /obj/item/stack/sheet/metal
var/shelf_type = /datum/component/shelver/basic_shelf
COOLDOWN_DECLARE(spraypaint_cd)
/obj/structure/shelf/Initialize(mapload)
. = ..()
var/area/A = get_area(src)
AddComponent(/datum/component/shelver/basic_shelf, random_pickup_locations_ = istype(A, /area/station/maintenance) || istype(A, /area/ruin/lavaland_relay))
AddComponent(shelf_type, random_pickup_locations_ = istype(A, /area/station/maintenance) || istype(A, /area/ruin/lavaland_relay))
update_icon()
set_style(shelf_style)
@@ -124,6 +125,12 @@ GLOBAL_LIST_INIT(shelf_colors, list("basic", "sci", "sup", "serv", "med", "sec",
shelf_style = "wood"
build_stack_type = /obj/item/stack/sheet/wood
/obj/structure/shelf/spice_rack
name = "spice rack"
icon_state = "shelf_spice_rack"
shelf_style = "spice_rack"
shelf_type = /datum/component/shelver/spice_rack
/obj/structure/gunrack
name = "gun rack"
desc = "A rack for stowing firearms."