Advertisement
Creepinson

Untitled

Feb 19th, 2018
390
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.39 KB | None | 0 0
  1. package me.creepinson.modelz.util.converter.model;
  2.  
  3. import java.awt.image.BufferedImage;
  4. import java.io.File;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.io.FileReader;
  8. import java.io.IOException;
  9. import java.io.ObjectOutputStream;
  10. import java.util.Map;
  11.  
  12. import javax.imageio.ImageIO;
  13.  
  14. import com.google.gson.Gson;
  15. import com.google.gson.JsonIOException;
  16. import com.google.gson.JsonSyntaxException;
  17.  
  18. import me.creepinson.modelz.Modelz;
  19. import net.minecraft.client.Minecraft;
  20. import net.minecraft.client.renderer.block.model.BlockPart;
  21. import net.minecraft.client.renderer.block.model.BlockPartFace;
  22. import net.minecraft.client.renderer.block.model.ModelBlock;
  23. import net.minecraft.util.EnumFacing;
  24. import net.minecraft.util.ResourceLocation;
  25.  
  26. public class Converters {
  27.  
  28. public static Gson getGson() {
  29. return gson;
  30. }
  31.  
  32. private static Gson gson = new Gson();
  33.  
  34. public static class JSONToJava {
  35. private File jsonModel;
  36.  
  37. public JSONToJava(File jsonModel) {
  38. if (jsonModel != null && jsonModel.exists()) {
  39. this.jsonModel = jsonModel;
  40. } else {
  41. Modelz.getLogger().error("JSON model file being imported is null or does not exist!");
  42.  
  43. }
  44. }
  45.  
  46. public File getJsonModel() {
  47. return jsonModel;
  48. }
  49.  
  50. public File convert(String exportedFileName, int texWidth, int texHeight) {
  51. File javaFile = null;
  52. if (this.jsonModel != null && this.jsonModel.exists()) {
  53. /*
  54. * try { int numberPart = 1; ModelBlock model =
  55. * ModelBlock.deserialize(new FileReader(this.jsonModel));
  56. * javaFile = new File(Modelz.getDataFolder(),
  57. * exportedFileName+".java");
  58. *
  59. * PrintWriter writer = new PrintWriter(javaFile, "UTF-8");
  60. * writer.println("import net.minecraft.client.model.ModelBase"
  61. * ); writer.
  62. * println("import net.minecraft.client.model.ModelRenderer");
  63. * for(BlockPart bp : model.getElements()){ for(int f = 0; f <
  64. * bp.mapFaces.size(); f++){ BlockPartFace bfp =
  65. * bp.mapFaces.get(f);
  66. *
  67. * }
  68. *
  69. * writer.println(" ModelRenderer modelPart" +
  70. * numberPart); numberPart++; } writer.println("public class " +
  71. * exportedFileName + " extends ModelBase");
  72. * writer.println("{"); writer.println(" public Model()");
  73. * writer.println(" {"); writer.println(" }");
  74. * writer.println("}"); writer.close(); } catch
  75. * (FileNotFoundException e) { e.printStackTrace(); } catch
  76. * (UnsupportedEncodingException e) { e.printStackTrace(); }
  77. */
  78.  
  79. try {
  80. javaFile = new File(Modelz.getDataFolder(), exportedFileName);
  81. try {
  82. javaFile.createNewFile();
  83. } catch (IOException e1) {
  84. // TODO Auto-generated catch block
  85. e1.printStackTrace();
  86. }
  87. ModelBlock newModel = ModelBlock.deserialize(new FileReader(this.jsonModel));
  88. BufferedImage image = null;
  89. try {
  90.  
  91. int ii = 0;
  92. for (BlockPart p1 : newModel.getElements()) {
  93. for(Map.Entry<EnumFacing, BlockPartFace> p1f : p1.mapFaces.entrySet())
  94. if (ii == 1) {
  95. image = ImageIO.read(Minecraft.getMinecraft().getResourceManager()
  96. .getResource(new ResourceLocation(newModel.textures.get(p1f.getValue().texture)))
  97. .getInputStream());
  98. System.out.println(Minecraft.getMinecraft().getResourceManager()
  99. .getResource(new ResourceLocation(newModel.textures.get(p1f.getValue().texture))));
  100. break;
  101. }
  102. ii++;
  103. }
  104. JavaModel temp = new JavaModel(image.getHeight(), image.getWidth());
  105. for (BlockPart bp : newModel.getElements()) {
  106. JavaModelRenderer tempRenderer = new JavaModelRenderer(temp);
  107. temp.boxList.add(tempRenderer);
  108. }
  109.  
  110. FileOutputStream f = new FileOutputStream(javaFile);
  111. ObjectOutputStream o;
  112. try {
  113. o = new ObjectOutputStream(f);
  114.  
  115. o.writeObject(temp);
  116.  
  117. o.close();
  118. f.close();
  119. } catch (IOException e) {
  120. Modelz.getLogger().error("Error converting Json!");
  121. e.printStackTrace();
  122. }
  123.  
  124. } catch (IOException e1) {
  125. // TODO Auto-generated catch block
  126. e1.printStackTrace();
  127. }
  128.  
  129. } catch (JsonSyntaxException | JsonIOException | FileNotFoundException e) {
  130. Modelz.getLogger().error("Error converting Json!");
  131. e.printStackTrace();
  132. }
  133.  
  134. return javaFile;
  135. }
  136.  
  137. return javaFile;
  138. }
  139.  
  140. }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement