|
|
@ -17,15 +17,16 @@ These classes have only recently been split from the main **gæmstone** project. |
|
|
|
|
|
|
|
|
|
|
|
- Simple wrapper structs such as [Entity] and [Identifier]. |
|
|
|
- Simple wrapper structs such as [Entity] and [Identifier]. |
|
|
|
- Classes with convenience functions like [EntityRef] and [EntityType]. |
|
|
|
- Classes with convenience functions like [EntityRef] and [EntityType]. |
|
|
|
|
|
|
|
- [EntityPath] uses a unix-like path, for example `/Game/Players/copygirl`. |
|
|
|
- Define your own [Components] as both value or reference types. |
|
|
|
- Define your own [Components] as both value or reference types. |
|
|
|
- Query the ECS with [Iterators], [Filters], [Queries] and [Rules]. |
|
|
|
- Query the ECS with [Iterators], [Filters], [Queries] and [Rules]. |
|
|
|
- Create [Systems] for game logic and [Observers] to act on changes. |
|
|
|
- Create [Systems] for game logic and [Observers] to act on changes. |
|
|
|
- [EntityPath] uses a unix-like path: `/Game/Players/copygirl` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Entity]: ./src/gaemstone.ECS/Entity.cs |
|
|
|
[Entity]: ./src/gaemstone.ECS/Entity.cs |
|
|
|
[Identifier]: ./src/gaemstone.ECS/Identifier.cs |
|
|
|
[Identifier]: ./src/gaemstone.ECS/Identifier.cs |
|
|
|
[EntityRef]: ./src/gaemstone.ECS/EntityRef.cs |
|
|
|
[EntityRef]: ./src/gaemstone.ECS/EntityRef.cs |
|
|
|
[EntityType]: ./src/gaemstone.ECS/EntityType.cs |
|
|
|
[EntityType]: ./src/gaemstone.ECS/EntityType.cs |
|
|
|
|
|
|
|
[EntityPath]: ./src/gaemstone.ECS/EntityPath.cs |
|
|
|
[Components]: ./src/gaemstone.ECS/Component.cs |
|
|
|
[Components]: ./src/gaemstone.ECS/Component.cs |
|
|
|
[Iterators]: ./src/gaemstone.ECS/Iterator.cs |
|
|
|
[Iterators]: ./src/gaemstone.ECS/Iterator.cs |
|
|
|
[Filters]: ./src/gaemstone.ECS/Filter.cs |
|
|
|
[Filters]: ./src/gaemstone.ECS/Filter.cs |
|
|
@ -33,7 +34,6 @@ These classes have only recently been split from the main **gæmstone** project. |
|
|
|
[Rules]: ./src/gaemstone.ECS/Rule.cs |
|
|
|
[Rules]: ./src/gaemstone.ECS/Rule.cs |
|
|
|
[Systems]: ./src/gaemstone.ECS/System.cs |
|
|
|
[Systems]: ./src/gaemstone.ECS/System.cs |
|
|
|
[Observers]: ./src/gaemstone.ECS/Observer.cs |
|
|
|
[Observers]: ./src/gaemstone.ECS/Observer.cs |
|
|
|
[EntityPath]: ./src/gaemstone.ECS/EntityPath.cs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Example |
|
|
|
## Example |
|
|
|
|
|
|
|
|
|
|
@ -45,7 +45,7 @@ var position = world |
|
|
|
.Symbol("Position") // Set entity's symbol. (Used in query expression.) |
|
|
|
.Symbol("Position") // Set entity's symbol. (Used in query expression.) |
|
|
|
.Build() // Actually create the entity in-world. |
|
|
|
.Build() // Actually create the entity in-world. |
|
|
|
// Finally, create a component from this entity. |
|
|
|
// Finally, create a component from this entity. |
|
|
|
// The "Position" struct is defined at the bottom of this example. |
|
|
|
// "Position" is defined at the bottom of this example. |
|
|
|
.InitComponent<Position>(); |
|
|
|
.InitComponent<Position>(); |
|
|
|
|
|
|
|
|
|
|
|
// Create an "Entities" parent with two positioned entities inside. |
|
|
|
// Create an "Entities" parent with two positioned entities inside. |
|
|
|