Skip to content

feat: 新增无尽喷漆罐并完善交互 - #47

Open
alcox233 wants to merge 2 commits into
gtofrom
feature/infinite-spray-can
Open

feat: 新增无尽喷漆罐并完善交互#47
alcox233 wants to merge 2 commits into
gtofrom
feature/infinite-spray-can

Conversation

@alcox233

@alcox233 alcox233 commented Jun 16, 2026

Copy link
Copy Markdown

无尽喷漆罐

单一可复用喷漆罐:颜色/溶剂存在 NBT 中,不再「一色一物品」。

操作

  • 右键方块:上色(支持连锁/批量)
  • 右键空气:打开 16 色 + 溶剂调色盘
  • 潜行 + 滚轮:切换颜色(参考 AE 涂色器)

实现要点

  • InfiniteSprayCanBehaviour:NBT 存色槽;无限耐久;耐久条指示当前颜色
  • ColorSprayBehaviour 抽出共享 paintArea / paintBlocks(flag 2 批量),有限罐与无尽罐共用上色逻辑
  • 滚轮经客户端拦截 + CPacketSprayCanAction 同步服务端
  • 换色音效:GT5 同款 spraycan_shake
  • 模型/贴图/中英繁本地化

对既有有限喷漆罐的行为影响(重构顺带)

  1. 修复:带 DyeColor 方块属性的方块此前从未被真正上色——旧代码 state.setValue(...) 丢弃返回值且不 setBlock,却照常消耗耐久;现已真正落地方块。recolorBlockNoState 的属性拷贝同样修复。
  2. 修复:耐久耗尽时的替换不一致——旧代码在 AE 线缆/IPaintable 链路耗尽时把罐子替换成 ItemStack.EMPTY(物品直接消失),仅方块链路才换成空罐;现统一为空罐。
  3. 行为变化:链式上色遇到不可上色/已同色方块从「终止」改为「跳过继续」——大面积补喷时不再被中途已上色的方块打断。此变化对现有有限罐同样生效。

备注

  • 制作配方在 GTOCore 组装机侧(空罐 + 16K 组件 + 致密能源元件 + HV 4x 电池箱 + HV 马达/泵 + 钢化玻璃 + 液态彩虹桥)
  • 调色盘按钮回调在 LDLib ButtonWidget 中客户端/服务端两侧均执行,选中框即时刷新已确认

🤖 Generated with Claude Code

@alcox233

Copy link
Copy Markdown
Author

@codex

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@alcox233
alcox233 requested a review from nutant233 June 26, 2026 10:58
- 单一物品通过 NBT 保存当前颜色/溶剂,耐久条显示所选颜色
- 右键方块上色,右键空气打开调色盘,潜行+滚轮切换颜色(AE 风格)
- 批量上色 API(paintBlocks / flag 2)降低连锁喷漆卡顿
- 换色播放 GT5 同款 spraycan_shake 音效
- 中英文与繁中文案、物品模型与贴图
behaviour.setting.voiding_mode/input_limit/circuit 四个键属于
机器内存卡 PR(#54),从本 PR 移除以避免合并冲突。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant