@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
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"]
extends CharacterBody3D
-signal playerReady
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: