summaryrefslogtreecommitdiff
path: root/core/src/org/snoopdesigns/endless/world/ObjectsRenderer.java
blob: 3055532e93197210a2c212737720a4ecad14e101 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package org.snoopdesigns.endless.world;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;

import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import org.snoopdesigns.endless.context.Context;
import org.snoopdesigns.endless.renderer.Renderer;
import org.snoopdesigns.endless.world.ship.SteerableEnemyShip;

public class ObjectsRenderer implements Renderer {

    private final List<Renderable> renderables = new ArrayList<>();

    private SpriteBatch batch;

    @Override
    public void create() {
        batch = new SpriteBatch();
        renderables.add(Context.getInstance().getPlayerShip());

        IntStream.range(0, 3).forEach(i ->
                renderables.add(new SteerableEnemyShip()));

        renderables.forEach(Renderable::create);
    }

    @Override
    public void render() {
        batch.setProjectionMatrix(Context.getInstance().getCameraContext().getCameraProjection());
        batch.begin();
        renderables.forEach(renderable -> renderable.render(batch));
        batch.end();
    }

    @Override
    public void dispose() {
        batch.dispose();
        renderables.forEach(Renderable::dispose);
    }
}