MachineWorld.take_join: def of bendvy-ecs-core@0.1.0.4 Import: import bendvy-ecs-core@0.1.0.4/machine_world.bend as MachineWorld Lines 8-16 of bendvy-ecs-core@0.1.0.4/machine_world.bend: https://jend.leeeet.dev/read.txt?path=bendvy-ecs-core@0.1.0.4/machine_world.bend&start_line=8&end_line=16 import Base import bendvy-ecs-core@0.1.0.4/clock_state.bend as Clock import bendvy-ecs-core@0.1.0.4/deferred_command.bend as Deferred import entity_allocator.bend as Alloc import machine.bend as M import world.bend as W # Closed resource lenses adapt machine slots to the existing actual ECS world. # No component store or affine resource is projected to Data or copied. def take_join(~S: Data,~K: Data,~V: Data,~C: Type,~R: Type,~E: Data, +ns: U32,allocator:Alloc.Allocator, store: C,split: R & M.Slot,+events: List<&2,E>,commands:List<&1,Deferred.Command>>, +registrations: List<&2,W.RegistrationMeta>,+nextSystem: U32,+clock:Clock.State ) -> W.World & M.Slot: (resources,slot)=split (W.World{ns,allocator,store,resources,events,commands,registrations,nextSystem,clock},slot) Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Sigma https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/clock_state.bend&name=State https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/deferred_command.bend&name=Command https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/entity_allocator.bend&name=Allocator https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/machine.bend&name=Slot https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/world.bend&name=RegistrationMeta https://jend.leeeet.dev/definition.txt?path=bendvy-ecs-core@0.1.0.4/world.bend&name=World