Advertisement
Creepinson

Untitled

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