
GlymeraCropSpread
成熟的作物会自动扩散到相邻的空农田方块上。
🌾 GlymeraCropSpread v1.1.0 🌾
成熟作物会自动扩散到邻近的空耕地方块。无需玩家干预,农场自然扩张!
大多数当前版本仅适用于 Hytale 稳定版 5!别错过我的其他精彩项目——查看 GlymeraCraft 的个人资料 Discord:https://discord.gg/s5NRFWfxgy
◆ 什么是 GlymeraCropSpread?
GlymeraCropSpread 是一个用于 Hytale 服务器的农场自动化插件。当作物达到完全成熟(最终阶段)时,它有机会扩散到邻近的空耕地方块——就像自然中草地的蔓延一样。新放置的作物会以幼苗形式开始生长,并通过 Hytale 内置的 FarmingBlock 系统自然成长。没有自定义的生长追踪,没有刻操作——只有自然的农场扩张。
种植几颗种子,等待,然后看着你的农场自行生长。
◆ 工作原理
该插件会以可配置的间隔(默认:每 60 秒)运行一个扫描周期。在每个周期中:
- 扫描所有已加载区块中成熟的作物(最终阶段)
- 对于每个发现的成熟作物,进行一次随机判定(默认:25%)
- 如果判定成功,插件会检查其 4 个相邻方块(北、南、东、西)
- 一个有效的扩散目标必须在其上方为空空气,下方为犁过的耕地
- 选择一个有效的随机目标,并放置一个相同类型的新幼苗作物
- Hytale 原生的 FarmingBlock 系统会接管并自然地培育新植物
▸ 扩散规则
- 只有成熟作物才会扩散 - 生长中的作物(阶段1、阶段2等)不会扩散。只有完全生长的最终阶段植物才会触发扩散。
- 需要耕地 - 源作物和目标位置下方都必须有犁过的耕地(Soil_Dirt_Tilled)。已浇水或已施肥的耕地变体也会被识别。
- 需要空空间 - 目标方块必须为空(空气)。作物不会覆盖现有方块。
- 仅限基本方向 - 作物会向北、南、东或西扩散。没有对角线扩散。
- 跨区块扩散 - 在区块边界处的作物可以扩散到相邻的已加载区块。
- 随机目标选择 - 如果有多个相邻方块有效,会随机选择一个。
- 每周期最大扩散次数 - 可配置的上限可防止大型农场出现性能问题(默认:每周期 50 次)。
◆ 支持的作物(16 种)
所有 16 种作物类型默认启用。每种作物都可以在配置中单独启用或禁用。
- 小麦
- 玉米
- 胡萝卜
- 土豆
- 番茄
- 洋葱
- 莴苣
- 花椰菜
- 茄子
- 辣椒
- 芜菁
- 南瓜
- 水稻
- 棉花
- 浆果
- 苹果
◆ 配置
首次启动时,配置文件会自动创建在:mods/GlymeraCropSpread/config.json
停止服务器,使用任意文本编辑器编辑该文件,然后重启服务器以应用更改。默认配置如下:
{
"spreadIntervalSeconds": 60,
"spreadChancePercent": 25,
"maxSpreadsPerCycle": 50,
"crops": {
"Plant_Crop_Wheat_Block": true,
"Plant_Crop_Corn_Block": true,
"Plant_Crop_Carrot_Block": true,
"Plant_Crop_Potato_Block": true,
"Plant_Crop_Tomato_Block": true,
"Plant_Crop_Onion_Block": true,
"Plant_Crop_Lettuce_Block": true,
"Plant_Crop_Cauliflower_Block": true,
"Plant_Crop_Aubergine_Block": true,
"Plant_Crop_Chilli_Block": true,
"Plant_Crop_Turnip_Block": true,
"Plant_Crop_Pumpkin_Block": true,
"Plant_Crop_Rice_Block": true,
"Plant_Crop_Cotton_Block": true,
"Plant_Crop_Berry_Block": true,
"Plant_Crop_Apple_Block": true
}
}
▸ spreadIntervalSeconds
插件扫描成熟作物并尝试扩散的频率。值越低,扩散越快,但服务器负载会略微增加。默认值:60 | 最小值:5
▸ spreadChancePercent
在每个扫描周期中,每个成熟作物尝试扩散的百分比几率。在 25% 时,大约每 4 个成熟作物中就有 1 个会在每个周期尝试扩散。默认值:25 | 范围:1-100
▸ maxSpreadsPerCycle
单个扫描周期中最多可以放置的新作物数量。这可以防止在拥有非常大农场的服务器上出现性能问题。默认值:50 | 最小值:1
▸ crops
按作物开关。将任何作物设置为 false 以阻止其扩散。如果你只想让某些作物自动扩展,这会很有用。示例 - 禁用小麦和玉米扩散:
"crops": {
"Plant_Crop_Wheat_Block": false,
"Plant_Crop_Corn_Block": false,
...
}
◆ 性能
GlymeraCropSpread 旨在将对服务器的影响降至最低:
- 区块级过滤 - 在开始任何方块级扫描之前,会完全跳过没有成熟作物的区块
- 区域级过滤 - 在区块内,没有成熟作物的区域(32x32x32)也会被跳过
- FastUtil 集合 - 使用高性能整数哈希集进行方块 ID 查找,而非标准 Java 集合
- 扩散上限 - maxSpreadsPerCycle 设置确保扫描周期在达到上限后提前终止
- 限制 Y 轴范围 - 仅扫描 Y=30 至 Y=200 之间的区域,跳过地下和天空区域
- 无刻操作 - 不修改 Hytale 的内部刻速率或农场系统。放置后的生长完全是原生的。
◆ 安装
- 停止你的 Hytale 服务器
- 将 GlymeraCropSpread-1.1.0.jar 复制到你服务器的 mods/ 文件夹中
- 启动服务器
- 配置文件将自动创建在 mods/GlymeraCropSpread/config.json
- 查看服务器日志以获取信息:"[GlymeraCropSpread] Started v1.1.0 - Interval: 60s, Chance: 25%, Max/Cycle: 50"
server/
└── mods/
└── GlymeraCropSpread-1.1.0.jar
无需资源包。无需依赖。仅一个 JAR 文件。
◆ 服务器日志输出
日志消息示例:
[GlymeraCropSpread] Config loaded
[GlymeraCropSpread] Farmland 'Soil_Dirt_Tilled' -> ID 3421
[GlymeraCropSpread] Crop 'Plant_Crop_Wheat_Block' -> StageFinal ID 5102
[GlymeraCropSpread] Crop 'Plant_Crop_Corn_Block' -> StageFinal ID 5118
[GlymeraCropSpread] Resolved 16 crop types, 4 farmland IDs
[GlymeraCropSpread] Started v1.1.0 - Interval: 60s, Chance: 25%, Max/Cycle: 50, Crops: 16, Farmland IDs: 4
[GlymeraCropSpread] Spread 12 new plants
[GlymeraCropSpread] Spread 8 new plants
[GlymeraCropSpread] Stopped.
◆ 技术细节
- 未注册 ECS 系统 - 该插件使用一个独立于 Hytale 实体系统的计划执行器任务
- 通过 BlockAccessor.setBlock() 使用基础作物方块名称进行方块放置 - Hytale 的 FarmingBlock 系统原生处理所有生长阶段
- 成熟作物通过其最终阶段交互状态方块 ID(例如 *Plant_Crop_Wheat_Block_State_Definitions_StageFinal)检测
- 耕地检测包括所有犁过的土壤变体:基础、已浇水、已施肥、已施肥+已浇水
- 方块操作通过 world.execute() 推迟到世界线程执行,以避免并发问题
- 所有方块 ID 查找均使用 FastUtil IntOpenHashSet 和 Int2ObjectOpenHashMap 以实现 O(1) 性能
- 扫描范围限制在 Y=30-200,并进行区域级预过滤(区域高 32 个方块)
◆ 总结
- 支持 16 种作物类型,均可单独切换
- 自动扩散 - 成熟作物扩散到邻近的空耕地
- 原生生长 - 新植物通过 Hytale 内置的 FarmingBlock 系统生长
- 可配置 - 间隔、几率、最大扩散次数、按作物开关
- 性能优化 - 区块和区域预过滤、FastUtil 集合、扩散上限
- 支持跨区块 - 区块边界处的作物可扩散到相邻区块
- 零依赖 - 一个 JAR,无需资源包,无需外部库
- 可识别耕地 - 识别基础、已浇水、已施肥和已施肥+已浇水耕地
◆ 更新日志
▸ v1.1.0
- 添加了区域级预过滤以提高扫描性能
- 添加了耕地变体检测(已浇水、已施肥)
- 配置验证并强制执行最小值
▸ v1.0.0 - 初始发布
- 自动作物扩散,具有可配置的间隔、几率和上限
- 16 种作物类型,支持按作物开关
- JSON 配置,自动生成
◆ 支持
遇到问题或有疑问?在此处留言或访问我们的 Discord!
由 GlymeraCraft 开发
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。