2023-02-17 11:06:01 +01:00

125 lines
3.7 KiB
JavaScript

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;
}
}
}