Fixes broken stuff

want een of andere klapmongool was vergeten alle scripts te committen.
This commit is contained in:
2024-04-01 13:05:38 +02:00
parent 53243b368d
commit 90d865b964
7 changed files with 173 additions and 41 deletions
-40
View File
@@ -1,40 +0,0 @@
[gd_scene load_steps=6 format=3 uid="uid://cxxxguab8btnm"]
[ext_resource type="Script" path="res://Player.gd" id="1_va1f4"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_jywl0"]
[sub_resource type="CapsuleMesh" id="CapsuleMesh_7voq6"]
[sub_resource type="PrismMesh" id="PrismMesh_v72wx"]
size = Vector3(0.66, 0.5, 0.5)
[sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_xlkje"]
properties/0/path = NodePath("..:position")
properties/0/spawn = true
properties/0/replication_mode = 1
[node name="CharacterBody3D" type="CharacterBody3D"]
input_ray_pickable = false
script = ExtResource("1_va1f4")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("CapsuleShape3D_jywl0")
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D"]
mesh = SubResource("CapsuleMesh_7voq6")
[node name="MeshInstance3D2" type="MeshInstance3D" parent="CollisionShape3D/MeshInstance3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.690861, -0.370152)
mesh = SubResource("PrismMesh_v72wx")
skeleton = NodePath("../..")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.9682, 0.250177, 0, -0.250177, 0.9682, 0, 1.90604, 2.54868)
cull_mask = 1048573
[node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
root_path = NodePath("../CollisionShape3D")
replication_interval = 1.0
delta_interval = 1.0
replication_config = SubResource("SceneReplicationConfig_xlkje")
+23
View File
@@ -0,0 +1,23 @@
[gd_scene load_steps=4 format=3 uid="uid://bqml7625b3l1q"]
[ext_resource type="Script" path="res://src/Player.gd" id="1_la1lv"]
[sub_resource type="ConvexPolygonShape3D" id="ConvexPolygonShape3D_5mrtf"]
points = PackedVector3Array(-0.2, -0.9, -0.2, -0.2, -0.9, 0.2, 0, 0.9, -0.2, 0.2, -0.9, -0.2, 0.2, -0.9, 0.2, 0, 0.9, 0.2)
[sub_resource type="PrismMesh" id="PrismMesh_c7ovg"]
size = Vector3(0.4, 1.8, 0.4)
[node name="Player" type="CharacterBody3D"]
script = ExtResource("1_la1lv")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.899966, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.899966, 0)
shape = SubResource("ConvexPolygonShape3D_5mrtf")
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D"]
mesh = SubResource("PrismMesh_c7ovg")
skeleton = NodePath("../..")
+4
View File
@@ -0,0 +1,4 @@
extends Node
var is_server = false
var server_ip = ""
+34
View File
@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ce54x86vpupge"
path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+1 -1
View File
@@ -1,6 +1,6 @@
[gd_scene load_steps=12 format=3 uid="uid://dh63aggy3a08x"]
[ext_resource type="Script" path="res://GameLogic.gd" id="1_0vmht"]
[ext_resource type="Script" path="res://src/GameLogic.gd" id="1_0vmht"]
[ext_resource type="Environment" uid="uid://5s8lkk12bxyx" path="res://assets/default_environment.tres" id="3_8gl6a"]
[ext_resource type="Environment" uid="uid://olhmjdg33u2i" path="res://assets/camera_environment.tres" id="3_evlwd"]
+48
View File
@@ -0,0 +1,48 @@
extends Node
const PlayerScene = preload("res://assets/Player.tscn")
var rng = RandomNumberGenerator.new()
func _ready():
$MultiplayerSpawner.add_spawnable_scene("res://assets/Player.tscn")
print($MultiplayerSpawner.get_spawnable_scene(0))
# Start the server if Godot is passed the "--server" argument,
# and start a client otherwise.
if Globals.is_server:
start_network(true)
else:
start_network(false)
func start_network(server: bool):
var peer = ENetMultiplayerPeer.new()
if server:
multiplayer.peer_connected.connect(self.create_player)
multiplayer.peer_disconnected.connect(self.destroy_player)
peer.create_server(4242)
print('server listening on localhost 4242')
else:
multiplayer.connected_to_server.connect(self.connected_to_server)
peer.create_client(Globals.server_ip, 4242)
multiplayer.set_multiplayer_peer(peer)
func create_player(id):
#pass
# Instantiate a new player for this client.
var p = PlayerScene.instantiate()
#var p = Node3D.new()
# Set the name, so players can figure out their local authority
p.name = str(1)
print(str(id) + ' just connected')
$NetworkedNodes.add_child(p)
func destroy_player(id):
pass
# Delete this peer's node.
#$NetworkedNodes.get_node(str(id)).queue_free()
func connected_to_server():
$Pole/Camera3D.queue_free()
+63
View File
@@ -0,0 +1,63 @@
extends CharacterBody3D
const SPEED = 5.0
const JUMP_VELOCITY = 4.5
var synced_position := Vector3.ZERO
var synced_rotation := Vector3.ZERO
# Get the gravity from the project settings to be synced with RigidDynamicBody nodes.
var gravity = ProjectSettings.get_setting("physics/3d/default_gravity")
var has_control = false
func _ready():
has_control = name == str(multiplayer.get_unique_id())
print( 'I am ' + str(multiplayer.get_unique_id()))
print( 'or ' + str(multiplayer.get_remote_sender_id()))
has_control = !Globals.is_server
if Globals.is_server == false && has_control:
print ( 'Taking control!')
get_node("Camera3D").current = true
func _physics_process(delta):
if not has_control:
position = synced_position
rotation = synced_rotation
return
# Add the gravity.
if not is_on_floor():
velocity.y -= gravity * delta
# Handle Jump.
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
velocity.y = JUMP_VELOCITY
# Get the input direction and handle the movement/deceleration.
# As good practice, you should replace UI actions with custom gameplay actions.
var input_dir = Input.get_vector("strafe_left", "strafe_right", "move_forward", "move_backward")
var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if direction:
velocity.x = direction.x * SPEED
velocity.z = direction.z * SPEED
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
velocity.z = move_toward(velocity.z, 0, SPEED)
move_and_slide()
if Input.is_action_pressed("look_left"):
rotation.y += 0.02
if Input.is_action_pressed("look_right"):
rotation.y -= 0.02
rpc_id(1, StringName('update_server'), position, rotation)
#update_server(position, rotation).rpc()
@rpc("any_peer", "call_remote", "unreliable_ordered")
func update_server(pos: Vector3, rot: Vector3):
if not multiplayer.is_server():
return
#if name != str(multiplayer.get_remote_sender_id()):
##print ("foei?")
#return
synced_position = pos
synced_rotation = rot