From: Clifton Palmer Date: Sun, 15 Dec 2024 12:20:01 +0000 (+0200) Subject: Made walls better X-Git-Tag: 0.9.0~9 X-Git-Url: http://git.purplebirdman.com/lightcycles.git/commitdiff_plain/010b3d611cf1bfc9b1b0e715206b484844d5ad65?ds=sidebyside Made walls better --- diff --git a/map/world.gd b/map/world.gd index 3b0e36b..f3dc592 100644 --- a/map/world.gd +++ b/map/world.gd @@ -3,26 +3,27 @@ extends Node3D @onready var _walls = $map var _player_wall_tscn = preload("res://player/player_wall.tscn") -var _wall_start: Vector3 = Vector3.ZERO +var _player_wall_map = {} + + +func _ready() -> void: + _player_add_wall($player) + func _input(event: InputEvent) -> void: if event.is_action_pressed("ui_cancel"): get_tree().quit() -func _on_player_player_ready(player: Player) -> void: - var origin: Vector3 = player.get_tree().get_first_node_in_group("wall_origin").global_position - _wall_start = origin +func _process(_delta: float) -> void: + for player: Player in _player_wall_map.keys(): + var wall: PlayerWall = _player_wall_map[player] + wall.scale = Vector3(1, 1, (player.global_position - wall.global_position).length()) -func _on_player_player_turn(player: Player) -> void: - var origin: Vector3 = player.global_position - +func _player_add_wall(player: Player) -> void: var wall: PlayerWall = _player_wall_tscn.instantiate() add_child(wall) - wall.global_position = _wall_start - wall.global_scale(Vector3(1, 1, (origin - _wall_start).length())) + wall.global_position = player.global_position wall.global_rotation = player.global_rotation - print("Made a wall: " + str(wall)) - - _wall_start = origin + _player_wall_map[player] = wall diff --git a/map/world.tscn b/map/world.tscn index ebee4d9..ab2aaae 100644 --- a/map/world.tscn +++ b/map/world.tscn @@ -39,5 +39,4 @@ shape = SubResource("ConcavePolygonShape3D_mhr6o") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -16) distance = 5.0 -[connection signal="playerReady" from="player" to="." method="_on_player_player_ready"] -[connection signal="playerTurn" from="player" to="." method="_on_player_player_turn"] +[connection signal="playerTurn" from="player" to="." method="_player_add_wall"] diff --git a/player/player.gd b/player/player.gd index 1c842d4..4378676 100644 --- a/player/player.gd +++ b/player/player.gd @@ -2,7 +2,6 @@ class_name Player extends CharacterBody3D -signal playerReady signal playerTurn @@ -17,16 +16,15 @@ signal playerTurn func _ready() -> void: _springArm.spring_length = distance - playerReady.emit(self) func _input(event: InputEvent) -> void: if event.is_action_pressed("player_left"): - playerTurn.emit(self) global_rotate(Vector3.UP, PI/2) - elif event.is_action_pressed("player_right"): playerTurn.emit(self) + elif event.is_action_pressed("player_right"): global_rotate(Vector3.UP, -PI/2) + playerTurn.emit(self) func _physics_process(_delta: float) -> void: