mirror of
https://github.com/godotengine/godot
synced 2024-09-05 19:19:43 +00:00
![Fabio Alessandrelli](/assets/img/avatar_default.png)
Update ENet, WebRTC, and WebSocket to support peer disconnection and unify the close function.
145 lines
6.5 KiB
XML
145 lines
6.5 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="MultiplayerPeerExtension" inherits="MultiplayerPeer" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
Class that can be inherited to implement custom multiplayer API networking layers via GDExtension.
|
|
</brief_description>
|
|
<description>
|
|
This class is designed to be inherited from a GDExtension plugin to implement custom networking layers for the multiplayer API (such as WebRTC). All the methods below [b]must[/b] be implemented to have a working custom multiplayer implementation. See also [MultiplayerAPI].
|
|
</description>
|
|
<tutorials>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="_close" qualifiers="virtual">
|
|
<return type="void" />
|
|
<description>
|
|
Called when the multiplayer peer should be immediately closed (see [method MultiplayerPeer.close]).
|
|
</description>
|
|
</method>
|
|
<method name="_disconnect_peer" qualifiers="virtual">
|
|
<return type="void" />
|
|
<param index="0" name="p_peer" type="int" />
|
|
<param index="1" name="p_force" type="bool" />
|
|
<description>
|
|
Called when the connected [param p_peer] should be forcibly disconnected (see [method MultiplayerPeer.disconnect_peer]).
|
|
</description>
|
|
</method>
|
|
<method name="_get_available_packet_count" qualifiers="virtual const">
|
|
<return type="int" />
|
|
<description>
|
|
Called when the available packet count is internally requested by the [MultiplayerAPI].
|
|
</description>
|
|
</method>
|
|
<method name="_get_connection_status" qualifiers="virtual const">
|
|
<return type="int" enum="MultiplayerPeer.ConnectionStatus" />
|
|
<description>
|
|
Called when the connection status is requested on the [MultiplayerPeer] (see [method MultiplayerPeer.get_connection_status]).
|
|
</description>
|
|
</method>
|
|
<method name="_get_max_packet_size" qualifiers="virtual const">
|
|
<return type="int" />
|
|
<description>
|
|
Called when the maximum allowed packet size (in bytes) is requested by the [MultiplayerAPI].
|
|
</description>
|
|
</method>
|
|
<method name="_get_packet" qualifiers="virtual">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="r_buffer" type="const uint8_t **" />
|
|
<param index="1" name="r_buffer_size" type="int32_t*" />
|
|
<description>
|
|
Called when a packet needs to be received by the [MultiplayerAPI], with [param r_buffer_size] being the size of the binary [param r_buffer] in bytes.
|
|
</description>
|
|
</method>
|
|
<method name="_get_packet_peer" qualifiers="virtual const">
|
|
<return type="int" />
|
|
<description>
|
|
Called when the ID of the [MultiplayerPeer] who sent the most recent packet is requested (see [method MultiplayerPeer.get_packet_peer]).
|
|
</description>
|
|
</method>
|
|
<method name="_get_packet_script" qualifiers="virtual">
|
|
<return type="PackedByteArray" />
|
|
<description>
|
|
Called when a packet needs to be received by the [MultiplayerAPI], if [method _get_packet] isn't implemented. Use this when extending this class via GDScript.
|
|
</description>
|
|
</method>
|
|
<method name="_get_transfer_channel" qualifiers="virtual const">
|
|
<return type="int" />
|
|
<description>
|
|
Called when the transfer channel to use is read on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_channel]).
|
|
</description>
|
|
</method>
|
|
<method name="_get_transfer_mode" qualifiers="virtual const">
|
|
<return type="int" enum="MultiplayerPeer.TransferMode" />
|
|
<description>
|
|
Called when the transfer mode to use is read on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_mode]).
|
|
</description>
|
|
</method>
|
|
<method name="_get_unique_id" qualifiers="virtual const">
|
|
<return type="int" />
|
|
<description>
|
|
Called when the unique ID of this [MultiplayerPeer] is requested (see [method MultiplayerPeer.get_unique_id]).
|
|
</description>
|
|
</method>
|
|
<method name="_is_refusing_new_connections" qualifiers="virtual const">
|
|
<return type="bool" />
|
|
<description>
|
|
Called when the "refuse new connections" status is requested on this [MultiplayerPeer] (see [member MultiplayerPeer.refuse_new_connections]).
|
|
</description>
|
|
</method>
|
|
<method name="_is_server" qualifiers="virtual const">
|
|
<return type="bool" />
|
|
<description>
|
|
Called when the "is server" status is requested on the [MultiplayerAPI]. See [method MultiplayerAPI.is_server].
|
|
</description>
|
|
</method>
|
|
<method name="_poll" qualifiers="virtual">
|
|
<return type="void" />
|
|
<description>
|
|
Called when the [MultiplayerAPI] is polled. See [method MultiplayerAPI.poll].
|
|
</description>
|
|
</method>
|
|
<method name="_put_packet" qualifiers="virtual">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="p_buffer" type="const uint8_t*" />
|
|
<param index="1" name="p_buffer_size" type="int" />
|
|
<description>
|
|
Called when a packet needs to be sent by the [MultiplayerAPI], with [param p_buffer_size] being the size of the binary [param p_buffer] in bytes.
|
|
</description>
|
|
</method>
|
|
<method name="_put_packet_script" qualifiers="virtual">
|
|
<return type="int" enum="Error" />
|
|
<param index="0" name="p_buffer" type="PackedByteArray" />
|
|
<description>
|
|
Called when a packet needs to be sent by the [MultiplayerAPI], if [method _put_packet] isn't implemented. Use this when extending this class via GDScript.
|
|
</description>
|
|
</method>
|
|
<method name="_set_refuse_new_connections" qualifiers="virtual">
|
|
<return type="void" />
|
|
<param index="0" name="p_enable" type="bool" />
|
|
<description>
|
|
Called when the "refuse new connections" status is set on this [MultiplayerPeer] (see [member MultiplayerPeer.refuse_new_connections]).
|
|
</description>
|
|
</method>
|
|
<method name="_set_target_peer" qualifiers="virtual">
|
|
<return type="void" />
|
|
<param index="0" name="p_peer" type="int" />
|
|
<description>
|
|
Called when the target peer to use is set for this [MultiplayerPeer] (see [method MultiplayerPeer.set_target_peer]).
|
|
</description>
|
|
</method>
|
|
<method name="_set_transfer_channel" qualifiers="virtual">
|
|
<return type="void" />
|
|
<param index="0" name="p_channel" type="int" />
|
|
<description>
|
|
Called when the channel to use is set for this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_channel]).
|
|
</description>
|
|
</method>
|
|
<method name="_set_transfer_mode" qualifiers="virtual">
|
|
<return type="void" />
|
|
<param index="0" name="p_mode" type="int" enum="MultiplayerPeer.TransferMode" />
|
|
<description>
|
|
Called when the transfer mode is set on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_mode]).
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
</class>
|