Skip to main content

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.