界面

索引

接口
描述
BindPlayerStartFunction客户端绑定玩家点击灵免以太主界面进入游戏后的函数
AutoRegisterOriginalUI客户端自动注册原生方式UI,画布需要为基类画布
OpenOriginalUI客户端用原生方式打开UI,这种方式不再需要考虑键鼠模式
CloseOriginalUI客户端用原生方式关闭UI,这种方式不再需要考虑键鼠模式
CreateDefaultUI客户端常规UI注册并创建
CreateUIByEntity客户端常规实体UI注册并创建
RegisterUI客户端注册UI,不要重复注册损耗性能!
GetLingmienAetherUIObject客户端获取灵免以太主界面UI实例
GetUIObject客户端获取UI实例
SetButtonUpEvent客户端设置按钮弹起回调事件
SetButtonDownEvent客户端设置按钮按下回调事件
CloseVisibleAndOpenVisible客户端关闭一个控件显示和显示另一个控件
ResetAnimation客户端重制UI动画
SetLabelText客户端获取或设置文本控件文字
SetProgressBarValue客户端设置进度条控件的比例
SetImagePath客户端设置图像控件显示的图片路径
SetItemRender客户端设置物品渲染控件显示的物品内容
SetImageAndTextColor客户端设置图像控件或文本控件的颜色
SetEditText客户端获取或设置输入框控件文字
SetUIVisible客户端获取或设置UI控件的显示
OpenLA客户端模拟打开灵免以太主界面
GetScrollViewChildPath客户端获取滚动列表控件的子控件路径(无法通过绝对路径获取,只能使用该接口,然后使用相对路径获取其绑定的子控件内容)
GetCloneListByDemoPath客户端根据复制的UI路径获取该Demo复制后的结果列表
CloneUIControl客户端复制并粘贴UI到指定路径并指定名字
DeleteUIControl客户端删除UI控件

BindPlayerStartFunction

:::warning{title=注意} 请使用该接口绑定函数,在绑定的函数中创建UI,以防止界面混乱! ::: 客户端

  • 描述
    绑定玩家点击灵免以太主界面进入游戏后的函数

  • 参数

参数名数据类型说明
FunctionInstancefunction函数(无参数),例如self.CreateMsg,不要填写成self.CreateMsg()样式
IsAddbool是否是添加绑定,默认为True,则为添加类型反之为删除
  • 返回值

  • 备注

  • 示例 空


AutoRegisterOriginalUI

客户端

  • 描述
    自动注册原生方式UI,画布需要为基类画布。

  • 参数

参数名数据类型说明
ModNamestr模组名称
UINamestrUI名称
ScriptsNamestr脚本名称
ScreenNamestr画布名称,默认为main
  • 返回值

  • 备注
    推荐在客户端初始化的时候使用本接口,下载示例包体,记得前往config中填写你的许可证

  • 示例 空


OpenOriginalUI

客户端

  • 描述
    用原生方式打开UI,这种方式不再需要考虑键鼠模式

  • 参数

参数名数据类型说明
ModNamestr模组名称
UINamestrUI名称
UIDatadict需要给这个UI传输的数据,默认为{},会传到UI类的_init_函数中
IsESCbool是否允许使用ESC键关闭UI,默认为True
  • 返回值
    UI实例

  • 备注

  • 示例 空


CloseOriginalUI

客户端

  • 描述
    用原生方式关闭UI,这种方式不再需要考虑键鼠模式

  • 参数

  • 返回值
    是否成功 (bool)

  • 备注

  • 示例 空


CreateDefaultUI

客户端

  • 描述
    常规UI注册并创建
  • 参数
参数名数据类型说明
ModNamestr模组名称
UiNamestrUI界面名称
ScriptsNamestr脚本文件夹名称
AllValuebool'/all'界面是否显示
  • 返回值
    是否成功(bool)

  • 备注
    需要在对应路径创建ui脚本文件,命名为{UIName}.py,这里的{UIName}为界面编辑器中新建的***界面名称***。 :::warning{title=注意} 界面编辑器制作的UI需要有一个名为allpanel类型控件,推荐将所有的UI内容放置于all下面。 :::

  • ***Scripts脚本文件夹
    • ***Common
      • __init__.py
      • config.py
    • ModClient客户端文件夹
      • uiScriptUI脚本文件夹
        • __init__.py
        • {UIName}.py对应{UIName}的脚本文件
      • __init__.py
      • ClientEventList
      • ClientLingmienAether.py
      • EventApi.py客户端监听事件装饰器
      • GlobalClientSystem.py
    • ModServer服务端文件夹
      • ...
    • __init__.py
    • modMain.py

假设UIName为demo,则demo.py文件样式: :::info{title=提示} 其中拥有两个常用的继承函数:
Create: UI创建成功时调用该函数
Update: UI创建后的Tick函数 :::

# -*- coding: utf-8 -*-
import mod.client.extraClientApi as clientApi

ScreenNode = clientApi.GetScreenNodeCls()  # 获得ScreenNode类

class demoScreen(ScreenNode):   # 固定名称 {UIName}Screen
  def __init__(self, namespace, name, param):
    ScreenNode.__init__(self, namespace, name, param)

  def Create(self):
    pass
    
  def Update(self):
    pass
  • 示例
@Event.ClientEvent('UiInitFinished')
def UIInit(self, *args):
  self.LA.CreateDefaultUI('mymod', 'myui', 'mymodscriptsname', True)

CreateUIByEntity

:::error{title=注意} 同CreateDefaultUI接口需要UI脚本文件

实体UI需要用一个大的面板类型控件装下里面的内容,且大的面板控件需要使用绝对尺寸px,而子控件需要使用百分比尺寸。 ::: 客户端

  • 描述
    常规实体UI创建,需要使用RegisterUI注册UI才能创建

  • 参数

参数名数据类型说明
ModNamestr模组名称
UiNamestrUi界面名称
EntityIdstr绑定实体
Scaleint是否动态缩放头顶UI的大小
Offsettuplexyz偏移
  • 返回值
    该实体UI实例,注意:GetUIObject无法获取实error体UI类型 (object)

  • 备注

    • Scale值为(0 / 1),意为绑定实体的UI是否会自动根据实体与本地玩家的距离动态缩放大小,默认值为1,即会动态缩放头顶UI的大小。
    • 实体UI需要用一个大的面板类型控件装下里面的内容,且大的面板控件需要使用绝对尺寸px,而子控件需要使用百分比尺寸。
  • 示例 空


RegisterUI

:::warning{title=注意} 不要重复注册损耗性能! ::: 客户端

  • 描述
    注册UI,不要重复注册损耗性能!

  • 参数

参数名数据类型说明
ModNamestr模组名称
UiNamestrUi界面名称
ScriptsNamestr脚本文件夹名称
  • 返回值

  • 备注

  • 示例 空


GetLingmienAetherUIObject

客户端

  • 描述
    获取灵免以太主界面UI实例

  • 参数

  • 返回值
    返回灵免以太主界面UI实例 (object)

  • 备注

  • 示例 无


GetUIObject

客户端

  • 描述
    获取UI实例

  • 参数

参数名数据类型说明
ModNamestr模组名称
UINamestrUI名称
  • 返回值
    返回对应UI实例 (object)

  • 备注

  • 示例 无


SetButtonUpEvent

客户端

  • 描述
    设置按钮弹起回调事件

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ButtonPathstr按钮类型控件路径
FuncNamestr回调函数名称,需要有一个参数接收事件返回的dict参数
FuncObjectobject回调函数所在的实例,默认为None,则调用UI实例中的函数
  • 返回值
    是否成功 (bool)

  • 备注

  • 示例 无


SetButtonDownEvent

客户端

  • 描述
    设置按钮按下回调事件

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ButtonPathstr按钮类型控件路径
FuncNamestr回调函数名称,需要有一个参数接收事件返回的dict参数
FuncObjectobject回调函数所在的实例,默认为None,则调用UI实例中的函数
  • 返回值
    是否成功 (bool)

  • 备注

  • 示例 无


CloseVisibleAndOpenVisible

客户端

  • 描述
    关闭一个控件显示和显示另一个控件

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ClosedPathstr关闭显示的控件路径
OpenedPathstr开启显示的控件路径
  • 返回值

  • 备注

  • 示例 无


ResetAnimation

客户端

  • 描述
    重制UI动画

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
Pathstr控件路径
  • 返回值

  • 备注

  • 示例 无


SetLabelText

客户端

  • 描述
    获取或设置文本控件文字

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
LabelPathstr文本类型控件路径
Textstr需要设置的文字,默认为None,则不设置,返回当前文本控件的文字
  • 返回值
    当前文本控件的文字 (str)

  • 备注

  • 示例 无


SetProgressBarValue

客户端

  • 描述
    设置进度条控件的比例

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ProgressPathstr进度条类型控件路径
Percentfloat需要设置进度条的比例,1为100%
  • 返回值

  • 备注

  • 示例 无


SetImagePath

客户端

  • 描述
    设置图像控件显示的图片路径

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ImagePathstr图像类型控件路径
TexturePathstr需要设置图像所显示的图片路径,例如'textures/ui/LingmienAether'
  • 返回值

  • 备注

  • 示例 无


SetItemRender

客户端

  • 描述
    设置物品渲染控件显示的物品内容

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ItemRenderPathstr物品渲染类型控件路径
ItemNamestr, dict物品名称,例如'minecraft:stick'
现在支持直接将ItemDict作为参数传入
AuxValueint物品特殊值,默认为0(选填)
IsEnchantbool是否为附魔物品,默认为False(选填)
UserDatadict自定义数据,默认为空字典(选填)
  • 返回值
    是否成功 (bool)

  • 备注

  • 示例 无


SetImageAndTextColor

客户端

  • 描述
    设置图像控件或文本控件的颜色

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
UIPathstr图像控件或文本控件的路径
Colortuple颜色RGB(r, g, b),取值[0, 1]表示各色泽的百分比,及1=255
  • 返回值

  • 备注

  • 示例 无


SetEditText

客户端

  • 描述
    获取或设置输入框控件文字

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
EditPathstr输入框类型控件路径
Textstr需要设置的文字,默认为None,则不设置,返回当前文本控件的文字
  • 返回值
    当前文本控件的文字 (str)

  • 备注

  • 示例 无


SetUIVisible

客户端

  • 描述
    获取或设置UI控件的显示

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ControlPathstr控件路径
IsVisiblestr是否显示,默认为None,则不设置,返回当前UI控件是否显示
  • 返回值
    当前UI控件是否显示 (bool)

  • 备注

  • 示例 无


OpenLA

客户端

  • 描述
    模拟打开灵免以太主界面

  • 参数

  • 返回值

  • 备注

  • 示例 无


GetScrollViewChildPath

客户端

  • 描述
    获取滚动列表控件的子控件路径

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
ScrollViewPathstr滚动列表控件类型的路径
  • 返回值
    子控件路径 (str)

  • 备注
    无法通过绝对路径获取,只能使用该接口,然后使用相对路径获取其绑定的子控件内容

  • 示例 无


GetCloneListByDemoPath

客户端

  • 描述
    根据复制的UI路径获取该Demo复制后的结果列表

  • 参数

参数名数据类型说明
DemoPathstr复制的UI路径
  • 返回值
    复制的ResultName列表 (list)

  • 备注

  • 示例 无


CloneUIControl

客户端

  • 描述
    复制并粘贴UI到指定路径并指定名字

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
DemoPathstr复制的UI路径
ResultPathstr粘贴的UI路径,会粘贴在该目录下
ResultNameListlist粘贴后重命名的名字列表(不能重复)
IsClearbool是否清理之前所Clone的同Demo的内容,默认为True
  • 返回值
    粘贴后的UI路径数据,key为粘贴后重命名的名字 (dict)

  • 备注

  • 示例

def CloneModList(self, *args):
    ModDataDict = ModAttr.GetAttr(GlobalConfig.ModDataAttrKey)
    ModNameList = ModDataDict.keys()
    ScrollViewPath = self.LA.GetScrollViewChildPath(self, '/all/mod/left/scoreview')
    ResultPath = ScrollViewPath + '/list'
    DemoPath = ScrollViewPath + '/list/demo'
    ClonePathDict = self.LA.CloneUIControl(self, DemoPath, ResultPath, ModNameList)
    # 根据所返回的UI路径数据,对粘贴后的内容进行修改
    for ModName, ClonePanelPath in ClonePathDict.items():
        ModData = ModDataDict[ModName]
        UIEvent.SetButtonUpEvent(self, ClonePanelPath + '/button', 'SelectModList')
        self.GetBaseUIControl(ClonePanelPath + '/title').asLabel().SetText(ModName)
        self.GetBaseUIControl(ClonePanelPath + '/title/version').asLabel().SetText(ModData.get('Version', '未知'))
        self.GetBaseUIControl(ClonePanelPath).SetVisible(True, False)

DeleteUIControl

客户端

  • 描述
    删除UI控件

  • 参数

参数名数据类型说明
UIObjectobjectUI实例
DeletePathstr删除的UI路径
  • 返回值

  • 备注

  • 示例 无


评论交流

文档目录

灵免以太