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 }