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.6-forge1.20.1

Changelog

版本:1.0.6 镇级离线模拟和离线摘要

套利和交易日志

  1. 修复套利失败原因显示

    • arbitrage_failed 日志中的失败原因现在会走 log.betterworld.trade_failure_reason.* 翻译。
    • 不再把 reverse_trade_loop 这类内部原因 key 直接显示给玩家。
  2. 套利候选提前避开反向交易限制

    • ArbitrageStrategy 在挑选买入商人和卖出商人时会检查 TradeLoopGuard
    • 被短期反向交易限制挡住的套利机会会被跳过,减少“刚发现机会就失败”的刷屏日志。

离线模拟

  1. 按镇级边界触发

    • 离线模拟不再盯着单个区块加载等级,而是看镇范围内是否还有非旁观玩家。
    • TownblockEntity 会记录最后一次强加载时的 LastStrongLoadedGameTimeLastStrongLoadedDayTime
    • 镇范围内无人时,商人和资源点跳过精确 tick;玩家回来后如果离线时长超过 town.offlineSimulation.minTicks,镇会按时间差补算。
    • 默认最小离线时长是 6000 tick,单次最多补算 town.offlineSimulation.maxDays 天,默认 30 天。
  2. 按天循环计算

    • 离线补算不是把所有结果一次性算完,而是按“天”循环推进。
    • 每天先抓一份当日商人价格快照,再用这份快照执行当天离线交易。
    • 当天交易结束后,再做商人跨日经济结算,第二天交易就使用更新后的价格。
    • 这样可以避免“同一天前后价格不一致”或“离线交易误用未来价格”的问题。
  3. 当前已经补算的内容

    • 资源点:按产出规则补生产,产物先进入资源点容器,再按比例由资源工从容器中售出。
    • 农民:会读取绑定农场方块缓存的耕地和作物扫描结果,按作物类型和离线天数估算日均产量;估算收获先进入农民家容器,再和家中已有农产品一起按比例卖给商人。
    • 工匠:会按工坊配方、家容器材料和每日加工上限估算加工批次,消耗材料并把成品存回家容器;随后出售家容器里的成品,并按材料缺口从商人处买回一部分材料。
    • 生活费:按离线天数从每个镇内绑定 AI 的个人 money 中扣固定日常开销,扣掉的钱直接消失。
    • 关系:镇内绑定 AI 会按离线天数累积少量社交好感变化,并写入统一日志。
    • 位置:离线结束后不回放路径,只按当前时间把 AI 放到工作点、家附近或床附近的合理锚点。
  4. 计算原则

    • 所有离线交易都受性格影响,交易比例会乘以 PersonalityProfile.offlineTradeRatioMultiplier();当前覆盖资源售卖、农民出售、工匠出售、工匠采购和工匠加工上限。
    • 交易按当天价格快照结算,商人资金不足时只成交可支付数量,剩余物品回到原容器。
    • 资源点、农民、工匠的离线交易都只扫描绑定容器,不会乱扫其他箱子。
    • 离线模拟的目标是“前情提要”,让资金、价格、库存、关系、日志和位置能互相解释,而不是精确还原每一秒。
  5. 离线摘要

    • 每个 Steve 还会保存一条单独的离线摘要。
    • 摘要会从价格波动、资金变化、交易卡住、里程碑和关系变化里挑 3 到 5 件最重要的事。
    • 信息书日志页顶部会先显示这条摘要,再显示按天分页的详细日志。
  6. 离线模拟代码结构拆分

    • 离线模拟逻辑已从 TownblockEntity 抽到 src/main/java/com/BetterWorld/block/entity/townblock/offline/
    • TownOfflineSimulation 负责总控,OfflineTownContext 负责收集镇内实体、家、工坊和商人。
    • OfflineTradeServiceOfflinePlacementServiceOfflineSocialService 分别处理离线交易、落点和关系变化。
    • TownblockEntity 只保留触发入口和必要状态访问器。
  7. 新增 OfflineTradeExecutor

    • 离线买卖由 OfflineTradeExecutor 统一执行,复用实时交易同类核心规则:价格、库存、资金、收购容量、税额和经济统计。
    • 离线交易使用当天价格快照,不写实时商人经营日志,不触发实时经济页网络同步。
    • MerchantblockEntity 新增离线统计记录方法,只更新统计并标记脏数据,避免无人镇补算时发送实时同步包。
    • 资源点本体只负责离线产出到资源点容器,资源工售卖统一交给镇级离线交易服务。
  8. 农民离线产量估算

    • OfflineTownContext 现在会收集绑定到农民的 FarmblockEntity
    • OfflineTradeService 会根据农场扫描缓存中的耕地数量和作物类型估算每日产量。
    • 小麦、胡萝卜、土豆、甜菜会按不同作物产物进入农民家容器,并写入离线产出日志和离线摘要。
    • 该逻辑不修改真实田地状态,只用于让离线期间的农民库存、出售、资金和日志能互相解释。
  9. 工匠离线加工

    • 工匠离线期间会按工坊配方检查家容器材料,估算可加工批次。
    • 加工会消耗家容器中的材料,把成品放回家容器,再进入同一天的离线出售流程。
    • 加工批次受 WORKSHOP_MAX_CRAFTS_PER_WORK_TASK 和性格倍率影响,不模拟逐 tick 加工。
    • 资源工离线日志措辞改为“资源点物资被售出”,避免误导玩家以为真实执行了取货路径。

Files

betterworld-1.0.6-forge1.20.1.jar(771.94 KiB) Primary Download

External resources


Project members

xxxx_62669

Member


Technical information

License
MIT
Client side
required
Server side
required
Project ID