amethyst
amethyst copied to clipboard
Simple multiplatform SEA (Systems, Entities, Attributes) library written in multiplatform Kotlin.
kotlin/JS is [moving to a new compiler](https://kotlinlang.org/docs/js-ir-compiler.html), so [libraries should use "BOTH" compilation mode](https://kotlinlang.org/docs/js-ir-compiler.html#authoring-libraries-for-the-ir-compiler-with-backwards-compatibility) to ease the transition. [Some code changes may be necessary](https://kotlinlang.org/docs/js-ir-migration.html). Additionally, all dependencies (i.e. cobalt) will...
Using this library is slightly complicated by ProcessorsExample.kt publishing all of its types (like `Entity`, `EntityType`, `Attribute`) into the final artifact. Whenever I'm importing `Entity` in my own code, I...
Caves of Zircon has an attribute called Actions which is a command container, which is basically a special case of if(hasAttribute) dispatchCommandOnOtherEntity Its a useful construct, but it feels like...
Have some method of creating global systems that can work on collections of entities with attributes
More akin to classic ECS systems like Global Actors, good for things like *Field of View* as it means you don't have to have a special case for the player,...
This lets us not send commands to things that can't take them, which lets us build global actors that can take `AddEntity` and `RemoveEntity` commands without adding ever increasing cost...