Reviewed-on: #14 Co-authored-by: Juan Sebastian Montoya <juansmm@outlook.com> Co-committed-by: Juan Sebastian Montoya <juansmm@outlook.com>
28 lines
830 B
JavaScript
28 lines
830 B
JavaScript
import { System } from '../ecs/System.js';
|
|
import { Transform } from '../components/Transform.js';
|
|
import { MeshComponent } from '../components/MeshComponent.js';
|
|
|
|
/**
|
|
* RenderSystem - syncs Three.js mesh positions with Transform components
|
|
*/
|
|
export class RenderSystem extends System {
|
|
constructor(scene) {
|
|
super();
|
|
this.scene = scene;
|
|
}
|
|
|
|
update(_deltaTime) {
|
|
const entities = this.getEntities(Transform, MeshComponent);
|
|
|
|
for (const entityId of entities) {
|
|
const transform = this.getComponent(entityId, Transform);
|
|
const meshComp = this.getComponent(entityId, MeshComponent);
|
|
|
|
// Sync mesh transform with component
|
|
meshComp.mesh.position.copy(transform.position);
|
|
meshComp.mesh.rotation.copy(transform.rotation);
|
|
meshComp.mesh.scale.copy(transform.scale);
|
|
}
|
|
}
|
|
}
|
|
|