34 lines
1.4 KiB
JavaScript
34 lines
1.4 KiB
JavaScript
import { BounceOutMode } from "./BounceOutMode";
|
|
import { DestroyOutMode } from "./DestroyOutMode";
|
|
import { NoneOutMode } from "./NoneOutMode";
|
|
import { OutOutMode } from "./OutOutMode";
|
|
export class OutOfCanvasUpdater {
|
|
constructor(container) {
|
|
this.container = container;
|
|
this.updaters = [
|
|
new BounceOutMode(container),
|
|
new DestroyOutMode(container),
|
|
new OutOutMode(container),
|
|
new NoneOutMode(container),
|
|
];
|
|
}
|
|
init() {
|
|
}
|
|
isEnabled(particle) {
|
|
return !particle.destroyed && !particle.spawning;
|
|
}
|
|
update(particle, delta) {
|
|
var _a, _b, _c, _d;
|
|
const outModes = particle.options.move.outModes;
|
|
this.updateOutMode(particle, delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, "bottom");
|
|
this.updateOutMode(particle, delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, "left");
|
|
this.updateOutMode(particle, delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, "right");
|
|
this.updateOutMode(particle, delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, "top");
|
|
}
|
|
updateOutMode(particle, delta, outMode, direction) {
|
|
for (const updater of this.updaters) {
|
|
updater.update(particle, direction, delta, outMode);
|
|
}
|
|
}
|
|
}
|