GodotTicTacToe/scripts/Net.cs

67 lines
1.7 KiB
C#

using Godot;
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 void StartClient() {
//if (IsClient() || IsServer()) { return; }
Client = new Client(PacketPeer);
Client.Initialize("localhost", 7070);
}
public void StartServer() {
//if (IsClient() || IsServer()) { return; }
Server = new Server(PacketPeer);
Server.Initialize("*", 7070);
}
}
//extends Node2D
//# Member variables
//var thread = Thread.new()
//# This function runs in a thread!
//# Threads always take one userdata argument
//func _bg_load(path):
// print("THREAD FUNC!")
// # Load the resource
// var tex = ResourceLoader.load(path)
// # Call _bg_load_done on main thread
// call_deferred("_bg_load_done")
// return tex # return it
//func _bg_load_done():
// # Wait for the thread to complete, get the returned value
// var tex = thread.wait_to_finish()
// # Set to the sprite
// get_node("sprite").set_texture(tex)
//func _on_load_pressed():
// if (thread.is_active()):
// # Already working
// return
// print("START THREAD!")
// thread.start(self, "_bg_load", "res://mona.png")