
ZConfig
一个mixin配置模组,支持从其他模组覆盖加载。
这个项目为何存在?
这是一个通用配置模组,部分基于 c2me 的内部配置系统。 这也能让我将 zfastnoise 的体积缩减至几十千字节,并且用户只需下载一次配置模组即可。
功能特性
- 基于 TOML 的配置文件
- 支持布尔型和整数型配置项
- 允许其他模组通过模组元数据覆盖配置项
- 可将模组标记为与特定配置项不兼容
例如,fabric.mod.json:
{
...
"custom": {
"zfastnoise:overrides" : "mixin.perf.surface"
}
}
上述配置会禁用 mixin.perf.surface 配置选项。
未来计划
- 增加对 ModMenu/Forge 配置 API 的支持
- 增加 NeoForge 构建版本
- 添加更多便捷功能以便轻松生成配置
示例配置
package org.codeberg.zenxarch.zconfig.test;
import org.codeberg.zenxarch.zconfig.entry.BooleanConfigEntry;
import org.codeberg.zenxarch.zconfig.entry.ConfigEntries;
import org.codeberg.zenxarch.zconfig.entry.IntConfigEntry;
import org.codeberg.zenxarch.zconfig.loader.Config;
import org.codeberg.zenxarch.zconfig.loader.ConfigLoader;
import org.codeberg.zenxarch.zconfig.loader.OverrideCollector;
import org.junit.jupiter.api.Test;
public class ExampleConfig extends ConfigEntries {
public static final ExampleConfig INSTANCE = new ExampleConfig();
public static final BooleanConfigEntry MAIN =
INSTANCE.createEntry(
"main",
builder -> builder.addComment("主条目").defaultValue(false).addIncompat("sodium"));
public static final IntConfigEntry OTHER =
INSTANCE.createIntEntry(
"other", builder -> builder.addComment("其他条目").defaultValue(0).constraints(-1, 1));
public static final Config CONFIG =
new Config(
new ConfigLoader("example_mod_id", INSTANCE), new OverrideCollector("example_mod_id"));
@Test
public void loadConfig() {
IO.println(CONFIG.get(MAIN));
IO.println(CONFIG.get(OTHER));
IO.println(CONFIG.loadMixinEntries());
}
}
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。