Class Entity

java.lang.Object
com.deco2800.game.entities.Entity

public class Entity extends Object
Core entity class. Entities exist in the game and are updated each frame. All entities have a position and scale, but have no default behaviour. Components should be added to an entity to give it specific behaviour. This class should not be inherited or modified directly.

Example use:

 Entity player = new Entity()
   .addComponent(new RenderComponent())
   .addComponent(new PlayerControllerComponent());
 ServiceLocator.getEntityService().register(player);
 
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    Add a component to the entity.
    boolean
     
    void
    Create the entity and start running.
    void
    Dispose of the entity.
    void
    Perform an early update on all components.
    boolean
    Check if this entity equalsOther another object
    void
     
    void
    Updates the playerWin variable to true, used to flag a win
    com.badlogic.gdx.math.Vector2
    Get the entity's center position
    <T extends Component>
    T
    Get a component of type T on the entity.
     
     
    com.badlogic.gdx.math.GridPoint2
    Get the entity's game grid position.
    int
    This entity's unique ID.
    com.badlogic.gdx.math.Vector2
    Get the entity's game position.
    com.badlogic.gdx.math.Vector2
    Get the entity's scale.
    int
    Get the hashcode of this entity.
    boolean
    A method that returns true if dead and false if not
    void
    scaleHeight(float y)
    Set the entity's height and scale the width to maintain aspect ratio.
    void
    scaleWidth(float x)
    Set the entity's width and scale the height to maintain aspect ratio.
    void
    setEnabled(boolean enabled)
    Enable or disable an entity.
    void
    Set the entity to the specific type defined in EntityTypes class
    void
    setGridPosition(com.badlogic.gdx.math.GridPoint2 position)
    Set the entity's game grid position.
    void
    setPosition(float x, float y)
    Set the entity's game position.
    void
    setPosition(com.badlogic.gdx.math.Vector2 position)
    Set the entity's game position.
    void
    setPosition(com.badlogic.gdx.math.Vector2 position, boolean notify)
    Set the entity's game position and optionally notifies listeners.
    void
    setScale(float x, float y)
    Set the entity's scale.
    void
    setScale(com.badlogic.gdx.math.Vector2 scale)
    Set the entity's scale.
    void
    togglePauseAnimations(boolean pausePlayer)
    Pauses all animations of registered entities.
    Convert this entity into string format
    void
    Perform an update on all components.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Entity

      public Entity()
  • Method Details

    • setEnabled

      public void setEnabled(boolean enabled)
      Enable or disable an entity. Disabled entities do not run update() or earlyUpdate() on their components, but can still be disposed.
      Parameters:
      enabled - true for enable, false for disable.
    • getGridPosition

      public com.badlogic.gdx.math.GridPoint2 getGridPosition()
      Get the entity's game grid position.
      Returns:
      position
    • getPosition

      public com.badlogic.gdx.math.Vector2 getPosition()
      Get the entity's game position.
      Returns:
      position
    • setGridPosition

      public void setGridPosition(com.badlogic.gdx.math.GridPoint2 position)
      Set the entity's game grid position.
    • setPosition

      public void setPosition(com.badlogic.gdx.math.Vector2 position)
      Set the entity's game position.
      Parameters:
      position - new position.
    • setPosition

      public void setPosition(float x, float y)
      Set the entity's game position.
      Parameters:
      x - new x position
      y - new y position
    • setPosition

      public void setPosition(com.badlogic.gdx.math.Vector2 position, boolean notify)
      Set the entity's game position and optionally notifies listeners.
      Parameters:
      position - new position.
      notify - true to notify (default), false otherwise
    • getScale

      public com.badlogic.gdx.math.Vector2 getScale()
      Get the entity's scale. Used for rendering and physics bounding box calculations.
      Returns:
      Scale in x and y directions. 1 = 1 metre.
    • setScale

      public void setScale(com.badlogic.gdx.math.Vector2 scale)
      Set the entity's scale.
      Parameters:
      scale - new scale in metres
    • setScale

      public void setScale(float x, float y)
      Set the entity's scale.
      Parameters:
      x - width in metres
      y - height in metres
    • scaleWidth

      public void scaleWidth(float x)
      Set the entity's width and scale the height to maintain aspect ratio.
      Parameters:
      x - width in metres
    • scaleHeight

      public void scaleHeight(float y)
      Set the entity's height and scale the width to maintain aspect ratio.
      Parameters:
      y - height in metres
    • getCenterPosition

      public com.badlogic.gdx.math.Vector2 getCenterPosition()
      Get the entity's center position
      Returns:
      center position
    • getComponent

      public <T extends Component> T getComponent(Class<T> type)
      Get a component of type T on the entity.
      Type Parameters:
      T - The component type, e.g. RenderComponent
      Parameters:
      type - The component class, e.g. RenderComponent.class
      Returns:
      The entity component, or null if nonexistent.
    • addComponent

      public Entity addComponent(Component component)
      Add a component to the entity. Can only be called before the entity is registered in the world.
      Parameters:
      component - The component to add. Only one component of a type can be added to an entity.
      Returns:
      Itself
    • setEntityType

      public void setEntityType(EntityTypes type)
      Set the entity to the specific type defined in EntityTypes class
      Parameters:
      type -
    • checkEntityType

      public boolean checkEntityType(EntityTypes type)
    • getEntityTypes

      public List<EntityTypes> getEntityTypes()
    • dispose

      public void dispose()
      Dispose of the entity. This will dispose of all components on this entity.
    • create

      public void create()
      Create the entity and start running. This is called when the entity is registered in the world, and should not be called manually.
    • earlyUpdate

      public void earlyUpdate()
      Perform an early update on all components. This is called by the entity service and should not be called manually.
    • update

      public void update()
      Perform an update on all components. This is called by the entity service and should not be called manually.
    • togglePauseAnimations

      public void togglePauseAnimations(boolean pausePlayer)
      Pauses all animations of registered entities. Can selectively pause the player entity and player related entities, on the following conditions of those entities: To Pause player entity - must have KeyBoardPlayerInput Component To Pause skill animator entity - must have PlayerSkillAnimationController To Pause combat animator entity - must have PlayerCombatAnimationController To Pause player projectile animator entity - must have PlayerSkillProjectileComponent
      Parameters:
      pausePlayer - true if the player and player related entities should be paused false if the player and player related entities should remain active while pausing other animations
    • getId

      public int getId()
      This entity's unique ID. Used for equality checks
      Returns:
      unique ID
    • flagDead

      public void flagDead()
    • flagWin

      public void flagWin()
      Updates the playerWin variable to true, used to flag a win
    • isDead

      public boolean isDead()
      A method that returns true if dead and false if not
      Returns:
      true if dead, false if not
    • getEvents

      public EventHandler getEvents()
    • equals

      public boolean equals(Object obj)
      Check if this entity equalsOther another object
      Overrides:
      equals in class Object
      Parameters:
      obj - - the object to compare this entity to
      Returns:
      true if equal, false if not
    • hashCode

      public int hashCode()
      Get the hashcode of this entity.
      Overrides:
      hashCode in class Object
      Returns:
      integer representing hashcode of this entity
    • toString

      public String toString()
      Convert this entity into string format
      Overrides:
      toString in class Object
      Returns:
      String representing the string format of this entity