mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +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()
|
turn_off()
|
||||||
return
|
return
|
||||||
if(istype(I, /obj/item/multitool))
|
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())
|
if(!Adjacent(user) || user.incapacitated())
|
||||||
return
|
return
|
||||||
new_temp = convert_c2k(new_temp)
|
new_temp = convert_c2k(new_temp)
|
||||||
|
|||||||
@@ -79,6 +79,11 @@
|
|||||||
density = FALSE
|
density = FALSE
|
||||||
update_nearby_tiles()
|
update_nearby_tiles()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
/*
|
||||||
|
var/obj/effect/step_trigger/claymore_laser/las = locate() in loc
|
||||||
|
if(las)
|
||||||
|
las.Trigger(src)
|
||||||
|
*/
|
||||||
|
|
||||||
/obj/machinery/door/process()
|
/obj/machinery/door/process()
|
||||||
if(close_door_at && world.time >= close_door_at)
|
if(close_door_at && world.time >= close_door_at)
|
||||||
@@ -160,7 +165,7 @@
|
|||||||
return !density // Block airflow unless density = FALSE
|
return !density // Block airflow unless density = FALSE
|
||||||
|
|
||||||
/obj/machinery/door/proc/bumpopen(mob/user as mob)
|
/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(operating) return
|
||||||
if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit
|
if(user.last_airflow > world.time - vsc.airflow_delay) //Fakkit
|
||||||
return
|
return
|
||||||
@@ -377,7 +382,6 @@
|
|||||||
playsound(src, 'sound/machines/buzz-two.ogg', 50, 0)
|
playsound(src, 'sound/machines/buzz-two.ogg', 50, 0)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
||||||
/obj/machinery/door/proc/open(var/forced = 0)
|
/obj/machinery/door/proc/open(var/forced = 0)
|
||||||
if(!can_open(forced))
|
if(!can_open(forced))
|
||||||
return
|
return
|
||||||
@@ -386,23 +390,52 @@
|
|||||||
do_animate("opening")
|
do_animate("opening")
|
||||||
icon_state = "door0"
|
icon_state = "door0"
|
||||||
set_opacity(0)
|
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
|
src.density = FALSE
|
||||||
update_nearby_tiles()
|
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
|
src.layer = open_layer
|
||||||
explosion_resistance = 0
|
explosion_resistance = 0
|
||||||
update_icon()
|
update_icon()
|
||||||
set_opacity(0)
|
set_opacity(0)
|
||||||
operating = 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)
|
if(autoclose)
|
||||||
autoclose_in(next_close_wait())
|
autoclose_in(next_close_wait())
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
/obj/machinery/door/proc/next_close_wait()
|
/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)
|
/obj/machinery/door/proc/close(var/forced = 0)
|
||||||
if(!can_close(forced))
|
if(!can_close(forced))
|
||||||
@@ -411,12 +444,20 @@
|
|||||||
|
|
||||||
close_door_at = 0
|
close_door_at = 0
|
||||||
do_animate("closing")
|
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
|
src.density = TRUE
|
||||||
explosion_resistance = initial(explosion_resistance)
|
explosion_resistance = initial(explosion_resistance)
|
||||||
src.layer = closed_layer
|
src.layer = closed_layer
|
||||||
update_nearby_tiles()
|
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()
|
update_icon()
|
||||||
if(visible && !glass)
|
if(visible && !glass)
|
||||||
set_opacity(1) //caaaaarn!
|
set_opacity(1) //caaaaarn!
|
||||||
@@ -427,6 +468,12 @@
|
|||||||
if(fire)
|
if(fire)
|
||||||
qdel(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
|
return 1
|
||||||
|
|
||||||
/obj/machinery/door/proc/requiresID()
|
/obj/machinery/door/proc/requiresID()
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
addtimer(CALLBACK(src, PROC_REF(transform_animation_sounds), 6, prev_lockcharge), 0.2 SECONDS)
|
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)
|
/mob/living/silicon/robot/proc/transform_animation_sounds(var/recall, var/prev_lockcharge)
|
||||||
|
PRIVATE_PROC(TRUE)
|
||||||
|
SHOULD_NOT_OVERRIDE(TRUE)
|
||||||
if(recall > 0)
|
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)
|
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--
|
recall--
|
||||||
@@ -23,6 +25,8 @@
|
|||||||
transform_animation_end_lockdown(prev_lockcharge)
|
transform_animation_end_lockdown(prev_lockcharge)
|
||||||
|
|
||||||
/mob/living/silicon/robot/proc/transform_animation_end_lockdown(var/prev_lockcharge)
|
/mob/living/silicon/robot/proc/transform_animation_end_lockdown(var/prev_lockcharge)
|
||||||
|
PRIVATE_PROC(TRUE)
|
||||||
|
SHOULD_NOT_OVERRIDE(TRUE)
|
||||||
if(!prev_lockcharge)
|
if(!prev_lockcharge)
|
||||||
SetLockdown(0)
|
SetLockdown(0)
|
||||||
anchored = FALSE
|
anchored = FALSE
|
||||||
|
|||||||
Reference in New Issue
Block a user