Matthew,
Then short answer is 'yes.' In general for module specific
"background" tasks I suggest to
1) Have a private inner task class extending FrameworkTaskImpl.
This task can be created in the init() method as is done in
AlifeEnvironment.
2) Create a separate class, define a task type referencing this
class (in the factory data xml file), and declare one of these
tasks to be an initial task of the Environment module (in the
agent xml file). SensoryMemoryBackgroundTask for the SensoryMemory
module is an example of this.
decayModule is always called each tick and is intended for
decaying the elements of the module.
The Environment is a specific type of FrameworkModule. My initial
intuition was to have each module with one task-like component
"built-in" to be a background tasks. However, it become apparent
that some modules need many tasks while others require 0, so for
generality FrameworkModules allow 0 to many tasks.
Best,
Ryan