Files
2D_Game_test/Game Manager/game_manager.gd

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