nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)
Betterworld(village)

Betterworld(village)

Mod

This mod adds a new entity to Minecraft, providing players who want to simulate civilizations or build cities with a way to inject vitality and energy into their worlds.

Client and server EconomyGame Mechanics

52 downloads
0 followers

Betterworld(village) 1.0.7-forge1.20.1

Changelog

版本:1.0.7 多实体绑定与居民管理

多实体绑定

  • 家方块、农场方块、工坊方块、资源点方块支持多实体绑定。
  • 绑定列表使用 BoundEntities 保存,列表首位仍作为 owner 兼容旧存档。
  • 家方块容量改为手动可调,不再由床数直接决定。
  • 各方块管理页新增分页、解绑、容量调整和每个实体的“详细”入口。

居民与镇管理

  • 镇方块新增居民管理入口,可汇总镇范围内所有家方块的居民名单。
  • 支持手动登记镇居民、排除镇居民,以及查看居民详情。
  • 居民详情页改为打开独立的 Steve 信息界面,支持 ESC 返回上一页。

镇强加载

  • 镇管理页新增“强加载”子页面,可为当前镇开启或关闭强加载。
  • 强加载范围按区块半径配置,当前上限为 8 个区块半径,并会在页面中显示预计区块数量和大致方块宽度。
  • 设置保存在 TownblockEntityForceLoadEnabledForceLoadRangeChunks NBT 字段中。
  • 开启后镇方块会通过 ServerLevel.setChunkForced(...) 保持周围区块加载;关闭、调整范围或镇方块被替换/破坏时会撤销旧范围。
  • 强加载开启时,镇会被视为持续精确运行状态,不触发无人镇离线补算,避免真实 tick 和离线模拟重复结算。

床位与睡觉

  • Steve 床位统一改为 BedInfo,保存床头、床脚和朝向。
  • SleepTask 和离线睡眠都直接按 BedInfo 定位,不再使用旧的 BedPos 三元坐标。
  • 修复睡觉时实体落到床下面的问题:BedInfo.sleepY() 现在使用床面高度 Y + 0.5625,在线睡觉和离线回城睡觉都会使用同一坐标。

离线模拟拆分

  • 离线模拟逻辑已拆到 src/main/java/com/BetterWorld/block/entity/townblock/offline/
  • 新增 OfflineTradeExecutor 复用实时交易的核心校验,离线流程不再写第二套交易逻辑。
  • 离线补算继续按天循环,维持资源点、农民、工匠、生活费、商人日结的顺序。

修复 部分

  • 管理居民/工人页面的“详细”按钮现在打开独立 Steve 信息界面,不再把详情挤在原页面右侧。
  • 从 Steve 信息书直接打开详情时,按 ESC 关闭;从家、农场、工坊、资源点或镇管理页面打开详情时,按 ESC 返回上一管理页面。
  • Steve 信息菜单改为保存实体 ID 并延迟解析实体,避免从管理页点“详细”后一闪而过或立刻关闭。
  • 从管理页查看居民详情时不再强制要求玩家离该 Steve 足够近,只要服务端能找到该 Steve,就允许打开资料页。
  • 如果客户端暂时还没同步到目标 Steve,资料页会显示“正在加载史蒂夫资料...”,而不是空白或直接关闭。
  • 绑定容量不能被减到当前绑定人数以下;继续点击减号会提示玩家先解绑多余成员。
  • 镇居民列表里的家方块坐标显示位置左移,避免太靠右导致页面拥挤。

交易资金不足回家取钱

  • 新增通用交易补钱流程:AI 交易遇到 buyer_no_moneybuyer_payment_failedmerchant_no_money 时,会登记补钱请求并尝试回家从家容器取镇货币。
  • 买家钱不够时买家回家取钱;商人收购物品时钱不够,则由商人自己回家取钱。
  • 补钱目标通过 TradeMoneyRefillGoal / TradeMoneyRefillTask 执行,优先级高于普通工作和交易,但低于危险、睡觉和吃饭。
  • 普通职业交易、买食物、工坊买材料/卖成品、资源工卖货、囤积交易和套利交易都会识别资金不足失败。
  • 对于还没进入 TradeService 就被预算预判挡住的情况,农民买种子、买食物和工坊买材料也会主动登记补钱请求。
  • 如果只是资金不足,不会立刻挂长交易失败冷却;补钱后可以重新尝试。家里没有可用货币时会写日志并进入短冷却,避免反复跑家。
  • 补钱请求会去重,同一段时间内不会刷屏;如果后续交易需要更多钱,会抬高已有请求金额并刷新 TTL。

性能说明

  • 在线真实运行时,主要性能消耗仍来自实体 AI、寻路、Sensor 扫描、农民巡田、商人查找和容器/方块交互;多实体绑定会增加实体数量带来的线性成本,但不会额外引入每 tick 的全镇大扫描。
  • 镇方块居民页和绑定总览主要在打开 GUI 或渲染页面时汇总当前镇数据,不应放到高频 tick 中反复扫描。
  • 无人镇会让商人和资源点跳过精确 tick,再在玩家回镇时走镇级离线摘要补算;离线模拟按天、按镇、按容器做低粒度估算,成本通常比让所有实体持续真实跑 AI 低得多。
  • 后续如果出现卡顿,优先检查 SensorSystemMerchantFinder、农民巡田扫描、资源点生产频率、活跃 Steve 数量和正在打开的管理 GUI,而不是先怀疑离线模拟。
  • 关闭默认 AIDebug 控制台输出,避免大量 AI 目标/移动/交易日志拖慢 tick。
  • 商人绑定实体查询增加同 tick 缓存;MerchantFinder 只需要排除“商人自己”时改为直接比 UUID,减少 256 格实体扫描。
  • 多实体绑定查询增加同 tick 缓存,降低家/农场/工坊/资源点反复读取绑定实体时的扫描成本。
  • 资源点 tick 优化为只有真正产出时才查找可投递资源工;普通规则进度不再每 tick 同步方块实体。

Files

betterworld-1.0.7-forge1.20.1.jar(849.59 KiB) Primary Download

External resources


Project members

xxxx_62669

Member


Technical information

License
MIT
Client side
required
Server side
required
Project ID