/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package transientlibs.preui.objects.states;
import transientlibs.slick2d.util.Log;
import transientlibs.processors.misc.Detonator;
import transientlibs.preui.agents.rendering.GDXMapDrawAgent;
import transientlibs.maps.utils.fov.FOVBoard;
import transientlibs.maps.utils.fov.LOSCalculator;
import transientlibs.maps.utils.pathfinding.PathFinder;
import transientlibs.maps.units.Unit;
import transientlibs.maps.container.TransientAssembledMap;
import transientlibs.maps.tiles.Tile;
import transientlibs.objects.primitives.Coords;
import transientlibs.preui.gdx.game.TransientInput;
import transientlibs.preui.objects.gui.elements.Marker;
import transientlibs.preui.objects.gui.interfaces.IMarker;
/**
*
* @author kibertoad
*/
public class TransientTiledMapState extends TransientState {
public LOSCalculator los = new LOSCalculator();
public TransientAssembledMap map = null;
public Unit player;
public Coords tryCoords;
public TransientTiledMapState(int setStateID, String setID) {
super(setStateID, setID);
}
@Override
public void enter() {
Log.info("Entered map state");
map.recalcObjectPositions();
}
public void recalculateLOS() {
if (map.player.target != null) {
//map.fov = new FOVBoard(map, map.player);
los.map = map;
los.greenTile = Detonator.INSTANCE.imageProvider.getImage("can");
los.redTile = Detonator.INSTANCE.imageProvider.getImage("cannot");
//los.calculatePath(map.fov, map.player.mapCoords, map.player.target.mapCoords);
los.calculatePath(map.fov, map.player.mapCoords, map.player.target.mapCoords);
}
}
@Override
public void init (){
super.init();
}
@Override
public void postInit (){
Detonator.INSTANCE.currentMap = map;
Detonator.INSTANCE.tileMovementCalculator.setMap(map);
drawAgent = new GDXMapDrawAgent((TransientGame) Detonator.INSTANCE.currentGenericGame, map, player, this);
}
/*
@Override
public void tick (TransientInput input) {
super.tick(input);
if
}
*/
public void processClickedTile(Tile clickedTile) {
}
@Override
public void processClickedMarker(IMarker clickedMarker) {
super.processClickedMarker(clickedMarker);
if (clickedMarker.markerID() == Marker.MarkerType.TileMarker) {
processClickedTile((Tile) clickedMarker);
}
}
}