JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
AssetContract.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2026 Valentin Eloy
2// SPDX-License-Identifier: GPL-3.0-or-later
3
4#pragma once
5
6#include <string>
7
12
13namespace hmi {
14
40
49 int exactWidth = 0;
51 int exactHeight = 0;
53 bool multipleOfTileSize = false;
55 int minimumTiles = 1;
56};
57
67 bool valid = false;
69 std::string message;
70};
71
77[[nodiscard]] const char* assetFamilyName(AssetFamily family) noexcept;
78
84[[nodiscard]] AssetDimensionContract assetDimensionContract(AssetFamily family) noexcept;
85
91[[nodiscard]] std::string describeContract(const AssetDimensionContract& contract);
92
107[[nodiscard]] AssetValidation validateAsset(AssetFamily family, const std::string& fileName,
108 int width, int height);
109
110} // namespace hmi
Definition AudioEngine.cpp:15
AssetFamily
Famille d'un asset graphique, qui détermine les dimensions attendues du fichier image.
Definition AssetContract.h:22
@ Font
Atlas de glyphes d'une police bitmap : dimensions libres, découpées par ses métriques (LOT-52),...
Definition AssetContract.h:38
@ AutotileSheet
Planche à raccords automatiques : grille de cases entières, au moins 4×4 (LOT-42).
Definition AssetContract.h:29
@ Object
Texture d'un objet interactif (interrupteur, porte, danger) : grille de cases (LOT-45).
Definition AssetContract.h:33
@ Background
Image de fond de niveau : dimensions libres, l'étirement est fait au rendu (LOT-44).
Definition AssetContract.h:31
@ TileSkin
Skin d'une tuile isolée : exactement une case (LOT-42).
Definition AssetContract.h:27
@ CharacterSheet
Spritesheet du personnage : grille d'images carrées de la taille d'une case (LOT-48).
Definition AssetContract.h:35
@ Atlas
Couleur plate de l'atlas : mode Physique, ou repli si l'atlas fait foi.
Definition PaletteAppearance.h:23
AssetDimensionContract assetDimensionContract(AssetFamily family) noexcept
Contrat de dimensions d'une famille d'assets.
Definition AssetContract.cpp:34
std::string describeContract(const AssetDimensionContract &contract)
Description en français des dimensions attendues (« 16×16 px », « multiple de 16 px… »).
Definition AssetContract.cpp:79
AssetValidation validateAsset(AssetFamily family, const std::string &fileName, int width, int height)
Valide les dimensions d'un asset décodé contre le contrat de sa famille (EX-REN-007).
Definition AssetContract.cpp:96
const char * assetFamilyName(AssetFamily family) noexcept
Nom lisible d'une famille d'assets, utilisé dans les messages de journalisation.
Definition AssetContract.cpp:11
Dimensions attendues d'une famille d'assets.
Definition AssetContract.h:47
int exactWidth
Largeur exacte exigée, en pixels ; 0 si la largeur n'est pas contrainte.
Definition AssetContract.h:49
bool multipleOfTileSize
Si true, largeur et hauteur doivent être des multiples entiers de la taille de tuile.
Definition AssetContract.h:53
int minimumTiles
Nombre minimal de cases sur chaque axe (n'a de sens qu'avec multipleOfTileSize).
Definition AssetContract.h:55
int exactHeight
Hauteur exacte exigée, en pixels ; 0 si la hauteur n'est pas contrainte.
Definition AssetContract.h:51
Verdict de validation d'un asset, avec son message exploitable.
Definition AssetContract.h:65
std::string message
Message d'erreur en français, vide si valid.
Definition AssetContract.h:69
bool valid
true si l'asset respecte le contrat de sa famille.
Definition AssetContract.h:67