extends Node const PORT = 25565 const MAX_CONNECTIONS = 20 var counter = 0 @onready var before_connect_container = get_node("BeforeConnect") as Container @onready var host_text_edit = get_node("%HostTextEdit") as TextEdit @onready var connect_button = get_node("%ConnectButton") as Button @onready var after_connect_container = get_node("%AfterConnect") as Container @onready var counter_label = get_node("%CounterLabel") as Label @onready var decrement_button = get_node("%DecrementButton") as Button @onready var increment_button = get_node("%IncrementButton") as Button func _ready() -> void: if OS.has_feature("dedicated_server"): print("Starting dedicated server") var peer = ENetMultiplayerPeer.new() var err = peer.create_server(PORT, MAX_CONNECTIONS) if err: print(err) multiplayer.multiplayer_peer = peer multiplayer.peer_connected.connect(_on_player_connected) else: print("Game starting") #multiplayer.peer_disconnected.connect(_on_player_disconnected) multiplayer.connected_to_server.connect(_on_connected_ok) #multiplayer.connection_failed.connect(_on_connected_fail) #multiplayer.server_disconnected.connect(_on_server_disconnected) increment_button.button_up.connect(func(): _increment.rpc()) decrement_button.button_up.connect(func(): _decrement.rpc()) connect_button.button_up.connect(_on_connect_pressed) @rpc("any_peer", "call_local") func _increment(): counter += 1 counter_label.text = str(counter) @rpc("any_peer", "call_local") func _decrement(): counter -= 1 counter_label.text = str(counter) @rpc("authority", "call_remote") func _set_counter(value: int): counter = value counter_label.text = str(counter) func _on_connect_pressed(): var peer = ENetMultiplayerPeer.new() var parsed: PackedStringArray = host_text_edit.text.split(":") print("Connecting to ", parsed[0]) peer.create_client(parsed[0] if not parsed[0].is_empty() else "localhost", int(parsed[1]) if parsed.size() > 1 else PORT) multiplayer.multiplayer_peer = peer func _on_player_connected(id: int): if multiplayer.get_unique_id() == 1: _set_counter.rpc_id(id, counter) func _on_player_disconnected(): pass func _on_connected_ok(): $AfterConnect.visible = true $BeforeConnect.visible = false counter_label.text = str(counter) func _on_connected_fail(): pass func _on_server_disconnected(): pass