JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
hmi::TileSkinTag Struct Reference

Type de tuile et voisinage solide d'une entité affichée, pour la résolution de son skin. More...

#include <TileSkinTag.h>

Public Attributes

core::TileType type {}
 Type de la tuile représentée par l'entité.
std::uint8_t neighborMask = 0
 Masque des quatre voisins solides (hmi::solidNeighborMask), pour le mode bitmask16.
std::optional< std::string > overrideAsset
 Nom de l'asset assigné par instance à cette case (EX-EDIT-043, LOT-45), prioritaire sur le skin du type ; vide si la case n'a pas de surcharge.
std::optional< core::AtlasRegionanimatedFrame
 Image courante, par instance, d'un mécanisme animé (LOT-47) : recalculée chaque pas fixe par hmi::GameSession d'après l'état logique de cette tuile (porte, interrupteur, danger…), prioritaire sur l'horloge partagée par asset de hmi::SkinTexture::animatedFrame (LOT-46 TACHE-05, décorative, en phase pour toutes les tuiles d'un même asset).

Detailed Description

Type de tuile et voisinage solide d'une entité affichée, pour la résolution de son skin.

core::Sprite ne porte qu'une région d'atlas : à la composition, plus rien n'indique quel type de tuile est affiché, alors que c'est exactement ce dont dépend le choix d'un skin. Ce composant rétablit l'information du côté présentation, sans faire entrer une notion d'habillage dans Core — même patron que hmi::RenderLayerTag et hmi::PreviousPosition, déjà des composants HMI attachés à des entités construites par Core.

Le masque de voisinage est calculé une fois, à la construction de la scène : il ne dépend que de la grille du niveau, jamais du mode de rendu ni du jeu de skins courant. Basculer de mode (F8) ou réassigner un skin ne reconstruit donc pas la scène ECS — la règle posée par le LOT-41 reste tenue.

Une entité sans ce composant (le personnage, les aides d'édition) n'est jamais habillée : elle garde l'apparence résolue en mode Physique.

Member Data Documentation

◆ animatedFrame

std::optional<core::AtlasRegion> hmi::TileSkinTag::animatedFrame

Image courante, par instance, d'un mécanisme animé (LOT-47) : recalculée chaque pas fixe par hmi::GameSession d'après l'état logique de cette tuile (porte, interrupteur, danger…), prioritaire sur l'horloge partagée par asset de hmi::SkinTexture::animatedFrame (LOT-46 TACHE-05, décorative, en phase pour toutes les tuiles d'un même asset).

Les deux mécanismes coexistent parce que leurs granularités diffèrent : une nappe d'eau anime tout un asset en phase, une porte anime une case précise, indépendamment de ses voisines de même asset. std::nullopt hors mécanisme (repli sur l'horloge partagée, ou sur l'image entière).

◆ neighborMask

std::uint8_t hmi::TileSkinTag::neighborMask = 0

Masque des quatre voisins solides (hmi::solidNeighborMask), pour le mode bitmask16.

◆ overrideAsset

std::optional<std::string> hmi::TileSkinTag::overrideAsset

Nom de l'asset assigné par instance à cette case (EX-EDIT-043, LOT-45), prioritaire sur le skin du type ; vide si la case n'a pas de surcharge.

Calculé une fois à la construction de la scène (hmi::textureOverrideAt), même principe que neighborMask.

◆ type

core::TileType hmi::TileSkinTag::type {}

Type de la tuile représentée par l'entité.


The documentation for this struct was generated from the following file:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/HMI/Graphics/TileSkinTag.h