From 2db43db95eae315eafa38fa6c06b90bc52c076d3 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Tue, 1 Jul 2025 02:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E5=BD=93=E6=94=AF=E6=8C=81trim?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../craftengine/core/item/AbstractItemManager.java | 4 ++-- .../craftengine/core/pack/AbstractPackManager.java | 13 +++++++++++++ .../model/select/TrimMaterialSelectProperty.java | 10 +--------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java b/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java index 8452d6334..2c26ca52c 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/item/AbstractItemManager.java @@ -672,7 +672,7 @@ public abstract class AbstractItemManager extends AbstractModelGenerator impl List cases = entry.getKey().fallbackOrMapPrimary(List::of); for (String caseValue : cases) { Number legacyValue = predicate.toLegacyValue(caseValue); - if (predicate instanceof TrimMaterialSelectProperty property && property.isArmor(materialId)) { + if (predicate instanceof TrimMaterialSelectProperty) { if (legacyValue.floatValue() > 1f) { continue; } @@ -713,7 +713,7 @@ public abstract class AbstractItemManager extends AbstractModelGenerator impl materialId, customModelData ); - } else if (predicate instanceof TrimMaterialSelectProperty property && property.isArmor(materialId)) { + } else if (predicate instanceof TrimMaterialSelectProperty) { processModelRecursively( model.fallBack(), mergePredicates( diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index ba9d0c04a..b1959f5c8 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -787,6 +787,7 @@ public abstract class AbstractPackManager implements PackManager { @SuppressWarnings("DuplicatedCode") private void validateResourcePack(Path path) { + long time1 = System.currentTimeMillis(); Path[] rootPaths; try { rootPaths = FileUtils.collectOverlays(path).toArray(new Path[0]); @@ -917,6 +918,9 @@ public abstract class AbstractPackManager implements PackManager { } } + long time2 = System.currentTimeMillis(); + this.plugin.debug(() -> "Took " + (time2 - time1) + "ms collecting assets"); + // 验证font的贴图是否存在 label: for (Map.Entry> entry : imageToFonts.asMap().entrySet()) { Key key = entry.getKey(); @@ -930,6 +934,9 @@ public abstract class AbstractPackManager implements PackManager { TranslationManager.instance().log("warning.config.resource_pack.generation.missing_font_texture", entry.getValue().stream().distinct().toList().toString(), imagePath); } + long time3 = System.currentTimeMillis(); + this.plugin.debug(() -> "Took " + (time3 - time2) + "ms verifying font textures"); + // 验证物品模型是否存在,验证的同时去收集贴图 label: for (Map.Entry> entry : modelToItems.asMap().entrySet()) { Key modelResourceLocation = entry.getKey(); @@ -975,6 +982,9 @@ public abstract class AbstractPackManager implements PackManager { TranslationManager.instance().log("warning.config.resource_pack.generation.missing_block_model", entry.getValue().stream().distinct().toList().toString(), modelPath); } + long time4 = System.currentTimeMillis(); + this.plugin.debug(() -> "Took " + (time4 - time3) + "ms verifying models and their parents"); + // 验证贴图是否存在 boolean enableObf = Config.enableObfuscation() && Config.enableRandomResourceLocation(); label: for (Map.Entry> entry : imageToModels.asMap().entrySet()) { @@ -1007,6 +1017,9 @@ public abstract class AbstractPackManager implements PackManager { TranslationManager.instance().log("warning.config.resource_pack.generation.texture_not_in_atlas", key.toString()); } } + + long time5 = System.currentTimeMillis(); + this.plugin.debug(() -> "Took " + (time5 - time4) + "ms verifying model textures"); } private void verifyParentModelAndCollectTextures(Key sourceModelLocation, JsonObject sourceModelJson, Path[] rootPaths, Multimap imageToModels, Set collected) { diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/TrimMaterialSelectProperty.java b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/TrimMaterialSelectProperty.java index 434346bcd..6bdd5995f 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/TrimMaterialSelectProperty.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/model/select/TrimMaterialSelectProperty.java @@ -39,10 +39,7 @@ public class TrimMaterialSelectProperty implements SelectProperty, LegacyModelPr @Override public String legacyPredicateId(Key material) { - if (isArmor(material)) { - return "trim_type"; - } - return null; + return "trim_type"; } @Override @@ -54,11 +51,6 @@ public class TrimMaterialSelectProperty implements SelectProperty, LegacyModelPr return f; } - public boolean isArmor(Key material) { - String s = material.toString(); - return s.contains("helmet") || s.contains("chestplate") || s.contains("leggings") || s.contains("boots"); - } - public static class Factory implements SelectPropertyFactory { @Override public SelectProperty create(Map arguments) {