Glasses Terminal

基本信息

属性 值
注册名 openglasses:openglassesterminal
显示名 Glasses Terminal(tile.openglassesterminal.name)
源码类 OpenGlassesTerminalBlock(block/OpenGlassesTerminalBlock.java:20)
基类 BlockContainer
材质 Material.iron(:26)
TileEntity OpenGlassesTerminalTileEntity(tileentity/OpenGlassesTerminalTileEntity.java:49)

单层方块,非多方块。 无控制器、无几×几×几尺寸、不可旋转拆除。源码中无 multiblock 相关代码。

TileEntity

GameRegistry.registerTileEntity(OpenGlassesTerminalTileEntity.class, "openglassesterminal")(OpenGlasses.java:113)。

OpenGlassesTerminalTileEntity 的声明(:49):

public class OpenGlassesTerminalTileEntity extends TileEntityEnvironment implements IChatListener
父类 / 接口 来自 作用
TileEntityEnvironment OpenComputers 终端环境(Lua 运行时、驱动器)
IChatListener Computronics 接收聊天消息(ChatBox 升级用)

这是本模组唯一的 TileEntity,也是它与 OpenComputers / Computronics 的接缝:AR 眼镜覆盖层渲染的正是这个 TileEntity 里的终端。

注册与使用

方法 行为
createNewTileEntity(World, int) 创建上述 TE(:33)
getIcon(int side, int metadata) 分面贴图(:45)
onBlockActivated(...) 打开眼镜终端界面(:66)
onBlockPreDestroy(...) 破坏前清理(:83)
getTileEntity(IBlockAccess, int, int, int, Class<T>) 泛型取 TE 的静态辅助(:57)

合成配方

OpenGlasses.java:129:

GameRegistry.addRecipe(new ItemStack(openTerminal), "R  ", "S  ", "M  ",
                       'S', server, 'R', ram, 'M', cpu);
格 材料 OC 物品名 数量
左列顶 R Items.get("ram5") 1
左列中 S Items.get("geolyzer") 1
左列底 M Items.get("cpu3") 1

即 3 件材料竖排一列(几何分析仪 + 内存卡 + CPU),其余 6 格留空。

配套

眼镜通过 bindToTerminal(ItemStack glass, Location uuid) 绑定到本方块的 UUID 后,即可远程打开该终端——见 AR Glasses。

相关条目