extends Node3D
-@onready var _walls = $map
+
+@onready var _screen: SplitScreenContainer = $SplitScreenContainer
var _player_wall_tscn = preload("res://player/player_wall.tscn")
var _player_wall_map = {}
+var _input_map = [
+ {
+ "left": "player1_left",
+ "right": "player1_right",
+ "restart": "player1_restart"
+ },
+ {
+ "left": "player2_left",
+ "right": "player2_right",
+ "restart": "player2_restart"
+ }
+]
func _ready() -> void:
- _player_add_wall($player)
+ var players: Array[Player] = [$Player1, $Player2]
+
+ _screen.set_splitscreen(players)
+
+ for player in players:
+ _player_add_wall(player)
+ player.set_input_map(_input_map.pop_front())
func _input(event: InputEvent) -> void:
func _player_add_wall(player: Player) -> void:
var wall: PlayerWall = _player_wall_tscn.instantiate()
+
+ # start new wall from origin position
add_child(wall)
wall.global_position = player.global_position
wall.global_rotation = player.global_rotation
+
_player_wall_map[player] = wall
+
+
+func _on_player_destroyed(player: Player) -> void:
+ print("Player \"" + player.name + "\" destroyed")
+
+
+func _on_player_player_restart(player: Player) -> void:
+ print("Player \"" + player.name + "\" wants to restart")
+ get_tree().reload_current_scene()