Files
artloglaby/java/org/artisanlogiciel/games/maze/gui/MazeSettings.java
philippe lhardy bf918333bf wall half closure control + layers
- add onewaywall option to create a wall if there is not step back
- add layers of maze
- load minetest scheme .we with onewall option
2020-11-05 19:50:42 +01:00

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;
}
}