added exporter

This commit is contained in:
modmuss50 2016-04-16 20:28:11 +01:00
parent 55739cdb98
commit 8de90e6209
No known key found for this signature in database
GPG key ID: C69B0D76D1E5F55C
7 changed files with 184 additions and 6 deletions

View file

@ -45,8 +45,12 @@ repositories {
configurations {
shade
compile.extendsFrom shade
designershade
compile.extendsFrom designershade
}
version = "1.0.5"
def ENV = System.getenv()
@ -82,6 +86,12 @@ 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'
}
@ -119,7 +129,17 @@ task designerJar(type: Jar) {
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 {

View file

@ -16,6 +16,7 @@ import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextComponentString;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fml.common.registry.GameData;
import net.minecraftforge.fml.common.registry.GameRegistry;
import reborncore.api.fuel.FluidPowerManager;
import reborncore.api.recipe.RecipeHandler;
@ -91,11 +92,13 @@ public class TechRebornDevCommand extends CommandBase
} else if ("getname".equals(args[0])) {
EntityPlayer player = (EntityPlayer) sender;
if (player.getHeldItem(EnumHand.MAIN_HAND) != null) {
Block block = Block.getBlockFromItem(player.getHeldItem(EnumHand.MAIN_HAND).getItem());
if (block != null && block != Blocks.air) {
sender.addChatMessage(new TextComponentString(GameData.getBlockRegistry().getNameForObject(block) + " with a meta of " + player.getHeldItem(EnumHand.MAIN_HAND).getItemDamage()));
if(GameData.getItemRegistry().containsValue(player.getHeldItem(EnumHand.MAIN_HAND).getItem())){
sender.addChatMessage(new TextComponentString(GameData.getItemRegistry().getNameForObject(player.getHeldItem(EnumHand.MAIN_HAND).getItem()) + ":" + player.getHeldItem(EnumHand.MAIN_HAND).getItemDamage()));
} else {
((EntityPlayer) sender).addChatComponentMessage(new TextComponentString("hold a Block!"));
Block block = Block.getBlockFromItem(player.getHeldItem(EnumHand.MAIN_HAND).getItem());
if (block != null && block != Blocks.air) {
sender.addChatMessage(new TextComponentString(GameData.getBlockRegistry().getNameForObject(block) + ":" + player.getHeldItem(EnumHand.MAIN_HAND).getItemDamage()));
}
}
} else {
((EntityPlayer) sender).addChatComponentMessage(new TextComponentString("hold an item!"));

View file

@ -11,11 +11,14 @@ import javafx.scene.control.Alert;
import javafx.scene.control.TreeItem;
import javafx.scene.image.Image;
import javafx.stage.Stage;
import techreborn.manual.designer.exporter.Exporter;
import techreborn.manual.designer.fileUtils.SaveSystem;
import techreborn.manual.designer.windows.MainWindowController;
import techreborn.manual.saveFormat.Entry;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
/**
@ -25,8 +28,12 @@ public class ManualDesigner extends Application {
public static Stage stage;
public static void main(String[] args) {
launch(args);
public static void main(String[] args) throws Exception {
if(args.length > 0 && args[0].equals("-export")){
Exporter.run(args);
} else {
launch(args);
}
}
@Override
@ -70,6 +77,7 @@ public class ManualDesigner extends Application {
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"));
@ -82,6 +90,7 @@ public class ManualDesigner extends Application {
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);
}
}
}
@ -91,6 +100,7 @@ public class ManualDesigner extends Application {
//TODO Improve this
} else {
controller.textInput.setText("");
controller.imageTextArea.setText("");
}
if(entry.type.equalsIgnoreCase("image")){
controller.imageTextArea.setDisable(false);

View file

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

View file

@ -0,0 +1,101 @@
package techreborn.manual.designer.exporter;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.time.DateUtils;
import org.zeroturnaround.zip.ZipUtil;
import reborncore.shields.json.ShieldJsonLoader;
import techreborn.manual.saveFormat.ManualFormat;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* Created by Mark on 16/04/2016.
*/
public class Exporter {
public static void run(String[] arg) throws Exception {
if(arg.length < 3){
System.out.println("Error incorrect arguments!");
System.exit(-1);
}
File input = new File(arg[1]);
File output = new File(arg[2]);
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

@ -0,0 +1,14 @@
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

@ -0,0 +1,16 @@
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;
}