主题与资源
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 类)。