mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-10 14:44:05 +01:00
f81ef075f1
* coefficient balancing * damage and meltdowns * meltdown stuff * alert stuff * lots of work - whew * some enrichment code * rod encrichmnt * working on enrichment * more fabrication * rod fab * start to the nuke * overload sprites * overload code work * some overload tweaking * small tweak * coolant ejections and QOL things * overheat events + ripley gripper * rebase + venting code * save before rebase * some pre-work for rods * finishing the base rods * fixed my dme * de linting * tiny lint fix * more lint fixes * linting * linting * linting * linting * linting * temp delint * temp delint * undo TM stuff + minor fix * didnt save * some fixes * fixes * fixes and engine repair * fixed broken durability decay * LOTS of things * tgui * lint * linter * linter * minor shit * Update boxstation.dmm * major refactors and fixes * saved this * critical testing tweaks and fixes * fixes and tweaks * smithing start * forgot to save * craftables + grill start * saved * fix * more grill work * Update tgui.bundle.js * linter * linter * fixes * rod fabricator initial * cooking work * push * soundwork * sound work tweak * comments + sounds + toxins gen rework * lots of work * sprite stuff * deconflicting * delinting * bundle rebuild * prettier * feex * fuck you OD * who asked? * update to tgui * another edit to tgui * finish tgui * remove debug metadata button * rod tweaks for tgui * Update code/datums/uplink_items/uplink_traitor.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/mecha/equipment/tools/work_tools.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/mecha/equipment/tools/work_tools.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/game/objects/items/robot/cyborg_gripper.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/mob/living/simple_animal/parrot.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/mob/living/simple_animal/parrot.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/mob/living/simple_animal/parrot.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/mob/living/simple_animal/parrot.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_misc.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_misc.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_misc.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/reactor.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/reactor.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/reactor.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/smithing/components/misc_components.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update tgui/packages/tgui/interfaces/NuclearRodFabricator.jsx Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Spans * tgui build * rod redo * improve tgui for fabricator * sprites and centrifuge/fab work * tgui update * spritework * cyberiad + hydrogen conversion * kerberos + counter * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * sprite + fab tweak * tgui bundle * lintering * bugfixing * linting * linting * event tweak * add missing gases to fission monitor * issue fixing * sprite/overlay fixes * mapping * stations again * space lattice * tine tweak * linter * no rod alerts * buttons * loose wire * make it so you can interact through rod casings and the uhh big thing in the center, what's that called again * fixes * door fix * many bug fixes + crates * fab ghost touch * water convert + maint sprite + fixes * pack changes + neighbor fix * doors rename * didnt save * hydrogen fix * map tweaks * repair fixes + corium LETHALITY * upped broken rad damage * pipe rename + overload icons * more roundstart moderators * rod tree tweaks * tweaks * pack and enrichment fixes * misc tweaks and fixes * fixes: Density, circuits, coolant offline negation * Apply suggestions from code review Co-authored-by: warriorstar-orion <orion@snowfrost.garden> Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * review changes * linter + fix * reviews and fixes * LOTS of tweaks and changes * supermatter kit * spacematter balance * tgui * fixes and tweaks * didnt save this * mapping + smith fix * cargo rods arnt radioactive til opened * Apply suggestions from code review Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * review items * fixes * linters * moving components out of nullspace * examine fix * Update tgui.bundle.js * explosion nerf and minor fix * Apply suggestions from code review Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * reviews * map fix + ripley rad immune * Apply suggestions from code review Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * review * fix chamber examine * tweaks + rod fab disk drop * Apply suggestions from code review Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * review changes * Update code/modules/power/engines/fission/nuclear_rods.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * fixes * tgui bundle * small rod tweaks * Update code/game/machinery/computer/buildandrepair.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/smithing/components/reactor_components.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/reactor_machines.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * Update code/modules/power/engines/fission/reactor_machines.dm Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> * reviews * Update code/modules/power/engines/fission/reactor_machines.dm Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com> --------- Signed-off-by: Kyani <65205627+EmeraldCandy@users.noreply.github.com> Signed-off-by: DGamerL <108773801+DGamerL@users.noreply.github.com> Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> Co-authored-by: Paul <pmerkamp@gmail.com> Co-authored-by: Pooble <90473506+poobsie@users.noreply.github.com> Co-authored-by: warriorstar-orion <orion@snowfrost.garden> Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
146 lines
4.1 KiB
Plaintext
146 lines
4.1 KiB
Plaintext
RESTRICT_TYPE(/datum/cooking_surface)
|
|
|
|
/**
|
|
* Cooking surfaces are representations of the available "slots" on a cooking machine
|
|
* that can hold a cooking container.
|
|
*/
|
|
/datum/cooking_surface
|
|
var/surface_name = "surface"
|
|
var/cooker_id
|
|
var/obj/machinery/cooking/parent
|
|
var/temperature = J_MED
|
|
var/timer = 0
|
|
var/cooktime
|
|
var/obj/item/reagent_containers/cooking/container
|
|
var/on = FALSE
|
|
var/prob_quality_decrease = 0
|
|
var/allow_temp_change = TRUE
|
|
var/allow_toggling = TRUE
|
|
VAR_PRIVATE/burn_callback
|
|
VAR_PRIVATE/fire_callback
|
|
VAR_PRIVATE/alarm_callback
|
|
|
|
/datum/cooking_surface/New(obj/machinery/cooking/parent_)
|
|
. = ..()
|
|
parent = parent_
|
|
|
|
/datum/cooking_surface/proc/container_examine(datum/source, mob/user, list/examine_list)
|
|
SIGNAL_HANDLER // COMSIG_PARENT_EXAMINE
|
|
examine_list += SPAN_NOTICE("[examine_text()]")
|
|
if(timer)
|
|
examine_list += SPAN_NOTICE("Its alarm is configured for [timer / (1 SECONDS)] seconds.")
|
|
|
|
/datum/cooking_surface/proc/examine_text()
|
|
return "This [surface_name] will cook at [temperature] temperature."
|
|
|
|
/datum/cooking_surface/proc/handle_cooking(mob/user)
|
|
if(container)
|
|
if(isnull(container.get_cooker_time(cooker_id, temperature)))
|
|
reset_cooktime()
|
|
|
|
#ifdef PCWJ_DEBUG
|
|
log_debug("timer=[timer] cooktime=[cooktime] stopwatch=[stop_watch(cooktime)]")
|
|
#endif
|
|
|
|
container.set_cooker_data(src, stop_watch(cooktime) SECONDS)
|
|
var/process_result = container.process_item(user, parent)
|
|
if(process_result == PCWJ_COMPLETE)
|
|
SEND_SIGNAL(container, COMSIG_COOK_MACHINE_STEP_COMPLETE, src)
|
|
|
|
/datum/cooking_surface/proc/handle_switch(mob/user)
|
|
playsound(parent, 'sound/items/lighter.ogg', 100, TRUE, 0)
|
|
if(on)
|
|
turn_off()
|
|
else
|
|
turn_on()
|
|
|
|
parent.update_appearance(UPDATE_ICON)
|
|
return on
|
|
|
|
/datum/cooking_surface/proc/set_burn_ignite_callbacks()
|
|
if(container)
|
|
var/burn_time = PCWJ_BURN_TIME_LOW
|
|
var/fire_time = PCWJ_IGNITE_TIME_LOW
|
|
switch(temperature)
|
|
if(J_MED)
|
|
burn_time = PCWJ_BURN_TIME_MEDIUM
|
|
fire_time = PCWJ_IGNITE_TIME_MEDIUM
|
|
if(J_HI)
|
|
burn_time = PCWJ_BURN_TIME_HIGH
|
|
fire_time = PCWJ_IGNITE_TIME_HIGH
|
|
|
|
burn_callback = addtimer(CALLBACK(src, PROC_REF(handle_burn)), burn_time, TIMER_STOPPABLE)
|
|
fire_callback = addtimer(CALLBACK(src, PROC_REF(handle_fire)), fire_time, TIMER_STOPPABLE)
|
|
|
|
/datum/cooking_surface/proc/turn_on(mob/user)
|
|
on = TRUE
|
|
set_burn_ignite_callbacks()
|
|
restart_timer()
|
|
reset_cooktime()
|
|
|
|
/datum/cooking_surface/proc/restart_timer()
|
|
if(alarm_callback)
|
|
deltimer(alarm_callback)
|
|
if(timer)
|
|
alarm_callback = addtimer(CALLBACK(src, PROC_REF(handle_alarm)), timer, TIMER_STOPPABLE)
|
|
|
|
/datum/cooking_surface/proc/turn_off(mob/user)
|
|
playsound(parent, 'sound/items/lighter.ogg', 100, TRUE, 0)
|
|
on = FALSE
|
|
unset_callbacks()
|
|
deltimer(alarm_callback)
|
|
cooktime = -1
|
|
parent.update_appearance(UPDATE_ICON)
|
|
|
|
/datum/cooking_surface/proc/handle_burn()
|
|
if(istype(container))
|
|
container.handle_burning()
|
|
|
|
/datum/cooking_surface/proc/handle_fire()
|
|
if(istype(container) && container.handle_ignition())
|
|
parent.ignite()
|
|
|
|
/datum/cooking_surface/proc/handle_alarm()
|
|
parent.atom_emote("dings.")
|
|
playsound(parent.loc, 'sound/machines/bell.ogg', 50, FALSE)
|
|
|
|
/datum/cooking_surface/proc/unset_callbacks()
|
|
deltimer(burn_callback)
|
|
deltimer(fire_callback)
|
|
|
|
/datum/cooking_surface/proc/handle_timer(mob/user)
|
|
var/old_time = timer ? timer / (1 SECONDS) : 1
|
|
var/timer_input = tgui_input_number(
|
|
user,
|
|
message = "Enter an alarm for the burner in seconds. Enter zero to disable alarm.",
|
|
title = "Set Alarm",
|
|
default = old_time,
|
|
max_value = 60)
|
|
if(!isnull(timer_input))
|
|
timer = timer_input SECONDS
|
|
if(on)
|
|
restart_timer()
|
|
|
|
parent.update_appearance(UPDATE_ICON)
|
|
|
|
/datum/cooking_surface/proc/handle_temperature(mob/user)
|
|
var/old_temp = temperature
|
|
var/choice = tgui_input_list(
|
|
user,
|
|
"Select a heat setting for the burner.\nCurrent temp: [old_temp]",
|
|
"Select Temperature",
|
|
items = list(J_HI, J_MED, J_LO, "Cancel"),
|
|
default = old_temp
|
|
)
|
|
if(choice && choice != "Cancel" && choice != old_temp)
|
|
temperature = choice
|
|
if(on)
|
|
reset_cooktime()
|
|
handle_cooking(user)
|
|
|
|
/datum/cooking_surface/proc/reset_cooktime()
|
|
cooktime = start_watch()
|
|
#ifdef PCWJ_DEBUG
|
|
log_debug("reset_cooktime")
|
|
#endif
|