# Class: SortedIteratingSystem

Like IteratingSystem, but sorted using a comparator. It processes each Entity of a given Family in the order specified by a comparator and calls processEntity for each Entity every time the EntitySystem is updated. This is really just a convenience class as rendering systems tend to iterate over a list of entities in a sorted manner. Adding entities will cause the entity list to be resorted. Call forceSort if you changed your sorting criteria.

# Hierarchy

# Table of contents

# Constructors

# Properties

# Methods

# Constructors

# constructor

new SortedIteratingSystem(family, comparator)

# Parameters

Name Type Description
family Family The family of entities iterated over in this system.
comparator EntityComparator The comparator to sort the entities.

# Overrides

EntitySystem.constructor

# Defined in

src/systems/SortedIteratingSystem.ts:37 (opens new window)

# Properties

# engine

Readonly engine: Engine

The engine of this system.

# Inherited from

EntitySystem.engine

# Defined in

src/core/AbstractSystem.ts:14 (opens new window)


# family

Readonly family: Family

The Family used when the system was created.

# Defined in

src/systems/SortedIteratingSystem.ts:23 (opens new window)

# Methods

# forceSort

forceSort(): void

Call this if the sorting criteria have changed. The actual sorting will be delayed until the entities are processed.

# Returns

void

# Defined in

src/systems/SortedIteratingSystem.ts:57 (opens new window)


# getEntities

getEntities(): Entity[]

# Returns

Entity[]

The set of entities processed by the system.

# Defined in

src/systems/SortedIteratingSystem.ts:104 (opens new window)


# getPriority

getPriority(): number

# Returns

number

The priority of the system. Do not override this!

# Inherited from

EntitySystem.getPriority

# Defined in

src/core/AbstractSystem.ts:75 (opens new window)


# isEnabled

isEnabled(): boolean

# Returns

boolean

True if the system is enabled.

# Inherited from

EntitySystem.isEnabled

# Defined in

src/core/AbstractSystem.ts:57 (opens new window)


# onDisable

Protected onDisable(): void

Called in two situations:

  • When the system is enabled and currently being removed from the manager
  • When the system is already added to the manager and is currently being disabled.

# Returns

void

# Overrides

EntitySystem.onDisable

# Defined in

src/systems/SortedIteratingSystem.ts:88 (opens new window)


# onEnable

Protected onEnable(): void

Called in two situations:

  • When the system is enabled and currently being added to the manager
  • When the system is already added to the manager and is currently being enabled.

# Returns

void

# Overrides

EntitySystem.onEnable

# Defined in

src/systems/SortedIteratingSystem.ts:82 (opens new window)


# processEntity

Protected Abstract processEntity(entity, deltaTime): void

This method is called on every entity on every update call of the EntitySystem. Override this to implement your system's specific processing.

# Parameters

Name Type Description
entity Entity The current Entity being processed.
deltaTime number The delta time between the last and current frame.

# Returns

void

# Defined in

src/systems/SortedIteratingSystem.ts:116 (opens new window)


# setComparator

setComparator(comparator): void

Update the comparator to sort the entities. Implicitly calls forceSort.

# Parameters

Name Type Description
comparator EntityComparator The comparator to sort the entities.

# Returns

void

# Defined in

src/systems/SortedIteratingSystem.ts:48 (opens new window)


# setEnabled

setEnabled(enabled): void

Enable or disable the system. A disabled system will not be processed during an update.

# Parameters

Name Type Description
enabled boolean The new state.

# Returns

void

# Inherited from

EntitySystem.setEnabled

# Defined in

src/core/AbstractSystem.ts:43 (opens new window)


# setPriority

setPriority(priority): void

Set the system priority. You can set the priority with when adding the system as well.

# Parameters

Name Type Description
priority number The priority to execute this system with (lower means higher priority).

# Returns

void

# Inherited from

EntitySystem.setPriority

# Defined in

src/core/AbstractSystem.ts:66 (opens new window)


# update

update(deltaTime): void

The update method called every tick.

# Parameters

Name Type
deltaTime number

# Returns

void

# Overrides

EntitySystem.update

# Defined in

src/systems/SortedIteratingSystem.ts:94 (opens new window)