package com.corosus.game.system;
import com.artemis.Aspect;
import com.artemis.ComponentMapper;
import com.artemis.Entity;
import com.artemis.systems.IntervalEntityProcessingSystem;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.corosus.game.GameSettings;
import com.corosus.game.Game_AI_TestBed;
import com.corosus.game.Level;
import com.corosus.game.component.Position;
public class MapRender extends IntervalEntityProcessingSystem {
public MapRender() {
super(Aspect.exclude(), GameSettings.tickDelayRender);
}
@Override
protected void initialize() {
super.initialize();
}
@Override
protected void processSystem() {
//Logger.dbg("tick " + this);
Game_AI_TestBed game = Game_AI_TestBed.instance();
Level level = game.getActiveLevel();
level.setStateTime(level.getStateTime() + level.getWorld().getDelta());
//game.getCamera().position.x += 1;
//camera.position.y += 1;
game.getCamera().zoom = 1.4F;
//game.getCamera().zoom = 3F;
game.getCamera().update();
ComponentMapper<Position> mapPos = ComponentMapper.getFor(Position.class, level.getWorld());
Entity player = level.getPlayerEntity();
if (player != null) {
Position pos = mapPos.get(player);
float partialTick = level.getPartialTick();
float rX = pos.prevX + (pos.x - pos.prevX) * partialTick;
float rY = pos.prevY + (pos.y - pos.prevY) * partialTick;
game.getCamera().position.x = rX;
game.getCamera().position.y = rY;
//System.out.println(pos.x + " - " + pos.y);
}
Color color = new Color(0, 0, 0, 0);
//clear screen
Gdx.gl.glClearColor(color.r, color.g,color.b,color.a);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
//update map position and render
level.getMapRenderer().setView(game.getCamera());
level.getMapRenderer().render();
}
@Override
protected void process(Entity e) {
}
}