]> Untitled Git - lightcycles.git/blobdiff - player/player.gd
Updated player walls to be same color as player
[lightcycles.git] / player / player.gd
index c71d9525cf3f9dc95aa1ec6ceb768d96e9c94497..42300fe01e7e1816ea91e5eded1fc58742cd98c1 100644 (file)
@@ -10,32 +10,40 @@ signal playerRestart
 @onready var _skin = $skin
 
 
+@export_category("Appearance")
+@export var color: Color = Color.GOLD
+
 @export_category("Movement") 
-@export var speed = 5.0
+@export var speed: float = 5.0
 
 @export_category("Camera")
-@export var distance = 3.0
+@export var distance: float = 3.0
 
 
 @onready var _springArm = $SpringArm3D
+@onready var _camera = $SpringArm3D/Camera3D
 
 enum state {ALIVE, DEAD}
 var _state = state.ALIVE
 
+var _input_map = null
+
+
 func _ready() -> void:
        _springArm.spring_length = distance
+       _skin.set_color(color)
 
 
 func _input(event: InputEvent) -> void:
        if _state == state.ALIVE:
-               if event.is_action_pressed("player_left"):
+               if event.is_action_pressed(_input_map.left):
                        global_rotate(Vector3.UP, PI/2)
                        playerTurn.emit(self)
-               elif event.is_action_pressed("player_right"):
+               elif event.is_action_pressed(_input_map.right):
                        global_rotate(Vector3.UP, -PI/2)
                        playerTurn.emit(self)
        else:
-               if event.is_action_pressed("player_restart"):
+               if event.is_action_pressed(_input_map.restart):
                        playerRestart.emit(self)
 
 
@@ -51,3 +59,11 @@ func _explode() -> void:
        _skin.visible = false
        _state = state.DEAD
        playerDestroyed.emit(self)
+
+
+func get_camera_rid() -> RID:
+       return _camera.get_camera_rid()
+
+
+func set_input_map(input_map) -> void:
+       _input_map = input_map