📔
TerraCraft
  • TerraCraft
  • English
    • Mod Document
      • Mod Dev Official Tutorial
      • Mod API Document
        • Data Types and Enums
        • JSON
        • Entity
        • NPC
  • 简体中文(旧版教程)
    • 模组文档
      • Engine API
        • App
        • AssetBundle
        • AtlasInfo
        • AtlasTextureManager
        • Audio
        • Bytes
        • File
        • GameObject
        • GlobalHook
        • Graphics
        • Hotfix
        • Image
        • ImageInfo
        • IntegratedClient : IntegratedEnv
        • IntegratedEnv
        • JsonUtil
        • Log
        • MathHelper
        • Matrix
        • Path
        • Random
        • Rect
        • Rigidbody
        • TextureLocation
        • TextureManager
        • Transform
        • Vector2
        • Vector3
        • Vector4
      • Game API
        • Attack
        • ArrayList<T>
        • EffectUtils
        • Entity
        • LightingUtils
        • ModNpc
        • ModProjectile
        • Npc : Entity
        • NpcUtils
        • Projectile : Entity
        • ProjectileUtils
        • Reg
        • SoundUtils
        • Utils
      • 模组API文档
        • 数据类型、枚举类型
        • JSON API
        • 引用API
        • 注册信息API
        • 语言API
        • 通用API
        • 物品API
        • 实体API
        • 特效API
        • 抛射物API
        • 状态效果API
        • 附魔API
        • 玩家API
        • NPC API
        • 骨骼模型API
        • 光照API
        • 音效API
        • 方块API
        • 方块实体API
        • 地图API
        • 渲染API
        • 指令API
        • 用户图形界面UI
        • 其他API
      • 模组开发官方教程
        • ExampleMod源代码仓库
        • 1.0 教程对应游戏版本(Indev 1.1)
        • 1.1 开始
        • 1.2 安装Visual Studio Code
        • 1.3 配置模组环境
        • 1.4 认识模组路径
        • 1.5 认识JSON数据表
        • 1.6 第一个物品
        • 1.7 认识地图元素
        • 1.8 第一个图块TODO
        • 1.9 第一个家具TODO
        • 1.10 加入合成表TODO
        • 未完待续……
      • 模组数据表文档
        • 基本JSON类型
        • 模组配置表(tcmod.json)
        • 物品表(contents/items/...)
        • 物品配置表
        • 弹药表(ammos.json)
        • 状态效果表(buffs.json)
        • 音效配置表(sound_config.json)
        • 音效表(sounds.json)
        • 背景表(backgrounds.json)
        • 皮肤表(skins.json)
        • 着色器表(shaders.json)
  • 新版教程
    • 1 基础部分
      • 1.1 安装集成开发环境
      • 1.2 获取TerraCraft源码
      • 1.3 认识Lua
      • 1.4 Mod架构
      • 1.5 游戏主生命周期和主状态机
      • 1.6 Lua实战
      • 1.7 第一个物品
      • 1.8 本地化翻译
      • 1.9 配方系统初探和矿物字典
Powered by GitBook
On this page
  • 创建模组文件夹
  • 使用VS Code打开模组文件夹
  • 配置模组基本信息
  • 知识点:模组命名空间
  • 知识点:处理中文乱码问题
  • 检测模组是否配置成功
  • 配置API

Was this helpful?

  1. 简体中文(旧版教程)
  2. 模组文档
  3. 模组开发官方教程

1.3 配置模组环境

Previous1.2 安装Visual Studio CodeNext1.4 认识模组路径

Last updated 4 years ago

Was this helpful?

创建模组文件夹

将游戏主目录的empty_mod文件夹完整地复制粘贴到游戏主目录的devmods文件夹内,作为将要开发Mod的模组文件夹,并将文件夹名称重命名为模组名称。

注:本教程以“ExampleMod”为例子,将文件夹重命名为ExampleMod,请按自己想要开发的模组名称给文件夹命名。

使用VS Code打开模组文件夹

在VS Code中点击菜单项的File->Open Folder...,打开刚刚创建的模组文件夹。

配置模组基本信息

在tcmod.json文件中编写模组的基本信息。

{
  "modid": "exmod",
  "displayName": "ExampleMod",
  "description": "A journey ends and a new story begins.",
  "version": "1.0.0.0",
  "tcVersion": "Indev 1.1",
  "authorList": [ "BlueYoshi", "KfcMario" ],
  "credits": "Anything you want to thank.",
  "useSaver": true
}

知识点:模组命名空间

模组命名空间(modid,又称作namespace)是当前模组在整个模组包的唯一标识符。如果在所有加载的模组中出现了两个或多个命名空间相同的模组,这两个模组会发生冲突导致模组包加载失败。因此在命名modid时请尽可能选择一个不容易发生冲突的模组命名空间。TerraCraft原版的命名空间为tc或者空。

模组命名空间的重要作用是确保所有的对象(比如方块、物品、NPC、抛射物、特效等)的名称在全局空间中是独一无二的,每个对象在全局空间的唯一名称是命名空间:名称。通过如下简单的例子来理解:

假设当前加载了命名空间为happy_days和coco_world的两个模组,两个模组都有一个叫做dirt的方块,那么在全局空间中: (1)dirt和tc:dirt均表示TerraCraft原版的泥土方块 (2)happy_days:dirt表示happy_days模组的泥土方块 (3)coco_world:dirt表示coco_world模组的泥土方块

对于TerraCraft原版的所有对象,它们在全局空间的唯一名称是名称或者tc:名称,请注意区别。

知识点:处理中文乱码问题

请将所有JSON文件保存为UTF8格式,否则在游戏运行过程中可能会出现乱码问题。

正确配置模组的界面如图,注意右下角必须使用UTF8格式对JSON文件编码。

检测模组是否配置成功

直接运行TerraCraft.exe,在菜单界面中点击“模组”按钮,若看到自己的模组在模组列表内,表示你的模组加载成功!

配置API

当游戏本体更新时,您需要将最新的empty_mod/apis文件夹覆盖到您的模组项目的apis文件夹中。apis文件夹用于给EmmyLua插件提供自动补全的功能。

您可以直接将鼠标置于字段上方,快速查看该字段的描述信息。

您可以按住Ctrl键并单击指定字段,可以查看对应API文件。在每个API文件最上方可以跳转到对应的文档页面。

详细描述见:

模组配置表