Files
dauphincraft/docs/_build/html/dev/modules.html
Floppyrj45 cafdb7d27e docs: Sphinx manuel joueur/admin/dev + build HTML
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>
2026-04-19 17:57:47 +02:00

341 lines
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="writer-html5" lang="fr" data-content_root="../">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Modules du jeu &mdash; DauphinCraft — Manuel joueur et serveur</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=897fae25"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/translations.js?v=e6b791cb"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Recherche" href="../search.html" />
<link rel="next" title="Contribuer au projet" href="contribuer.html" />
<link rel="prev" title="Architecture technique" href="architecture.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" style="background: #0b3d5c" >
<a href="../index.html" class="icon icon-home">
DauphinCraft
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Rechercher docs" aria-label="Rechercher docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">Joueur</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../joueur/installation.html">Installation — Guide joueur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#configuration-minimale-requise">Configuration minimale requise</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#telechargement">Téléchargement</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#installation">Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#depannage-antivirus">Dépannage antivirus</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/installation.html#premiere-connexion">Première connexion</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/controles.html">Contrôles</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#deplacement">Déplacement</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#capacites-speciales">Capacités spéciales</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#interaction-avec-le-monde">Interaction avec le monde</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#interface">Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#chat">Chat</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/controles.html#menu-pause">Menu pause</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/mecaniques.html">Mécaniques de jeu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#jauges-du-joueur">Jauges du joueur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#gestion-de-l-oxygene">Gestion de loxygène</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#biomes-sous-marins">Biomes sous-marins</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#mobs">Mobs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/mecaniques.html#mort-et-respawn">Mort et respawn</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/craft.html">Crafting — Recettes</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/craft.html#comment-crafter">Comment crafter</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/craft.html#recettes-disponibles">Recettes disponibles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#lampe-bio">Lampe bio</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#harpon">Harpon</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#bulle-d-air">Bulle dair</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#algue-cuisinee">Algue cuisinée</a></li>
<li class="toctree-l3"><a class="reference internal" href="../joueur/craft.html#armure-ecailles">Armure écailles</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/craft.html#ressources-et-ou-les-trouver">Ressources et où les trouver</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../joueur/multijoueur.html">Multijoueur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#modes-de-jeu">Modes de jeu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#port-reseau">Port réseau</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#rejoindre-une-partie">Rejoindre une partie</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#heberger-depuis-le-jeu">Héberger depuis le jeu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#serveur-public-officiel">Serveur public officiel</a></li>
<li class="toctree-l2"><a class="reference internal" href="../joueur/multijoueur.html#limite-de-joueurs">Limite de joueurs</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Administrateur serveur</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin/installation_serveur.html">Installation du serveur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#prerequis">Prérequis</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#extraction-de-l-archive">Extraction de larchive</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#installation">Installation</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#verification-du-service">Vérification du service</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#ouverture-du-port-pare-feu">Ouverture du port pare-feu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/installation_serveur.html#consultation-des-logs">Consultation des logs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../admin/configuration.html">Configuration du serveur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#fichier-de-service-systemd">Fichier de service systemd</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#modifier-le-port-d-ecoute">Modifier le port découte</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#nombre-maximum-de-joueurs">Nombre maximum de joueurs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/configuration.html#sauvegarde-du-monde">Sauvegarde du monde</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../admin/maintenance.html">Maintenance du serveur</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#mise-a-jour-du-serveur">Mise à jour du serveur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#surveillance-et-logs">Surveillance et logs</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#verification-de-l-etat-du-serveur">Vérification de létat du serveur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#redemarrage-automatique">Redémarrage automatique</a></li>
<li class="toctree-l2"><a class="reference internal" href="../admin/maintenance.html#gestion-des-joueurs-kick-ban">Gestion des joueurs (Kick / Ban)</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Développement</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="architecture.html">Architecture technique</a><ul>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#moteur-et-langage">Moteur et langage</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#architecture-reseau">Architecture réseau</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#structure-du-projet">Structure du projet</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#flux-de-demarrage">Flux de démarrage</a></li>
<li class="toctree-l2"><a class="reference internal" href="architecture.html#presets-d-export">Présets dexport</a></li>
</ul>
</li>
<li class="toctree-l1 current"><a class="current reference internal" href="#">Modules du jeu</a><ul>
<li class="toctree-l2"><a class="reference internal" href="#module-monde-world">Module Monde (<code class="docutils literal notranslate"><span class="pre">world/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-dauphin-dolphin">Module Dauphin (<code class="docutils literal notranslate"><span class="pre">dolphin/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-ambiance-ambience">Module Ambiance (<code class="docutils literal notranslate"><span class="pre">ambience/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-inventaire-inventory">Module Inventaire (<code class="docutils literal notranslate"><span class="pre">inventory/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-mobs-mobs">Module Mobs (<code class="docutils literal notranslate"><span class="pre">mobs/</span></code>)</a></li>
<li class="toctree-l2"><a class="reference internal" href="#module-reseau-net">Module Réseau (<code class="docutils literal notranslate"><span class="pre">net/</span></code>)</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="contribuer.html">Contribuer au projet</a><ul>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#prerequis">Prérequis</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#cloner-le-depot">Cloner le dépôt</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#ouvrir-le-projet-dans-godot">Ouvrir le projet dans Godot</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#build-et-export">Build et export</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#style-de-code">Style de code</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#soumettre-une-contribution">Soumettre une contribution</a></li>
<li class="toctree-l2"><a class="reference internal" href="contribuer.html#discussion-et-support">Discussion et support</a></li>
</ul>
</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Annexes</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../credits.html">Crédits</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#moteur">Moteur</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#assets">Assets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#attribution-requise">Attribution requise</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#auteur-du-jeu">Auteur du jeu</a></li>
<li class="toctree-l2"><a class="reference internal" href="../credits.html#remerciements">Remerciements</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../changelog.html">Historique des versions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../changelog.html#version-0-1-0-sortie-initiale">Version 0.1.0 — Sortie initiale</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../changelog.html#nouvelles-fonctionnalites">Nouvelles fonctionnalités</a></li>
<li class="toctree-l3"><a class="reference internal" href="../changelog.html#limitations-connues">Limitations connues</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" style="background: #0b3d5c" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">DauphinCraft</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item active">Modules du jeu</li>
<li class="wy-breadcrumbs-aside">
<a href="../_sources/dev/modules.rst.txt" rel="nofollow"> Afficher la source de la page</a>
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="modules-du-jeu">
<h1>Modules du jeu<a class="headerlink" href="#modules-du-jeu" title="Lien vers cette rubrique"></a></h1>
<p>Le code source est organisé en six modules dans <code class="docutils literal notranslate"><span class="pre">scripts/</span></code>.</p>
<section id="module-monde-world">
<h2>Module Monde (<code class="docutils literal notranslate"><span class="pre">world/</span></code>)<a class="headerlink" href="#module-monde-world" title="Lien vers cette rubrique"></a></h2>
<p>Responsable de la génération et de la gestion du monde voxel sous-marin.</p>
<dl class="simple">
<dt><strong>BlockDatabase.gd</strong></dt><dd><p>Registre central de tous les types de blocs (id, nom, texture, propriétés physiques).
API publique : <code class="docutils literal notranslate"><span class="pre">get_block(id:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">BlockData</span></code>, <code class="docutils literal notranslate"><span class="pre">get_id_by_name(name:</span> <span class="pre">String)</span> <span class="pre">-&gt;</span> <span class="pre">int</span></code>.</p>
</dd>
<dt><strong>Chunk.gd</strong></dt><dd><p>Représente un chunk 16×16×16 blocs. Gère son maillage 3D et son état de chargement.
API publique : <code class="docutils literal notranslate"><span class="pre">set_block(x,</span> <span class="pre">y,</span> <span class="pre">z,</span> <span class="pre">id)</span></code>, <code class="docutils literal notranslate"><span class="pre">get_block(x,</span> <span class="pre">y,</span> <span class="pre">z)</span> <span class="pre">-&gt;</span> <span class="pre">int</span></code>, <code class="docutils literal notranslate"><span class="pre">rebuild_mesh()</span></code>.</p>
</dd>
<dt><strong>ChunkManager.gd</strong></dt><dd><p>Orchestre le chargement/déchargement des chunks autour du joueur (rayon configurable).
API publique : <code class="docutils literal notranslate"><span class="pre">get_chunk(cx,</span> <span class="pre">cy,</span> <span class="pre">cz)</span> <span class="pre">-&gt;</span> <span class="pre">Chunk</span></code>, <code class="docutils literal notranslate"><span class="pre">request_chunk(pos:</span> <span class="pre">Vector3i)</span></code>.</p>
</dd>
<dt><strong>WorldGenerator.gd</strong></dt><dd><p>Génère le contenu des chunks de façon procédurale (bruit de Perlin, biomes, structures).
API publique : <code class="docutils literal notranslate"><span class="pre">generate_chunk(cx,</span> <span class="pre">cy,</span> <span class="pre">cz)</span> <span class="pre">-&gt;</span> <span class="pre">Array</span></code> (tableau de 4096 block ids).</p>
</dd>
</dl>
</section>
<section id="module-dauphin-dolphin">
<h2>Module Dauphin (<code class="docutils literal notranslate"><span class="pre">dolphin/</span></code>)<a class="headerlink" href="#module-dauphin-dolphin" title="Lien vers cette rubrique"></a></h2>
<p>Contrôle du personnage joueur et interface utilisateur associée.</p>
<dl class="simple">
<dt><strong>DolphinController.gd</strong></dt><dd><p>Gère les entrées clavier/souris, applique la physique de nage, envoie les actions au serveur.
API publique : <code class="docutils literal notranslate"><span class="pre">apply_input(input:</span> <span class="pre">Dictionary)</span></code>, <code class="docutils literal notranslate"><span class="pre">take_damage(amount:</span> <span class="pre">int)</span></code>.</p>
</dd>
<dt><strong>HUD.gd</strong></dt><dd><p>Affiche les jauges (oxygène, vie, faim), la hotbar et les notifications.
API publique : <code class="docutils literal notranslate"><span class="pre">update_oxygen(value:</span> <span class="pre">float)</span></code>, <code class="docutils literal notranslate"><span class="pre">update_health(value:</span> <span class="pre">float)</span></code>,
<code class="docutils literal notranslate"><span class="pre">update_hunger(value:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>EcholocationPulse.gd</strong></dt><dd><p>Crée et anime limpulsion sphérique décholocation. Détecte les mobs et blocs dans le rayon.
API publique : <code class="docutils literal notranslate"><span class="pre">emit_pulse(origin:</span> <span class="pre">Vector3,</span> <span class="pre">radius:</span> <span class="pre">float)</span></code>.</p>
</dd>
</dl>
</section>
<section id="module-ambiance-ambience">
<h2>Module Ambiance (<code class="docutils literal notranslate"><span class="pre">ambience/</span></code>)<a class="headerlink" href="#module-ambiance-ambience" title="Lien vers cette rubrique"></a></h2>
<p>Environnement visuel et sonore sous-marin.</p>
<dl class="simple">
<dt><strong>UnderwaterEnvironment.gd</strong></dt><dd><p>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 : <code class="docutils literal notranslate"><span class="pre">set_depth(depth:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>AudioManager.gd</strong></dt><dd><p>Singleton audio. Gère les pistes de musique et les effets sonores avec transitions douces.
API publique : <code class="docutils literal notranslate"><span class="pre">play_sfx(name:</span> <span class="pre">String)</span></code>, <code class="docutils literal notranslate"><span class="pre">play_music(name:</span> <span class="pre">String)</span></code>, <code class="docutils literal notranslate"><span class="pre">stop_music()</span></code>.</p>
</dd>
<dt><strong>PlanktonParticles.gd</strong></dt><dd><p>Système de particules generant le plancton lumineux ambiant.
API publique : <code class="docutils literal notranslate"><span class="pre">set_density(density:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>MainMenu.gd</strong></dt><dd><p>Logique du menu principal (navigation, transitions de scène).</p>
</dd>
</dl>
</section>
<section id="module-inventaire-inventory">
<h2>Module Inventaire (<code class="docutils literal notranslate"><span class="pre">inventory/</span></code>)<a class="headerlink" href="#module-inventaire-inventory" title="Lien vers cette rubrique"></a></h2>
<p>Gestion des ressources, recettes et interface dinventaire.</p>
<dl class="simple">
<dt><strong>Inventory.gd</strong></dt><dd><p>Stockage des items du joueur (tableau de slots). Synchronisé avec le serveur en multijoueur.
API publique : <code class="docutils literal notranslate"><span class="pre">add_item(id:</span> <span class="pre">int,</span> <span class="pre">qty:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>, <code class="docutils literal notranslate"><span class="pre">remove_item(id:</span> <span class="pre">int,</span> <span class="pre">qty:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>,
<code class="docutils literal notranslate"><span class="pre">has_item(id:</span> <span class="pre">int,</span> <span class="pre">qty:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>.</p>
</dd>
<dt><strong>ItemDatabase.gd</strong></dt><dd><p>Registre de tous les items (id, nom, icône, stack max).
API publique : <code class="docutils literal notranslate"><span class="pre">get_item(id:</span> <span class="pre">int)</span> <span class="pre">-&gt;</span> <span class="pre">ItemData</span></code>.</p>
</dd>
<dt><strong>CraftingRecipes.gd</strong></dt><dd><p>Définit les 5 recettes de craft et expose la logique de fabrication.
API publique : <code class="docutils literal notranslate"><span class="pre">get_available_recipes(inventory:</span> <span class="pre">Inventory)</span> <span class="pre">-&gt;</span> <span class="pre">Array</span></code>,
<code class="docutils literal notranslate"><span class="pre">craft(recipe_id:</span> <span class="pre">int,</span> <span class="pre">inventory:</span> <span class="pre">Inventory)</span> <span class="pre">-&gt;</span> <span class="pre">bool</span></code>.</p>
</dd>
<dt><strong>InventoryUI.gd</strong></dt><dd><p>Interface graphique de linventaire et du panneau de crafting.
API publique : <code class="docutils literal notranslate"><span class="pre">open()</span></code>, <code class="docutils literal notranslate"><span class="pre">close()</span></code>, <code class="docutils literal notranslate"><span class="pre">refresh()</span></code>.</p>
</dd>
</dl>
</section>
<section id="module-mobs-mobs">
<h2>Module Mobs (<code class="docutils literal notranslate"><span class="pre">mobs/</span></code>)<a class="headerlink" href="#module-mobs-mobs" title="Lien vers cette rubrique"></a></h2>
<p>Intelligence artificielle des créatures marines.</p>
<dl class="simple">
<dt><strong>FishSchool.gd</strong></dt><dd><p>Comportement de banc de poissons (alignment, cohesion, separation — boids simplifié).
Fuit le joueur à proximité. API publique : <code class="docutils literal notranslate"><span class="pre">set_school_size(n:</span> <span class="pre">int)</span></code>.</p>
</dd>
<dt><strong>Jellyfish.gd</strong></dt><dd><p>Déplacement oscillant aléatoire. Inflige des dégâts de contact au joueur.
API publique : <code class="docutils literal notranslate"><span class="pre">get_damage()</span> <span class="pre">-&gt;</span> <span class="pre">int</span></code>.</p>
</dd>
<dt><strong>Shark.gd</strong></dt><dd><p>IA hostile : détection du joueur, poursuite, attaque, réaction à lécholocation (fuite).
API publique : <code class="docutils literal notranslate"><span class="pre">stun(duration:</span> <span class="pre">float)</span></code>.</p>
</dd>
<dt><strong>MobSpawner.gd</strong></dt><dd><p>Gère lapparition des mobs selon le biome et la profondeur, avec limite de population.
API publique : <code class="docutils literal notranslate"><span class="pre">spawn_in_chunk(chunk_pos:</span> <span class="pre">Vector3i)</span></code>.</p>
</dd>
</dl>
</section>
<section id="module-reseau-net">
<h2>Module Réseau (<code class="docutils literal notranslate"><span class="pre">net/</span></code>)<a class="headerlink" href="#module-reseau-net" title="Lien vers cette rubrique"></a></h2>
<p>Infrastructure multijoueur ENet.</p>
<dl class="simple">
<dt><strong>NetworkManager.gd</strong></dt><dd><p>Singleton réseau. Initialise ENet, gère les connexions/déconnexions joueurs, expose les RPCs.
API publique : <code class="docutils literal notranslate"><span class="pre">host_game(port:</span> <span class="pre">int)</span></code>, <code class="docutils literal notranslate"><span class="pre">join_game(ip:</span> <span class="pre">String,</span> <span class="pre">port:</span> <span class="pre">int)</span></code>,
<code class="docutils literal notranslate"><span class="pre">disconnect()</span></code>.</p>
</dd>
<dt><strong>PlayerSyncComponent.gd</strong></dt><dd><p>Attaché à chaque <code class="docutils literal notranslate"><span class="pre">Dolphin</span></code>. Synchronise position, rotation et état sur le réseau.
API publique : <code class="docutils literal notranslate"><span class="pre">sync_state(state:</span> <span class="pre">Dictionary)</span></code>.</p>
</dd>
<dt><strong>WorldSyncComponent.gd</strong></dt><dd><p>Synchronise les modifications de blocs entre serveur et clients.
API publique : <code class="docutils literal notranslate"><span class="pre">broadcast_block_change(pos:</span> <span class="pre">Vector3i,</span> <span class="pre">block_id:</span> <span class="pre">int)</span></code>.</p>
</dd>
<dt><strong>ChatManager.gd</strong></dt><dd><p>Gère lenvoi et la réception des messages de chat en multijoueur.
API publique : <code class="docutils literal notranslate"><span class="pre">send_message(text:</span> <span class="pre">String)</span></code>, <code class="docutils literal notranslate"><span class="pre">on_message_received(sender:</span> <span class="pre">String,</span> <span class="pre">text:</span> <span class="pre">String)</span></code>.</p>
</dd>
</dl>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Pied de page">
<a href="architecture.html" class="btn btn-neutral float-left" title="Architecture technique" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Précédent</a>
<a href="contribuer.html" class="btn btn-neutral float-right" title="Contribuer au projet" accesskey="n" rel="next">Suivant <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Droits d'auteur 2026, Baptiste Moulin.</p>
</div>
Compilé avec <a href="https://www.sphinx-doc.org/">Sphinx</a> en utilisant un
<a href="https://github.com/readthedocs/sphinx_rtd_theme">thème</a>
fourni par <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>