516 Renderer update (#20579)

Updated the renderers to work with BYOND 516.
Some update of ZAS to hopefully be more efficient, and cold/hot air
effects.
Gas effects are now less prominent.

Ported from Bay
This commit is contained in:
Fluffy
2025-03-22 11:20:21 +00:00
committed by GitHub
parent 2e59f1903e
commit 08b82baea4
18 changed files with 514 additions and 112 deletions
+7
View File
@@ -118,6 +118,13 @@ If it gains pressure too slowly, it may leak or just rupture instead of explodin
return 0
/obj/heat
icon = 'icons/effects/fire.dmi'
icon_state = "3"
appearance_flags = PIXEL_SCALE | NO_CLIENT_COLOR
render_target = HEAT_EFFECT_TARGET
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
/obj/fire
//Icon for fire on turfs.
+8 -6
View File
@@ -53,6 +53,9 @@ Class Procs:
var/datum/gas_mixture/air = new
var/list/graphic_add = list()
var/list/graphic_remove = list()
/zone/New()
SSair.add_zone(src)
air.temperature = TCMB
@@ -148,21 +151,20 @@ Class Procs:
air.group_multiplier = contents.len+1
/zone/proc/tick()
// Update fires.
if(air.temperature >= PHORON_FLASHPOINT && !(src in SSair.active_fire_zones) && air.check_combustability() && contents.len)
var/turf/T = pick(contents)
if(istype(T))
T.create_fire(GLOB.vsc.fire_firelevel_multiplier)
var/world_time_counter = world.time
var/list/graphic_add = list()
var/list/graphic_remove = list()
// Update gas overlays.
if(air.check_tile_graphic(graphic_add, graphic_remove))
for(var/turf/simulated/T in contents)
T.update_graphic(graphic_add, graphic_remove)
var/delta_time = world.time - world_time_counter
if(delta_time > 5 SECONDS)
log_admin("AN AREA IS TAKING EXTREMELY LONG TO UPDATE: [name] WITH CONTENTS LENGTH [length(contents)] TELL MATT WITH THE ROUND ID!")
graphic_add.Cut()
graphic_remove.Cut()
// Update connected edges.
for(var/connection_edge/E in edges)
if(E.sleeping)
E.recheck()