WIP: Better player input system

This commit is contained in:
2025-01-29 22:59:36 +01:00
parent d024f217d0
commit 67e81abad9
19 changed files with 391 additions and 63 deletions

View File

@ -20,11 +20,11 @@ func _ready() -> void:
err = _add_player_spawner()
if err != OK:
print("Couldn't load player spawner")
push_error("Couldn't load player spawner")
err = _add_object_spawner()
if err != OK:
print("Couldn't load object spawner")
push_error("Couldn't load object spawner")
# add objects spawner
if multiplayer.is_server():
_spawn_player(1)

View File

@ -19,12 +19,13 @@ func _get_root() -> Node3D:
# -- Spawn a player node and sync it across all peers
func spawn_players(spawn_location: SpawnController, id: int) -> Error:
if multiplayer.is_server():
var char : CharacterBody3D = null
var char : Node3D = null
var player_data: PlayerState = GameServerManager.players[id]
char = ResourceLoader.load("res://scenes/characters/placeholder.tscn").instantiate()
char = ResourceLoader.load("res://scenes/player/placeholder.tscn").instantiate()
char.name = "PlayerPlaceholder_" + str(player_data.id)
char.owner_id = id
var position: Vector3 = spawn_location.get_spawner(SpawnController.Sides.BLUE)
char.global_position = position
char.set_server_position(position)
_get_root().add_child(char)
return OK
return ERR_UNAUTHORIZED

View File

@ -6,7 +6,7 @@
script = ExtResource("1_2hsyd")
[node name="MultiplayerSpawner" type="MultiplayerSpawner" parent="."]
_spawnable_scenes = PackedStringArray("res://scenes/characters/placeholder.tscn")
_spawnable_scenes = PackedStringArray("res://scenes/characters/placeholder.tscn", "res://scenes/player/placeholder.tscn")
spawn_path = NodePath("../Players")
spawn_limit = 10

View File

@ -31,9 +31,7 @@ func _get_available_spawn(spawn_set: Node3D) -> Node3D:
for spawn: Node3D in spawn_set.get_children():
if not spawn.busy:
spawns.push_back(spawn)
print(spawns.size())
var random_index: int = randi_range(0, spawns.size() - 1)
print(random_index)
return spawns[random_index]
return null
@ -41,13 +39,11 @@ func _get_available_spawn(spawn_set: Node3D) -> Node3D:
func get_spawner(team: Sides) -> Vector3:
match team:
Sides.BLUE:
print("Getting a blue spawner")
var spawn := _get_available_spawn(blue_spawners)
return spawn.choose_spawn_location()
Sides.RED:
print("red")
return Vector3(0,0,0)
_:
print("хз")
return Vector3(0,0,0)
# Get all spawners for each team

View File

@ -962,7 +962,7 @@ script = ExtResource("2_1ss1b")
[node name="Blue" type="Node3D" parent="SpawnLocations"]
[node name="Spawn4" type="Node3D" parent="SpawnLocations/Blue"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.1487, -0.0093751, -8.68195)
transform = Transform3D(-0.332276, 0, 0.943182, 0, 1, 0, -0.943182, 0, -0.332276, 53.1487, -0.0093751, -8.68195)
[node name="Spawn1" type="Node3D" parent="SpawnLocations/Blue"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 52.9098, -0.00937462, 10.3532)