奥维实验icon
奥维实验
耳内有灰
问题原因:拆除屋檐/柱子时调用的是旧版全局方法 mapData:UninstallRoof(),它只检查已弃用的 self.roofInstalled 全局字段。而实际屋檐数据存储在 wallParts[wk].roofInstalled 中。修复:从 piece.data.wallKey 解析出 anchorRow, anchorCol,改为调用 mapData:UninstallWallParts(row, col),这个方法会正确清除对应墙段的 pillarsInstalled 和 roofInstalled。
耳内有灰
改动清单CollisionMap.lua:构造函数新增 self.wallStrips = {} 数组Rebuild() 步骤 4 从网格阻挡改为门槛条:遍历 GetWallGroups() 按砖块跨度计算宽度,有柱子时加 PILLAR_VIS_W新增 RebuildWallStrips() 方法(增量更新,添砖/装柱后调用)IsAreaBlocked() 新增段落 C 检测 wallStrips_IsInAnyStrip() 新增 wallStrips 循环(防 Q/E 旋转卡住)删除旧的 MarkWallBlocked() 方法main.lua:3 处 MarkWallBlocked() 调用全部替换为 RebuildWallStrips()MapCanvas.lua:新增绿色调试可视化,渲染留言墙门槛条(与建筑的蓝色区分)宽度计算逻辑halfW = (maxBX - minBX + 1) * 16 / 2如果 pillarsInstalled:    halfW += 48 * 0.32  (≈15.36)1 砖 → halfW=83 砖 → halfW=246 砖 → halfW=486 砖+柱子 → halfW≈63可以预览看看绿色门槛条的位置是否和砖墙对齐。
耳内有灰
掉落物深度排序修复问题根因:MapCanvas 的渲染分两个阶段:_RenderBuildings — 建筑和树木统一按行号(sortRow)深度排序,远处先画、近处后画_RenderNPCs — 角色和掉落物,没有排序,且在建筑/树木之后绘制这导致所有掉落物无条件画在所有树木上面,不管掉落物实际上在哪棵树的前面还是后面。修复方案:将掉落物纳入 _RenderBuildings 的统一深度排序:_RenderBuildings 新增第 3 步:收集 _isDrop 标记的 NPC,根据 content 坐标 cy / ts + 1 计算 sortRow,与建筑/树木一起排序新增 _RenderOneDrop 方法:处理掉落物的坐标变换和 renderFunc 调用_RenderNPCs 增加 npc._isDrop 跳过判断,避免重复渲染现在掉落物会和树木按同一深度轴排序,后方树木掉出的木头会被前方树木正确遮挡,Q/E 旋转后也不会出现"木头跑到树冠上"的视觉错误。