Square or Hexagon Cell
- allows to select between square and hexagon representation - remark : this is still a square model
This commit is contained in:
@@ -4,6 +4,7 @@ import org.artisanlogiciel.games.maze.LabyModel;
|
||||
import org.artisanlogiciel.games.maze.Maze;
|
||||
import org.artisanlogiciel.games.maze.MazeParams;
|
||||
import org.artisanlogiciel.games.maze.MazeParamsFixed;
|
||||
import org.artisanlogiciel.games.maze.model.WidthHeightProvider;
|
||||
import org.artisanlogiciel.games.maze.persist.MazePersistRaw;
|
||||
import org.artisanlogiciel.games.maze.solve.SolvingModel;
|
||||
import org.artisanlogiciel.graphics.Drawing;
|
||||
@@ -50,7 +51,7 @@ implements StatusListener
|
||||
|
||||
boolean statusEnable = true;
|
||||
boolean mGrow = false;
|
||||
boolean mHexagon = false;
|
||||
|
||||
|
||||
JTextField statusField = null;
|
||||
|
||||
@@ -58,11 +59,19 @@ implements StatusListener
|
||||
|
||||
MazeFrame mazeFrame;
|
||||
|
||||
WidthHeightProvider frameSize = null;
|
||||
|
||||
public void setHexagon(boolean hexagon) {
|
||||
addStatus(hexagon ? "hexagon" : "square");
|
||||
maze.resetCellRenderer(hexagon, frameSize);
|
||||
}
|
||||
|
||||
private class MazeFrame extends JFrame
|
||||
{
|
||||
MazeFrame(LabyModel model, int W, int H, MazeParams params) {
|
||||
MazeFrame(LabyModel model, WidthHeightProvider frame, MazeParams params) {
|
||||
super(MazeDefault.labels.getString("title"));
|
||||
maze = createMazeComponent(model, W, H);
|
||||
frameSize = frame;
|
||||
maze = createMazeComponent(model, frame);
|
||||
|
||||
Container con = this.getContentPane();
|
||||
JScrollPane scrollableMaze = new JScrollPane(maze);
|
||||
@@ -85,26 +94,25 @@ implements StatusListener
|
||||
|
||||
model.setMazeListener(maze);
|
||||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
setBounds(W, H, W, H);
|
||||
setBounds(frame.getWidth(), frame.getHeight(), frame.getWidth(), frame.getHeight());
|
||||
setVisible(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public Display(LabyModel model, int W, int H, MazeParams params)
|
||||
public Display(LabyModel model, WidthHeightProvider frame, MazeParams params)
|
||||
{
|
||||
super(model);
|
||||
mazeFrame = new MazeFrame(model,W,H,params);
|
||||
mazeFrame = new MazeFrame(model, frame,params);
|
||||
if (params != null) {
|
||||
// fixedParams = new MazeParamsFixed(params.getSaveDir(),params.getWidth(),params.getHeight(),params.getMaxDepth());
|
||||
this.params = params;
|
||||
}
|
||||
}
|
||||
|
||||
private MazeComponent createMazeComponent(LabyModel model, int W, int H) {
|
||||
private MazeComponent createMazeComponent(LabyModel model, WidthHeightProvider frame) {
|
||||
|
||||
MazeCellRenderer cp = mHexagon ? new HexagonCellRenderer(model.getWidth(), model.getHeight(), W, H, 0, 0) : new MazeCellRenderer(model.getWidth(), model.getHeight(), W, H, 0, 0);
|
||||
MazeComponent comp = new MazeComponent(model, cp, this);
|
||||
MazeComponent comp = new MazeComponent(model, frame , this);
|
||||
Xpm xpm = new Xpm();
|
||||
try {
|
||||
xpm.parse(new FileInputStream(MazeDefault.getInstance().getXpmBackground()));
|
||||
@@ -226,8 +234,8 @@ implements StatusListener
|
||||
return button;
|
||||
}
|
||||
|
||||
private static void setupDisplay(LabyModel model, int W, int H, MazeParams params) {
|
||||
Display display = new Display(model, W, H, params);
|
||||
private static void setupDisplay(LabyModel model, WidthHeightProvider frame, MazeParams params) {
|
||||
Display display = new Display(model, frame, params);
|
||||
}
|
||||
|
||||
|
||||
@@ -251,8 +259,17 @@ implements StatusListener
|
||||
|
||||
public static void main(String pArgs[]) {
|
||||
LabyModel model = null;
|
||||
int W = 600;
|
||||
int H = 400;
|
||||
WidthHeightProvider frame = new WidthHeightProvider() {
|
||||
@Override
|
||||
public int getWidth() {
|
||||
return 600;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHeight() {
|
||||
return 400;
|
||||
}
|
||||
};
|
||||
|
||||
System.out.println("Default Locale " + Locale.getDefault());
|
||||
|
||||
@@ -264,12 +281,12 @@ implements StatusListener
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
setupDisplay(model, W, H, null);
|
||||
setupDisplay(model, frame, null);
|
||||
} else {
|
||||
MazeParamsFixed params = new MazeParamsFixed(MazeDefault.getInstance().getParams());
|
||||
model = new LabyModel(params);
|
||||
|
||||
setupDisplay(model, W, H, params);
|
||||
setupDisplay(model, frame, params);
|
||||
|
||||
/*
|
||||
model.generateWithEntry(0, 0);
|
||||
|
||||
Reference in New Issue
Block a user