def synchronize_world

bendvy-ecs-core@0.1.0.4 · event_family_runtime.bend:19

import bendvy-ecs-core@0.1.0.4/event_family_runtime.bend as EventFamilyRuntime
import Base
import bendvy-ecs-core@0.1.0.4/world.bend as W
import bendvy-ecs-core@0.1.0.4/event_runtime.bend as Ev

19def synchronize_world(~S:Data,~C:Type,~R:Type,~P:Data,~F:Type,~H:Type,~sync:F -> Nat -> List<&2,P> -> F,state:State<P,F,H>,+tick:Nat,observed:W.World<S,C,R,P> & List<&2,P>) -> W.World<S,C,R,P> & State<P,F,H>:
20  match state:
21    case State{family,owners,+journal,frameStart}:
22      (world,records)=observed
23      +published=List.drop(&2,P,records,Ev.size(~P,journal))
24      (world,State{sync(family,tick,published),owners,Ev.sync_checked(~P,Nat.is_lt(0n,Ev.count(~P,published)),journal,tick,published),frameStart})

Uses (11)

Used by (1)