moved designer to its own repo

This commit is contained in:
modmuss50 2016-04-17 11:48:01 +01:00
parent a5cd7e38df
commit e62bcc215e
No known key found for this signature in database
GPG key ID: C69B0D76D1E5F55C
11 changed files with 0 additions and 659 deletions

View file

@ -45,9 +45,6 @@ repositories {
configurations {
shade
compile.extendsFrom shade
designershade
compile.extendsFrom designershade
}
@ -86,12 +83,6 @@ dependencies {
compile 'RebornCore:RebornCore-1.9:2.0.5.+:dev'
deobfCompile "mezz.jei:jei_1.9:+"
deobfCompile 'MCMultiPart:MCMultiPart-experimental:1.1.0_55:universal'
//For manual designer!
designershade 'org.zeroturnaround:zt-zip:1.9'
designershade 'org.slf4j:slf4j-api:1.7.21'
designershade 'org.slf4j:slf4j-simple:1.7.21'
}
@ -122,25 +113,6 @@ task deobfJar(type: Jar) {
classifier = 'dev'
}
task designerJar(type: Jar) {
from sourceSets.main.output
classifier = 'designer'
include "techreborn/manual/designer/**"
include "techreborn/manual/saveFormat/**"
include "assets/techreborn/designer/**"
include "assets/techreborn/textures/manual/**"
//Deps
include "org/slf4j/**"
include "org/zeroturnaround/zip/**"
manifest { attributes 'Main-Class': 'techreborn.manual.designer.ManualDesigner' }
configurations.designershade.each { dep ->
from(project.zipTree(dep)){
exclude 'META-INF', 'META-INF/**', '**/*.java'
}
}
}
jar {
exclude "**/*.psd"
@ -163,12 +135,10 @@ task apiJar(type: Jar) {
}
apiJar.mustRunAfter deobfJar
designerJar.mustRunAfter apiJar
artifacts {
archives deobfJar
archives apiJar
archives designerJar
}
build.dependsOn deobfJar, apiJar, designerJar

View file

@ -1,14 +0,0 @@
package techreborn.manual.designer;
import javafx.scene.control.TreeItem;
/**
* Created by Mark on 05/04/2016.
*/
public class ManualCatergories {
//Top level
public static TreeItem<String> contents;
public static TreeItem<String> blocks;
public static TreeItem<String> items;
}

View file

@ -1,139 +0,0 @@
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.Alert;
import javafx.scene.control.TreeItem;
import javafx.scene.image.Image;
import javafx.stage.Stage;
import techreborn.manual.designer.fileUtils.SaveSystem;
import techreborn.manual.designer.windows.MainWindowController;
import techreborn.manual.saveFormat.Entry;
import java.io.File;
import java.net.URL;
/**
* Created by Mark on 05/04/2016.
*/
public class ManualDesigner extends Application {
public static Stage stage;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
stage = primaryStage;
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<String> selectedItem = (TreeItem<String>) newValue;
boolean isValid = !SaveSystem.entries.containsKey(selectedItem);
controller.textInput.setDisable(isValid);
controller.nameTextArea.setDisable(isValid);
if(!isValid){
if(SaveSystem.entries.containsKey(selectedItem)){
Entry entry = SaveSystem.entries.get(selectedItem);
controller.pageimage.setVisible(false);
if(entry.data != null && entry.data.data != null){
if(entry.data.data.containsKey("text")){
controller.textInput.setText(entry.data.data.get("text"));
}
if(entry.data.data.containsKey("image")){
controller.imageTextArea.setText(entry.data.data.get("image"));
if(SaveSystem.lastSave != null){
File imagesDir = new File(SaveSystem.lastSave, "images");
if(imagesDir.exists()){
File image = new File(imagesDir, entry.data.data.get("image") + ".png");
if(image.exists()){
controller.pageimage.setImage(new Image(image.toURI().toString()));
controller.pageimage.setVisible(true);
}
}
}
} else {
controller.imageTextArea.setText("");
}
//TODO Improve this
} else {
controller.textInput.setText("");
controller.imageTextArea.setText("");
}
if(entry.type.equalsIgnoreCase("image")){
controller.imageTextArea.setDisable(false);
} else {
controller.imageTextArea.setDisable(true);
}
controller.infoLabel.setText("Settings: " + entry.type);
controller.nameTextArea.setText(entry.registryName);
}
}
}
});
controller.textInput.setDisable(false);
controller.nameTextArea.setDisable(false);
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());
controller.image.fitHeightProperty().bind(controller.renderPane.heightProperty());
controller.pageimage.setPreserveRatio(true);
controller.pageimage.setSmooth(true);
controller.pageimage.setCache(true);
controller.pageimage.setFitHeight(1000);
controller.pageimage.setFitWidth(1000);
controller.pageimage.fitWidthProperty().bind(controller.renderPane.widthProperty());
controller.pageimage.fitHeightProperty().bind(controller.renderPane.heightProperty());
controller.load();
Alert alert = new Alert(Alert.AlertType.INFORMATION);
alert.setTitle("Info Dialog");
alert.setHeaderText("This is not how to run the mod!");
alert.setContentText("If you are trying to play with TechReborn in you minecraft world, this is NOT how you do it. You have the wrong jar file or you are doing something very wrong. Go and download the universal jar file and put it in the mods folder");
alert.show();
}
}

View file

@ -1,14 +0,0 @@
package techreborn.manual.designer.exporter;
/**
* Created by Mark on 16/04/2016.
*/
public class DownloadablePackageInfo {
PackageInfo packageInfo;
String md5;
String fileName;
}

View file

@ -1,96 +0,0 @@
package techreborn.manual.designer.exporter;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.zeroturnaround.zip.ZipUtil;
import reborncore.shields.json.ShieldJsonLoader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by Mark on 16/04/2016.
*/
public class Exporter {
public static void main(String[] args) throws Exception {
run(args);
}
public static void run(String[] arg) throws Exception {
if(arg.length < 2){
System.out.println("Error incorrect arguments!");
System.exit(-1);
}
File input = new File(arg[0]);
File output = new File(arg[1]);
if(!input.exists()){
System.out.println("that input file does not exist!");
System.exit(-1);
}
if(!output.exists()){
System.out.println("that output file does not exist!");
System.exit(-1);
}
File inputMaster = new File(input, "master.json");
if(!inputMaster.exists()){
System.out.println("That input is not valid! no master.json file found");
System.exit(-1);
}
File inputData = new File(input, "data.json");
if(!inputData.exists()){
System.out.println("That input is not valid! no data.json file found");
System.exit(-1);
}
Gson gson = new GsonBuilder().setPrettyPrinting().create();
File webJson = new File(output, "versions.json");
VersionsInfo versions = null;
if(webJson.exists()){
BufferedReader reader = new BufferedReader(new FileReader(webJson));
versions = gson.fromJson(reader, VersionsInfo.class);
} else {
versions = new VersionsInfo();
versions.versions = new ArrayList<>();
versions.name = "TechReborn";
}
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.SSS");
versions.lastUpdated = dateFormat.format(new Date());
BufferedReader reader = new BufferedReader(new FileReader(inputData));
PackageInfo info = gson.fromJson(reader, PackageInfo.class);
DownloadablePackageInfo downloadablePackageInfo = new DownloadablePackageInfo();
downloadablePackageInfo.packageInfo = info;
File packages = new File(output, "packages");
if(!packages.exists()){
packages.mkdir();
}
dateFormat = new SimpleDateFormat("dd-MM-yyyy-HH-mm-ss-SSS");
File outputFile = new File(packages, versions.name + dateFormat.format(new Date()) + ".zip");
ZipUtil.pack(input, outputFile);
downloadablePackageInfo.fileName = outputFile.getName();
downloadablePackageInfo.md5 = ShieldJsonLoader.getMD5(outputFile);
List<DownloadablePackageInfo> savedVersions = versions.versions;
versions.versions = new ArrayList<>();
versions.versions.add(downloadablePackageInfo);
versions.versions.addAll(savedVersions);
String json = gson.toJson(versions);
FileWriter writer = new FileWriter(webJson);
writer.write(json);
writer.close();
System.out.println("Done!");
System.exit(0);
}
}

View file

@ -1,14 +0,0 @@
package techreborn.manual.designer.exporter;
/**
* Created by Mark on 16/04/2016.
*/
public class PackageInfo {
public String name;
public String version;
public String language;
}

View file

@ -1,16 +0,0 @@
package techreborn.manual.designer.exporter;
import java.util.List;
/**
* Created by Mark on 16/04/2016.
*/
public class VersionsInfo {
String name;
String lastUpdated;
List<DownloadablePackageInfo> versions;
}

View file

@ -1,65 +0,0 @@
package techreborn.manual.designer.fileUtils;
import com.google.gson.Gson;
import javafx.scene.control.Alert;
import javafx.scene.control.TreeItem;
import javafx.stage.DirectoryChooser;
import techreborn.manual.designer.ManualCatergories;
import techreborn.manual.designer.ManualDesigner;
import techreborn.manual.saveFormat.Entry;
import techreborn.manual.saveFormat.ManualFormat;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
/**
* Created by Mark on 05/04/2016.
*/
public class LoadSystem {
public static void load() throws FileNotFoundException {
DirectoryChooser fileChooser = new DirectoryChooser();
fileChooser.setTitle("Open Folder");
fileChooser.setInitialDirectory(new File("."));
File folder = fileChooser.showDialog(ManualDesigner.stage);
if(folder != null){
File masterJson = new File(folder, "master.json");
if(!masterJson.exists()){
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Could not find project");
alert.setHeaderText("Could not find project!");
alert.setContentText("Could not find the project in this directory!");
alert.show();
} else if(masterJson.getName().endsWith(".json")){
//Things
File imageDir = new File(folder, "images");
if(!imageDir.exists()){
imageDir.mkdir();
}
BufferedReader reader = new BufferedReader(new FileReader(masterJson));
Gson gson = new Gson();
ManualFormat format;
format = gson.fromJson(reader, ManualFormat.class);
for(Entry entry : format.entries){
System.out.println(entry.type);
TreeItem parentTree = null;
if(entry.category.equals(ManualCatergories.blocks.getValue())){
parentTree = ManualCatergories.blocks;
} else if(entry.category.equals(ManualCatergories.items.getValue())){
parentTree = ManualCatergories.items;
}
if(parentTree == null){
System.out.println("something bad happened");
}
TreeItem<String> newItem = new TreeItem<>(entry.name);
parentTree.getChildren().add(newItem);
parentTree.setExpanded(true);
SaveSystem.entries.put(newItem, entry);
}
SaveSystem.lastSave = folder;
}
}
}
}

View file

@ -1,67 +0,0 @@
package techreborn.manual.designer.fileUtils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import javafx.scene.control.TreeItem;
import javafx.stage.DirectoryChooser;
import techreborn.manual.designer.ManualDesigner;
import techreborn.manual.saveFormat.Entry;
import techreborn.manual.saveFormat.ManualFormat;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
* Created by Mark on 05/04/2016.
*/
public class SaveSystem {
public static HashMap<TreeItem, Entry> entries = new HashMap<>();
public static ManualFormat master;
public static File lastSave = null;
public static void export(){
List<Entry> entryList = new ArrayList<>(entries.values());
if(master == null){
master = new ManualFormat("TechReborn", "techreborn", entryList);
}
DirectoryChooser chooser = new DirectoryChooser();
chooser.setTitle("Select export location");
File openLocation = new File(".");
if(lastSave != null){
openLocation = lastSave;
}
chooser.setInitialDirectory(openLocation);
File selectedDirectory = chooser.showDialog(ManualDesigner.stage);
lastSave = selectedDirectory;
File imageDir = new File(selectedDirectory, "images");
if(!imageDir.exists()){
imageDir.mkdir();
}
File masterJson = new File(selectedDirectory, "master.json");
if(masterJson.exists()){
masterJson.delete();
}
if(selectedDirectory != null){
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String json = gson.toJson(master);
try {
FileWriter writer = new FileWriter(masterJson);
writer.write(json);
writer.close();
} catch (IOException e) {
System.out.println("something bad happened");
e.printStackTrace();
}
}
}
}

View file

@ -1,187 +0,0 @@
package techreborn.manual.designer.windows;
import javafx.event.ActionEvent;
import javafx.event.Event;
import javafx.scene.control.Button;
import javafx.scene.control.ChoiceDialog;
import javafx.scene.control.Label;
import javafx.scene.control.MenuBar;
import javafx.scene.control.SplitPane;
import javafx.scene.control.TextArea;
import javafx.scene.control.TextField;
import javafx.scene.control.TextInputDialog;
import javafx.scene.control.TreeItem;
import javafx.scene.control.TreeView;
import javafx.scene.image.ImageView;
import javafx.scene.layout.AnchorPane;
import techreborn.manual.designer.ManualCatergories;
import techreborn.manual.designer.fileUtils.LoadSystem;
import techreborn.manual.designer.fileUtils.SaveSystem;
import techreborn.manual.saveFormat.Entry;
import techreborn.manual.saveFormat.EntryData;
import java.awt.*;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Optional;
/**
* 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 Button buttonDelete;
public TextField nameTextArea;
public TextField imageTextArea;
public ImageView pageimage;
public Label infoLabel;
public void newItem(Event event) {
if(treeList.getSelectionModel().getSelectedItem() instanceof TreeItem){
TreeItem item = (TreeItem) treeList.getSelectionModel().getSelectedItem();
if(item == ManualCatergories.blocks || item == ManualCatergories.items){
TextInputDialog dialog = new TextInputDialog("");
dialog.setTitle("Name?");
dialog.setContentText("Name of item:");
Optional<String> result = dialog.showAndWait();
if(result.isPresent() && !result.get().isEmpty()){
TreeItem<String> newItem = new TreeItem<>(result.get());
Entry entry = new Entry();
entry.name = result.get();
ArrayList<String> choices = new ArrayList<>();
choices.add("Text");
choices.add("Image");
ChoiceDialog<String> choiceDialog = new ChoiceDialog<>("Text", choices);
choiceDialog.setTitle("Type?");
Optional<String> choiceResult = choiceDialog.showAndWait();
if(choiceResult.isPresent()){
System.out.println(choiceResult.get());
entry.type = choiceResult.get();
} else {
Toolkit.getDefaultToolkit().beep();
return;
}
entry.category = (String) item.getValue();
item.getChildren().add(newItem);
item.setExpanded(true);
SaveSystem.entries.put(newItem, entry);
} else {
Toolkit.getDefaultToolkit().beep();
}
} else {
Toolkit.getDefaultToolkit().beep();
}
}
}
public void deleteItem(Event event) {
if(treeList.getSelectionModel().getSelectedItem() instanceof TreeItem){
TreeItem item = (TreeItem) treeList.getSelectionModel().getSelectedItem();
TreeItem parent = item.getParent();
if(parent != null){
if(parent == ManualCatergories.blocks || parent == ManualCatergories.items){
parent.getChildren().remove(item);
} else {
Toolkit.getDefaultToolkit().beep();
}
}
}
}
public void save(ActionEvent actionEvent) {
SaveSystem.export();
}
public void open(ActionEvent actionEvent) {
try {
LoadSystem.load();
} catch (FileNotFoundException e) {
System.out.println("bad things happened");
e.printStackTrace();
}
}
public void close(ActionEvent actionEvent) {
//TODO checks to make sure its being saved
System.exit(0);
}
public void load(){
textInput.textProperty().addListener((observable, oldValue, newValue) -> {
textAreaChanged();
});
nameTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
nameChange();
});
imageTextArea.textProperty().addListener((observable, oldValue, newValue) -> {
imageAreaChanged();
});
}
public void textAreaChanged() {
if(!treeList.getSelectionModel().isEmpty()){
if(SaveSystem.entries.containsKey(treeList.getSelectionModel().getSelectedItem())){
Entry entry = SaveSystem.entries.get(treeList.getSelectionModel().getSelectedItem());
if(entry != null){
if(entry.data == null){
entry.data = new EntryData();
}
if(entry.data.data == null){
entry.data.data = new HashMap<>();
}
if(entry.data.data.containsKey("text")){
entry.data.data.replace("text", textInput.getText());
} else {
entry.data.data.put("text", textInput.getText());
}
}
SaveSystem.entries.replace((TreeItem) treeList.getSelectionModel().getSelectedItem(), entry);
}
}
}
public void imageAreaChanged() {
if(!treeList.getSelectionModel().isEmpty()){
if(SaveSystem.entries.containsKey(treeList.getSelectionModel().getSelectedItem())){
Entry entry = SaveSystem.entries.get(treeList.getSelectionModel().getSelectedItem());
if(entry != null){
if(entry.data == null){
entry.data = new EntryData();
}
if(entry.data.data == null){
entry.data.data = new HashMap<>();
}
if(entry.data.data.containsKey("image")){
entry.data.data.replace("image", imageTextArea.getText());
} else {
entry.data.data.put("image", imageTextArea.getText());
}
}
SaveSystem.entries.replace((TreeItem) treeList.getSelectionModel().getSelectedItem(), entry);
}
}
}
public void nameChange() {
if(!treeList.getSelectionModel().isEmpty()){
if(SaveSystem.entries.containsKey(treeList.getSelectionModel().getSelectedItem())){
Entry entry = SaveSystem.entries.get(treeList.getSelectionModel().getSelectedItem());
if(entry != null){
entry.registryName = nameTextArea.getText();
SaveSystem.entries.replace((TreeItem) treeList.getSelectionModel().getSelectedItem(), entry);
}
}
}
}
}

View file

@ -1,17 +0,0 @@
{
"name": "TechReborn",
"modId": "techreborn",
"entries": [
{
"name": "Quantum Chest",
"registryName": "techreborn:techreborn.quantumChest",
"type": "Text",
"category": "Blocks",
"data": {
"data": {
"text": "The quantum chest can store a lot of items"
}
}
}
]
}