JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
MechanismVisuals.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 <optional>
7#include <set>
8#include <string>
9#include <vector>
10
12#include "HMI/Graphics/AnimationCatalog.h" // core::Animation, hmi::AnimationDescription
14
19
20namespace hmi {
21
24inline constexpr const char* MECHANISM_CLIP_DOOR_CLOSED = "closed";
25inline constexpr const char* MECHANISM_CLIP_DOOR_OPENING = "opening";
26inline constexpr const char* MECHANISM_CLIP_DOOR_OPEN = "open";
27inline constexpr const char* MECHANISM_CLIP_DOOR_CLOSING = "closing";
28inline constexpr const char* MECHANISM_CLIP_SWITCH_INACTIVE = "inactive";
29inline constexpr const char* MECHANISM_CLIP_SWITCH_ACTIVE = "active";
30inline constexpr const char* MECHANISM_CLIP_PLATE_RELEASED = "released";
31inline constexpr const char* MECHANISM_CLIP_PLATE_PRESSED = "pressed";
32inline constexpr const char* MECHANISM_CLIP_KEY_PRESENT = "present";
33inline constexpr const char* MECHANISM_CLIP_KEY_COLLECTED = "collected";
34inline constexpr const char* MECHANISM_CLIP_LOCKED_DOOR_CLOSED = "closed";
35inline constexpr const char* MECHANISM_CLIP_LOCKED_DOOR_OPEN = "open";
36
45[[nodiscard]] bool isStatefulMechanism(core::TileType type) noexcept;
46
59[[nodiscard]] std::optional<std::string> mechanismTargetClip(core::TileType type,
60 bool active) noexcept;
61
77[[nodiscard]] std::optional<std::string> mechanismTransitionClip(core::TileType type,
78 bool wasActive,
79 bool isActive) noexcept;
80
88[[nodiscard]] std::vector<std::string> mechanismExpectedClips(core::TileType type);
89
105
133 const AnimationDescription& description,
134 core::TileType type, bool active,
135 const std::string& assetKey,
136 float fixedDelta,
137 std::set<std::string>& warnedMissingClips);
138
154[[nodiscard]] float mechanismDiagnosticAlpha(RenderMode mode, bool active, float activeAlpha,
155 float inactiveAlpha) noexcept;
156
157} // namespace hmi
Lecture et validation du format nom-asset.anim.json (LOT-46 TACHE-03).
Mode de rendu Physique/Texture et sa persistance (EX-REN-046).
Types de tuiles d'une carte et utilitaires associés.
TileType
Type d'une tuile de la grille d'une carte (EX-GP-001).
Definition TileType.h:32
Definition AudioEngine.cpp:15
float mechanismDiagnosticAlpha(RenderMode mode, bool active, float activeAlpha, float inactiveAlpha) noexcept
Alpha de diagnostic, réservé au mode Physique (LOT-47 TACHE-03).
Definition MechanismVisuals.cpp:139
core::AtlasRegion advanceMechanismVisual(MechanismVisualState &state, const AnimationDescription &description, core::TileType type, bool active, const std::string &assetKey, float fixedDelta, std::set< std::string > &warnedMissingClips)
Fait progresser l'animation d'une instance de mécanisme d'un pas fixe : détecte un changement d'état,...
Definition MechanismVisuals.cpp:108
constexpr const char * MECHANISM_CLIP_SWITCH_INACTIVE
Definition MechanismVisuals.h:28
constexpr const char * MECHANISM_CLIP_DOOR_CLOSED
Noms de clip conventionnels, documentés dans Source/Elements/Assets/README.md — c'est le contrat qu'u...
Definition MechanismVisuals.h:24
constexpr const char * MECHANISM_CLIP_DOOR_OPENING
Definition MechanismVisuals.h:25
constexpr const char * MECHANISM_CLIP_PLATE_RELEASED
Definition MechanismVisuals.h:30
constexpr const char * MECHANISM_CLIP_LOCKED_DOOR_OPEN
Definition MechanismVisuals.h:35
std::vector< std::string > mechanismExpectedClips(core::TileType type)
Noms de clip attendus par la correspondance pour un type de mécanisme, dans l'ordre du tableau ci-des...
Definition MechanismVisuals.cpp:90
std::optional< std::string > mechanismTransitionClip(core::TileType type, bool wasActive, bool isActive) noexcept
Nom du clip de transition joué une fois lors d'un changement d'état (LOT-47 TACHE-02),...
Definition MechanismVisuals.cpp:80
constexpr const char * MECHANISM_CLIP_KEY_COLLECTED
Definition MechanismVisuals.h:33
constexpr const char * MECHANISM_CLIP_DOOR_CLOSING
Definition MechanismVisuals.h:27
constexpr const char * MECHANISM_CLIP_PLATE_PRESSED
Definition MechanismVisuals.h:31
bool isStatefulMechanism(core::TileType type) noexcept
Indique si un type de tuile est un mécanisme à état, dont l'apparence dépend d'une donnée lue en lect...
Definition MechanismVisuals.cpp:48
constexpr const char * MECHANISM_CLIP_KEY_PRESENT
Definition MechanismVisuals.h:32
constexpr const char * MECHANISM_CLIP_SWITCH_ACTIVE
Definition MechanismVisuals.h:29
constexpr const char * MECHANISM_CLIP_LOCKED_DOOR_CLOSED
Definition MechanismVisuals.h:34
RenderMode
Mode de rendu de la scène : lecture directe des collisions, ou habillage.
Definition RenderMode.h:23
std::optional< std::string > mechanismTargetClip(core::TileType type, bool active) noexcept
Nom du clip d'état cible d'un mécanisme, d'après son type et son état logique courant.
Definition MechanismVisuals.cpp:61
constexpr const char * MECHANISM_CLIP_DOOR_OPEN
Definition MechanismVisuals.h:26
État d'animation courant d'une entité : quel jeu de clips, quel clip, quelle image,...
Definition Animation.h:32
Région source dans l'atlas de textures, en pixels (origine haut-gauche).
Definition Sprite.h:22
Description d'animation d'un asset : disposition de sa spritesheet et ses clips.
Definition AnimationCatalog.h:44
État de présentation d'un mécanisme animé, par instance (LOT-47 TACHE-02).
Definition MechanismVisuals.h:100
bool previousActive
Definition MechanismVisuals.h:102
bool initialized
Definition MechanismVisuals.h:103
core::Animation animation
Definition MechanismVisuals.h:101