2016-08-03 00:11:05 +02:00
|
|
|
#ifndef NETWORKED_MULTIPLAYER_PEER_H
|
|
|
|
#define NETWORKED_MULTIPLAYER_PEER_H
|
|
|
|
|
|
|
|
#include "io/packet_peer.h"
|
|
|
|
|
|
|
|
class NetworkedMultiplayerPeer : public PacketPeer {
|
|
|
|
|
2017-01-03 03:03:46 +01:00
|
|
|
GDCLASS(NetworkedMultiplayerPeer,PacketPeer);
|
2016-08-03 00:11:05 +02:00
|
|
|
|
|
|
|
protected:
|
|
|
|
static void _bind_methods();
|
|
|
|
public:
|
|
|
|
|
2016-08-19 21:48:08 +02:00
|
|
|
enum {
|
|
|
|
TARGET_PEER_BROADCAST=0,
|
|
|
|
TARGET_PEER_SERVER=1
|
|
|
|
};
|
2016-08-03 00:11:05 +02:00
|
|
|
enum TransferMode {
|
|
|
|
TRANSFER_MODE_UNRELIABLE,
|
2016-08-20 03:54:02 +02:00
|
|
|
TRANSFER_MODE_UNRELIABLE_ORDERED,
|
2016-08-03 00:11:05 +02:00
|
|
|
TRANSFER_MODE_RELIABLE,
|
|
|
|
};
|
|
|
|
|
2016-08-14 19:06:51 +02:00
|
|
|
enum ConnectionStatus {
|
|
|
|
CONNECTION_DISCONNECTED,
|
|
|
|
CONNECTION_CONNECTING,
|
|
|
|
CONNECTION_CONNECTED,
|
|
|
|
};
|
|
|
|
|
2016-08-14 18:29:25 +02:00
|
|
|
|
2016-08-03 00:11:05 +02:00
|
|
|
virtual void set_transfer_mode(TransferMode p_mode)=0;
|
2016-08-19 21:48:08 +02:00
|
|
|
virtual void set_target_peer(int p_peer_id)=0;
|
2016-08-03 00:11:05 +02:00
|
|
|
|
2016-08-19 21:48:08 +02:00
|
|
|
virtual int get_packet_peer() const=0;
|
2016-08-03 00:11:05 +02:00
|
|
|
|
2016-08-14 23:49:50 +02:00
|
|
|
virtual bool is_server() const=0;
|
|
|
|
|
2016-08-03 00:11:05 +02:00
|
|
|
virtual void poll()=0;
|
|
|
|
|
2016-08-19 21:48:08 +02:00
|
|
|
virtual int get_unique_id() const=0;
|
|
|
|
|
|
|
|
virtual void set_refuse_new_connections(bool p_enable)=0;
|
|
|
|
virtual bool is_refusing_new_connections() const=0;
|
|
|
|
|
|
|
|
|
2016-08-14 19:06:51 +02:00
|
|
|
virtual ConnectionStatus get_connection_status() const=0;
|
|
|
|
|
2016-08-03 00:11:05 +02:00
|
|
|
NetworkedMultiplayerPeer();
|
|
|
|
};
|
|
|
|
|
|
|
|
VARIANT_ENUM_CAST( NetworkedMultiplayerPeer::TransferMode )
|
2016-08-14 19:06:51 +02:00
|
|
|
VARIANT_ENUM_CAST( NetworkedMultiplayerPeer::ConnectionStatus )
|
2016-08-03 00:11:05 +02:00
|
|
|
|
|
|
|
#endif // NetworkedMultiplayerPeer_H
|