diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 92e2c4115fe..c617860643e 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/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index 4ee5d7aa28e..97e85cb7857 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -16,7 +16,6 @@ var/recharge_counter = 0 var/hackedcheck = FALSE var/obj/item/reagent_containers/beaker = null - var/image/icon_beaker = null //cached overlay var/list/dispensable_reagents = list("hydrogen", "lithium", "carbon", "nitrogen", "oxygen", "fluorine", "sodium", "aluminum", "silicon", "phosphorus", "sulfur", "chlorine", "potassium", "iron", "copper", "mercury", "plasma", "radium", "water", "ethanol", "sugar", "iodine", "bromine", "silver", "chromium") @@ -130,6 +129,15 @@ else stat |= NOPOWER +/obj/machinery/chem_dispenser/update_icon() + if(panel_open) + icon_state = "[initial(icon_state)]-o" + return + if(!powered() && !is_drink) + icon_state = "dispenser_nopower" + return + icon_state = "[initial(icon_state)][beaker ? "_working" : ""]" + /obj/machinery/chem_dispenser/ex_act(severity) if(severity < 3) if(beaker) @@ -140,7 +148,6 @@ ..() if(A == beaker) beaker = null - overlays.Cut() /obj/machinery/chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) // update the ui if it exists, returns null if no ui is passed/found @@ -204,11 +211,6 @@ atom_say("Not enough energy to complete operation!") return R.add_reagent(params["reagent"], actual) - overlays.Cut() - if(!icon_beaker) - icon_beaker = mutable_appearance('icons/obj/chemical.dmi', "disp_beaker") //randomize beaker overlay position. - icon_beaker.pixel_x = rand(-10, 5) - overlays += icon_beaker if("remove") var/amount = text2num(params["amount"]) if(!beaker || !amount) @@ -226,7 +228,7 @@ if(Adjacent(usr) && !issilicon(usr)) usr.put_in_hands(beaker) beaker = null - overlays.Cut() + update_icon() else return FALSE @@ -255,10 +257,7 @@ I.forceMove(src) to_chat(user, "You set [I] on the machine.") SStgui.update_uis(src) // update all UIs attached to src - if(!icon_beaker) - icon_beaker = mutable_appearance('icons/obj/chemical.dmi', "disp_beaker") //randomize beaker overlay position. - icon_beaker.pixel_x = rand(-10, 5) - overlays += icon_beaker + update_icon() return return ..() diff --git a/code/modules/reagents/reagent_containers/bottle.dm b/code/modules/reagents/reagent_containers/bottle.dm index 4274c3114db..effeb05d1a4 100644 --- a/code/modules/reagents/reagent_containers/bottle.dm +++ b/code/modules/reagents/reagent_containers/bottle.dm @@ -39,7 +39,7 @@ underlays += filling if(!is_open_container()) - var/image/lid = image(icon, src, "lid_bottle") + var/image/lid = image(icon, src, "lid_[icon_state]") overlays += lid /obj/item/reagent_containers/glass/bottle/decompile_act(obj/item/matter_decompiler/C, mob/user) diff --git a/icons/obj/aicards.dmi b/icons/obj/aicards.dmi index 3a9e773a00c..177e72ad4bc 100644 Binary files a/icons/obj/aicards.dmi and b/icons/obj/aicards.dmi differ diff --git a/icons/obj/airlock_machines.dmi b/icons/obj/airlock_machines.dmi index 80821813cbc..4bb40dde0ad 100644 Binary files a/icons/obj/airlock_machines.dmi and b/icons/obj/airlock_machines.dmi differ diff --git a/icons/obj/apc_repair.dmi b/icons/obj/apc_repair.dmi index 4aadcd2ebdc..9e494902ba4 100644 Binary files a/icons/obj/apc_repair.dmi and b/icons/obj/apc_repair.dmi differ diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi index 945ded53552..3cdeff4d342 100644 Binary files a/icons/obj/bodybag.dmi and b/icons/obj/bodybag.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index cb29615d4c9..c708ef12d0a 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/chairs.dmi b/icons/obj/chairs.dmi index dba239a064f..7486f0e9859 100644 Binary files a/icons/obj/chairs.dmi and b/icons/obj/chairs.dmi differ diff --git a/icons/obj/chemical.dmi b/icons/obj/chemical.dmi index 17101426105..2b898e3462f 100644 Binary files a/icons/obj/chemical.dmi and b/icons/obj/chemical.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 23c3dcd676c..d00d1d4fb94 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi index ebc1cca56da..e2a1f7cfae2 100644 Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi index 9f83289c81b..0d13c90cd15 100644 Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index dc12bb7dd67..e0db0804fa6 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/lighting.dmi b/icons/obj/lighting.dmi index 4886978ff48..7487c376774 100644 Binary files a/icons/obj/lighting.dmi and b/icons/obj/lighting.dmi differ