76 lines
2.1 KiB
GDScript
76 lines
2.1 KiB
GDScript
extends Node
|
|
|
|
|
|
|
|
@onready var manager = get_node(".")
|
|
@onready var main_menu = $CanvasLayer/MainMenu
|
|
@onready var start_game_menu = $CanvasLayer/StartGameMenu
|
|
@onready var address_entry = $CanvasLayer/MainMenu/PanelContainer/MarginContainer/VBoxContainer/HBoxContainer2/AddressEntry
|
|
@onready var notifications = $CanvasLayer/notifications
|
|
@onready var spawner = $MultiplayerSpawner
|
|
|
|
|
|
var PORT = 9999
|
|
var enet_peer = ENetMultiplayerPeer.new()
|
|
|
|
const Level1 = preload("res://Levels/Level1/Level1.tscn")
|
|
const Player = preload("res://Characters/test_player/test_player.tscn")
|
|
var spawn_location: Vector2 = Vector2.ZERO
|
|
|
|
|
|
|
|
# Called when the node enters the scene tree for the first time.
|
|
func _ready():
|
|
#get_tree().paused = true
|
|
var level_1 = Level1.instantiate()
|
|
var spawn_location_in_level = level_1.get_node("PlayerSpawnLocation")
|
|
spawn_location = spawn_location_in_level.get_position()
|
|
spawn_location_in_level.set_visible(false)
|
|
add_child(level_1)
|
|
|
|
|
|
func add_player(peer_id):
|
|
var player = Player.instantiate()
|
|
player.name = str(peer_id)
|
|
add_child(player) # Adds to current scene under root node
|
|
if peer_id == 1:
|
|
player.set_position(spawn_location)
|
|
else:
|
|
spawn_location = spawn_location + Vector2(50, 0)
|
|
player.set_spawn_location.rpc(spawn_location)
|
|
print("SPAWN LOCATION: ", spawn_location, " PEER ID: ", player.name)
|
|
# show_notification.rpc("Test Message")
|
|
|
|
|
|
|
|
@rpc("call_local")
|
|
func show_notification(my_message: String):
|
|
notifications.show_new_notification(my_message)
|
|
|
|
func _on_host_server_pressed():
|
|
main_menu.hide()
|
|
start_game_menu.show()
|
|
enet_peer.create_server(PORT)
|
|
multiplayer.multiplayer_peer = enet_peer
|
|
multiplayer.peer_connected.connect(add_player)
|
|
|
|
add_player(multiplayer.get_unique_id())
|
|
|
|
func _on_join_server_modal_pressed():
|
|
main_menu.hide()
|
|
enet_peer.create_client("localhost", PORT)
|
|
multiplayer.multiplayer_peer = enet_peer
|
|
|
|
func _on_start_game_button_pressed():
|
|
start_game_menu.hide()
|
|
|
|
|
|
func _on_play_single_player_pressed():
|
|
var player = Player.instantiate()
|
|
player.name = str(1)
|
|
add_child(player)
|
|
player.set_position(spawn_location)
|
|
main_menu.hide()
|
|
#notifications.hide()
|
|
|