59 Commits

Author SHA1 Message Date
NianGao Dev
6c23eb4c62 修复了一些bug 2026-09-19 14:21:08 +08:00
NianGao Dev
db81873409 补充打包方式 2026-08-16 23:46:36 +08:00
NianGao Dev
0a87efb9c3 build: 更新安装包(含图标 exe、安装选项、手持/动物渲染修复) 2026-08-16 23:23:42 +08:00
NianGao Dev
9e7d4d20e2 feat(build): 程序图标使用原版素材 logo + 安装器运行/快捷方式选项
- scripts/make_icon.ps1:素材包 pack.png → go-winres 生成 icon.syso
  (嵌入 exe 图标与版本信息);窗口图标运行时 SetWindowIcon
- 安装.bat:桌面快捷方式 [Y/n](默认 Y)、安装后立即运行 [Y/n](默认 Y)
- build.ps1 在 syso 缺失时自动生成图标
2026-08-16 23:23:31 +08:00
NianGao Dev
b0b632df05 feat(client): 手持物品渲染 + 动物方块模型 + 实体贴图 alpha test
- 手持非放置物品(工具/食物):实体图集物品图标小四边形(原版倾斜角,
  双面、alpha test),随挥动动画平移;可放置方块仍为六面立方体
- 动物(牛/猪/羊/鸡)改为方块组合模型(身体+头+腿),按原版皮肤布局
  取子矩形贴图,水平面向相机;修复动物 VAO 未捕获 EBO 导致的驱动崩溃
- 僵尸/村民/掉落物广告牌开启 alpha test(透明区域不再显黑块)
2026-08-16 23:23:30 +08:00
NianGao Dev
5d0524ca52 feat(game): 掉落物单堆叠上限 9999 + 拾取按栈上限拆分;挖掘按住循环挥动
- 地上掉落合并上限 64→9999,超出生成新堆(TestDropStackCap)
- 拾取按物品栈上限拆成多栈入包,放不下回吐地面
- 按住左键挖掘时每 0.3 秒循环挥动手部(swingTimer),
  挥动幅度收窄并抬高持手位置保持可见
- 新增 -digtest/-swingtest dev 截图测试开关
2026-08-16 22:32:07 +08:00
NianGao Dev
95bd510bf8 fix(render): 垂直面渲染恢复——绕序改回窗口空间 CW + 侧面纹理键回退
- 六面绕序按 GL 窗口坐标(x 右、y 上)验证:曾按 y 向下约定反转五面,
  垂直面全部变成背面被剔除(只有顶面渲染、透空见区块断面)
- mesh.TestFaceWinding 鞋带公式回归测试锁死绕序约定
- Registry.Texture 对 east/west/north 回退 side、south 回退 front/side
  (原版 blocks.json 惯例),立面不再落到不存在的 block/<name> 灰块
- World.SetBlock 破坏/放置空气时按列重算天空光(洞壁不再全黑)
2026-08-16 22:32:07 +08:00
NianGao Dev
c0c8ba75fc test(entity): 未加载区块实体冻结回归测试;路线图回写稳定性与观感修复 2026-08-16 21:00:24 +08:00
NianGao Dev
9e2f5a6186 fix(game): 崩溃修复(卸载区块实体冻结)+ 立面光照、掉落可见、打击感、水下效果、空手拳头、血条左/饥饿右
- 崩溃(index out of range):实体所在区块卸载后失去碰撞支撑无限下坠到
  负坐标,光查询越界 panic——WorldView 增 ChunkLoaded,未加载区块实体冻结;
  chunk 光查询加越界防御(双保险)
- 立面光照:mesh 每面取**邻格**光照(原版光照模型)——此前用方块自身光照
  (sky=0)导致悬崖/矿洞立面全黑(泥土竖向黑色根因)
- 掉落可见:生成后 1 秒拾取延迟 + 图标加大到 0.45
- 打击感:攻击命中音(block.hit)+ 实体受击白闪(uTint)+ 手持挥动动画
- 水下效果:相机入水蓝色叠加(渲染.md §8 水体)
- 空手显示肤色拳头(白羊毛 × 肤色 tint),持方块正常显示
- HUD 布局:血条左下、饥饿右下(经典布局)
2026-08-16 20:59:28 +08:00
NianGao Dev
5da460c9a2 feat(ui): 小地图(左上角地表色图+玩家标记)与物品栏界面(E 键/Q 丢弃)
- 小地图(UI还原.md §3.5):96×96 地表色图(方块注册表→图集中心色,
  植被染色后采样),每 1.5s 重建,玩家标记烘焙进地图图(白点+黑描边);
  覆盖层 quad 批处理末尾颜色异常,标记改走烘焙规避
- 物品栏(UI还原.md §3.3):E 键开关屏幕状态 5,inventory.png 176×166
  窗口 + 27 主物品区 (7,83) + 热键栏行 (7,141),点击与手持栈交换/合并,
  Esc 关闭手持栈自动回收
- Q 丢弃选中槽 1 个物品(掉落在视线前方,UI与输入.md §5)
- cjkfont 多行渲染(设置界面按键教程 4 行列表)
- 动物攻击测试、原版掉落测试(草→泥土/动物掉肉)
2026-08-16 20:35:21 +08:00
NianGao Dev
f25ae15077 feat(game): 音频接入、原版掉落、动物攻击、村庄村民、种子/灵敏度配置与设置界面
- 音频(音频.md §2):Session.Sound 事件回调,破坏/放置/攻击/村民环境音接入,
  客户端 audio.Manager 3D 衰减 + 监听器跟随 + 音量可调
- 原版掉落:草方块→泥土、石头→圆石、树叶无掉落(no_drop);掉落物实体
  用物品图标小广告牌渲染(物品纹理并入实体图集)
- 动物攻击(动物体系.md §5):左键优先射线命中实体(半径 0.6 球体判定),
  伤害/击退/死亡移除+肉类掉落;僵尸掉腐肉
- 村庄村民(村民系统.md §2):Generator.VillageAt 定位村庄中心,会话扫描
  已加载区块在村庄生成 3 名村民
- 种子与灵敏度配置:client.yaml world.seed/name、mouse_sensitivity;
  存档与种子联动;鼠标左右反转修复(右移应右转)
- 设置界面(UI与输入.md §6):屏幕状态 4,灵敏度/音量滑条、世界种子显示、
  按键教程多行列表(cjkfont 支持 \\n)、完成按钮;主菜单/暂停菜单入口
- 准星指向方块名:左下角 CJK 显示(lang 本地化,tick 光栅化渲染线程上传)
- 截图统一存项目根目录 jietu/(paths.RootDir;dev 构建识别 bin/ 布局)
2026-08-16 20:18:52 +08:00
NianGao Dev
ea97eaa616 fix(render): 方格垂直面被背面剔除(立面透明空洞/闪烁)+ 鼠标左右反转
- mesh.faceDef 六面绕序铁律:旧定义只有顶面是窗口空间顺时针
  (FrontFace=CW 的正面),底/东/西/南/北五面是逆时针被全部剔除——
  世界只剩顶面、立面透明、移动时面闪烁(数值投影验证 5 面 area>0 被剔)
- 覆盖层 cubeFaces(裂纹盒/手持方块)同步反转
- 鼠标右移应右转:yaw=0 朝 -Z,右转朝 +X 需 yaw 减小,dyaw 取反
  (原实现 dyaw += dx 左右颠倒)
2026-08-16 20:01:13 +08:00
NianGao Dev
768a9b8096 feat(crafting): 工作台 3×3 合成界面——右键开台、槽位交换、输出格合成、关闭退回
- 会话层(工作台与合成表.md §5):TryOpenCrafting 右键命中工作台开台;
  CraftingSwap 网格槽与手持栈交换/合并;CraftingTakeResult 匹配配方
  (有序优先)消耗材料取产物;CloseCrafting 材料退回背包(放不下掉落)
- 客户端屏幕状态 3:gui/container/crafting_table.png 176×166 窗口、
  3×3 网格 (30,17) + 输出格 (124,35) + 热键栏行 (7,141)(UI还原.md §3.4);
  ESC 关闭并回收手持栈;界面打开时释放光标、关闭恢复捕获并重置鼠标基准
- 物品图标双图集:block/* 图标回退 blocks 图集(原版 items 图集不收录
  block 纹理,此前方块物品图标全部缺失)
- 单测:shaped 2×2 木板→工作台、shapeless 原木→木板、木镐多符号、
  关闭退回材料;dev 参数 -crafttest 全链路截图验证
2026-08-16 10:23:01 +08:00
NianGao Dev
8bc64d220a docs(render): 植被染色/覆盖层渲染/实体广告牌规格;路线图与索引回写
- 渲染.md 新增 §4.1 植被染色、§5.2 覆盖层渲染(裂纹/手持)、§5.3 实体广告牌,
  踩坑清单补视图矩阵正向旋转与灰度纹理两条
- 路线图.md:M3 破坏动画/手持渲染补齐、M3.5 实体渲染完成、M6 UI 精灵完成
- 索引.md 变更记录登记
2026-08-16 10:08:45 +08:00
NianGao Dev
d52bf1126f feat(client): 植被染色、破坏裂纹叠加、手持方块与实体广告牌渲染;原版 HUD 精灵
- 植被染色(渲染.md §4.1):blocks.json 增 tint 标记,图集构建后按
  colormap/grass|foliage 中心色乘色——原版材质包草顶/树叶为灰度图,不染色全灰
- 破坏裂纹(方块交互与动画.md §4):destroy_stage_0..9 裂纹盒叠加破坏目标方块
- 第一人称手持方块(渲染.md §5.2):选中槽放置方块六面 UV 视图空间立方体
- 实体广告牌(渲染.md §5.3):僵尸/村民/动物按贴图渲染,动物按 ID 轮换外观
- HUD 换原版精灵:crosshair/hotbar/hotbar_selection/heart/food(UI还原.md §3.4)
- 主菜单标题/按钮标签按请求字号光栅化(修复 24px 固定字号);版本角标 CJK
- 恢复背面剔除(相机修复后 '脚下黑块' 误诊解除);ESC 光标请求原子化防竞态
- dev 测试参数:-give/-crackstage/-spawntest/-esctest
2026-08-16 10:08:40 +08:00
NianGao Dev
108c803a75 fix(camera): 视图矩阵俯仰符号翻转——视角不跟随鼠标上下移动的根因
视图矩阵误用正向旋转 R 代替 Rᵀ(RotX(-pitch)·RotY(-yaw)),
低头渲染成抬头、抬头渲染成低头;yaw 因 RotY 对称性侥幸正确。
新增 TestViewPitchSteep/Up/Forward 验证陡俯仰与方向映射。
2026-08-16 10:08:33 +08:00
NianGao Dev
fc151e7c07 fix(render): 修复白屏/黑屏——视图矩阵、UI着色器、网格构建性能与安装目录
- 相机视图矩阵按 R_cam^T·T(-pos) 正确推导(旧布局非正交,非零视角下场景塌缩为灰屏)
- UI 片元着色器改为纹理×颜色(旧实现丢弃纹理 RGB,彩色纹理全白)
- UI 纹理与图集 mipmap:图集补齐 2 次幂、UI 上传不生成 mipmap(NPOT 不完整纹理采样纯白)
- 网格构建持一次读锁(旧实现每格邻居查询各加锁约 40 万次/区块,出生区块迟迟无网格,
  玩家透过脚下的洞看到地下横截面——进游戏黑屏主因);脏区块按距离排序优先构建
- 开启背面剔除(CW 正面):区块边界面向未加载邻居的内侧面不再以暗色出现在视野里
- 出生逻辑:等区块加载后定位地表出生,相机略微俯视
- dev 截图测试:-shot 等待玩家所在 5×5 区块网格就绪再拍(48s 兜底),先测试后打包
- 安装器改为按用户安装到 LOCALAPPDATA(Program Files 无写权限导致启动即崩)
- dev 截图工具独立成 devshot_gl.go
2026-08-16 08:33:08 +08:00
NianGao Dev
6dd5a8122a feat: NSIS 中文安装器(年糕历险记-Setup-v0.1.0.exe 实际构建+静默安装验证)、菜单鼠标可见性修复、首页 UI 原版复刻(土质背景/原版按钮/splash/版本角标)、全 goroutine 崩溃兜底 2026-08-16 06:46:25 +08:00
NianGao Dev
854440216f fix(crash): 修复双击闪退——路径基于可执行文件目录解析、崩溃兜底日志、资源入 bin 与安装包 2026-08-16 06:31:00 +08:00
NianGao Dev
157c769473 docs: M4 进度回写(实体位置广播完成) 2026-08-16 00:08:26 +08:00
NianGao Dev
95c8d677ea feat(mpsync): 实体位置广播(EntityMove)与客户端在线玩家显示;mesh 顶点池复用(性能与内存.md §2) 2026-08-16 00:05:17 +08:00
NianGao Dev
e70314fb3f feat(game): 动物自然生成(草面/白天/限频)与繁殖冷却/成长;村民交易表数据驱动(含测试) 2026-08-16 00:01:20 +08:00
NianGao Dev
4755fd88fc feat(installer): 便携中文安装包「年糕历险记-Setup-v0.1.0.zip」——安装.bat 中文交互+桌面快捷方式;修复 ps1 BOM 编码 2026-08-15 23:59:24 +08:00
NianGao Dev
610f234bb4 docs: 路线图状态回写(M0-M3/M5 完成)、README 状态、索引变更记录 2026-08-15 23:50:25 +08:00
NianGao Dev
6e18d1c81f test(game): 测试环境禁用自然刷怪消除时序 flake 2026-08-15 23:49:59 +08:00
NianGao Dev
90e33380fc feat(game): 玩法接线——实体AI/夜间刷僵尸/受伤重生、掉落物拾取、熔炉烧炼产出、服务器与客户端 Mod 加载、客户端单机存档 2026-08-15 23:48:58 +08:00
NianGao Dev
6cc0f12079 feat(ui): 主菜单/暂停菜单屏幕状态机——中文标题「年糕历险记」、按钮点击、Esc 暂停(烟雾测试 10 秒无崩溃) 2026-08-15 23:43:31 +08:00
NianGao Dev
272f69b6a3 fix(font): 主位图确定性选择(修复并行测试下 map 随机序 flake) 2026-08-15 23:40:56 +08:00
NianGao Dev
355fa200a6 milestone: GL 客户端构建运行成功(zig cc + go-gl)——窗口/世界/渲染/HUD 全链路 12 秒无崩溃;修复越界查询与编码损坏 2026-08-15 23:39:43 +08:00
NianGao Dev
2f71900e37 test(worldgen): 村庄断言改为 3×3 区块总量(跨区块建筑统计) 2026-08-15 23:29:07 +08:00
NianGao Dev
c82bf994be test(worldgen): 村庄跨区块阈值修正 2026-08-15 23:28:29 +08:00
NianGao Dev
7cf12ce751 feat(worldgen): 村庄结构生成——网格撒点+群系白名单+水井+跨区块房屋(含测试) 2026-08-15 23:27:50 +08:00
NianGao Dev
f6f89be32f feat(blockentity): 方块实体——熔炉烧炼(燃料/输入消耗/产出)与箱子容器(含测试) 2026-08-15 23:23:53 +08:00
NianGao Dev
6bca2bea74 feat(blockentity): 方块实体——熔炉烧炼(燃料/输入/产出)与箱子容器(含测试) 2026-08-15 23:23:34 +08:00
NianGao Dev
093b3df8ec feat(ui): 中文字体渲染(系统 CJK 字体光栅化,微软雅黑验证通过) 2026-08-15 23:22:40 +08:00
NianGao Dev
236f7a4b06 feat(render): 光影包加载与着色器热替换(type=shader,坏包回退默认) 2026-08-15 23:21:48 +08:00
NianGao Dev
8b6b78d02c feat(client): 客户端网络层、zh_cn 中文语言文件、NSIS 中文安装脚本、UI 渲染器与 HUD(gl 标签) 2026-08-15 23:21:37 +08:00
NianGao Dev
4167bf287d feat(mpsync): 多人同步 MVP——登录区块流、方块变更广播;修复 netserver 关闭竞态与世界 worker 退出死锁 2026-08-15 23:17:34 +08:00
NianGao Dev
4eaab7f3f9 feat(audio): 音频管理器——3D 衰减、声源池淘汰、分类音量、程序化合成音(beep+oto 纯 Go) 2026-08-15 23:09:13 +08:00
NianGao Dev
00397e7b13 feat(redstone): 方块更新队列(延迟+迭代上限)与红石信号传播(含测试) 2026-08-15 23:07:36 +08:00
NianGao Dev
58aa9f5e02 feat(entity): 实体系统——僵尸 AI/白天燃烧、动物游荡、掉落物合并拾取、村民房屋蓝图与建造队列(含测试) 2026-08-15 23:06:20 +08:00
NianGao Dev
38f015ba22 feat(mods): Lua 沙箱 Mod 运行时——generation 注册表、注册 API、事件、热重载与回滚、文件监听防抖(含测试) 2026-08-15 23:04:51 +08:00
NianGao Dev
07c086e127 feat(server): 服务器接线——世界调度、30s 定时存档、握手校验、关服 flush(smoke 验证通过) 2026-08-15 23:01:51 +08:00
NianGao Dev
5fa057632d build: GL 渲染层与客户端挂 gl 构建标签(无 C 工具链也可构建测试);构建脚本自动定位 zig/gcc 2026-08-15 23:00:55 +08:00
NianGao Dev
509c6f228c feat(save): 存档系统——region 文件(zstd+CRC32+原子替换)、level.dat、区块序列化、世界存取(含测试) 2026-08-15 22:59:31 +08:00
NianGao Dev
ba187f6f85 feat(net): 协议编解码(帧/varint/消息)与服务器网络层(握手/心跳/半包处理,含测试) 2026-08-15 22:54:36 +08:00
NianGao Dev
799c0122f0 feat(ui): 字体图集构建(原版 8x8 位图 provider → 字形表) 2026-08-15 22:49:27 +08:00
NianGao Dev
637a4730ad fix(items): 木板/圆石补放置映射;游戏会话测试全绿 2026-08-15 22:48:31 +08:00
NianGao Dev
528c56837f test(game): 修正放置用例(抬升玩家脱离坑位) 2026-08-15 22:47:54 +08:00
NianGao Dev
82954c9001 feat(game): 相机矩阵与游戏会话(破坏进度/放置/工具速度,含测试) 2026-08-15 22:47:21 +08:00