gibbon.js
Version:
Actor/Component system for use with pixi.js.
38 lines (32 loc) • 944 B
text/typescript
import { Group, Tween } from 'tweedle.js';
const tweens = new WeakMap<any, Tween<any>>();
const groups = new WeakMap<any, Group>();
export const getTweenGroup = <T extends object>(targ: T): Group | undefined => {
return groups.get(targ) as Group;
}
/**
* Gets active tween of target, if any.
* @param targ
* @returns
*/
export const getTween = <T extends object>(targ: T): Tween<T> | undefined => {
return tweens.get(targ) as Tween<T>;
}
/**
* Gets active tween of target or creates a new tween if none exists.
* @param targ
* @returns
*/
export const tweenOf = <T extends object>(targ: T, group?: Group): Tween<T> => {
let cur = tweens.get(targ,) as Tween<T>;
if (cur) {
return cur;
} else {
cur = new Tween(targ, group);
tweens.set(targ, cur);
return cur;
}
}
export const removeTween = <T>(targ: T) => {
tweens.delete(targ);
}