encompass-cs-docs/content/concepts/component.md

34 lines
813 B
Markdown
Raw Normal View History

2019-05-22 20:56:04 +00:00
---
title: "Component"
date: 2019-05-22T12:51:29-07:00
weight: 5
---
A Component is a collection of related data.
To define a Component, extend the Component class.
```ts
import { Component } from "encompass-ecs";
class PositionComponent extends Component {
public x: number;
public y: number;
}
```
Components are created in context with an Entity.
```ts
const entity = World.create_entity();
const position = entity.add_component(PositionComponent);
position.x = 3;
position.y = -4;
```
Components cannot exist apart from an Entity and are automagically destroyed when they are removed or their Entity is destroyed.
{{% notice warning %}}
Components should **never** reference other Components. This breaks the principle of loose coupling. You **will** regret it if you do this.
{{% /notice %}}