Neighborly 0.11
[0.11.0]
This update has breaking changes from version 0.10.x
Changed
- The
Routine
component has been refactored to be a single collection of routine entries instead
of a collection of DailyRoutines with individual entries. RoutineEntry
instances now track what days they apply to.RoutineEntries
now useGoalNodes
to specify behavior instead of location IDs or alias names.ActionableLifeEvent
has been renamed toRandomLifeEvent
CreateTown
has been renamed toDefaultCreateSettlementSystem
Added
- A new
AIRoutineSystem
that queries a routine for an entry at the current time and adds the goal
for that entry as a potential goal to pursue. - Systems can now be toggled using the
active
class attribute. This affects all instances of a system and any child
systems if it is a SystemGroup. - Support for loading character and business spawn tables from CSV files for
DefaultCreateSettlementSystem
Removed
IBusinessType
was removed because it added unnecessary complexity to the component definitions.
Updated
- Type hints have been reformated to prevent duplicate description warnings from sphinx. Class
attribute type definitions have been moved out of__init__
and the doc strings for attributes
are placed below their type hints. - Updated to newer build of Tracery (
tracery3
)
[0.10.0]
This update has breaking changes from version 0.9.x
- The package has been restructured again to prevent circular dependencies. Classes are
now separated into subpackages/modules by function. For example, all the component
classes are withinneighborly.components
all the factories are within
neighborly.factories
and all the default systems are withinneighborly.systems
. - The default plugins under
neighborly.plugins.defaults.xxxx
have been restructured
to allow people to more easily include only the content they need. If you do not care
about the specific plugins,neighborly.plugins.defaults.all
will import all the
default plugins into the simulation. - Content libraries are now static class instances.
- GameObject prefabs should now be instantiated using the
GameObjectFactory
class
rather than using the Prefab-specific libraries (CharacterLibrary, BusinessLibrary,
and ResidenceLibrary).
Added
- Content authoring
neighborly.decorators
for use in single file simulations. py.typed
stub file to remove PyRight warning about Neighborly missing type stubs- SystemGroups were added to allow better systems ordering. The simulation update loop
is now separated into 4 phases (initialization, early-update, update, and
late-update). - Utility-based behavior trees for goals
- Event callback are called directly from GameObjects instead of via systems
- Events are an integral part of the ECS
Updated
- Content loading functions no longer need the world instance passed when loading assets
Removed
- Prefab-specific libraries (CharacterLibrary, BusinessLibrary, and ResidenceLibrary) and replaced
them with theGameObjectFactory
static class that handles instantiating GameObjects from prefabs