feat(editor): terrain holes, recent textures, sculpt panel polish

- Punch Hole / Fill Hole buttons in Sculpt panel: creates terrain
  holes (4x4 bitmask) for cave entrances, mine shafts, etc.
  Uses brush radius to determine affected area.
- Recent Textures: paint panel shows last 6 used textures as quick-
  select buttons (no need to re-search the full list)
- Holes saved in ADT format (MCNK holes field) and respected by
  the mesh generator (triangles skipped at hole positions)
This commit is contained in:
Kelsi 2026-05-05 04:34:03 -07:00
parent cc6a72e7b2
commit f5fe9a0101
5 changed files with 93 additions and 0 deletions

View file

@ -15,6 +15,7 @@ public:
void setActiveTexture(const std::string& texturePath);
const std::string& getActiveTexture() const { return activeTexture_; }
const std::vector<std::string>& getRecentTextures() const { return recentTextures_; }
// Paint the active texture at the given world position
// Returns list of modified chunk indices
@ -33,6 +34,7 @@ private:
pipeline::ADTTerrain* terrain_ = nullptr;
std::string activeTexture_;
std::vector<std::string> recentTextures_;
static constexpr float TILE_SIZE = 533.33333f;
static constexpr float CHUNK_SIZE = TILE_SIZE / 16.0f;