Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/自定义UI/UI界面.md
2025-03-17 13:24:39 +08:00

1147 lines
28 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebarDepth: 1
---
# UI界面
### ScreenNode
| 函数 | 描述 |
| --- | --- |
| [Update](UI界面.md#update) | 客户端每帧调用1秒有30帧 |
| [Destroy](UI界面.md#destroy) | UI生命周期函数当UI销毁时调用。 |
| [Create](UI界面.md#create) | UI生命周期函数当UI创建成功时调用。 |
| [OnDeactive](UI界面.md#ondeactive) | UI生命周期函数当栈顶UI有其他UI入栈时调用。 |
| [OnActive](UI界面.md#onactive) | UI生命周期函数当UI重新回到栈顶时调用。 |
| [SetScreenVisible](UI界面.md#setscreenvisible) | 设置是否显示本界面 |
| [ChangeBindEntityId](UI界面.md#changebindentityid) | 修改绑定的实体id**只对已绑定实体的UI界面生效如何将UI与实体绑定详见[CreateUI](通用.md#CreateUI)接口** |
| [BindVirtualWorldModel](UI界面.md#bindvirtualworldmodel) | 绑定虚拟世界中的模型 |
| [ChangeBindOffset](UI界面.md#changebindoffset) | 修改与绑定实体之间的偏移量,**只对已绑定实体的UI界面生效如何将UI与实体绑定详见[CreateUI](通用.md#CreateUI)接口** |
| [ChangeBindAutoScale](UI界面.md#changebindautoscale) | 设置已绑定实体的UI是否根据绑定实体与本地玩家间的距离动态缩放**只对已绑定实体的UI界面生效如何将UI与实体绑定详见[CreateUI](通用.md#CreateUI)接口** |
| [GetBindEntityId](UI界面.md#getbindentityid) | 获取该UI绑定的实体id未绑定的UI将传回默认值None |
| [GetBindOffset](UI界面.md#getbindoffset) | 获取该UI绑定实体的偏移量未绑定的UI将传回默认值(0, 0, 0) |
| [GetBindAutoScale](UI界面.md#getbindautoscale) | 获取该绑定实体的UI是否动态缩放未绑定的UI将传回默认值1 |
| [Clone](UI界面.md#clone) | 克隆一个已有的控件修改它的名称并将它挂接到指定的父节点上目前文本、图片、按钮控件的克隆控件表现正常其他复杂控件的克隆控件可能存在运行问题建议在json编写的过程中手动复制一份对应控件使用。 |
| [GetChildrenName](UI界面.md#getchildrenname) | 获取子节点的名称list |
| [GetAllChildrenPath](UI界面.md#getallchildrenpath) | 获取所有子节点的路径list |
| [RemoveComponent](UI界面.md#removecomponent) | 动态删除某一控件 |
| [SetRemove](UI界面.md#setremove) | 删除本界面节点 |
| [SetUiModel](UI界面.md#setuimodel) | 设置PaperDoll控件需要显示的模型,PaperDoll控件的配置方式详见<a href="../../../../mcguide/18-界面与交互/30-UI说明文档.html#paperdoll">控件介绍PaperDoll</a> |
| [SetUiEntity](UI界面.md#setuientity) | 设置PaperDoll控件需要显示的生物模型,PaperDoll控件的配置方式详见<a href="../../../../mcguide/18-界面与交互/30-UI说明文档.html#paperdoll">控件介绍PaperDoll</a> |
| [SetUiModelScale](UI界面.md#setuimodelscale) | 设置PaperDoll控件模型的缩放比例 |
| [UpdateScreen](UI界面.md#updatescreen) | 刷新界面,重新计算各个控件的相关数据 |
| [SetStackGridCount](UI界面.md#setstackgridcount) | 设置StackGrid控件的大小 |
| [SetSelectControl](UI界面.md#setselectcontrol) | 设置当前焦点所在的控件,当设置控件为文本输入框时会弹出系统小键盘 |
| [GetRichTextItem](UI界面.md#getrichtextitem) | 返回一个富文本控件实例 |
| [SetIsHud](UI界面.md#setishud) | 设置本界面的输入模式 |
| [GetIsHud](UI界面.md#getishud) | 获得本界面的输入模式 |
| [GetScreenName](UI界面.md#getscreenname) | 获得本界面的名称 |
| [GetSelf](UI界面.md#getself) | 获取零件界面自身 |
| [GetBaseUIControl](UI界面.md#getbaseuicontrol) | 根据路径获取BaseUIControl实例 |
### MiniMapBaseScreen
| 函数 | 描述 |
| --- | --- |
| [AddEntityMarker](UI界面.md#addentitymarker) | 增加实体位置标记 |
| [RemoveEntityMarker](UI界面.md#removeentitymarker) | 删除实体位置标记 |
| [AddStaticMarker](UI界面.md#addstaticmarker) | 增加地图上静态位置的标记 |
| [RemoveStaticMarker](UI界面.md#removestaticmarker) | 删除静态位置标记 |
| [ZoomIn](UI界面.md#zoomin) | 放大地图 |
| [ZoomOut](UI界面.md#zoomout) | 缩小地图 |
| [ZoomReset](UI界面.md#zoomreset) | 恢复地图放缩大小为默认值 |
| [SetHighestY](UI界面.md#sethighesty) | 设置绘制地图的最大高度 |
# ScreenNode
class in mod.client.ui.screenNode
ScreenNode的一些有用的函数界面Node节点的获取方式在<a href="../../../../mcguide/18-界面与交互/30-UI说明文档.html">UI使用文档</a>中有详细说明。
```python
import mod.client.extraClientApi as clientApi
uiNode = clientApi.GetUI("myModName", "myUIName")
```
假设下文中的函数uiNode为获取到的ScreenNode继承类调用的UI界面是按下面的节点树组织结构的
```
my_namespace
| main
| image
| image_button
| text1
| panel
| text2
| panel2
| text_edit_box
```
<span id="Update"></span>
## Update
- 描述
客户端每帧调用1秒有30帧
- 参数
- 返回值
<span id="Destroy"></span>
## Destroy
- 描述
UI生命周期函数当UI销毁时调用。
- 参数
- 返回值
<span id="Create"></span>
## Create
- 描述
UI生命周期函数当UI创建成功时调用。
- 参数
- 返回值
<span id="OnDeactive"></span>
## OnDeactive
- 描述
UI生命周期函数当栈顶UI有其他UI入栈时调用。
- 参数
- 返回值
- 备注
- 不建议使用在OnDeactive函数中调用SetScreenVisible(False)在OnActive函数中调用SetScreenVisible(True)的方式实现打开新界面时隐藏原界面新界面关闭时自动显示原界面的功能由于隐藏接口不会改动UI栈多Mod容易形成冲突。推荐使用PushScreenPopScreen接口实现。
<span id="OnActive"></span>
## OnActive
- 描述
UI生命周期函数当UI重新回到栈顶时调用。
- 参数
- 返回值
- 备注
- 不建议使用在OnDeactive函数中调用SetScreenVisible(False)在OnActive函数中调用SetScreenVisible(True)的方式实现打开新界面时隐藏原界面新界面关闭时自动显示原界面的功能由于隐藏接口不会改动UI栈多Mod容易形成冲突。推荐使用PushScreenPopScreen接口实现。
<span id="SetScreenVisible"></span>
## SetScreenVisible
- 描述
设置是否显示本界面
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| visible | bool | False为隐藏该界面True为显示该界面 |
- 返回值
- 示例
```python
# 我们隐藏当前UI的界面
uiNode.SetScreenVisible(False)
```
<span id="ChangeBindEntityId"></span>
## ChangeBindEntityId
- 描述
修改绑定的实体id**只对已绑定实体的UI界面生效如何将UI与实体绑定详见[CreateUI](通用.md#CreateUI)接口**
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| entityId | str | 绑定的实体id |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否修改成功 True:成功 False:失败 |
- 示例
```python
succ = uiNode.ChangeBindEntityId(entityId)
```
<span id="BindVirtualWorldModel"></span>
## BindVirtualWorldModel
- 描述
绑定虚拟世界中的模型
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| bindToObjId | int | 绑定的模型对象的id |
| offset | tuple(float,float,float) | UI与绑定实体的偏移量 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否修改成功 True:成功 False:失败 |
- 备注
- 绑定的对象销毁时UI不会销毁而是会隐藏起来建议复用或者销毁
- 示例
```python
# 若是被绑定的UI需要创建多份则需要使用此方式进行创建:
uiNode=clientApi.CreateUI("modNamespace","testUI", {
"bindEntityId": clientApi.GetLocalPlayerId()
})
virtualWorldComp = clientApi.GetEngineCompFactory().CreateVirtualWorld(clientApi.GetLevelId())
virtualWorldComp.VirtualWorldCreate()
objId = virtualWorldComp.ModelCreateObject("datiangou", "run")
succ = uiNode.BindVirtualWorldModel(objId, (0.0, 0.0, 0.0))
```
<span id="ChangeBindOffset"></span>
## ChangeBindOffset
- 描述
修改与绑定实体之间的偏移量,**只对已绑定实体的UI界面生效如何将UI与实体绑定详见[CreateUI](通用.md#CreateUI)接口**
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| offset | tuple(float,float,float) | 偏移量 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否修改成功 True:成功 False:失败 |
- 备注
- 不建议在第一人称视角下将本地玩家绑定UI的偏移量设为(0, 0, 0)
- 示例
```python
succ = uiNode.ChangeBindOffset((0, 3, 0))
```
<span id="ChangeBindAutoScale"></span>
## ChangeBindAutoScale
- 描述
设置已绑定实体的UI是否根据绑定实体与本地玩家间的距离动态缩放**只对已绑定实体的UI界面生效如何将UI与实体绑定详见[CreateUI](通用.md#CreateUI)接口**
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| autoScale | int | 1:动态缩放 0:不动态缩放 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否设置成功 True:成功 False:失败 |
- 备注
- 注意:
绑定实体的UI缩放仅作用于根节点比如"main"节点)下的子节点。
建议在根节点下挂载一个panel类型的节点然后将所有需要缩放的UI节点设置为百分比属性并挂载在这个panel节点下。
- 示例
```python
succ = uiNode.ChangeBindAutoScale(1)
```
<span id="GetBindEntityId"></span>
## GetBindEntityId
- 描述
获取该UI绑定的实体id未绑定的UI将传回默认值None
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| str | 绑定的实体id |
- 示例
```python
entityId = uiNode.GetBindEntityId()
```
<span id="GetBindOffset"></span>
## GetBindOffset
- 描述
获取该UI绑定实体的偏移量未绑定的UI将传回默认值(0, 0, 0)
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| tuple(float,float,float) | 偏移量 |
- 示例
```python
offset = uiNode.GetBindOffset()
```
<span id="GetBindAutoScale"></span>
## GetBindAutoScale
- 描述
获取该绑定实体的UI是否动态缩放未绑定的UI将传回默认值1
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| int | 1:动态缩放 0:不动态缩放 |
- 示例
```python
autoScale = uiNode.GetBindAutoScale()
```
<span id="Clone"></span>
## Clone
- 描述
克隆一个已有的控件修改它的名称并将它挂接到指定的父节点上目前文本、图片、按钮控件的克隆控件表现正常其他复杂控件的克隆控件可能存在运行问题建议在json编写的过程中手动复制一份对应控件使用。
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始的控件路径 |
| parentPath | str | 为从main节点开始父节点的控件路径 |
| newName | str | 为克隆成功后创建的新控件名称新控件的路径为parentPath/newName |
| syncRefresh | bool | 是否需要同步刷新默认值为True。置True为游戏在同一帧计算该控件的Size等相关数据置False则在下一帧进行计算。**如同一帧有大量clone操作建议置False操作结束后调用一次UpdateScreen接口刷新界面及相关控件数据** |
| forceUpdtae | bool | 是否需要强制刷新默认值为True。置True则按照syncRefresh逻辑进行同一帧或者下一帧刷新置False则当前帧和下一帧均不刷新需要手动调用UpdateScreen进行刷新。如有大量Clone操作且非在同一帧执行建议设置为False,需要更新时再调用UpdateScreen接口刷新界面及相关控件数据 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否克隆成功 |
- 示例
```python
# 克隆text2控件重命名为text3并以panel为父控件
parentPath = "/panel"
text2Path = "/panel/text2"
text3Name = "text3"
uiNode.Clone(text2Path, parentPath, text3Name)
# 以panel为父控件以text_prefab为模板克隆若干控件
parentPath = "/panel"
textPrefabPath = "/panel/text_prefab"
for i in range(0, 10):
uiNode.Clone(textPrefabPath, parentPath, "text" + str(i), False)
uiNode.UpdateScreen(True)
# 在非同一帧以panel为父控件text_prefab为模板克隆若干控件
parentPath = "/panel"
textPrefabPath = "/panel/text_prefab"
def _tickClone(newName):
uiNode.Clone(textPrefabPath, parentPath, newName , False, False)
def _tickUpdateScreen():
uiNode.UpdateScreen(True)
comp = clientApi.GetEngineCompFactory().CreateGame(levelId)
comp.AddTimer(100, _tickClone, "text1")
comp.AddTimer(200, _tickClone, "text2")
comp.AddTimer(300, _tickUpdateScreen)
```
<span id="GetChildrenName"></span>
## GetChildrenName
- 描述
获取子节点的名称list
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| parentPath | str | 为从main节点开始父节点的控件路径 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| list(str) | 返回父节点下的子节点的名称不会递归返回所有子节点若节点无子节点返回空list |
- 示例
```python
# get panel's children name
node.GetChildrenName("/panel")
```
<span id="GetAllChildrenPath"></span>
## GetAllChildrenPath
- 描述
获取所有子节点的路径list
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| parentPath | str | 为从main节点开始父节点的控件路径 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| list(str) | 返回父节点下的子节点的路径会递归返回所有子节点若节点无子节点返回空list |
- 示例
```python
# get panel's all children path
node.GetAllChildrenPath("/panel")
```
<span id="RemoveComponent"></span>
## RemoveComponent
- 描述
动态删除某一控件
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始被删除控件路径 |
| parentPath | str | 为从main节点开始父节点的控件路径 |
- 返回值
- 示例
```python
# we want to remove text2
text2Path = "/panel/text2"
parentPath = "/panel"
uiNode.RemoveComponent(text2Path, parentPath)
```
<span id="SetRemove"></span>
## SetRemove
- 描述
删除本界面节点
- 参数
- 返回值
- 示例
```python
# we want to remove this screen
uiNode.SetRemove()
```
<span id="SetUiModel"></span>
## SetUiModel
- 描述
设置PaperDoll控件需要显示的模型,PaperDoll控件的配置方式详见<a href="../../../../mcguide/18-界面与交互/30-UI说明文档.html#paperdoll">控件介绍PaperDoll</a>
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始的控件路径 |
| modelName | str | 骨骼模型的名称 |
| animateName | str | 动画名称,默认为'idle' |
| looped | bool | 是否循环播放动画默认为True |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否设置成功 |
- 示例
```python
# we want to change model
imagePath = "/paper_doll0"
uiNode.SetUiModel(imagePath, 'saber', 'idle', True)
```
<span id="SetUiEntity"></span>
## SetUiEntity
- 描述
设置PaperDoll控件需要显示的生物模型,PaperDoll控件的配置方式详见<a href="../../../../mcguide/18-界面与交互/30-UI说明文档.html#paperdoll">控件介绍PaperDoll</a>
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始的控件路径 |
| entityIdentifier | str | 生物定义中设定的identifier |
- 返回值
- 备注
- 暂不支持的微软原版模型minecraft:horse、minecraft:donkey、minecraft:mule骡子、minecraft:skeleton_horse骷髅马、minecraft:zombie_horse僵尸马、minecraft:llama羊驼、minecraft:tropicalfish热带鱼、minecraft:slime史莱姆、minecraft:magma_cube岩浆怪、minecraft:ghast恶魂、minecraft:shulker潜影贝、minecraft:ender_dragon末影龙、minecraft:thrown_trident三叉戟、minecraft:ender_crystal末影水晶、minecraft:boat、minecraft:tntTNT
- 示例
```python
# we want to show an entity model
imagePath = "/paper_doll0"
uiNode.SetUiEntity(imagePath, 'minecraft:cat')
```
<span id="SetUiModelScale"></span>
## SetUiModelScale
- 描述
设置PaperDoll控件模型的缩放比例
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始PaperDoll控件路径 |
| scale | float | PaperDoll的缩放比例默认为1.0 |
- 返回值
- 备注
- 当设置为原版生物模型时会导致偏移,建议开发者自行调整位置
- 示例
```python
imagePath = "/paper_doll0"
uiNode.SetUiModelScale(imagePath, 1.2)
```
<span id="UpdateScreen"></span>
## UpdateScreen
- 描述
刷新界面,重新计算各个控件的相关数据
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| syncRefresh | bool | 是否需要同步刷新默认值为True。置True为游戏在同一帧计算各个控件的相关数据置False则在下一帧进行计算。若置True不建议在同一帧调用多次 |
- 返回值
- 示例
```python
# 当前帧刷新界面
uiNode.UpdateScreen(True)
# 下一帧刷新界面
uiNode.UpdateScreen(False)
```
<span id="SetStackGridCount"></span>
## SetStackGridCount
- 描述
设置StackGrid控件的大小
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始Grid控件的路径 |
| count | int | 设置StackGrid的内容数量 |
- 返回值
- 示例
```python
# we want change stackgrid count
stackgridPath = "/stack_grid1"
uiNode.SetStackGridCount(stackgridPath, 3)
```
<span id="SetSelectControl"></span>
## SetSelectControl
- 描述
设置当前焦点所在的控件,当设置控件为文本输入框时会弹出系统小键盘
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始所要选中控件的路径 |
| enable | bool | True为选中componentPath所代表的控件False为取消选中 |
- 返回值
- 示例
```python
path = "/text_edit_box0"
uiNode.SetSelectControl(path, True)
```
<span id="GetRichTextItem"></span>
## GetRichTextItem
- 描述
返回一个富文本控件实例
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| componentPath | str | 为从main节点开始继承自rich_text.RichTextPanel控件的路径 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| RichTextItem | 返回一个富文本控件实例 |
- 示例
```python
# we want get a rich-text-item
richTextPath = "/RichTextPanel"
richTextItem = uiNode.GetRichTextItem(richTextPath)
```
<span id="SetIsHud"></span>
## SetIsHud
- 描述
设置本界面的输入模式
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| isHud | int | 设置1表示该界面不屏蔽游戏操作设置0则屏蔽。 |
- 返回值
- 示例
```python
# 我们需要设置本界面为HUD操作模式
uiNode.SetIsHud(1)
```
<span id="GetIsHud"></span>
## GetIsHud
- 描述
获得本界面的输入模式
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| int | 返回1表示该界面不屏蔽游戏操作返回0则屏蔽。 |
- 示例
```python
# 我们需要获得本界面的输入模式
isHud = uiNode.GetIsHud()
```
<span id="GetScreenName"></span>
## GetScreenName
- 描述
获得本界面的名称
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| str | 返回本界面的名称。仅当该界面是调用PushScreen方法生成的时候才有返回值返回值为注册UI时调用RegisterUI所使用的参数 uiScreenDef ,否则为 None |
- 示例
```python
# 我们需要获得本界面名称
screenName = uiNode.GetScreenName()
```
<span id="GetSelf"></span>
## GetSelf
- 描述
获取零件界面自身
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| ScreenNode | 零件界面自身 |
<span id="GetBaseUIControl"></span>
## GetBaseUIControl
- 描述
根据路径获取BaseUIControl实例
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| path | str | 当前控件的路径 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| BaseUIControl | 路径对应控件的BaseUIControl实例 |
- 示例
```python
# 根据路径获得BaseUIControl实例
text2Path = "/panel/text2"
text2UIControl = uiNode.GetBaseUIControl(text2Path)
```
# MiniMapBaseScreen
class in mod.client.ui.miniMapBaseScreen
MiniMapBaseScreen继承于ScreenNode实现了小地图基本的功能并且封装了一些操作小地图的接口。
备注:该功能属于<a href="../../../../mcguide/20-玩法开发/13-模组SDK编程/10-实验性功能.html">实验性功能</a>,目前在低端机可能会出现性能问题,建议开发者合理地使用该功能。
注意事项:
1不建议在飞行模式或者跑图模式下开启小地图
2如果重写了Create接口请先调用一下super(MiniMapBaseScreen, self).Create()
3如果重写了Destroy接口请先调用一下super(MiniMapBaseScreen, self).Destroy()
<span id="AddEntityMarker"></span>
## AddEntityMarker
- 描述
增加实体位置标记
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| entityId | str | 实体Id |
| texturePath | str | 头顶ICON贴图如textures/blocks/border |
| size | tuple(float,float) | 贴图大小,默认为(4,4) |
| enableRotation | bool | 是否启用实体朝向默认为False |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否增加成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.AddEntityMarker(entityId, "textures/ui/custom_head")
```
<span id="RemoveEntityMarker"></span>
## RemoveEntityMarker
- 描述
删除实体位置标记
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| entityId | str | 实体Id |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否删除成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.RemoveEntityMarker(entityId)
```
<span id="AddStaticMarker"></span>
## AddStaticMarker
- 描述
增加地图上静态位置的标记
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| key | str | 标记Id |
| vec2 | tuple(float,float) | 地图位置二维坐标(x,z) |
| texturePath | str | 贴图路径 |
| size | tuple(float,float) | 贴图大小,默认为(4,4) |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否增加成功 |
- 备注
- 如使用该接口请勿将地图缩小倍数设置过大建议ZoomOut设置后的地图倍数不小于原地图大小的0.5倍),以免造成地图缩小后静态标记位置失效等问题。
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.AddStaticMarker("this_is_marker_key", (10,2), "textures/blocks/border", (3,3))
```
<span id="RemoveStaticMarker"></span>
## RemoveStaticMarker
- 描述
删除静态位置标记
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| key | str | 标记的Id |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否删除成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.RemoveStaticMarker(entityId)
```
<span id="ZoomIn"></span>
## ZoomIn
- 描述
放大地图
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| value | float | 在原有基础上的增量值可以控制放大速度默认为0.05 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.ZoomIn(0.2)
```
<span id="ZoomOut"></span>
## ZoomOut
- 描述
缩小地图
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| value | float | 在原有基础上的减少值可以控制缩小速度默认为0.05 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否成功 |
- 备注
- 客户端地图区块加载有限如果地图UI界面太大或者缩小地图倍数太大会导致小地图无法显示未加载的区块。
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.ZoomOut(0.2)
```
<span id="ZoomReset"></span>
## ZoomReset
- 描述
恢复地图放缩大小为默认值
- 参数
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.ZoomReset()
```
<span id="SetHighestY"></span>
## SetHighestY
- 描述
设置绘制地图的最大高度
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| highestY | int | 绘制高度值 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否成功 |
- 备注
- 动态调整高度值后,已经绘制过的区块不会刷新为新的高度值,只有没有绘制过的区块会以新的高度值来绘制。
- 示例
```python
import mod.client.extraClientApi as clientApi
node = clientApi.CreateUI(modConfig.ModName, modConfig.UIName, {"mini_map_root_path": "/mainPanel"})
node.SetHighestY(250)
```