跳到正文

Actually Amazing Config Screen

作者:Tapacywka

A settings screen library for Fabric and NeoForge mods: tabs, folding sections, smooth scrolling and a card that explains each setting with a picture.

收藏

介绍

中文介绍正在准备中,下面暂时显示原文。

Actually Amazing Config Screen

Actually Amazing Config Screen

Modrinth downloads
CurseForge downloads
GitHub downloads
Latest release
Client side
MIT license

A settings screen library for Minecraft mods on Fabric and NeoForge.
Tabs, sections that fold, smooth scrolling, and a card beside the list that explains the setting under the pointer
with a picture of what it does.

Available on Modrinth
Available on CurseForge
Available on GitHub
Supported on Fabric
Supported on NeoForge

The settings of Teyvat Cartographia: the Pins tab and the card with the pictures of the setting under the pointer

For players

You do not need to install anything. The library comes inside the mods that use it, such as
Teyvat Cartographia. It shows in the mod list as a library, and the
settings button of each such mod opens its screen.

What the screen does

  • Tabs as wide as their titles, sections, and sub-sections that fold.
  • Smooth scrolling without steps: the wheel moves a row’s distance, the scroll bar can be dragged freely, and rows
    cut by the edges of the list dissolve.
  • The card beside the list: the name and description of the setting under the pointer, and a picture of what it
    does, drawn by the mod. In a window too narrow for the card, the description shows as a tooltip by the row.
  • Rows: switches, sliders of numbers (with a unit, fixed steps or words), choices in steps on a slider, choices
    with arrows, a switch with a searchable list of switches under it, and a link at the right end that hands the screen
    to the mod, say to open a window of its own.
  • A reset icon beside a setting you changed, and Reset and Done at the bottom.
  • Rectangular or rounded shapes, the mod’s own colours and background, and the GUI scale held at a size that fits
    the window while the screen is open.
  • The settings button in Mod Menu and in the mod list of NeoForge.
  • Sub-sections from other mods: a mod can open a tab to others, and they add their own settings there.

The Compatibility tab, a sub-section per supported mod
The rounded style

A switch with a searchable list under it
Without room for the card, the description as a tooltip

For mod authors

Note
Since 1.0.0 the API in net.tapacywka.aacs.api is stable: it only grows, and older methods are
kept working (marked @Deprecated) rather than removed, because the loader keeps only the newest copy of the library
among all the mods that embed it. Aacs.API_VERSION tells which version is running.

Embed the library in your JAR (Fabric include, NeoForge jarJar), so players have nothing to install. The files are
on Modrinth Maven:

repositories {
    maven { url = 'https://api.modrinth.com/maven' }
}

dependencies {
    // The game after +mc: 1.21.1, 26.1.2, 26.2 or 26.3 (on 26.x Loom takes implementation, not modImplementation)
    // Fabric (Loom)
    modImplementation 'maven.modrinth:actually-amazing-config-screen:1.1.0+mc1.21.1-fabric'
    include 'maven.modrinth:actually-amazing-config-screen:1.1.0+mc1.21.1-fabric'
    // NeoForge (ModDevGradle)
    jarJar(implementation('maven.modrinth:actually-amazing-config-screen:1.1.0+mc1.21.1-neoforge'))
}

The settings are values in a JSON file of your mod, described by a builder; the screen is laid out over them:

ConfigFile.Builder b = ConfigFile.builder();
b.push("map");                                              // a section of the file: { "map": { ... } }
BoolValue grid = b.bool("grid", true);
IntValue opacity = b.integer("opacity", 80, 0, 100);
b.pop();
ConfigFile file = b.build();
file.load(configDir.resolve("mymod-client.json"));

AacsScreen screen = AacsScreen.builder("mymod", file)
        .tab("mymod.config.tab.display", t -> t
                .section("mymod.config.section.look")
                .toggle(grid)
                .slider(opacity, s -> s.unit("%"))
                .preview((g, row, x, y, w, h, partialTick) -> { /* draw a picture of the setting */ }))
        .build();                                           // also the settings button in the mod lists

boolean showGrid = grid.get();                              // read where you need it; changes count at once
Minecraft.getInstance().setScreen(screen.open(parent));

Texts come from your lang files: a row’s name mymod.config.<key> and its description mymod.config.<key>.tooltip.

Another mod can add a sub-section to a tab you opened to others:

.tab("mymod.config.tab.compat", t -> t.openTo("compatibility"))  // in your screen

AacsScreen.extend("mymod", "compatibility", "othermod", otherFile, t -> t.toggle(otherValue))  // in the other mod
        .shownIf(() -> isOtherThingLoaded);

Compatibility

  • Minecraft 1.21.1, Fabric (Fabric Loader 0.16 or newer, no Fabric API needed) and NeoForge 21.1.
  • The Fabric file also runs on NeoForge through Sinytra Connector.
  • Minecraft 26.1.2, 26.2 and 26.3 (Java 25), Fabric and NeoForge.

Building

./gradlew build builds both JARs (fabric/build/libs, neoforge/build/libs) and runs the unit tests;
./gradlew publishToMavenLocal puts net.tapacywka.aacs:aacs-common, aacs-fabric and aacs-neoforge in the local
Maven repository. ./gradlew :fabric:runClient and :neoforge:runClient open a game with a small test mod that shows
every kind of row.

License

MIT. The icons are from Nieobie’s Game Icon Pack (CC0).

常见问题

Actually Amazing Config Screen 支持哪些 Minecraft 版本?

Actually Amazing Config Screen 支持 Minecraft Java 版 1.21.1–26.3,共 4 个版本,可用的加载器:Fabric / NeoForge。下载时注意选择和你游戏版本一致的文件。

Actually Amazing Config Screen 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric / NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

Tapacywka 的其他作品

查看全部 →