Betterworld(village) 1.1.2-forge1.20.1
Alpha15.05.2026
Список изменений
版本:1.1.2 工作身份修正、GUI 整理与实体细节调整
-可以说这个版本实现了玩家当老板工人的所有设计,额理论上玩家甚至能给ai老板当员工。不过我不知道效果怎么样。
老板、员工与职业保持
- 修正有员工的老板被刷新成
none职业后原地站着不动的问题。 - 工作绑定刷新现在区分“是否亲自占用工作点”和“是否属于某个工作点”。
- 有员工的 owner 仍保留原职业和工作点,但对应工位工作 Goal 会被
WorkOwnership跳过,转入老板生活模式。 - 单 owner 没有员工时仍照旧亲自工作。
银行家买食物优先级
- 修正银行家在缺食物时仍长期站岗的问题。
BankerWorkGoal现在只要检测到FoodPolicy.needsFood(steve),就不会继续启动或维持站岗。PlanExecutor现在会在当前 Goal 的canContinue变为 false 时允许切换目标,避免长时间站岗计划挡住买食物、回家取钱等行为。
GUI 主界面整理
- 银行方块主界面重新排版:范围输入、范围操作、财务状态、owner/容量和底部入口按钮重新分区。
- 资源点主界面重新排版:范围输入、范围操作、绑定操作、工作/规则入口分别成行。
- 银行和资源点主界面的长文本会裁切,减少文字和按钮重叠。
网络权限与服务端校验
- 家、农场、商人、镇方块的范围设置包补齐距离、管理权限和范围夹取校验。
- 商人改价包补充管理权限和距离校验,避免非 owner / 非镇主伪造包改价格或收购上限。
- Steve 作息设置新增
SteveAccess权限判断,只有能管理该实体绑定家、工作点或镇方块的玩家,以及创造 / OP 玩家,才能修改作息。 - Steve 信息页打开包增加距离校验,普通玩家不能远程打开任意已加载 Steve 信息页。
- 清理 GUI 和网络包中残留的
System.out.println调试输出。
Steve 皮肤与性别
- Steve 皮肤现在按性别选择:
- 男性从
steve.png、steve1.png、steve2.png中随机选择。 - 女性从
alex.png、alex1.png、alex2.png中随机选择。
- 男性从
- 渲染器按性别切换模型:男性使用普通 Steve 模型,女性使用 slim Alex 模型。
- 性别判断改用 Unicode escape,避免 Java 源码中文编码损坏导致判断失败。
- 已保存
SkinPath的旧实体不会自动重抽皮肤;新生成或没有保存皮肤路径的实体会按新规则抽取。
饥饿消耗
- 在线饥饿消耗改为每
1600 tick扣 1 点。 - Minecraft 一天为
24000 tick,因此现在一天约扣15点饥饿值。 - 离线模拟同步使用同一个
SteveEntity.HUNGER_LOSS_INTERVAL_TICKS,保持在线和离线消耗一致。
AI 计划切换与失败冷却
PlanExecutor修正同一个 Goal 反复重启自己的问题,只有更高优先级目标,或当前目标不能继续且新目标优先级不低时才切换。- 修正农民工作 / 巡田、资源工工作 / 返回资源点等计划来回抢占导致“移动中已到达”或反复折返的问题。
FoodTradeTask在需要先补钱、交易失败、找不到合适商人等情况下都会写入食物购买冷却,避免银行家和其他职业无限刷购买尝试。- 交易冷却把
merchant_no_stock、merchant_remove_failed、missing_sell_price视为当前商人不可继续尝试的终止失败,避免商人没库存时实体连续请求。
商人查找与库存保护
MerchantFinder.findCandidateMerchantBlocks现在要求商人方块确实能满足当前交易请求,而不是只看是否有价格记录。findBestMerchantBlock(steve, request)找不到匹配请求的商人时返回null,不再退回最近商人,避免实体跑去没有可交易库存的空店。- 绑定商人实体出售食物时改用
FoodPolicy.sellableMerchantStockCount,商人个人保留口粮不会被错误当作可出售库存。
起床期与早晨准备
- Steve 新增上班前起床期:默认工作开始前
2000 tick起床,但不会立刻执行早晨取物、买食物或正式工作。 isPersonalSleepTime会排除上班前起床期,玩家睡过夜后实体不会继续被判定为该睡觉。handleMorningRoutine改为读取个人作息,不再写死currentTime < 1200。- 新增
MorningWakeGoal并注册到Brain,起床到正式上班之间会走轻量清醒状态。 Goals.isMorningPreparationTime现在只覆盖正式工作时间,早晨准备、取钱取物从工作开始后再触发。
寻路、上下楼与床边睡觉
- 1.1.2 最终版没有把
NavigationCache的不可达缓存和指数退避接回普通移动主路径;普通移动继续走MoveToTask+NavigationTargetResolver,最终交给原版PathNavigation。 MoveToTask会先判断实体是否已经足够接近目标点;原版moveTo(...)返回 false 时也会再检查是否已经在交互距离内,避免“已经到床边/柜台边却被判定寻路失败”。NavigationTargetResolver在单段原版路径找不到时,会尝试LayeredNavigationResolver生成入口、出口、目标点的分层 waypoint 路线,用于楼梯、上下层和明显 Y 轴落差场景。MoveToTask现在按NavigationRoute.waypoints()逐段移动;商人交易移动也会先走第一段 waypoint,不再直接硬冲最终方块坐标。NavigationTargetResolver.canStandAt禁止把床面当普通站立点;功能方块、床、容器仍应视为交互坐标,优先找周围可站位。SleepGoal不再直接移动到床方块,而是选择床脚或床侧可站位置接近;真正睡觉仍由SleepTask对齐到sleepY = bedY + 0.5625。- 睡觉移动使用更宽的床边交互到达半径,和
SleepTask的入睡范围保持一致,避免 Steve 到床边后显示寻路失败、需要玩家撞一下才躺下。 SleepTask的床占用检测改为优先检查实体sleepingPos是否属于同一张床,修正两张床紧挨时隔壁床睡着的人把当前床误判为占用的问题。- Steve 醒着时如果站到床上或床内,会停止当前导航并尝试移动到最近可站的床侧位置,避免在床上原地旋转下不来。
GUI 与翻译补充
- 资源点主界面二次整理按钮位置:绑定 / 解绑 / 管理与工作一次 / 规则入口分两行放置,减少与状态文本重叠。
- 资源点主界面客户端管理按钮显示权限收紧为创造模式或 owner,普通无关玩家不再看到管理控件。
- 状态翻译
status.betterworld.evening_wander中文从“傍晚闲逛”改为“闲逛”。
Файлы
betterworld-1.1.2-forge1.20.1.jar(1.18 MiB)
ОсновнойМетаданные
Канал релиза
Alpha
Номер версии
1.1.2-forge1.20.1
Загрузчики
Forge
Версии игры
1.20.1
Загрузок
7
Дата публикации
15.05.2026

