diff --git a/code/LINDA/LINDA_turf_tile.dm b/code/LINDA/LINDA_turf_tile.dm index 30f9be83b4c..ce755c8d5b3 100644 --- a/code/LINDA/LINDA_turf_tile.dm +++ b/code/LINDA/LINDA_turf_tile.dm @@ -46,13 +46,12 @@ var/datum/gas_mixture/air var/archived_cycle = 0 var/current_cycle = 0 + var/icy = 0 var/obj/effect/hotspot/active_hotspot var/temperature_archived //USED ONLY FOR SOLIDS - var/atmos_overlay_type = "" //current active overlay - /turf/simulated/New() ..() @@ -67,6 +66,8 @@ air.temperature = temperature + update_visuals() + /turf/simulated/Destroy() visibilityChanged() if(active_hotspot) @@ -209,8 +210,6 @@ air.react() - update_visuals() - if(air.temperature > FIRE_MINIMUM_TEMPERATURE_TO_EXIST) hotspot_expose(air.temperature, CELL_VOLUME) for(var/atom/movable/item in src) @@ -221,6 +220,13 @@ if(consider_superconductivity(starting = 1)) remove = 0 + if(air.temperature < T0C && air.return_pressure() > 10) + icy = 1 + else + icy = 0 + + update_visuals() + if(!excited_group && remove == 1) air_master.remove_from_active(src) @@ -232,17 +238,14 @@ archived_cycle = air_master.current_cycle /turf/simulated/proc/update_visuals() - var/new_overlay_type = tile_graphic() - if (new_overlay_type == atmos_overlay_type) - return - var/atmos_overlay = get_atmos_overlay_by_name(atmos_overlay_type) - if (atmos_overlay) - overlays -= atmos_overlay + overlays = 0 + if(icy) + overlays += icemaster - atmos_overlay = get_atmos_overlay_by_name(new_overlay_type) + var/new_overlay_type = tile_graphic() + var/atmos_overlay = get_atmos_overlay_by_name(new_overlay_type) if (atmos_overlay) overlays += atmos_overlay - atmos_overlay_type = new_overlay_type /turf/simulated/proc/get_atmos_overlay_by_name(var/name) switch(name) diff --git a/code/_globalvars/misc.dm b/code/_globalvars/misc.dm index bb9d4f354eb..51e0dfa8ab2 100644 --- a/code/_globalvars/misc.dm +++ b/code/_globalvars/misc.dm @@ -1,5 +1,6 @@ var/global/obj/effect/overlay/plmaster = null var/global/obj/effect/overlay/slmaster = null +var/global/obj/effect/overlay/icemaster = null // nanomanager, the manager for Nano UIs var/datum/nanomanager/nanomanager = new() diff --git a/code/controllers/Processes/air.dm b/code/controllers/Processes/air.dm index a20169c86d3..df52e295bcf 100644 --- a/code/controllers/Processes/air.dm +++ b/code/controllers/Processes/air.dm @@ -140,4 +140,10 @@ var/global/datum/controller/process/air_system/air_master slmaster.icon = 'icons/effects/tile_effects.dmi' slmaster.icon_state = "sleeping_agent" slmaster.layer = FLY_LAYER - slmaster.mouse_opacity = 0 \ No newline at end of file + slmaster.mouse_opacity = 0 + + icemaster = new /obj/effect/overlay() + icemaster.icon = 'icons/turf/overlays.dmi' + icemaster.icon_state = "snowfloor" + icemaster.layer = TURF_LAYER+0.1 + icemaster.mouse_opacity = 0 \ No newline at end of file