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/dev-level.tscn b/assets/core/enviroment/dev-level/dev-level.tscn index 515c19e..a5f6264 100644 --- a/assets/core/enviroment/dev-level/dev-level.tscn +++ b/assets/core/enviroment/dev-level/dev-level.tscn @@ -27,10 +27,10 @@ transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, - shadow_enabled = true [node name="Player" parent="." instance=ExtResource("2_q510b")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 9.48712, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.02866, 27.0719, 0.35519) 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, 9.05102, 0) - [node name="level" parent="." instance=ExtResource("3_vcq2f")] + +[node name="TestShip" parent="." instance=ExtResource("4_feinw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 20.4359, 0) diff --git a/assets/core/enviroment/dev-level/devAB7F.tmp b/assets/core/enviroment/dev-level/devAB7F.tmp new file mode 100644 index 0000000..2ee2a5c --- /dev/null +++ b/assets/core/enviroment/dev-level/devAB7F.tmp @@ -0,0 +1,36 @@ +[gd_scene load_steps=7 format=3 uid="uid://ewovs6ns5y3k"] + +[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://dqymnaouq1mu2" path="res://assets/core/enviroment/dev-level/terrain.tscn" id="3_vcq2f"] +[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 + +[node name="DevLevel" type="Node3D"] + +[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="Player" parent="." instance=ExtResource("2_q510b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.02866, 60.1244, 0.35519) +joystick_camera_sens_multiplier = 5.0 + +[node name="level" parent="." instance=ExtResource("3_vcq2f")] + +[node name="TestShip" parent="." instance=ExtResource("4_feinw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 53.4883, 0) diff --git a/assets/core/enviroment/dev-level/devF297.tmp b/assets/core/enviroment/dev-level/devF297.tmp new file mode 100644 index 0000000..2ee2a5c --- /dev/null +++ b/assets/core/enviroment/dev-level/devF297.tmp @@ -0,0 +1,36 @@ +[gd_scene load_steps=7 format=3 uid="uid://ewovs6ns5y3k"] + +[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://dqymnaouq1mu2" path="res://assets/core/enviroment/dev-level/terrain.tscn" id="3_vcq2f"] +[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 + +[node name="DevLevel" type="Node3D"] + +[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="Player" parent="." instance=ExtResource("2_q510b")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.02866, 60.1244, 0.35519) +joystick_camera_sens_multiplier = 5.0 + +[node name="level" parent="." instance=ExtResource("3_vcq2f")] + +[node name="TestShip" parent="." instance=ExtResource("4_feinw")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 53.4883, 0) diff --git a/assets/core/enviroment/dev-level/terrain.tscn b/assets/core/enviroment/dev-level/terrain.tscn index 770c148..ae79a13 100644 --- a/assets/core/enviroment/dev-level/terrain.tscn +++ b/assets/core/enviroment/dev-level/terrain.tscn @@ -12,7 +12,7 @@ shader_parameter/WallTexScale = 1.0 shader_parameter/WallColor = Color(0.662452, 0.662452, 0.662452, 1) shader_parameter/TopTexScale = 1.005 shader_parameter/TopColor = Color(0.466181, 0.466181, 0.466181, 1) -shader_parameter/BlendValues = Vector4(3.045, -1.825, 0, 1.115) +shader_parameter/BlendValues = Vector4(3.12, -1.96, 0, 1.115) shader_parameter/WallTex = ExtResource("4_c1a6l") shader_parameter/TopTex = ExtResource("3_u3eue") @@ -20,3 +20,7 @@ shader_parameter/TopTex = ExtResource("3_u3eue") [node name="Landscape" parent="." index="0"] surface_material_override/0 = SubResource("ShaderMaterial_4w1dc") + +[node name="StaticBody3D" parent="Landscape" index="0"] +collision_layer = 64 +collision_mask = 143 diff --git a/assets/core/interactables/ship-helm/ship_helm.gd b/assets/core/interactables/ship-helm/ship_helm.gd index a875d94..acb9925 100644 --- a/assets/core/interactables/ship-helm/ship_helm.gd +++ b/assets/core/interactables/ship-helm/ship_helm.gd @@ -3,9 +3,11 @@ class_name ShipHelm extends Interactable @export var parent_ship: Ship +@export var helm_lock_pos: Marker3D var is_being_piloted: bool = false + func interact(): if !is_being_piloted: player_reference.set_is_piloting(true) @@ -17,3 +19,4 @@ func interact(): print("set player to NOT piloting") is_being_piloted = false parent_ship.ship_is_piloted = false + GameConsole.log_debug("helm pilot state - " + str(is_being_piloted)) diff --git a/assets/core/player-controller/scenes/player.tscn b/assets/core/player-controller/scenes/player.tscn index e562096..c25dd49 100644 --- a/assets/core/player-controller/scenes/player.tscn +++ b/assets/core/player-controller/scenes/player.tscn @@ -10,16 +10,14 @@ radius = 0.35 radius = 0.35 [node name="Player" type="CharacterBody3D" node_paths=PackedStringArray("camera")] +collision_mask = 243 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) visibility_range_begin = 0.7 -visibility_range_begin_margin = 14.0 visibility_range_end = 15.0 -visibility_range_end_margin = 14.0 -visibility_range_fade_mode = 1 billboard = 1 text = "username" diff --git a/assets/core/player-controller/scripts/player.gd b/assets/core/player-controller/scripts/player.gd index a9eb3c4..d1a5560 100644 --- a/assets/core/player-controller/scripts/player.gd +++ b/assets/core/player-controller/scripts/player.gd @@ -54,10 +54,12 @@ func _physics_process(delta: float) -> void: if current_ship != null: if !is_piloting: velocity = walk(delta) + _gravity(delta) + _jump(delta) - global_transform.basis = current_ship.global_transform.basis + global_basis = current_ship.global_basis else: global_rotation.y = current_ship.global_rotation.y - + global_rotation.y = current_ship.global_rotation.y + + else: velocity = walk(delta) + _gravity(delta) + _jump(delta) global_rotation.x = 0.0 @@ -130,3 +132,4 @@ func player_exited_ship(ship_global_position: Vector3, ship: Ship): func set_is_piloting(state: bool): is_piloting = state + GameConsole.log_debug("player pilot state" + str(is_piloting)) diff --git a/assets/core/ships/test-ship/airship_raft.glb b/assets/core/ships/test-ship/airship_raft.glb new file mode 100644 index 0000000..12ee6ae Binary files /dev/null and b/assets/core/ships/test-ship/airship_raft.glb differ diff --git a/assets/core/ships/test-ship/airship_raft.glb.import b/assets/core/ships/test-ship/airship_raft.glb.import new file mode 100644 index 0000000..e8d3ee9 --- /dev/null +++ b/assets/core/ships/test-ship/airship_raft.glb.import @@ -0,0 +1,79 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://f7xy5w0gmpwj" +path="res://.godot/imported/airship_raft.glb-1a32b47e3a34d6fd0fa8ba18d05f8c1e.scn" + +[deps] + +source_file="res://assets/core/ships/test-ship/airship_raft.glb" +dest_files=["res://.godot/imported/airship_raft.glb-1a32b47e3a34d6fd0fa8ba18d05f8c1e.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +_subresources={ +"materials": { +"@MATERIAL:1": { +"use_external/enabled": true, +"use_external/path": "res://assets/core/ships/test-ship/new_standard_material_3d.tres" +}, +"Material": { +"use_external/enabled": true, +"use_external/path": "res://assets/core/ships/test-ship/new_standard_material_3d.tres" +} +}, +"nodes": { +"PATH:balloon/StaticBody3D": { +"import/skip_import": true +}, +"PATH:deck": { +"generate/physics": true, +"physics/layer": 16 +}, +"PATH:deck/StaticBody3D": { +"import/skip_import": true +}, +"PATH:hull": { +"generate/physics": true, +"physics/layer": 16 +}, +"PATH:hull/StaticBody3D": { +"import/skip_import": true +}, +"PATH:interior_floor": { +"generate/physics": true, +"physics/layer": 16 +}, +"PATH:interior_floor/StaticBody3D": { +"import/skip_import": true +}, +"PATH:reference_man": { +"import/skip_import": true +}, +"PATH:wheel/StaticBody3D": { +"import/skip_import": true +} +} +} +gltf/naming_version=1 +gltf/embedded_image_handling=1 diff --git a/assets/core/ships/test-ship/new_standard_material_3d.tres b/assets/core/ships/test-ship/new_standard_material_3d.tres new file mode 100644 index 0000000..3a2c82e --- /dev/null +++ b/assets/core/ships/test-ship/new_standard_material_3d.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://ctemnr3tq0iu0"] + +[ext_resource type="Texture2D" uid="uid://gymb0tju4y67" path="res://addons/kennysprototypetextures/Dark/texture_black (1).png" id="1_bfgog"] + +[resource] +albedo_texture = ExtResource("1_bfgog") +uv1_triplanar = true diff --git a/assets/core/ships/test-ship/test-ship.tscn b/assets/core/ships/test-ship/test-ship.tscn index b57547c..e0cc119 100644 --- a/assets/core/ships/test-ship/test-ship.tscn +++ b/assets/core/ships/test-ship/test-ship.tscn @@ -1,69 +1,59 @@ -[gd_scene load_steps=8 format=3 uid="uid://c7mtmmke1anxp"] +[gd_scene load_steps=7 format=3 uid="uid://c7mtmmke1anxp"] [ext_resource type="Script" path="res://assets/core/ships/test-ship/test_ship.gd" id="1_yql7r"] -[ext_resource type="PackedScene" uid="uid://dm31ddavxv5gt" path="res://assets/core/interactables/ship-helm/ship-helm.tscn" id="2_bmsx0"] +[ext_resource type="PackedScene" uid="uid://dm31ddavxv5gt" path="res://assets/core/interactables/ship-helm/ship-helm.tscn" id="3_3wdac"] +[ext_resource type="PackedScene" uid="uid://f7xy5w0gmpwj" path="res://assets/core/ships/test-ship/airship_raft.glb" id="3_h6lyp"] +[ext_resource type="Material" uid="uid://ctemnr3tq0iu0" path="res://assets/core/ships/test-ship/new_standard_material_3d.tres" id="4_hhywo"] -[sub_resource type="BoxMesh" id="BoxMesh_tkeg5"] -size = Vector3(5, 0.25, 10) +[sub_resource type="BoxShape3D" id="BoxShape3D_kbheo"] +size = Vector3(12.0762, 9.20947, 45.9958) -[sub_resource type="BoxShape3D" id="BoxShape3D_fs34p"] -size = Vector3(5, 0.25, 10) - -[sub_resource type="CapsuleMesh" id="CapsuleMesh_oqio3"] -radius = 1.401 -height = 7.405 - -[sub_resource type="BoxShape3D" id="BoxShape3D_7jr0u"] -size = Vector3(5.14063, 6.07324, 10.1924) - -[sub_resource type="CylinderMesh" id="CylinderMesh_h3cm2"] -top_radius = 0.1 -bottom_radius = 0.1 -height = 4.5 +[sub_resource type="BoxShape3D" id="BoxShape3D_6w3y5"] +size = Vector3(12.0762, 13.7578, 45.9553) [node name="TestShip" type="RigidBody3D" node_paths=PackedStringArray("ship_area", "ship_helm")] +collision_layer = 8 +collision_mask = 72 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") +[node name="ShipHelm" parent="." node_paths=PackedStringArray("parent_ship", "helm_lock_pos") instance=ExtResource("3_3wdac")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.47976, -10.9455) +parent_ship = NodePath("..") +helm_lock_pos = NodePath("HelmLockPos") + +[node name="HelmLockPos" type="Marker3D" parent="ShipHelm"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.345567, 1) + +[node name="airship_raft" parent="." instance=ExtResource("3_h6lyp")] + +[node name="hull" parent="airship_raft" index="0"] +surface_material_override/0 = ExtResource("4_hhywo") + +[node name="wheel" parent="airship_raft" index="1"] +surface_material_override/0 = ExtResource("4_hhywo") + +[node name="balloon" parent="airship_raft" index="2"] +surface_material_override/0 = ExtResource("4_hhywo") + +[node name="deck" parent="airship_raft" index="3"] +surface_material_override/0 = ExtResource("4_hhywo") + +[node name="interior_floor" parent="airship_raft" index="4"] +surface_material_override/0 = ExtResource("4_hhywo") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource("BoxShape3D_fs34p") - -[node name="Balloon" type="MeshInstance3D" parent="."] -transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 5.12542, 0) -mesh = SubResource("CapsuleMesh_oqio3") -skeleton = NodePath("") +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4.44604, -1.75908) +shape = SubResource("BoxShape3D_kbheo") [node name="Area3D" type="Area3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.99997, 0) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -2.16844, -1.85111) +collision_layer = 32 [node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"] -shape = SubResource("BoxShape3D_7jr0u") +shape = SubResource("BoxShape3D_6w3y5") -[node name="MeshInstance3D2" type="MeshInstance3D" parent="."] -transform = Transform3D(0.866025, -0.5, 0, 0.5, 0.866025, 0, 0, 0, 1, 1.25913, 1.87582, 2.33493) -mesh = SubResource("CylinderMesh_h3cm2") - -[node name="MeshInstance3D3" type="MeshInstance3D" parent="."] -transform = Transform3D(0.866025, 0.5, 0, -0.5, 0.866025, 0, 0, 0, 1, -1.2691, 1.87582, 2.33493) -mesh = SubResource("CylinderMesh_h3cm2") - -[node name="MeshInstance3D4" type="MeshInstance3D" parent="."] -transform = Transform3D(0.866025, -0.5, 0, 0.5, 0.866025, 0, 0, 0, 1, 1.25913, 1.87582, -2.52429) -mesh = SubResource("CylinderMesh_h3cm2") - -[node name="MeshInstance3D5" type="MeshInstance3D" parent="."] -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="." 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"] +[editable path="airship_raft"] diff --git a/assets/core/ships/test-ship/test_ship.gd b/assets/core/ships/test-ship/test_ship.gd index 4187477..d6f0d07 100644 --- a/assets/core/ships/test-ship/test_ship.gd +++ b/assets/core/ships/test-ship/test_ship.gd @@ -4,7 +4,7 @@ extends RigidBody3D @export var ship_area: Area3D @export var ship_helm: ShipHelm -var ship_id: String = "1a" +var ship_id: int = 0 var ship_is_piloted: bool = false var base_turn_speed: float = 1 var ship_lift_speed: float = 20 # Adjust this value as needed @@ -14,6 +14,16 @@ var ship_top_speed: float = 100 var current_speed: float = 0.0 var max_force: float = 1000.0 +var piloting_player: Player = null + + +func _ready(): + ship_area.body_entered.connect(_on_area_3d_body_entered) + ship_area.body_exited.connect(_on_area_3d_body_exited) + ship_id = randi_range(1000, 9999) + GameConsole.log_debug("Ship ID: " + str(ship_id)) + + func _physics_process(delta): global_rotation.x = lerpf(global_rotation.x, 0, 0.01) global_rotation.z = lerpf(global_rotation.z, 0, 0.01) @@ -38,15 +48,26 @@ func _physics_process(delta): var forward_force = (desired_velocity - linear_velocity) * mass forward_force = forward_force.normalized() * min(forward_force.length(), max_force) apply_central_force(forward_force) + + if Input.is_action_pressed("crouch"): + apply_impulse(Vector3.DOWN * ship_lift_speed) angular_velocity.y = clamp(angular_velocity.y, -0.5, 0.5) + + if piloting_player != null and ship_helm.is_being_piloted: + piloting_player.global_position = ship_helm.helm_lock_pos.global_position + + func _on_area_3d_body_entered(body): if body is Player: body.player_entered_ship(global_position, self) + piloting_player = body + print(self.name) func _on_area_3d_body_exited(body): if body is Player: body.player_exited_ship(global_position, self) ship_helm.is_being_piloted = false + piloting_player = null 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 diff --git a/project.godot b/project.godot index 07c347d..1492829 100644 --- a/project.godot +++ b/project.godot @@ -137,10 +137,12 @@ interact={ [layer_names] -3d_render/layer_1="players" -3d_render/layer_2="entities" -3d_render/layer_3="ships" -3d_render/layer_4="items" -3d_render/layer_5="static_objects" -3d_render/layer_6="dynamic_objects" -3d_render/layer_7="interactable_objects" +3d_physics/layer_1="players" +3d_physics/layer_2="entities" +3d_physics/layer_3="items" +3d_physics/layer_4="ship_to_ship" +3d_physics/layer_5="ship_to_player" +3d_physics/layer_6="ship_player_area" +3d_physics/layer_7="terrain" +3d_physics/layer_8="dynamic_objects" +3d_physics/layer_9="interactable_objects"