mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-26 22:42:26 +01:00
Resprites kitchen appliances, Adds kitchen particle smoke (#16173)
* resprited cooking appliances * added smoke particle effects * changelog
This commit is contained in:
@@ -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"
|
||||
Reference in New Issue
Block a user