主配置(Main Config)

基本信息

属性 值
类型 客户端配置文件
实现类 roadhog360.simpleskinbackport.configuration.configs.ConfigMain
配置文件路径 config/simpleskinbackport/main.cfg
适用端 全端(值在 CLIENT 端通过 Mixin 使用)
配置项数量 2

功能

ConfigMain 是 SimpleSkinBackport 的核心配置文件,控制全局玩家皮肤默认外观与手臂渲染行为。所有玩家(无论皮肤是否加载)都会受 defaultSkinSet 影响;oldSlimArms 影响 slim 皮肤的视觉对齐。

配置项

defaultSkinSet

属性 值
键 defaultSkinSet
分类 skins
默认值 ALL_DEFAULTS
合法值 STEVE_ONLY、STEVE_ALEX、ALL_DEFAULTS
影响对象 没有自定义皮肤/皮肤未加载的玩家

含义:选择玩家在没有 custom 皮肤时可用的默认皮肤集合。注意 launcher 上设置的皮肤优先级高于此选项。

可选集合(由 DefaultPlayerSkin.Set 枚举定义):

集合 皮肤列表 选择逻辑
STEVE_ONLY 仅 STEVE(wide) 所有玩家都是宽臂 Steve
STEVE_ALEX STEVE(wide)、ALEX(slim) 1.8~1.19.2 风格:UUID 哈希最低位 = 1 选 Alex
ALL_DEFAULTS 9 个名字 × 2(slim/wide)共 18 个 1.19.3+ 风格:Math.floorMod(uuid.hashCode(), 18)

ALL_DEFAULTS 中包含的皮肤名:alex、ari、efe、kai、makena、noor、steve、sunny、zuri(每个都有 slim + wide 变体)。

oldSlimArms

属性 值
键 oldSlimArms
分类 skins
默认值 false
类型 Boolean

含义:1.15 之前,slim 手臂比躯干低半像素。设为 true 恢复这种行为(即将 bipedLeftArm.rotationPointY 在 slim 状态下加 0.5F)。

配置分类

分类 包含项 备注
skins defaultSkinSet、oldSlimArms 主分类,含皮肤外观选项
heads (空) 占位分类,仅存在以便服务端同步时若内容为空则删除(除非包含 “experiment”)

数值

数值 值 来源
默认皮肤集合大小(STEVE_ONLY) 1 DefaultPlayerSkin.STEVE_ONLY.skins.size()
默认皮肤集合大小(STEVE_ALEX) 2 DefaultPlayerSkin.STEVE_ALEX.skins.size()
默认皮肤集合大小(ALL_DEFAULTS) 18 DefaultPlayerSkin.ALL_DEFAULTS.skins.size()
UUID→skin 选择公式(STEVE_ALEX) index & 1 UUID 哈希最低位
UUID→skin 选择公式(ALL_DEFAULTS) Math.floorMod(index, 18) UUID 哈希取余
oldSlimArms 偏移量 +0.5F bipedLeftArm.rotationPointY += 0.5F

配置变更机制

ConfigBase.onConfigChanged 订阅 cpw.mods.fml.client.event.ConfigChangedEvent.OnConfigChangedEvent,匹配 MOD_ID 时调用 syncConfig()。该流程:

  1. 调用 syncConfigOptions() 重新读取配置
  2. 在 SERVER 端删除任何名字含 “client” 的分类项
  3. 删除空分类(除非名字含 “experiment”)
  4. 若 hasChanged() 则 save()

相关条目