diff options
| author | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-01-15 22:05:38 +0100 |
|---|---|---|
| committer | Martin Kagamino Lehoux <martin@lehoux.net> | 2026-01-15 22:05:46 +0100 |
| commit | 13626410c4d6db7fdc15ded5ee7865fcdbf0b88a (patch) | |
| tree | a549d918804acb7682c857e742f1af189692cf62 /monad | |
| parent | cf85fc095bc9b6ab4b49e4f88a5f04d7ac2fe74b (diff) | |
refactor: transition to struct-of-arrays ECS architecture
- Replace individual Entity structs with centralized component slices in Game struct (SoA layout).
- Implement bitmask-based component lookup (CM_Position, CM_Move, etc.).
- Convert logic from object-oriented Update() methods to standalone Systems (UpdateMoveSystem, UpdateGatherSystem, UpdateSpawnSystem).
- Update rendering, selection, and input handling to iterate over component arrays.
Diffstat (limited to 'monad')
| -rw-r--r-- | monad/monad.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/monad/monad.go b/monad/monad.go new file mode 100644 index 0000000..43fb241 --- /dev/null +++ b/monad/monad.go @@ -0,0 +1,10 @@ +package monad + +type Option[T any] struct { + Ok bool + Value T +} + +func Some[T any](value T) Option[T] { + return Option[T]{Ok: true, Value: value} +} |
