feat(ecs): ludic.vehicles on a Table<Vehicle>

The vehicles are rows of a ludic.base Table with kind and owner as columns, every player's own by
an owner index and a nid map: vehicle_of walks only that player's rows, vehicle_by_nid is a map
lookup, and a player who leaves has their rows removed instead of the whole list rebuilt. ve_add
takes the owner, so the owner is filed once and never assigned around the table. Positions stay
on the record: a boat moves every frame and there are at most two a player. vehicles_test holds
the table (9 tests); the game builds against it and lab/unit passes (88 tests).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Orkun ÇAKILKAYA 2026-09-27 21:50:23 +03:00
parent 52270ab5d1
commit 045bf22e10
8 changed files with 87 additions and 18 deletions

View file

@ -5,6 +5,7 @@ module ludic_vehicles uses ludic_base
numbers float
import "ludic.base"
import "kinds.ludic"
import "table.ludic"
import "ports.ludic"
import "state.ludic"
import "places.ludic"