aboutsummaryrefslogtreecommitdiff
path: root/monad
diff options
context:
space:
mode:
authorMartin Kagamino Lehoux <martin@lehoux.net>2026-01-15 22:05:38 +0100
committerMartin Kagamino Lehoux <martin@lehoux.net>2026-01-15 22:05:46 +0100
commit13626410c4d6db7fdc15ded5ee7865fcdbf0b88a (patch)
treea549d918804acb7682c857e742f1af189692cf62 /monad
parentcf85fc095bc9b6ab4b49e4f88a5f04d7ac2fe74b (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.go10
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}
+}