园艺无人机基站

园艺无人机基站

alaindustrial:garden_drone_station
农业LV已实现tier-lvagriculturedroneautomationber

概览

园艺无人机基站——1×1 的方块底座(如同扫地机器人的基座),无人机会从中升空并巡视基站 周围半径 4 格的区域。无人机不是 Entity,而是由基站本身的 绘制的对象 —视觉上它看起来和移动起来都像飞行器,但物理上始终「属于」基站方块,无法离开其区域。

玩家把种子和骨粉放进基站,接上 EU/FE——无人机就会自己维护农田:犁空闲的土地、在合适土壤 上方的空格子里播种、用骨粉加速未成熟作物的生长,并把成熟作物直接运回其输出槽(世界中不出现 ItemEntity)。它取代了计划中但未实现的「自动作物护理」(crop_matron)和「收割机」 (crop_harvester)——一个方块替代两个,不重复机制。

能量

字段数值
角色带缓存的消费者
缓存(EU/FE)4000()
最大输入(EU/FE/刻)32(LV)
最大输出(EU/FE/刻)n/a(不输出)
每次行动 EU/FE8()

基站作为普通消费者在所有工作面上接入能源网络。EU/FE 仅为实际执行的动作扣除——犁地、 种植、施肥或采集一格——遵循电热器的模式:空闲(区域内 无事可做——种子/肥料耗尽,或所有格子已处理)消耗 0 EU/FE,基站会进入休眠 进入 idle-sleep,不浪费能量,也不变成网络的寄生槽。

加工

基站不使用加工配方系统——取而代之,每次无人机起飞(找到目标时)对区域中的一个格子执行 四种动作之一。

字段数值
配方类型无(非配方机器)
每次起飞动作数1(一个动作——一个格子)
自动卸载是(作物直接进入基站输出槽)

锄是两种动作的工具。 犁地和采集作物各消耗锄槽中 1 点耐久,无锄不执行:会因动作 而消耗但对动作不必要的工具,对玩家来说难以理解。种植和施肥不需要锄。

锄会用到尽头——然后槽位空出来。 基站消耗最后 1 点耐久后,锄会损坏并从槽中消失, 与在玩家手中完全一样:带损坏音效和粒子。这不是装饰,而是自动化的条件——空槽可从漏斗接受 新锄,农场可无人值守运行。磨损走原版路径,因此Unbreaking 附魔生效:附魔锄在基站中 和在手中一样耐用。已损坏的锄槽不接受——否则它会永久占用槽位。

动作优先级(按此顺序检查,执行第一个匹配的):

  1. 采集——区域内有成熟作物的格子(需要锄)。
  2. 种植——#minecraft:supports_crops 中土壤上方的空格子 + 槽中有合适的种子。
  3. 施肥——未成熟作物的格子 + 槽中有骨粉。
  4. 犁地——原版泥土或草的格子(需要锄;将其转为耕地)。

此顺序保证「农场自我维护」无中断:若没有作为第四动作的犁地,玩家首次扩展田地时该承诺 就会破裂。

种植土壤是原版标签,而非方块()。 种植(以及区域缓存中的格子筛选)把 #minecraft:supports_crops 中的任何方块都当作土壤——作物自身正是用同一个标签判断自己 能否立在方块上。因此无人机和作物在「什么算土地」上不会分歧:Farmer's Delight 的 rich soil farmland(以及任何加入该标签的模组土壤)无人机都当作原生农田来处理——不需要 任何一行知道外来 id 的代码。犁地不跟随该标签:只有原版的泥土和草才会被转为原版 耕地,外来土壤无人机绝不翻动——玩家的 rich soil 是用骨粉换来的,基站不应毁掉它。

飞行。 动作不在选定目标时发生,而在无人机到达后:无人机以 = 11 刻每格的速度飞向目标格,然后才在那里执行工作。飞行段不短于 MIN_FLIGHT_TICKS = 26 刻——否则相邻格子的飞行会比眼睛能注意到的还快。返航到基座所需时间与飞向目标 相同,加上 LANDING_PAUSE_TICKS = 6 刻——无人机在被处理的格子上停留(见下文),因此 一个「动作」周期最少 58 刻(≈2.9 秒),而不是一刻:基站以机器的节奏而非瞬间维护田地。 没有这一点,它会在几刻内服务整个农场——视觉上会读作瞬移,而非一台做活的机器。到达后任务 会重新验证:飞行期间世界可能已变化(玩家徒手采摘、活塞推动方块),因此目标会重新验证, 而非凭信仰接受。

飞行声音。 无人机在空中时,能听到轻柔的循环螺旋桨声,且来自无人机本身——声源随其 移动,而非挂在基站上。这是正确的:无人机飞出数格并从头顶掠过,若嗡嗡声来自基座则会被读作 错误。听觉半径 8 格、音量 0.22——模组中最低:这是唯一一个自己开向玩家的声音,也是唯一一个 几乎整个工作周期都在响的声音。在基座上以及无人机停留在被处理格子上的那几刻——安静。

犁地声音。 犁地时,无人机会发出与玩家手动锄地相同的原版锄声(minecraft:item.hoe.till) —音量和 pitch 也相同。四个动作中只有犁地配音:它有明确的原版参考,而种植、施肥和采集 没有。

完成工作后,无人机在格子上停留 6 刻,然后才返航。没有这一停顿,动作和返航段会在同一刻 开始:无人机在一帧内既触碰农田又从其上脱离,读起来像弹跳而非机器做活。停顿只在远端—— 在基座上它会改变动作发生的刻,而那正是所有测试场景计数的刻。

扫描区域。 基站周围半径 4 格()正好是一整块标准的 9×9 田地 (2 × 4 + 1):基座位于其正中,够得到任何一个角。这是第一等级的无人机,服务这样一块 田地——下一个等级仍有可改进的余地:同时服务多块田地,或把区域扩得比一块更大。 区域内的目标列表会缓存,并在半径内的方块更新时失效;缓存完整重建不超过每 = 20 刻一次。接触区域内任何位置之前必须检查 level.isLoaded——基站不强制同步加载未加载的区块。

作物成熟度大镰刀复用的通用谓词决定(同一个类决定收成是否就绪 —南瓜/西瓜茎、仙人掌/甘蔗底部、浆果丛和原版 CropBlock 在两处统一处理,没有边缘情况 分歧的风险)。

施肥通过标准的原版接口 BonemealableBlock棚架用于棉花的 同一组三个方法)——效果等同于手动骨粉,但无玩家、无模拟点击的粒子。

无玩家的采集。 基站不通过 ServerPlayer 路径破坏方块(没有玩家)——取而代之,它在 server-side 计算成熟作物的掉落,放入自己的输出槽,仅在全成功时直接拆除作物方块。不创建 ItemEntity,也不创建方块破坏事件——与抽水泵抽干水源时相同的 有意取舍。

物品栏

槽位接受数量
种子(0)带对应作物种子标签的物品至一叠
肥料(1)minecraft:bone_meal至一叠
无人机(6)——没有它基站不工作1
锄(7)任何锄(#minecraft:hoes);在犁地和采集时消耗1
输出 1–4(2–5)仅基站自动插入(作物);外部手动/自动化插入被阻止各至一叠

四个输出槽而非一个——成熟作物一次动作可能产生多种类型的物品(例如小麦会分别给出小麦本 身和小麦种子);模组机器基础模型不支持单一槽位混合内容。掉落物插入输出槽是两遍式的 (「先模拟所有堆叠容量 → 仅在全成功时变更」),输出满时不会有部分作物丢失。

界面

类型:container(基站 GUI)。 显示:能量缓存(条)、种子/肥料/输出槽、基站状态(缺资源 / 工作中 / 本周期全部完成 —可从远处通过无人机模型上的灯颜色读出)。

方块属性

基站基座不是完整的立方体:1×1 方块的薄板,带高亮的着陆轮廓、两个充电触点和角落的黄灯。 无人机由 绘制在其上,物理上没有独立于基站的碰撞箱/选中箱。

字段数值
形状较低高度的板(非完整立方体;遮挡体在方块下半部分)
硬度3.0
爆炸抗性6.0
工具
带 NBT 能量掉落无(缓存/物品栏/无人机状态通过 ValueInput/ValueOutput 保存,而非通过物品 NBT 掉落)

配方

合成:(铁/钢外壳、电子电路、作为 「向内收集」的漏斗、作为螺钉的铜)。 没有加工配方——基站不加工物品。

进阶

等级:LV。 供电:来自任何 LV 源,例如发电机。 取代(在 中,无代码):「自动作物护理」(crop_matron)和「收割机」 (crop_harvester)——一个方块替代两个固定方块,结果相同。 需要:合成用的电子电路(与本模组大多数 LV 机器一样)。

相关内容

喷灌器——同一块田里的邻居,两者职责不重叠。无人机站是点式工人:一次动作只作用一格,用骨粉和 EU/FE 付费,它翻地、播种、收割。喷灌器是被动范围:既不碰土也不碰庄稼,只让周围一切生长的东西长得更快,付的是营养液。它们本来就该摆在一起。 大镰刀——可复用作物成熟度谓词的来源。 棚架——本模组中已有的 BonemealableBlock 先例。 培育舱——带按索引标签验证的多槽物品栏和超出基础的 ContainerData 的范例。 抽水泵——带限制的区域扫描范例,以及机器在自己的 tick 中 无玩家地改变世界方块的唯一先例。 电热器——「仅因有用的刻消耗 EU/FE」(需求驱动)的范例。

合成

有序合成
任意铜锭
任意铁锭
任意铜锭
任意铁锭
电子电路
任意铁锭
任意铁锭
任意铁锭
任意铁锭
工作台
园艺无人机基站
园艺无人机基站