mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Further caching updates
This commit is contained in:
Vendored
+12
-7
@@ -1,6 +1,6 @@
|
||||
var/global/datum/repository/air_alarm/air_alarm_repository = new()
|
||||
|
||||
/datum/repository/air_alarm/proc/air_alarm_data(var/list/monitored_alarms)
|
||||
/datum/repository/air_alarm/proc/air_alarm_data(var/list/monitored_alarms, var/refresh = 0, var/obj/machinery/alarm/passed_alarm)
|
||||
var/alarms[0]
|
||||
|
||||
var/datum/cache_entry/cache_entry = cache_data
|
||||
@@ -8,15 +8,20 @@ var/global/datum/repository/air_alarm/air_alarm_repository = new()
|
||||
cache_entry = new/datum/cache_entry
|
||||
cache_data = cache_entry
|
||||
|
||||
if(world.time < cache_entry.timestamp)
|
||||
if(!refresh)
|
||||
return cache_entry.data
|
||||
|
||||
for(var/obj/machinery/alarm/alarm in sortAtom((monitored_alarms.len ? monitored_alarms : machines)))
|
||||
if(!monitored_alarms.len && alarm.z != ZLEVEL_STATION && alarm.z != ZLEVEL_ASTEROID)
|
||||
continue
|
||||
alarms[++alarms.len] = alarm.get_nano_data_console()
|
||||
if(ticker && ticker.current_state < GAME_STATE_PLAYING && istype(passed_alarm)) // Generating the list for the first time as the game hasn't started - no need to run through the machines list everything every time
|
||||
alarms[++alarms.len] = passed_alarm.get_nano_data_console()
|
||||
else
|
||||
for(var/obj/machinery/alarm/alarm in sortAtom((monitored_alarms ? monitored_alarms : machines)))
|
||||
if(!monitored_alarms && alarm.z != ZLEVEL_STATION && alarm.z != ZLEVEL_ASTEROID)
|
||||
continue
|
||||
alarms[++alarms.len] = alarm.get_nano_data_console()
|
||||
|
||||
cache_entry.timestamp = world.time + 10 SECONDS
|
||||
cache_entry.timestamp = world.time //+ 10 SECONDS
|
||||
cache_entry.data = alarms
|
||||
return alarms
|
||||
|
||||
/datum/repository/air_alarm/proc/update_cache(var/obj/machinery/alarm/alarm)
|
||||
return air_alarm_data(refresh = 1, passed_alarm = alarm)
|
||||
Vendored
+3
-3
@@ -10,8 +10,8 @@ var/global/datum/repository/powermonitor/powermonitor_repository = new()
|
||||
|
||||
if(!refresh)
|
||||
return cache_entry.data
|
||||
|
||||
for(var/obj/machinery/computer/monitor/pMon in world)
|
||||
|
||||
for(var/obj/machinery/computer/monitor/pMon in machines)
|
||||
if( !(pMon.stat & (NOPOWER|BROKEN)) )
|
||||
pMonData[++pMonData.len] = list ("Name" = pMon.name, "ref" = "\ref[pMon]")
|
||||
|
||||
@@ -20,5 +20,5 @@ var/global/datum/repository/powermonitor/powermonitor_repository = new()
|
||||
return pMonData
|
||||
|
||||
/datum/repository/powermonitor/proc/update_cache()
|
||||
return powermonitor_data(1)
|
||||
return powermonitor_data(refresh = 1)
|
||||
|
||||
Reference in New Issue
Block a user