*| [JavaECS](../../README.md) | [docs](../overview.md) | [system](./dir.md) | SystemManager[]().md* # System Manager ### In this section [About](#about) [Implementation](#implementation) [Constructors](#constructors) [Methods](#methods) [Fields](#fields) [Examples](#examples) [Notes](#notes) ## About The system manager class controls references to the systems. ## Implementation Before attempting to use a system, it must be registered. Registration requires a call to `registerSystem(String systemName, ECSSystem system)`, with params of the `String name` and a object reference of the [ECSSystem](./ECSSystem.md). Using the object reference, a system can be invoked at any time. ## Constructors Default constructor ``` java public SystemManager(){} ```
## Methods ### entityDestroyed ``` java public void entityDestroyed(int entity); ``` Removes the specified entity from every system, if it was associated
### entitySignatureChanged ``` java public void entitySignatureChanged(int entity, BitSet entitySignature); ``` Checks the entity's new signature against the current registrations. Registers the entity if it wasn't previously registered, or removes it if it is no longer registered.
### registerSystem ``` java public boolean registerSystem(String systemName, ECSSystem system); ``` Registers the specified system name and system reference to this manager. *adds a `systemName:system` pair to [systems](#systems)* *and a `systemName:new BitSet()` pair to [signatures](#signatures)*
### setSignature ``` java public void setSignature(String system, BitSet registrations); ``` Sets the required signature of the `system`
## Fields ### signatures ``` java Map signatures = new HashMap<>(); ```
### systems ``` java Map systems = new HashMap<>(); ```