Improved component system

This commit is contained in:
2024-02-15 16:28:27 +01:00
parent 8de91eaba1
commit b439919ad0
19 changed files with 89 additions and 99 deletions

View File

@ -16,8 +16,21 @@ Therefore the `client/assets` directory needs to be downloaded separately. Downl
- Cloth attachments
- Grass shader
- Water shader
- Loading UI
- Settings UI
## Components
This project makes heavy use of composition via components.
They are implemented with the following rules:
- Components can have **read-only** references to other components.
- Components must not **write** data to another component.
- Components that produce some output must use signals to communicate messages to other components.
In other words, it's allowed for components to have dependencies, but a component can not know where its output is going to be used in the future.
Therefore, outputs must use a signal to communicate the output to an unknown number of receivers.
## License
Please see the [license documentation](https://akyoto.dev/license).