Refacto from working version... (add putpoutpout)

This commit is contained in:
Lucas 2025-03-24 15:03:55 +01:00
parent 90dd897a09
commit b0b9df011e
No known key found for this signature in database
8 changed files with 172 additions and 76 deletions

View file

@ -0,0 +1,15 @@
[
{
"version" : 2
},
{
"action" : {
"script" : "start project.godot",
"showOutput" : false,
"type" : "sh",
"waitForExit" : false
},
"name" : "Open Project",
"target" : "repository"
}
]

View file

@ -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():

View file

@ -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)

View file

@ -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")

View file

@ -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

View file

@ -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

View file

@ -1,6 +1,6 @@
@icon("uid://cbqveb0y8fkiv")
extends MeshInstance3D
class_name Ocean
class_name OceanTile
var material: ShaderMaterial
var noise: Image

View file

@ -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)
]
}