WIP: Modifying the client node
This commit is contained in:
@ -25,31 +25,12 @@ func _ready() -> void:
|
||||
if err != OK:
|
||||
push_error("Couldn't load bullet spawner")
|
||||
|
||||
# Adding a node that should be used by the clients
|
||||
client_node = Node3D.new()
|
||||
client_node.name = "ClientNode"
|
||||
add_child(client_node)
|
||||
|
||||
# add objects spawner
|
||||
if not OS.has_feature("dedicated_server"):
|
||||
err = _add_entry_screen()
|
||||
if err != OK:
|
||||
logger.error("Couldn't load the entry screen, err " + str(err))
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
if not multiplayer.is_server():
|
||||
pass
|
||||
#@rpc("call_local", "unreliable", "any_peer")p
|
||||
#func _request_spawn():
|
||||
#var id: int = multiplayer.get_remote_sender_id()
|
||||
#_spawn_player(id)
|
||||
#
|
||||
#func _spawn_player(id: int):
|
||||
#if multiplayer.is_server():
|
||||
#player_spawner.spawn_players(id)
|
||||
#var controlled_node: ServerNode = player_spawner.get_player_node(id)
|
||||
#var position := controlled_node.shared_node.global_position
|
||||
#_spawn_player_controller_node.rpc_id(id, position.x, position.y, position.z)
|
||||
|
||||
@rpc("any_peer", "call_local", "unreliable")
|
||||
func _spawn_player_controller_node(x: float, y: float, z: float):
|
||||
|
@ -22,11 +22,12 @@ func _process(delta: float) -> void:
|
||||
for player in server_node.players:
|
||||
if not spawned_players.has(player):
|
||||
logger.debug("Spawning a player with id: " + str(player))
|
||||
var err := spawn_players(server_node.players[player])
|
||||
if err != OK:
|
||||
logger.error("Couldn't spawn a player, err: " + str(err))
|
||||
else:
|
||||
spawned_players[player] = 1
|
||||
if player.has("side"):
|
||||
var err := spawn_players(server_node.players[player])
|
||||
if err != OK:
|
||||
logger.error("Couldn't spawn a player, err: " + str(err))
|
||||
else:
|
||||
spawned_players[player] = 1
|
||||
|
||||
# -- Spawn a player node and sync it across all peers
|
||||
func spawn_players(player_data: Dictionary) -> Error:
|
||||
|
@ -1,8 +1,8 @@
|
||||
[gd_scene load_steps=12 format=3 uid="uid://btlkodvngm634"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes_old/player/hud.gd" id="1_1ffy2"]
|
||||
[ext_resource type="Script" path="res://scenes/player/hud.gd" id="1_6gu0f"]
|
||||
[ext_resource type="Texture2D" uid="uid://oopj5mj1vdp0" path="res://assets/crosshairs/crosshair_default.png" id="1_u13st"]
|
||||
[ext_resource type="Script" path="res://scenes_old/player/gun_mount.gd" id="3_qmcsd"]
|
||||
[ext_resource type="Script" path="res://scenes/player/gun_mount.gd" id="3_d72tg"]
|
||||
|
||||
[sub_resource type="LabelSettings" id="LabelSettings_3bk8i"]
|
||||
font_size = 70
|
||||
@ -84,7 +84,7 @@ anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
script = ExtResource("1_1ffy2")
|
||||
script = ExtResource("1_6gu0f")
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="."]
|
||||
layout_mode = 1
|
||||
@ -144,7 +144,7 @@ environment = SubResource("Environment_i2xeo")
|
||||
fov = 50.0
|
||||
|
||||
[node name="GunMount" type="Node3D" parent="SubViewportContainer/SubViewport/Camera3D"]
|
||||
script = ExtResource("3_qmcsd")
|
||||
script = ExtResource("3_d72tg")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="SubViewportContainer/SubViewport/Camera3D/GunMount"]
|
||||
libraries = {
|
||||
|
@ -1,9 +1,9 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://conlvf1vqni6c"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes_old/player/player_node.gd" id="1_q00bg"]
|
||||
[ext_resource type="PackedScene" uid="uid://cirun2v34nfpg" path="res://scenes_old/player/shared_node.tscn" id="2_4mkad"]
|
||||
[ext_resource type="Script" path="res://scenes/player/player_node.gd" id="1_qliix"]
|
||||
[ext_resource type="PackedScene" uid="uid://cirun2v34nfpg" path="res://scenes/player/shared_node.tscn" id="2_4mkad"]
|
||||
|
||||
[node name="PlayerNode" type="Node3D"]
|
||||
script = ExtResource("1_q00bg")
|
||||
script = ExtResource("1_qliix")
|
||||
|
||||
[node name="SharedNode" parent="." instance=ExtResource("2_4mkad")]
|
||||
|
@ -11,7 +11,7 @@ var first_slot_weapon: WeaponController
|
||||
@export var input_direction: Vector2
|
||||
@export var owner_id: int = 0
|
||||
|
||||
@onready var camera_mount: Node3D = $SharedNode/CameraMount
|
||||
@onready var camera_mount: CameraMount = $SharedNode/CameraMount
|
||||
@onready var shared_node: CharacterBody3D = $SharedNode
|
||||
@onready var bullet_starting_point: Node3D = $SharedNode/CameraMount/BulletStartingPoint
|
||||
@onready var map_controller: MapController
|
||||
@ -22,6 +22,7 @@ func _ready() -> void:
|
||||
shared_node.set_collision_mask_value(1, true)
|
||||
shared_node.set_collision_mask_value(3, true)
|
||||
map_controller = find_parent("Map")
|
||||
camera_mount.active = true
|
||||
_load_weapon()
|
||||
#map_controller.spawn_player_model(shared_node, owner_id)
|
||||
# Load the default weapon and set the current attack properties
|
||||
|
@ -1,4 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://cirun2v34nfpg"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cirun2v34nfpg"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/utils/camera_mount/camera_mount.gd" id="1_u7w0x"]
|
||||
|
||||
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_r38x6"]
|
||||
height = 1.8
|
||||
@ -11,11 +13,9 @@ collision_mask = 0
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9, 0)
|
||||
shape = SubResource("CapsuleShape3D_r38x6")
|
||||
|
||||
[node name="BulletStartingPoint" type="Node3D" parent="."]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 1.6036, -0.127098)
|
||||
|
||||
[node name="CameraMount" type="Node3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6036, -0.127098)
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CameraMount"]
|
||||
cull_mask = 524285
|
||||
|
||||
[node name="BulletStartingPoint" type="Node3D" parent="CameraMount"]
|
||||
transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, 0, 0, 0)
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.64754, 0)
|
||||
script = ExtResource("1_u7w0x")
|
||||
|
21
godot/scenes/utils/camera_mount/camera_mount.gd
Normal file
21
godot/scenes/utils/camera_mount/camera_mount.gd
Normal file
@ -0,0 +1,21 @@
|
||||
extends Node3D
|
||||
class_name CameraMount
|
||||
|
||||
# -- When camera mount is not active, client shouldn't connect to it
|
||||
@export var active: bool = false
|
||||
@export var default: bool = false
|
||||
|
||||
var camera: Camera3D
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
camera = Camera3D.new()
|
||||
add_child(camera)
|
||||
|
||||
@rpc("any_peer", "call_local", "reliable")
|
||||
func connect_to_camera() -> void :
|
||||
if active:
|
||||
camera.make_current()
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
6
godot/scenes/utils/camera_mount/camera_mount.tscn
Normal file
6
godot/scenes/utils/camera_mount/camera_mount.tscn
Normal file
@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://316q8oy76ev1"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/utils/camera_mount/camera_mount.gd" id="1_5dtrj"]
|
||||
|
||||
[node name="CameraMount" type="Node3D"]
|
||||
script = ExtResource("1_5dtrj")
|
16
godot/scenes/utils/client_node/client_node.gd
Normal file
16
godot/scenes/utils/client_node/client_node.gd
Normal file
@ -0,0 +1,16 @@
|
||||
extends Node3D
|
||||
class_name ClientNode
|
||||
|
||||
|
||||
var available_cameras: Array[CameraMount] = []
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _physics_process(delta: float) -> void:
|
||||
var game_root := helpers.get_root_node()
|
||||
var available_cameras_raw: Array[Node] = game_root.find_children("*", "CameraMount", true, false)
|
||||
for camera_raw in available_cameras_raw:
|
||||
var camera: CameraMount = camera_raw as CameraMount
|
||||
if camera.active:
|
||||
camera.connect_to_camera()
|
||||
available_cameras.append(camera)
|
||||
|
6
godot/scenes/utils/client_node/client_node.tscn
Normal file
6
godot/scenes/utils/client_node/client_node.tscn
Normal file
@ -0,0 +1,6 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://b4y8gnogfoulk"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/utils/client_node/client_node.gd" id="1_otqq8"]
|
||||
|
||||
[node name="ClientNode" type="Node3D"]
|
||||
script = ExtResource("1_otqq8")
|
@ -1,6 +1,7 @@
|
||||
[gd_scene load_steps=2 format=3 uid="uid://f3lbhroreypw"]
|
||||
[gd_scene load_steps=3 format=3 uid="uid://f3lbhroreypw"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/utils/game_root/game_root.gd" id="1_ogtsj"]
|
||||
[ext_resource type="Script" path="res://scenes/utils/client_node/client_node.gd" id="2_75551"]
|
||||
|
||||
[node name="GameRoot" type="Node"]
|
||||
script = ExtResource("1_ogtsj")
|
||||
@ -14,4 +15,7 @@ spawn_limit = 1
|
||||
|
||||
[node name="Level" type="Node3D" parent="."]
|
||||
|
||||
[node name="ClientNode" type="Node3D" parent="."]
|
||||
script = ExtResource("2_75551")
|
||||
|
||||
[connection signal="load_map" from="." to="." method="_on_load_map"]
|
||||
|
Reference in New Issue
Block a user