Two big changes in this release:
1. Python scripting support (alpha).
-
- Bridges the EntityX entity-component system into Python.
- Components and entities can both be defined in Python.
- Systems must still be defined in C++, for performance reasons.
See the [README](https://github.com/alecthomas/entityx/blob/master/entityx/python/README.md) for help, and the [C++](https://github.com/alecthomas/entityx/blob/master/entityx/python/PythonSystem_test.cc) and [Python](https://github.com/alecthomas/entityx/tree/master/entityx/python/entityx/tests) test source for more examples.
-2. Updated the build system to
+2. Made the build system much more robust, including automatic feature selection with manual override.
- Emitting events from Python.
-## Concepts
+## Design
- Python scripts are attached to entities with `PythonComponent`.
+- Systems and components can not be created from Python, primarily for performance reasons.
- Events are proxied directly to Python entities via `PythonEventProxy` objects.
+ - Each event to be handled in Python must have an associated `PythonEventProxy`implementation.
+ - As a convenience `BroadcastPythonEventProxy<Event>(handler_method)` can be used. It will broadcast events to all `PythonComponent` entities with a `<handler_method>`.
- `PythonSystem` manages scripted entity lifecycle and event delivery.
-## Overview
+## Summary
To add scripting support to your system, something like the following steps should be followed: