From 9e107c849f2d5d4e4585950ac3805e59c6f345ff Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Tue, 5 Apr 2016 20:09:07 +0100 Subject: [PATCH] Initial work on the new in game wiki --- .../manual/designer/ManualCatergories.java | 14 ++++ .../manual/designer/ManualDesigner.java | 72 +++++++++++++++++++ .../manual/designer/exporter/Exporter.java | 14 ++++ .../windows/MainWindowController.java | 33 +++++++++ .../techreborn/manual/saveFormat/Entry.java | 20 ++++++ .../manual/saveFormat/EntryData.java | 15 ++++ .../manual/saveFormat/ManualFormat.java | 17 +++++ .../manual/saveFormat/MetaData.java | 12 ++++ .../assets/techreborn/designer/Roadmap.txt | 8 +++ .../techreborn/designer/mainWindow.fxml | 63 ++++++++++++++++ 10 files changed, 268 insertions(+) create mode 100644 src/main/java/techreborn/manual/designer/ManualCatergories.java create mode 100644 src/main/java/techreborn/manual/designer/ManualDesigner.java create mode 100644 src/main/java/techreborn/manual/designer/exporter/Exporter.java create mode 100644 src/main/java/techreborn/manual/designer/windows/MainWindowController.java create mode 100644 src/main/java/techreborn/manual/saveFormat/Entry.java create mode 100644 src/main/java/techreborn/manual/saveFormat/EntryData.java create mode 100644 src/main/java/techreborn/manual/saveFormat/ManualFormat.java create mode 100644 src/main/java/techreborn/manual/saveFormat/MetaData.java create mode 100644 src/main/resources/assets/techreborn/designer/Roadmap.txt create mode 100644 src/main/resources/assets/techreborn/designer/mainWindow.fxml diff --git a/src/main/java/techreborn/manual/designer/ManualCatergories.java b/src/main/java/techreborn/manual/designer/ManualCatergories.java new file mode 100644 index 000000000..858f88836 --- /dev/null +++ b/src/main/java/techreborn/manual/designer/ManualCatergories.java @@ -0,0 +1,14 @@ +package techreborn.manual.designer; + +import javafx.scene.control.TreeItem; + +/** + * Created by Mark on 05/04/2016. + */ +public class ManualCatergories { + + //Top level + public static TreeItem contents; + public static TreeItem blocks; + public static TreeItem items; +} diff --git a/src/main/java/techreborn/manual/designer/ManualDesigner.java b/src/main/java/techreborn/manual/designer/ManualDesigner.java new file mode 100644 index 000000000..142b0e4a0 --- /dev/null +++ b/src/main/java/techreborn/manual/designer/ManualDesigner.java @@ -0,0 +1,72 @@ +package techreborn.manual.designer; + +import javafx.application.Application; +import javafx.beans.value.ChangeListener; +import javafx.beans.value.ObservableValue; +import javafx.fxml.FXMLLoader; +import javafx.fxml.JavaFXBuilderFactory; +import javafx.scene.Parent; +import javafx.scene.Scene; +import javafx.scene.control.TreeItem; +import javafx.scene.image.Image; +import javafx.stage.Stage; +import techreborn.manual.designer.windows.MainWindowController; + +import java.net.URL; + +/** + * Created by Mark on 05/04/2016. + */ +public class ManualDesigner extends Application { + + public static void main(String[] args) { + launch(args); + } + + @Override + public void start(Stage primaryStage) throws Exception { + ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); + URL fxmlUrl = classLoader.getResource("assets/techreborn/designer/mainWindow.fxml"); + + FXMLLoader fxmlLoader = new FXMLLoader(); + fxmlLoader.setLocation(fxmlUrl); + fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory()); + + Parent root = fxmlLoader.load(fxmlUrl.openStream()); + Scene scene = new Scene(root,900, 550); + primaryStage.setTitle("TechReborn Manual Designer"); + primaryStage.setScene(scene); + primaryStage.show(); + MainWindowController controller = fxmlLoader.getController(); + + ManualCatergories.contents = new TreeItem<>("Contents"); + ManualCatergories.contents.setExpanded(true); + + ManualCatergories.blocks = new TreeItem<>("Blocks"); + + ManualCatergories.contents.getChildren().add(ManualCatergories.blocks); + + ManualCatergories.items = new TreeItem<>("Items"); + ManualCatergories.contents.getChildren().add(ManualCatergories.items); + + controller.treeList.setRoot(ManualCatergories.contents); + + controller.treeList.getSelectionModel().selectedItemProperty().addListener( new ChangeListener() { + + @Override + public void changed(ObservableValue observable, Object oldValue, + Object newValue) { + TreeItem selectedItem = (TreeItem) newValue; + //TODO things if needed + } + }); + + controller.image.setImage(new Image("assets/techreborn/textures/manual/gui/manual.png")); + controller.image.setPreserveRatio(true); + controller.image.setSmooth(true); + controller.image.setCache(true); + controller.image.setFitHeight(1000); + controller.image.setFitWidth(1000); + controller.image.fitWidthProperty().bind(controller.renderPane.widthProperty()); + } +} diff --git a/src/main/java/techreborn/manual/designer/exporter/Exporter.java b/src/main/java/techreborn/manual/designer/exporter/Exporter.java new file mode 100644 index 000000000..4fdf1b299 --- /dev/null +++ b/src/main/java/techreborn/manual/designer/exporter/Exporter.java @@ -0,0 +1,14 @@ +package techreborn.manual.designer.exporter; + +/** + * Created by Mark on 05/04/2016. + */ +public class Exporter { + + public static void export(){ + + //TODO things + } + + +} diff --git a/src/main/java/techreborn/manual/designer/windows/MainWindowController.java b/src/main/java/techreborn/manual/designer/windows/MainWindowController.java new file mode 100644 index 000000000..ceb7e6c6f --- /dev/null +++ b/src/main/java/techreborn/manual/designer/windows/MainWindowController.java @@ -0,0 +1,33 @@ +package techreborn.manual.designer.windows; + +import javafx.event.Event; +import javafx.scene.control.Button; +import javafx.scene.control.MenuBar; +import javafx.scene.control.SplitPane; +import javafx.scene.control.TextArea; +import javafx.scene.control.TreeItem; +import javafx.scene.control.TreeView; +import javafx.scene.image.ImageView; +import javafx.scene.layout.AnchorPane; + +/** + * Created by Mark on 05/04/2016. + */ +public class MainWindowController { + public MenuBar menuBar; + public SplitPane splitPane; + public TreeView treeList; + public ImageView image; + public AnchorPane renderPane; + public Button buttonNew; + public TextArea textInput; + + public void newItem(Event event) { + if(treeList.getSelectionModel().getSelectedItem() instanceof TreeItem){ + TreeItem item = (TreeItem) treeList.getSelectionModel().getSelectedItem(); + item.getChildren().add(new TreeItem("hi")); + item.setExpanded(true); + } + + } +} diff --git a/src/main/java/techreborn/manual/saveFormat/Entry.java b/src/main/java/techreborn/manual/saveFormat/Entry.java new file mode 100644 index 000000000..b1565e4b0 --- /dev/null +++ b/src/main/java/techreborn/manual/saveFormat/Entry.java @@ -0,0 +1,20 @@ +package techreborn.manual.saveFormat; + +/** + * Created by Mark on 05/04/2016. + */ +public class Entry { + + String registryName; + + MetaData meta; + + /** + * This says what type of page it is, crafting, image, ect + * + * //TODO use class name? + */ + String type; + + EntryData data; +} diff --git a/src/main/java/techreborn/manual/saveFormat/EntryData.java b/src/main/java/techreborn/manual/saveFormat/EntryData.java new file mode 100644 index 000000000..8aa2ee558 --- /dev/null +++ b/src/main/java/techreborn/manual/saveFormat/EntryData.java @@ -0,0 +1,15 @@ +package techreborn.manual.saveFormat; + +import java.util.HashMap; + +/** + * Created by Mark on 05/04/2016. + */ +public class EntryData { + + /** + * Use this to store data for a page + */ + HashMap data; + +} diff --git a/src/main/java/techreborn/manual/saveFormat/ManualFormat.java b/src/main/java/techreborn/manual/saveFormat/ManualFormat.java new file mode 100644 index 000000000..851c1166f --- /dev/null +++ b/src/main/java/techreborn/manual/saveFormat/ManualFormat.java @@ -0,0 +1,17 @@ +package techreborn.manual.saveFormat; + +import java.util.List; + +/** + * Created by Mark on 05/04/2016. + */ +public class ManualFormat { + + String name; + + String modId; + + List blocks; + + List items; +} diff --git a/src/main/java/techreborn/manual/saveFormat/MetaData.java b/src/main/java/techreborn/manual/saveFormat/MetaData.java new file mode 100644 index 000000000..9858aa626 --- /dev/null +++ b/src/main/java/techreborn/manual/saveFormat/MetaData.java @@ -0,0 +1,12 @@ +package techreborn.manual.saveFormat; + +/** + * Created by Mark on 05/04/2016. + */ +public class MetaData { + + int startMeta; + + int endMeta; + +} diff --git a/src/main/resources/assets/techreborn/designer/Roadmap.txt b/src/main/resources/assets/techreborn/designer/Roadmap.txt new file mode 100644 index 000000000..3ef631a3d --- /dev/null +++ b/src/main/resources/assets/techreborn/designer/Roadmap.txt @@ -0,0 +1,8 @@ +Save pages as json files: + List page, that has a list of sub pages + Crafting page + Picture Page +Language support +Automatic deploy from a git repo +Versioning to allow diffrent mod versions, also dev version +Basic validator on save and deploy \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/designer/mainWindow.fxml b/src/main/resources/assets/techreborn/designer/mainWindow.fxml new file mode 100644 index 000000000..614cfe2dc --- /dev/null +++ b/src/main/resources/assets/techreborn/designer/mainWindow.fxml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +