mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
[MIRROR] Makes doors not horrid. Also fixes infinite heat (#10091)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
109d90ddba
commit
fad9124cf8
@@ -47,7 +47,7 @@
|
||||
turn_off()
|
||||
return
|
||||
if(istype(I, /obj/item/multitool))
|
||||
var/new_temp = tgui_input_number(user, "Input a new target temperature, in degrees C.","Target Temperature", convert_k2c(target_temp), min_value=convert_k2c(TCMB), round_value = FALSE)
|
||||
var/new_temp = tgui_input_number(user, "Input a new target temperature, in degrees C.","Target Temperature", convert_k2c(target_temp), MAX_ATMOS_TEMPERATURE, convert_k2c(TCMB), round_value = FALSE)
|
||||
if(!Adjacent(user) || user.incapacitated())
|
||||
return
|
||||
new_temp = convert_c2k(new_temp)
|
||||
|
||||
@@ -79,6 +79,11 @@
|
||||
density = FALSE
|
||||
update_nearby_tiles()
|
||||
. = ..()
|
||||
/*
|
||||
var/obj/effect/step_trigger/claymore_laser/las = locate() in loc
|
||||
if(las)
|
||||
las.Trigger(src)
|
||||
*/
|
||||
|
||||
/obj/machinery/door/process()
|
||||
if(close_door_at && world.time >= close_door_at)
|
||||
@@ -160,7 +165,7 @@
|
||||
return !density // Block airflow unless density = FALSE
|
||||
|
||||
/obj/machinery/door/proc/bumpopen(mob/user as mob)
|
||||
if(!user) return // CHOMPedit - Check if the mob is even valid before proceeding
|
||||
if(!user) return
|
||||
if(operating) return
|
||||
if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit
|
||||
return
|
||||
@@ -377,7 +382,6 @@
|
||||
playsound(src, 'sound/machines/buzz-two.ogg', 50, 0)
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/door/proc/open(var/forced = 0)
|
||||
if(!can_open(forced))
|
||||
return
|
||||
@@ -386,23 +390,52 @@
|
||||
do_animate("opening")
|
||||
icon_state = "door0"
|
||||
set_opacity(0)
|
||||
sleep(anim_length_before_density)
|
||||
addtimer(CALLBACK(src, PROC_REF(open_internalsetdensity),forced), anim_length_before_density)
|
||||
|
||||
/obj/machinery/door/proc/open_internalsetdensity(var/forced = 0)
|
||||
PRIVATE_PROC(TRUE) //do not touch this or BYOND will devour you
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
src.density = FALSE
|
||||
update_nearby_tiles()
|
||||
sleep(anim_length_before_finalize)
|
||||
addtimer(CALLBACK(src, PROC_REF(open_internalfinish),forced), anim_length_before_finalize)
|
||||
|
||||
/obj/machinery/door/proc/open_internalfinish(var/forced = 0)
|
||||
PRIVATE_PROC(TRUE) //do not touch this or BYOND will devour you
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
src.layer = open_layer
|
||||
explosion_resistance = 0
|
||||
update_icon()
|
||||
set_opacity(0)
|
||||
operating = 0
|
||||
|
||||
/*
|
||||
var/obj/effect/step_trigger/claymore_laser/las = locate() in loc
|
||||
if(las)
|
||||
addtimer(CALLBACK(las, TYPE_PROC_REF(/obj/effect/step_trigger/claymore_laser,Trigger), src), 5)
|
||||
*/
|
||||
|
||||
if(autoclose)
|
||||
autoclose_in(next_close_wait())
|
||||
|
||||
return 1
|
||||
|
||||
/obj/machinery/door/proc/next_close_wait()
|
||||
return (normalspeed ? 150 : 5)
|
||||
var/lowest_temp = T20C
|
||||
var/highest_temp = T0C
|
||||
for(var/D in cardinal)
|
||||
var/turf/target = get_step(loc, D)
|
||||
if(!target.density)
|
||||
var/datum/gas_mixture/airmix = target.return_air()
|
||||
if(!airmix)
|
||||
continue
|
||||
if(airmix.temperature < lowest_temp)
|
||||
lowest_temp = airmix.temperature
|
||||
if(airmix.temperature > highest_temp)
|
||||
highest_temp = airmix.temperature
|
||||
// Fast close to keep in the heat
|
||||
var/open_speed = 150
|
||||
if(abs(highest_temp - lowest_temp) >= 5)
|
||||
open_speed = 15
|
||||
return (normalspeed ? open_speed : 5)
|
||||
|
||||
/obj/machinery/door/proc/close(var/forced = 0)
|
||||
if(!can_close(forced))
|
||||
@@ -411,12 +444,20 @@
|
||||
|
||||
close_door_at = 0
|
||||
do_animate("closing")
|
||||
sleep(anim_length_before_density)
|
||||
addtimer(CALLBACK(src, PROC_REF(close_internalsetdensity),forced), anim_length_before_density)
|
||||
|
||||
/obj/machinery/door/proc/close_internalsetdensity(var/forced = 0)
|
||||
PRIVATE_PROC(TRUE) //do not touch this or BYOND will devour you
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
src.density = TRUE
|
||||
explosion_resistance = initial(explosion_resistance)
|
||||
src.layer = closed_layer
|
||||
update_nearby_tiles()
|
||||
sleep(anim_length_before_finalize)
|
||||
addtimer(CALLBACK(src, PROC_REF(close_internalfinish),forced), anim_length_before_finalize)
|
||||
|
||||
/obj/machinery/door/proc/close_internalfinish(var/forced = 0)
|
||||
PRIVATE_PROC(TRUE) //do not touch this or BYOND will devour you
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
update_icon()
|
||||
if(visible && !glass)
|
||||
set_opacity(1) //caaaaarn!
|
||||
@@ -427,6 +468,12 @@
|
||||
if(fire)
|
||||
qdel(fire)
|
||||
|
||||
/*
|
||||
var/obj/effect/step_trigger/claymore_laser/las = locate() in loc
|
||||
if(las)
|
||||
addtimer(CALLBACK(las, TYPE_PROC_REF(/obj/effect/step_trigger/claymore_laser,Trigger), src), 1)
|
||||
*/
|
||||
|
||||
return 1
|
||||
|
||||
/obj/machinery/door/proc/requiresID()
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
addtimer(CALLBACK(src, PROC_REF(transform_animation_sounds), 6, prev_lockcharge), 0.2 SECONDS)
|
||||
|
||||
/mob/living/silicon/robot/proc/transform_animation_sounds(var/recall, var/prev_lockcharge)
|
||||
PRIVATE_PROC(TRUE)
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
if(recall > 0)
|
||||
playsound(src, pick('sound/items/drill_use.ogg', 'sound/items/jaws_cut.ogg', 'sound/items/jaws_pry.ogg', 'sound/items/Welder.ogg', 'sound/items/Wirecutter.ogg', 'sound/items/Crowbar.ogg', 'sound/items/Ratchet.ogg'), 80, 1, -1)
|
||||
recall--
|
||||
@@ -23,6 +25,8 @@
|
||||
transform_animation_end_lockdown(prev_lockcharge)
|
||||
|
||||
/mob/living/silicon/robot/proc/transform_animation_end_lockdown(var/prev_lockcharge)
|
||||
PRIVATE_PROC(TRUE)
|
||||
SHOULD_NOT_OVERRIDE(TRUE)
|
||||
if(!prev_lockcharge)
|
||||
SetLockdown(0)
|
||||
anchored = FALSE
|
||||
|
||||
Reference in New Issue
Block a user