<?xml version="1.0" encoding="UTF-8" ?>
<class name="NetworkedMultiplayerPeer" inherits="PacketPeer" category="Core" version="3.1">
	<brief_description>
		A high-level network interface to simplify multiplayer interactions.
	</brief_description>
	<description>
		Manages the connection to network peers. Assigns unique IDs to each client connected to the server.
	</description>
	<tutorials>
		<link>http://docs.godotengine.org/en/3.0/tutorials/networking/high_level_multiplayer.html</link>
	</tutorials>
	<demos>
	</demos>
	<methods>
		<method name="get_connection_status" qualifiers="const">
			<return type="int" enum="NetworkedMultiplayerPeer.ConnectionStatus">
			</return>
			<description>
				Returns the current state of the connection. See [enum ConnectionStatus].
			</description>
		</method>
		<method name="get_packet_peer" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the ID of the [code]NetworkedMultiplayerPeer[/code] who sent the most recent packet.
			</description>
		</method>
		<method name="get_unique_id" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Returns the ID of this [code]NetworkedMultiplayerPeer[/code].
			</description>
		</method>
		<method name="poll">
			<return type="void">
			</return>
			<description>
				Waits up to 1 second to receive a new network event.
			</description>
		</method>
		<method name="set_target_peer">
			<return type="void">
			</return>
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Sets the peer to which packets will be sent.
				The [code]id[/code] can be one of: [code]TARGET_PEER_BROADCAST[/code] to send to all connected peers, [code]TARGET_PEER_SERVER[/code] to send to the peer acting as server, a valid peer ID to send to that specific peer, a negative peer ID to send to all peers except that one. Default: [code]TARGET_PEER_BROADCAST[/code]
			</description>
		</method>
	</methods>
	<members>
		<member name="refuse_new_connections" type="bool" setter="set_refuse_new_connections" getter="is_refusing_new_connections">
			If [code]true[/code] this [code]NetworkedMultiplayerPeer[/code] refuses new connections. Default value: [code]false[/code].
		</member>
		<member name="transfer_mode" type="int" setter="set_transfer_mode" getter="get_transfer_mode" enum="NetworkedMultiplayerPeer.TransferMode">
			The manner in which to send packets to the [code]target_peer[/code]. See [enum TransferMode].
		</member>
	</members>
	<signals>
		<signal name="connection_failed">
			<description>
				Emitted when a connection attempt fails.
			</description>
		</signal>
		<signal name="connection_succeeded">
			<description>
				Emitted when a connection attempt succeeds.
			</description>
		</signal>
		<signal name="peer_connected">
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Emitted by the server when a client connects.
			</description>
		</signal>
		<signal name="peer_disconnected">
			<argument index="0" name="id" type="int">
			</argument>
			<description>
				Emitted by the server when a client disconnects.
			</description>
		</signal>
		<signal name="server_disconnected">
			<description>
				Emitted by clients when the server disconnects.
			</description>
		</signal>
	</signals>
	<constants>
		<constant name="TRANSFER_MODE_UNRELIABLE" value="0" enum="TransferMode">
			Packets are sent via unordered UDP packets.
		</constant>
		<constant name="TRANSFER_MODE_UNRELIABLE_ORDERED" value="1" enum="TransferMode">
			Packets are sent via ordered UDP packets.
		</constant>
		<constant name="TRANSFER_MODE_RELIABLE" value="2" enum="TransferMode">
			Packets are sent via TCP packets.
		</constant>
		<constant name="CONNECTION_DISCONNECTED" value="0" enum="ConnectionStatus">
			The ongoing connection disconnected.
		</constant>
		<constant name="CONNECTION_CONNECTING" value="1" enum="ConnectionStatus">
			A connection attempt is ongoing.
		</constant>
		<constant name="CONNECTION_CONNECTED" value="2" enum="ConnectionStatus">
			The connection attempt succeeded.
		</constant>
		<constant name="TARGET_PEER_BROADCAST" value="0">
			Packets are sent to the server and then redistributed to other peers.
		</constant>
		<constant name="TARGET_PEER_SERVER" value="1">
			Packets are sent to the server alone.
		</constant>
	</constants>
</class>
