村民大脑配置

村民大脑配置

一个高度优化的服务器端模组,允许完全配置村民寻路惩罚

游戏机制

村民大脑配置

一个轻量级、高度优化的模组,让村民寻路行为完全可配置

特性

  • 按方块恶感值控制 自定义村民在寻路中如何对待不同方块。方块可配置为任意恶感值,支持方块和物品标签

  • 基于职业的恶感值 为每种村民职业配置不同的路径偏好。

  • 全局方块惩罚缓存 寻路结果会被缓存,以便在多个村民之间实现最高效率

  • 原生模组支持 配置文件支持任何模组方块或职业


示例用例

  • 防止村民走进篝火或岩浆等陷阱方块
  • 让水路只对渔夫可行
  • 设计具有优化导航路径的自定义村庄布局
  • 防止村民偏离道路闲逛
  • 为每种职业类型增添个性

寻路可视化

聪明的村民走捷径到达他的工作站点

聪明的村民走捷径到达他的工作站点


愚蠢的村民走出屏幕去到达他的工作站点

愚蠢的村民走出屏幕去到达他的工作站点

计划中的功能

  • 按村民类型规则(例如平原村民、针叶林村民)
性能

村民大脑配置被设计为几乎对性能没有影响,甚至比原版更快

测试用例

  • 250 个村民
  • 每个村民寻路到网格中一个独特的工作站点
  • 使用 Spark 分析器比较原版与模组

结果

原版逻辑

原版:VillagerEntity.tick():7.42

模组逻辑

模组:VillagerEntity.tick():5.68

模组总计

villager-bran-config:1.75ms

配置

所有设置都在配置文件夹中的 villager-brain-config.json 文件里。

{
  "walk_on_block_penalties": {
    "minecraft:grass_block": 4.0,
    "minecraft:dirt_path": 0.0,
    "default": 5.0
  },
  "walk_through_block_penalties": {
    "minecraft:lava": -1.0,
    "minecraft:tall_grass": 20,
    "default": 0.0
  },
  "actions_penalties": {
    "jump": 10.0
  },
  "professions": {
    "minecraft:farmer": {
      "walk_on_block_penalties": {
        "minecraft:farmland": 0.0,
        "minecraft:grass_block": 2.0
      }
    },
    "minecraft:fisherman": {
      "walk_on_block_penalties": {
        "minecraft:water": 0.0
      },
      "walk_through_block_penalties": {
        "minecraft:water": 0.0
      }
    }
  },
  "avoids": [
    {
      "block": "minecraft:lava",
      "radius": 3,
      "penalty": -1.0
    }
  ]
}