diff --git a/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll b/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll deleted file mode 100644 index c80cff6..0000000 Binary files a/addons/godotsteam/win64/~libgodotsteam.windows.template_debug.x86_64.dll and /dev/null differ diff --git a/assets/core/enviroment/dev-level/dev1D90.tmp b/assets/core/enviroment/dev-level/dev1D90.tmp new file mode 100644 index 0000000..74fda9c --- /dev/null +++ b/assets/core/enviroment/dev-level/dev1D90.tmp @@ -0,0 +1,59 @@ +[gd_scene load_steps=11 format=3 uid="uid://ewovs6ns5y3k"] + +[ext_resource type="Script" path="res://assets/core/networking/NetworkManager.gd" id="1_kki4t"] +[ext_resource type="Texture2D" uid="uid://gymb0tju4y67" path="res://addons/kennysprototypetextures/Dark/texture_black (1).png" id="1_l0osb"] +[ext_resource type="PackedScene" uid="uid://c6w0ivy4hetrl" path="res://assets/core/player-controller/scenes/player.tscn" id="2_q510b"] +[ext_resource type="PackedScene" uid="uid://c7mtmmke1anxp" path="res://assets/core/ships/test-ship/test-ship.tscn" id="4_feinw"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_yg2er"] +sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) +ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) + +[sub_resource type="Sky" id="Sky_roqfl"] +sky_material = SubResource("ProceduralSkyMaterial_yg2er") + +[sub_resource type="Environment" id="Environment_nyust"] +background_mode = 2 +sky = SubResource("Sky_roqfl") +tonemap_mode = 2 +glow_enabled = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8ttyg"] +albedo_texture = ExtResource("1_l0osb") +uv1_triplanar = true + +[sub_resource type="PlaneMesh" id="PlaneMesh_v66gr"] +lightmap_size_hint = Vector2i(102, 102) +size = Vector2(20, 20) + +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_4238x"] + +[node name="DevLevel" type="Node3D"] + +[node name="NetworkManager" type="Node" parent="."] +unique_name_in_owner = true +script = ExtResource("1_kki4t") + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_nyust") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0) +shadow_enabled = true + +[node name="StaticBody3D" type="StaticBody3D" parent="."] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"] +material_override = SubResource("StandardMaterial3D_8ttyg") +mesh = SubResource("PlaneMesh_v66gr") +skeleton = NodePath("../..") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] +shape = SubResource("WorldBoundaryShape3D_4238x") + +[node name="Player" parent="." instance=ExtResource("2_q510b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +joystick_camera_sens_multiplier = 5.0 + +[node name="TestShip" parent="." instance=ExtResource("4_feinw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24218, 0.563903, 0) diff --git a/assets/core/enviroment/dev-level/dev81EA.tmp b/assets/core/enviroment/dev-level/dev81EA.tmp new file mode 100644 index 0000000..74fda9c --- /dev/null +++ b/assets/core/enviroment/dev-level/dev81EA.tmp @@ -0,0 +1,59 @@ +[gd_scene load_steps=11 format=3 uid="uid://ewovs6ns5y3k"] + +[ext_resource type="Script" path="res://assets/core/networking/NetworkManager.gd" id="1_kki4t"] +[ext_resource type="Texture2D" uid="uid://gymb0tju4y67" path="res://addons/kennysprototypetextures/Dark/texture_black (1).png" id="1_l0osb"] +[ext_resource type="PackedScene" uid="uid://c6w0ivy4hetrl" path="res://assets/core/player-controller/scenes/player.tscn" id="2_q510b"] +[ext_resource type="PackedScene" uid="uid://c7mtmmke1anxp" path="res://assets/core/ships/test-ship/test-ship.tscn" id="4_feinw"] + +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_yg2er"] +sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) +ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) + +[sub_resource type="Sky" id="Sky_roqfl"] +sky_material = SubResource("ProceduralSkyMaterial_yg2er") + +[sub_resource type="Environment" id="Environment_nyust"] +background_mode = 2 +sky = SubResource("Sky_roqfl") +tonemap_mode = 2 +glow_enabled = true + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8ttyg"] +albedo_texture = ExtResource("1_l0osb") +uv1_triplanar = true + +[sub_resource type="PlaneMesh" id="PlaneMesh_v66gr"] +lightmap_size_hint = Vector2i(102, 102) +size = Vector2(20, 20) + +[sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_4238x"] + +[node name="DevLevel" type="Node3D"] + +[node name="NetworkManager" type="Node" parent="."] +unique_name_in_owner = true +script = ExtResource("1_kki4t") + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_nyust") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0) +shadow_enabled = true + +[node name="StaticBody3D" type="StaticBody3D" parent="."] + +[node name="MeshInstance3D" type="MeshInstance3D" parent="StaticBody3D"] +material_override = SubResource("StandardMaterial3D_8ttyg") +mesh = SubResource("PlaneMesh_v66gr") +skeleton = NodePath("../..") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"] +shape = SubResource("WorldBoundaryShape3D_4238x") + +[node name="Player" parent="." instance=ExtResource("2_q510b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) +joystick_camera_sens_multiplier = 5.0 + +[node name="TestShip" parent="." instance=ExtResource("4_feinw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.24218, 0.563903, 0) diff --git a/assets/core/interactables/Interactable.gd b/assets/core/interactables/Interactable.gd index 2eeced2..04e01f4 100644 --- a/assets/core/interactables/Interactable.gd +++ b/assets/core/interactables/Interactable.gd @@ -2,5 +2,8 @@ class_name Interactable extends Node3D +var player_reference: Player + + func interact(): pass diff --git a/assets/core/interactables/ship-helm/ship_helm.gd b/assets/core/interactables/ship-helm/ship_helm.gd index 68647be..a875d94 100644 --- a/assets/core/interactables/ship-helm/ship_helm.gd +++ b/assets/core/interactables/ship-helm/ship_helm.gd @@ -1 +1,19 @@ +class_name ShipHelm + extends Interactable + +@export var parent_ship: Ship + +var is_being_piloted: bool = false + +func interact(): + if !is_being_piloted: + player_reference.set_is_piloting(true) + print("set player to piloting") + is_being_piloted = true + parent_ship.ship_is_piloted = true + elif is_being_piloted: + player_reference.set_is_piloting(false) + print("set player to NOT piloting") + is_being_piloted = false + parent_ship.ship_is_piloted = false diff --git a/assets/core/player-controller/scenes/pla106A.tmp b/assets/core/player-controller/scenes/pla106A.tmp new file mode 100644 index 0000000..2ebf37b --- /dev/null +++ b/assets/core/player-controller/scenes/pla106A.tmp @@ -0,0 +1,35 @@ +[gd_scene load_steps=5 format=3 uid="uid://c6w0ivy4hetrl"] + +[ext_resource type="Script" path="res://assets/core/player-controller/scripts/player.gd" id="1_bv7t4"] +[ext_resource type="Script" path="res://assets/core/player-controller/scripts/player_interacter.gd" id="2_wvu3d"] + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_v7b3h"] +radius = 0.35 + +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_qlkab"] +radius = 0.35 + +[node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("camera")] +script = ExtResource("1_bv7t4") +camera = NodePath("Neck/Camera3D") + +[node name="PlayerTag" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.26654, 0) +billboard = 1 +text = "username" + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +mesh = SubResource("CapsuleMesh_v7b3h") + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("CapsuleShape3D_qlkab") + +[node name="Neck" type="Node3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0) + +[node name="Camera3D" type="Camera3D" parent="Neck"] + +[node name="RayCast3D" type="RayCast3D" parent="Neck/Camera3D" node_paths=PackedStringArray("player")] +target_position = Vector3(0, 0, -2.5) +script = ExtResource("2_wvu3d") +player = NodePath("../../..") diff --git a/assets/core/player-controller/scenes/player.tscn b/assets/core/player-controller/scenes/player.tscn index e687427..2ebf37b 100644 --- a/assets/core/player-controller/scenes/player.tscn +++ b/assets/core/player-controller/scenes/player.tscn @@ -29,6 +29,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.65, 0) [node name="Camera3D" type="Camera3D" parent="Neck"] -[node name="RayCast3D" type="RayCast3D" parent="Neck/Camera3D"] +[node name="RayCast3D" type="RayCast3D" parent="Neck/Camera3D" node_paths=PackedStringArray("player")] target_position = Vector3(0, 0, -2.5) script = ExtResource("2_wvu3d") +player = NodePath("../../..") diff --git a/assets/core/player-controller/scripts/player.gd b/assets/core/player-controller/scripts/player.gd index 578f5c6..f5418a2 100644 --- a/assets/core/player-controller/scripts/player.gd +++ b/assets/core/player-controller/scripts/player.gd @@ -3,9 +3,10 @@ class_name Player extends CharacterBody3D var network_manager: NetworkManager var player_tag: Label3D var username: String = "" +var is_piloting: bool = false @export_category("Player") -@export_range(1, 35, 1) var speed: float = 10 # m/s +@export_range(1, 35, 1) var speed: float = 5 # m/s @export_range(10, 400, 1) var acceleration: float = 100 # m/s^2 @export_range(0.1, 3.0, 0.1) var jump_height: float = 1 # m @@ -49,7 +50,7 @@ func _unhandled_input(event: InputEvent) -> void: _rotate_camera() elif event is InputEventJoypadMotion: is_using_joystick = true - if Input.is_action_just_pressed("jump"): + if Input.is_action_just_pressed("jump") and !is_piloting: jumping = true @@ -62,12 +63,18 @@ func _input(event): func _physics_process(delta: float) -> void: if current_ship != null: - global_transform.basis = current_ship.global_transform.basis + if !is_piloting: + velocity = walk(delta) + _gravity(delta) + _jump(delta) + global_transform.basis = current_ship.global_transform.basis #TILTS PLAYER FIXXXX + else: + global_rotation.y = current_ship.global_rotation.y + else: + velocity = walk(delta) + _gravity(delta) + _jump(delta) + global_rotation.x = 0.0 + global_rotation.z = 0.0 - if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: _handle_joypad_camera_rotation(delta) - velocity = _walk(delta) + _gravity(delta) + _jump(delta) move_and_slide() @@ -96,7 +103,7 @@ func _handle_joypad_camera_rotation(delta: float, sens_mod: float = 1.0) -> void look_dir = Vector2.ZERO -func _walk(delta: float) -> Vector3: +func walk(delta: float) -> Vector3: if Input.mouse_mode == Input.MOUSE_MODE_CAPTURED: move_dir = Input.get_vector("move_left", "move_right", "move_forwards", "move_backwards") var _forward: Vector3 = camera.global_transform.basis * Vector3(move_dir.x, 0, move_dir.y) @@ -129,3 +136,7 @@ func player_exited_ship(ship_global_position: Vector3, ship: Ship): current_ship = null print(ship.ship_id) print(global_position) + + +func set_is_piloting(state: bool): + is_piloting = state diff --git a/assets/core/player-controller/scripts/player_interacter.gd b/assets/core/player-controller/scripts/player_interacter.gd index 5a2b652..e941591 100644 --- a/assets/core/player-controller/scripts/player_interacter.gd +++ b/assets/core/player-controller/scripts/player_interacter.gd @@ -1,5 +1,7 @@ extends RayCast3D +@export var player: Player + var current_interactable: Interactable func _input(event): @@ -7,4 +9,5 @@ func _input(event): if event.is_action_released("interact"): current_interactable = get_collider() as Interactable GameConsole.log_debug("interacted with interactable: " + current_interactable.name) + current_interactable.player_reference = player current_interactable.interact() diff --git a/assets/core/ships/test-ship/test-ship.tscn b/assets/core/ships/test-ship/test-ship.tscn index fc784fa..b57547c 100644 --- a/assets/core/ships/test-ship/test-ship.tscn +++ b/assets/core/ships/test-ship/test-ship.tscn @@ -21,10 +21,12 @@ top_radius = 0.1 bottom_radius = 0.1 height = 4.5 -[node name="TestShip" type="RigidBody3D" node_paths=PackedStringArray("ship_area")] +[node name="TestShip" type="RigidBody3D" node_paths=PackedStringArray("ship_area", "ship_helm")] +mass = 800.0 gravity_scale = 0.0 script = ExtResource("1_yql7r") ship_area = NodePath("Area3D") +ship_helm = NodePath("ShipHelm") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] mesh = SubResource("BoxMesh_tkeg5") @@ -59,8 +61,9 @@ mesh = SubResource("CylinderMesh_h3cm2") transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.2691, 1.87582, -2.52429) mesh = SubResource("CylinderMesh_h3cm2") -[node name="ShipHelm" parent="." instance=ExtResource("2_bmsx0")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, -1.6) +[node name="ShipHelm" parent="." node_paths=PackedStringArray("parent_ship") instance=ExtResource("2_bmsx0")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, -0.598755) +parent_ship = NodePath("..") [connection signal="body_entered" from="Area3D" to="." method="_on_area_3d_body_entered"] [connection signal="body_exited" from="Area3D" to="." method="_on_area_3d_body_exited"] diff --git a/assets/core/ships/test-ship/test_ship.gd b/assets/core/ships/test-ship/test_ship.gd index 3e438f8..4187477 100644 --- a/assets/core/ships/test-ship/test_ship.gd +++ b/assets/core/ships/test-ship/test_ship.gd @@ -1,15 +1,45 @@ class_name Ship - extends RigidBody3D @export var ship_area: Area3D +@export var ship_helm: ShipHelm var ship_id: String = "1a" +var ship_is_piloted: bool = false +var base_turn_speed: float = 1 +var ship_lift_speed: float = 20 # Adjust this value as needed +var acceleration: float = 50 +var deceleration: float = acceleration * 0.5 +var ship_top_speed: float = 100 +var current_speed: float = 0.0 +var max_force: float = 1000.0 func _physics_process(delta): global_rotation.x = lerpf(global_rotation.x, 0, 0.01) global_rotation.z = lerpf(global_rotation.z, 0, 0.01) + if ship_is_piloted: + var turn_speed = base_turn_speed / max(mass, 1) + if Input.is_action_pressed("move_left"): + angular_velocity.y += turn_speed + elif Input.is_action_pressed("move_right"): + angular_velocity.y -= turn_speed + + if Input.is_action_pressed("jump"): + # Apply an impulse to achieve instantaneous upward velocity + apply_impulse(Vector3.UP * ship_lift_speed) + + if Input.is_action_pressed("move_forwards"): + current_speed = min(current_speed + acceleration * delta, ship_top_speed) + else: + current_speed = max(current_speed - deceleration * delta, 0.0) + + var desired_velocity = -transform.basis.z * current_speed + var forward_force = (desired_velocity - linear_velocity) * mass + forward_force = forward_force.normalized() * min(forward_force.length(), max_force) + apply_central_force(forward_force) + + angular_velocity.y = clamp(angular_velocity.y, -0.5, 0.5) func _on_area_3d_body_entered(body): if body is Player: @@ -19,3 +49,4 @@ func _on_area_3d_body_entered(body): func _on_area_3d_body_exited(body): if body is Player: body.player_exited_ship(global_position, self) + ship_helm.is_being_piloted = false diff --git a/godot-jolt/windows/~godot-jolt_windows-x64_editor.dll b/godot-jolt/windows/~godot-jolt_windows-x64_editor.dll deleted file mode 100644 index c05d288..0000000 Binary files a/godot-jolt/windows/~godot-jolt_windows-x64_editor.dll and /dev/null differ