Temperature tweaks (#1277)

Fixes thermostats not working when set to 0 celsius.
Clamps instead of discards thermostat inputs that are out of range. So you can just type in 99999 and it'll set the highest valid value (usually 40c)
Tiny optimisation to remove a duplicate check in thermoregulation code
This commit is contained in:
NanakoAC
2016-12-24 18:37:27 +02:00
committed by skull132
parent b247ba78a4
commit 4098809461
11 changed files with 337 additions and 227 deletions
@@ -47,7 +47,8 @@
new /obj/item/clothing/under/waiter(src)
new /obj/item/device/radio/headset/headset_service(src)
new /obj/item/device/radio/headset/headset_service(src)
new /obj/item/weapon/storage/box/mousetraps(src)
new /obj/item/clothing/suit/storage/toggle/hoodie(src)
new /obj/item/weapon/storage/box/gloves(src)
new /obj/item/weapon/storage/box/mousetraps(src)
new /obj/item/clothing/under/rank/chef(src)
new /obj/item/clothing/head/chefhat(src)
@@ -0,0 +1,86 @@
/obj/structure/plasticflaps //HOW DO YOU CALL THOSE THINGS ANYWAY
name = "\improper plastic flaps"
desc = "Completely impassable - or are they?"
icon = 'icons/obj/stationobjs.dmi' //Change this.
icon_state = "plasticflaps"
density = 0
anchored = 1
layer = 4
explosion_resistance = 5
var/list/mobs_can_pass = list(
/mob/living/carbon/slime,
/mob/living/simple_animal/mouse,
/mob/living/silicon/robot/drone
)
/obj/structure/plasticflaps/CanPass(atom/A, turf/T)
if(istype(A) && A.checkpass(PASSGLASS))
return prob(60)
var/obj/structure/bed/B = A
if (istype(A, /obj/structure/bed) && B.buckled_mob)//if it's a bed/chair and someone is buckled, it will not pass
return 0
if(istype(A, /obj/vehicle)) //no vehicles
return 0
var/mob/living/M = A
if(istype(M))
if(M.lying)
return ..()
for(var/mob_type in mobs_can_pass)
if(istype(A, mob_type))
return ..()
return issmall(M)
return ..()
/obj/structure/plasticflaps/ex_act(severity)
switch(severity)
if (1)
qdel(src)
if (2)
if (prob(50))
qdel(src)
if (3)
if (prob(5))
qdel(src)
/obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates
name = "airtight plastic flaps"
desc = "Heavy duty, airtight, plastic flaps."
New() //set the turf below the flaps to block air
var/turf/T = get_turf(loc)
if(T)
T.blocks_air = 1
..()
Destroy() //lazy hack to set the turf to allow air to pass if it's a simulated floor
var/turf/T = get_turf(loc)
if(T)
if(istype(T, /turf/simulated/floor))
T.blocks_air = 0
..()
//Airtight plastic flaps made for the kitchen freezer, blocks atmos but not movement
/obj/structure/plasticflaps/airtight
name = "airtight plastic flaps"
desc = "Heavy duty, airtight, plastic flaps."
/obj/structure/plasticflaps/airtight/New() //set the turf below the flaps to block air
var/turf/T = get_turf(loc)
if(T)
T.blocks_air = 1
..()
/obj/structure/plasticflaps/airtight/Destroy() //lazy hack to set the turf to allow air to pass if it's a simulated floor
var/turf/T = get_turf(loc)
if(T)
if(istype(T, /turf/simulated/floor))
T.blocks_air = 0
..()
/obj/structure/plasticflaps/airtight/CanPass(atom/A, turf/T)
return 1//Blocks nothing except air