diff --git a/.fork/custom-commands.json b/.fork/custom-commands.json new file mode 100644 index 0000000..32e041f --- /dev/null +++ b/.fork/custom-commands.json @@ -0,0 +1,15 @@ +[ + { + "version" : 2 + }, + { + "action" : { + "script" : "start project.godot", + "showOutput" : false, + "type" : "sh", + "waitForExit" : false + }, + "name" : "Open Project", + "target" : "repository" + } +] \ No newline at end of file diff --git a/boat/WalkableBoat.gd b/boat/WalkableBoat.gd index 641329b..bf92dff 100644 --- a/boat/WalkableBoat.gd +++ b/boat/WalkableBoat.gd @@ -16,12 +16,12 @@ var is_docked: bool = false @export var ocean : Ocean #= get_tree().get_nodes_in_group("ocean")[0] -@export var max_thrust_force: float = 2048 -@export var max_steering: float = 128 +@export var max_thrust_force: float = 2048*3.0 +@export var max_steering: float = 50.0 var steering: float = 0 # steering rudder angle in radians var thrust_force: float = 0 # forward thrust force in Newtons - +var cam_rotation:Vector3 func _process(_delta): if Input.get_action_strength("move_forward") > 0.0: @@ -30,6 +30,10 @@ func _process(_delta): steer_right() if Input.get_action_strength("turn_left") > 0.0: steer_left() + if Input.get_action_strength("camera_left") > 0.0: + cam_rotation += Vector3(0.0,1.0,0.0)*_delta + if Input.get_action_strength("camera_right") > 0.0: + cam_rotation += Vector3(0.0,-1.0,0.0)*_delta # Called when the node enters the scene tree for the first time. func _ready(): diff --git a/boat/boat.tscn b/boat/boat.tscn index 6e4c2e9..05d15c5 100644 --- a/boat/boat.tscn +++ b/boat/boat.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=5 format=3 uid="uid://babgqvkugifk1"] +[gd_scene load_steps=10 format=3 uid="uid://babgqvkugifk1"] [ext_resource type="Script" uid="uid://du135dtrpwm7o" path="res://boat/WalkableBoat.gd" id="1_ml88t"] [ext_resource type="PackedScene" uid="uid://bcdjvsj0la72h" path="res://boat/source/untitled.fbx" id="2_enlnh"] @@ -9,49 +9,111 @@ script/source = "extends Node3D func _process(_delta): - global_rotation = Vector3() + global_rotation = $\"../..\".cam_rotation " +[sub_resource type="Curve" id="Curve_enlnh"] +_limits = [0.0, 10.0, 0.0, 5.0] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(2.83988, 10), 0.299357, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CurveTexture" id="CurveTexture_ml88t"] +curve = SubResource("Curve_enlnh") + +[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_enlnh"] +lifetime_randomness = 0.14 +emission_shape = 1 +emission_sphere_radius = 2.42 +angle_min = -63.4 +angle_max = 360.0 +spread = 21.0 +initial_velocity_max = 1.0 +angular_velocity_min = -144.39 +angular_velocity_max = 40.97 +gravity = Vector3(0, 0.7, 0) +scale_min = 0.5 +scale_curve = SubResource("CurveTexture_ml88t") +scale_over_velocity_max = 5.0 +color = Color(1, 1, 1, 0.219608) + +[sub_resource type="SphereMesh" id="SphereMesh_ml88t"] +radius = 0.08 +height = 0.15 +radial_segments = 4 +rings = 2 + +[sub_resource type="SphereMesh" id="SphereMesh_enlnh"] +radius = 0.1 +height = 0.2 + [sub_resource type="BoxShape3D" id="BoxShape3D_enlnh"] size = Vector3(1.5252, 0.507935, 1) [node name="Boat" type="RigidBody3D"] -mass = 10.0 +mass = 50.0 script = ExtResource("1_ml88t") - -[node name="Node3D" type="Node3D" parent="."] -script = SubResource("GDScript_enlnh") - -[node name="SpringArm3D" type="SpringArm3D" parent="Node3D"] -transform = Transform3D(1, 0, 0, 0, 0.893285, 0.449491, 0, -0.449491, 0.893285, 0, 0.350159, 0) -spring_length = 2.255 - -[node name="Camera3D" type="Camera3D" parent="Node3D/SpringArm3D"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.107117, 0.323316, 2.70191) +float_force = 30.0 +water_drag = 0.01 +max_thrust_force = 2000.0 +max_steering = 250.0 [node name="untitled" parent="." instance=ExtResource("2_enlnh")] -transform = Transform3D(-0.1, 0, -1.50996e-08, 0, 0.1, 0, 1.50996e-08, 0, -0.1, 0, -0.169637, 0) +transform = Transform3D(-0.1, 0, -1.50996e-08, 0, 0.1, 0, 1.50996e-08, 0, -0.1, 0, 0.260904, 0) + +[node name="Node3D" type="Node3D" parent="untitled"] +transform = Transform3D(-10, 0, 1.50996e-06, 0, 10, 0, -1.50996e-06, 0, -10, 0, 0, 0) +script = SubResource("GDScript_enlnh") + +[node name="SpringArm3D" type="SpringArm3D" parent="untitled/Node3D"] +transform = Transform3D(1, 0, 0, 0, 0.893285, 0.449491, 0, -0.449491, 0.893285, 0, 0.350159, 0) +spring_length = 3.5 + +[node name="Camera3D" type="Camera3D" parent="untitled/Node3D/SpringArm3D"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.107117, 0.323316, 2.70191) + +[node name="GPUParticles3D" type="GPUParticles3D" parent="untitled"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.92513, 10.9874, -0.18139) +transparency = 0.18 +amount = 32 +lifetime = 7.0 +interp_to_end = 0.04 +speed_scale = 0.8 +randomness = 0.4 +visibility_aabb = AABB(-4, -2.58, -6.945, 13.755, 23.63, 16.17) +draw_order = 3 +process_material = SubResource("ParticleProcessMaterial_enlnh") +draw_pass_1 = SubResource("SphereMesh_ml88t") [node name="ProbeContainer" type="Node3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.105972, 0) - -[node name="Cale2" type="Marker3D" parent="ProbeContainer"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.25) - -[node name="Cale7" type="Marker3D" parent="ProbeContainer"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -0.25) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.465993, 0) [node name="Cale3" type="Marker3D" parent="ProbeContainer"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.507, 0, -0.2) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.719583, 0, -0.00873816) + +[node name="MeshInstance3D3" type="MeshInstance3D" parent="ProbeContainer/Cale3"] +mesh = SubResource("SphereMesh_enlnh") +skeleton = NodePath("") [node name="Cale5" type="Marker3D" parent="ProbeContainer"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.507, 0, 0.2) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.783989, 0, -0.0544244) + +[node name="MeshInstance3D4" type="MeshInstance3D" parent="ProbeContainer/Cale5"] +mesh = SubResource("SphereMesh_enlnh") +skeleton = NodePath("") [node name="Cale4" type="Marker3D" parent="ProbeContainer"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.568, 0, 0.25) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0411369, 0, 0.481184) + +[node name="MeshInstance3D5" type="MeshInstance3D" parent="ProbeContainer/Cale4"] +mesh = SubResource("SphereMesh_enlnh") +skeleton = NodePath("") [node name="Cale6" type="Marker3D" parent="ProbeContainer"] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.568, 0, -0.25) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0411369, 0, -0.538607) + +[node name="MeshInstance3D6" type="MeshInstance3D" parent="ProbeContainer/Cale6"] +mesh = SubResource("SphereMesh_enlnh") +skeleton = NodePath("") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00595701, 0.251318, 0) diff --git a/mat/main.tscn b/mat/main.tscn index eb65a28..f532be7 100644 --- a/mat/main.tscn +++ b/mat/main.tscn @@ -1,11 +1,10 @@ -[gd_scene load_steps=11 format=3 uid="uid://cjjrdfywoxwgr"] +[gd_scene load_steps=10 format=3 uid="uid://cjjrdfywoxwgr"] [ext_resource type="Material" uid="uid://br11m0qg2yhid" path="res://mat/waterMat.tres" id="1_x7q1n"] [ext_resource type="PackedScene" uid="uid://cpykugh40l23q" path="res://kaykit/medieval/building_windmill_herited.tscn" id="2_cdryl"] [ext_resource type="PackedScene" uid="uid://j4cu75dnf3u8" path="res://kaykit/medieval/building_well_red.fbx" id="4_wio4u"] [ext_resource type="PackedScene" uid="uid://chcjbpt2tr5k3" path="res://kaykit/medieval/building_watermill_herited.tscn" id="4_x7q1n"] [ext_resource type="PackedScene" uid="uid://babgqvkugifk1" path="res://boat/boat.tscn" id="5_wio4u"] -[ext_resource type="Texture2D" uid="uid://dn01vy45t0mnc" path="res://mat/wavenoise.tres" id="6_0sebh"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_cdryl"] sky_top_color = Color(0.308708, 0.682951, 0.784164, 1) @@ -55,8 +54,6 @@ transform = Transform3D(0.676092, 0, -0.736817, 0, 1, 0, 0.736817, 0, 0.676092, [node name="OmniLight3D" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.50488, 1.99753, 0.0326443) -[node name="Boat" parent="." node_paths=PackedStringArray("WaterNode") instance=ExtResource("5_wio4u")] +[node name="Boat" parent="." instance=ExtResource("5_wio4u")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.208335, 0.773113, 1.74591) can_sleep = false -WaterNode = NodePath("../Water") -ripple_texture = ExtResource("6_0sebh") diff --git a/ocean/Ocean2.tres b/ocean/Ocean2.tres index 444abe5..901b5bb 100644 --- a/ocean/Ocean2.tres +++ b/ocean/Ocean2.tres @@ -38,6 +38,7 @@ seamless = true noise = SubResource("FastNoiseLite_xta2c") [resource] +resource_name = "PlaneMesh_Current" render_priority = 0 shader = ExtResource("1_u0w43") shader_parameter/albedo = Color(0, 0.32, 0.43, 1) @@ -49,13 +50,13 @@ shader_parameter/roughness = 0.02 shader_parameter/texture_normal = SubResource("NoiseTexture2D_mf4pf") shader_parameter/texture_normal2 = SubResource("NoiseTexture2D_nojbg") shader_parameter/wave = SubResource("NoiseTexture2D_0vxpe") -shader_parameter/wave_time = 7.905 -shader_parameter/wave_direction = Vector2(2, 0) -shader_parameter/wave_2_direction = Vector2(0, 1) -shader_parameter/time_scale = 0.025 -shader_parameter/wave_speed = 0.02 -shader_parameter/noise_scale = 8.23 -shader_parameter/height_scale = 0.34 +shader_parameter/wave_time = 0.0 +shader_parameter/wave_direction = Vector2(0.8, 0) +shader_parameter/wave_2_direction = Vector2(0, 2) +shader_parameter/time_scale = 0.01 +shader_parameter/wave_speed = 0.05 +shader_parameter/noise_scale = 15.0 +shader_parameter/height_scale = 0.25 shader_parameter/beers_law = 2.0 shader_parameter/depth_offset = -0.75 shader_parameter/edge_scale = 0.1 diff --git a/ocean/Ocean_playground.tscn b/ocean/Ocean_playground.tscn index f3eca00..bb98e26 100644 --- a/ocean/Ocean_playground.tscn +++ b/ocean/Ocean_playground.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=3 uid="uid://hs3a438it6j6"] +[gd_scene load_steps=9 format=3 uid="uid://hs3a438it6j6"] [ext_resource type="Material" uid="uid://djvstk5qjvdan" path="res://ocean/Ocean2.tres" id="1_kiaws"] [ext_resource type="Script" uid="uid://c12fpc7inp27s" path="res://ocean/ocean.gd" id="2_ap626"] @@ -18,32 +18,18 @@ tonemap_mode = 2 glow_enabled = true [sub_resource type="PlaneMesh" id="PlaneMesh_mf4pf"] +resource_name = "OceanTile_Current" material = ExtResource("1_kiaws") -size = Vector2(10, 10) +size = Vector2(10.5, 10.5) subdivide_width = 100 subdivide_depth = 100 -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ap626"] -transparency = 1 -blend_mode = 3 -shading_mode = 0 -diffuse_mode = 3 -disable_fog = true -albedo_color = Color(0, 0.754224, 0.124756, 1) - -[sub_resource type="SphereMesh" id="SphereMesh_2qsx7"] -material = SubResource("StandardMaterial3D_ap626") -radius = 0.2 -height = 0.4 - -[sub_resource type="GDScript" id="GDScript_ap626"] -script/source = "extends MeshInstance3D -@export var ocean : Ocean #= get_tree().get_nodes_in_group(\"ocean\")[0] - -func _process(_delta): - var depthwater = ocean.get_water_level(Vector3.ZERO) - global_position = Vector3(0.0,depthwater,0.0) -" +[sub_resource type="PlaneMesh" id="PlaneMesh_ap626"] +resource_name = "OceanTile_Near" +material = ExtResource("1_kiaws") +size = Vector2(10.5, 10.5) +subdivide_width = 50 +subdivide_depth = 50 [node name="Node3D" type="Node3D"] @@ -63,33 +49,54 @@ script = ExtResource("2_ap626") [node name="Water_Tile_02" type="MeshInstance3D" parent="Ocean"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 0) -mesh = SubResource("PlaneMesh_mf4pf") +mesh = SubResource("PlaneMesh_ap626") skeleton = NodePath("../..") script = ExtResource("2_ap626") [node name="Water_Tile_01" type="MeshInstance3D" parent="Ocean"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 10) -mesh = SubResource("PlaneMesh_mf4pf") +mesh = SubResource("PlaneMesh_ap626") skeleton = NodePath("../..") script = ExtResource("2_ap626") [node name="Water_Tile_03" type="MeshInstance3D" parent="Ocean"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -10) -mesh = SubResource("PlaneMesh_mf4pf") +mesh = SubResource("PlaneMesh_ap626") skeleton = NodePath("../..") script = ExtResource("2_ap626") [node name="Water_Tile_04" type="MeshInstance3D" parent="Ocean"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 0) -mesh = SubResource("PlaneMesh_mf4pf") +mesh = SubResource("PlaneMesh_ap626") +skeleton = NodePath("../..") +script = ExtResource("2_ap626") + +[node name="Water_Tile_05" type="MeshInstance3D" parent="Ocean"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -10) +mesh = SubResource("PlaneMesh_ap626") +skeleton = NodePath("../..") +script = ExtResource("2_ap626") + +[node name="Water_Tile_06" type="MeshInstance3D" parent="Ocean"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, 10) +mesh = SubResource("PlaneMesh_ap626") +skeleton = NodePath("../..") +script = ExtResource("2_ap626") + +[node name="Water_Tile_07" type="MeshInstance3D" parent="Ocean"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, 10) +mesh = SubResource("PlaneMesh_ap626") +skeleton = NodePath("../..") +script = ExtResource("2_ap626") + +[node name="Water_Tile_08" type="MeshInstance3D" parent="Ocean"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10, 0, -10) +mesh = SubResource("PlaneMesh_ap626") skeleton = NodePath("../..") script = ExtResource("2_ap626") [node name="Boat" parent="." node_paths=PackedStringArray("ocean") instance=ExtResource("3_ap626")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.461916, 0) -ocean = NodePath("../Ocean/Water_Tile_00") - -[node name="MeshInstance3D" type="MeshInstance3D" parent="." node_paths=PackedStringArray("ocean")] -mesh = SubResource("SphereMesh_2qsx7") -script = SubResource("GDScript_ap626") +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.473399, -0.388613, 0) +float_force = 75.0 ocean = NodePath("../Ocean/Water_Tile_00") +max_thrust_force = 3000.0 diff --git a/ocean/ocean.gd b/ocean/ocean.gd index c537793..087dc1c 100644 --- a/ocean/ocean.gd +++ b/ocean/ocean.gd @@ -1,6 +1,6 @@ @icon("uid://cbqveb0y8fkiv") extends MeshInstance3D -class_name Ocean +class_name OceanTile var material: ShaderMaterial var noise: Image diff --git a/project.godot b/project.godot index ade0b5d..9d70fb3 100644 --- a/project.godot +++ b/project.godot @@ -48,7 +48,17 @@ turn_right={ } turn_left={ "deadzone": 0.2, -"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"location":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +] +} +camera_right={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":2,"axis_value":1.0,"script":null) +] +} +camera_left={ +"deadzone": 0.2, +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":2,"axis_value":-1.0,"script":null) ] }