MP sync working, redoing all menus now
This commit is contained in:
@@ -1,22 +1,81 @@
|
||||
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 = level_1.get_node("PlayerSpawnLocation")
|
||||
spawn_location.set_visible(false)
|
||||
manager.add_child(level_1)
|
||||
var new_player = Player.instantiate()
|
||||
manager.add_child(new_player)
|
||||
new_player.set_position(spawn_location.get_position())
|
||||
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_button_pressed(): # When hosting a new game
|
||||
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())
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta):
|
||||
pass
|
||||
|
||||
|
||||
func _on_join_button_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_button_pressed():
|
||||
var player = Player.instantiate()
|
||||
player.name = str(1)
|
||||
add_child(player)
|
||||
player.set_position(spawn_location)
|
||||
main_menu.hide()
|
||||
notifications.hide()
|
||||
|
Reference in New Issue
Block a user