From fb4682b03884aae671f782514e275bcc01b96bed Mon Sep 17 00:00:00 2001 From: zimzaza4 <3625282098@qq.com> Date: Mon, 22 Jul 2024 13:43:37 +0800 Subject: [PATCH] huh i got sth wrong --- .../GeneratorMain.java | 19 ++++++++------ .../generator/RenderController.java | 25 +++++++++++-------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java b/src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java index 9b3bc99..bfdcc64 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/GeneratorMain.java @@ -8,6 +8,7 @@ import re.imc.geysermodelenginepackgenerator.generator.*; import java.io.File; import java.io.FileReader; +import java.io.FileWriter; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.nio.file.Files; @@ -50,13 +51,6 @@ public class GeneratorMain { canAdd = true; textureMap.put(modelId, new Texture(modelId, currentPath, e.toPath())); } - if (e.getName().equals("config.properties")) { - try { - entity.getProperties().load(new FileReader(e)); - } catch (IOException ex) { - ex.printStackTrace(); - } - } if (e.getName().endsWith(".json")) { try { String json = Files.readString(e.toPath()); @@ -81,6 +75,17 @@ public class GeneratorMain { } } if (canAdd) { + File config = new File(folder, "config.properties"); + try { + if (config.exists()) { + entity.getProperties().load(new FileReader(config)); + } else { + entity.getProperties().setProperty("enable-part-visibility", "false"); + entity.getProperties().store(new FileWriter(config), "For some reasons, the part visibility render controller may cause client crash"); + } + } catch (IOException ex) { + ex.printStackTrace(); + } entity.setPath(currentPath); entityMap.put(modelId, entity); } diff --git a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java index 8e368f5..9f0462f 100644 --- a/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java +++ b/src/main/java/re/imc/geysermodelenginepackgenerator/generator/RenderController.java @@ -2,6 +2,7 @@ package re.imc.geysermodelenginepackgenerator.generator; import com.google.gson.JsonArray; import com.google.gson.JsonObject; +import re.imc.geysermodelenginepackgenerator.GeneratorMain; import java.util.List; @@ -37,19 +38,23 @@ public class RenderController { JsonArray textures = new JsonArray(); textures.add("Texture.default"); controller.add("textures", textures); + Entity entity = GeneratorMain.entityMap + .get(modelId); + boolean enable = Boolean.parseBoolean(entity.getProperties().getProperty("enable-part-visibility", "false")); - JsonArray partVisibility = new JsonArray(); - JsonObject visibilityDefault = new JsonObject(); - visibilityDefault.addProperty("*", true); - partVisibility.add(visibilityDefault); + if (enable) { + JsonArray partVisibility = new JsonArray(); + JsonObject visibilityDefault = new JsonObject(); + visibilityDefault.addProperty("*", true); + partVisibility.add(visibilityDefault); - for (String bone : bones) { - JsonObject visibilityItem = new JsonObject(); - visibilityItem.addProperty(bone, "query.property('" + modelId + ":" + bone + "')"); - partVisibility.add(visibilityItem); + for (String bone : bones) { + JsonObject visibilityItem = new JsonObject(); + visibilityItem.addProperty(bone, "query.property('" + modelId + ":" + bone + "')"); + partVisibility.add(visibilityItem); + } + controller.add("part_visibility", partVisibility); } - controller.add("part_visibility", partVisibility); - return root.toString(); }