TODO # Nettoyage • DONE: Découper les gros pâtés en sous-classes • DONE: Nettoyer les vieux headers • WIP: Remplacer les anciennes classes par leur upgrade: ◦ DONE: `ApplicationState` / `ApplicationStateStack` ◦ DONE: `GameClock` ◦ DONE: `Debug` / `Exception` ◦ TODO: `Window` et `Texture` (depuis `ZeldaOOL`) ◦ TODO: Input system (Mouse + Keyboard) • TODO: `Types.hpp` → `IntTypes.hpp` → TODO: Vérifier que les types sont bien corrects • TODO: Vérifier les utilisations inutiles de pointeurs • TODO: Catch SDLLoader exception • TODO: Passer un clang-tidy sur le code • TODO: Passer à la SFML • TODO: Séparer l’engine et le gameplay • TODO: Séparer le code client du code serveur # Finalisation par rapport à TestCraft • DONE: Changer la génération du terrain et ajouter eau, minerais et arbres • DONE: Permettre à l’utilisateur de choisir le bloc qu’il pose # FixMe • FIXME: Les blocs sont ciblables dans le vide depuis l’extérieur du monde • FIXME: Les collisions son décalées d’un bloc à certains endroits • FIXME: Afficher tous les blocs solides, puis l’eau, pour régler les problèmes de transparence # ToDoList ## Moteur • DONE: Rajouter le `ResourceHandler` ## Joueur • DONE: Ciblage de bloc ◦ DONE: Suppression de bloc ◦ DONE: Ajout de bloc • DONE: Collisions + Gravité • TODO: Système d’entités (réutiliser l’ECS mais en multi-thread) ◦ TODO: Les controlleurs doivent garder une liste de références vers les entités sur lesquelles ils travaillent ## Items/Blocks • DONE: Créer un registre d’information pour les blocs/items (utiliser `ResourceHandler`?) • DONE: Créer une classe `ItemStack` et l’utiliser dans `Inventory` • DONE: Rajouter les classes `BitmapFont` et `Text` pour afficher le nombre d’items dans un stack • TODO: Essayer d’utiliser un seul `Inventory` pour le joueur → Probablement en ajoutant un offset dans `InventoryWidget` et `Hotbar` • TODO: Rajouter le système de craft • TODO: Rajouter un bouton sur la table de craft pour voir les recettes • TODO: Récupération du bloc cassé • TODO: Ajouter les animations de destruction des blocs • TODO: Faire un vrai drop d’item • TODO: Utiliser un cube pour afficher les blocs dans l’inventaire ## Monde • TODO: Cycle jour/nuit ◦ TODO: Dynamic lighting • TODO: Chargement des chunks multi-thread ## Génération • DONE: Augmenter la hauteur du terrain • WIP: Rajouter des blocs ◦ DONE: Dirt + Grass ◦ DONE: WATEEEEEEER ◦ DONE: Arbres ◦ TODO: Fleurs (emit light at night?) ◦ TODO: Herbe ◦ TODO: Demi-blocs ◦ TODO: Escaliers • TODO: Biomes • TODO: Génération multi-thread ## Affichage • WIP: Optimiser au maximum l’affichage des chunks ◦ WIP: Faire le max de culling ▸ DONE: Face culling ▸ DONE: Frustum culling ▸ TODO: Occlusion culling ◦ TODO: Face-merging → Trouver une solution pour utiliser un texture atlas avec ça # Idées diverses • TODO: Ajouter un “builder mode” qui débloque la souris de la vue et permet de sélectionner un bloc juste en mettant la souris dessus