
CC:相对路由
使用相对坐标而非id来调用外设
CC: 相对路由
CC: 相对路由添加了两个ComputerCraft外设,让你可以使用相对坐标而非外设ID与世界互动,从而让你的程序更加便携和可复用。
方块
红石路由器
向相对坐标和方块面发送无线红石信号。
将CC计算机连接至红石路由器,然后使用redstone_router外设:
local router = peripheral.find("redstone_router")
-- 给路由器以东3格、上0格、以北2格的方块北面供电
router.setRedstone(3, 0, -2, "north", 15)
-- 读取红石信号
print(router.getRedstone(3, 0, -2, "north")) -- 15
-- 移除所有活动信号
router.clearAll()
API
| 方法 | 描述 |
|---|---|
setRedstone(x, y, z, side, power) |
在目标方块的指定面上设置红石信号(信号强度0–15)。信号强度0移除该信号。 |
getRedstone(x, y, z, side) |
返回该偏移位置+面的当前存储信号强度。 |
clearAll() |
从该路由器移除所有活动信号。 |
side(面)可选值:north(北) south(南) east(东) west(西) up(上) down(下)
外设路由器
使用相对坐标(而非外设名称或侧面)来包裹附近任何与CC兼容的外设。该外设可以像直接连接到计算机一样使用。
local router = peripheral.find("peripheral_router")
-- 包裹偏移(3, 0, 0)处的显示器
local mon = router.wrap(3, 0, 0)
mon.setTextScale(1)
mon.clear()
mon.setCursorPos(1, 1)
mon.write("来自相对路由的问候!")
-- 包裹前检查偏移处有什么
if router.isPresent(0, 2, 0) then
print(router.getType(0, 2, 0)) -- 例如 "monitor"
print(router.getMethods(0, 2, 0)) -- 列出所有方法
end
-- 无需包裹即可调用单个方法
router.call(3, 0, 0, "write", "你好")
API
| 方法 | 描述 |
|---|---|
wrap(x, y, z) |
返回一个包含目标外设所有方法的代理对象。与外设交互时推荐使用此方法。 |
isPresent(x, y, z) |
如果偏移位置存在外设则返回true。 |
getType(x, y, z) |
返回外设类型字符串,若无则返回nil。 |
getMethods(x, y, z) |
返回外设上所有方法名称的表格。 |
call(x, y, z, method, ...) |
调用单个指定名称的方法。注意:对于返回值的方法可能返回nil。当需要返回值时请使用wrap()。 |
坐标是相对于外设路由器方块本身。适用于任何CC:Tweaked外设:显示器、扬声器、磁盘驱动器、调制解调器以及由其他模组添加的外设。
目标魔杖
目标魔杖是一个辅助物品,可以打印任意方块相对于路由器的正确相对坐标,这样你就不再需要手动数方块。
用法:
- 右键点击红石路由器或外设路由器将其选为控制器。
- 右键点击任意其他方块,即可在聊天中打印相对坐标和立即可用的Lua代码片段。
对于外设路由器目标,它还会检测该位置是否存在外设(如果有)。
配置
配置文件位于config/ccrelativerouting-common.toml。
| 选项 | 默认值 | 描述 |
|---|---|---|
maxRange |
128 |
红石路由器偏移的最大距离 |
peripheralMaxRange |
128 |
外设路由器偏移的最大距离 |
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。