MCIO Plugins MCIO Plugins
首页
爱发电 (opens new window)
无法下载? (opens new window)

人间工作P

我每天都好困… 最近在学习和进行 VOCALOID 创作
首页
爱发电 (opens new window)
无法下载? (opens new window)
  • PluginBase

  • Item-NBT-API

  • VectorDisplays

    • VectorDisplays 简介
    • 内嵌依赖
    • 控件定位
    • 动态添加元素
    • 使用案例
  • 开发文档
  • VectorDisplays
2025-11-04

动态添加元素

动态添加元素与预先添加元素略有不同。

在你执行

TerminalManager.spawn(terminal);
1

之后,会去执行 init 方法生成 Terminal 与 Element 的虚拟实体,
今后再执行 terminal.addElement 也不会生成虚拟实体了,所以需要你去手动生成实体。如下所示:

// 动态添加元素示例
Element element = new ...; //新建一个 Element
terminal.addElement(element, e -> { // 将其添加到 Element 里面
    // 可以进行额外配置
});
element.init(); // 初始化 Element 并创建虚拟实体
1
2
3
4
5
6

或者这样

new .../*新建一个 Element*/ {{
    // 进行额外配置
    // ......
    terminal.addElement(this); // 将其添加到 Element 里面
    this.init(); // 初始化 Element 并创建虚拟实体
}};
1
2
3
4
5
6

需要注意的是,必须要严格按照顺序执行,terminal.addElement 不仅仅是将 Element 添加到 Terminal,还会将 Terminal 绑定到 Element。

为什么需要先绑定 Terminal 再创建虚拟实体?

VectorDisplays 需要获取 Terminal 的位置和旋转变换,基于 Terminal 的参考系,计算 Element 的实体在世界上的位置。
如果没有绑定 Terminal,那么 Element 将无法取得参考系计算它在世界上的位置。

下面是一个错误案例

// 错误案例,请勿模仿
// 错误案例,请勿模仿
// 错误案例,请勿模仿
terminal.addElement(new .../*新建一个 Element*/, e -> {
    // ...进行一系列配置

    e.init(); // 不要在这里执行 init,此时还没有将 Terminal 绑定到 Element。
});
1
2
3
4
5
6
7
8

如果需要动态删除元素,则使用 terminal.removeElement 即可,不需要手动执行 element.dispose();。

上次更新: 2025/12/08, 04:32:33
控件定位
使用案例

← 控件定位 使用案例→

使用主题 Vdoing | Copyright © 2018-2025 人间工作P | 到爱发电支持我 | 8490200

除非特别说明,本站点所有文章均以 CC BY-SA 协议授权

《我的世界》和《Minecraft》是微软公司和 Mojang Synergies AB 的商标,本站点与微软公司等没有从属关系。

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式