diff options
Diffstat (limited to 'src/devmenu/LevelEditor.java')
-rw-r--r-- | src/devmenu/LevelEditor.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/devmenu/LevelEditor.java b/src/devmenu/LevelEditor.java new file mode 100644 index 0000000..00a21a3 --- /dev/null +++ b/src/devmenu/LevelEditor.java @@ -0,0 +1,77 @@ +package devmenu; + +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.collections.FXCollections; +import javafx.collections.ObservableList; +import javafx.scene.Scene; +import javafx.scene.control.Button; +import javafx.scene.control.ColorPicker; +import javafx.scene.control.ListView; +import javafx.scene.control.TextField; +import javafx.scene.layout.HBox; +import javafx.scene.layout.VBox; +import javafx.scene.text.Text; +import javafx.stage.Stage; +import main.Difficulty; +import main.Level; + +public class LevelEditor +{ + public LevelEditor(Level level) + { + Text folderNameLabel = new Text("Folder name"); + TextField folderName = new TextField(level.thisDir.getName()); + + Text titleLabel = new Text("Title"); + TextField title = new TextField(level.getTitle()); + + Text artistLabel = new Text("Artist"); + TextField artist = new TextField(level.getArtist()); + + Text descLabel = new Text("Description"); + TextField desc = new TextField(level.desc); + + Text colorsLabel = new Text("Colors (Left to right)"); + ColorPicker c1 = new ColorPicker(level.colors[0]); + ColorPicker c2 = new ColorPicker(level.colors[1]); + ColorPicker c3 = new ColorPicker(level.colors[2]); + ColorPicker c4 = new ColorPicker(level.colors[3]); + ColorPicker c5 = new ColorPicker(level.colors[4]); + + ObservableList diffList2 = FXCollections.observableArrayList(); + diffList2.addAll(level.getDiffList()); + ListView<Difficulty> diffList = new ListView(); + diffList.setItems(diffList2); + diffList.setOnMouseClicked(e -> new DiffEditor(diffList.getSelectionModel().getSelectedItem())); + + Text diffLabel = new Text("Difficulties"); + + TextField newDiff = new TextField("new"); + Button newDiffButton = new Button("add"); + newDiffButton.setOnAction(e -> level.addDiff(newDiff.getText())); + HBox newDiffBox = new HBox(); + newDiffBox.getChildren().addAll(newDiff,newDiffButton); + + Button save = new Button("Save"); + save.setOnAction(e -> { + level.setTitle(title.getText()); + level.setArtist(artist.getText()); + level.desc = desc.getText(); + level.colors[0] = c1.getValue(); + level.colors[1] = c2.getValue(); + level.colors[2] = c3.getValue(); + level.colors[3] = c4.getValue(); + level.colors[4] = c5.getValue(); + level.writeMetadata(); + }); + + VBox main = new VBox(); + main.getChildren().addAll(folderNameLabel,folderName,titleLabel,title,artistLabel,artist,descLabel,desc,colorsLabel,c1,c2,c3,c4,c5,diffLabel,diffList,newDiffBox,save); + + Stage primaryStage = new Stage(); + Scene scene = new Scene(main); + primaryStage.setScene(scene); + primaryStage.show(); + } +}
\ No newline at end of file |