:github_url: hide .. meta:: :keywords: network .. _class_MultiplayerSpawner: MultiplayerSpawner ================== **Hérite de :** :ref:`Node` **<** :ref:`Object` Réplique automatiquement les nœuds spawnables de l'autorité sur les autres pairs multijoueurs. .. rst-class:: classref-introduction-group Description ----------- Les scènes spawnables peuvent être configurées dans l'éditeur ou via le code (voir :ref:`add_spawnable_scene()`). Supporte également le spawn de nœuds personnalisés via :ref:`spawn()`, en appelant :ref:`spawn_function` sur tous les pairs. En interne, **MultiplayerSpawner** utilise :ref:`MultiplayerAPI.object_configuration_add()` pour notifier des spawns en passant le nœud spawné dans ``object`` et lui-même dans ``configuration``, et :ref:`MultiplayerAPI.object_configuration_remove()` pour notifier des despawns de manière similaire. .. rst-class:: classref-reftable-group Propriétés -------------------- .. table:: :widths: auto +---------------------------------+-------------------------------------------------------------------------+------------------+ | :ref:`Callable` | :ref:`spawn_function` | | +---------------------------------+-------------------------------------------------------------------------+------------------+ | :ref:`int` | :ref:`spawn_limit` | ``0`` | +---------------------------------+-------------------------------------------------------------------------+------------------+ | :ref:`NodePath` | :ref:`spawn_path` | ``NodePath("")`` | +---------------------------------+-------------------------------------------------------------------------+------------------+ .. rst-class:: classref-reftable-group Méthodes ---------------- .. table:: :widths: auto +-----------------------------+------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`add_spawnable_scene`\ (\ path\: :ref:`String`\ ) | +-----------------------------+------------------------------------------------------------------------------------------------------------------------------+ | |void| | :ref:`clear_spawnable_scenes`\ (\ ) | +-----------------------------+------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_spawnable_scene`\ (\ index\: :ref:`int`\ ) |const| | +-----------------------------+------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_spawnable_scene_count`\ (\ ) |const| | +-----------------------------+------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Node` | :ref:`spawn`\ (\ data\: :ref:`Variant` = null\ ) | +-----------------------------+------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Signaux -------------- .. _class_MultiplayerSpawner_signal_despawned: .. rst-class:: classref-signal **despawned**\ (\ node\: :ref:`Node`\ ) :ref:`🔗` Émis lorsqu'une scène spawnable ou un spawn personnalisé a été despawn par l'autorité multijoueur. Seulement appelée sur les pairs distants. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_signal_spawned: .. rst-class:: classref-signal **spawned**\ (\ node\: :ref:`Node`\ ) :ref:`🔗` Émis lorsqu'une scène spawnable ou un spawn personnalisé a été spawn par l'autorité multijoueur. Seulement appelée sur les pairs distants. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descriptions des propriétés ------------------------------------------------------ .. _class_MultiplayerSpawner_property_spawn_function: .. rst-class:: classref-property :ref:`Callable` **spawn_function** :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_spawn_function**\ (\ value\: :ref:`Callable`\ ) - :ref:`Callable` **get_spawn_function**\ (\ ) Méthode appelée sur tous les pairs quand un :ref:`spawn()` personnalisé est demandé par l'autorité. Recevra le paramètre ``data`` et devrait renvoyer un :ref:`Node` qui n'est pas dans l'arborescence de scène. \ **Note :** Le nœud renvoyé ne devrait **pas** être ajouté à la scène avec :ref:`Node.add_child()`. Ceci est fait automatiquement. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_property_spawn_limit: .. rst-class:: classref-property :ref:`int` **spawn_limit** = ``0`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_spawn_limit**\ (\ value\: :ref:`int`\ ) - :ref:`int` **get_spawn_limit**\ (\ ) Nombre maximal de nœuds autorisés à être spawnés par ce spawner. Comprend des scènes spawnables et des spawns personnalisés. Lorsque défini à ``0`` (par défaut), il n'y a pas de limite. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_property_spawn_path: .. rst-class:: classref-property :ref:`NodePath` **spawn_path** = ``NodePath("")`` :ref:`🔗` .. rst-class:: classref-property-setget - |void| **set_spawn_path**\ (\ value\: :ref:`NodePath`\ ) - :ref:`NodePath` **get_spawn_path**\ (\ ) Chemin vers la racine de spawn. Les scènes spawnables qui sont ajoutées comme enfants directs sont répliquées sur les autres pairs. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Descriptions des méthodes -------------------------------------------------- .. _class_MultiplayerSpawner_method_add_spawnable_scene: .. rst-class:: classref-method |void| **add_spawnable_scene**\ (\ path\: :ref:`String`\ ) :ref:`🔗` Ajoute un chemin de scène aux scènes spawnables, la rendant automatiquement répliquée de l'autorité multijoueur vers d'autres pairs lorsqu'elle est ajoutée comme enfant du nœud pointé par :ref:`spawn_path`. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_method_clear_spawnable_scenes: .. rst-class:: classref-method |void| **clear_spawnable_scenes**\ (\ ) :ref:`🔗` Efface toutes les scènes spawnables. Ne despawn pas les instances existantes sur les pairs distants. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_method_get_spawnable_scene: .. rst-class:: classref-method :ref:`String` **get_spawnable_scene**\ (\ index\: :ref:`int`\ ) |const| :ref:`🔗` Renvoie le chemin d'une scène spawnable par index. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_method_get_spawnable_scene_count: .. rst-class:: classref-method :ref:`int` **get_spawnable_scene_count**\ (\ ) |const| :ref:`🔗` Renvoie le nombre de chemins de scènes spawnables. .. rst-class:: classref-item-separator ---- .. _class_MultiplayerSpawner_method_spawn: .. rst-class:: classref-method :ref:`Node` **spawn**\ (\ data\: :ref:`Variant` = null\ ) :ref:`🔗` Demande un spawn personnalisé, avec ``data`` passée à :ref:`spawn_function` sur tous les pairs. Renvoie l'instance du nœud spawné localement déjà à l'intérieur de l’arborescence de scène, et ajouté en tant qu'enfant du nœud pointé par :ref:`spawn_path`. \ **Note :** Les scènes spawnables sont générées automatiquement. :ref:`spawn()` n'est nécessaire que pour les spawns personnalisés. .. |virtual| replace:: :abbr:`virtual (Cette méthode doit typiquement être redéfinie par l'utilisateur pour avoir un effet.)` .. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)` .. |const| replace:: :abbr:`const (Cette méthode n'a pas d'effets de bord. Elle ne modifie aucune des variables membres de l'instance.)` .. |vararg| replace:: :abbr:`vararg (Cette méthode accepte n'importe quel nombre d'arguments après ceux décris ici.)` .. |constructor| replace:: :abbr:`constructor (Cette méthode est utilisée pour construire un type.)` .. |static| replace:: :abbr:`static (Cette méthode n'a pas besoin d'instance pour être appelée, elle peut donc être directement appelée en utilisant le nom de la classe.)` .. |operator| replace:: :abbr:`operator (Cette méthode décrit un opérateur valide à utiliser avec ce type en tant qu'opérande gauche.)` .. |bitfield| replace:: :abbr:`BitField (Cette valeur est un nombre entier composé d'un masque de bits des options suivantes.)` .. |void| replace:: :abbr:`void (Aucune valeur de retour.)`