#pragma once #include #include // Reescriu NOMÉS el bloc `data:` d'un YAML del tilemap, preservant byte a // byte la resta del fitxer: comentaris, ordre de claus, format de // `geometry:` i `entities:`, encoding i line endings entre línies no // tocades. Pensat exclusivament per a l'editor (Debug): només la graella // canvia durant l'edició; el preàmbul i l'epíleg mai. // // Semàntica del bloc: // - Línia de capçalera: primera aparició de "data:" a columna 0. // - Contingut: línies següents indentades (espai o tab). Una línia buida // o una línia a columna 0 marquen la fi del bloc. // // Format de sortida: // - Cada fila en flow style: ` - [v0, v1, v2, ...]`, valors separats // per `,` i alineats a dreta dins de `max_width` caràcters (calculat // a partir del valor més llarg de la graella), cadascun precedit // d'espais de farciment per mantenir columnes visuals. // - Line endings: '\n' al bloc generat (el preàmbul i l'epíleg es // copien byte a byte, així que no els toquem). // // Escriptura atòmica: via `.tmp` + `std::filesystem::rename`, així // un crash a mitja escriptura mai deixa el YAML corrupte. // // Retorna false si el fitxer no es pot obrir, no conté "data:" a columna // 0, o l'escriptura/renombrament atòmic falla. namespace TilemapWriter { auto saveDataBlock(const std::string& path, const std::vector>& data) -> bool; } // namespace TilemapWriter