Initial commit
This commit is contained in:
commit
1cf3019178
8 changed files with 351 additions and 0 deletions
76
main.gd
Normal file
76
main.gd
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue