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

Class Class, % Method, % Line, %
RenderingManager 100% (1/1) 14.3% (1/7) 24.1% (7/29)


1 package com.mygdx.game.Managers; 2  3 import com.badlogic.gdx.graphics.OrthographicCamera; 4 import com.badlogic.gdx.graphics.g2d.SpriteBatch; 5 import com.mygdx.game.Components.Component; 6  7 import java.util.ArrayList; 8  9 import static com.mygdx.utils.Constants.*; 10  11 /** 12  * Responsible for all rending. Renders in layers render item layers can't be changed 13  * holds the primary sprite batch and rendering camera 14  */ 15 public final class RenderingManager { 16  private static ArrayList<Component> renderItems; 17  private static ArrayList<ArrayList<Integer>> layers; 18  private static OrthographicCamera camera; 19  private static SpriteBatch batch; 20  21  public static void Initialize() { 22  //boolean initialized = true; 23  renderItems = new ArrayList<>(); 24  25  batch = new SpriteBatch(); 26  // batch.enableBlending(); 27  camera = new OrthographicCamera(); 28  camera.viewportHeight = VIEWPORT_HEIGHT / ZOOM; 29  camera.viewportWidth = VIEWPORT_WIDTH / ZOOM; 30  camera.update(); 31  32  layers = new ArrayList<>(RenderLayer.values().length); 33  34  for (int i = 0; i < RenderLayer.values().length; i++) { 35  layers.add(new ArrayList<>()); 36  } 37  } 38  39  public static OrthographicCamera getCamera() { 40  return camera; 41  } 42  43  /** 44  * adds item to the list of renderable and adds to the correct layer 45  * @param item component that utilises render 46  * @param layer the layer that it will be rendered in 47  */ 48  public static void addItem(Component item, RenderLayer layer) { 49  //tryInit(); 50  51  // start of change for assessment 2 - to initialise empty lists if initialise() hasn't already been called due to testing 52  if(renderItems == null) renderItems = new ArrayList<>(); 53  if(layers == null) { 54  layers = new ArrayList<>(RenderLayer.values().length); 55  for (int i = 0; i < RenderLayer.values().length; i++) { 56  layers.add(new ArrayList<>()); 57  } 58  } 59  renderItems.add(item); 60  layers.get(layer.ordinal()).add(renderItems.size() - 1); 61  } 62  63  /** 64  * Renders all items in accordance with their layers on one sprite batch 65  */ 66  public static void render() { 67  //tryInit(); 68  69  batch.setProjectionMatrix(camera.combined); 70  batch.begin(); 71  72  for (ArrayList<Integer> layer : layers) { 73  for (Integer itemIndex : layer) { 74  Component item = renderItems.get(itemIndex); 75  item.render(); 76  } 77  } 78  79  /*for(int i = 0; i < renderItems.size(); i++){ 80  //renderItems.get(renderItems.size() - (1 + i)).render(); 81  renderItems.get(i).render(); 82  }*/ 83  84  batch.end(); 85  } 86  87  public static void cleanUp() { 88  batch.dispose(); 89  } 90  91  public static SpriteBatch getBatch() { 92  return batch; 93  } 94  95  //public static void setCamera(OrthographicCamera cam) { 96  // camera = cam; 97  // } 98  99  //private static void tryInit() { 100  // if (!initialized) { 101  // //Initialize(); 102  // } 103  // } 104 }