feat(editor): writer surgical del bloc data: al YAML del tilemap
This commit is contained in:
1 parent
459d18b49c
commit
6d8423764d
4 files changed
+345
No files matched your search
@@ -0,0 +1,34 @@
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
// 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 `<path>.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<std::vector<int>>& data) -> bool;
|
||||
|
||||
} // namespace TilemapWriter
|
||||
Reference in new issue
Block a user