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 }