67 lines
1.7 KiB
C#
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") |