threejs-test/src/systems/RenderSystem.js
Juan Sebastian Montoya cec1fccc22
All checks were successful
Build and Publish Docker Image / Build and Validate (push) Successful in 7s
Build and Publish Docker Image / Publish to Registry (push) Successful in 9s
Feature/Refactor to use ecs architecture (#14)
Reviewed-on: #14
Co-authored-by: Juan Sebastian Montoya <juansmm@outlook.com>
Co-committed-by: Juan Sebastian Montoya <juansmm@outlook.com>
2025-11-26 15:39:05 -05:00

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