87 const std::vector<std::vector<TileType>>& block);
99 void setExit(
int column,
int row);
196 void resize(
int width,
int height);
279 [[nodiscard]]
const std::string&
name() const noexcept {
289 [[nodiscard]] std::optional<GridPosition>
entry() const noexcept {
294 [[nodiscard]] std::optional<GridPosition>
exit() const noexcept {
299 [[nodiscard]]
const std::vector<Mechanism>&
mechanisms() const noexcept {
308 [[nodiscard]]
const std::vector<Plane>&
planes() const noexcept {
318 [[nodiscard]]
const std::vector<TileLayer>&
layers() const noexcept {
324 [[nodiscard]]
const std::vector<MapEntity>&
entities() const noexcept {
334 [[nodiscard]]
const std::optional<std::string>&
background() const noexcept {
339 [[nodiscard]]
const std::optional<std::string>&
skinSet() const noexcept {
387 std::optional<GridPosition>
exit;
Mode de cadrage de caméra porté par le niveau (EX-LVL-006, EX-REN-016, LOT-64).
Position entière dans la grille d'un niveau (colonne, ligne).
Chargement d'un niveau depuis le format JSON (liste de tuiles-objets).
Niveau chargé : grille de tuiles, entrée/sortie et mécanismes.
Entité placée sur une carte : PNJ, coffre, panneau, portail, déclencheur (LOT-04).
Couche de tuiles typée d'une carte (LOT-04).
Grille de tuiles typées d'un niveau.
Types de tuiles d'une carte et utilitaires associés.
LevelLoadResult toLevel() const
Convertit le brouillon en Level validé (EX-EDIT-007), en repassant par la même validation que LevelLo...
Definition LevelDraft.cpp:466
bool parallaxEnabled() const noexcept
Definition LevelDraft.h:329
std::optional< std::string > _background
Definition LevelDraft.h:416
std::optional< std::size_t > movePlaneBackward(std::size_t index)
Recule le plan au rang index d'un cran ; sans effet s'il est déjà le premier.
Definition LevelDraft.cpp:274
const CameraFramingConfig & cameraFraming() const noexcept
Definition LevelDraft.h:344
bool setPlaneParallax(std::size_t index, float parallaxX, float parallaxY)
Change les facteurs de parallaxe du plan au rang index (EX-DEC-043).
Definition LevelDraft.cpp:233
void paintTileInternal(int column, int row, TileType type)
Logique de paintTile, sans pushUndo() : réutilisée cellule par cellule par paintRegion pour n'empiler...
Definition LevelDraft.cpp:88
void unlinkMechanism(GridPosition targetPosition)
Retire la liaison de porte à targetPosition, si elle en a une.
Definition LevelDraft.cpp:179
std::vector< TileTextureOverride > _textureOverrides
Definition LevelDraft.h:418
void addCameraZone(CameraZone zone)
Ajoute une zone de caméra dessinée à la main en fin de liste (mode PerRoom, EX-LVL-007,...
Definition LevelDraft.cpp:335
bool setPlaneDensity(std::size_t index, int pixelsPerUnit)
Change la densité du plan au rang index (EX-DEC-041).
Definition LevelDraft.cpp:224
void setExitInternal(int column, int row)
Logique de setExit, sans pushUndo().
Definition LevelDraft.cpp:138
std::vector< TileLayer > _layers
Definition LevelDraft.h:414
std::optional< std::size_t > movePlaneForward(std::size_t index)
Avance le plan au rang index d'un cran ; sans effet s'il est déjà le dernier.
Definition LevelDraft.cpp:262
void restore(State state)
Restitue un état capturé précédemment.
Definition LevelDraft.cpp:445
std::optional< GridPosition > _exit
Definition LevelDraft.h:412
bool _parallaxEnabled
Definition LevelDraft.h:421
void setExit(int column, int row)
Place la sortie en (column, row) ; déplace l'occurrence existante s'il y en avait une (unicité,...
Definition LevelDraft.cpp:133
static LevelDraft fromLevel(const Level &level)
Crée un brouillon à partir d'un niveau déjà chargé (édition d'un fichier existant).
Definition LevelDraft.cpp:42
void setCameraFraming(CameraFramingConfig cameraFraming)
Change le cadrage de caméra du niveau (EX-LVL-006, EX-EDIT-028), annulable.
Definition LevelDraft.cpp:330
void removeCameraZone(std::size_t index)
Retire la zone de caméra au rang index (EX-LVL-007, EX-EDIT-029), annulable.
Definition LevelDraft.cpp:340
bool redo()
Refait la dernière mutation annulée.
Definition LevelDraft.cpp:419
std::optional< GridPosition > exit() const noexcept
Definition LevelDraft.h:294
const std::vector< TileLayer > & layers() const noexcept
Definition LevelDraft.h:318
const std::optional< std::string > & skinSet() const noexcept
Definition LevelDraft.h:339
void setTextureOverride(GridPosition position, std::string assetName)
Assigne (ou remplace) la texture affichée pour une case précise (EX-EDIT-043), prioritaire sur le ski...
Definition LevelDraft.cpp:186
void removeTextureOverride(GridPosition position)
Retire l'override de texture de position, s'il y en a un. Sans effet sinon.
Definition LevelDraft.cpp:195
const std::vector< MapEntity > & entities() const noexcept
Definition LevelDraft.h:324
std::optional< GridPosition > entry() const noexcept
Definition LevelDraft.h:289
std::vector< Plane > _planes
Definition LevelDraft.h:420
bool canRedo() const noexcept
Definition LevelDraft.h:233
const std::string & name() const noexcept
Definition LevelDraft.h:279
bool wouldResizeDropContent(int width, int height) const noexcept
Indique si redimensionner à (width, height) supprimerait du contenu déjà posé.
Definition LevelDraft.cpp:380
void paintRegion(int originColumn, int originRow, const std::vector< std::vector< TileType > > &block)
Applique un bloc rectangulaire de types de tuiles à partir de (originColumn, originRow).
Definition LevelDraft.cpp:69
std::vector< State > _undoHistory
Definition LevelDraft.h:422
std::vector< State > _redoHistory
Definition LevelDraft.h:423
State snapshot() const
Capture l'état courant (pour empiler dans l'historique undo/redo).
Definition LevelDraft.cpp:429
const std::vector< Plane > & planes() const noexcept
Definition LevelDraft.h:308
void pushUndo()
Empile l'état courant sur la pile d'annulation ; à appeler avant toute mutation undoable.
Definition LevelDraft.cpp:461
CameraFramingConfig _cameraFraming
Definition LevelDraft.h:419
void removePlane(std::size_t index)
Retire le plan au rang index.
Definition LevelDraft.cpp:216
bool setPlaneDepth(std::size_t index, PlaneDepth depth)
Change la profondeur du plan au rang index (EX-DEC-042).
Definition LevelDraft.cpp:253
void setEntryInternal(int column, int row)
Logique de setEntry, sans pushUndo().
Definition LevelDraft.cpp:123
std::vector< MapEntity > _entities
Definition LevelDraft.h:415
void paintTile(int column, int row, TileType type)
Peint le type de tuile type en (column, row).
Definition LevelDraft.cpp:64
std::vector< Mechanism > _mechanisms
Definition LevelDraft.h:413
std::optional< std::size_t > movePlaneToFront(std::size_t index)
Amène le plan au rang index au dernier rang (le plus en avant).
Definition LevelDraft.cpp:286
void removeLinkedDataAt(GridPosition position, bool keepTextureOverride=false)
Retire toute liaison/configuration référençant position (déclencheur, porte, danger commuté,...
Definition LevelDraft.cpp:491
void setParallaxEnabled(bool enabled)
Active ou désactive la parallaxe des plans pour ce niveau (EX-DEC-043).
Definition LevelDraft.cpp:315
const TileMap & tileMap() const noexcept
Definition LevelDraft.h:284
LevelDraft(std::string name, TileMap tileMap)
Definition LevelDraft.cpp:35
std::optional< GridPosition > _entry
Definition LevelDraft.h:411
void setEntry(int column, int row)
Place l'entrée en (column, row) ; déplace l'occurrence existante s'il y en avait une (unicité,...
Definition LevelDraft.cpp:118
static LevelDraft empty(std::string name, int width, int height)
Crée un brouillon vierge (grille entièrement Empty), sans entrée ni sortie.
Definition LevelDraft.cpp:38
void resize(int width, int height)
Redimensionne la grille (EX-EDIT-005).
Definition LevelDraft.cpp:348
bool canUndo() const noexcept
Definition LevelDraft.h:228
bool undo()
Annule la dernière mutation (EX-EDIT-005).
Definition LevelDraft.cpp:409
const std::optional< std::string > & background() const noexcept
Definition LevelDraft.h:334
void setSkinSet(std::optional< std::string > skinSet)
Assigne le jeu de skins du niveau (EX-EDIT-024), annulable.
Definition LevelDraft.cpp:325
std::optional< std::string > _skinSet
Definition LevelDraft.h:417
std::string _name
Definition LevelDraft.h:409
bool setPlaneOpacity(std::size_t index, float opacity)
Change l'opacité du plan au rang index.
Definition LevelDraft.cpp:243
std::optional< std::size_t > movePlaneToBack(std::size_t index)
Envoie le plan au rang index au premier rang (le plus en arrière).
Definition LevelDraft.cpp:301
TileMap _tileMap
Definition LevelDraft.h:410
void setName(std::string name)
Renomme le niveau.
Definition LevelDraft.h:238
const std::vector< TileTextureOverride > & textureOverrides() const noexcept
Definition LevelDraft.h:303
void linkMechanism(GridPosition switchPosition, GridPosition targetPosition)
Lie un interrupteur/plaque de pression à une porte ou à un danger commuté (EX-EDIT-003,...
Definition LevelDraft.cpp:148
void addPlane(Plane plane)
Ajoute plane en fin de liste (le plus en avant).
Definition LevelDraft.cpp:211
void setBackground(std::optional< std::string > background)
Assigne l'asset de fond du niveau (EX-REN-044), annulable.
Definition LevelDraft.cpp:320
const std::vector< Mechanism > & mechanisms() const noexcept
Definition LevelDraft.h:299
Grille dense de tuiles typées (EX-GP-001), origine haut-gauche.
Definition TileMap.h:25
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
PlaneDepth
Position d'un plan dans l'ordonnancement de rendu, relativement au personnage (EX-DEC-042).
Definition Plane.h:28
TileType
Type d'une tuile de la grille d'une carte (EX-GP-001).
Definition TileType.h:32
Cadrage de caméra résolu d'un niveau : le mode retenu et ses paramètres.
Definition CameraFraming.h:71
Rectangle de caméra dessiné à la main par le level designer (mode par salle), en cases.
Definition CameraFraming.h:53
Position d'une case dans la grille d'un niveau, en coordonnées entières.
Definition GridPosition.h:20
Configuration de la plateforme en position, créée aux valeurs par défaut si absente.
Definition LevelDraft.h:383
std::vector< TileLayer > layers
Definition LevelDraft.h:389
std::optional< GridPosition > exit
Definition LevelDraft.h:387
std::optional< std::string > background
Definition LevelDraft.h:391
std::string name
Definition LevelDraft.h:384
std::vector< MapEntity > entities
Definition LevelDraft.h:390
std::vector< Mechanism > mechanisms
Definition LevelDraft.h:388
std::vector< TileTextureOverride > textureOverrides
Definition LevelDraft.h:393
std::vector< Plane > planes
Definition LevelDraft.h:395
CameraFramingConfig cameraFraming
Definition LevelDraft.h:394
std::optional< std::string > skinSet
Definition LevelDraft.h:392
bool parallaxEnabled
Definition LevelDraft.h:396
std::optional< GridPosition > entry
Definition LevelDraft.h:386
TileMap tileMap
Definition LevelDraft.h:385
Résultat d'un chargement de niveau : soit un Level, soit une erreur décrite.
Definition LevelLoader.h:81
Plan pictural : image couvrant tout le niveau, avec sa densité, sa parallaxe et sa profondeur (EX-DEC...
Definition Plane.h:53