- add onewaywall option to create a wall if there is not step back - add layers of maze - load minetest scheme .we with onewall option
74 lines
2.5 KiB
Java
74 lines
2.5 KiB
Java
package org.artisanlogiciel.games.maze.gui;
|
|
|
|
import org.artisanlogiciel.games.maze.MazeParams;
|
|
import org.artisanlogiciel.games.maze.MazeParamsFixed;
|
|
|
|
import javax.swing.*;
|
|
import javax.swing.event.ChangeEvent;
|
|
import javax.swing.event.ChangeListener;
|
|
import java.util.Random;
|
|
|
|
public class MazeSettings extends JPanel {
|
|
MazeParams params;
|
|
|
|
JTextField textWidth = null;
|
|
JTextField textHeight = null;
|
|
JTextField textDepth = null;
|
|
JTextField textSeed = null;
|
|
JCheckBox onewaywallCB = null;
|
|
|
|
// TODO set width and height and depth of maze with gui
|
|
public MazeSettings(MazeParams params) {
|
|
super();
|
|
this.params = params;
|
|
createSettingsGui();
|
|
}
|
|
|
|
void createSettingsGui() {
|
|
if (params != null) {
|
|
|
|
final JSlider slider = new JSlider(1, 100);
|
|
slider.addChangeListener(new ChangeListener() {
|
|
public void stateChanged(ChangeEvent e) {
|
|
// settextWidthWallSize(slider.getValue());
|
|
String valueStr = "" + slider.getValue();
|
|
textWidth.setText(valueStr);
|
|
textHeight.setText(valueStr);
|
|
}
|
|
});
|
|
|
|
add(slider);
|
|
JLabel widthLabel = new JLabel(Display.labels.getString("width"));
|
|
textWidth = new JTextField("0" + params.getWidth());
|
|
add(widthLabel);
|
|
add(textWidth);
|
|
JLabel heightLabel = new JLabel(Display.labels.getString("height"));
|
|
textHeight = new JTextField("0" + params.getHeight());
|
|
add(heightLabel);
|
|
add(textHeight);
|
|
JLabel depthLabel = new JLabel(Display.labels.getString("depth"));
|
|
textDepth = new JTextField("0" + params.getMaxDepth());
|
|
add(depthLabel);
|
|
add(textDepth);
|
|
JLabel seedLabel = new JLabel(Display.labels.getString("seed"));
|
|
textSeed = new JTextField( "" + params.getSeed(),16);
|
|
add(seedLabel);
|
|
add(textSeed);
|
|
onewaywallCB = new JCheckBox("one way wall", false);
|
|
add(onewaywallCB);
|
|
}
|
|
}
|
|
|
|
public MazeParams resetParams() {
|
|
params = new MazeParamsFixed(params.getSaveDir(),
|
|
Integer.parseInt(textWidth.getText()),
|
|
Integer.parseInt(textHeight.getText()),
|
|
Integer.parseInt(textDepth.getText()),
|
|
new Random().nextLong()
|
|
);
|
|
textSeed.setText("" + params.getSeed());
|
|
return params;
|
|
}
|
|
|
|
}
|