📔
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
  • 钩子函数(用户图形界面脚本:contents/guis/...)
  • void CheckOnLoad()
  • void OnLoad()
  • void OnUnload()
  • void OnPushSlot(int cellID, KeyboardTag kbTag)
  • void OnPickSlot(int cellID, KeyboardTag kbTag)
  • bool RequestQuickPush(ItemSlot itemSlot)
  • 用户图形界面通用模块(GuiUtils)
  • 通用函数
  • GUI钩子数据类(GuiHookData Class)
  • 控件类(Control Class)
  • 物品格子控件类(Cell Class,继承自Control Class)

Was this helpful?

  1. 简体中文(旧版教程)
  2. 模组文档
  3. 模组API文档

用户图形界面UI

钩子函数(用户图形界面脚本:contents/guis/...)

void CheckOnLoad()

function CheckOnLoad()
    return true
end

决定当前GUI是否加载。返回true表示加载,返回false表示取消加载。

void OnLoad()

function OnLoad()
    
end

决定当前GUI的加载行为。一般在该函数中设置GUI属性、创建控件等初始化操作。

void OnUnload()

function OnUnload()
    
end

决定当前GUI的卸载时的行为。

void OnPushSlot(int cellID, KeyboardTag kbTag)

function OnPushSlot(cellID, kbTag)
    
end

【仅服务端调用】当物品放入某个格子控件时执行。

  • cellID表示被放入物品的格子控件ID,使用self:GetCell(cellID).hookItem获取对应物品格子。

  • kbTag表示放入物品时键盘附加情况。

void OnPickSlot(int cellID, KeyboardTag kbTag)

function OnPickSlot(cellID, kbTag)
    
end

【仅服务端调用】当物品从某个格子控件取出时执行。

bool RequestQuickPush(ItemSlot itemSlot)

function RequestQuickPush(itemSlot)
    return false
end

【仅服务端调用】当收到快速放入物品的请求时执行。返回true表示执行成功,返回false表示执行未发生变化。

  • itemSlot表示待快速放入的物品格子。

用户图形界面通用模块(GuiUtils)

通用函数

函数

返回值

描述

GuiUtils.OpenGui(Player player, string guiName, int xi, int yi, GuiHookData hookData)

void

打开指定GUI。player表示打开GUI的玩家,guiName表示待打开的GUI名称,xi和yi表示打开GUI所在的格子位置,hookData表示GUI的钩子数据,该钩子数据将成为GUI容器的属性。

GUI钩子数据类(GuiHookData Class)

表示一个GUI所挂钩的原始数据。

属性

类型

描述

GuiHookData.blockEntityRef

BlockEntityRef

当前钩子数据对应的方块实体引用。

GuiHookData.npcRef

NpcRef

当前钩子数据对应的NPC引用。

GuiHookData.projectileRef

ProjectileRef

当前钩子数据对应的抛射物引用。

GuiHookData.playerRef

PlayerRef

当前钩子数据对应的玩家引用。

静态函数

返回值

描述

GuiHookData:new_local()

GuiHookData

返回一个GUI钩子数据对象。

控件类(Control Class)

所有控件对象的基类,需创建于GUI容器内使用。

属性

类型

描述

Control.id

int

【只读】当前控件ID。

Control.x

int

当前控件在容器内的左上角横坐标。

Control.y

int

当前控件在容器内的左上角纵坐标。

Control.width

int

当前控件的宽度。

Control.height

int

当前控件的高度。

Control.visible

bool

当前控件是否可见。

Control.enabled

bool

当前控件是否可用。

物品格子控件类(Cell Class,继承自Control Class)

用于容纳物品格子的控件。

属性

类型

描述

Cell.allowPush

bool

当前物品格子控件是否允许放入物品。

Cell.allowPick

bool

当前物品格子控件是否允许取出物品。

Cell.hookSlot

ItemSlot

【只读】当前控件绑定的物品格子。

函数

返回值

描述

Cell:HookTempSlot()

void

为当前控件绑定一个临时物品格子。

Cell:HookBlockEntitySlot(ItemSlot itemSlot)

void

为当前控件绑定一个方块实体的物品格子。该物品只能从hookData.blockEntityRef中获取。

Previous指令APINext其他API

Last updated 4 years ago

Was this helpful?