mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 19:44:09 +01:00
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:
committed by
GitHub
parent
e2efb09016
commit
481f035722
+2109
-2133
File diff suppressed because it is too large
Load Diff
@@ -8,6 +8,8 @@
|
||||
var/list/used_places = list()
|
||||
/// A list of types which are are valid to place on this shelf.
|
||||
var/list/allowed_types = list()
|
||||
/// A list of types whose subtypes are valid to place on this shelf. Used in addition to [allowed_types].
|
||||
var/list/allowed_subtypes = list()
|
||||
/// The default scale transformation for objects placed on the shelf.
|
||||
var/default_scale = 0.70
|
||||
/// The default rotation transformation for objects placed on the shelf.
|
||||
@@ -23,6 +25,9 @@
|
||||
allowed_types += allowed_types_
|
||||
random_pickup_locations = random_pickup_locations_
|
||||
|
||||
if(allowed_subtypes)
|
||||
allowed_subtypes = typecacheof(allowed_subtypes)
|
||||
|
||||
/datum/component/shelver/RegisterWithParent()
|
||||
RegisterSignal(parent, COMSIG_SHELF_ATTEMPT_PICKUP, PROC_REF(on_shelf_attempt_pickup))
|
||||
RegisterSignal(parent, COMSIG_ATTACK_BY, PROC_REF(on_attackby))
|
||||
@@ -130,7 +135,11 @@
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return
|
||||
|
||||
if(length(allowed_types) && !(attacker.type in allowed_types))
|
||||
var/restrictions = length(allowed_types) || length(allowed_subtypes)
|
||||
var/in_allowed_types = is_type_in_list(attacker, allowed_types)
|
||||
var/in_allowed_subtypes = is_type_in_typecache(attacker, allowed_subtypes)
|
||||
|
||||
if(restrictions && !(in_allowed_types || in_allowed_subtypes))
|
||||
to_chat(user, SPAN_NOTICE("[attacker] won't fit on [parent]!"))
|
||||
return COMPONENT_SKIP_AFTERATTACK
|
||||
|
||||
@@ -173,6 +182,7 @@
|
||||
to_add.appearance_flags |= PIXEL_SCALE
|
||||
if("layer" in position_details)
|
||||
to_add.layer = position_details["layer"]
|
||||
to_add.layer -= 0.001 * placement_idx
|
||||
used_places[placement_idx] = to_add.UID()
|
||||
var/obj/O = parent
|
||||
if(istype(O))
|
||||
@@ -216,6 +226,31 @@
|
||||
default_scale = 0.80
|
||||
default_rotation = -45
|
||||
|
||||
/datum/component/shelver/spice_rack
|
||||
default_scale = 0.80
|
||||
|
||||
allowed_subtypes = list(
|
||||
// this also means larger containers like flour/sugar but the
|
||||
// alternative is not allowing any custom condiment containers
|
||||
/obj/item/reagent_containers/condiment,
|
||||
)
|
||||
|
||||
placement_zones = list(
|
||||
// Bottom Shelf
|
||||
list(1, 1, 6, 16) = list("x" = -10, "y" = -3, "layer" = BELOW_OBJ_LAYER),
|
||||
list(7, 1, 12, 16) = list("x" = -5, "y" = -3, "layer" = BELOW_OBJ_LAYER),
|
||||
list(13, 1, 18, 16) = list("x" = 0, "y" = -3, "layer" = BELOW_OBJ_LAYER),
|
||||
list(19, 1, 24, 16) = list("x" = 5, "y" = -3, "layer" = BELOW_OBJ_LAYER),
|
||||
list(25, 1, 32, 16) = list("x" = 10, "y" = -3, "layer" = BELOW_OBJ_LAYER),
|
||||
|
||||
// Top Shelf
|
||||
list(1, 17, 6, 32) = list("x" = -10, "y" = 12),
|
||||
list(7, 17, 12, 32) = list("x" = -5, "y" = 12),
|
||||
list(13, 17, 18, 32) = list("x" = 0, "y" = 12),
|
||||
list(19, 17, 24, 32) = list("x" = 5, "y" = 12),
|
||||
list(25, 17, 32, 32) = list("x" = 10, "y" = 12),
|
||||
)
|
||||
|
||||
/// A component for items stored on shelves, propagated by [/datum/component/shelver] components.
|
||||
/datum/component/shelved
|
||||
/// The UID of the object acting as the shelf
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
/// Shelf positioning allows for custom positioning on shelves for individual items.
|
||||
/datum/element/shelf_positioning
|
||||
element_flags = ELEMENT_BESPOKE
|
||||
argument_hash_start_idx = 2
|
||||
var/x_offset
|
||||
var/y_offset
|
||||
var/scale
|
||||
var/rotation
|
||||
|
||||
// Allow for custom offsets, scales, and rotations for specific items
|
||||
// when added to a shelf.
|
||||
/datum/element/shelf_positioning/Attach(datum/target, x_offset_ = 0, y_offset_ = 0, scale_ = 0, rotation_ = 0)
|
||||
. = ..()
|
||||
|
||||
if(!isitem(target))
|
||||
return ELEMENT_INCOMPATIBLE
|
||||
|
||||
x_offset = x_offset_
|
||||
y_offset = y_offset_
|
||||
scale = scale_
|
||||
rotation = rotation_
|
||||
|
||||
RegisterSignal(target, COMSIG_SHELF_ITEM_ADDED, PROC_REF(on_shelf_item_added))
|
||||
|
||||
/datum/element/shelf_positioning/proc/on_shelf_item_added(obj/item/target, default_scale)
|
||||
SIGNAL_HANDLER // COMSIG_SHELF_ITEM_ADDED
|
||||
target.pixel_x += x_offset
|
||||
target.pixel_y += y_offset
|
||||
if(rotation)
|
||||
target.transform = turn(target.transform, rotation)
|
||||
if((!default_scale) && scale)
|
||||
target.transform *= scale
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -76,6 +76,14 @@
|
||||
component_parts += new /obj/item/stock_parts/capacitor/super(null)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/cooking/ice_cream_mixer/loaded/Initialize(mapload)
|
||||
. = ..()
|
||||
for(var/i in 1 to length(surfaces))
|
||||
var/datum/cooking_surface/surface = surfaces[i]
|
||||
surface.container = new /obj/item/reagent_containers/cooking/icecream_bowl(src)
|
||||
|
||||
update_appearance()
|
||||
|
||||
/obj/item/circuitboard/cooking/ice_cream_mixer
|
||||
board_name = "Ice Cream Mixer"
|
||||
build_path = /obj/machinery/cooking/ice_cream_mixer
|
||||
|
||||
@@ -138,6 +138,10 @@
|
||||
list_reagents = list("sodiumchloride" = 20)
|
||||
possible_states = list()
|
||||
|
||||
/obj/item/reagent_containers/condiment/saltshaker/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/shelf_positioning, y_offset_ = -3)
|
||||
|
||||
/obj/item/reagent_containers/condiment/saltshaker/suicide_act(mob/user)
|
||||
user.visible_message(SPAN_SUICIDE("[user] begins to swap forms with the salt shaker! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
var/newname = "[name]"
|
||||
@@ -160,6 +164,10 @@
|
||||
list_reagents = list("blackpepper" = 20)
|
||||
possible_states = list()
|
||||
|
||||
/obj/item/reagent_containers/condiment/peppermill/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/shelf_positioning, y_offset_ = -3)
|
||||
|
||||
/obj/item/reagent_containers/condiment/milk
|
||||
name = "space milk"
|
||||
desc = "It's milk. White and nutritious goodness!"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.5 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
@@ -688,6 +688,7 @@
|
||||
#include "code\datums\elements\ridable.dm"
|
||||
#include "code\datums\elements\rust_element.dm"
|
||||
#include "code\datums\elements\shatters_when_thrown.dm"
|
||||
#include "code\datums\elements\shelf_positioning.dm"
|
||||
#include "code\datums\elements\sideways_movement.dm"
|
||||
#include "code\datums\elements\strippable.dm"
|
||||
#include "code\datums\elements\waddling.dm"
|
||||
|
||||
Reference in New Issue
Block a user