mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-20 06:32:56 +00:00
## About The Pull Request ai controllers that fail planning no longer process until theyre able to plan again. this makes it so /process is called less thus you'll have less AI competing against one another for cpu. also converts idle behaviors into singletons ## Why It's Good For The Game AIs that dont have a plan dont do anything during processing so its better to just make them sit out the cycle instead of draining cpu ## Changelog 🆑 /🆑
18 lines
685 B
Plaintext
18 lines
685 B
Plaintext
PROCESSING_SUBSYSTEM_DEF(idle_ai_behaviors)
|
|
name = "AI Idle Behaviors"
|
|
flags = SS_BACKGROUND
|
|
wait = 1.5 SECONDS
|
|
priority = FIRE_PRIORITY_IDLE_NPC
|
|
init_order = INIT_ORDER_AI_IDLE_CONTROLLERS //must execute only after ai behaviors are initialized
|
|
///List of all the idle ai behaviors
|
|
var/list/idle_behaviors = list()
|
|
|
|
/datum/controller/subsystem/processing/idle_ai_behaviors/Initialize()
|
|
setup_idle_behaviors()
|
|
return SS_INIT_SUCCESS
|
|
|
|
/datum/controller/subsystem/processing/idle_ai_behaviors/proc/setup_idle_behaviors()
|
|
for(var/behavior_type in subtypesof(/datum/idle_behavior))
|
|
var/datum/idle_behavior/behavior = new behavior_type
|
|
idle_behaviors[behavior_type] = behavior
|