Skip to content

本次改动: - 多方块牌桌:最多 9 格,拼接后共享同一牌局、配置和押注,牌与筹码显示在整桌中心。 - 公共编辑:取消永久房主,任何附近玩… - #5

Merged
NFraw merged 1 commit into
neoforge-mc1.21.1from
fix/hud
Oct 20, 2026

Conversation

@NFraw

@NFraw NFraw commented Oct 20, 2026

Copy link
Copy Markdown
Owner

…家均可编辑空桌;临时编辑锁防止冲突,完成或离开后释放。 - 外观优化:简洁像素贴图、连续桌布与外围木框,调整手持大小、物品栏图标和破坏粒子。 - 问题修复:等待 HUD 五秒隐藏、展示物发黑、拆桌后悬浮物残留,以及旧桌关闭消息误清当前状态。 - 验证通过:138 个单元测试、54 个 GameTest、4 个模型测试及构建。 网络协议升级为 3,客户端和服务端需同步更新。

改动说明

斗地主牌桌现在可以拼成一张视觉连续、功能统一的大桌。例如,六个方块组成 2×3 牌桌后,点击任意组成块都进入同一局,共享三个座位、筹码配置和押注,不再产生六个独立牌局。

多方块牌桌

  • 支持同一高度的完整矩形,整桌最多 9 个方块,包括 2×3、3×3、1×9 等布局。
  • 正常放置时拒绝第 10 格,不消耗物品;L 形、带洞和超限结构不能开局。
  • 统一整桌主坐标,加入、叫分、出牌、过牌、离开、观战和配置均操作同一会话。
  • 出牌和悬浮筹码显示在整桌中心,交互距离按整桌最近边界计算。
  • 扩建、合并或拆除组成块时,结束原会话并退还原物押注;合并两张活动桌时分别清理原物品池。
  • 配置复制到组成块,主方块变化后仍可继承原配置。

公共编辑权限

  • 移除永久房主身份,参数由牌桌方块实体持久保存。
  • 空桌时,附近任何玩家都可 Shift+右键申请编辑。
  • 同时只允许一人编辑;保存并关闭、退出界面、走远、掉线或超过 120 秒后释放编辑锁。
  • 编辑期间暂缓入局,有人入局后禁止修改参数。
  • 未参局玩家对非空桌 Shift+右键,继续用于切换观战。
  • 旧存档保留筹码参数,原 Host/HostName 记录不再限制编辑权限。

模型、贴图与 HUD

  • 牌桌改为六面封闭的实心结构,采用简洁像素贴图及可复用的桌布、直边、转角部件。
  • 拼接处连续铺设桌布,仅整桌外围保留木框;侧面加入三张牌标识。
  • 缩小第一、第三人称手持模型,物品栏改为三面立体图标。
  • 破坏粒子改用当前木纹贴图。
  • 修复从实心桌体内部取光照导致悬浮筹码、桌面牌发黑的问题。
  • 等待阶段 HUD 在 5 秒后隐藏,重复快照不续时;再次右键可重新显示,正式牌局 HUD 保持正常。

状态清理

  • 拆桌时通知所有仍持有预览的玩家,包括已保存或退出编辑的人,修复悬浮物残留。
  • 客户端确认已加载的组成块消失后清除旧预览。
  • 忽略其他旧桌迟到的关闭消息,避免误清当前牌局。
  • 预览清理快照不携带手牌数据。

兼容说明

  • 构建目标保持 NeoForge / Minecraft 1.21.1、Java 21。
  • 网络协议升级为 3,客户端与服务端需要同步更新。
  • 斗地主引擎的牌型、发牌和计分规则保持不变。

验证

  • 138 个单元测试通过。
  • 54 个 GameTest 通过,覆盖跨组成块完整对局、筹码守恒、公开编辑锁及拆桌通知。
  • 4 个模型资源测试通过,覆盖全部 16 种连接状态及矩形外围边框。
  • 指定构建命令与 git diff --check 通过。

改了什么

目标分支

  • 只影响某个 Minecraft/加载器组合:base 选对应版本分支(如 neoforge-mc1.21.1),不是 main
  • 改公共逻辑:base 是 main,并说明需要 cherry-pick 到哪些版本分支
  • 没有把版本分支的裁剪差异(删除 fabric/、forge/、versions/)带进这个 PR

自测

  • ./gradlew build(Windows:.\gradlew.bat build)通过,默认目标 1.21.1
  • 改动涉及其它目标时,说明了用哪些 -PmcTarget 验证过
  • 玩法 / 结算 / 网络改动补了单测,或说明了为什么没有
  • 客户端改动附了截图或录像
  • 没有提交 build/、run*/、.ogg、本地配置、IDE 文件

关联 Issue

Fixes #

…家均可编辑空桌;临时编辑锁防止冲突,完成或离开后释放。 - 外观优化:简洁像素贴图、连续桌布与外围木框,调整手持大小、物品栏图标和破坏粒子。 - 问题修复:等待 HUD 五秒隐藏、展示物发黑、拆桌后悬浮物残留,以及旧桌关闭消息误清当前状态。 - 验证通过:138 个单元测试、54 个 GameTest、4 个模型测试及构建。 网络协议升级为 3,客户端和服务端需同步更新。

## 改动说明

斗地主牌桌现在可以拼成一张视觉连续、功能统一的大桌。例如,六个方块组成 2×3 牌桌后,点击任意组成块都进入同一局,共享三个座位、筹码配置和押注,不再产生六个独立牌局。

### 多方块牌桌

- 支持同一高度的完整矩形,整桌最多 9 个方块,包括 2×3、3×3、1×9 等布局。
- 正常放置时拒绝第 10 格,不消耗物品;L 形、带洞和超限结构不能开局。
- 统一整桌主坐标,加入、叫分、出牌、过牌、离开、观战和配置均操作同一会话。
- 出牌和悬浮筹码显示在整桌中心,交互距离按整桌最近边界计算。
- 扩建、合并或拆除组成块时,结束原会话并退还原物押注;合并两张活动桌时分别清理原物品池。
- 配置复制到组成块,主方块变化后仍可继承原配置。

### 公共编辑权限

- 移除永久房主身份,参数由牌桌方块实体持久保存。
- 空桌时,附近任何玩家都可 Shift+右键申请编辑。
- 同时只允许一人编辑;保存并关闭、退出界面、走远、掉线或超过 120 秒后释放编辑锁。
- 编辑期间暂缓入局,有人入局后禁止修改参数。
- 未参局玩家对非空桌 Shift+右键,继续用于切换观战。
- 旧存档保留筹码参数,原 Host/HostName 记录不再限制编辑权限。

### 模型、贴图与 HUD

- 牌桌改为六面封闭的实心结构,采用简洁像素贴图及可复用的桌布、直边、转角部件。
- 拼接处连续铺设桌布,仅整桌外围保留木框;侧面加入三张牌标识。
- 缩小第一、第三人称手持模型,物品栏改为三面立体图标。
- 破坏粒子改用当前木纹贴图。
- 修复从实心桌体内部取光照导致悬浮筹码、桌面牌发黑的问题。
- 等待阶段 HUD 在 5 秒后隐藏,重复快照不续时;再次右键可重新显示,正式牌局 HUD 保持正常。

### 状态清理

- 拆桌时通知所有仍持有预览的玩家,包括已保存或退出编辑的人,修复悬浮物残留。
- 客户端确认已加载的组成块消失后清除旧预览。
- 忽略其他旧桌迟到的关闭消息,避免误清当前牌局。
- 预览清理快照不携带手牌数据。

## 兼容说明

- 构建目标保持 NeoForge / Minecraft 1.21.1、Java 21。
- 网络协议升级为 3,客户端与服务端需要同步更新。
- 斗地主引擎的牌型、发牌和计分规则保持不变。

## 验证

- 138 个单元测试通过。
- 54 个 GameTest 通过,覆盖跨组成块完整对局、筹码守恒、公开编辑锁及拆桌通知。
- 4 个模型资源测试通过,覆盖全部 16 种连接状态及矩形外围边框。
- 指定构建命令与 git diff --check 通过。
@NFraw NFraw added the enhancement 功能建议 / Feature request:新功能或改进 label Oct 20, 2026
@NFraw
NFraw merged commit 6bbb725 into neoforge-mc1.21.1 Oct 20, 2026
4 checks passed
@NFraw
NFraw deleted the fix/hud branch October 20, 2026 06:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement 功能建议 / Feature request:新功能或改进

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant