diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index bc0211e5871..db757049c1b 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -16,12 +16,21 @@ GLOBAL_LIST_INIT(metal_recipes, list( new /datum/stack_recipe("stool", /obj/structure/chair/stool, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("barstool", /obj/structure/chair/stool/bar, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("chair", /obj/structure/chair, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("chair (dark)", /obj/structure/chair, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("chair (light)", /obj/structure/chair/light, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("shuttle seat", /obj/structure/chair/comfy/shuttle, 2, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/left, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/right, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe_list("sofas", list( + new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/left, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/right, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corner, 1, one_per_turf = TRUE, on_floor = TRUE) + )), \ + new /datum/stack_recipe_list("corporate sofas", list( \ + new /datum/stack_recipe("sofa (middle)", /obj/structure/chair/sofa/corp, 1, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("sofa (left)", /obj/structure/chair/sofa/corp/left, 1, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("sofa (right)", /obj/structure/chair/sofa/corp/right, 1, one_per_turf = TRUE, on_floor = TRUE), \ + new /datum/stack_recipe("sofa (corner)", /obj/structure/chair/sofa/corp/corner, 1, one_per_turf = TRUE, on_floor = TRUE), \ + )), \ new /datum/stack_recipe("barber chair", /obj/structure/chair/barber, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("wheelchair", /obj/structure/chair/wheelchair, 15, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1), @@ -176,6 +185,11 @@ GLOBAL_LIST_INIT(wood_recipes, list( new /datum/stack_recipe("wood floor tile", /obj/item/stack/tile/wood, 1, 4, 20), new /datum/stack_recipe("wood table frame", /obj/structure/table_frame/wood, 2, time = 10), \ new /datum/stack_recipe("wooden chair", /obj/structure/chair/wood, 3, time = 10, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe_list("pews", list( + new /datum/stack_recipe("pew (middle)", /obj/structure/chair/sofa/pew, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("pew (left)", /obj/structure/chair/sofa/pew/left, 1, one_per_turf = TRUE, on_floor = TRUE), + new /datum/stack_recipe("pew (right)", /obj/structure/chair/sofa/pew/right, 1, one_per_turf = TRUE, on_floor = TRUE), + )), \ new /datum/stack_recipe("wooden barricade", /obj/structure/barricade/wooden, 5, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("bookcase", /obj/structure/bookcase, 5, time = 50, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("dresser", /obj/structure/dresser, 30, time = 50, one_per_turf = 1, on_floor = 1), diff --git a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm index 1318be1d310..467efe3d935 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/chairs.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/chairs.dm @@ -137,6 +137,12 @@ rotate() // Chair types +/obj/structure/chair/light + name = "chair" + icon_state = "chair_greyscale" + resistance_flags = FLAMMABLE + item_chair = /obj/item/chair/light + /obj/structure/chair/wood name = "wooden chair" desc = "Old is never too old to not be in fashion." @@ -268,6 +274,33 @@ anchored = TRUE item_chair = null buildstackamount = 1 + var/image/armrest = null + +/obj/structure/chair/sofa/Initialize(mapload) + armrest = GetArmrest() + armrest.layer = ABOVE_MOB_LAYER + return ..() + +/obj/structure/chair/sofa/proc/GetArmrest() + return mutable_appearance('icons/obj/chairs.dmi', "[icon_state]_armrest") + +/obj/structure/chair/sofa/Destroy() + QDEL_NULL(armrest) + return ..() + +/obj/structure/chair/sofa/post_buckle_mob(mob/living/M) + . = ..() + update_armrest() + +/obj/structure/chair/sofa/post_unbuckle_mob(mob/living/M) + . = ..() + update_armrest() + +/obj/structure/chair/sofa/proc/update_armrest() + if(has_buckled_mobs()) + add_overlay(armrest) + else + cut_overlay(armrest) /obj/structure/chair/sofa/left icon_state = "sofaend_left" @@ -278,6 +311,31 @@ /obj/structure/chair/sofa/corner icon_state = "sofacorner" +/obj/structure/chair/sofa/corp + name = "sofa" + desc = "Soft and cushy." + icon_state = "corp_sofamiddle" + +/obj/structure/chair/sofa/corp/left + icon_state = "corp_sofaend_left" + +/obj/structure/chair/sofa/corp/right + icon_state = "corp_sofaend_right" + +/obj/structure/chair/sofa/corp/corner + icon_state = "corp_sofacorner" + +/obj/structure/chair/sofa/pew + name = "pew" + desc = "Rigid and uncomfortable, perfect for keeping you awake and alert." + icon_state = "pewmiddle" + +/obj/structure/chair/sofa/pew/left + icon_state = "pewend_left" + +/obj/structure/chair/sofa/pew/right + icon_state = "pewend_right" + /obj/structure/chair/stool name = "stool" desc = "Apply butt." @@ -309,6 +367,10 @@ var/break_chance = 5 //Likely hood of smashing the chair. var/obj/structure/chair/origin_type = /obj/structure/chair +/obj/item/chair/light + icon_state = "chair_greyscale_toppled" + origin_type = /obj/structure/chair/light + /obj/item/chair/stool name = "stool" icon = 'icons/obj/chairs.dmi' diff --git a/code/modules/paperwork/faxmachine.dm b/code/modules/paperwork/faxmachine.dm index 624a4ddd099..76a5dd4dc03 100644 --- a/code/modules/paperwork/faxmachine.dm +++ b/code/modules/paperwork/faxmachine.dm @@ -10,6 +10,7 @@ GLOBAL_LIST_EMPTY(fax_blacklist) icon = 'icons/obj/library.dmi' icon_state = "fax" insert_anim = "faxsend" + var/receive_anim = "faxsend" pass_flags = PASSTABLE var/fax_network = "Local Fax Network" /// If true, prevents fax machine from sending messages to NT machines @@ -51,11 +52,17 @@ GLOBAL_LIST_EMPTY(fax_blacklist) /obj/machinery/photocopier/faxmachine/longrange name = "long range fax machine" + icon_state = "longfax" + insert_anim = "longfaxsend" + receive_anim = "longfaxreceive" fax_network = "Central Command Quantum Entanglement Network" long_range_enabled = TRUE /obj/machinery/photocopier/faxmachine/longrange/syndie name = "syndicate long range fax machine" + icon_state = "fax" + insert_anim = "faxsend" + receive_anim = "faxsend" emagged = TRUE syndie_restricted = TRUE req_one_access = list(ACCESS_SYNDICATE) @@ -293,7 +300,7 @@ GLOBAL_LIST_EMPTY(fax_blacklist) if(department == "Unknown") return FALSE //You can't send faxes to "Unknown" - flick("faxreceive", src) + flick(receive_anim, src) playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1) diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index 1d0e83b8845..91936fb8295 100644 Binary files a/icons/obj/chairs.dmi and b/icons/obj/chairs.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 28c164ad554..e0db0804fa6 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ