import { MoveAngle } from "./MoveAngle"; import { MoveAttract } from "./MoveAttract"; import { MoveCenter } from "./MoveCenter"; import { MoveGravity } from "./MoveGravity"; import { MovePath } from "./Path/MovePath"; import { MoveTrail } from "./MoveTrail"; import { OutModes } from "./OutModes"; import { Spin } from "./Spin"; import { setRangeValue } from "../../../../Utils/NumberUtils"; export class Move { constructor() { this.angle = new MoveAngle(); this.attract = new MoveAttract(); this.center = new MoveCenter(); this.decay = 0; this.distance = {}; this.direction = "none"; this.drift = 0; this.enable = false; this.gravity = new MoveGravity(); this.path = new MovePath(); this.outModes = new OutModes(); this.random = false; this.size = false; this.speed = 2; this.spin = new Spin(); this.straight = false; this.trail = new MoveTrail(); this.vibrate = false; this.warp = false; } get bounce() { return this.collisions; } set bounce(value) { this.collisions = value; } get collisions() { return false; } set collisions(_) { } get noise() { return this.path; } set noise(value) { this.path = value; } get outMode() { return this.outModes.default; } set outMode(value) { this.outModes.default = value; } get out_mode() { return this.outMode; } set out_mode(value) { this.outMode = value; } load(data) { var _a, _b, _c; if (!data) { return; } this.angle.load(typeof data.angle === "number" ? { value: data.angle } : data.angle); this.attract.load(data.attract); this.center.load(data.center); if (data.decay !== undefined) { this.decay = setRangeValue(data.decay); } if (data.direction !== undefined) { this.direction = data.direction; } if (data.distance !== undefined) { this.distance = typeof data.distance === "number" ? { horizontal: data.distance, vertical: data.distance, } : Object.assign({}, data.distance); } if (data.drift !== undefined) { this.drift = setRangeValue(data.drift); } if (data.enable !== undefined) { this.enable = data.enable; } this.gravity.load(data.gravity); const outModes = (_b = (_a = data.outModes) !== null && _a !== void 0 ? _a : data.outMode) !== null && _b !== void 0 ? _b : data.out_mode; if (outModes !== undefined) { if (typeof outModes === "object") { this.outModes.load(outModes); } else { this.outModes.load({ default: outModes, }); } } this.path.load((_c = data.path) !== null && _c !== void 0 ? _c : data.noise); if (data.random !== undefined) { this.random = data.random; } if (data.size !== undefined) { this.size = data.size; } if (data.speed !== undefined) { this.speed = setRangeValue(data.speed); } this.spin.load(data.spin); if (data.straight !== undefined) { this.straight = data.straight; } this.trail.load(data.trail); if (data.vibrate !== undefined) { this.vibrate = data.vibrate; } if (data.warp !== undefined) { this.warp = data.warp; } } }