def replace_allowed

bendvy-ecs-core@0.1.0.3 · component.bend:151

import bendvy-ecs-core@0.1.0.3/component.bend as Component
import Base
import column.bend as Col
import world.bend as W
import entity_key.bend as K

151def replace_allowed(~S: Data,~Store: Type,~R: Type,~E: Data,~Rest: Type,~C: Type,~V: Data,~Token: Data,~take: Store -> Rest & Col.Column<S,C>,~put: Rest -> Col.Column<S,C> -> Store,~project: C -> C & V,checked: W.World<S,Store,R,E> & Bool,+handle: W.Handle<S>,incoming: Maybe<&1,C>) -> Replacement<W.World<S,Store,R,E>,C>:
152  match checked handle:
153    case (world,False{}) _: ReplaceRejected{world,incoming,W.MissingEntity{}}
154    case (world,True{}) W.Handle{_,K.EntityKey{+id,_}}:
155      replace_present(~S,~Store,~R,~E,~Rest,~C,~V,~Token,~take,~put,~project,world,id,owner_present(~C,incoming))

Uses (12)

Used by (2)