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")