API Core
Component
Classe de base pour les composants.
Elle fournit un dispose() no-op que tu peux surcharger si besoin.
Exemple
import { Component } from "envy";
class HealthComponent extends Component {
value = 100;
}
DisposableComponent
Classe de base pour les composants qui doivent libérer des ressources.
Quand une instance est retirée du World, son dispose() est appelé automatiquement si elle est stockée comme valeur de composant.
Exemple
import { DisposableComponent } from "envy";
class AudioComponent extends DisposableComponent {
constructor(private readonly audio: { dispose(): void }) {
super();
}
override dispose(): void {
this.audio.dispose();
}
}
Entity
addComponent(component)
Ajoute une instance de composant à l'entité.
getComponent(componentType)
Retourne le composant ou undefined.
requireComponent(componentType)
Retourne le composant ou lève une erreur s'il est absent.
hasComponent(componentType)
Teste la présence d'un composant.
removeComponent(componentType)
Retire un composant d'une entité.
query(...componentTypes)
Retourne les composants demandés pour cette entité via le World.
World
createEntity()
Crée une nouvelle entité.
destroyEntity(entity)
Supprime une entité et retire ses composants.
query(...componentTypes)
Retourne les entités qui possèdent tous les composants demandés, avec les instances correspondantes.
entitiesWith(...componentTypes)
Retourne seulement les entités qui possèdent tous les composants demandés.
addSystem(system)
Ajoute un système au monde.
step(deltaTime)
Exécute tous les systèmes enregistrés.