1 package ru
.deadsoftware
.cavedroid
.game
;
3 import com
.badlogic
.gdx
.Gdx
;
4 import com
.badlogic
.gdx
.graphics
.GL20
;
5 import ru
.deadsoftware
.cavedroid
.MainConfig
;
6 import ru
.deadsoftware
.cavedroid
.game
.mobs
.MobsController
;
7 import ru
.deadsoftware
.cavedroid
.game
.mobs
.Player
;
8 import ru
.deadsoftware
.cavedroid
.game
.render
.IGameRenderer
;
9 import ru
.deadsoftware
.cavedroid
.misc
.Renderer
;
11 import javax
.inject
.Inject
;
12 import java
.util
.ArrayList
;
13 import java
.util
.Comparator
;
14 import java
.util
.List
;
18 public class GameRenderer
extends Renderer
{
20 private final GameInput mGameInput
;
21 private final MobsController mMobsController
;
22 private final List
<IGameRenderer
> mRenderers
;
25 GameRenderer(MainConfig mainConfig
,
27 MobsController mobsController
,
28 Set
<IGameRenderer
> renderers
) {
29 super(mainConfig
.getWidth(), mainConfig
.getHeight());
31 mGameInput
= gameInput
;
32 mMobsController
= mobsController
;
33 mRenderers
= new ArrayList
<>(renderers
);
34 mRenderers
.sort(Comparator
.comparingInt(IGameRenderer
::getRenderLayer
));
36 Gdx
.gl
.glClearColor(0f, .6f, .6f, 1f);
39 private void updateCameraPosition() {
40 Player player
= mMobsController
.getPlayer();
41 setCamPos(player
.getX() + player
.getWidth() / 2 - getWidth() / 2,
42 player
.getY() + player
.getHeight() / 2 - getHeight() / 2);
47 public void render(float delta
) {
48 updateCameraPosition();
49 mGameInput
.moveCursor(this);
51 Gdx
.gl
.glClear(GL20
.GL_COLOR_BUFFER_BIT
);
54 mRenderers
.forEach(iGameRenderer
-> iGameRenderer
.draw(spriter
, shaper
, getCameraViewport(), delta
));