
创建:高级频率网络
创建:AFN 是一个Create附属模组,将双槽频率组织成分层频道(例如,factory.production.line_01)。它增加了认证、工单、访问控制和身份验证功能,非常适合工厂、站点、基地和冒险地图使用。
查看大图Create: 高级频率网络(AFN)
视频教程(Bilibili,新视频即将推出!) · AFN WIKI
关于模组
Create: Advanced Frequency Network 通过更灵活的频率编辑、匹配和管理功能,扩展了机械动力的无线红石系统:
- 使用英文字母、数字和中文字符定义频段,并与机械动力及其附属模组中的无线红石设备兼容。
- 使用点号组织层级化的频段,并提供个人历史库。
- 使用通配符、字符集和局部排除规则来匹配信号。
- 引入完整的信号权限控制系统,以防止信号劫持。
- 将无线信息传输引入机械动力,除了传统的 0-15 离散整数无线信号强度值外,还可以传输文本、实数数组、布尔值以及可映射至 Synaxis 的结构化数据,具有巨大的开发潜力。
- 与 Synaxis、Aeronautics 和 CC:Tweaked 兼容,并适配 Aeronautics 的物理化设备。
- 在任何图形界面中,按空格键即可编辑频段,更加快速便捷。
频率网络
- 使用层级化频率(如
factory.production.line_01)组织大型无线网络。支持英文字母、数字和中文字符;点号用于分隔层级。 - 常规频率板可存储一个主频率和多达五个别名。别名可以使用“或”或“与”逻辑进行求值。
- 支持的匹配语法包括
?、单层*、跨层**、字符集(如[A-C]/[0-9]),以及仅适用于紧邻前一层的局部排除符!。 - 历史库按层级存储字面地址。输入一个字符后,会从当前层级提示条目。
- 经过认证的频率板提供所有者、读写访问控制列表(ACL)以及可选的安装锁。没有权限的玩家无法查看隐藏的主频率。
- 穿戴机械动力工程师护目镜的玩家,可以看到他们在世界中允许读取的频率标签。
局部排除示例
1.2.[1-9].!1!2!3![4-8].[2-4].!2!3
每个 ! 仅排除紧邻其前一层的简写项目,因此上面的表达式最终只匹配 1.2.9.4。字符集区分大小写;[A-Za-z0-9] 组合了大写字母、小写字母和数字。
邮箱
邮箱是一种单信道无线设备,具有与无线红石终端相同的信号接收和发送能力。在携带信号的同时,它还可以在接收端保留一个附加的值。
邮箱可以读取或写入机械动力显示链接器支持的信号源和输出目标。
可选输出目标
| 输出目标 | 输出目标 | 输出目标 | 输出目标 |
|---|---|---|---|
| 发光显示 | 翻板显示 | 告示牌 | 讲台 |
可选输入源
| 输入源 | 输入源 | 输入源 |
|---|---|---|
| 座位 | 置物台 | 发光显示 |
| 堆料开关 | 智能观察器 | 安山岩隧道 |
| 黄铜隧道 | 列车观察器 | 列车站 |
| 布谷鸟钟 | 应力计 | 速度表 |
| 流体储罐 | 工厂仪表 | 传送带 |
| 附魔台 | 重生锚 | 命令方块 |
| 标靶 | 罐子 | 展示支架 |
| 地球仪 | 公告板 |
配置自动写入或自动输出后,邮箱可以从其附着的方块读取信息,或将其存储的信息写入该方块。这两个选项不能同时启用。在发送或发送/接收模式下,使用红石为邮箱供能会将其当前值发送到配置的频率上。
邮箱使用 AFN 频率匹配,并支持通配符、字符集、局部排除、别名和认证。
AFN 桥接器
桥接器是一种独立的多信道控制器。每个桥接器最多存储 64 个信道,并且可以组合玩家交互、红石输入、CC:Tweaked、Synaxis 和无线信号源。标准桥接器内置 CRT;2×1×2 的大桥接器将相同的功能作为触控操作的世界显示器呈现。
每个信道使用一个统一的结构:
信道名称 + 主频率 + 可选次频率 + 可选值 + 激活状态
- 没有主频率时,信道仍然可以在本地存储、显示和编辑,但它不会加入无线网络。
- 次频率有三种模式:
无、手动频率和认证板。如果选择的认证板无效,则无线注册将安全失败(关闭)。 - 信道值可以是文本、布尔值或包含 1-7 个有限实数的数组。文本限制为 1,024 个 Unicode 码点和 4,096 个 UTF-8 字节。
- 无值和空字符串
""是不同的:清除值会移除负载;空字符串是一个真实的、存在的文本值,可以同步。 - 写入值不会激活信道,激活也不需要存在值。
票据与访问控制
- 票据机使用认证板批量签发或解绑票据;同一批次签发的票据最多堆叠 64 个。
- 票据显示其标题和签发者。用于验证的主频率绝不会在物品提示中显示。
- 票据验证器首先检查频率和 ACL,然后将票据存储在其 27 个槽位的保留票据库存中。如果库存已满,票据将不被消耗,访问也不会被授予。该库存可以与漏斗和机械动力溜槽交互。
- 票据验证器、身份读卡器和身份柱可以输出 20 个游戏刻的红石脉冲,并且可以发送一个由常规频率和认证身份组成的无序双频信号。
- 状态灯在空闲时保持熄灭,成功时亮绿色,失败时亮红色。
无线值边界
- AFN 桥接器 → AFN 桥接器:激活强度和一个可选值通过同一条允许的无线连接传输。
- AFN 桥接器 → 常规机械动力设备:常规设备仅处理 0-15 的强度并忽略值。
- 常规机械动力发射器 → AFN 桥接器:可以激活匹配的信道,但不能覆盖其值。
- 无线输入不会自动重发,以防止 A → B → A 的中继循环。无线发送仅由本地信号源(如红石、玩家、CC:Tweaked 或 Synaxis)驱动。
- 当多个信号源激活时,强度最高者胜出。对于携带值的信号源,一个稳定的信号源标识符会根据强度和仲裁规则选择一个胜出者。
CRT 与世界显示器
默认、开关、柱状图、仪表和地图是五种解释视图,而非五种存储类型。如果某个值无法被所选视图解释,该视图会在视觉上回退:开关显示关闭,图表显示 0,地图仅显示设备位置。只有在玩家实际触碰控件后,才会写入归一化值。
屏幕可以使用系统激活列表或保存的自定义显示顺序。详细地图支持缩放、点选和收藏点。它以低频读取客户端加载的地形,并且绝不会为了绘制地图而生成或强制加载区块。整数交互仅影响玩家屏幕输入;它不会改变常规 GUI、CC:Tweaked、Synaxis 或无线写入的精度。
红石绑定使用相对于屏幕正面的前、后、左、右、上、下方位。也可以选择全方向选项,以及精确强度或全部强度选项。一个输入可以同时激活多个信道。
可选集成
CC:Tweaked 1.118+
相邻的计算机或有线网络可以连接到 afn_bridge 外设。大桥接器的四个物理方块映射到同一个外设实例。该模组提供:
local afn = require("afn")
-- 强度 15,持续时间 20 个游戏刻;当主频率有效时进行无线发送
local pulse = afn.pulse("door")
assert(pulse.success, pulse.error)
-- 简单的覆盖写入无需先读取修订号
local changed = afn.set_value("door", "OPEN")
assert(changed.success, changed.error)
-- 无值和空文本是不同的
assert(afn.set_value("door", "").success) -- 存在空文本
assert(afn.clear_value("door").success) -- 移除值
仅在执行“读取 → 计算 → 写入”序列并且不想覆盖并发更新时,才传递 revision:
local current = assert(afn.value("counter"))
local changed = afn.set_value("counter", current.value + 1, current.revision)
if not changed.success and changed.error == "revision_conflict" then
printError("值已更改;请重新读取")
end
在没有认证板的情况下,每个非负的 ComputerID 都会被允许接入。安装认证板后,桥接器会检查认证板上的 ComputerID 白名单;空白的白名单会拒绝所有计算机接入。读取、激活和配置功能保持独立。策略更改会推送到已连接的会话;普通函数调用读取 O(1) 会话缓存,而不是每次都扫描世界、NBT、ACL 或白名单。
Lua 无法提交所有者、ACL、隐藏的认证频率或伪造的认证身份。认证次频率和临时认证传输仅使用桥接器自身的有效认证板。
afn 函数索引(43 个函数)
每个函数都接受可选的 CC 外设名称 bridge_name 作为其最后一个参数;当只连接一个桥接器时可省略。
发现与读取
afn.find([name])afn.channels([bridge_name])afn.active([bridge_name])afn.display_channels([bridge_name])afn.get(channel[, bridge_name])afn.state(channel[, bridge_name])afn.value(channel[, bridge_name])afn.channel_value(channel[, bridge_name])(value的别名)afn.information(channel[, bridge_name])(旧版读取)afn.frequency(channel[, bridge_name])afn.last_error(channel[, bridge_name])
激活与数值
afn.set(channel[, strength[, bridge_name]])afn.pulse(channel[, strength[, ticks[, bridge_name]]])afn.toggle(channel[, strength[, bridge_name]])afn.clear(channel[, bridge_name])afn.clear_all(channel[, bridge_name])afn.set_value(channel, value[, revision[, bridge_name]])afn.set_channel_value(...)(set_value的别名)afn.set_information(...)(旧版别名)afn.clear_value(channel[, revision[, bridge_name]])afn.clear_channel_value(...)(clear_value的别名)
主频率、次频率、显示与配置
afn.set_primary_frequency(channel, frequency[, bridge_name])afn.set_secondary(channel, mode[, frequency[, bridge_name]])afn.get_display_channel([bridge_name])afn.set_display_channel(channel[, bridge_name])afn.next_display_channel([bridge_name])afn.previous_display_channel([bridge_name])afn.set_channel_displayed(channel, displayed[, bridge_name])afn.set_display_channels(channels[, bridge_name])afn.create_channel(definition[, bridge_name])afn.update_channel(channel, changes[, bridge_name])afn.remove_channel(channel[, bridge_name])afn.set_channel_type(...)(旧版投影)afn.set_information_subtype(...)(旧版投影)
Synaxis、红石与临时发送
afn.set_synaxis_activation(channel, enabled[, format[, x, y[, bridge_name]]])afn.set_synaxis_receive(channel, enabled[, format[, x, y[, bridge_name]]])afn.set_synaxis_publish(channel, enabled[, format[, x, y[, bridge_name]]])afn.bind_redstone(channel, side, strength[, bridge_name])afn.unbind_redstone(channel, side[, bridge_name])afn.transmit_temporary(frequency[, strength[, attach_auth[, bridge_name]]])afn.pulse_temporary(frequency[, strength[, ticks[, attach_auth[, bridge_name]]]])afn.clear_temporary(handle[, bridge_name])afn.clear_temporary_all([bridge_name])
所有信道始终有效。receive_enabled=false 仅禁用无线输入;true 允许发送和接收。新信道默认设置为 receive_enabled=true 和 displayed=true。新程序应读取 schema_version、receive_enabled、primary_frequency、secondary_mode、secondary_frequency、value_present、value_kind、channel_value 和 value_revision。旧版的 type/subtype/value/attach_auth 快照字段和 information 函数在兼容期内保留,但无法完全表示同时具有主频率和值的信道。原始外设方法使用索引 0–38。
Synaxis
每个信道可以独立暴露三种稳定的端口类型:
- 激活输入: 仅控制 0-15 的激活强度;支持实数 / 布尔值。
- 值输入: 写入信道值;不激活信道。
- 值输出: 发布信道值;不激活信道。如果转换不可能,则发布所选 Schema 的安全默认值。
值端口支持实数、布尔值、Vec3 和四元数。Synaxis 要求连接两端的 Schema 匹配,因此在布线前选择端口格式。短数组会覆盖现有数组的前部并保留其尾部;长数组会扩展该值。输出会截断多余的分量并填充缺失的分量;缺失的四元数 w 分量填充为 1。Pose / Twist 仅保持存档兼容性,无法创建;Bundle 尚不支持。
依赖项与兼容性
- 所需环境:Minecraft 1.21.1、NeoForge 和机械动力 6.0+。
- CC:Tweaked 和 Synaxis 是可选集成;没有它们,AFN 的核心功能仍然可用。
- AFN 扩展了机械动力公开的双频无线链路。绕过该链路并实现独立通信系统的第三方设备不在自动兼容范围内。
正在加载版本记录…





正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。