diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..2b63946
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 35eb1dd..94a25f7 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index bfc4bd3..f7bc444 100644
--- a/pom.xml
+++ b/pom.xml
@@ -175,7 +175,7 @@
default-cli
- net.gneisscode.nbttocsv.JFXHack
+ net.gneisscode.nbttocsv.JavaFXThings.JFXHack
app
app
app
@@ -195,7 +195,7 @@
true
lib/
- net.gneisscode.nbttocsv.JFXHack
+ net.gneisscode.nbttocsv.JavaFXThings.JFXHack
@@ -205,13 +205,13 @@
maven-shade-plugin
3.5.2
-
-
- true
- lib/
- net.gneisscode.nbttocsv.JFXHack
-
-
+
+
+
+
+
+
+
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 111e372..b0ae2aa 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -17,8 +17,11 @@
requires org.apache.commons.lang3;
requires NBT;
requires com.opencsv;
+ requires java.desktop;
opens net.gneisscode.nbttocsv to javafx.fxml;
exports net.gneisscode.nbttocsv;
exports net.gneisscode.nbttocsv.utils;
+ exports net.gneisscode.nbttocsv.JavaFXThings;
+ opens net.gneisscode.nbttocsv.JavaFXThings to javafx.fxml;
}
\ No newline at end of file
diff --git a/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java b/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java
index e34473c..1d90eab 100644
--- a/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java
+++ b/src/main/java/net/gneisscode/nbttocsv/FunctionConverter.java
@@ -67,7 +67,7 @@ public static String getExecuteCommand(BlockContainer fromBlock, boolean relativ
* @return The formatted function file
*/
public static String getStructureBuildStartFunction(String functionName){
- URL defaultFunction = FunctionConverter.class.getResource("/net/gneisscode/nbttocsv/buid_start.txt");
+ URL defaultFunction = FunctionConverter.class.getResource("buid_start.txt");
if (defaultFunction == null) {
return "ERROR";
}
diff --git a/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java b/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java
index 9b00f8c..ace653a 100644
--- a/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java
+++ b/src/main/java/net/gneisscode/nbttocsv/HelloApplication.java
@@ -11,6 +11,7 @@
import net.gneisscode.nbttocsv.utils.Util;
import net.querz.nbt.tag.*;
+import org.kordamp.bootstrapfx.BootstrapFX;
public class HelloApplication extends Application {
@@ -22,10 +23,16 @@ public class HelloApplication extends Application {
@Override
public void start(Stage stage) throws IOException {
FXMLLoader fxmlLoader = new FXMLLoader(HelloApplication.class.getResource("hello-view.fxml"));
- Scene scene = new Scene(fxmlLoader.load(), 320, 350);
- stage.setTitle("NBT to CSV");
+ Scene scene = new Scene(fxmlLoader.load(), 450, 350);
+
+
+ scene.getStylesheets().add(BootstrapFX.bootstrapFXStylesheet());
+
+
+
stage.setScene(scene);
+ stage.setTitle("NBT to CSV");
stage.show();
}
diff --git a/src/main/java/net/gneisscode/nbttocsv/HelloController.java b/src/main/java/net/gneisscode/nbttocsv/HelloController.java
index c1e6dea..cfbaf98 100644
--- a/src/main/java/net/gneisscode/nbttocsv/HelloController.java
+++ b/src/main/java/net/gneisscode/nbttocsv/HelloController.java
@@ -2,20 +2,21 @@
import com.opencsv.CSVWriter;
import com.opencsv.CSVWriterBuilder;
-import javafx.animation.Timeline;
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.event.Event;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
+import javafx.scene.control.Button;
import javafx.scene.control.Label;
-import javafx.scene.control.TextArea;
+import javafx.scene.control.TabPane;
import javafx.scene.control.TextField;
import net.querz.nbt.tag.CompoundTag;
import org.controlsfx.control.ToggleSwitch;
-import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;
-import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -25,12 +26,18 @@
public class HelloController implements Initializable {
@FXML
- public Label outputCsvButton;
+ public Label outputCsvInfo;
@FXML
public ToggleSwitch writeAir;
@FXML
public TextField csvPathInput;
@FXML
+ public Button inputButton;
+ @FXML
+ public Label outputCsvTitle;
+ @FXML
+ public TabPane fullPanel;
+ @FXML
private Label welcomeText;
@FXML
@@ -62,10 +69,12 @@ protected void onOutputClick(){
if(HelloApplication.BLOCKS.isEmpty())
return;
+ ArrayList blocks = new ArrayList<>();
+
for(BlockContainer block : HelloApplication.BLOCKS){
block.resolve();
- if(!writeAir.isSelected())
- HelloApplication.BLOCKS.remove(block);
+ if(!writeAir.isSelected() && !block.location.equals("minecraft:air"))
+ blocks.add(block);
}
FileWriter outputFile = null;
@@ -73,7 +82,7 @@ protected void onOutputClick(){
outputFile = new FileWriter(FileSystems.getDefault().getPath(csvPathInput.getText()).toFile());
} catch (IOException e) {
- outputCsvButton.setText("Path invalid!");
+ outputCsvInfo.setText("Path invalid!");
throw new RuntimeException(e);
}
@@ -83,7 +92,7 @@ protected void onOutputClick(){
int longestRow = 0;
ArrayList lines = new ArrayList<>();
- for(BlockContainer b : HelloApplication.BLOCKS){
+ for(BlockContainer b : blocks){
ArrayList row = b.getCsvRow();
@@ -100,7 +109,7 @@ protected void onOutputClick(){
outputWriter.writeNext(header.toArray(new String[0]));
outputWriter.writeAll(lines);
- outputCsvButton.setText("Successfully written!");
+ outputCsvInfo.setText("Successfully written!");
try {
outputWriter.close();
} catch (IOException e) {
@@ -109,11 +118,32 @@ protected void onOutputClick(){
}
+ private ChangeListener listener;
+
@FXML
private TextField inputArea;
@Override
public void initialize(URL url, ResourceBundle resourceBundle) {
- outputCsvButton.setText("Output controls");
+ fullPanel.setStyle("-fx-focus-color: transparent; -fx-faint-focus-color: transparent;");
+
+// inputButton.getStyleClass().setAll("btn","btn-danger");
+ inputArea.setPrefHeight(30);
+ csvPathInput.setPrefHeight(30);
+
+ listener = new ChangeListener() {
+ @Override
+ public void changed(ObservableValue extends Boolean> observable, Boolean oldValue, Boolean newValue) {
+ writeAir.setText("Write air states to CSV: " + (newValue ? "Yes" : "No"));
+
+ }
+
+ };
+ writeAir.selectedProperty().addListener(listener);
+ }
+
+ public void onFunctionTabSelected(Event event) {
+
+
}
}
\ No newline at end of file
diff --git a/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/DissapearingLableTextField.java b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/DissapearingLableTextField.java
new file mode 100644
index 0000000..591d1fd
--- /dev/null
+++ b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/DissapearingLableTextField.java
@@ -0,0 +1,19 @@
+package net.gneisscode.nbttocsv.JavaFXThings;
+
+import javafx.beans.value.ChangeListener;
+import javafx.beans.value.ObservableValue;
+import javafx.scene.control.TextField;
+
+public class DissapearingLableTextField extends TextField {
+ DissapearingLableTextField(){
+ this("");
+ }
+
+ DissapearingLableTextField(String text){
+ super(text);
+
+
+ }
+
+
+}
diff --git a/src/main/java/net/gneisscode/nbttocsv/JFXHack.java b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/JFXHack.java
similarity index 54%
rename from src/main/java/net/gneisscode/nbttocsv/JFXHack.java
rename to src/main/java/net/gneisscode/nbttocsv/JavaFXThings/JFXHack.java
index be9bf85..92d9fad 100644
--- a/src/main/java/net/gneisscode/nbttocsv/JFXHack.java
+++ b/src/main/java/net/gneisscode/nbttocsv/JavaFXThings/JFXHack.java
@@ -1,4 +1,6 @@
-package net.gneisscode.nbttocsv;
+package net.gneisscode.nbttocsv.JavaFXThings;
+
+import net.gneisscode.nbttocsv.HelloApplication;
public class JFXHack {
public static void main(String[] args){
diff --git a/src/main/resources/net/gneisscode/nbttocsv/default-thingies.css b/src/main/resources/net/gneisscode/nbttocsv/default-thingies.css
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/src/main/resources/net/gneisscode/nbttocsv/default-thingies.css
@@ -0,0 +1,2 @@
+
+
diff --git a/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml b/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml
index 34fe813..becf95f 100644
--- a/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml
+++ b/src/main/resources/net/gneisscode/nbttocsv/hello-view.fxml
@@ -8,17 +8,46 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+