All versions
1.1.0-forge1.20.1
Release
Betterworld(village) 1.1.0-forge1.20.15 months ago 17
Compatibility
Minecraft: Java Edition
1.20.1
Platform
Forge
Supported environments
Singleplayer only
Changes
版本:1.1.0 银行 AI、经济修正、GUI 和性能优化
银行 AI 节奏调整
-主要是优化和修复了一些上版本的功能,银行系统更稳定,顺便修了一下死亡之后实体的判断,很多地方没提。之后我会找个时间录个教程,然后暂时先不更了,累死我了。
- 删除实体晚间主动去银行开户、存钱、还贷的行为:
- 不再使用
BankEveningFinanceGoal/BankEveningFinanceTask。 - 晚上实体仍优先走通用回家流程,把身上
money按镇货币规则存回家容器。 - 晚上银行行为只保留银行方块自身日结:已有账户、活期有钱、并且有债时,银行自动用活期余额还贷。
- 不再使用
- 银行早间资金逻辑改为更合理的顺序:
- 先完成早晨家容器取钱。
- 有银行时才判断银行资金。
- 家里资金超过职业留存线时,早上会把多余部分存入银行活期。
- 身上钱 + 家里钱低于职业留存线时,才从银行活期取款;仍不够时才贷款。
- 贷款只用于补足留存线,不用于囤积、套利或扩大交易预算。
- 银行账务仍统一走
BankService/BankFinance。
离线模拟接入银行资金
- 镇级离线模拟现在会收集镇内银行方块。
- 离线每天补算时同步处理银行日结、活期自动还贷、早晨银行资金补足和晚上回家存钱。
- 离线总结中的资金变化改为按净资产估算:身上钱 + 家容器货币价值 + 银行存款 - 银行债务。
在线性能优化
- 新增错峰启动工具
Goals.canStartStaggeredNow。 - 早晨整理、农民库存、银行早间资金、晚间收工、回家整理、库存存放都加入错峰启动。
- 镇方块绑定总览按类型缓存,
TownblockEntity.getBlockInfosByType不再每次重新筛选整表。 - 新增短 TTL 查询缓存:
TownLookup缓存实体所属镇和镇内银行。HomeCurrencyCache缓存家容器货币价值,家容器货币变动时主动失效。
SensorSystem延后农田工作扫描,农民未完成早晨容器检查前不提前扫描农田。
国债模拟
- 新增镇金库发债、银行购买、到期还本付息模拟:
- 镇方块日结时判断是否发债。
- 默认发行频率为每 3 天一次。
- 默认债券期限为 7 天。
- 默认发行金额为镇金库余额 20%,并受金额上限限制。
- 银行购买后,银行流动现金减少,镇金库增加对应本金。
- 到期后,镇金库支付本金 + 利息;本金回银行流动现金,利息归银行家或银行现金。
- 镇管理页新增国债控制:
- 自动发债开关。
- 债券金额上限输入。
- 债券总利率输入。
- 债券列表页,可查看本金、利息、到期日、状态和购买银行坐标。
- 银行设置页新增自动买债开关。
- 银行购买条件支持流动现金不足时从金库实物货币补充。
公务员 AI 行为
- 公务员不再使用普通默认行为,新增
OfficialBehavior。 - 白天没有更高优先级目标时,公务员会待在所属镇方块附近:
- 通过
TownLookup.findTown找镇方块,使用缓存,不做每 tick 全镇扫描。 - 距离镇方块 6 格范围内时只 idle,不会反复移动到自己脚下。
- 通过
- 公务员消费更积极:
BudgetPolicy对公务员降低预留资金,工资更容易进入消费。HoardingStrategy对公务员放宽买入条件,接近均价也更愿意买。- 公务员囤货上限和单次购买量提高到普通人的约 1.5 倍。
- 仍然走
TradeService、BudgetPolicy、PurchaseElasticity,不新增第二套交易扣钱逻辑。
商人价格与经济稳定性
- 修正商人容易出现“收购价高于出售价”导致持续亏本的问题:
- 同一物品如果同时存在收购价和出售价,会自动检查利润空间。
- 检查时把镇税也算进成本,避免表面不亏、实际成交后亏钱。
- 优先压低收购价,只有极端低售价时才抬高出售价到最低不亏本线。
- 商人如果早晨通过银行贷款补足留存线,会给自己的商人方块记录一笔借贷压力:
- 当天日结时,这笔压力会转成额外的收购价下压。
- 避免商人靠贷款长期硬撑高收购价吸货。
predictTomorrowBuyPrice也同步加入利润保护,避免 GUI 预览和实际日结结果不一致。
商人 GUI 调整
- 商人方块“设置价格”子页面恢复显示玩家物品栏,方便直接把物品放到定价槽里。
- 商人方块主页面重新隐藏玩家物品栏,不再和价格子页面共用同样的可见布局。
- 商人价格设置菜单新增玩家背包槽位开关显示逻辑:
- 主页面隐藏。
- 设置价格页显示。
- Shift 点击可在玩家背包和两个定价槽之间快速移动物品。
镇财政参数调整
- 镇方块每日增发货币上限默认值从
1000调整为50000。 - 仍然保留每日上限机制;如果将上限配置为
0,则表示不设封顶。
实体重载与银行寻路错峰
- 实体退出重进世界后重新加载 AI 仍然保留,但新增冷启动错峰:
AIConfig.AI_LOAD_STAGGER_TICKS = 120- 同一批重新加载的 Steve 不会同 tick 一起恢复 Brain 和 Plan。
- 银行早晨资金行为错峰窗口扩大:
AIConfig.BANK_MORNING_STAGGER_TICKS = 1600- 降低大量实体同一时段一起去银行导致的寻路尖峰。
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:k233t5Y1:rlmFAoYj"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:k233t5Y1:rlmFAoYj"
}

