UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

35 lines (34 loc) 983 B
import { Vec3 } from "../../../core/math/vec3.js"; import { ComponentSystem } from "../system.js"; import { ZoneComponent } from "./component.js"; class ZoneComponentSystem extends ComponentSystem { constructor(app) { super(app); this.id = "zone"; this.ComponentType = ZoneComponent; this.on("beforeremove", this.onBeforeRemove, this); } initializeComponentData(component, data, properties) { component.enabled = data.hasOwnProperty("enabled") ? !!data.enabled : true; if (data.size) { if (data.size instanceof Vec3) { component.size.copy(data.size); } else if (data.size instanceof Array && data.size.length >= 3) { component.size.set(data.size[0], data.size[1], data.size[2]); } } } cloneComponent(entity, clone) { const data = { enabled: entity.zone.enabled, size: entity.zone.size }; return this.addComponent(clone, data); } onBeforeRemove(entity, component) { component.onBeforeRemove(); } } export { ZoneComponentSystem };