python-tcod-ecs
python-tcod-ecs copied to clipboard
Python sparse-set ECS with strong type-hinting. Supports entitiy relations.
Putting this up as a self-reminder. `TypeExpr` is needed for component type-hinting to work correctly. See [PEP 747 – TypeExpr: Type Hint for a Type Expression](https://peps.python.org/pep-0747/). It won't exist until...
I've been using Sander Mertens articles to implement relationships. I've implemented these in the basic sense but they also have an article that describes [a roadmap for a more complete...
There should be support for callbacks on specific state changes such as a component being added or removed: ```py @attrs.define(frozen=True) # Class is frozen to ensure that a changed value...
I was asked to support [cattrs](https://github.com/python-attrs/cattrs) and other generic serialization libraries. With the boilerplate required to do this externally it would be better to add cattrs support directly to this...
Later I might want to speed up queries by not discarding the entities after they're used. In theory a query could register itself with the world holding into its entities...
I've had theories of assigning components based on Numpy dtypes and then accessing those in a vectorized way, but it's hard to settle on how this would work in practice....
Converts containers to use `TypeForm` instead of `Type`. This allows for type expressions to be used as component types. Currently waiting on Mypy to officially support `TypeForm`. Closes #36