Added a garbage collector implementation based on rumors from Goon and proc references in released gooncode.

And holy shit it's fast

Conflicts:
	baystation12.dme
	code/ATMOSPHERICS/pipes.dm
	code/game/machinery/Sleeper.dm
	code/game/machinery/rechargestation.dm
	code/game/objects/structures/crates_lockers/crates.dm
	code/game/objects/structures/tables_racks.dm
	code/modules/mining/mine_turfs.dm
	code/modules/paperwork/photocopier.dm
	code/modules/power/cable.dm
	html/changelog.html
This commit is contained in:
Rob Nelson
2014-01-29 23:45:21 -05:00
committed by ZomgPonies
parent 3633c2dcb7
commit c3b021e246
70 changed files with 240 additions and 184 deletions
+13 -3
View File
@@ -27,6 +27,7 @@ datum/controller/game_controller
var/nano_cost = 0
var/events_cost = 0
var/ticker_cost = 0
var/gc_cost = 0
var/total_cost = 0
var/last_thing_processed
@@ -64,6 +65,9 @@ datum/controller/game_controller/proc/setup()
if(!ticker)
ticker = new /datum/controller/gameticker()
if(!garbage)
garbage = new /datum/controller/garbage_collector()
setup_objects()
setupgenetics()
setupfactions()
@@ -216,8 +220,14 @@ datum/controller/game_controller/proc/process()
ticker.process()
ticker_cost = (world.timeofday - timer) / 10
// GC
timer = world.timeofday
last_thing_processed = garbage.type
garbage.process()
gc_cost = (world.timeofday - timer) / 10
//TIMING
total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost
total_cost = air_cost + sun_cost + mobs_cost + diseases_cost + machines_cost + objects_cost + networks_cost + powernets_cost + nano_cost + events_cost + ticker_cost + gc_cost
var/end_time = world.timeofday
if(end_time < start_time)
@@ -252,7 +262,7 @@ datum/controller/game_controller/proc/process_machines()
var/i = 1
while(i<=machines.len)
var/obj/machinery/Machine = machines[i]
if(Machine)
if(Machine && Machine.loc)
last_thing_processed = Machine.type
if(Machine.process() != PROCESS_KILL)
if(Machine)
@@ -266,7 +276,7 @@ datum/controller/game_controller/proc/process_objects()
var/i = 1
while(i<=processing_objects.len)
var/obj/Object = processing_objects[i]
if(Object)
if(Object && Object.loc)
last_thing_processed = Object.type
Object.process()
i++