package haven.pathfinder;
import java.awt.*;
import javax.swing.JFrame;
public class DbgWnd extends JFrame
{
public Map map;
public DbgWnd(Map map, int width, int height) {
super("PathFinder Dbg");
this.map = map;
setSize(width, height);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void setScene(Map map) {
this.map = map;
}
public void paint(Graphics g) {
super.paint(g);
// ((Graphics2D)g).scale(0.85, 0.85);
Node src = null;
Node dst = null;
for(int i=0;i<map.h;i++){
for(int j=0;j<map.w;j++){
Node cell = map.nodes[j][i];
if (cell.isPartOfPath()) {
g.setColor(new Color(176, 23, 31));
} else if (cell.pathTraversed) {
g.setColor(new Color(125, 158, 192));
} else if (cell.isSrc()) {
src = cell;
g.setColor(new Color(113, 198, 113));
} else if (cell.isDst()) {
dst = cell;
g.setColor(Color.RED);
} else {
switch (map.nodes[j][i].type) {
case BLOCK_DYNAMIC:
case BLOCK: g.setColor(Color.BLACK); break;
case NORMAL: g.setColor(Color.LIGHT_GRAY); break;
case MOUNTAIN: g.setColor(Color.DARK_GRAY); break;
case SWAMP: g.setColor(new Color(142, 142, 56)); break;
case THICKET: g.setColor(Color.WHITE); break;
case GRASS: g.setColor(Color.GREEN); break;
case HEATH: g.setColor(Color.PINK); break;
case MOOR: g.setColor(Color.YELLOW); break;
case WATER_DEEP: g.setColor(Color.BLUE); break;
case WATER_SHALLOW: g.setColor(Color.CYAN); break;
case SAND: g.setColor(new Color(249, 255, 128)); break;
case NOT_IMPLEMENTED: g.setColor(Color.ORANGE); break;
default: g.setColor(Color.GRAY); break;
}
}
g.drawLine(j, i, j, i);
}
}
if (src != null) {
g.setColor(new Color(113, 198, 113));
g.drawLine(src.x, src.y, src.x, src.y);
g.drawLine(src.x+1, src.y, src.x+1, src.y);
g.drawLine(src.x+1, src.y+1, src.x+1, src.y+1);
g.drawLine(src.x, src.y+1, src.x, src.y+1);
}
if (dst != null) {
g.setColor(Color.RED);
g.drawLine(dst.x, dst.y, dst.x, dst.y);
g.drawLine(dst.x+1, dst.y, dst.x+1, dst.y);
g.drawLine(dst.x+1, dst.y+1, dst.x+1, dst.y+1);
g.drawLine(dst.x, dst.y+1, dst.x, dst.y+1);
}
}
}