/
ManualParticle.ts
28 lines (24 loc) · 1002 Bytes
/
ManualParticle.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import type { IManualParticle } from "../Interfaces/IManualParticle";
import type { IOptionLoader } from "../Interfaces/IOptionLoader";
import type { RecursivePartial } from "../../Types";
import type { IParticles } from "../Interfaces/Particles/IParticles";
import type { ICoordinates } from "../../Core/Interfaces/ICoordinates";
import { Utils } from "../../Utils";
export class ManualParticle implements IManualParticle, IOptionLoader<IManualParticle> {
public options?: RecursivePartial<IParticles>;
public position?: ICoordinates;
public load(data?: RecursivePartial<IManualParticle>): void {
if (!data) {
return;
}
if (data.position !== undefined) {
this.position = {
x: data.position.x ?? 50,
y: data.position.y ?? 50,
};
}
if (data.options !== undefined) {
this.options = Utils.deepExtend({}, data.options) as RecursivePartial<IParticles>;
}
}
}