Compare commits
No commits in common. "master" and "3f558a4fbbd83c17889a983d41cb592523bc02c3" have entirely different histories.
master
...
3f558a4fbb
|
@ -1,15 +0,0 @@
|
|||
[
|
||||
{
|
||||
"version" : 2
|
||||
},
|
||||
{
|
||||
"action" : {
|
||||
"script" : "start project.godot",
|
||||
"showOutput" : false,
|
||||
"type" : "sh",
|
||||
"waitForExit" : false
|
||||
},
|
||||
"name" : "Open Project",
|
||||
"target" : "repository"
|
||||
}
|
||||
]
|
3
.gitattributes
vendored
|
@ -1,5 +1,2 @@
|
|||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
||||
*.psd filter=lfs diff=lfs merge=lfs -text
|
||||
*.fbx filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
|
|
2
.gitignore
vendored
|
@ -1,5 +1,3 @@
|
|||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
/android/
|
||||
Builds
|
||||
.vscode
|
||||
|
|
3
.gitmodules
vendored
|
@ -1,3 +0,0 @@
|
|||
[submodule "Assets"]
|
||||
path = Assets
|
||||
url = http://185.216.25.221/lucastucious/ChatBoat-Assets
|
1
Assets
|
@ -1 +0,0 @@
|
|||
Subproject commit a6d255dfbf3475499e4ac345d9b9a5fad8d23e7f
|
|
@ -1,68 +1,12 @@
|
|||
@icon("uid://3ugrjpybrl4e")
|
||||
extends RigidBody3D
|
||||
class_name Boat
|
||||
|
||||
@export_category("Controls")
|
||||
@export var max_thrust_force: float = 2048 * 3.0
|
||||
@export var max_steering: float = 50.0
|
||||
|
||||
@export_category("Debug")
|
||||
@export var debug: bool = false
|
||||
|
||||
var steering: float = 0 # steering rudder angle in radians
|
||||
var thrust_force: float = 0 # forward thrust force in Newtons
|
||||
var cam_rotation: Vector3
|
||||
|
||||
var is_docked: bool = false
|
||||
var submerged := false
|
||||
|
||||
func _ready():
|
||||
add_to_group("Boats", true)
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
func _process(_delta):
|
||||
if Input.get_action_strength("move_forward") > 0.0:
|
||||
thrust(Input.get_action_strength("move_forward"))
|
||||
if Input.get_action_strength("turn_right") > 0.0:
|
||||
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
|
||||
$CamRoot.global_rotation = cam_rotation
|
||||
$CamRoot.global_position.y = 0.0
|
||||
|
||||
func _physics_process(delta):
|
||||
## Code for user-input movement
|
||||
if thrust_force > 0.0:
|
||||
## TODO: Need to apply a force to the side based on steering value, to simulate ship axis rotation when turning
|
||||
##
|
||||
## IDEA: Maybe even apply_torque() should be removed and we simulate a turning with a force applying to the back of the ship
|
||||
## but maybe it's too realistic for the game i want
|
||||
var wanted_force: Vector3 = global_transform.basis.x.normalized() * Vector3(1, 0, 1) * thrust_force * delta
|
||||
apply_central_force(wanted_force)
|
||||
angular_damp = linear_velocity.length() # make the boat less affected by the sidewave when full speed
|
||||
|
||||
apply_torque(global_transform.basis.y.normalized() * steering * clamp(linear_velocity.length(), 0.35, 1.0)) # for sideways motion
|
||||
|
||||
reset_forces()
|
||||
|
||||
|
||||
func thrust(_strength := 1.0):
|
||||
if not is_docked:
|
||||
thrust_force = max_thrust_force * _strength
|
||||
|
||||
func steer_right(_strength := 1.0):
|
||||
if not is_docked:
|
||||
steering = - PI * max_steering
|
||||
|
||||
func steer_left(_strength := 1.0):
|
||||
if not is_docked:
|
||||
steering = PI * max_steering
|
||||
|
||||
|
||||
func reset_forces():
|
||||
thrust_force = 0
|
||||
steering = 0
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
|
|
|
@ -1,77 +0,0 @@
|
|||
[gd_scene load_steps=8 format=3 uid="uid://bdfqifxsvpts4"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cjo6l2ykgvn4e" path="res://Boats/boat.gd" id="1_q76at"]
|
||||
[ext_resource type="Script" uid="uid://cnfkxclrq0i0s" path="res://Boats/buyancy_probe.gd" id="3_dd4jx"]
|
||||
|
||||
[sub_resource type="BoxShape3D" id="BoxShape3D_g5njt"]
|
||||
size = Vector3(2, 0.35, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_bmmu8"]
|
||||
albedo_color = Color(1, 0.172549, 0, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_bmmu8"]
|
||||
size = Vector3(2, 0.35, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dd4jx"]
|
||||
albedo_color = Color(1, 0.172549, 0, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_dd4jx"]
|
||||
size = Vector3(0.1, 2.5, 0.1)
|
||||
|
||||
[node name="Boat" type="RigidBody3D"]
|
||||
mass = 50.0
|
||||
script = ExtResource("1_q76at")
|
||||
max_thrust_force = 3000.0
|
||||
max_steering = 10.0
|
||||
debug = true
|
||||
metadata/_custom_type_script = "uid://cjo6l2ykgvn4e"
|
||||
|
||||
[node name="BuyancyProbe" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, -0.0397125)
|
||||
gizmo_extents = 1.0
|
||||
script = ExtResource("3_dd4jx")
|
||||
float_strength = 2.0
|
||||
max_float_force = 3000.0
|
||||
metadata/_custom_type_script = "uid://cnfkxclrq0i0s"
|
||||
|
||||
[node name="BuyancyProbe2" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0235078, 0, -0.5)
|
||||
gizmo_extents = 1.0
|
||||
script = ExtResource("3_dd4jx")
|
||||
float_strength = 0.5
|
||||
max_float_force = 3000.0
|
||||
metadata/_custom_type_script = "uid://cnfkxclrq0i0s"
|
||||
|
||||
[node name="BuyancyProbe3" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0674343, 0, 0.5)
|
||||
gizmo_extents = 1.0
|
||||
script = ExtResource("3_dd4jx")
|
||||
float_strength = 0.5
|
||||
max_float_force = 3000.0
|
||||
metadata/_custom_type_script = "uid://cnfkxclrq0i0s"
|
||||
|
||||
[node name="BuyancyProbe4" type="Marker3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -0.0214682)
|
||||
gizmo_extents = 1.0
|
||||
script = ExtResource("3_dd4jx")
|
||||
float_strength = 2.0
|
||||
max_float_force = 3000.0
|
||||
metadata/_custom_type_script = "uid://cnfkxclrq0i0s"
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
||||
shape = SubResource("BoxShape3D_g5njt")
|
||||
|
||||
[node name="CamRoot" type="Node3D" parent="."]
|
||||
|
||||
[node name="Camera3D" type="Camera3D" parent="CamRoot"]
|
||||
transform = Transform3D(0.489698, 0.510696, -0.706672, -0.000524954, 0.810677, 0.585494, 0.871892, -0.286344, 0.397255, -1.71955, 1.82832, 0.828034)
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.131158, 0)
|
||||
material_override = SubResource("StandardMaterial3D_bmmu8")
|
||||
mesh = SubResource("BoxMesh_bmmu8")
|
||||
|
||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="MeshInstance3D"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.467696, 0)
|
||||
material_override = SubResource("StandardMaterial3D_dd4jx")
|
||||
mesh = SubResource("BoxMesh_dd4jx")
|
|
@ -1,92 +0,0 @@
|
|||
@icon("uid://ck86evu4iyhyg")
|
||||
@tool
|
||||
extends Marker3D
|
||||
class_name BuyancyProbe
|
||||
|
||||
## How much force is applied upward
|
||||
@export var float_strength: float = 1.0
|
||||
@export var max_float_force:float = 500.0
|
||||
var currentdepth:float
|
||||
|
||||
@export_category("Debug")
|
||||
@export var debug :bool = false
|
||||
@export var show_probe :bool = false:
|
||||
set(_value):
|
||||
show_probe = _value
|
||||
if !show_probe && sphere_preview != null:
|
||||
sphere_preview.queue_free()
|
||||
|
||||
var sphere_preview:MeshInstance3D
|
||||
@onready var debug_sphere:SphereMesh = SphereMesh.new()
|
||||
|
||||
@export_category("Wave")
|
||||
var noise: Image
|
||||
var wave_speed: float = 1.0
|
||||
var noise_scale: float
|
||||
var height_scale: float
|
||||
@onready var ocean_mat: ShaderMaterial = preload("uid://cf3lxmfb2d7c8")
|
||||
@onready var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||
@onready var defaultDampe: float = ProjectSettings.get_setting("physics/3d/default_angular_damp")
|
||||
@onready var OceanNode:Ocean = get_tree().get_first_node_in_group("Ocean")
|
||||
var Oceantime:float
|
||||
|
||||
@onready var parentRigid:RigidBody3D = get_parent()
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
gizmo_extents = 1.0
|
||||
if ocean_mat != null:
|
||||
update_param()
|
||||
if show_probe:
|
||||
sphere_preview = MeshInstance3D.new()
|
||||
sphere_preview.set_name("Sphere")
|
||||
add_child(sphere_preview)
|
||||
debug_sphere.radius = 0.1
|
||||
debug_sphere.height = 0.2
|
||||
sphere_preview.mesh = debug_sphere
|
||||
|
||||
func _physics_process(_delta: float) -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
var depth = get_wave_height(global_position,Oceantime) - global_position.y
|
||||
#print(depth)
|
||||
if depth > 0.0 && parentRigid != null:
|
||||
var float_force = parentRigid.mass * float_strength
|
||||
#parentRigid.gravity_scale = 0.3
|
||||
#parentRigid.angular_damp = 15.0
|
||||
parentRigid.apply_force(Vector3.UP * clamp(gravity * depth * float_force,-max_float_force,max_float_force) ,global_position-parentRigid.global_position)
|
||||
if debug:
|
||||
print(str(self)+" is applying a force of "+str(Vector3.UP * clamp(gravity * depth * float_force,-max_float_force,max_float_force) ,global_position-parentRigid.global_position)+"to "+str(parentRigid))
|
||||
|
||||
func _process(_delta: float) -> void:
|
||||
if OceanNode != null:
|
||||
Oceantime = OceanNode.wave_time
|
||||
if show_probe && sphere_preview != null:
|
||||
sphere_preview.global_position = global_position
|
||||
sphere_preview.global_position.y = get_wave_height(global_position,Oceantime)
|
||||
|
||||
|
||||
|
||||
|
||||
# Calculate the wave height using a sine function.
|
||||
func get_wave_height(world_position: Vector3, time: float) -> float:
|
||||
var uv_x = wrapf(world_position.x / noise_scale + time * wave_speed, 0, 1)
|
||||
var uv_y = wrapf(world_position.z / noise_scale + time * wave_speed, 0, 1)
|
||||
if noise != null:
|
||||
var pixel_pos = Vector2(uv_x * noise.get_width(), uv_y * noise.get_height())
|
||||
return OceanNode.global_position.y + noise.get_pixelv(pixel_pos).r * height_scale;
|
||||
return world_position.y
|
||||
|
||||
func update_param():
|
||||
if ocean_mat != null:
|
||||
wave_speed = ocean_mat.get_shader_parameter("wave_speed")
|
||||
noise = ocean_mat.get_shader_parameter("wave").noise.get_seamless_image(512, 512)
|
||||
noise_scale = ocean_mat.get_shader_parameter("noise_scale")
|
||||
wave_speed = ocean_mat.get_shader_parameter("wave_speed")
|
||||
height_scale = ocean_mat.get_shader_parameter("height_scale")
|
||||
|
||||
func _get_configuration_warnings():
|
||||
var warnings = []
|
||||
if get_parent() is not RigidBody3D:
|
||||
warnings.append("This node need to be a direct child of a RigidBody3D")
|
||||
return warnings
|
|
@ -1,69 +0,0 @@
|
|||
[gd_resource type="ShaderMaterial" load_steps=8 format=3 uid="uid://cf3lxmfb2d7c8"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://ts0b536y5vcd" path="res://Ocean/OceanTile.gdshader" id="1_sqira"]
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_sqira"]
|
||||
noise_type = 3
|
||||
frequency = 0.035
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_d50os"]
|
||||
seamless = true
|
||||
as_normal_map = true
|
||||
bump_strength = 2.0
|
||||
noise = SubResource("FastNoiseLite_sqira")
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_d50os"]
|
||||
noise_type = 0
|
||||
seed = 22
|
||||
frequency = 0.0072
|
||||
fractal_lacunarity = 1.6
|
||||
fractal_gain = 0.45
|
||||
fractal_weighted_strength = 0.55
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_ca8p6"]
|
||||
seamless = true
|
||||
seamless_blend_skirt = 0.532
|
||||
as_normal_map = true
|
||||
bump_strength = 21.0
|
||||
noise = SubResource("FastNoiseLite_d50os")
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ca8p6"]
|
||||
noise_type = 2
|
||||
fractal_type = 2
|
||||
fractal_gain = 0.34
|
||||
fractal_weighted_strength = 0.6
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_cuet1"]
|
||||
seamless = true
|
||||
noise = SubResource("FastNoiseLite_ca8p6")
|
||||
|
||||
[resource]
|
||||
resource_name = "OceanTileShader"
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_sqira")
|
||||
shader_parameter/albedo = Color(0, 0.32, 0.43, 1)
|
||||
shader_parameter/albedo2 = Color(0, 0.47, 0.76, 1)
|
||||
shader_parameter/color_deep = Color(0.11, 0.29, 0.33, 1)
|
||||
shader_parameter/color_shallow = Color(1, 1, 1, 1)
|
||||
shader_parameter/shore_fade = 0.165
|
||||
shader_parameter/shore_intensity = 0.7
|
||||
shader_parameter/metallic = 0.0
|
||||
shader_parameter/roughness = 0.02
|
||||
shader_parameter/water_alpha_fade = 4.407
|
||||
shader_parameter/water_alpha_max = 15.0
|
||||
shader_parameter/texture_normal = SubResource("NoiseTexture2D_d50os")
|
||||
shader_parameter/texture_normal2 = SubResource("NoiseTexture2D_ca8p6")
|
||||
shader_parameter/wave = SubResource("NoiseTexture2D_cuet1")
|
||||
shader_parameter/wave_time = 13.1719
|
||||
shader_parameter/wave_direction = Vector2(2, 0)
|
||||
shader_parameter/wave_2_direction = Vector2(0, 0.9)
|
||||
shader_parameter/time_scale = 0.02
|
||||
shader_parameter/wave_speed = 0.05
|
||||
shader_parameter/noise_scale = 15.0
|
||||
shader_parameter/height_scale = 0.5
|
||||
shader_parameter/beers_law = 2.0
|
||||
shader_parameter/depth_offset = -0.75
|
||||
shader_parameter/edge_scale = 0.1
|
||||
shader_parameter/near = 0.5
|
||||
shader_parameter/far = 100.0
|
||||
shader_parameter/edge_color = Color(0, 0, 0, 1)
|
|
@ -1,99 +1,50 @@
|
|||
shader_type spatial;
|
||||
render_mode depth_draw_always;
|
||||
render_mode unshaded, cull_back, depth_draw_opaque;
|
||||
|
||||
uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap;
|
||||
uniform sampler2D DEPTH_TEXTURE: hint_depth_texture, filter_linear_mipmap;
|
||||
// Wave parameters: wave.xy is direction, wave.z is steepness, wave.w is wavelength.
|
||||
uniform vec4 color:source_color = vec4(0.13, 0.31, 0.53, 0.95);
|
||||
uniform vec4 wave = vec4(1.0, 0.0, 0.5, 10.0);
|
||||
uniform float wave_speed : hint_range(0.0, 5.0) = 1.0;
|
||||
uniform float gravity : hint_range(0.0, 20.0) = 9.8;
|
||||
uniform float wave_time;
|
||||
|
||||
uniform vec3 albedo : source_color = vec3(0.0,0.32,0.43);
|
||||
uniform vec3 albedo2 : source_color= vec3(0.0,0.47,0.76);
|
||||
uniform vec4 color_deep : source_color= vec4(0.11,0.29,0.33,1.0);
|
||||
uniform vec4 color_shallow : source_color= vec4(0.0,0.47,0.76,1.0);
|
||||
uniform float shore_fade = 1.0;
|
||||
uniform float shore_intensity = 1.0;
|
||||
uniform float metallic : hint_range(0.0, 1.0) = 0;
|
||||
uniform float roughness : hint_range(0.0, 1.0) = 0.02;
|
||||
uniform float water_alpha_fade : hint_range(0.0, 5.0) = 1.0;
|
||||
uniform float water_alpha_max : hint_range(0.001, 15.0) = 1.0;
|
||||
|
||||
uniform sampler2D texture_normal;
|
||||
uniform sampler2D texture_normal2;
|
||||
uniform sampler2D wave;
|
||||
|
||||
uniform float wave_time = 0;
|
||||
uniform vec2 wave_direction = vec2(2.0,0.0);
|
||||
uniform vec2 wave_2_direction = vec2(0.0,1.0);
|
||||
uniform float time_scale : hint_range(0.0, 0.2, 0.005) = 0.025;
|
||||
uniform float wave_speed = 2.0;
|
||||
uniform float noise_scale = 10.0;
|
||||
uniform float height_scale = 0.15;
|
||||
uniform float beers_law = 2.0;
|
||||
uniform float depth_offset = -0.75;
|
||||
|
||||
varying float height;
|
||||
varying vec3 world_pos;
|
||||
|
||||
uniform float edge_scale = 0.1;
|
||||
uniform float near = 0.5;
|
||||
uniform float far = 100.0;
|
||||
uniform vec3 edge_color : source_color;
|
||||
|
||||
float fresnel(float amount, vec3 normal, vec3 view)
|
||||
{
|
||||
return pow((1.0 - clamp(dot(normalize(normal), normalize(view)), 0.0, 1.0 )), amount);
|
||||
}
|
||||
|
||||
float edge(float depth) {
|
||||
return near * far / (far + depth * (near - far));
|
||||
vec3 gerstnerWave(vec3 p, out vec3 tangent, out vec3 binormal) {
|
||||
float steepness = wave.z;
|
||||
float wavelength = wave.w;
|
||||
float k = 2.0 * PI / wavelength;
|
||||
float c = sqrt(gravity / k);
|
||||
vec2 d = normalize(wave.xy);
|
||||
float f = k * ( dot(d, p.xz) - c * wave_time * wave_speed );
|
||||
float a = steepness / k;
|
||||
|
||||
// Update tangent and binormal for lighting or other effects.
|
||||
tangent = vec3(
|
||||
-d.x * d.x * (steepness * sin(f)),
|
||||
d.x * (steepness * cos(f)),
|
||||
-d.x * d.y * (steepness * sin(f))
|
||||
);
|
||||
binormal = vec3(
|
||||
-d.x * d.y * (steepness * sin(f)),
|
||||
d.y * (steepness * cos(f)),
|
||||
-d.y * d.y * (steepness * sin(f))
|
||||
);
|
||||
|
||||
return vec3(
|
||||
d.x * (a * cos(f)),
|
||||
a * sin(f),
|
||||
d.y * (a * cos(f))
|
||||
);
|
||||
}
|
||||
|
||||
void vertex() {
|
||||
world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
|
||||
height = texture(wave, world_pos.xz / noise_scale + wave_time * wave_speed).r;
|
||||
VERTEX.y += height * height_scale;
|
||||
vec3 tangent;
|
||||
vec3 binormal;
|
||||
vec3 disp = gerstnerWave(VERTEX, tangent, binormal);
|
||||
VERTEX.xyz += disp;
|
||||
}
|
||||
|
||||
void fragment() {
|
||||
float depth_texture = texture(DEPTH_TEXTURE, SCREEN_UV).r;
|
||||
float depth = PROJECTION_MATRIX[3][2] / (depth_texture + PROJECTION_MATRIX[2][2]);
|
||||
depth = depth + VERTEX.z;
|
||||
float depth_blend = exp((depth + depth_offset) * -beers_law);
|
||||
depth_blend = clamp(1.0 - depth_blend, 0.0, 1.0);
|
||||
|
||||
float depth_tex = texture(DEPTH_TEXTURE, SCREEN_UV).r;
|
||||
vec4 depth_world_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, depth_tex, 1.0);
|
||||
depth_world_pos.xyz /= depth_world_pos.w;
|
||||
|
||||
float shore_line = clamp(1.0 - smoothstep(depth_world_pos.z + shore_fade, depth_world_pos.z, VERTEX.z), 0.0, 1.0);
|
||||
vec3 shore_color = mix(color_shallow.rgb, edge_color, shore_line);
|
||||
|
||||
vec3 screen_color = textureLod(SCREEN_TEXTURE, SCREEN_UV, depth_blend * 2.5).rgb;
|
||||
vec3 depth_color = mix(color_shallow.rgb, color_deep.rgb, depth_blend);
|
||||
vec3 color = mix(screen_color * depth_color, depth_color * 0.25, depth_blend * 0.5);
|
||||
|
||||
float z_depth = edge(texture(DEPTH_TEXTURE, SCREEN_UV).x);
|
||||
float z_pos = edge(FRAGCOORD.z);
|
||||
float z_dif = z_depth - z_pos;
|
||||
|
||||
vec2 time = (TIME * wave_direction) * time_scale;
|
||||
vec2 time2 = (TIME * wave_2_direction) * time_scale;
|
||||
|
||||
vec3 normal_blend = mix(texture(texture_normal, world_pos.xz / noise_scale + time).rgb, texture(texture_normal2, world_pos.xz / noise_scale + time2).rgb, 0.5);
|
||||
|
||||
float fresnel = fresnel(5.0, NORMAL, VIEW);
|
||||
vec3 surface_color = mix(albedo, albedo2, fresnel);
|
||||
vec3 depth_color_adj = mix(edge_color, color, step(edge_scale, z_dif));
|
||||
// Compute the world-space position from the depth texture as before.
|
||||
vec4 alpha_depth_world_pos = INV_PROJECTION_MATRIX * vec4(SCREEN_UV * 2.0 - 1.0, texture(DEPTH_TEXTURE, SCREEN_UV).r, 1.0);
|
||||
alpha_depth_world_pos.xyz /= alpha_depth_world_pos.w;
|
||||
|
||||
// Calculate water_alpha based on how far VERTEX.z is from the depth sample.
|
||||
float water_alpha = clamp(1.0 - smoothstep(clamp(alpha_depth_world_pos.z + water_alpha_fade,0.0,water_alpha_max+alpha_depth_world_pos.z), alpha_depth_world_pos.z, VERTEX.y), 0.0, 1.0) ;
|
||||
|
||||
|
||||
|
||||
ALBEDO = clamp(surface_color + depth_color_adj + shore_color * shore_intensity,vec3(0),vec3(1.0));
|
||||
ALPHA = water_alpha;
|
||||
METALLIC = metallic;
|
||||
ROUGHNESS = roughness;
|
||||
NORMAL_MAP = normal_blend;
|
||||
ALBEDO = color.rgb;
|
||||
ALPHA = color.a;
|
||||
}
|
20
Ocean/OceanTile_PlaneMesh.tres
Normal file
|
@ -0,0 +1,20 @@
|
|||
[gd_resource type="PlaneMesh" load_steps=3 format=3 uid="uid://wes0mbjy8mno"]
|
||||
|
||||
[ext_resource type="Shader" uid="uid://ts0b536y5vcd" path="res://Ocean/OceanTile.gdshader" id="1_52gxv"]
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fj7yv"]
|
||||
resource_name = "OceanTileShader"
|
||||
render_priority = 0
|
||||
shader = ExtResource("1_52gxv")
|
||||
shader_parameter/color = Color(0.13, 0.31, 0.53, 0.73)
|
||||
shader_parameter/wave = Vector4(1, 0, 0.5, 10)
|
||||
shader_parameter/wave_speed = 1.0
|
||||
shader_parameter/gravity = 9.8
|
||||
shader_parameter/wave_time = 212.196
|
||||
|
||||
[resource]
|
||||
resource_name = "OceanTile_Main"
|
||||
material = SubResource("ShaderMaterial_fj7yv")
|
||||
size = Vector2(10.5, 10.5)
|
||||
subdivide_width = 201
|
||||
subdivide_depth = 201
|
|
@ -1,10 +0,0 @@
|
|||
[gd_resource type="PlaneMesh" load_steps=2 format=3 uid="uid://c82xwqk7ljku0"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://cf3lxmfb2d7c8" path="res://Ocean/OceanShader_Calm.tres" id="1_vta1j"]
|
||||
|
||||
[resource]
|
||||
resource_name = "OceanTile_Main"
|
||||
material = ExtResource("1_vta1j")
|
||||
size = Vector2(10.5, 10.5)
|
||||
subdivide_width = 11
|
||||
subdivide_depth = 11
|
|
@ -1,10 +0,0 @@
|
|||
[gd_resource type="PlaneMesh" load_steps=2 format=3 uid="uid://wes0mbjy8mno"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://cf3lxmfb2d7c8" path="res://Ocean/OceanShader_Calm.tres" id="1_0jqxu"]
|
||||
|
||||
[resource]
|
||||
resource_name = "OceanTile_Main"
|
||||
material = ExtResource("1_0jqxu")
|
||||
size = Vector2(10.5, 10.5)
|
||||
subdivide_width = 201
|
||||
subdivide_depth = 201
|
|
@ -1,10 +0,0 @@
|
|||
[gd_resource type="PlaneMesh" load_steps=2 format=3 uid="uid://coql6l6v4cybp"]
|
||||
|
||||
[ext_resource type="Material" uid="uid://cf3lxmfb2d7c8" path="res://Ocean/OceanShader_Calm.tres" id="1_4jiw1"]
|
||||
|
||||
[resource]
|
||||
resource_name = "OceanTile_Main"
|
||||
material = ExtResource("1_4jiw1")
|
||||
size = Vector2(10.5, 10.5)
|
||||
subdivide_width = 101
|
||||
subdivide_depth = 101
|
|
@ -1,12 +0,0 @@
|
|||
@icon("uid://ckjj2o5jcfcy")
|
||||
extends Node
|
||||
class_name WeatherManager
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
pass # Replace with function body.
|
||||
|
||||
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(_delta: float) -> void:
|
||||
pass
|
|
@ -1 +0,0 @@
|
|||
uid://3ympc26kcuul
|
|
@ -1,18 +1,11 @@
|
|||
@tool
|
||||
@icon("uid://nwanoqn5yas8")
|
||||
extends Node3D
|
||||
class_name Ocean
|
||||
|
||||
@export_category("Gameplay")
|
||||
@export var follow_player:bool = true
|
||||
|
||||
@export_category("Tiles")
|
||||
@export_tool_button("Generate Tiles","Ocean") var generate_tile_action = generate_tile
|
||||
@export_tool_button("Remove Tiles","Ocean") var remove_tile_action = remove_tile
|
||||
@onready var OceanTileMesh_Main:PlaneMesh = preload("uid://wes0mbjy8mno")
|
||||
@onready var OceanTileMesh_Near:PlaneMesh = preload("uid://coql6l6v4cybp")
|
||||
@onready var OceanTileMesh_Far:PlaneMesh = preload("uid://c82xwqk7ljku0")
|
||||
@onready var OceanShader:ShaderMaterial = preload("uid://cf3lxmfb2d7c8")
|
||||
@onready var OceanTileMesh:PlaneMesh = preload("uid://wes0mbjy8mno")
|
||||
enum OceanTileType {MAIN, NEAR, FAR, HORIZON}
|
||||
var tiles:Array[MeshInstance3D]
|
||||
|
||||
|
@ -21,32 +14,31 @@ var wave_time:float = 0.0
|
|||
@onready var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||
|
||||
var boats:Array[Boat]
|
||||
var PlayerBoat:Boat
|
||||
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if not Engine.is_editor_hint():
|
||||
position = Vector3(0.0,0.0,0.0)
|
||||
add_to_group("Ocean",true)
|
||||
if OceanShader != null:
|
||||
OceanShader.set_shader_parameter("wave_time",0.0)
|
||||
if get_tree().get_nodes_in_group("Boats").size() > 0.0:
|
||||
PlayerBoat = get_tree().get_nodes_in_group("Boats")[0]
|
||||
add_to_group("Ocean")
|
||||
if OceanTileMesh != null:
|
||||
OceanTileMesh.surface_get_material(0).set_shader_parameter("wave_time",0.0)
|
||||
|
||||
func _process(delta:float) :
|
||||
if OceanShader != null:
|
||||
if OceanTileMesh != null:
|
||||
wave_time += delta
|
||||
OceanShader.set_shader_parameter("wave_time",wave_time)
|
||||
if follow_player && PlayerBoat != null:
|
||||
global_position.x = PlayerBoat.global_position.x
|
||||
global_position.z = PlayerBoat.global_position.z
|
||||
|
||||
OceanTileMesh.surface_get_material(0).set_shader_parameter("wave_time",wave_time)
|
||||
|
||||
########################
|
||||
### EDITOR FUNCTIONS ###
|
||||
|
||||
@export_category("Tiles")
|
||||
@export var tile_size = 10.0
|
||||
@export var _layer_number = 3
|
||||
var tile_size = 10.0
|
||||
var _layer_number = 2
|
||||
|
||||
var tiles_pos_vector = [
|
||||
Vector3(0.0, 0.0, 1.0), # Haut
|
||||
Vector3(1.0, 0.0, 0.0), # Droite
|
||||
Vector3(1.0, 0.0, 1.0) # Diagonale (haut-droite)
|
||||
]
|
||||
|
||||
func remove_tile():
|
||||
# Supprimer toutes les tuiles existantes
|
||||
|
@ -58,36 +50,31 @@ func generate_tile(_full: bool = true):
|
|||
if _full:
|
||||
remove_tile()
|
||||
|
||||
# Generate a square grid of tiles
|
||||
for x in range(-_layer_number, _layer_number + 1):
|
||||
for z in range(-_layer_number, _layer_number + 1):
|
||||
var tile_position = Vector3(
|
||||
x * tile_size,
|
||||
0.0,
|
||||
z * tile_size
|
||||
)
|
||||
if tile_position.x == 0.0 && tile_position.z ==0.0:
|
||||
create_new_tile(tile_position, OceanTileType.MAIN)
|
||||
elif abs(tile_position.x) <= tile_size && abs(tile_position.z) <= tile_size:
|
||||
create_new_tile(tile_position, OceanTileType.NEAR)
|
||||
else:
|
||||
create_new_tile(tile_position, OceanTileType.FAR)
|
||||
# Générer la tuile à la position centrale (0, 0, 0)
|
||||
create_new_tile(Vector3(0.0, 0.0, 0.0))
|
||||
|
||||
func create_new_tile(tile_position: Vector3, Type: OceanTileType):
|
||||
# Générer les autres tuiles
|
||||
for vector in tiles_pos_vector:
|
||||
for n in range(1, _layer_number + 1): # n correspond à la couche
|
||||
for direction_x in [-1, 1]: # Prend en compte les valeurs positives et négatives pour x
|
||||
for direction_z in [-1, 1]: # Prend en compte les valeurs positives et négatives pour z
|
||||
# Appliquer les directions après avoir multiplié par n et tile_size
|
||||
var new_pos = Vector3(
|
||||
vector.x * n * tile_size * direction_x,
|
||||
vector.y * n * tile_size, # L'axe Y n'est pas affecté par la direction
|
||||
vector.z * n * tile_size * direction_z
|
||||
)
|
||||
print(new_pos) # Affiche toutes les positions générées
|
||||
create_new_tile(new_pos)
|
||||
|
||||
func create_new_tile(position: Vector3):
|
||||
# Créer une nouvelle tuile
|
||||
var NewTile = MeshInstance3D.new()
|
||||
add_child(NewTile)
|
||||
NewTile.set_owner(get_tree().edited_scene_root)
|
||||
NewTile.set_name("OceanTile00")
|
||||
NewTile.add_to_group("OceanTiles",true)
|
||||
NewTile.global_position = tile_position
|
||||
match Type:
|
||||
OceanTileType.MAIN:
|
||||
NewTile.mesh = OceanTileMesh_Main
|
||||
OceanTileType.NEAR:
|
||||
NewTile.mesh = OceanTileMesh_Near
|
||||
OceanTileType.FAR:
|
||||
NewTile.mesh = OceanTileMesh_Far
|
||||
NewTile.mesh = OceanTileMesh
|
||||
NewTile.global_position = position
|
||||
|
||||
# Ajouter la tuile à la liste
|
||||
tiles.append(NewTile)
|
||||
|
|
2162
OpenWorld.tscn
82
buyancy_probe.gd
Normal file
|
@ -0,0 +1,82 @@
|
|||
extends Node3D
|
||||
class_name BuyancyProbe
|
||||
|
||||
## How much force is applied upward
|
||||
@export var float_strenght: float = 10.0
|
||||
|
||||
@export_category("Debug")
|
||||
@export var show_probe :bool = false
|
||||
var sphere_preview:MeshInstance3D
|
||||
@onready var debug_sphere:SphereMesh = SphereMesh.new()
|
||||
|
||||
@export_category("Wave")
|
||||
# Wave parameters (should match the shader).
|
||||
# For a single wave, we used these parameters.
|
||||
@export var wave_amplitude: float = 1.0
|
||||
@export var wave_length: float = 10.0
|
||||
@export var wave_speed: float = 1.0
|
||||
@export var wave_direction: Vector2 = Vector2(1.0, 0.0)
|
||||
@export var wave:Vector4
|
||||
@onready var ocean_mat: ShaderMaterial = preload("uid://wes0mbjy8mno").surface_get_material(0)
|
||||
@onready var gravity: float = ProjectSettings.get_setting("physics/3d/default_gravity")
|
||||
@onready var OceanNode:Ocean = get_tree().get_first_node_in_group("Ocean")
|
||||
# For multiple waves, define an array of waves.
|
||||
@export var waves: Array[Vector4] = [
|
||||
Vector4(1.0, 0.0, 0.5, 10.0),
|
||||
Vector4(0.0, 1.0, 0.25, 20.0),
|
||||
Vector4(1.0, 1.0, 0.15, 10.0)
|
||||
]
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
if ocean_mat != null:
|
||||
wave = ocean_mat.get_shader_parameter("wave")
|
||||
wave_speed = ocean_mat.get_shader_parameter("wave_speed")
|
||||
|
||||
if show_probe:
|
||||
sphere_preview = MeshInstance3D.new()
|
||||
sphere_preview.set_name("Sphere")
|
||||
add_child(sphere_preview)
|
||||
debug_sphere.radius = 0.1
|
||||
debug_sphere.height = 0.2
|
||||
sphere_preview.mesh = debug_sphere
|
||||
|
||||
|
||||
var Oceantime:float
|
||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
func _process(delta: float) -> void:
|
||||
if OceanNode != null:
|
||||
Oceantime = OceanNode.time
|
||||
if show_probe && sphere_preview != null:
|
||||
sphere_preview.global_position.y = get_gerstner_wave(global_position,wave,Oceantime).y
|
||||
#print(get_gerstner_wave(global_position,wave,Oceantime).y)
|
||||
|
||||
# Calculate the wave height using a sine function.
|
||||
func get_wave_height(position: Vector3, time: float) -> float:
|
||||
var frequency = (2.0 * PI) / wave_length
|
||||
var phase = frequency * (wave_direction.dot(Vector2(position.x, position.z))) + time * wave_speed
|
||||
return wave_amplitude * sin(phase)
|
||||
|
||||
# Approximate the wave's normal based on the derivative of the wave function.
|
||||
func get_wave_normal(position: Vector3, time: float) -> Vector3:
|
||||
var frequency = (2.0 * PI) / wave_length
|
||||
var phase = frequency * (wave_direction.dot(Vector2(global_position.x, global_position.z))) + time * wave_speed
|
||||
var dHeight_dx = wave_amplitude * cos(phase) * frequency * wave_direction.x
|
||||
var dHeight_dz = wave_amplitude * cos(phase) * frequency * wave_direction.y
|
||||
var normal = Vector3(-dHeight_dx, 1.0, -dHeight_dz).normalized()
|
||||
return normal
|
||||
|
||||
func get_gerstner_wave(p: Vector3, wave: Vector4, time: float) -> Vector3:
|
||||
var steepness = wave.z
|
||||
var wavelength = wave.w
|
||||
var k = 2 * PI / wavelength
|
||||
var c = sqrt(gravity / k) # Wave speed factor (gravity-based)
|
||||
var d = Vector2(wave.x, wave.y).normalized()
|
||||
var f = k * ( d.dot(Vector2(p.x, p.z)) - c * time * wave_speed )
|
||||
var a = steepness / k
|
||||
# Return the displacement vector.
|
||||
return Vector3(
|
||||
d.x * (a * cos(f)),
|
||||
a * sin(f),
|
||||
d.y * (a * cos(f))
|
||||
)
|
|
@ -1,67 +0,0 @@
|
|||
[preset.0]
|
||||
|
||||
name="Windows Desktop"
|
||||
platform="Windows Desktop"
|
||||
runnable=true
|
||||
advanced_options=false
|
||||
dedicated_server=false
|
||||
custom_features=""
|
||||
export_filter="scenes"
|
||||
export_files=PackedStringArray("res://OpenWorld.tscn")
|
||||
include_filter=""
|
||||
exclude_filter="*.psd"
|
||||
export_path="Builds/ChatBoat.exe"
|
||||
patches=PackedStringArray()
|
||||
encryption_include_filters=""
|
||||
encryption_exclude_filters=""
|
||||
seed=0
|
||||
encrypt_pck=false
|
||||
encrypt_directory=false
|
||||
script_export_mode=1
|
||||
|
||||
[preset.0.options]
|
||||
|
||||
custom_template/debug=""
|
||||
custom_template/release=""
|
||||
debug/export_console_wrapper=1
|
||||
binary_format/embed_pck=true
|
||||
texture_format/s3tc_bptc=true
|
||||
texture_format/etc2_astc=false
|
||||
binary_format/architecture="x86_64"
|
||||
codesign/enable=false
|
||||
codesign/timestamp=true
|
||||
codesign/timestamp_server_url=""
|
||||
codesign/digest_algorithm=1
|
||||
codesign/description=""
|
||||
codesign/custom_options=PackedStringArray()
|
||||
application/modify_resources=true
|
||||
application/icon=""
|
||||
application/console_wrapper_icon=""
|
||||
application/icon_interpolation=4
|
||||
application/file_version=""
|
||||
application/product_version=""
|
||||
application/company_name="Astucious Ferret Games"
|
||||
application/product_name="ChatBoat"
|
||||
application/file_description=""
|
||||
application/copyright="Lucas Peter"
|
||||
application/trademarks=""
|
||||
application/export_angle=0
|
||||
application/export_d3d12=0
|
||||
application/d3d12_agility_sdk_multiarch=true
|
||||
ssh_remote_deploy/enabled=false
|
||||
ssh_remote_deploy/host="user@host_ip"
|
||||
ssh_remote_deploy/port="22"
|
||||
ssh_remote_deploy/extra_args_ssh=""
|
||||
ssh_remote_deploy/extra_args_scp=""
|
||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
||||
Start-ScheduledTask -TaskName godot_remote_debug
|
||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
10
icon.svg
|
@ -1,9 +1 @@
|
|||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
|
||||
<title>Nodes</title>
|
||||
<style>
|
||||
.s0 { fill: #000000 }
|
||||
</style>
|
||||
<g id="-e-game">
|
||||
<path fill-rule="evenodd" class="s0" d="m9.2 14.4q0 0 0 0 0 0-0.1 0zm0 0c0.7-0.1 1.2-0.6 1.6-1q0.1-0.2 0.3-0.2 0.2 0.1 0.3 0.2c0.4 0.7 1.1 0.9 2 1 0.2 0 0.3 0.2 0.3 0.4 0 0.2-0.2 0.3-0.4 0.3-0.9-0.1-1.7-0.3-2.3-0.9q-0.2 0.3-0.6 0.5 0.2 0 0.3 0c0.2 0.1 0.4 0.2 0.4 0.5 0 0.2-0.2 0.3-0.4 0.3q-1.6-0.2-2.6-1c-0.7 0.7-1.8 0.9-3 1-0.2 0-0.4-0.2-0.4-0.4 0-0.2 0.1-0.3 0.3-0.4q0.4 0 0.7 0-0.3-0.2-0.6-0.5c-0.5 0.6-1.3 0.8-2.2 0.9-0.2 0-0.4-0.1-0.4-0.3-0.1-0.2 0.1-0.4 0.3-0.4 0.8-0.1 1.6-0.3 2-1q0.1-0.1 0.2-0.2 0.2 0 0.4 0.2c0.3 0.4 0.8 1 1.6 1q0 0 0 0 0.5-0.2 0.8-0.6 0.1-0.2 0.2-0.2 0.2 0 0.3 0.1 0.4 0.4 0.9 0.7zm3-3.3c0-0.2 0.1-0.4 0.3-0.5 0.2 0 0.4 0.1 0.4 0.3 0.2 0.6 0.3 1 0.7 1.2 0.3 0.3 0.8 0.4 1.6 0.4 0.2 0 0.4 0.1 0.4 0.4 0 0.2-0.2 0.3-0.4 0.3-1 0.1-1.6-0.1-2.1-0.5-0.5-0.3-0.7-0.9-0.9-1.6zm-1.5-0.9c0-0.2 0.2-0.4 0.4-0.3 0.2 0 0.4 0.2 0.4 0.4-0.2 1.2-0.9 1.8-1.8 2.2-0.2 0-0.4 0-0.5-0.2 0-0.2 0.1-0.4 0.2-0.5 0.7-0.3 1.2-0.7 1.3-1.6zm-1.7-1q-0.3 0.2-0.5 0.3-0.3 0-0.6-0.3c-0.1-0.1-0.3-0.4-0.3-0.5-0.3 0-0.6 0-0.6 0q-0.2 0-0.4-0.1-0.1-0.2 0-0.4c0 0 1.2-2.6 5.6-2.5 1.6 0.1 2.1 1.4 2.4 2.9 0.1 0.8 0.2 1.6 0.3 2.2 0.1 0.3 0.2 0.5 0.5 0.6 0.2 0.1 0.2 0.3 0.1 0.5-0.1 0.2-0.3 0.3-0.5 0.2-0.3-0.2-0.6-0.6-0.8-1.1-0.2-0.6-0.2-1.5-0.4-2.3 0-0.5-0.5-0.9-0.5-0.7 0 0.2-0.1 0.4-0.3 0.4-0.4 0-0.7 0.2-1.1 0.4-0.4 0.3-0.8 0.6-1.1 0.7-0.3 0.1-0.6 0-0.8-0.3q-0.2-0.2-0.4-0.4c0.2 0.4 0.3 1 0 1.7-0.2 0.6-0.8 1.3-2.2 1.6-0.8 0.2-1.6 0.1-2.4 0-0.7-0.2-1.4-0.4-2.2-0.4-0.9 0-1.6 0.7-1.6 0.7-0.1 0.1-0.4 0.1-0.5 0q-0.1-0.1-0.1-0.3v-3.4q0-0.2 0.1-0.3c0 0 0.6-0.4 1.1-0.6 0.2-0.1 0.5-0.2 0.7-0.2 0.2 0 0.4 0.2 0.6 0.4q0.1 0.1 0.2 0.3c0 0 0 0.1 0 0.1q0.1 0 0.2 0 0.2 0 0.3-0.1 0.4 0 0.7 0.1 0.2 0.1 0.4 0.4c0.2 0.1 0.3 0.3 0.4 0.4 0.2 0.1 0.4 0.2 0.7 0.4q0.3 0.1 0.5 0.4c0.2 0.3 0.3 1.1 0.4 1.4q0.2 0 0.3 0c1.1-0.3 1.6-0.7 1.7-1.2 0.2-0.3 0.1-0.7 0.1-1zm-4.3-4.9c0.2 0 0.4 0.1 0.4 0.3v0.4c0 0.2-0.1 0.3-0.3 0.4l0.8 3.5q-0.2-0.1-0.3-0.2c-0.1-0.1-0.2-0.3-0.4-0.5q-0.2-0.3-0.4-0.4-0.3-0.1-0.7-0.1-0.1 0.1-0.3 0.1-0.1 0-0.1 0c-0.1 0-0.1-0.1-0.1-0.2q-0.1-0.1-0.2-0.3c-0.2-0.2-0.4-0.4-0.6-0.4-0.2 0-0.5 0.1-0.7 0.2-0.2 0.1-0.5 0.3-0.7 0.4l0.5-2.1c-0.1-0.1-0.3-0.2-0.3-0.4v-0.4c0-0.2 0.2-0.3 0.4-0.3h3zm6.3 3.6c0.2-0.2 0.4-0.4 0.8-0.3 0.2 0.1 0.4-0.1 0.4-0.3 0.1-0.2-0.1-0.4-0.3-0.4-0.6-0.2-1 0-1.4 0.5-0.2 0.1-0.2 0.3 0 0.5 0.1 0.1 0.3 0.1 0.5 0zm-6.3-5.5v1.1h-3v-1.1zm-1.8-1.8c0.2-0.1 0.4-0.1 0.6 0l1 1h-2.6z"/>
|
||||
</g>
|
||||
</svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 994 B |
|
@ -1,9 +0,0 @@
|
|||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 14" width="16" height="14">
|
||||
<title>-e-Boat</title>
|
||||
<style>
|
||||
.s0 { fill: #fc7f7f }
|
||||
</style>
|
||||
<g id="-e-Boat">
|
||||
<path class="s0" d="m7 11l2.7 1.1c1.1 0.4 2.4 0.4 3.5 0l2.8-1.1q0.1-0.1 0.2-0.1v1.4l-2.5 1c-1.4 0.6-3 0.6-4.5 0l-2.7-1.1c-1.1-0.4-2.4-0.4-3.5 0l-3 1.2v-1.4l2.5-1c1.4-0.6 3-0.6 4.5 0zm1.1-11c0.4 0 0.7 0.3 0.7 0.7v0.7h2c0.7 0 1.4 0.6 1.4 1.3v3l1.3 0.4-1.1 5.5c-0.8 0.2-1.7 0.2-2.4-0.2l-2.8-1c-1.2-0.5-2.5-0.7-3.7-0.4l-0.8-3.9 1.4-0.4v-3c0-0.7 0.6-1.3 1.3-1.3h2v-0.7c0-0.4 0.3-0.7 0.7-0.7zm-0.7 2.7h-2v2.7l2-0.5zm3.4 0h-2v2.2l2 0.5z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 631 B |
|
@ -1,37 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://3ugrjpybrl4e"
|
||||
path="res://.godot/imported/Boat.svg-75bc0fadb884e0e75bf1a31ed1c977a6.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icons/Boat.svg"
|
||||
dest_files=["res://.godot/imported/Boat.svg-75bc0fadb884e0e75bf1a31ed1c977a6.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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -1,14 +0,0 @@
|
|||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
|
||||
<title>-e-Ocean</title>
|
||||
<style>
|
||||
.s0 { fill: #fc7f7f }
|
||||
.s1 { fill: #fc7f7f;stroke: #fc7f7f;stroke-miterlimit:100 }
|
||||
</style>
|
||||
<g id="-e-Ocean">
|
||||
<path class="s0" d="m7.9 11.1l-0.5-0.6c0.7-0.6 0.9-1.1 0.8-2.3l0.7-0.1c0.2 1.4-0.1 2.2-1 3z"/>
|
||||
<path class="s0" d="m6.2 14.5v-0.8c2.1 0 3.5-1.7 3.6-1.7 0-0.1 0.6-0.7 1.5-0.8q0.9 0 1.7 0.9l-0.6 0.5q-0.6-0.6-1.1-0.6c-0.6 0-1 0.5-1 0.5 0 0-1.7 2-4.1 2z"/>
|
||||
<path class="s0" d="m3.1 12.1c-0.2 0-0.5-0.1-0.6-0.3-0.5-0.5-0.4-1.4-0.3-1.8 0-0.2 0.1-0.3 0.3-0.3 0.1 0 0.2 0 0.3 0.2 0.1 0.2 0.4 0.5 0.8 0.8 0.2 0.2 0.3 0.4 0.3 0.6q0 0.3-0.2 0.6-0.3 0.2-0.6 0.2zm-0.5-1.7c-0.1 0.3 0 0.8 0.2 1.1q0.1 0.2 0.3 0.2c0.1 0 0.2-0.1 0.2-0.1q0.1-0.1 0.1-0.3 0-0.1-0.1-0.2c-0.3-0.2-0.6-0.5-0.7-0.7z"/>
|
||||
<path class="s1" d="m8.4 14.9c-1.9 0-3.6-0.7-4.8-2l-0.4-0.4 0.5-0.2c1.1-0.5 1.8-1.3 1.8-1.3 0.1-0.1 0.7-0.7 1.5-0.7q0.9-0.1 1.7 0.8 0.6 0.7 1.3 0.9l-0.3 0.7q-0.8-0.3-1.5-1.1-0.6-0.6-1.2-0.6c-0.5 0-0.9 0.5-0.9 0.5 0 0-0.6 0.7-1.6 1.2 1.1 0.9 2.4 1.4 3.9 1.4 3.3 0 6-2.7 6-6q0-0.5-0.1-1.1c-0.3-1.4-1.2-2.1-2-2.2-1-0.1-1.9 0.4-2.1 1.2-0.7 2.4-2.1 3.1-3.1 2.9-0.6-0.2-1.2-0.7-1.2-1.5-0.8 1.3-1.8 2.1-2.9 2.1-0.7 0-1.3-0.4-1.7-1-0.6-1.1-0.3-2.8 0.8-4.4 1.7-2.6 4.4-3.1 6.3-3.1 1.8 0 3.5 0.8 4.8 2.2 0.9 0.9 1.5 2.1 1.8 3.4q0.1 0.6 0.1 1.5c0 3.7-3 6.8-6.7 6.8zm0-13.2c-1.8 0-4.1 0.5-5.7 2.8-0.9 1.4-1.2 2.8-0.7 3.6 0.2 0.4 0.6 0.7 1 0.7 0.9-0.1 1.8-0.9 2.5-2.2 0.3-0.7 0.6-0.7 0.8-0.6 0.3 0.1 0.5 0.5 0.4 0.8-0.2 0.8 0.1 1.2 0.6 1.3 0.7 0.2 1.7-0.5 2.1-2.3 0.3-1.2 1.6-2 3-1.8q0.4 0.1 0.8 0.3c-1.1-1.6-2.9-2.6-4.8-2.6z"/>
|
||||
<path class="s0" d="m11.9 10.5c-0.1-0.2-0.1-0.4 0-0.5 0.7-1 0.4-2.3 0.2-2.9 0-0.2 0.1-0.4 0.3-0.5 0.2-0.1 0.4 0 0.5 0.2 0.2 0.8 0.5 2.3-0.4 3.6-0.1 0.2-0.4 0.2-0.6 0.1z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.8 KiB |
|
@ -1,37 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://6w31a2gju6bi"
|
||||
path="res://.godot/imported/Ocean.svg-6c6a877658fd7781c0618a503ad7db85.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icons/Ocean.svg"
|
||||
dest_files=["res://.godot/imported/Ocean.svg-6c6a877658fd7781c0618a503ad7db85.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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -1,9 +0,0 @@
|
|||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 11" width="14" height="11">
|
||||
<title>-e-Ocean2</title>
|
||||
<style>
|
||||
.s0 { fill: #fc7f7f }
|
||||
</style>
|
||||
<g id="-e-Ocean2">
|
||||
<path fill-rule="evenodd" class="s0" d="m14 6.2c-0.5 1.2-1.4 2.2-2.6 3.1-1.5 1-3.5 1.7-5.6 1.7-2.1 0-3.8-0.7-5-1.7q-0.5-0.5-0.8-0.9c0.4-0.1 0.9-0.1 1.3-0.1 1.2 0.1 2.4 0.1 3.6-0.8q0.3-0.3 0.6-0.6c0.4-0.6 0.7-1.2 0.7-1.9 0-0.6-0.2-1.1-0.7-1.6q-0.2-0.2-0.4-0.3 0.3-0.1 0.6-0.3c0.9-0.5 1.2-0.6 1.2-0.5 0 0-0.1 0.2-0.3 0.4q0 0.1-0.1 0.2c-0.2 0.3-0.2 0.4-0.1 0.5 0.2 0.1 0.4 0 0.8-0.2 0.9-0.4 2.5-1.1 3.5 0.1-0.6-0.1-1.2 0-1.8 0.2q-0.6 0.3-1.1 0.7-0.2 0.3-0.1 0.4c0.2 0.1 0.6 0 1 0 0.2-0.1 0.4-0.2 0.4-0.1 0 0-0.3 0.1-1.1 0.5q-0.4 0.1-0.5 0.4 0 0.1 0.1 0.3 0.1 0.1 0.3 0.1c0.3 0.1 0.7 0.1 1.3-0.2q0 0 0 0.1c0.4 0.3 0.5 0.8 0.4 1.2q-0.1 0.7-0.8 1.3 0 0 0 0-0.1 0.1-0.2 0.1c-0.9 0.8-1.9 0.7-2.9 0.7-0.8 0-1.6-0.1-2.3 0.3q-0.1 0.1 0 0.2 0 0 0.1 0c0.7-0.3 1.4-0.3 2.1-0.3 1.1 0 2.1 0.1 3.2-0.7q0-0.1 0.1-0.1 0 0 0 0c0.6-0.5 0.9-1 1-1.5 0-0.5-0.1-1-0.5-1.4q0.2-0.1 0.3-0.1c0.5-0.3 0.7-0.4 0.7-0.4 0.1 0 0 0.2 0 0.3q-0.1 0.2-0.1 0.5c-0.1 0.2 0 0.3 0.2 0.3 0.2 0 0.4-0.1 0.7-0.2 0.5-0.2 1.3-0.6 1.7-0.1 0.3 0.3 0.3 0.8 0.2 1.2-0.2 0.4-0.6 0.8-0.9 1.1-1.3 1-2.7 1.3-3.9 1.5-0.7 0.2-1.3 0.3-1.7 0.6q-0.1 0 0 0.1 0.1 0.1 0.2 0.1c0.3-0.3 0.9-0.4 1.6-0.5 1.1-0.3 2.6-0.6 3.9-1.7 0.4-0.3 0.8-0.7 1-1.2 0.2-0.4 0.2-0.9-0.2-1.4-0.6-0.5-1.4-0.2-2 0.1-0.2 0.1-0.4 0.2-0.5 0.2q-0.1 0-0.1-0.1 0.1-0.3 0.1-0.4c0.1-0.3 0.1-0.4 0.1-0.5-0.1-0.2-0.4-0.1-1.1 0.3q-0.2 0.1-0.4 0.2 0 0 0 0c-0.6 0.2-1 0.3-1.2 0.2q-0.1 0-0.2-0.1 0-0.1 0-0.1 0-0.1 0.2-0.2c1.1-0.5 1.4-0.7 1.3-0.8 0-0.2-0.3-0.1-0.6-0.1-0.3 0.1-0.7 0.1-0.8 0.1q0 0 0.1-0.1 0.4-0.4 1-0.6c0.6-0.2 1.2-0.3 1.9-0.2q0.8 0.1 1.5 0.5 0 0 0 0 0.2 0.1 0.3 0.2c0.6 0.5 1 1.1 1.3 1.9q0 0 0 0.1zm-11.6-4.3q0 0 0 0 0 0.1-0.1 0.3-0.1 0.1-0.3 0.3 0 0 0 0-0.2 0.1-0.4 0.1-0.2 0-0.2-0.1-0.1-0.1 0-0.3 0.1-0.1 0.3-0.3 0.2-0.1 0.4-0.1 0.2 0 0.3 0.1zm8.7 1.4c-1.1-1.5-3-0.7-4-0.3-0.3 0.1-0.5 0.2-0.5 0.2q0 0 0.1-0.2 0.1-0.1 0.1-0.2c0.2-0.3 0.4-0.5 0.3-0.7-0.1-0.1-0.5-0.1-1.5 0.5q-0.4 0.2-0.8 0.4 0 0 0 0c-0.8 0.3-1.4 0.4-1.8 0.3q-0.2-0.1-0.3-0.2-0.1-0.1 0-0.2 0-0.2 0.4-0.4c1.5-0.7 2-1 1.9-1.1 0-0.1-0.4-0.1-0.9 0-0.5 0.1-1.1 0.2-1.2 0.1q-0.1 0 0.1-0.2 0.6-0.6 1.5-0.9c0.9-0.4 1.9-0.5 3-0.4 1.1 0.2 2.1 0.6 3 1.3 0.7 0.6 1.4 1.3 1.7 2.4q-0.5-0.3-1.1-0.4zm-4.3 2.3c-0.2 0.5-0.4 1-0.8 1.2q-0.1 0.1 0 0.1 0 0.1 0.1 0.1c0.4-0.3 0.7-0.8 0.8-1.4 0.2-0.5 0.2-1.1 0-1.5q-0.1-0.1-0.1 0-0.1 0-0.1 0.1c0.2 0.3 0.2 0.9 0.1 1.4zm0.9 0.6q0 0.1 0 0.2c0 0.4-0.3 0.8-0.7 1.1-0.5 0.2-1 0.4-1.5 0.5q-0.2 0-0.4 0.1-0.1 0-0.1 0 0 0.1 0 0.1 0.2 0 0.5 0c0.5-0.1 1.1-0.3 1.6-0.6 0.4-0.3 0.8-0.7 0.8-1.2q0-0.1 0-0.2 0-0.1-0.1-0.1-0.1 0-0.1 0.1zm3.5 0.4c0 0.4-0.1 0.8-0.4 1.1-0.2 0.3-0.6 0.6-1 0.7q-0.1 0-0.2 0 0 0 0 0.1 0 0.1 0.1 0.1 0 0 0.1 0c0.5-0.2 0.9-0.5 1.2-0.8 0.3-0.4 0.4-0.8 0.4-1.2q0-0.1 0-0.1 0-0.1-0.1-0.1-0.1 0-0.1 0.1 0 0.1 0 0.1zm-3.1 1.3c-0.4 0.2-0.8 0.3-1.3 0.4q-0.1 0-0.1 0.1 0 0 0.1 0c0.5 0 1-0.2 1.4-0.4 0.4-0.2 0.7-0.5 0.7-0.8q0-0.1-0.1-0.1-0.1 0-0.1 0.1c0 0.2-0.3 0.5-0.6 0.7zm-5.3-4q0.1 0.2 0 0.5-0.2 0.2-0.5 0.4-0.3 0.2-0.6 0.2-0.3 0.1-0.4-0.1-0.2-0.2 0-0.5 0.2-0.2 0.5-0.4 0.3-0.2 0.6-0.2 0.3 0 0.4 0.1z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 3.1 KiB |
|
@ -1,37 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://nwanoqn5yas8"
|
||||
path="res://.godot/imported/Ocean2.svg-c7e900944be56916999acf20e410aafc.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icons/Ocean2.svg"
|
||||
dest_files=["res://.godot/imported/Ocean2.svg-c7e900944be56916999acf20e410aafc.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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -1,9 +0,0 @@
|
|||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="14" height="14">
|
||||
<title>-e-Probe</title>
|
||||
<style>
|
||||
.s0 { fill: #fc7f7f }
|
||||
</style>
|
||||
<g id="-e-Probe">
|
||||
<path id="Probe" fill-rule="evenodd" class="s0" d="m6.6 0h0.8c0.6 0 0.8 0.5 0.8 0.5h1.3c1.1 0 2.1 0.5 2.9 1.2 0.7 0.8 1.2 1.8 1.2 2.9v1.2c0.2 0.2 0.4 0.5 0.4 0.8v0.8c0 0.3-0.2 0.6-0.4 0.8v1.3c0 1.1-0.5 2.1-1.2 2.9-0.8 0.7-1.8 1.2-2.9 1.2h-1.3c-0.2 0.2-0.5 0.4-0.8 0.4h-0.8c-0.3 0-0.6-0.2-0.8-0.4h-1.3c-1.1 0-2.1-0.5-2.9-1.2-0.7-0.8-1.2-1.8-1.2-2.9v-1.3c-0.2-0.2-0.4-0.5-0.4-0.8v-0.8c0-0.3 0.2-0.6 0.4-0.8v-1.2c0-1.1 0.5-2.1 1.2-2.9 0.8-0.7 1.8-1.2 2.9-1.2h1.3c0 0 0.2-0.5 0.8-0.5zm1.6 0.5q0 0 0 0zm0.1 0.7v1.8c0 0.5-0.4 1-0.9 1h-0.8c-0.5 0-0.9-0.5-0.9-1v-1.8h-1.2c-0.9 0-1.8 0.4-2.4 1-0.6 0.6-1 1.5-1 2.4v1.1h1.9c0.5 0 1 0.4 1 0.9v0.8c0 0.5-0.5 0.9-1 0.9h-1.9v1.2c0 0.9 0.4 1.8 1 2.4 0.6 0.6 1.5 1 2.4 1h1.2v-1.9c0-0.5 0.4-1 0.9-1h0.8c0.5 0 0.9 0.5 0.9 1v1.9h1.2c0.9 0 1.8-0.4 2.4-1 0.6-0.6 1-1.5 1-2.4v-1.2h-1.9c-0.5 0-1-0.4-1-0.9v-0.8c0-0.5 0.5-0.9 1-0.9h1.9v-1.1c0-0.9-0.4-1.8-1-2.4-0.6-0.6-1.5-1-2.4-1zm1.8 7.7q0-0.1 0.1-0.1h2.3q0.1 0 0.1 0.1 0 0 0 0.1c-0.6 1.7-2 3.1-3.7 3.7q-0.1 0-0.1 0 0-0.1 0-0.1v-2.3q0-0.1 0-0.1 0.8-0.5 1.3-1.3zm-5 1.4v2.3q0 0 0 0.1-0.1 0-0.1 0c-1.8-0.6-3.1-2-3.7-3.7q-0.1-0.1 0-0.1 0-0.1 0.1-0.1h2.3q0 0 0.1 0.1 0.4 0.8 1.3 1.3 0 0 0 0.1zm-1.4-5.1h-2.3q-0.1 0-0.1-0.1-0.1 0 0-0.1c0.6-1.7 1.9-3.1 3.7-3.7q0 0 0.1 0 0 0.1 0 0.1v2.3q0 0.1 0 0.1-0.9 0.5-1.3 1.3-0.1 0.1-0.1 0.1zm8.9-0.1q0 0.1-0.1 0.1h-2.3q-0.1 0-0.1-0.1-0.5-0.8-1.3-1.3 0 0 0-0.1v-2.3q0 0 0-0.1 0 0 0.1 0c1.7 0.6 3.1 2 3.7 3.7q0 0.1 0 0.1z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.6 KiB |
|
@ -1,37 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ck86evu4iyhyg"
|
||||
path="res://.godot/imported/Probe.svg-788444d16b202938a7211927a742dea3.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icons/Probe.svg"
|
||||
dest_files=["res://.godot/imported/Probe.svg-788444d16b202938a7211927a742dea3.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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -1,11 +0,0 @@
|
|||
<svg version="1.2" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 11" width="12" height="11">
|
||||
<title>-e-Weather</title>
|
||||
<style>
|
||||
.s0 { fill: #fc7f7f }
|
||||
.s1 { fill: #8da5f3 }
|
||||
</style>
|
||||
<g id="-e-Weather">
|
||||
<path id="Cloud" class="s0" d="m11.9 8.9c0 1.2-0.9 2.2-2.1 2.2h-7.2c-2.5 0-2.6-1.2-2.6-2.6 0-1.4 1.1-2.5 2.6-2.5h0.5c0.4-1.5 1.7-2.6 3.3-2.6 1.9 0 3.4 1.5 3.4 3.4 1.2 0 2.1 1 2.1 2.1z"/>
|
||||
<path id="Sun" class="s1" d="m4.7 0h-0.9v1.3h0.9zm2.9 1.5l-0.6-0.6-0.9 0.9 0.6 0.6zm-5.5 4.1q0.2-0.1 0.5-0.1h0.2c0.5-1.5 2-2.5 3.6-2.5q0 0 0.1 0c-0.5-0.8-1.3-1.3-2.2-1.3-1.5 0-2.6 1.1-2.6 2.5q0 0.8 0.4 1.4zm0.3-3.8l-0.9-0.9-0.6 0.6 0.9 0.9zm-1.1 2h-1.3v0.9h1.3z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 683 B |
|
@ -1,37 +0,0 @@
|
|||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ckjj2o5jcfcy"
|
||||
path="res://.godot/imported/Weather.svg-7b5f0f3c54711a8b10e89f516b3e247c.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icons/Weather.svg"
|
||||
dest_files=["res://.godot/imported/Weather.svg-7b5f0f3c54711a8b10e89f516b3e247c.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
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
|
@ -1,7 +0,0 @@
|
|||
All icons are modified to follow the style of the official icons ([found here](https://github.com/godotengine/godot/blob/master/editor/icons/))
|
||||
- Boat by Nathaniel S. from <a href="https://thenounproject.com/browse/icons/term/boat/" target="_blank" title="Boat Icons">Noun Project</a> (CC BY 3.0)
|
||||
- ocean wave by Giorgio Pallini from <a href="https://thenounproject.com/browse/icons/term/ocean-wave/" target="_blank" title="ocean wave Icons">Noun Project</a> (CC BY 3.0)
|
||||
- wave by Ishaq_hmad from <a href="https://thenounproject.com/browse/icons/term/wave/" target="_blank" title="wave Icons">Noun Project</a> (CC BY 3.0)
|
||||
- weather by Chehuna from <a href="https://thenounproject.com/browse/icons/term/weather/" target="_blank" title="weather Icons">Noun Project</a> (CC BY 3.0)
|
||||
- Life Saver by popcornarts from <a href="https://thenounproject.com/browse/icons/term/life-saver/" target="_blank" title="Life Saver Icons">Noun Project</a> (CC BY 3.0)
|
||||
- Ocean by Soni Sokell from <a href="https://thenounproject.com/browse/icons/term/ocean/" target="_blank" title="Ocean Icons">Noun Project</a> (CC BY 3.0)
|
|
@ -11,69 +11,6 @@ config_version=5
|
|||
[application]
|
||||
|
||||
config/name="ChatBoat"
|
||||
config/version="0.1"
|
||||
config/tags=PackedStringArray("games")
|
||||
run/main_scene="uid://bhwuawppmqk4"
|
||||
run/main_scene="uid://bwdtb8qfox3nq"
|
||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=360
|
||||
window/size/viewport_height=240
|
||||
|
||||
[global_group]
|
||||
|
||||
Ocean="Oceans"
|
||||
OceanTiles=""
|
||||
Boats="All player controlled vehicles"
|
||||
|
||||
[input]
|
||||
|
||||
move_forward={
|
||||
"deadzone": 0.2,
|
||||
"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":87,"key_label":0,"unicode":122,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
move_backward={
|
||||
"deadzone": 0.2,
|
||||
"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":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||||
, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null)
|
||||
]
|
||||
}
|
||||
turn_right={
|
||||
"deadzone": 0.2,
|
||||
"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":68,"key_label":0,"unicode":100,"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)
|
||||
]
|
||||
}
|
||||
turn_left={
|
||||
"deadzone": 0.2,
|
||||
"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)
|
||||
]
|
||||
}
|
||||
|
||||
[physics]
|
||||
|
||||
3d/run_on_separate_thread=true
|
||||
common/physics_jitter_fix=0.0
|
||||
3d/physics_engine="Jolt Physics"
|
||||
jolt_physics_3d/simulation/bounce_velocity_threshold=2.0
|
||||
jolt_physics_3d/simulation/sleep_velocity_threshold=0.1
|
||||
3d/default_linear_damp=0.5
|
||||
3d/default_angular_damp=1.5
|
||||
3d/sleep_threshold_angular=0.174533
|
||||
common/physics_interpolation=true
|
||||
common/enable_object_picking=false
|
||||
|
|
|
@ -1,7 +0,0 @@
|
|||
[gd_scene load_steps=2 format=3 uid="uid://bltlqxtb4w6wh"]
|
||||
|
||||
[ext_resource type="PackedScene" uid="uid://dq0410wsgp726" path="res://Assets/Models/Fish1.fbx" id="1_37kl0"]
|
||||
|
||||
[node name="Node3D" type="Node3D"]
|
||||
|
||||
[node name="Fish1" parent="." instance=ExtResource("1_37kl0")]
|
113
world.tscn
|
@ -1,7 +1,7 @@
|
|||
[gd_scene load_steps=11 format=3 uid="uid://buntgqegmy578"]
|
||||
[gd_scene load_steps=11 format=3 uid="uid://bwdtb8qfox3nq"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://cdnrxp6nu1wor" path="res://Ocean/ocean.gd" id="1_aqk2v"]
|
||||
[ext_resource type="Script" uid="uid://cnfkxclrq0i0s" path="res://Boats/buyancy_probe.gd" id="2_fj7yv"]
|
||||
[ext_resource type="Script" uid="uid://cnfkxclrq0i0s" path="res://buyancy_probe.gd" id="2_fj7yv"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_aqk2v"]
|
||||
sky_top_color = Color(0.191699, 0.357914, 1, 1)
|
||||
|
@ -70,434 +70,542 @@ mesh = SubResource("BoxMesh_fj7yv")
|
|||
|
||||
[node name="BuyancyProbe00" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe01" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.03702, -2.38419e-07, 1.60053)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe02" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.47019, -2.38419e-07, -9.91773)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe03" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12.9884, -2.38419e-07, 0.339097)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe04" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.633354, 0, 0.773862, 0, 1, 0, -0.773862, 0, 0.633354, 1.3197, 0, 0.307577)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe05" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.633354, 0, 0.773862, 0, 1, 0, -0.773862, 0, 0.633354, 8.28192, -2.38419e-07, -5.67213)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe06" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.633354, 0, 0.773862, 0, 1, 0, -0.773862, 0, 0.633354, -7.28641, -2.38419e-07, -4.83613)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe07" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.633354, 0, 0.773862, 0, 1, 0, -0.773862, 0, 0.633354, -6.64414, -2.38419e-07, 10.5736)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe08" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.992158, 0, -0.124987, 0, 1, 0, 0.124987, 0, 0.992158, -1.25281, 0, 10.8711)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe09" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.992158, 0, -0.124987, 0, 1, 0, 0.124987, 0, 0.992158, 7.5133, -2.38419e-07, 13.5886)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe10" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.992158, 0, -0.124987, 0, 1, 0, 0.124987, 0, 0.992158, -1.47188, -2.38419e-07, 0.847415)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe11" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.992158, 0, -0.124987, 0, 1, 0, 0.124987, 0, 0.992158, -14.1817, -2.38419e-07, 9.58419)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe12" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.925673, 0, -0.378326, 0, 1, 0, 0.378326, 0, 0.925673, 0.741679, 0, 0.772553)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe13" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.925673, 0, -0.378326, 0, 1, 0, 0.378326, 0, 0.925673, 8.50148, -2.38419e-07, 5.67305)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe14" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.925673, 0, -0.378326, 0, 1, 0, 0.378326, 0, 0.925673, 3.13289, -2.38419e-07, -8.96423)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe15" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.925673, 0, -0.378326, 0, 1, 0, 0.378326, 0, 0.925673, -11.4096, -2.38419e-07, -3.8274)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe16" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.87905, 0, 0.476729, 0, 1, 0, -0.476729, 0, 0.87905, 1.84692, 0, 1.55654)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe17" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.87905, 0, 0.476729, 0, 1, 0, -0.476729, 0, 0.87905, 10.5539, -2.38419e-07, -1.34472)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe18" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.87905, 0, 0.476729, 0, 1, 0, -0.476729, 0, 0.87905, -4.17352, -2.38419e-07, -6.46076)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe19" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.87905, 0, 0.476729, 0, 1, 0, -0.476729, 0, 0.87905, -9.40888, -2.38419e-07, 8.04658)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe20" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.871128, 0, -0.491056, 0, 1, 0, 0.491056, 0, 0.871128, -4.53084, 0, 10.3617)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe21" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.871128, 0, -0.491056, 0, 1, 0, 0.491056, 0, 0.871128, 2.55561, -2.38419e-07, 16.1936)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe22" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.871128, 0, -0.491056, 0, 1, 0, 0.491056, 0, 0.871128, -0.941402, -2.38419e-07, 1.00013)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe23" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.871128, 0, -0.491056, 0, 1, 0, 0.491056, 0, 0.871128, -16.0119, -2.38419e-07, 4.27906)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe24" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.553188, 0, -0.833056, 0, 1, 0, 0.833056, 0, -0.553188, -0.583566, 0, 4.86069)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe25" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.553188, 0, -0.833056, 0, 1, 0, 0.833056, 0, -0.553188, -6.91607, -2.38419e-07, 11.5036)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe26" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.553188, 0, -0.833056, 0, 1, 0, 0.833056, 0, -0.553188, 8.49176, -2.38419e-07, 9.1223)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe27" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.553188, 0, -0.833056, 0, 1, 0, 0.833056, 0, -0.553188, 6.31897, -2.38419e-07, -6.14697)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe28" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.294307, 0, -0.955711, 0, 1, 0, 0.955711, 0, 0.294307, -1.56984, 0, 5.78992)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe29" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.294307, 0, -0.955711, 0, 1, 0, 0.955711, 0, 0.294307, -0.439818, -2.38419e-07, 14.8977)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe30" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.294307, 0, -0.955711, 0, 1, 0, 0.955711, 0, 0.294307, 7.47596, -2.38419e-07, 1.46598)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe31" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.294307, 0, -0.955711, 0, 1, 0, 0.955711, 0, 0.294307, -5.7165, -2.38419e-07, -6.52344)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe32" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.652971, 0, -0.757383, 0, 1, 0, 0.757383, 0, -0.652971, -8.94679, 0, -2.19675)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe33" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.652971, 0, -0.757383, 0, 1, 0, 0.757383, 0, -0.652971, -16.0599, -2.38419e-07, 3.60263)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe34" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.652971, 0, -0.757383, 0, 1, 0, 0.757383, 0, -0.652971, -0.475282, -2.38419e-07, 3.16574)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe35" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.652971, 0, -0.757383, 0, 1, 0, 0.757383, 0, -0.652971, -0.722564, -2.38419e-07, -12.2554)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe36" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.0722982, 0, -0.997383, 0, 1, 0, 0.997383, 0, 0.0722982, 2.36634, 4.76837e-07, 5.62094)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe37" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.0722982, 0, -0.997383, 0, 1, 0, 0.997383, 0, 0.0722982, 1.42336, 2.38418e-07, 14.75)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe38" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.0722982, 0, -0.997383, 0, 1, 0, 0.997383, 0, 0.0722982, 12.1518, 2.38418e-07, 3.43757)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe39" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.0722982, 0, -0.997383, 0, 1, 0, 0.997383, 0, 0.0722982, 1.0891, 2.38418e-07, -7.30895)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe40" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.817627, 0, -0.575748, 0, 1, 0, 0.575748, 0, 0.817627, 2.15498, 4.76837e-07, 6.95942)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe41" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.817627, 0, -0.575748, 0, 1, 0, 0.575748, 0, 0.817627, 8.6224, 2.38418e-07, 13.4711)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe42" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.817627, 0, -0.575748, 0, 1, 0, 0.575748, 0, 0.817627, 6.66302, 2.38418e-07, -1.99604)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe43" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.817627, 0, -0.575748, 0, 1, 0, 0.575748, 0, 0.817627, -8.65993, 2.38418e-07, -0.24136)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe44" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.0529286, 0, -0.998598, 0, 1, 0, 0.998598, 0, -0.0529286, -8.56691, 4.76837e-07, 5.15738)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe45" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.0529286, 0, -0.998598, 0, 1, 0, 0.998598, 0, -0.0529286, -10.6435, 2.38418e-07, 14.097)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe46" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.0529286, 0, -0.998598, 0, 1, 0, 0.998598, 0, -0.0529286, 1.41473, 2.38418e-07, 4.21418)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe47" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.0529286, 0, -0.998598, 0, 1, 0, 0.998598, 0, -0.0529286, -8.21808, 2.38418e-07, -7.83077)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe48" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.310411, 0, -0.950602, 0, 1, 0, 0.950602, 0, -0.310411, 1.64943, 4.76837e-07, 6.41654)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe49" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.310411, 0, -0.950602, 0, 1, 0, 0.950602, 0, -0.310411, -2.67722, 2.38418e-07, 14.5103)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe50" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.310411, 0, -0.950602, 0, 1, 0, 0.950602, 0, -0.310411, 11.5336, 2.38418e-07, 8.09754)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe51" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.310411, 0, -0.950602, 0, 1, 0, 0.950602, 0, -0.310411, 5.35883, 2.38418e-07, -6.03553)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe52" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.539035, 0, -0.842283, 0, 1, 0, 0.842283, 0, 0.539035, 0.947401, 4.76837e-07, 7.57557)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe53" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.539035, 0, -0.842283, 0, 1, 0, 0.842283, 0, 0.539035, 4.47058, 2.38418e-07, 16.05)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe54" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.539035, 0, -0.842283, 0, 1, 0, 0.842283, 0, 0.539035, 8.50845, 2.38418e-07, 0.991245)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe55" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.539035, 0, -0.842283, 0, 1, 0, 0.842283, 0, 0.539035, -6.33942, 2.38418e-07, -3.18156)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe56" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.42679, 0, -0.904351, 0, 1, 0, 0.904351, 0, -0.42679, -8.2958, 4.76837e-07, 1.8511)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe57" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.42679, 0, -0.904351, 0, 1, 0, 0.904351, 0, -0.42679, -13.6002, 2.38418e-07, 9.34064)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe58" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.42679, 0, -0.904351, 0, 1, 0, 0.904351, 0, -0.42679, 1.30077, 2.38418e-07, 4.75431)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe59" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.42679, 0, -0.904351, 0, 1, 0, 0.904351, 0, -0.42679, -3.05915, 2.38418e-07, -10.0397)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe60" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.870871, 0, 0.491512, 0, 1, 0, -0.491512, 0, -0.870871, -2.52382, 4.76837e-07, 5.39032)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe61" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.870871, 0, 0.491512, 0, 1, 0, -0.491512, 0, -0.870871, -9.60721, 2.38418e-07, -0.445332)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe62" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.870871, 0, 0.491512, 0, 1, 0, -0.491512, 0, -0.870871, -6.11815, 2.38418e-07, 14.75)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe63" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.870871, 0, 0.491512, 0, 1, 0, -0.491512, 0, -0.870871, 8.95408, 2.38418e-07, 11.479)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe64" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.931932, 0, -0.362633, 0, 1, 0, 0.362633, 0, -0.931932, -3.52192, 4.76837e-07, 4.47382)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe65" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.931932, 0, -0.362633, 0, 1, 0, 0.362633, 0, -0.931932, -12.5242, 2.38418e-07, 6.25936)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe66" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.931932, 0, -0.362633, 0, 1, 0, 0.362633, 0, -0.931932, 1.44469, 2.38418e-07, 13.1833)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe67" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.931932, 0, -0.362633, 0, 1, 0, 0.362633, 0, -0.931932, 8.45941, 2.38418e-07, -0.552224)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe68" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.802609, 0, 0.596505, 0, 1, 0, -0.596505, 0, -0.802609, 3.91051, 4.76837e-07, -3.46125)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe69" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.802609, 0, 0.596505, 0, 1, 0, -0.596505, 0, -0.802609, -2.38796, 2.38418e-07, -10.1365)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe70" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.802609, 0, 0.596505, 0, 1, 0, -0.596505, 0, -0.802609, -0.82548, 2.38418e-07, 5.37578)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe71" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.802609, 0, 0.596505, 0, 1, 0, -0.596505, 0, -0.802609, 14.5374, 2.38418e-07, 4.01423)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe72" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.940958, 0, -0.338524, 0, 1, 0, 0.338524, 0, -0.940958, -0.748251, 4.76837e-07, 6.87385)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe73" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.940958, 0, -0.338524, 0, 1, 0, 0.338524, 0, -0.940958, -9.79352, 2.38418e-07, 8.42707)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe74" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.940958, 0, -0.338524, 0, 1, 0, 0.338524, 0, -0.940958, 3.99253, 2.38418e-07, 15.7083)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe75" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.940958, 0, -0.338524, 0, 1, 0, 0.338524, 0, -0.940958, 11.3585, 2.38418e-07, 2.15788)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe76" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.333988, 0, -0.942577, 0, 1, 0, 0.942577, 0, -0.333988, -2.09415, 4.76837e-07, 7.03118)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe77" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.333988, 0, -0.942577, 0, 1, 0, 0.942577, 0, -0.333988, -6.62103, 2.38418e-07, 15.0147)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe78" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.333988, 0, -0.942577, 0, 1, 0, 0.942577, 0, -0.333988, 7.7451, 2.38418e-07, 8.95782)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe79" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.333988, 0, -0.942577, 0, 1, 0, 0.942577, 0, -0.333988, 1.92419, 2.38418e-07, -5.32464)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe80" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.97589, 0, -0.218262, 0, 1, 0, 0.218262, 0, -0.97589, -3.24955, 4.76837e-07, -3.77953)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe81" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.97589, 0, -0.218262, 0, 1, 0, 0.218262, 0, -0.97589, -12.418, 2.38418e-07, -3.36903)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe82" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.97589, 0, -0.218262, 0, 1, 0, 0.218262, 0, -0.97589, 0.349858, 2.38418e-07, 5.5782)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe83" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.97589, 0, -0.218262, 0, 1, 0, 0.218262, 0, -0.97589, 9.35169, 2.38418e-07, -6.94533)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe84" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.999091, 0, 0.0426255, 0, 1, 0, -0.0426255, 0, -0.999091, -1.70767, 4.76837e-07, 6.39799)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe85" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.999091, 0, 0.0426255, 0, 1, 0, -0.0426255, 0, -0.999091, -10.6683, 2.38418e-07, 4.41371)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe86" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.999091, 0, 0.0426255, 0, 1, 0, -0.0426255, 0, -0.999091, -0.661562, 2.38418e-07, 16.3694)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe87" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.999091, 0, 0.0426255, 0, 1, 0, -0.0426255, 0, -0.999091, 11.2834, 2.38418e-07, 6.61284)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe88" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.665764, 0, -0.746162, 0, 1, 0, 0.746162, 0, -0.665764, -3.01305, 4.76837e-07, 6.03444)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe89" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.665764, 0, -0.746162, 0, 1, 0, 0.746162, 0, -0.665764, -10.2238, 2.38418e-07, 11.7119)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe90" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.665764, 0, -0.746162, 0, 1, 0, 0.746162, 0, -0.665764, 5.36598, 2.38418e-07, 11.5403)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe91" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.665764, 0, -0.746162, 0, 1, 0, 0.746162, 0, -0.665764, 5.38114, 2.38418e-07, -3.88277)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe92" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.985929, 0, 0.167165, 0, 1, 0, -0.167165, 0, -0.985929, 0.0073901, 4.76837e-07, -4.40986)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe93" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.985929, 0, 0.167165, 0, 1, 0, -0.167165, 0, -0.985929, -8.63492, 2.38418e-07, -7.49854)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe94" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.985929, 0, 0.167165, 0, 1, 0, -0.167165, 0, -0.985929, -0.201001, 2.38418e-07, 5.61408)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe95" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.985929, 0, 0.167165, 0, 1, 0, -0.167165, 0, -0.985929, 12.8697, 2.38418e-07, -2.57299)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe96" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.238516, 0, 0.971138, 0, 1, 0, -0.971138, 0, 0.238516, -1.8446, 4.76837e-07, 2.1026)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe97" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.238516, 0, 0.971138, 0, 1, 0, -0.971138, 0, 0.238516, 1.86521, 2.38418e-07, -6.29184)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe98" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.238516, 0, 0.971138, 0, 1, 0, -0.971138, 0, 0.238516, -11.8268, 2.38418e-07, 1.16481)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe99" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.238516, 0, 0.971138, 0, 1, 0, -0.971138, 0, 0.238516, -4.61324, 2.38418e-07, 14.797)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe100" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.600462, 0, 0.799653, 0, 1, 0, -0.799653, 0, -0.600462, -1.23113, 4.76837e-07, 0.894353)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe101" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.600462, 0, 0.799653, 0, 1, 0, -0.799653, 0, -0.600462, -5.37765, 2.38418e-07, -7.29319)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe102" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.600462, 0, 0.799653, 0, 1, 0, -0.799653, 0, -0.600462, -8.27909, 2.38418e-07, 8.02522)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe103" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(-0.600462, 0, 0.799653, 0, 1, 0, -0.799653, 0, -0.600462, 6.83907, 2.38418e-07, 11.077)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe104" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.358026, 0, 0.933712, 0, 1, 0, -0.933712, 0, 0.358026, 8.41395, 4.76837e-07, 5.91219)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe105" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.358026, 0, 0.933712, 0, 1, 0, -0.933712, 0, 0.358026, 13.1439, 2.38418e-07, -1.95275)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe106" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.358026, 0, 0.933712, 0, 1, 0, -0.933712, 0, 0.358026, -1.37271, 2.38418e-07, 3.73412)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="BuyancyProbe107" type="Node3D" parent="Boat/ProbeContainer"]
|
||||
transform = Transform3D(0.358026, 0, 0.933712, 0, 1, 0, -0.933712, 0, 0.358026, 4.08039, 2.38418e-07, 18.161)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="Junk" type="RigidBody3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0207567, 1.19209e-07, -3.99773)
|
||||
|
@ -513,6 +621,7 @@ skeleton = NodePath("../../Boat")
|
|||
[node name="BuyancyProbe12" type="Node3D" parent="Junk"]
|
||||
transform = Transform3D(0.992158, 0, -0.124987, 0, 1, 0, 0.124987, 0, 0.992158, -1.45113, -3.57628e-07, 4.84515)
|
||||
script = ExtResource("2_fj7yv")
|
||||
show_probe = true
|
||||
|
||||
[node name="FogVolume" type="FogVolume" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.04025, 0)
|
||||
|
|