Coverage Summary for Class: EntityManager (com.mygdx.game.Managers)

Class Class, % Method, % Line, %
EntityManager 100% (1/1) 80% (8/10) 63.6% (21/33)


1 package com.mygdx.game.Managers; 2  3 import com.badlogic.gdx.Gdx; 4 import com.mygdx.game.Components.Component; 5 import com.mygdx.game.Components.ComponentEvent; 6 import com.mygdx.game.Entitys.Entity; 7  8 import java.util.ArrayList; 9  10 /** 11  * Responsible for Managing the entity and component events. Entity's can be accessed by a String name 12  */ 13 public final class EntityManager { 14  private static ArrayList<String> entityNames; 15  private static ArrayList<Entity> entities; 16  private static ArrayList<Component> components; 17  private static boolean initialized = false; 18  19  /** 20  * Should only be called once although if it isn't called at all it will be called automatically 21  */ 22  public static void Initialize() { 23  entityNames = new ArrayList<>(); 24  entities = new ArrayList<>(); 25  components = new ArrayList<>(); 26  initialized = true; 27  } 28  29  /** 30  * Don't call manually 31  * @param c the comp to add 32  */ 33  public static void addComponent(Component c) { 34  tryInit(); 35  components.add(c); 36  } 37  38  /** 39  * Don't call manually 40  * @param e the entity to add 41  */ 42  public static void addEntity(Entity e) { 43  tryInit(); 44  entities.add(e); 45  entityNames.add(e.getName()); 46  } 47  48  49  /** 50  * changes the entity's name 51  * @param prev old name 52  * @param new_ new name 53  */ 54  public static void changeName(String prev, String new_) { 55  entityNames.set(entityNames.indexOf(prev), new_); 56  } 57  58  /** 59  * raises the appropriate events for each entity's component. then renders after all entities have being processed if render is requested 60  * @param comps calls the events left to right 61  */ 62  public static void raiseEvents(ComponentEvent... comps) { 63  tryInit(); 64  for (Entity e : entities) { 65  e.raiseEvents(comps); 66  } 67  for (ComponentEvent c : comps) { 68  if (c == ComponentEvent.Render) { 69  RenderingManager.render(); 70  71  break; 72  } 73  } 74  for (Entity e : entities) { 75  e.update(); 76  } 77  } 78  79  /** 80  * Cleans up all entities and components. Disposes of the primary sprite batch 81  */ 82  public static void cleanUp() { 83  tryInit(); 84  for (Entity e : entities) { 85  e.cleanUp(); 86  } 87  for (Component c : components) { 88  c.cleanUp(); 89  } 90  } 91  92  /** 93  * automatically calls initialised if not done so 94  */ 95  private static void tryInit() { 96  if (!initialized) { 97  Initialize(); 98  } 99  } 100  101  /** 102  * gets the time between the last from and the current 103  * @return 1/FPS 104  */ 105  public static float getDeltaTime() { 106  return Gdx.graphics.getDeltaTime(); 107  } 108  109  110  // public static Entity getEntity(String name) { 111  // return entities.get(entityNames.indexOf(name)); 112  // } 113  114  //public static int getFPS() { 115  // return Gdx.graphics.getFramesPerSecond(); 116  // } 117  118 }