summaryrefslogtreecommitdiff
path: root/doc/classes/MultiplayerPeerExtension.xml
blob: bd11c76039c9f971eec2bad0249f9b60d810760b (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
<?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="_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" />
			<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" />
			<argument index="0" name="r_buffer" type="const uint8_t **" />
			<argument index="1" name="r_buffer_size" type="int32_t*" />
			<description>
				Called when a packet needs to be received by the [MultiplayerAPI], with [code]p_buffer_size[/code] being the size of the binary [code]p_buffer[/code] 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_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" />
			<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="int" />
			<description>
				Called when the [MultiplayerAPI] is polled. See [method MultiplayerAPI.poll].
			</description>
		</method>
		<method name="_put_packet" qualifiers="virtual">
			<return type="int" />
			<argument index="0" name="p_buffer" type="const uint8_t*" />
			<argument index="1" name="p_buffer_size" type="int" />
			<description>
				Called when a packet needs to be sent by the [MultiplayerAPI], with [code]p_buffer_size[/code] being the size of the binary [code]p_buffer[/code] in bytes.
			</description>
		</method>
		<method name="_set_refuse_new_connections" qualifiers="virtual">
			<return type="void" />
			<argument 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" />
			<argument 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" />
			<argument 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" />
			<argument index="0" name="p_mode" type="int" />
			<description>
				Called when the transfer mode is set on this [MultiplayerPeer] (see [member MultiplayerPeer.transfer_mode]).
			</description>
		</method>
	</methods>
</class>