From 9ec3cf0d01afb49679ca83eeaf5456e547391fd1 Mon Sep 17 00:00:00 2001 From: philippe lhardy Date: Sun, 11 Oct 2020 15:07:39 +0200 Subject: [PATCH] display seed, create subpackage - display seed value ( can't be set yet ) - move MazeSetting in gui sub package --- java/org/artisanlogiciel/games/Display.java | 68 ++++--------------- .../games/maze/gui/MazeSettings.java | 57 ++++++++++++++++ lang/LabelsBundle.properties | 3 +- lang/LabelsBundle_fr.properties | 3 +- 4 files changed, 73 insertions(+), 58 deletions(-) create mode 100644 java/org/artisanlogiciel/games/maze/gui/MazeSettings.java diff --git a/java/org/artisanlogiciel/games/Display.java b/java/org/artisanlogiciel/games/Display.java index 1bf5f20..733fc27 100644 --- a/java/org/artisanlogiciel/games/Display.java +++ b/java/org/artisanlogiciel/games/Display.java @@ -23,7 +23,6 @@ import java.io.FileOutputStream; import java.io.IOException; import java.util.LinkedList; import java.util.Locale; -import java.util.Random; import java.util.ResourceBundle; import javax.imageio.ImageIO; @@ -32,6 +31,7 @@ import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import org.artisanlogiciel.games.maze.gui.MazeSettings; import org.artisanlogiciel.games.stl.Wall3d; import org.artisanlogiciel.util.UTF8Control; @@ -46,7 +46,7 @@ public class Display extends JFrame { // to please eclipse, not supposed to be serialized private static final long serialVersionUID = 8500214871372184418L; - final static ResourceBundle labels = ResourceBundle.getBundle("LabelsBundle", Locale.getDefault(), Display.class.getClassLoader(), new UTF8Control()); + public final static ResourceBundle labels = ResourceBundle.getBundle("LabelsBundle", Locale.getDefault(), Display.class.getClassLoader(), new UTF8Control()); MazeComponent maze; MazeControler controler; @@ -97,7 +97,7 @@ public class Display extends JFrame { void recreateModel() { // recreate labyrinth if (params != null) { - params = controler.getSettings().getParams(); + params = controler.getSettings().resetParams(); // DON'T keep current model... // TODO control SEED. model = new LabyModel(params); @@ -120,7 +120,7 @@ public class Display extends JFrame { void resetModel() { // recreate labyrinth if (params != null) { - params = controler.getSettings().getParams(); + params = controler.getSettings().resetParams(); model = new LabyModel(params); maze.resetWallsProvider(model); model.setMazeListener(maze); @@ -301,58 +301,6 @@ public class Display extends JFrame { } } - private class MazeSettings extends JPanel { - MazeParams params; - - JTextField textWidth = null; - JTextField textHeight = null; - JTextField textDepth = 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) { - JButton buttonReset = new JButton("reset");//labels.getString("reset")); - buttonReset.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent evt) { - resetModel(); - } - }); - add(buttonReset); - - } - if (params != null) { - JLabel widthLabel = new JLabel(labels.getString("width")); - textWidth = new JTextField("0" + params.getWidth()); - add(widthLabel); - add(textWidth); - JLabel heightLabel = new JLabel(labels.getString("height")); - textHeight = new JTextField("0" + params.getHeight()); - add(heightLabel); - add(textHeight); - JLabel depthLabel = new JLabel(labels.getString("depth")); - textDepth = new JTextField("0" + params.getMaxDepth()); - add(depthLabel); - add(textDepth); - } - } - - public MazeParams getParams() { - return new MazeParamsFixed(params.getSaveDir(), - Integer.parseInt(textWidth.getText()), - Integer.parseInt(textHeight.getText()), - Integer.parseInt(textDepth.getText()), - new Random().nextLong() - ); - } - - } - private class MazeControler extends JPanel { /** @@ -457,6 +405,14 @@ public class Display extends JFrame { resolveQuitBar.add(quitButton); + JButton buttonReset = new JButton("reset");//labels.getString("reset")); + buttonReset.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent evt) { + resetModel(); + } + }); + resolveQuitBar.add(buttonReset); + return resolveQuitBar; } diff --git a/java/org/artisanlogiciel/games/maze/gui/MazeSettings.java b/java/org/artisanlogiciel/games/maze/gui/MazeSettings.java new file mode 100644 index 0000000..71ca0c9 --- /dev/null +++ b/java/org/artisanlogiciel/games/maze/gui/MazeSettings.java @@ -0,0 +1,57 @@ +package org.artisanlogiciel.games.maze.gui; + +import org.artisanlogiciel.games.Display; +import org.artisanlogiciel.games.MazeParams; +import org.artisanlogiciel.games.MazeParamsFixed; + +import javax.swing.*; +import java.util.Random; + +public class MazeSettings extends JPanel { + MazeParams params; + + JTextField textWidth = null; + JTextField textHeight = null; + JTextField textDepth = null; + JTextField textSeed = 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) { + 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); + } + } + + 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; + } + +} diff --git a/lang/LabelsBundle.properties b/lang/LabelsBundle.properties index c1691a5..c63ec24 100644 --- a/lang/LabelsBundle.properties +++ b/lang/LabelsBundle.properties @@ -9,4 +9,5 @@ resolve = Resolve create = Create save = Save quit = Quit -title = A Maz ing \ No newline at end of file +title = A Maz ing +seed = seed \ No newline at end of file diff --git a/lang/LabelsBundle_fr.properties b/lang/LabelsBundle_fr.properties index a85b857..118f33f 100644 --- a/lang/LabelsBundle_fr.properties +++ b/lang/LabelsBundle_fr.properties @@ -9,4 +9,5 @@ resolve = Résoudre create = Créer save = Sauver quit = Quitter -title = La Bireinte \ No newline at end of file +title = La Bireinte +seed = graine \ No newline at end of file