#pragma once #include "water_depth.h" #include #include #include #include namespace fmt { struct AssetResolver; } // W7 / PARITY §4 —— water.wtr -> 每层水面网格(texel 掩膜)+ 共享水材质。 // 水材质用原客户端资产:`special/water/01..30.dds` 30 帧序列(`MapOutdoorWater.cpp:14/43`, // 70ms/帧),UV 平铺频率 = 1/(CELLSCALE*4)(每 4 格一循环),逐顶点水深 alpha,轻微高度浮动。 namespace mtgodot { struct WaterPiece { godot::Ref mesh; // Godot 空间,已含区块原点 float godot_y = 0; }; // hm/height_scale 用来算每个水面顶点下方的地形高度 -> 水深 -> alpha。 std::vector build_chunk_water(const fmt::WaterMap &wm, const fmt::HeightMap &hm, int tile_x, int tile_y, double height_scale, const fmt::AssetResolver &res); void cleanup_water_shader(); void update_water_animation(); } // namespace mtgodot