主题与资源

TaskNH 的客户端外观完全由 ModularUI 主题、代码内颜色常量和 lang 文件决定。没有模型、方块贴图、物品贴图、合成配方或声音。

资源清单

src/main/resources 下只有 5 个文件:

路径 作用
mcmod.info 模组元数据
assets/tasknh/themes.json 主题 ID 映射
assets/tasknh/themes/dark.json 深色主题定义
assets/tasknh/themes/light.json 浅色主题定义
assets/tasknh/lang/en_US.lang 英文语言文件
assets/tasknh/lang/ru_RU.lang 俄文语言文件
assets/tasknh/textures/navigator/task_icon.png Navigator 图层按钮图标

(LICENSE 另有 1 个。)task_icon.png 是全 mod 唯一的图片资源——因为 TaskNH 不注册方块和物品,自然也不需要方块/物品贴图。

没有:models/、blockstates/、recipes/、sounds.json、advancements/、biomes/、structures/、particles/。

主题

themes.json 内容只有两行映射:

"tasknh_dark":  "tasknh:dark"
"tasknh_light": "tasknh:light"

即自定义主题 ID tasknh_dark / tasknh_light 分别指向 ModularUI 主题资源 tasknh:dark / tasknh:light。切换逻辑见 主界面 GUI(会话内有效,不写盘)。

颜色:gui/ColorUtils.java

全部颜色是 GTNHLib 的 ColorResource,用 new ColorResource.Factory("tasknh") 创建,命名空间是 tasknh——所以可被资源包覆盖,但不在任何 .cfg 里。

文本与强调色(RGB):

常量 默认值 用途
textWhite 0xFFFFFF 主文本
textGray 0xAAAAAA 次要文本
accentGold 0xF0C040 金色强调(图钉激活色同值)
accentGreen 0x8BC34A 绿色强调

地图路点色(RGB):mapWaypointOpen 0xFFAAAA、mapWaypointInProgress 0xAAAAFF、mapWaypointDone 0xAAFFAA,见 Navigator 地图图层。

地图填充色:类内注释标明「darker tones, separate alpha in DrawUtils」——mapFillOpen 0x888800、mapFillInProgress 0x004488、mapFillDone 0x228822,深色变体的 alpha 单独在 DrawUtils 里处理。

图标色(ARGB):iconAdd 0xFF40C040、iconRemove 0xFFC04040、iconPinActive 0xFFF0C040、iconPinInactive 0xFF555555。

背景色(ARGB):backgroundHud 0x88000000(HUD 半透明底)、backgroundOverlay 0x44000000、backgroundPanel 0xCC000000、backgroundButton 0xFF444444、backgroundRowSelected 0xFF666666、backgroundDanger 0xFF884444、backgroundHandle 0xFFCC3333(HUD 拖拽手柄)。

语言文件

en_US.lang(1.7.10 传统的 .lang 格式,非 1.8+ 的 JSON)与 ru_RU.lang 两份,键名一致。没有中文语言文件。

键的分组:

前缀 内容
key.tasknh.open / key.categories.tasknh 热键名与按键分类名,见 打开界面热键
tasknh.gui.* 主界面全部文案(标签页、详情字段、搜索、主题切换、图钉)
tasknh.status.* 三个状态名,由 TaskStatus.displayName() 经 StatCollector.translateToLocal 取用
tasknh.chat.* 分配通知、自动完成/自动勾选、登录提醒、多方块提示、提醒冷却与离线
tasknh.hud.* HUD 设置界面与 HUD 内小节标题
tasknh.cmd.* 命令回执与用法提示

一处硬编码文案

tasknh.gui.pin.max = Max 5 tasks pinned 里的 5 是写死在 lang 里的,而实际上限来自配置 maxPinnedTasks(默认 5,可调到 1–10)。改了配置之后这条提示不会跟着变。

注意 chat 消息里带颜色码

多条聊天文案直接把 § 颜色码写进了 lang 字符串,例如 tasknh.chat.assigned 以 §a[TaskNH]§r ... §e%s 开头(绿 [TaskNH]、黄任务名)。而 tasknh.chat.remind.* 与 tasknh.chat.login.* 用的是方括号纯文本 [TaskNH],没有颜色码。两种风格在同一文件里混用。

mcmod.info

modListVersion: 2,单条记录。所有字段都是构建期占位符 ${modId} / ${modName} / ${modVersion} / ${minecraftVersion},由 Gradle 在打包时替换。

字段 值
name(模板) TaskNH
description “Collaborative in-game task tracker for GTNH teams.”
url https://github.com/GTNewHorizons/TaskNH
authorList ["Eldrinn_Elantey"]
requiredMods / dependencies / dependants 全为空数组
useDependencyInformation false
logoFile / screenshots / parent / credits / updateUrl 空

⚠️ mcmod.info 没有声明任何依赖(两个数组都空,且 useDependencyInformation: false)。实际依赖写在 @Mod 注解的 dependencies 串里,见 兼容门控。

构建信息

gradle.properties:

键 值
modId / modName / modGroup tasknh / TaskNH / com.eldrinn.tasknh
minecraftVersion 1.7.10
forgeVersion 10.13.4.1614
mappingsVersion 12
enableModernJavaSyntax jabel(用 com.github.bsideup.jabel.Desugar 在 Java 8 目标下使用 record / switch 表达式)
generateGradleTokenClass com.eldrinn.tasknh.Tags
usesMixins false
coreModClass (空)
usesShadowedDependencies false

@Mod 注解里 acceptedMinecraftVersions = "[1.7.10]",version = Tags.VERSION(Gradle 生成的 token 类)。