mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2026-07-19 12:12:43 +01:00
Revert "SSmachines instancing PR (#9080)"
This reverts commit 4889b33cea.
This commit is contained in:
@@ -1,7 +1,14 @@
|
||||
#define SSMACHINES_PIPENETS 1
|
||||
#define SSMACHINES_MACHINERY 2
|
||||
#define SSMACHINES_POWERNETS 3
|
||||
#define SSMACHINES_POWER_ITEMS 4
|
||||
#define SSMACHINES_POWER_OBJECTS 4
|
||||
|
||||
//
|
||||
// SSmachines subsystem - Processing machines, pipenets, and powernets!
|
||||
//
|
||||
// Implementation Plan:
|
||||
// PHASE 1 - Add subsystem using the existing global list vars
|
||||
// PHASE 2 - Move the global list vars into the subsystem.
|
||||
|
||||
SUBSYSTEM_DEF(machines)
|
||||
name = "Machines"
|
||||
@@ -12,17 +19,18 @@ SUBSYSTEM_DEF(machines)
|
||||
|
||||
var/current_step = SSMACHINES_PIPENETS
|
||||
|
||||
var/cost_pipenets = 0
|
||||
var/cost_machinery = 0
|
||||
var/cost_powernets = 0
|
||||
var/cost_power_objects = 0
|
||||
var/cost_pipenets = 0
|
||||
var/cost_machinery = 0
|
||||
var/cost_powernets = 0
|
||||
var/cost_power_objects = 0
|
||||
|
||||
var/list/pipenets = list()
|
||||
var/list/machinery = list()
|
||||
var/list/powernets = list()
|
||||
var/list/power_objects = list()
|
||||
// TODO - PHASE 2 - Switch these from globals to instance vars
|
||||
// var/list/pipenets = list()
|
||||
// var/list/machinery = list()
|
||||
// var/list/powernets = list()
|
||||
// var/list/power_objects = list()
|
||||
|
||||
var/list/current_run = list()
|
||||
var/list/current_run = list()
|
||||
|
||||
/datum/controller/subsystem/machines/Initialize(timeofday)
|
||||
makepowernets()
|
||||
@@ -33,10 +41,10 @@ SUBSYSTEM_DEF(machines)
|
||||
/datum/controller/subsystem/machines/fire(resumed, no_mc_tick)
|
||||
var/timer = TICK_USAGE
|
||||
|
||||
INTERNAL_PROCESS_STEP(SSMACHINES_POWER_ITEMS,FALSE,process_power_objects,cost_power_objects,SSMACHINES_PIPENETS) // Higher priority, damnit
|
||||
INTERNAL_PROCESS_STEP(SSMACHINES_POWER_OBJECTS,FALSE,process_power_objects,cost_power_objects,SSMACHINES_PIPENETS) // Higher priority, damnit
|
||||
INTERNAL_PROCESS_STEP(SSMACHINES_PIPENETS,TRUE,process_pipenets,cost_pipenets,SSMACHINES_MACHINERY)
|
||||
INTERNAL_PROCESS_STEP(SSMACHINES_MACHINERY,FALSE,process_machinery,cost_machinery,SSMACHINES_POWERNETS)
|
||||
INTERNAL_PROCESS_STEP(SSMACHINES_POWERNETS,FALSE,process_powernets,cost_powernets,SSMACHINES_POWER_ITEMS)
|
||||
INTERNAL_PROCESS_STEP(SSMACHINES_POWERNETS,FALSE,process_powernets,cost_powernets,SSMACHINES_POWER_OBJECTS)
|
||||
|
||||
// rebuild all power networks from scratch - only called at world creation or by the admin verb
|
||||
// The above is a lie. Turbolifts also call this proc.
|
||||
@@ -80,16 +88,16 @@ SUBSYSTEM_DEF(machines)
|
||||
msg += "PN:[round(cost_powernets,1)]|"
|
||||
msg += "PO:[round(cost_power_objects,1)]"
|
||||
msg += "} "
|
||||
msg += "PI:[pipe_networks.len]|"
|
||||
msg += "MC:[machinery.len]|"
|
||||
msg += "PN:[powernets.len]|"
|
||||
msg += "PO:[power_objects.len]|"
|
||||
msg += "MC/MS:[round((cost ? machinery.len/cost_machinery : 0),0.1)]"
|
||||
msg += "PI:[global.pipe_networks.len]|"
|
||||
msg += "MC:[global.processing_machines.len]|"
|
||||
msg += "PN:[global.powernets.len]|"
|
||||
msg += "PO:[global.processing_power_items.len]|"
|
||||
msg += "MC/MS:[round((cost ? global.processing_machines.len/cost_machinery : 0),0.1)]"
|
||||
..(jointext(msg, null))
|
||||
|
||||
/datum/controller/subsystem/machines/proc/process_pipenets(resumed = 0)
|
||||
if (!resumed)
|
||||
src.current_run = pipe_networks.Copy()
|
||||
src.current_run = global.pipe_networks.Copy()
|
||||
//cache for sanic speed (lists are references anyways)
|
||||
var/list/current_run = src.current_run
|
||||
while(current_run.len)
|
||||
@@ -98,7 +106,7 @@ SUBSYSTEM_DEF(machines)
|
||||
if(istype(PN) && !QDELETED(PN))
|
||||
PN.process(wait)
|
||||
else
|
||||
pipe_networks.Remove(PN)
|
||||
global.pipe_networks.Remove(PN)
|
||||
if(!QDELETED(PN))
|
||||
DISABLE_BITFIELD(PN.datum_flags, DF_ISPROCESSING)
|
||||
if(MC_TICK_CHECK)
|
||||
@@ -106,7 +114,7 @@ SUBSYSTEM_DEF(machines)
|
||||
|
||||
/datum/controller/subsystem/machines/proc/process_machinery(resumed = 0)
|
||||
if (!resumed)
|
||||
src.current_run = machines.Copy()
|
||||
src.current_run = global.processing_machines.Copy()
|
||||
|
||||
var/list/current_run = src.current_run
|
||||
while(current_run.len)
|
||||
@@ -114,7 +122,7 @@ SUBSYSTEM_DEF(machines)
|
||||
current_run.len--
|
||||
|
||||
if(!istype(M) || QDELETED(M) || (M.process(wait) == PROCESS_KILL))
|
||||
machines.Remove(M)
|
||||
global.processing_machines.Remove(M)
|
||||
if(!QDELETED(M))
|
||||
DISABLE_BITFIELD(M.datum_flags, DF_ISPROCESSING)
|
||||
if(MC_TICK_CHECK)
|
||||
@@ -122,7 +130,7 @@ SUBSYSTEM_DEF(machines)
|
||||
|
||||
/datum/controller/subsystem/machines/proc/process_powernets(resumed = 0)
|
||||
if (!resumed)
|
||||
src.current_run = powernets.Copy()
|
||||
src.current_run = global.powernets.Copy()
|
||||
|
||||
var/list/current_run = src.current_run
|
||||
while(current_run.len)
|
||||
@@ -131,7 +139,7 @@ SUBSYSTEM_DEF(machines)
|
||||
if(istype(PN) && !QDELETED(PN))
|
||||
PN.reset(wait)
|
||||
else
|
||||
powernets.Remove(PN)
|
||||
global.powernets.Remove(PN)
|
||||
if(!QDELETED(PN))
|
||||
DISABLE_BITFIELD(PN.datum_flags, DF_ISPROCESSING)
|
||||
if(MC_TICK_CHECK)
|
||||
@@ -141,44 +149,19 @@ SUBSYSTEM_DEF(machines)
|
||||
// Currently only used by powersinks. These items get priority processed before machinery
|
||||
/datum/controller/subsystem/machines/proc/process_power_objects(resumed = 0)
|
||||
if (!resumed)
|
||||
src.current_run = power_objects.Copy()
|
||||
src.current_run = global.processing_power_items.Copy()
|
||||
|
||||
var/list/current_run = src.current_run
|
||||
while(current_run.len)
|
||||
var/obj/item/I = current_run[current_run.len]
|
||||
current_run.len--
|
||||
if(!I.pwr_drain(wait)) // 0 = Process Kill, remove from processing list.
|
||||
power_objects.Remove(I)
|
||||
global.processing_power_items.Remove(I)
|
||||
DISABLE_BITFIELD(I.datum_flags, DF_ISPROCESSING)
|
||||
if(MC_TICK_CHECK)
|
||||
return
|
||||
|
||||
/** Adds a datum to this subsystem
|
||||
*
|
||||
* `dat` - datum to be added
|
||||
*
|
||||
* `list = SSMACHINES_MACHINERY_LIST` - list to be added to, defaults to machines
|
||||
*/
|
||||
/datum/controller/subsystem/machines/proc/start_processing(dat, list = SSMACHINES_MACHINERY_LIST)
|
||||
switch(list)
|
||||
if(SSMACHINES_MACHINERY_LIST) machinery += dat
|
||||
if(SSMACHINES_POWERNETS_LIST) powernets += dat
|
||||
if(SSMACHINES_POWEROBJS_LIST) power_objects += dat
|
||||
if(SSMACHINES_PIPENETS_LIST) pipenets += dat
|
||||
|
||||
/** Removes a datum from this subsystem
|
||||
*
|
||||
* ```dat``` - datum to be removed
|
||||
*
|
||||
*```list``` = SSMACHINES_MACHINERY_LIST` - list to be removed from, defaults to machines
|
||||
*/
|
||||
/datum/controller/subsystem/machines/proc/stop_processing(dat, list = SSMACHINES_MACHINERY_LIST)
|
||||
switch(list)
|
||||
if(SSMACHINES_MACHINERY_LIST) machinery -= dat
|
||||
if(SSMACHINES_POWERNETS_LIST) powernets -= dat
|
||||
if(SSMACHINES_POWEROBJS_LIST) power_objects -= dat
|
||||
if(SSMACHINES_PIPENETS_LIST) pipenets -= dat
|
||||
|
||||
#undef SSMACHINES_PIPENETS
|
||||
#undef SSMACHINES_MACHINERY
|
||||
#undef SSMACHINES_POWER_ITEMS
|
||||
#undef SSMACHINES_POWER_OBJECTS
|
||||
|
||||
@@ -4,7 +4,6 @@ PROCESSING_SUBSYSTEM_DEF(fastprocess)
|
||||
name = "Fast Processing"
|
||||
wait = 0.2 SECONDS
|
||||
stat_tag = "FP"
|
||||
var/list/machinery = list()
|
||||
|
||||
/datum/controller/subsystem/processing/fastprocess/Recover()
|
||||
log_debug("[name] subsystem Recover().")
|
||||
@@ -13,4 +12,4 @@ PROCESSING_SUBSYSTEM_DEF(fastprocess)
|
||||
var/list/old_processing = SSfastprocess.processing.Copy()
|
||||
for(var/datum/D in old_processing)
|
||||
if(CHECK_BITFIELD(D.datum_flags, DF_ISPROCESSING))
|
||||
processing |= D
|
||||
processing |= D
|
||||
Reference in New Issue
Block a user