From caf9a5294a3ba762d86fb5d1e303411699fa2eab Mon Sep 17 00:00:00 2001 From: atteria <86520558+atteria@users.noreply.github.com> Date: Mon, 10 Apr 2023 02:43:05 -0700 Subject: [PATCH] Resprites kitchen appliances, Adds kitchen particle smoke (#16173) * resprited cooking appliances * added smoke particle effects * changelog --- aurorastation.dme | 1 + .../machinery/cooking_machines/_appliance.dm | 31 +++++++++++++++++- .../machinery/cooking_machines/fryer.dm | 13 +++++++- .../machinery/cooking_machines/oven.dm | 11 ++++--- .../machinery/cooking_machines/stove.dm | 11 ++++--- .../effects/particles/native_particles.dm | 14 ++++++++ html/changelogs/atteria-kitchen-looks.yml | 8 +++++ icons/effects/native_particles.dmi | Bin 0 -> 315 bytes icons/obj/cooking_machines.dmi | Bin 19021 -> 14751 bytes 9 files changed, 78 insertions(+), 11 deletions(-) create mode 100644 code/modules/effects/particles/native_particles.dm create mode 100644 html/changelogs/atteria-kitchen-looks.yml create mode 100644 icons/effects/native_particles.dmi diff --git a/aurorastation.dme b/aurorastation.dme index c03ba8f33f2..d1866e2f52f 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1832,6 +1832,7 @@ #include "code\modules\effects\maze_generation\loot_modules\_loot_module_base.dm" #include "code\modules\effects\maze_generation\loot_modules\trash_module.dm" #include "code\modules\effects\maze_generation\loot_modules\turf_painter.dm" +#include "code\modules\effects\particles\native_particles.dm" #include "code\modules\effects\sparks\procs.dm" #include "code\modules\effects\sparks\spawner.dm" #include "code\modules\effects\sparks\visuals.dm" diff --git a/code/modules/cooking/machinery/cooking_machines/_appliance.dm b/code/modules/cooking/machinery/cooking_machines/_appliance.dm index b7d68a4ef0b..3942a1a2ccb 100644 --- a/code/modules/cooking/machinery/cooking_machines/_appliance.dm +++ b/code/modules/cooking/machinery/cooking_machines/_appliance.dm @@ -38,6 +38,9 @@ var/can_burn_food // Can the object burn food that is left inside? var/burn_chance = 10 // How likely is the food to burn? var/list/cooking_objs = list() // List of things being cooked + var/particles/particle_holder + var/particle_type = /particles/cooking_smoke + var/smoke_percent = 0 // If the machine has multiple output modes, define them here. var/selected_option @@ -53,6 +56,7 @@ stat &= ~NOPOWER else stat |= NOPOWER + particle_holder = new particle_type /obj/machinery/appliance/Destroy() for (var/a in cooking_objs) @@ -317,11 +321,36 @@ return TRUE +/obj/machinery/appliance/proc/get_smoke_percent() + if(can_burn_food == FALSE) + return 0 + var/closest_to_burn = 0 + for (var/datum/cooking_item/i in cooking_objs) + if(i.burned | !i.max_cookwork) + continue + var/progress = i.cookwork / i.max_cookwork + var/half_overcook = (i.overcook_mult - 1)*0.5 + var/normalized_burn = (progress - half_overcook)/(i.overcook_mult - half_overcook) + if(progress < 1+half_overcook) + continue + if(normalized_burn > closest_to_burn) + closest_to_burn = normalized_burn + return closest_to_burn + +/obj/machinery/appliance/proc/adjust_smoke() + smoke_percent = get_smoke_percent() + particle_holder.spawning = 3 * smoke_percent + if(smoke_percent > 0) + particles = particle_holder + else + particles = null + /obj/machinery/appliance/process() if (cooking_power > 0 && cooking) for (var/i in cooking_objs) do_cooking_tick(i) - + if(can_burn_food) + adjust_smoke() /obj/machinery/appliance/proc/finish_cooking(var/datum/cooking_item/CI) audible_message("[src] [finish_verb]", intent_message = PING_SOUND) diff --git a/code/modules/cooking/machinery/cooking_machines/fryer.dm b/code/modules/cooking/machinery/cooking_machines/fryer.dm index fd4a8aa7d44..b4fb7c94b0c 100644 --- a/code/modules/cooking/machinery/cooking_machines/fryer.dm +++ b/code/modules/cooking/machinery/cooking_machines/fryer.dm @@ -78,6 +78,17 @@ icon_state = on_icon else icon_state = off_icon + cut_overlays() + var/list/pans = list() + for(var/obj/item/reagent_containers/cooking_container/CC in contents) + var/image/pan_overlay + if(CC.appliancetype == FRYER) + pan_overlay = image('icons/obj/cooking_machines.dmi', "basket[Clamp(length(pans)+1, 1, 2)]") + pan_overlay.color = CC.color + pans += pan_overlay + if(isemptylist(pans)) + return + add_overlay(pans) ..() //Fryer gradually infuses any cooked food with oil. Moar calories @@ -215,4 +226,4 @@ user.visible_message("[user] pours some oil into [src].", SPAN_NOTICE("You pour [amount]u of oil into [src]."), SPAN_NOTICE("You hear something viscous being poured into a metal container.")) return TRUE //If neither of the above returned, then call parent as normal - ..() \ No newline at end of file + ..() diff --git a/code/modules/cooking/machinery/cooking_machines/oven.dm b/code/modules/cooking/machinery/cooking_machines/oven.dm index b497c8906b7..4cd9a2fff21 100644 --- a/code/modules/cooking/machinery/cooking_machines/oven.dm +++ b/code/modules/cooking/machinery/cooking_machines/oven.dm @@ -51,12 +51,13 @@ /obj/machinery/appliance/cooker/oven/update_icon() if (!open) - if (!stat) - icon_state = "ovenclosed_on" - else - icon_state = "ovenclosed_off" + icon_state = "ovenclosed" else icon_state = "ovenopen" + cut_overlays() + if (!stat) + var/glow = image('icons/obj/cooking_machines.dmi', "oven_on", EFFECTS_ABOVE_LIGHTING_LAYER) + add_overlay(glow) ..() /obj/machinery/appliance/cooker/oven/AltClick(var/mob/user) @@ -133,4 +134,4 @@ else icon_state = "adhomai_ovenclosed_off" else - icon_state = "adhomai_oven_open" \ No newline at end of file + icon_state = "adhomai_oven_open" diff --git a/code/modules/cooking/machinery/cooking_machines/stove.dm b/code/modules/cooking/machinery/cooking_machines/stove.dm index fd554c86df4..dfebf61ac87 100644 --- a/code/modules/cooking/machinery/cooking_machines/stove.dm +++ b/code/modules/cooking/machinery/cooking_machines/stove.dm @@ -1,15 +1,15 @@ /obj/machinery/appliance/cooker/stove name = "stove" desc = "Don't touch it!" - icon_state = "stove_off" + icon_state = "stove" cook_type = "pan-fried" appliancetype = SKILLET | SAUCEPAN | POT food_color = "#a34719" can_burn_food = TRUE active_power_usage = 6 KILOWATTS heating_power = 6000 - on_icon = "stove_on" - off_icon = "stove_off" + on_icon = "stove" + off_icon = "stove" resistance = 5000 // Approx. 2 minutes. idle_power_usage = 1 KILOWATTS @@ -30,6 +30,9 @@ /obj/machinery/appliance/cooker/stove/update_icon() . = ..() cut_overlays() + if (!stat) + var/glow = image('icons/obj/cooking_machines.dmi', "stove_burner") + add_overlay(glow) var/list/pans = list() for(var/obj/item/reagent_containers/cooking_container/CC in contents) var/image/pan_overlay @@ -70,4 +73,4 @@ if(T20C + 41 to T20C + 60) add_overlay("stove_fire3") if(T20C + 61 to INFINITY) - add_overlay("stove_fire4") \ No newline at end of file + add_overlay("stove_fire4") diff --git a/code/modules/effects/particles/native_particles.dm b/code/modules/effects/particles/native_particles.dm new file mode 100644 index 00000000000..cb61f5e3fd8 --- /dev/null +++ b/code/modules/effects/particles/native_particles.dm @@ -0,0 +1,14 @@ +/particles/cooking_smoke + width = 256 + height = 256 + count = 250 + spawning = 3 //per tick + lifespan = 30 //in ticks + fade = 20 + fadein = 5 + position = generator("box", list(-12,16,0), list(12,-4,50)) //x,y,z bounding box, origin is in the center of the parent + gravity = list(0.1, 1) + friction = 0.3 //percentage + drift = generator("sphere", 0, 1.5) + icon = 'icons/effects/native_particles.dmi' + icon_state = "cooking_smoke" diff --git a/html/changelogs/atteria-kitchen-looks.yml b/html/changelogs/atteria-kitchen-looks.yml new file mode 100644 index 00000000000..b1dc230ac2b --- /dev/null +++ b/html/changelogs/atteria-kitchen-looks.yml @@ -0,0 +1,8 @@ +author: atteria + +delete-after: True + +changes: + - imageadd: "Resprited most kitchen appliances." + - imageadd: "Added smoke effects to show when food is about to burn." + - bugfix: "Fixed the stove's turned on animation not displaying." diff --git a/icons/effects/native_particles.dmi b/icons/effects/native_particles.dmi new file mode 100644 index 0000000000000000000000000000000000000000..76657645726ddb19b682758a8b5aa021629f6a4f GIT binary patch literal 315 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ!m5yn5|`BC)e_1!5cyiE*d|0q;uX!^CUx2Pwx&3;~?Y9#$F0@9!)wj zDMTSy)6(AF+F0LqpM|--b!ca|vFhd(5*m3Yj?N65GGjJZqPF&qUppIm*%>@-WsCo% zyq*NKyw%giF{ENna)Jcw;slYNra*&BjLMo_{4y2{%Z!bUnV0*|-zOI<7kTI4!A1?^ zNRL8>O{xk~v3#=^b1L^)MNdVCo~I_fj83eAMha#uZU;5MwlXk8-SO3#9o~8d=pY79S3j3^ HP6WD-siKnrZUAnhI@E;coeEC3h(gn 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 literal 19021 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 E0Inf@4gdfE