X-Git-Url: http://git.purplebirdman.com/lightcycles.git/blobdiff_plain/caf59faf462f0ef16a3a2474040f4c577b941222..641c10419faa820148a6939ae3c24db13ee749e1:/player/player.gd diff --git a/player/player.gd b/player/player.gd index c71d952..ed5bba0 100644 --- a/player/player.gd +++ b/player/player.gd @@ -10,6 +10,9 @@ signal playerRestart @onready var _skin = $skin +@export_category("Appearance") +@export var color: Color = Color.GOLD + @export_category("Movement") @export var speed = 5.0 @@ -18,24 +21,29 @@ signal playerRestart @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