Square or Hexagon Cell
- allows to select between square and hexagon representation - remark : this is still a square model
This commit is contained in:
@@ -2,6 +2,7 @@ package org.artisanlogiciel.games.maze.gui;
|
||||
|
||||
import org.artisanlogiciel.games.maze.*;
|
||||
import org.artisanlogiciel.games.maze.model.LabyModelProvider;
|
||||
import org.artisanlogiciel.games.maze.model.WidthHeightProvider;
|
||||
import org.artisanlogiciel.games.maze.solve.DirectionPosition;
|
||||
import org.artisanlogiciel.games.maze.solve.MazeResolutionListener;
|
||||
import org.artisanlogiciel.graphics.Drawing;
|
||||
@@ -27,7 +28,7 @@ public class MazeComponent
|
||||
private static final long serialVersionUID = 3163272907991176390L;
|
||||
|
||||
LabyModelProvider map;
|
||||
final MazeCellRenderer cp;
|
||||
MazeCellRenderer cp;
|
||||
Position current = null;
|
||||
LinkedList<DirectionPosition> solvedPath = null;
|
||||
LinkedList<DirectionPosition> drawingPath = null;
|
||||
@@ -51,6 +52,14 @@ public class MazeComponent
|
||||
|
||||
StatusListener statusListener;
|
||||
|
||||
MazeCellRenderer createCellRenderer(boolean hexagon, WidthHeightProvider model, WidthHeightProvider frame)
|
||||
{
|
||||
MazeCellRenderer cellRenderer = hexagon ?
|
||||
new HexagonCellRenderer(model, frame, 0, 0)
|
||||
: new MazeCellRenderer(model, frame, 0, 0);
|
||||
return cellRenderer;
|
||||
}
|
||||
|
||||
MazeColorMap colorMap = new MazeColorMap(Color.white, Color.black, Color.blue, Color.green, Color.red);
|
||||
|
||||
public class MazeColorMap
|
||||
@@ -216,17 +225,22 @@ public class MazeComponent
|
||||
* offsetX, offsetY of upper left corner
|
||||
**/
|
||||
// public MazeComponent(WallsProvider map, MazeCellParameters cp)
|
||||
public MazeComponent(LabyModel map, MazeCellRenderer cp, StatusListener statusListener) {
|
||||
public MazeComponent(LabyModel map, WidthHeightProvider frame, StatusListener statusListener) {
|
||||
super();
|
||||
this.cp = cp;
|
||||
this.map = map;
|
||||
setPreferredSize(cp.getDimension());
|
||||
gX = map.getWidth() - 1;
|
||||
gY = map.getHeight() - 1;
|
||||
resetCellRenderer(false,frame);
|
||||
this.statusListener = statusListener;
|
||||
addMouseMotionListener(this);
|
||||
}
|
||||
|
||||
public void resetCellRenderer(boolean hexagon, WidthHeightProvider frame)
|
||||
{
|
||||
cp = createCellRenderer(hexagon,map,frame);
|
||||
setPreferredSize(cp.getDimension());
|
||||
}
|
||||
|
||||
// public void resetWallsProvider(WallsProvider map)
|
||||
public void resetWallsProvider(LabyModel map) {
|
||||
this.map = map;
|
||||
@@ -235,7 +249,7 @@ public class MazeComponent
|
||||
drawingPath = null;
|
||||
sX = 0;
|
||||
sY = 0;
|
||||
cp.resetMazeWidthHeight(map.getWidth(), map.getHeight());
|
||||
cp.resetMazeWidthHeight(map);
|
||||
setPreferredSize(cp.getDimension());
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user