跳到主要内容

资源、地图贴图与本地化

客户端资源按模组命名空间组织。资源位置是逻辑 ID,与服务器磁盘路径无关。

文件路径与资源位置

文件代码或配置使用的值
assets/elimination_addon/textures/gui/training.pngelimination_addon:textures/gui/training.png
assets/elimination_addon/lang/zh_cn.json由当前语言自动加载
assets/elimination_addon/lang/en_us.json英文翻译

普通工程将 assets 放在 src/main/resources;分章示例使用 resources/assets。这些文件需要随客户端模组或资源包提供。

地图图标和背景

BaseMapiconTexturebackgroundTexture 设置用于地图列表和房间详情:

/fpsm map modify elimination training settings set iconTexture elimination_addon:textures/gui/training.png
/fpsm map modify elimination training settings set backgroundTexture elimination_addon:textures/gui/training_background.png
/fpsm map modify elimination training settings save

地图保存的是资源位置,不是图片内容。所有需要看到图片的客户端都必须拥有相同资源。图片制作与地图配置可参阅地图制作者手册

使用语言键

服务端播报使用:

player.sendSystemMessage(Component.translatable("message.elimination.round", round));

对应语言文件:

{
"message.elimination.round": "第 %s 回合"
}

服务器传递语言键和参数,客户端按照自己的语言显示。不应先在服务端把可翻译文本变成字符串,再发给所有语言的玩家。

资源职责

地图 ID 用于保存和查询,不承担本地化职责。展示标题可以来自地图设置或语言键,纹理 ID 则负责资源定位。保持它们分离,才能在不破坏旧地图引用的前提下改变显示效果。