1.6 第一个物品
Last updated
Was this helpful?
Last updated
Was this helpful?
在模组文件夹中创建contents文件夹,在contents文件夹中创建items文件夹作为物品文件夹。
我们为创建一颗金蛋作为第一个模组物品。将物品id命名为golden_egg
。
在物品文件夹中添加金蛋贴图,命名为golden_egg_icon.png
,并在同级目录创建golden_egg.json
作为金蛋的JSON数据表。金蛋贴图和JSON文件可以在contents\items
文件夹中任意子目录创建,游戏会遍历所有子文件夹自动寻找并加载金蛋的数据。
在golden_egg.json
中写入数据:
type
属性表示当前物品类型,使用物品类型表中的常量名称字符串作为值。
iconTextureData
属性表示当前物品图标在模组textures文件夹的相对位置。
group
表示物品所在分组。
在游戏中,我们把物品分为这么几大类:材料类(Materials)、方块类(Blocks)、工具类(Tools)、抛射物类(Projectiles)、存储类(Chests)。
这几类物品的使用场合如下:
类型
常量名称
最大堆叠数
描述
常见
材料类
MATERIALS
640
最常见、最通用、最简单的物品,一般不附带特殊数据
原料、食物、药水等
方块类
BLOCKS
640
用于放置方块
地砖、家具等
工具类
TOOLS
1
有附魔、耐久度等属性
装备、武器、镐子、斧头等
抛射物类
PROJECTILES
1000
可以大量抛掷出去,或者作为某种武器的消耗品
炸弹、箭、子弹等
存储类
CHESTS
1
可以存储多种物品
潜影盒
保存这个JSON数据表文件,然后运行TerraCraft。打开查询界面,你会看到金蛋已经加入到了游戏中!
但是,玩家看到的物品名称却是命名空间:名称
,而且也没有物品的描述信息。这是因为我们还没有将物品的文字信息加入到翻译文件中。我们的征途是让Mod走向国际化,因此我们不仅需要写中文的翻译文件,也需要写英文翻译文件。
每次创建一个新的物品,我们还需要把物品的文本信息写入到翻译数据表内。创建languages文件夹作为语言文件夹,并在该文件夹中创建english.json和chinese.json两个文件作为英文和中文的语言表,注意必须以UTF8格式保存。
注:游戏运行一次后所有模组文件夹会自动创建一个outputs文件夹,用于存放一些导出信息。
对于/languages/english.json
英文表,写入如下信息:
对于/languages/chinese.json
中文表,写入如下信息:
对于JSON中items数组的每一项,第一个字符串表示物品在Mod私有空间中的名称(id),第二个字符串表示展示名称(Display Name),第三个字符串是对于该物品的描述(Description)。
一般建议必须进行英文翻译,即必须填写英文语言文件的数据表,而其他语言根据自己的掌握情况尽可能填写。因为我们切换语言的时候总是基于如下规则进行展示文本替换的:
如果目标语言展示文本不存在,使用英文展示文本。 如果英文展示文本不存在,使用
命名空间:名称
。 如果不适合使用上述文本,则使用空
。
再次运行游戏,我们可以发现物品的名称和描述可以正确显示。
在中文语言中:
在英文语言中:
详细描述见: