# Class: Entity

## Entity

#### new Entity()

  Basic component-driven object with facade function for interacting with the injected EntityManager object.
  Source:
    - Entity.js, line 8

### Methods

#### addComponent(TComponent) → {Entity}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `TComponent` | function |

  Source:
    - Entity.js, line 30

  ##### Returns:

  This entity.
  Type
    Entity

#### addTag(tag) → {Entity}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tag` | String |

  Source:
    - Entity.js, line 84

  ##### Returns:

  This entity.
  Type
    Entity

#### hasAllComponents(Components) → {boolean}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `Components` | Array.<function()> |

  Source:
    - Entity.js, line 59

  ##### Returns:

  True if entity has all Components.
  Type
    boolean

#### hasComponent(TComponent) → {boolean}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `TComponent` | function |

  Source:
    - Entity.js, line 50

  ##### Returns:

  True if this entity has TComponent.
  Type
    boolean

#### hasTag(tag) → {boolean}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tag` | String |

  Source:
    - Entity.js, line 75

  ##### Returns:

  True if entity has tag.
  Type
    boolean

#### remove() → {void}

  Source:
    - Entity.js, line 103

  ##### Returns:

  Type
    void

#### removeComponent(TComponent) → {Entity}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `TComponent` | function |

  Source:
    - Entity.js, line 40

  ##### Returns:

  This entity.
  Type
    Entity

#### removeTag(tag) → {Entity}

  ##### Parameters:

  Name | Type | Description
  --- | --- | ---
  `tag` | String |

  Source:
    - Entity.js, line 94

  ##### Returns:

  This entity.
  Type
    Entity