OpenComputers 机器人升级

基本信息

属性 值
物品 computronics.ocParts,meta 0 / 1 / 2 / 7 / 14
环境类 pl.asie.computronics.oc.driver.RobotUpgrade*
安装限制 只能装在 Robot 上的是 meta 7(ItemOpenComputers.java:97-99);其余只要求不是 Adapter(ItemOpenComputers.java:93)
槽位 全部为 OC Slot.Upgrade(ItemOpenComputers.java:181-183、:210、:224)
开关 各自独立,见下表

变体一览

meta 升级 类 @Callback 方法
0 摄像升级 RobotUpgradeCamera distance、distanceUp、distanceDown
1 聊天升级 RobotUpgradeChatBox getDistance、setDistance、getName、setName、say
2 雷达升级 RobotUpgradeRadar getEntities、getPlayers、getMobs、getItems
7 炫彩升级 RobotUpgradeColorful setColor、getColor、resetColor
14 语音升级 RobotUpgradeSpeech say、stop、isProcessing、setVolume

方法名由 @Callback 注解扫描得出(逐文件提取 pl/asie/computronics/oc/driver/RobotUpgrade*.java)。每个升级的完整 Lua 签名写在各自的 @Callback(doc = …) 上,例如 RobotUpgradeCamera.distance 为 function([x:number, y:number]):number,direct = true、limit = CALL_LIMIT(CALL_LIMIT = 15,RobotUpgradeCamera.java:18、:36-42)。

功能

升级 作用 实现要点
摄像 射线探测前方方块距离 getFacingDirection() 支持 Rotatable(无人机朝向)或回退到最近玩家的朝向(RobotUpgradeCamera.java:20-34)
聊天 发送消息、设置作用半径与名字 实现 IChatListener,接入 Computronics 的聊天 API
雷达 列出范围内实体 按类型拆成 4 个方法;距离受 radar.maxRange 截断,能耗按距离计费
炫彩 给机器人染色 需扣 COLORFUL_UPGRADE_COLOR_CHANGE_COST(默认 2 RF,Config.java:259-266);resetColor 恢复原色
语音 朗读文本 实现 IAudioSource + ICanSpeak,say(text) / stop() / isProcessing() / setVolume()

数值

数值名 值 范围 来源
enable.opencomputers.cameraUpgrade true 布尔 Config.java:180
enable.opencomputers.chatboxUpgrade true 布尔 Config.java:181
enable.opencomputers.radarUpgrade true 布尔 Config.java:182
enable.opencomputers.colorfulUpgrade true 布尔 Config.java:187
enable.opencomputers.speechUpgrade true 布尔 Config.java:194
power.ocColorfulUpgradeColorChangeCost 2 RF 0–10000 Config.java:259-266
power.ocRadarCostPerBlock 50 RF 0–10000 Config.java:436-443
RobotUpgradeCamera.CALL_LIMIT 15 硬编码 RobotUpgradeCamera.java:18

15 个开关与全部 power.* 项都只在加载 OpenComputers 时读入(Config.java:153 起)。

交互

变体 宿主限制
meta 0 / 1 / 2 / 14 不能装在 Adapter 上
meta 7 炫彩升级 只能装在 Robot 上

合成配方

见 OpenComputers 零件 的完整 15 项配方表。⚠️ 在 GTNH 中这些配方不会由 Computronics 注册(全部包在 if (!Computronics.isGTNHLoaded) 内,IntegrationOpenComputers.java:344、:367、:390、:478、:617)。

相关条目