]> Untitled Git - lightcycles.git/blobdiff - map/world.gd
Squashed commit of the following:
[lightcycles.git] / map / world.gd
index f3dc592fa9ffc936a85cc715a85c16c6b5193da9..32f1a7c72379da5ad56613204eb1f2e52e667334 100644 (file)
@@ -1,13 +1,32 @@
 extends Node3D
 
 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 _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:
 
 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 _input(event: InputEvent) -> void:
@@ -23,7 +42,19 @@ func _process(_delta: float) -> void:
 
 func _player_add_wall(player: Player) -> void:
        var wall: PlayerWall = _player_wall_tscn.instantiate()
 
 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
        add_child(wall)
        wall.global_position = player.global_position
        wall.global_rotation = player.global_rotation
+       
        _player_wall_map[player] = wall
        _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()