Manuel complet DauphinCraft v0.1.0 : 14 pages RST (joueur, admin, dev, annexes), conf.py rtd-theme, Makefile/make.bat, build HTML propre. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
130 lines
4.9 KiB
ReStructuredText
130 lines
4.9 KiB
ReStructuredText
Modules du jeu
|
||
==============
|
||
|
||
Le code source est organisé en six modules dans ``scripts/``.
|
||
|
||
Module Monde (``world/``)
|
||
--------------------------
|
||
|
||
Responsable de la génération et de la gestion du monde voxel sous-marin.
|
||
|
||
**BlockDatabase.gd**
|
||
Registre central de tous les types de blocs (id, nom, texture, propriétés physiques).
|
||
API publique : ``get_block(id: int) -> BlockData``, ``get_id_by_name(name: String) -> int``.
|
||
|
||
**Chunk.gd**
|
||
Représente un chunk 16×16×16 blocs. Gère son maillage 3D et son état de chargement.
|
||
API publique : ``set_block(x, y, z, id)``, ``get_block(x, y, z) -> int``, ``rebuild_mesh()``.
|
||
|
||
**ChunkManager.gd**
|
||
Orchestre le chargement/déchargement des chunks autour du joueur (rayon configurable).
|
||
API publique : ``get_chunk(cx, cy, cz) -> Chunk``, ``request_chunk(pos: Vector3i)``.
|
||
|
||
**WorldGenerator.gd**
|
||
Génère le contenu des chunks de façon procédurale (bruit de Perlin, biomes, structures).
|
||
API publique : ``generate_chunk(cx, cy, cz) -> Array`` (tableau de 4096 block ids).
|
||
|
||
Module Dauphin (``dolphin/``)
|
||
------------------------------
|
||
|
||
Contrôle du personnage joueur et interface utilisateur associée.
|
||
|
||
**DolphinController.gd**
|
||
Gère les entrées clavier/souris, applique la physique de nage, envoie les actions au serveur.
|
||
API publique : ``apply_input(input: Dictionary)``, ``take_damage(amount: int)``.
|
||
|
||
**HUD.gd**
|
||
Affiche les jauges (oxygène, vie, faim), la hotbar et les notifications.
|
||
API publique : ``update_oxygen(value: float)``, ``update_health(value: float)``,
|
||
``update_hunger(value: float)``.
|
||
|
||
**EcholocationPulse.gd**
|
||
Crée et anime l'impulsion sphérique d'écholocation. Détecte les mobs et blocs dans le rayon.
|
||
API publique : ``emit_pulse(origin: Vector3, radius: float)``.
|
||
|
||
Module Ambiance (``ambience/``)
|
||
--------------------------------
|
||
|
||
Environnement visuel et sonore sous-marin.
|
||
|
||
**UnderwaterEnvironment.gd**
|
||
Configure le fog volumétrique, la lumière directionnelle atténuée et les effets de post-process
|
||
selon la profondeur du joueur. API publique : ``set_depth(depth: float)``.
|
||
|
||
**AudioManager.gd**
|
||
Singleton audio. Gère les pistes de musique et les effets sonores avec transitions douces.
|
||
API publique : ``play_sfx(name: String)``, ``play_music(name: String)``, ``stop_music()``.
|
||
|
||
**PlanktonParticles.gd**
|
||
Système de particules generant le plancton lumineux ambiant.
|
||
API publique : ``set_density(density: float)``.
|
||
|
||
**MainMenu.gd**
|
||
Logique du menu principal (navigation, transitions de scène).
|
||
|
||
Module Inventaire (``inventory/``)
|
||
-----------------------------------
|
||
|
||
Gestion des ressources, recettes et interface d'inventaire.
|
||
|
||
**Inventory.gd**
|
||
Stockage des items du joueur (tableau de slots). Synchronisé avec le serveur en multijoueur.
|
||
API publique : ``add_item(id: int, qty: int) -> bool``, ``remove_item(id: int, qty: int) -> bool``,
|
||
``has_item(id: int, qty: int) -> bool``.
|
||
|
||
**ItemDatabase.gd**
|
||
Registre de tous les items (id, nom, icône, stack max).
|
||
API publique : ``get_item(id: int) -> ItemData``.
|
||
|
||
**CraftingRecipes.gd**
|
||
Définit les 5 recettes de craft et expose la logique de fabrication.
|
||
API publique : ``get_available_recipes(inventory: Inventory) -> Array``,
|
||
``craft(recipe_id: int, inventory: Inventory) -> bool``.
|
||
|
||
**InventoryUI.gd**
|
||
Interface graphique de l'inventaire et du panneau de crafting.
|
||
API publique : ``open()``, ``close()``, ``refresh()``.
|
||
|
||
Module Mobs (``mobs/``)
|
||
------------------------
|
||
|
||
Intelligence artificielle des créatures marines.
|
||
|
||
**FishSchool.gd**
|
||
Comportement de banc de poissons (alignment, cohesion, separation — boids simplifié).
|
||
Fuit le joueur à proximité. API publique : ``set_school_size(n: int)``.
|
||
|
||
**Jellyfish.gd**
|
||
Déplacement oscillant aléatoire. Inflige des dégâts de contact au joueur.
|
||
API publique : ``get_damage() -> int``.
|
||
|
||
**Shark.gd**
|
||
IA hostile : détection du joueur, poursuite, attaque, réaction à l'écholocation (fuite).
|
||
API publique : ``stun(duration: float)``.
|
||
|
||
**MobSpawner.gd**
|
||
Gère l'apparition des mobs selon le biome et la profondeur, avec limite de population.
|
||
API publique : ``spawn_in_chunk(chunk_pos: Vector3i)``.
|
||
|
||
Module Réseau (``net/``)
|
||
-------------------------
|
||
|
||
Infrastructure multijoueur ENet.
|
||
|
||
**NetworkManager.gd**
|
||
Singleton réseau. Initialise ENet, gère les connexions/déconnexions joueurs, expose les RPCs.
|
||
API publique : ``host_game(port: int)``, ``join_game(ip: String, port: int)``,
|
||
``disconnect()``.
|
||
|
||
**PlayerSyncComponent.gd**
|
||
Attaché à chaque ``Dolphin``. Synchronise position, rotation et état sur le réseau.
|
||
API publique : ``sync_state(state: Dictionary)``.
|
||
|
||
**WorldSyncComponent.gd**
|
||
Synchronise les modifications de blocs entre serveur et clients.
|
||
API publique : ``broadcast_block_change(pos: Vector3i, block_id: int)``.
|
||
|
||
**ChatManager.gd**
|
||
Gère l'envoi et la réception des messages de chat en multijoueur.
|
||
API publique : ``send_message(text: String)``, ``on_message_received(sender: String, text: String)``.
|