Beds and Benches: The Aesthetic Revolution [re-PR'd With EOB's Blessing] (#62169)
About The Pull Request Ever since I saw @EOBGames PR this, I've wanted it. I've needed it. I've been delaying some mapwork FOR this. This is an identical PR to #61689, just updated so that it's not conflicting with anything. I've done everything @Krysonism asked for from last time too. That's right spacemen, double beds are back, and more cursed then ever. Cursed to succeed that is! Why It's Good For The Game We. Don't. Have. Benches. Benches are a hallmark of any public space! You can sit on them, sleep on them, stand on them, even sleep on them! Our stations have a ton of chairs, but chairs don't really communicate public that well. Benches do. As for the beds? Well Inept wants them, and you know what? I respect that. cl expansion: Sofas now include the Bench Type. These are buildable with 2 metal plates from the crafting menu. expansion: Beds can now be rotated (flipped), and include the Double Bed Type. Miners can also make Double Pod Beds to really feel like an Alaskan King. expansion: Bedsheets to match! Try to share those big blankets with a lizard if you see that they're shivering! code: Stuff that lets you interact with the benches and beds in-game, so that you too can enjoy being a king. sprites: Ports the Benches and Double Bed sprites from Skyrat sprites: Flipped Beds
@@ -4,6 +4,7 @@
|
||||
#define DYE_REGISTRY_SNEAKERS "sneakers"
|
||||
#define DYE_REGISTRY_FANNYPACK "fannypack"
|
||||
#define DYE_REGISTRY_BEDSHEET "bedsheet"
|
||||
#define DYE_REGISTRY_DOUBLE_BEDSHEET "double_bedsheet"
|
||||
#define DYE_LAWYER_SPECIAL "lawyer_special"
|
||||
|
||||
#define DYE_RED "red"
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
/datum/greyscale_config/pda/chaplain
|
||||
name = "Chaplain PDA"
|
||||
json_config = 'code/datums/greyscale/json_configs/pda_chaplain.json'
|
||||
|
||||
|
||||
/datum/greyscale_config/pda/captain
|
||||
name = "Captain PDA"
|
||||
json_config = 'code/datums/greyscale/json_configs/pda_captain.json'
|
||||
@@ -393,6 +393,26 @@
|
||||
/datum/greyscale_config/janicart_upgrade/installed
|
||||
json_config = 'code/datums/greyscale/json_configs/janicart_upgrade_installed.json'
|
||||
|
||||
/datum/greyscale_config/bench_middle
|
||||
name = "Bench Middle"
|
||||
icon_file = 'icons/obj/sofa.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/bench_middle.json'
|
||||
|
||||
/datum/greyscale_config/bench_left
|
||||
name = "Bench Left"
|
||||
icon_file = 'icons/obj/sofa.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/bench_left.json'
|
||||
|
||||
/datum/greyscale_config/bench_right
|
||||
name = "Bench Right"
|
||||
icon_file = 'icons/obj/sofa.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/bench_right.json'
|
||||
|
||||
/datum/greyscale_config/bench_corner
|
||||
name = "Bench Corner"
|
||||
icon_file = 'icons/obj/sofa.dmi'
|
||||
json_config = 'code/datums/greyscale/json_configs/bench_corner.json'
|
||||
|
||||
/datum/greyscale_config/ctf_standard
|
||||
name = "CTF Standard Vest"
|
||||
icon_file = 'icons/obj/clothing/suits/ctf.dmi'
|
||||
|
||||
15
code/datums/greyscale/json_configs/bench_corner.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"bench_corner": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_corner_base",
|
||||
"blend_mode": "overlay"
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_corner_cover",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
15
code/datums/greyscale/json_configs/bench_left.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"bench_left": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_left_base",
|
||||
"blend_mode": "overlay"
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_left_cover",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
15
code/datums/greyscale/json_configs/bench_middle.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"bench_middle": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_middle_base",
|
||||
"blend_mode": "overlay"
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_middle_cover",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
15
code/datums/greyscale/json_configs/bench_right.json
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"bench_right": [
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_right_base",
|
||||
"blend_mode": "overlay"
|
||||
},
|
||||
{
|
||||
"type": "icon_state",
|
||||
"icon_state": "bench_right_cover",
|
||||
"blend_mode": "overlay",
|
||||
"color_ids": [ 1 ]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -126,6 +126,31 @@ GLOBAL_LIST_INIT(dye_registry, list(
|
||||
DYE_COSMIC = /obj/item/bedsheet/cosmos,
|
||||
DYE_SYNDICATE = /obj/item/bedsheet/syndie,
|
||||
DYE_CENTCOM = /obj/item/bedsheet/centcom
|
||||
),
|
||||
DYE_REGISTRY_DOUBLE_BEDSHEET = list(
|
||||
DYE_RED = /obj/item/bedsheet/red/double,
|
||||
DYE_ORANGE = /obj/item/bedsheet/orange/double,
|
||||
DYE_YELLOW = /obj/item/bedsheet/yellow/double,
|
||||
DYE_GREEN = /obj/item/bedsheet/green/double,
|
||||
DYE_BLUE = /obj/item/bedsheet/blue/double,
|
||||
DYE_PURPLE = /obj/item/bedsheet/purple/double,
|
||||
DYE_BLACK = /obj/item/bedsheet/black/double,
|
||||
DYE_WHITE = /obj/item/bedsheet/double,
|
||||
DYE_RAINBOW = /obj/item/bedsheet/rainbow/double,
|
||||
DYE_MIME = /obj/item/bedsheet/mime/double,
|
||||
DYE_CLOWN = /obj/item/bedsheet/clown/double,
|
||||
DYE_CHAP = /obj/item/bedsheet/chaplain/double,
|
||||
DYE_QM = /obj/item/bedsheet/qm/double,
|
||||
DYE_LAW = /obj/item/bedsheet/black/double,
|
||||
DYE_CAPTAIN = /obj/item/bedsheet/captain/double,
|
||||
DYE_HOP = /obj/item/bedsheet/hop/double,
|
||||
DYE_HOS = /obj/item/bedsheet/hos/double,
|
||||
DYE_CE = /obj/item/bedsheet/ce/double,
|
||||
DYE_RD = /obj/item/bedsheet/rd/double,
|
||||
DYE_CMO = /obj/item/bedsheet/cmo/double,
|
||||
DYE_COSMIC = /obj/item/bedsheet/cosmos/double,
|
||||
DYE_SYNDICATE = /obj/item/bedsheet/syndie/double,
|
||||
DYE_CENTCOM = /obj/item/bedsheet/centcom/double
|
||||
),
|
||||
DYE_LAWYER_SPECIAL = list(
|
||||
DYE_COSMIC = /obj/item/clothing/under/rank/civilian/lawyer/galaxy,
|
||||
|
||||
@@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
|
||||
new/datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("bar stool", /obj/structure/chair/stool/bar, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new/datum/stack_recipe("double bed", /obj/structure/bed/double, 2, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
null, \
|
||||
new/datum/stack_recipe_list("office chairs", list( \
|
||||
new/datum/stack_recipe("dark office chair", /obj/structure/chair/office, 5, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
@@ -42,6 +43,12 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \
|
||||
new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/corp/right, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corp/corner, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
)), \
|
||||
new /datum/stack_recipe_list("benches", list( \
|
||||
new /datum/stack_recipe("bench (middle)", /obj/structure/chair/sofa/bench, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new /datum/stack_recipe("bench (left)", /obj/structure/chair/sofa/bench/left, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new /datum/stack_recipe("bench (right)", /obj/structure/chair/sofa/bench/right, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new /datum/stack_recipe("bench (corner)", /obj/structure/chair/sofa/bench/corner, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
)), \
|
||||
new /datum/stack_recipe_list("chess pieces", list( \
|
||||
new /datum/stack_recipe("White Pawn", /obj/structure/chess/whitepawn, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
new /datum/stack_recipe("White Rook", /obj/structure/chess/whiterook, 2, time = 1 SECONDS, one_per_turf = TRUE, on_floor = TRUE), \
|
||||
@@ -349,6 +356,7 @@ GLOBAL_LIST_INIT(cloth_recipes, list ( \
|
||||
new/datum/stack_recipe("improvised gauze", /obj/item/stack/medical/gauze/improvised, 1, 2, 6), \
|
||||
new/datum/stack_recipe("rag", /obj/item/reagent_containers/glass/rag, 1), \
|
||||
new/datum/stack_recipe("bedsheet", /obj/item/bedsheet, 3), \
|
||||
new/datum/stack_recipe("double bedsheet", /obj/item/bedsheet/double, 3), \
|
||||
new/datum/stack_recipe("empty sandbag", /obj/item/emptysandbag, 4), \
|
||||
null, \
|
||||
new/datum/stack_recipe("fingerless gloves", /obj/item/clothing/gloves/fingerless, 1), \
|
||||
|
||||
@@ -228,3 +228,9 @@
|
||||
/obj/structure/bed/maint/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/swabable, CELL_LINE_TABLE_MOLD, CELL_VIRUS_TABLE_GENERIC, rand(2,4), 25)
|
||||
|
||||
//Double Beds, for luxurious sleeping, i.e. the captain and maybe heads- if people use this for ERP, send them to skyrat
|
||||
/obj/structure/bed/double
|
||||
name = "double bed"
|
||||
desc = "A luxurious double bed, for those too important for small dreams."
|
||||
icon_state = "bed_double"
|
||||
|
||||
@@ -55,3 +55,26 @@
|
||||
|
||||
/obj/structure/chair/sofa/corp/corner
|
||||
icon_state = "corp_sofacorner"
|
||||
|
||||
// Ported from Skyrat
|
||||
/obj/structure/chair/sofa/bench
|
||||
name = "bench"
|
||||
desc = "Perfectly designed to be comfortable to sit on, and hellish to sleep on."
|
||||
icon_state = "bench_middle"
|
||||
greyscale_config = /datum/greyscale_config/bench_middle
|
||||
greyscale_colors = "#e3ab4b"
|
||||
|
||||
/obj/structure/chair/sofa/bench/left
|
||||
icon_state = "bench_left"
|
||||
greyscale_config = /datum/greyscale_config/bench_left
|
||||
greyscale_colors = "#e3ab4b"
|
||||
|
||||
/obj/structure/chair/sofa/bench/right
|
||||
icon_state = "bench_right"
|
||||
greyscale_config = /datum/greyscale_config/bench_right
|
||||
greyscale_colors = "#e3ab4b"
|
||||
|
||||
/obj/structure/chair/sofa/bench/corner
|
||||
icon_state = "bench_corner"
|
||||
greyscale_config = /datum/greyscale_config/bench_corner
|
||||
greyscale_colors = "#e3ab4b"
|
||||
|
||||
@@ -290,6 +290,133 @@ LINEN BINS
|
||||
new type(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/bedsheet/double
|
||||
icon_state = "double_sheetwhite"
|
||||
dying_key = DYE_REGISTRY_DOUBLE_BEDSHEET
|
||||
|
||||
/obj/item/bedsheet/blue/double
|
||||
icon_state = "double_sheetblue"
|
||||
|
||||
/obj/item/bedsheet/green/double
|
||||
icon_state = "double_sheetgreen"
|
||||
|
||||
/obj/item/bedsheet/grey/double
|
||||
icon_state = "double_sheetgrey"
|
||||
|
||||
/obj/item/bedsheet/orange/double
|
||||
icon_state = "double_sheetorange"
|
||||
|
||||
/obj/item/bedsheet/purple/double
|
||||
icon_state = "double_sheetpurple"
|
||||
|
||||
/obj/item/bedsheet/patriot/double
|
||||
icon_state = "double_sheetUSA"
|
||||
|
||||
/obj/item/bedsheet/rainbow/double
|
||||
icon_state = "double_sheetrainbow"
|
||||
|
||||
/obj/item/bedsheet/red/double
|
||||
icon_state = "double_sheetred"
|
||||
|
||||
/obj/item/bedsheet/yellow/double
|
||||
icon_state = "double_sheetyellow"
|
||||
|
||||
/obj/item/bedsheet/mime/double
|
||||
icon_state = "double_sheetmime"
|
||||
|
||||
/obj/item/bedsheet/clown/double
|
||||
icon_state = "double_sheetclown"
|
||||
|
||||
/obj/item/bedsheet/captain/double
|
||||
icon_state = "double_sheetcaptain"
|
||||
|
||||
/obj/item/bedsheet/rd/double
|
||||
icon_state = "double_sheetrd"
|
||||
|
||||
/obj/item/bedsheet/medical/double
|
||||
icon_state = "double_sheetmedical"
|
||||
|
||||
/obj/item/bedsheet/cmo/double
|
||||
icon_state = "double_sheetcmo"
|
||||
|
||||
/obj/item/bedsheet/hos/double
|
||||
icon_state = "double_sheethos"
|
||||
|
||||
/obj/item/bedsheet/hop/double
|
||||
icon_state = "double_sheethop"
|
||||
|
||||
/obj/item/bedsheet/ce/double
|
||||
icon_state = "double_sheetce"
|
||||
|
||||
/obj/item/bedsheet/qm/double
|
||||
icon_state = "double_sheetqm"
|
||||
|
||||
/obj/item/bedsheet/chaplain/double
|
||||
icon_state = "double_sheetchap"
|
||||
|
||||
/obj/item/bedsheet/brown/double
|
||||
icon_state = "double_sheetbrown"
|
||||
|
||||
/obj/item/bedsheet/black/double
|
||||
icon_state = "double_sheetblack"
|
||||
|
||||
/obj/item/bedsheet/centcom/double
|
||||
icon_state = "double_sheetcentcom"
|
||||
|
||||
/obj/item/bedsheet/syndie/double
|
||||
icon_state = "double_sheetsyndie"
|
||||
|
||||
/obj/item/bedsheet/cult/double
|
||||
icon_state = "double_sheetcult"
|
||||
|
||||
/obj/item/bedsheet/wiz/double
|
||||
icon_state = "double_sheetwiz"
|
||||
|
||||
/obj/item/bedsheet/nanotrasen/double
|
||||
icon_state = "double_sheetNT"
|
||||
|
||||
/obj/item/bedsheet/ian/double
|
||||
icon_state = "double_sheetian"
|
||||
|
||||
/obj/item/bedsheet/cosmos/double
|
||||
icon_state = "double_sheetcosmos"
|
||||
|
||||
/obj/item/bedsheet/random/double
|
||||
icon_state = "random_bedsheet"
|
||||
|
||||
/obj/item/bedsheet/random/double/Initialize()
|
||||
..()
|
||||
var/type = pick(typesof(/obj/item/bedsheet) - /obj/item/bedsheet/random)
|
||||
new type(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/item/bedsheet/dorms/double
|
||||
icon_state = "random_bedsheet"
|
||||
|
||||
/obj/item/bedsheet/dorms/double/Initialize()
|
||||
..()
|
||||
var/type = pick_weight(list("Colors" = 80, "Special" = 20))
|
||||
switch(type)
|
||||
if("Colors")
|
||||
type = pick(list(/obj/item/bedsheet,
|
||||
/obj/item/bedsheet/blue/double,
|
||||
/obj/item/bedsheet/green/double,
|
||||
/obj/item/bedsheet/grey/double,
|
||||
/obj/item/bedsheet/orange/double,
|
||||
/obj/item/bedsheet/purple/double,
|
||||
/obj/item/bedsheet/red/double,
|
||||
/obj/item/bedsheet/yellow/double,
|
||||
/obj/item/bedsheet/brown/double,
|
||||
/obj/item/bedsheet/black/double))
|
||||
if("Special")
|
||||
type = pick(list(/obj/item/bedsheet/patriot/double,
|
||||
/obj/item/bedsheet/rainbow/double,
|
||||
/obj/item/bedsheet/ian/double,
|
||||
/obj/item/bedsheet/cosmos/double,
|
||||
/obj/item/bedsheet/nanotrasen/double))
|
||||
new type(loc)
|
||||
return INITIALIZE_HINT_QDEL
|
||||
|
||||
/obj/structure/bedsheetbin
|
||||
name = "linen bin"
|
||||
desc = "It looks rather cosy."
|
||||
|
||||
@@ -186,6 +186,10 @@
|
||||
icon = 'icons/obj/lavaland/survival_pod.dmi'
|
||||
icon_state = "bed"
|
||||
|
||||
/obj/structure/bed/double/pod
|
||||
icon = 'icons/obj/lavaland/survival_pod.dmi'
|
||||
icon_state = "bed_double"
|
||||
|
||||
//Survival Storage Unit
|
||||
/obj/machinery/smartfridge/survival_pod
|
||||
name = "survival pod storage"
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 103 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 23 KiB |