From 45ada33d7dc302db0c3715e1b10d58931ba714a0 Mon Sep 17 00:00:00 2001 From: ZZZank <47418975+ZZZank@users.noreply.github.com> Date: Fri, 7 Jul 2023 09:34:25 +0800 Subject: [PATCH 1/2] Update zh_cn Translation (#150) from: https://github.com/embeddedt/ModernFix/commit/ce6ce1d34141faa5ad6313312e40af3c41098658 --- .../src/main/resources/assets/modernfix/lang/zh_cn.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/common/src/main/resources/assets/modernfix/lang/zh_cn.json b/common/src/main/resources/assets/modernfix/lang/zh_cn.json index 4bb291d1..edce6d34 100644 --- a/common/src/main/resources/assets/modernfix/lang/zh_cn.json +++ b/common/src/main/resources/assets/modernfix/lang/zh_cn.json @@ -10,6 +10,15 @@ "modernfix.config.not_default": " (已修改)", "asynclocator.map.locating": "地图(定位中……)", "asynclocator.map.none": "地图(未能在附近找到相关地物)", + "modernfix.option.category.performance": "性能", + "modernfix.option.category.performance.description": "有助于提升游戏内性能或启动速度的功能", + "modernfix.option.category.bugfixes": "错误修复", + "modernfix.option.category.bugfixes.description": "修复重点错误,从而提升游戏稳定性", + "modernfix.option.category.troubleshooting": "错误排查/实用工具", + "modernfix.option.category.troubleshooting.description": "用于辅助错误排查的功能", + "modernfix.option.category.expert_only": "高级设置", + "modernfix.option.category.expert_only.description": "不要轻易修改,除非您清楚地知道自己正在做什么", + "modernfix.option.name.mixin.perf.async_jei": "后台 JEI 加载", "modernfix.option.mixin.perf.async_jei": "仅 1.16。一项关键优化。对 JEI 进行了调整,让其重载运行于后台线程,完全消除了它在载入世界时造成的巨大延迟。", "modernfix.option.mixin.perf.biome_zoomer": "仅 1.16。使用 1.18 版本的逻辑进行微优化,提高生物群系过渡生成的性能。", "modernfix.option.mixin.perf.async_locator": "仅 1.16。移植了 Async Locator 模组的补丁,以消除与 `/locate`、战利品表生成等相关事物的服务器冻结现象。", From 8f896f065cd3a95d73f3cf7778a301cb41ca6141 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Thu, 6 Jul 2023 22:03:08 -0400 Subject: [PATCH 2/2] Limit registry wrapping to known bad mods to avoid performance issues --- .../forge/dynresources/ModelBakeEventHelper.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/dynresources/ModelBakeEventHelper.java b/forge/src/main/java/org/embeddedt/modernfix/forge/dynresources/ModelBakeEventHelper.java index c2b3de68..0e81d4ae 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/dynresources/ModelBakeEventHelper.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/dynresources/ModelBakeEventHelper.java @@ -1,6 +1,7 @@ package org.embeddedt.modernfix.forge.dynresources; import com.google.common.collect.ForwardingMap; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; import com.google.common.graph.GraphBuilder; import com.google.common.graph.MutableGraph; @@ -26,6 +27,8 @@ import java.util.Set; * of the model registry that emulates vanilla keySet behavior. */ public class ModelBakeEventHelper { + // TODO: make into config option + private static final Set INCOMPATIBLE_MODS = ImmutableSet.of("industrialforegoing"); private final Map modelRegistry; private final Set topLevelModelLocations; private final MutableGraph dependencyGraph; @@ -43,6 +46,9 @@ public class ModelBakeEventHelper { this.dependencyGraph = GraphBuilder.undirected().build(); ModList.get().forEachModContainer((id, mc) -> { this.dependencyGraph.addNode(id); + for(IModInfo.ModVersion version : mc.getModInfo().getDependencies()) { + this.dependencyGraph.addNode(version.getModId()); + } }); for(String id : this.dependencyGraph.nodes()) { Optional mContainer = ModList.get().getModContainerById(id); @@ -61,6 +67,8 @@ public class ModelBakeEventHelper { modIdsToInclude.addAll(this.dependencyGraph.adjacentNodes(modId)); } catch(IllegalArgumentException ignored) { /* sanity check */ } modIdsToInclude.remove("minecraft"); + if(modIdsToInclude.stream().noneMatch(INCOMPATIBLE_MODS::contains)) + return this.modelRegistry; Set ourModelLocations = Sets.filter(this.topLevelModelLocations, loc -> modIdsToInclude.contains(loc.getNamespace())); return new ForwardingMap() { @Override