disable part visibility by default

This commit is contained in:
zimzaza4
2024-07-19 14:29:49 +08:00
parent 0373d2ac3f
commit c5a739074b
2 changed files with 30 additions and 18 deletions

View File

@@ -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,7 @@ 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 +76,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);
}
@@ -222,6 +228,8 @@ public class GeneratorMain {
} catch (IOException e) {
e.printStackTrace();
}
}
File controller = new File(animationControllersFolder, "modelengine.animation_controller.json");

View File

@@ -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,22 @@ 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"));
if (enable) {
JsonArray partVisibility = new JsonArray();
JsonObject visibilityDefault = new JsonObject();
visibilityDefault.addProperty("*", true);
partVisibility.add(visibilityDefault);
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();
}