VNGuiFactory / 配置 GUI

基本信息

属性 值
工厂类 astrotibs.villagenames.config.gui.VNGuiFactory
主配置界面 astrotibs.villagenames.config.gui.VNGuiConfig(继承 GuiConfig)
声明位置 @Mod(..., guiFactory = Reference.GUI_FACTORY)(VillageNames.java:88)
常量 Reference.GUI_FACTORY = "astrotibs.villagenames.config.gui.VNGuiFactory"
入口 主菜单 → Mods → Config

功能

本 mod 通过 Forge 标准 IModGuiFactory 机制提供游戏内配置界面。源码注释说明其改编自 Jabelar 的 Magic Beans 与 FunWayGuy 的 EnviroMine(config/gui/VNGuiConfig.java:44-48)。

工厂类

VNGuiFactory 实现 4 个方法(config/gui/VNGuiFactory.java:9-32):

方法 返回 说明
initialize(Minecraft) void 空实现(源码注释说明其被调用以用 Minecraft 实例初始化工厂)
mainConfigGuiClass() VNGuiConfig.class 主菜单 Config 按钮打开的界面
runtimeGuiCategories() null 源码注释:// Not sure if this is implemented yet
getHandlerFor(...) null 源码注释:// Allows for custom buttons or widgets

后两项未实现,因此本 mod 没有 Forge 的"运行时选项"(runtime options)注册。

配置界面的分组

VNGuiConfig 的 import 列表(config/gui/VNGuiConfig.java:10-32)显示其把配置面板拆成多个独立配置文件,每个一组:

主配置(GeneralConfig)

涵盖 general settings 中的 8 个分类(general / villager professions / world of color / villager skin tones / miscellaneous / naming / mod integration / zombie conversion)。

音节池配置(config/pieces/,18 个处理器)

每个音节池一个独立配置文件,这是本 mod 配置系统的核心设计:

处理器 对应音节池
VillagerConfigHandler villager 音节池
VillageConfigHandler village 音节池
TempleConfigHandler temple 音节池
MineshaftConfigHandler mineshaft 音节池
FortressConfigHandler fortress 音节池
StrongholdConfigHandler stronghold 音节池
MonumentConfigHandler monument 音节池
EndCityConfigHandler end city 音节池
MansionConfigHandler mansion 音节池
GolemConfigHandler golem 音节池
PetConfigHandler pet 音节池
DragonConfigHandler dragon 音节池
AngelConfigHandler angel 音节池
DemonConfigHandler demon 音节池
GoblinConfigHandler goblin 音节池
AlienConfigHandler alien 音节池
AlienVillageConfigHandler alien village 音节池
CustomConfigHandler custom 音节池

音节池分类名定义于 Reference.java 的 CATEGORY_*_SYLLABLE_POOL 常量族,构造方式为 基础名 + " syllable pool"(Reference.SYL_SUF = " syllable pool")。

村庄生成配置

VillageGeneratorConfigHandler —— 独立文件,控制 Village Generator。

音节池可配置项

每个音节池文件包含 9 类命名参数(常量定义于 Reference.java):

键 常量 含义
Prefixes NAME_PREFIXES 核心名前可出现的前缀
Root: Initial NAME_ROOT_INITIAL 核心名以这些半音节开头(_ 代表空格)
Root: Syllables NAME_ROOT_SYLLABLES 插入 0 个或多个以达到目标长度(^ 代表空条目)
Root: Terminal NAME_ROOT_TERMINAL 核心名以这些半音节结尾
Suffixes NAME_SUFFIXES 核心名后的后缀
Syllable Count Weighting NAME_SYLLABLE_COUNT_WEIGHTING 各种长度名字的生成权重(第 N 行 = N 音节权重)
Terminal Blank Counts NAME_TERMINAL_BLANK_COUNTS 以空 Root: Terminal 结尾的名字数量
Prefix Chance NAME_PREFIX_CHANCE 含前缀的名字比例
Suffix Chance NAME_SUFFIX_CHANCE 含后缀的名字比例

其中 Terminal Blank Counts 的说明(Reference.DESCRIPTION_TERMINAL_BLANK_COUNTS)指出:若某行数值大于对应的 Syllable Count Weighting 或小于 0,该配置被整体忽略,Root: Terminal 字符改为直接抽取。

相关条目