import { Entity, ComponentConstructor, Component } from "ecsy" export function addOrSetComponent(entity: Entity, Component: ComponentConstructor, values: any) { if(entity.hasComponent(Component)){ //component exists, copy values into it let component: any = entity.getMutableComponent(Component) if(component.copy){ component.copy(values) } else { for (var name in values) { component[name]= values[name] } } } else { //component doesn't exist, add new one entity.addComponent(Component, values) } } export function clamp(value: number, min:number, max:number) { return Math.min(Math.max(value, min), max) }; export function lerp(from: number, to:number, at:number) { return from + (to - from) * at; };