public static void Set <TComponent>(this ComponentAccessor <TComponent> accessor, Action <TComponent> componentModifier) where TComponent : class, IComponent, new() { var newComponent = accessor.Entity.CreateComponent <TComponent>(); componentModifier(newComponent); accessor.Entity.ReplaceComponent(newComponent); }
public static void Apply <TComponent, TValue>(this ComponentAccessor <TComponent> accessor, TValue value) where TComponent : class, IValueComponent <TValue>, new() { var newComponent = accessor.Entity.CreateComponent <TComponent>(); newComponent.Value = value; accessor.Entity.ReplaceComponent(newComponent); }
public static void Apply <TComponent, TValue>(this ComponentAccessor <TComponent> accessor, Func <TComponent, TValue> valueProducer) where TComponent : class, IValueComponent <TValue>, new() { var newcomponent = accessor.Entity.CreateComponent <TComponent>(); var newValue = valueProducer(accessor.Component); newcomponent.Value = newValue; accessor.Entity.ReplaceComponent(newcomponent); }