Resprites kitchen appliances, Adds kitchen particle smoke (#16173)

* resprited cooking appliances

* added smoke particle effects

* changelog
This commit is contained in:
atteria
2023-04-10 09:43:05 +00:00
committed by GitHub
parent 182bb14aa9
commit caf9a5294a
9 changed files with 78 additions and 11 deletions
@@ -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("<b>[src]</b> [finish_verb]", intent_message = PING_SOUND)
@@ -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
..()
..()
@@ -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"
icon_state = "adhomai_oven_open"
@@ -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")
add_overlay("stove_fire4")
@@ -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"