43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using Godot;
|
|
using System;
|
|
|
|
namespace Network {
|
|
public class Net : Node {
|
|
|
|
private PacketPeerUDP PacketPeer;
|
|
private Client Client;
|
|
private Server Server;
|
|
|
|
public bool IsClient { get { return Client != null; } }
|
|
public bool IsServer { get { return Server != null; } }
|
|
|
|
public override void _Ready() {
|
|
PacketPeer = new PacketPeerUDP();
|
|
}
|
|
|
|
public override void _Process(float delta) {
|
|
if (IsServer) { Server.Update(delta); }
|
|
if (IsClient) { Client.Update(delta); }
|
|
}
|
|
|
|
public override void _ExitTree() {
|
|
if (IsServer) { Server.Free(); }
|
|
if (IsClient) { Client.Free(); }
|
|
}
|
|
|
|
public Client StartClient(string address, int port) {
|
|
if (IsServer) { return null; }
|
|
Client = new Client(PacketPeer);
|
|
Client.Start(address, port);
|
|
return Client;
|
|
}
|
|
|
|
public Server StartServer(string address, int port) {
|
|
if (IsClient) { return null; }
|
|
Server = new Server(PacketPeer);
|
|
Server.Start(address, port);
|
|
return Server;
|
|
}
|
|
}
|
|
}
|