summaryrefslogtreecommitdiff
path: root/doc/classes/MultiplayerPeerExtension.xml
blob: c7d46f136d3ea10ccd3d5d25d242108b2d1c7e93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?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_channel" qualifiers="virtual const">
			<return type="int" />
			<description>
				Called to get the channel over which the next available packet was received. See [method MultiplayerPeer.get_packet_channel].
			</description>
		</method>
		<method name="_get_packet_mode" qualifiers="virtual const">
			<return type="int" enum="MultiplayerPeer.TransferMode" />
			<description>
				Called to get the [enum MultiplayerPeer.TransferMode] the remote peer used to send the next available packet. See [method MultiplayerPeer.get_packet_mode].
			</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]). The value must be between [code]1[/code] and [code]2147483647[/code].
			</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="_is_server_relay_supported" qualifiers="virtual const">
			<return type="bool" />
			<description>
				Called to check if the server can act as a relay in the current configuration. See [method MultiplayerPeer.is_server_relay_supported].
			</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>