← Назад к ресурсам

ZConfig

A mixin config plugin for zfastnoise

Modrinth library

Описание

## Why does this project exist? This is a general purpose config mod slightly based on c2me's internal config system. This also lets me reduce zfastnoise's size to a few dozen kilobytes and users only have to download the config mod once. ## Features - Toml based config files - boolean and int based config entries - allow other mods to override config entries using mod metadata - mark mods as incompatible with certain config entries For example, fabric.mod.json ```json { ... "custom": { "zfastnoise:overrides" : "mixin.perf.surface" } } ``` The above disables mixin.perf.surface config option ## Future plans - add support for modmenu/forge config api - add neoforge builds - add more sugar to easily generate config ## Example config ```java 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("Main entry").defaultValue(false).addIncompat("sodium")); public static final IntConfigEntry OTHER = INSTANCE.createIntEntry( "other", builder -> builder.addComment("Other entry").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()); } } ```