Merge pull request #11949 from PsiOmegaDelta/160109-AI

Creates a new process for handling AI code.
This commit is contained in:
Ccomp5950
2016-02-02 15:25:37 -05:00
4 changed files with 32 additions and 1 deletions
+2
View File
@@ -123,6 +123,7 @@
#include "code\controllers\subsystems.dm"
#include "code\controllers\verbs.dm"
#include "code\controllers\voting.dm"
#include "code\controllers\Processes\ai.dm"
#include "code\controllers\Processes\air.dm"
#include "code\controllers\Processes\alarm.dm"
#include "code\controllers\Processes\chemistry.dm"
@@ -160,6 +161,7 @@
#include "code\datums\recipe.dm"
#include "code\datums\sun.dm"
#include "code\datums\supplypacks.dm"
#include "code\datums\ai\ai.dm"
#include "code\datums\diseases\appendicitis.dm"
#include "code\datums\diseases\beesease.dm"
#include "code\datums\diseases\brainrot.dm"
+24
View File
@@ -0,0 +1,24 @@
var/list/datum/list_of_ais = list()
/datum/controller/process/ai/setup()
name = "ai"
schedule_interval = 2 SECONDS
start_delay = 17
/datum/controller/process/ai/doWork()
for(last_object in list_of_ais)
var/datum/ai/AI = last_object
if(isnull(AI.gcDestroyed) && istype(AI))
try
if(AI.process() == PROCESS_KILL)
list_of_ais -= AI
catch(var/exception/e)
catchException(e, AI)
SCHECK
else
catchBadType(AI)
list_of_ais -= AI
/datum/controller/process/ai/statProcess()
..()
stat(null, "[list_of_ais.len] AI\s")
+5
View File
@@ -0,0 +1,5 @@
/datum/ai
var/name
/datum/ai/proc/process()
return PROCESS_KILL
+1 -1
View File
@@ -1,7 +1,7 @@
/datum/expansion
var/datum/holder = null // The holder
/datum/expansion/New(var/atom/holder)
/datum/expansion/New(var/datum/holder)
if(!istype(holder))
CRASH("Invalid holder.")
src.holder = holder