Class EntityService

java.lang.Object
com.csse3200.game.entities.EntityService

public class EntityService extends Object
Provides a global access point for entities to register themselves. This allows for iterating over entities to perform updates each loop. All game entities should be registered here. Avoid adding additional state here! Global access is often the easy but incorrect answer to sharing data.
  • Constructor Details

    • EntityService

      public EntityService()
  • Method Details

    • register

      public void register(Entity entity)
      Register a new entity with the entity service. The entity will be created and start updating.
      Parameters:
      entity - new entity.
    • unregister

      public void unregister(Entity entity)
      Unregister an entity with the entity service. The entity will be removed and stop updating.
      Parameters:
      entity - entity to be removed.
    • update

      public void update()
      Update all registered entities. Should only be called from the main game loop.
    • dispose

      public void dispose()
      Dispose all entities.
    • restWholeScreen

      public void restWholeScreen()
      Pause (disable) all entities so update in the gameplay loop doesn't occur for the event and its components.
    • wakeWholeScreen

      public void wakeWholeScreen()
      Play (enable) all entities so update in the gameplay loop occurs for the event and its components.
    • getEntity

      public <T extends Component> Entity getEntity(Class<T> componentType)
      Get the oldest (lowest index entity in entities) entity that contains the given component. This is used to search for very specific entities. e.g. Player
      Type Parameters:
      T - The component type, e.g. RenderComponent
      Parameters:
      componentType - The component class, e.g. RenderComponent.class
      Returns:
      The entity holding the component or null if nonexistent.
    • getSpecificComponent

      public <T extends Component> Component getSpecificComponent(Class<T> componentType)
      Get the oldest (lowest index entity in entities) entity's component of a given component type. This is used to search for very specific components. e.g. QuestManager
      Type Parameters:
      T - The component type, e.g. RenderComponent
      Parameters:
      componentType - The component class, e.g. RenderComponent.class
      Returns:
      The oldest entity's component or null if nonexistent.