Compare commits
No commits in common. "1ca99b989793c09258b270de084ac1668b34679f" and "913772ece1b4ee5c9a4e816aaae2ae1370e24465" have entirely different histories.
1ca99b9897
...
913772ece1
15
.fork/custom-commands.json
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"version" : 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"action" : {
|
||||||
|
"script" : "start project.godot",
|
||||||
|
"showOutput" : false,
|
||||||
|
"type" : "sh",
|
||||||
|
"waitForExit" : false
|
||||||
|
},
|
||||||
|
"name" : "Open Project",
|
||||||
|
"target" : "repository"
|
||||||
|
}
|
||||||
|
]
|
3
.gitattributes
vendored
|
@ -1,2 +1,5 @@
|
||||||
# Normalize EOL for all files that Git considers text files.
|
# Normalize EOL for all files that Git considers text files.
|
||||||
* text=auto eol=lf
|
* 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
|
||||||
|
|
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
# Godot 4+ specific ignores
|
# Godot 4+ specific ignores
|
||||||
.godot/
|
.godot/
|
||||||
/android/
|
/android/
|
||||||
|
Builds
|
||||||
|
|
3
.gitmodules
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[submodule "Assets"]
|
||||||
|
path = Assets
|
||||||
|
url = http://185.216.25.221/lucastucious/ChatBoat-Assets
|
1
Assets
Submodule
|
@ -0,0 +1 @@
|
||||||
|
Subproject commit a6d255dfbf3475499e4ac345d9b9a5fad8d23e7f
|
59
Boats/boat.gd
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
@icon("uid://3ugrjpybrl4e")
|
||||||
|
extends RigidBody3D
|
||||||
|
class_name Boat
|
||||||
|
|
||||||
|
@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
|
||||||
|
|
||||||
|
var is_docked: bool = false
|
||||||
|
var submerged := false
|
||||||
|
|
||||||
|
func _ready():
|
||||||
|
add_to_group("Boats",true)
|
||||||
|
|
||||||
|
|
||||||
|
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:
|
||||||
|
apply_central_force(self.global_transform.basis.x.normalized() * Vector3(1, 0, 1) * thrust_force * delta)
|
||||||
|
#apply_torque(Vector3.UP * steering * delta)
|
||||||
|
|
||||||
|
apply_torque(global_transform.basis.y.normalized() * steering * clamp(Input.get_action_strength("move_forward"),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
|
1
Boats/boat.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cjo6l2ykgvn4e
|
72
Boats/boat.tscn
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
[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 = 20.0
|
||||||
|
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)
|
||||||
|
script = ExtResource("3_dd4jx")
|
||||||
|
float_strength = 2.0
|
||||||
|
max_float_force = 1500.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)
|
||||||
|
script = ExtResource("3_dd4jx")
|
||||||
|
float_strength = 1.5
|
||||||
|
max_float_force = 1500.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)
|
||||||
|
script = ExtResource("3_dd4jx")
|
||||||
|
float_strength = 1.5
|
||||||
|
max_float_force = 1500.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)
|
||||||
|
script = ExtResource("3_dd4jx")
|
||||||
|
float_strength = 2.0
|
||||||
|
max_float_force = 1500.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)
|
||||||
|
current = true
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
|
||||||
|
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")
|
87
Boats/buyancy_probe.gd
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
@icon("uid://ck86evu4iyhyg")
|
||||||
|
@tool
|
||||||
|
extends Marker3D
|
||||||
|
class_name BuyancyProbe
|
||||||
|
|
||||||
|
## How much force is applied upward
|
||||||
|
@export var float_strength: float = 10.0
|
||||||
|
@export var max_float_force:float = 500.0
|
||||||
|
var currentdepth:float
|
||||||
|
|
||||||
|
@export_category("Debug")
|
||||||
|
@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:
|
||||||
|
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)
|
||||||
|
|
||||||
|
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
Boats/buyancy_probe.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cnfkxclrq0i0s
|
69
Ocean/OceanShader_Calm.tres
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
[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 = 23.9076
|
||||||
|
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)
|
99
Ocean/OceanTile.gdshader
Normal file
|
@ -0,0 +1,99 @@
|
||||||
|
shader_type spatial;
|
||||||
|
render_mode depth_draw_always;
|
||||||
|
|
||||||
|
uniform sampler2D SCREEN_TEXTURE: hint_screen_texture, filter_linear_mipmap;
|
||||||
|
uniform sampler2D DEPTH_TEXTURE: hint_depth_texture, filter_linear_mipmap;
|
||||||
|
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
1
Ocean/OceanTile.gdshader.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://ts0b536y5vcd
|
10
Ocean/OceanTile_PlaneMesh_Far.tres
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[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
|
10
Ocean/OceanTile_PlaneMesh_Main.tres
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[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
|
10
Ocean/OceanTile_PlaneMesh_Near.tres
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[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
|
12
Ocean/WeatherManager.gd
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
@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
Ocean/WeatherManager.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://3ympc26kcuul
|
93
Ocean/ocean.gd
Normal file
|
@ -0,0 +1,93 @@
|
||||||
|
@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")
|
||||||
|
enum OceanTileType {MAIN, NEAR, FAR, HORIZON}
|
||||||
|
var tiles:Array[MeshInstance3D]
|
||||||
|
|
||||||
|
@export_category("Waves")
|
||||||
|
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]
|
||||||
|
|
||||||
|
func _process(delta:float) :
|
||||||
|
if OceanShader != 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
|
||||||
|
|
||||||
|
########################
|
||||||
|
### EDITOR FUNCTIONS ###
|
||||||
|
|
||||||
|
@export_category("Tiles")
|
||||||
|
@export var tile_size = 10.0
|
||||||
|
@export var _layer_number = 3
|
||||||
|
|
||||||
|
func remove_tile():
|
||||||
|
# Supprimer toutes les tuiles existantes
|
||||||
|
for child in get_children():
|
||||||
|
child.queue_free()
|
||||||
|
|
||||||
|
func generate_tile(_full: bool = true):
|
||||||
|
# Si _full est vrai, on enlève toutes les tuiles existantes
|
||||||
|
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)
|
||||||
|
|
||||||
|
func create_new_tile(tile_position: Vector3, Type: OceanTileType):
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# Ajouter la tuile à la liste
|
||||||
|
tiles.append(NewTile)
|
1
Ocean/ocean.gd.uid
Normal file
|
@ -0,0 +1 @@
|
||||||
|
uid://cdnrxp6nu1wor
|
2137
OpenWorld.tscn
Normal file
40
boat/boat.gd
|
@ -1,40 +0,0 @@
|
||||||
extends RigidBody3D
|
|
||||||
|
|
||||||
@export var float_force := 40
|
|
||||||
@export var water_drag := 0.05
|
|
||||||
@export var water_angular_drag := 0.05
|
|
||||||
|
|
||||||
@onready var gravity:float = ProjectSettings.get_setting("physics/3d/default_gravity")
|
|
||||||
|
|
||||||
const upforce_max := 500.0
|
|
||||||
const water_height :=0.0
|
|
||||||
|
|
||||||
var inWater := false
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
func _physics_process(_delta: float) -> void:
|
|
||||||
var currentDepth = water_height - global_position.y
|
|
||||||
|
|
||||||
if currentDepth > 0:
|
|
||||||
inWater = true
|
|
||||||
var force_to_apply:Vector3 = Vector3.UP * clamp(float_force * gravity * currentDepth,0.0,upforce_max)
|
|
||||||
|
|
||||||
apply_central_force(force_to_apply)
|
|
||||||
else:
|
|
||||||
inWater = false
|
|
||||||
|
|
||||||
func _integrate_forces(state: PhysicsDirectBodyState3D) -> void:
|
|
||||||
# Change comportement based on if in water or not
|
|
||||||
if inWater:
|
|
||||||
state.linear_velocity *= 1 - water_drag
|
|
||||||
state.angular_velocity *= 1 - water_angular_drag
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
uid://crtr3lle7lx7g
|
|
|
@ -1,23 +0,0 @@
|
||||||
[gd_scene load_steps=4 format=3 uid="uid://babgqvkugifk1"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://crtr3lle7lx7g" path="res://boat/boat.gd" id="1_jbc2f"]
|
|
||||||
[ext_resource type="PackedScene" uid="uid://bcdjvsj0la72h" path="res://boat/source/untitled.fbx" id="2_enlnh"]
|
|
||||||
[ext_resource type="Shape3D" uid="uid://jdtw7cqqrtpb" path="res://boat/model/Boat_CollisionShape.tres" id="3_ml88t"]
|
|
||||||
|
|
||||||
[node name="Boat" type="RigidBody3D"]
|
|
||||||
mass = 10.0
|
|
||||||
script = ExtResource("1_jbc2f")
|
|
||||||
|
|
||||||
[node name="SpringArm3D" type="SpringArm3D" parent="."]
|
|
||||||
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="SpringArm3D"]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.107117, 0.323316, 2.70191)
|
|
||||||
|
|
||||||
[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)
|
|
||||||
|
|
||||||
[node name="BoatCollision" type="CollisionShape3D" parent="."]
|
|
||||||
transform = Transform3D(-10, 8.74228e-07, 3.82137e-14, 0, -4.37114e-07, 10, 8.74228e-07, 10, 4.37114e-07, -0.179, 0.151184, 0)
|
|
||||||
shape = ExtResource("3_ml88t")
|
|
BIN
boat/model.res
BIN
boat/ring.res
|
@ -1,70 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://bcdjvsj0la72h"
|
|
||||||
path="res://.godot/imported/untitled.fbx-2cb6bc55ac8aef17b1fe3f0d79b293bf.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://boat/source/untitled.fbx"
|
|
||||||
dest_files=["res://.godot/imported/untitled.fbx-2cb6bc55ac8aef17b1fe3f0d79b293bf.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=true
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={
|
|
||||||
"meshes": {
|
|
||||||
"Mesh": {
|
|
||||||
"generate/lightmap_uv": 0,
|
|
||||||
"generate/lods": 0,
|
|
||||||
"generate/shadow_meshes": 0,
|
|
||||||
"lods/normal_merge_angle": 60.0,
|
|
||||||
"save_to_file/enabled": true,
|
|
||||||
"save_to_file/path": "res://boat/ring.res"
|
|
||||||
},
|
|
||||||
"Mesh_001": {
|
|
||||||
"generate/lightmap_uv": 0,
|
|
||||||
"generate/lods": 0,
|
|
||||||
"generate/shadow_meshes": 0,
|
|
||||||
"lods/normal_merge_angle": 60.0,
|
|
||||||
"save_to_file/enabled": true,
|
|
||||||
"save_to_file/path": "uid://b1pl5cswnak87"
|
|
||||||
},
|
|
||||||
"Mesh_016": {
|
|
||||||
"generate/lightmap_uv": 0,
|
|
||||||
"generate/lods": 0,
|
|
||||||
"generate/shadow_meshes": 0,
|
|
||||||
"lods/normal_merge_angle": 60.0,
|
|
||||||
"save_to_file/enabled": true,
|
|
||||||
"save_to_file/path": "res://boat/model.res"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nodes": {
|
|
||||||
"PATH:Plane": {
|
|
||||||
"import/skip_import": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fbx/importer=0
|
|
||||||
fbx/allow_geometry_helper_nodes=false
|
|
||||||
fbx/embedded_image_handling=1
|
|
Before Width: | Height: | Size: 857 KiB |
67
export_presets.cfg
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
[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 +1,9 @@
|
||||||
<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>
|
<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>
|
Before Width: | Height: | Size: 994 B After Width: | Height: | Size: 2.5 KiB |
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://n50mon0eivi0"
|
uid="uid://cafpmf6v746fm"
|
||||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"vram_texture": false
|
"vram_texture": false
|
||||||
|
|
9
icons/Boat.svg
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 631 B |
|
@ -2,27 +2,26 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://scfxcj65nmxx"
|
uid="uid://3ugrjpybrl4e"
|
||||||
path.s3tc="res://.godot/imported/Untitled.png-2e9d8314f2286b97d61a8694354e2606.s3tc.ctex"
|
path="res://.godot/imported/Boat.svg-75bc0fadb884e0e75bf1a31ed1c977a6.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://boat/textures/Untitled.png"
|
source_file="res://icons/Boat.svg"
|
||||||
dest_files=["res://.godot/imported/Untitled.png-2e9d8314f2286b97d61a8694354e2606.s3tc.ctex"]
|
dest_files=["res://.godot/imported/Boat.svg-75bc0fadb884e0e75bf1a31ed1c977a6.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
@ -32,4 +31,7 @@ process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
14
icons/Ocean.svg
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -2,27 +2,26 @@
|
||||||
|
|
||||||
importer="texture"
|
importer="texture"
|
||||||
type="CompressedTexture2D"
|
type="CompressedTexture2D"
|
||||||
uid="uid://dgo00icnq8glk"
|
uid="uid://6w31a2gju6bi"
|
||||||
path.s3tc="res://.godot/imported/hexagons_medieval.png-45fcd5331f1cd93d05c9317850125690.s3tc.ctex"
|
path="res://.godot/imported/Ocean.svg-6c6a877658fd7781c0618a503ad7db85.ctex"
|
||||||
metadata={
|
metadata={
|
||||||
"imported_formats": ["s3tc_bptc"],
|
"vram_texture": false
|
||||||
"vram_texture": true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[deps]
|
[deps]
|
||||||
|
|
||||||
source_file="res://kaykit/medieval/hexagons_medieval.png"
|
source_file="res://icons/Ocean.svg"
|
||||||
dest_files=["res://.godot/imported/hexagons_medieval.png-45fcd5331f1cd93d05c9317850125690.s3tc.ctex"]
|
dest_files=["res://.godot/imported/Ocean.svg-6c6a877658fd7781c0618a503ad7db85.ctex"]
|
||||||
|
|
||||||
[params]
|
[params]
|
||||||
|
|
||||||
compress/mode=2
|
compress/mode=0
|
||||||
compress/high_quality=false
|
compress/high_quality=false
|
||||||
compress/lossy_quality=0.7
|
compress/lossy_quality=0.7
|
||||||
compress/hdr_compression=1
|
compress/hdr_compression=1
|
||||||
compress/normal_map=0
|
compress/normal_map=0
|
||||||
compress/channel_pack=0
|
compress/channel_pack=0
|
||||||
mipmaps/generate=true
|
mipmaps/generate=false
|
||||||
mipmaps/limit=-1
|
mipmaps/limit=-1
|
||||||
roughness/mode=0
|
roughness/mode=0
|
||||||
roughness/src_normal=""
|
roughness/src_normal=""
|
||||||
|
@ -32,4 +31,7 @@ process/normal_map_invert_y=false
|
||||||
process/hdr_as_srgb=false
|
process/hdr_as_srgb=false
|
||||||
process/hdr_clamp_exposure=false
|
process/hdr_clamp_exposure=false
|
||||||
process/size_limit=0
|
process/size_limit=0
|
||||||
detect_3d/compress_to=0
|
detect_3d/compress_to=1
|
||||||
|
svg/scale=1.0
|
||||||
|
editor/scale_with_editor_scale=false
|
||||||
|
editor/convert_colors_with_editor_theme=false
|
9
icons/Ocean2.svg
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 3.1 KiB |
37
icons/Ocean2.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[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
|
9
icons/Probe.svg
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 1.6 KiB |
37
icons/Probe.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[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
|
11
icons/Weather.svg
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<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>
|
After Width: | Height: | Size: 683 B |
37
icons/Weather.svg.import
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
[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
|
7
icons/icons_credits.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
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)
|
|
@ -1,92 +0,0 @@
|
||||||
[gd_scene load_steps=5 format=3 uid="uid://chcjbpt2tr5k3"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://blvypcnmmpsvp" path="res://kaykit/medieval/building_watermill_red.fbx" id="1_5bu2t"]
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_d3502"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "bezier"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("building_watermill_red/building_watermill_wheel_red:rotation:x")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
tracks/1/type = "bezier"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("building_watermill_red/building_watermill_wheel_red:rotation:y")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
tracks/2/type = "bezier"
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/path = NodePath("building_watermill_red/building_watermill_wheel_red:rotation:z")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_dsco4"]
|
|
||||||
resource_name = "rotate"
|
|
||||||
length = 6.0
|
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "bezier"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("building_watermill_red/building_watermill_wheel_red:rotation:x")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0, 1),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, 0, 0, 0, 0),
|
|
||||||
"times": PackedFloat32Array(0, 6)
|
|
||||||
}
|
|
||||||
tracks/1/type = "bezier"
|
|
||||||
tracks/1/imported = false
|
|
||||||
tracks/1/enabled = true
|
|
||||||
tracks/1/path = NodePath("building_watermill_red/building_watermill_wheel_red:rotation:y")
|
|
||||||
tracks/1/interp = 1
|
|
||||||
tracks/1/loop_wrap = true
|
|
||||||
tracks/1/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0, 1),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 6.28319, 0, 0, 0, 0),
|
|
||||||
"times": PackedFloat32Array(0, 6)
|
|
||||||
}
|
|
||||||
tracks/2/type = "bezier"
|
|
||||||
tracks/2/imported = false
|
|
||||||
tracks/2/enabled = true
|
|
||||||
tracks/2/path = NodePath("building_watermill_red/building_watermill_wheel_red:rotation:z")
|
|
||||||
tracks/2/interp = 1
|
|
||||||
tracks/2/loop_wrap = true
|
|
||||||
tracks/2/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0, 1),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 0, 0, 0, 0, 0),
|
|
||||||
"times": PackedFloat32Array(0, 6)
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_lq8w4"]
|
|
||||||
_data = {
|
|
||||||
&"RESET": SubResource("Animation_d3502"),
|
|
||||||
&"rotate": SubResource("Animation_dsco4")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="building_watermill_red" instance=ExtResource("1_5bu2t")]
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1"]
|
|
||||||
libraries = {
|
|
||||||
&"": SubResource("AnimationLibrary_lq8w4")
|
|
||||||
}
|
|
||||||
autoplay = "rotate"
|
|
||||||
speed_scale = 0.3
|
|
|
@ -1,45 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://blvypcnmmpsvp"
|
|
||||||
path="res://.godot/imported/building_watermill_red.fbx-7345b69046eda6efdb7672ac6a663e59.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://kaykit/medieval/building_watermill_red.fbx"
|
|
||||||
dest_files=["res://.godot/imported/building_watermill_red.fbx-7345b69046eda6efdb7672ac6a663e59.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=true
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"hexagons_medieval": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/path": "uid://dhfhtdg38t3vn"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fbx/importer=0
|
|
||||||
fbx/allow_geometry_helper_nodes=false
|
|
||||||
fbx/embedded_image_handling=1
|
|
|
@ -1,45 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://j4cu75dnf3u8"
|
|
||||||
path="res://.godot/imported/building_well_red.fbx-754a515c4ff6779f54ba1d8fcd3a6886.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://kaykit/medieval/building_well_red.fbx"
|
|
||||||
dest_files=["res://.godot/imported/building_well_red.fbx-754a515c4ff6779f54ba1d8fcd3a6886.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=1
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=true
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=true
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"hexagons_medieval": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/path": "uid://dhfhtdg38t3vn"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fbx/importer=0
|
|
||||||
fbx/allow_geometry_helper_nodes=false
|
|
||||||
fbx/embedded_image_handling=1
|
|
|
@ -1,61 +0,0 @@
|
||||||
[gd_scene load_steps=6 format=3 uid="uid://cpykugh40l23q"]
|
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://wpexb31jqpus" path="res://kaykit/medieval/building_windmill_red.fbx" id="1_4px51"]
|
|
||||||
|
|
||||||
[sub_resource type="GDScript" id="GDScript_4px51"]
|
|
||||||
script/source = "extends Node3D
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
pass
|
|
||||||
"
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_8rf6h"]
|
|
||||||
length = 0.001
|
|
||||||
tracks/0/type = "bezier"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("building_windmill_red/building_windmill_top_red/building_windmill_top_fan_red:rotation:y")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0),
|
|
||||||
"times": PackedFloat32Array(0)
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="Animation" id="Animation_wweoy"]
|
|
||||||
resource_name = "rotation"
|
|
||||||
length = 3.0
|
|
||||||
loop_mode = 1
|
|
||||||
tracks/0/type = "bezier"
|
|
||||||
tracks/0/imported = false
|
|
||||||
tracks/0/enabled = true
|
|
||||||
tracks/0/path = NodePath("building_windmill_red/building_windmill_top_red/building_windmill_top_fan_red:rotation:y")
|
|
||||||
tracks/0/interp = 1
|
|
||||||
tracks/0/loop_wrap = true
|
|
||||||
tracks/0/keys = {
|
|
||||||
"handle_modes": PackedInt32Array(0, 1),
|
|
||||||
"points": PackedFloat32Array(0, -0.25, 0, 0.25, 0, 6.28319, 0, 0, 0, 0),
|
|
||||||
"times": PackedFloat32Array(0, 3)
|
|
||||||
}
|
|
||||||
|
|
||||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_tvuvn"]
|
|
||||||
_data = {
|
|
||||||
&"RESET": SubResource("Animation_8rf6h"),
|
|
||||||
&"rotation": SubResource("Animation_wweoy")
|
|
||||||
}
|
|
||||||
|
|
||||||
[node name="building_windmill_red" instance=ExtResource("1_4px51")]
|
|
||||||
script = SubResource("GDScript_4px51")
|
|
||||||
|
|
||||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1"]
|
|
||||||
libraries = {
|
|
||||||
&"": SubResource("AnimationLibrary_tvuvn")
|
|
||||||
}
|
|
||||||
autoplay = "rotation"
|
|
||||||
speed_scale = 0.3
|
|
|
@ -1,45 +0,0 @@
|
||||||
[remap]
|
|
||||||
|
|
||||||
importer="scene"
|
|
||||||
importer_version=1
|
|
||||||
type="PackedScene"
|
|
||||||
uid="uid://wpexb31jqpus"
|
|
||||||
path="res://.godot/imported/building_windmill_red.fbx-31f0a1aa20abacd2dc63b8cae038b9f0.scn"
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://kaykit/medieval/building_windmill_red.fbx"
|
|
||||||
dest_files=["res://.godot/imported/building_windmill_red.fbx-31f0a1aa20abacd2dc63b8cae038b9f0.scn"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
nodes/root_type=""
|
|
||||||
nodes/root_name=""
|
|
||||||
nodes/apply_root_scale=true
|
|
||||||
nodes/root_scale=1.0
|
|
||||||
nodes/import_as_skeleton_bones=false
|
|
||||||
nodes/use_node_type_suffixes=true
|
|
||||||
meshes/ensure_tangents=true
|
|
||||||
meshes/generate_lods=true
|
|
||||||
meshes/create_shadow_meshes=true
|
|
||||||
meshes/light_baking=3
|
|
||||||
meshes/lightmap_texel_size=0.2
|
|
||||||
meshes/force_disable_compression=false
|
|
||||||
skins/use_named_skins=true
|
|
||||||
animation/import=false
|
|
||||||
animation/fps=30
|
|
||||||
animation/trimming=true
|
|
||||||
animation/remove_immutable_tracks=true
|
|
||||||
animation/import_rest_as_RESET=false
|
|
||||||
import_script/path=""
|
|
||||||
_subresources={
|
|
||||||
"materials": {
|
|
||||||
"hexagons_medieval": {
|
|
||||||
"use_external/enabled": true,
|
|
||||||
"use_external/path": "uid://dhfhtdg38t3vn"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fbx/importer=0
|
|
||||||
fbx/allow_geometry_helper_nodes=false
|
|
||||||
fbx/embedded_image_handling=1
|
|
Before Width: | Height: | Size: 15 KiB |
|
@ -1,7 +0,0 @@
|
||||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dhfhtdg38t3vn"]
|
|
||||||
|
|
||||||
[ext_resource type="Shader" uid="uid://dfyxt0qiimfej" path="res://kaykit/medieval/medieval_shader_code.tres" id="1_nnku5"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
render_priority = 0
|
|
||||||
shader = ExtResource("1_nnku5")
|
|
|
@ -1,31 +0,0 @@
|
||||||
[gd_resource type="VisualShader" load_steps=3 format=3 uid="uid://dfyxt0qiimfej"]
|
|
||||||
|
|
||||||
[ext_resource type="Texture2D" uid="uid://dgo00icnq8glk" path="res://kaykit/medieval/hexagons_medieval.png" id="1_y2qsf"]
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_stlk6"]
|
|
||||||
texture = ExtResource("1_y2qsf")
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
code = "shader_type spatial;
|
|
||||||
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_toon, specular_toon;
|
|
||||||
|
|
||||||
uniform sampler2D tex_frg_4;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void fragment() {
|
|
||||||
// Texture2D:4
|
|
||||||
vec4 n_out4p0 = texture(tex_frg_4, UV);
|
|
||||||
|
|
||||||
|
|
||||||
// Output:0
|
|
||||||
ALBEDO = vec3(n_out4p0.xyz);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
"
|
|
||||||
modes/diffuse = 3
|
|
||||||
modes/specular = 1
|
|
||||||
nodes/fragment/4/node = SubResource("VisualShaderNodeTexture_stlk6")
|
|
||||||
nodes/fragment/4/position = Vector2(-120, 160)
|
|
||||||
nodes/fragment/connections = PackedInt32Array(4, 0, 0, 0)
|
|
|
@ -1,4 +0,0 @@
|
||||||
[gd_resource type="BoneMap" format=3 uid="uid://cngb8pqnno5k4"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
bonemap = null
|
|
|
@ -1,60 +0,0 @@
|
||||||
[gd_scene load_steps=11 format=3 uid="uid://cjjrdfywoxwgr"]
|
|
||||||
|
|
||||||
[ext_resource type="Material" uid="uid://br11m0qg2yhid" path="res://mat/waterMat.tres" id="1_x7q1n"]
|
|
||||||
[ext_resource type="Script" uid="uid://dialqdlhpqqsg" path="res://mat/water.gd" id="2_0sebh"]
|
|
||||||
[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"]
|
|
||||||
|
|
||||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_cdryl"]
|
|
||||||
sky_top_color = Color(0.308708, 0.682951, 0.784164, 1)
|
|
||||||
sky_horizon_color = Color(0.780183, 0.865994, 0.882297, 1)
|
|
||||||
ground_horizon_color = Color(0.780183, 0.865994, 0.882297, 1)
|
|
||||||
|
|
||||||
[sub_resource type="Sky" id="Sky_h5gxe"]
|
|
||||||
sky_material = SubResource("ProceduralSkyMaterial_cdryl")
|
|
||||||
|
|
||||||
[sub_resource type="Environment" id="Environment_x7q1n"]
|
|
||||||
background_mode = 2
|
|
||||||
sky = SubResource("Sky_h5gxe")
|
|
||||||
tonemap_mode = 2
|
|
||||||
glow_enabled = true
|
|
||||||
|
|
||||||
[sub_resource type="PlaneMesh" id="PlaneMesh_h5gxe"]
|
|
||||||
material = ExtResource("1_x7q1n")
|
|
||||||
size = Vector2(50, 50)
|
|
||||||
subdivide_width = 200
|
|
||||||
subdivide_depth = 200
|
|
||||||
|
|
||||||
[node name="Main" type="Node3D"]
|
|
||||||
|
|
||||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
|
||||||
transform = Transform3D(-0.866025, -0.474162, 0.158653, 0, 0.317305, 0.948324, -0.5, 0.821272, -0.274794, 0, 1.39043, 0)
|
|
||||||
light_specular = 0.1
|
|
||||||
shadow_enabled = true
|
|
||||||
shadow_opacity = 0.9
|
|
||||||
|
|
||||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
|
||||||
environment = SubResource("Environment_x7q1n")
|
|
||||||
|
|
||||||
[node name="Water" type="MeshInstance3D" parent="."]
|
|
||||||
mesh = SubResource("PlaneMesh_h5gxe")
|
|
||||||
script = ExtResource("2_0sebh")
|
|
||||||
|
|
||||||
[node name="Env" type="Node3D" parent="."]
|
|
||||||
|
|
||||||
[node name="building_windmill_red" parent="Env" instance=ExtResource("2_cdryl")]
|
|
||||||
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0.309549, -0.0858696, -3.25239)
|
|
||||||
|
|
||||||
[node name="building_well_red" parent="Env" instance=ExtResource("4_wio4u")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.48994, 1.19209e-07, -0.244412)
|
|
||||||
|
|
||||||
[node name="building_watermill_red2" parent="Env" instance=ExtResource("4_x7q1n")]
|
|
||||||
transform = Transform3D(0.676092, 0, -0.736817, 0, 1, 0, 0.736817, 0, 0.676092, -4.20475, 0, -1.22925)
|
|
||||||
|
|
||||||
[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="." instance=ExtResource("5_wio4u")]
|
|
||||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.208335, 0.773113, 1.74591)
|
|
21
mat/water.gd
|
@ -1,21 +0,0 @@
|
||||||
extends MeshInstance3D
|
|
||||||
|
|
||||||
var material: ShaderMaterial
|
|
||||||
var noise: FastNoiseLite = preload("res://mat/watershader.tres::FastNoiseLite_gokfr")
|
|
||||||
|
|
||||||
var noise_UVscale:Vector2
|
|
||||||
var wave_speed:float
|
|
||||||
var height_scale:float
|
|
||||||
|
|
||||||
# Called when the node enters the scene tree for the first time.
|
|
||||||
func _ready() -> void:
|
|
||||||
material = mesh.surface_get_material(0)
|
|
||||||
if material:
|
|
||||||
noise_UVscale = material.get_shader_parameter("RippleTimeScale")
|
|
||||||
print(noise_UVscale)
|
|
||||||
FastNoiseLite
|
|
||||||
|
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
|
||||||
func _process(delta: float) -> void:
|
|
||||||
pass
|
|
|
@ -1 +0,0 @@
|
||||||
uid://dialqdlhpqqsg
|
|
|
@ -1,21 +0,0 @@
|
||||||
[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://br11m0qg2yhid"]
|
|
||||||
|
|
||||||
[ext_resource type="Shader" uid="uid://dju4bgl0vd6f5" path="res://mat/watershader.tres" id="1_337u2"]
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
render_priority = 0
|
|
||||||
shader = ExtResource("1_337u2")
|
|
||||||
shader_parameter/Waves = false
|
|
||||||
shader_parameter/CellsScale = Vector2(15, 15)
|
|
||||||
shader_parameter/RippleTimeScale = Vector2(0.05, 0.08)
|
|
||||||
shader_parameter/MaxRippleHeight = 0.15
|
|
||||||
shader_parameter/ColorParameter = Color(1.5e-05, 0.392619, 0.763696, 1)
|
|
||||||
shader_parameter/FoamScale = 0.936
|
|
||||||
shader_parameter/FoamNoise = true
|
|
||||||
shader_parameter/RippleSpeed = 0.42
|
|
||||||
shader_parameter/DistanceFade = 0.149
|
|
||||||
shader_parameter/RippleNumber = 4.085
|
|
||||||
shader_parameter/FoamMin = 50.0
|
|
||||||
shader_parameter/Transparency = 0.75
|
|
||||||
shader_parameter/Roughness = 0.1
|
|
||||||
shader_parameter/Spec = 0.059
|
|
|
@ -1,823 +0,0 @@
|
||||||
[gd_resource type="VisualShader" load_steps=76 format=3 uid="uid://dju4bgl0vd6f5"]
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_obdjg"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_vh75p"]
|
|
||||||
noise_type = 2
|
|
||||||
seed = -102
|
|
||||||
fractal_type = 0
|
|
||||||
cellular_distance_function = 1
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_eafem"]
|
|
||||||
resource_name = "FoamNoise1"
|
|
||||||
seamless = true
|
|
||||||
noise = SubResource("FastNoiseLite_vh75p")
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_004we"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
texture = SubResource("NoiseTexture2D_eafem")
|
|
||||||
texture_type = 1
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_0o2nh"]
|
|
||||||
default_input_values = [0, Vector2(0, 0), 1, Vector2(-1, -1)]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
op_type = 0
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_jwewd"]
|
|
||||||
default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
op_type = 2
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_dt65u"]
|
|
||||||
default_input_values = [0, 0.0, 1, 1.5]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
operator = 5
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_274gg"]
|
|
||||||
parameter_name = "Transparency"
|
|
||||||
hint = 1
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 0.8
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_mxgkd"]
|
|
||||||
parameter_name = "Roughness"
|
|
||||||
hint = 1
|
|
||||||
default_value_enabled = true
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeColorParameter" id="VisualShaderNodeColorParameter_qysla"]
|
|
||||||
expanded_output_ports = [0]
|
|
||||||
parameter_name = "ColorParameter"
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = Color(1.4728e-05, 0.392619, 0.763696, 1)
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVaryingGetter" id="VisualShaderNodeVaryingGetter_obdjg"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
varying_name = "Noise"
|
|
||||||
varying_type = 3
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeProximityFade" id="VisualShaderNodeProximityFade_obdjg"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_vh75p"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
function = 31
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_eafem"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
function = 0
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_004we"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
input_name = "time"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatFunc" id="VisualShaderNodeFloatFunc_0o2nh"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
function = 12
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_jwewd"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFrame" id="VisualShaderNodeFrame_dt65u"]
|
|
||||||
size = Vector2(2524, 1292)
|
|
||||||
title = "Foam"
|
|
||||||
attached_nodes = PackedInt32Array(27, 30, 24, 29, 26, 38, 23, 34, 33, 32, 35, 36, 37, 50, 53, 54, 60, 61, 58, 59, 57, 51, 52)
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_274gg"]
|
|
||||||
default_input_values = [0, 0.0, 1, 40.0]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
operator = 5
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_qysla"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
parameter_name = "FoamMin"
|
|
||||||
hint = 1
|
|
||||||
max = 100.0
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 40.0
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_ycrm4"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_bt44v"]
|
|
||||||
default_input_values = [0, 0.0, 1, 1.0]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_gokfr"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
parameter_name = "RippleNumber"
|
|
||||||
hint = 1
|
|
||||||
min = 1.0
|
|
||||||
max = 25.0
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 6.0
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_5fl1t"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
parameter_name = "RippleSpeed"
|
|
||||||
hint = 1
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 0.5
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeMultiplyAdd" id="VisualShaderNodeMultiplyAdd_tk76b"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_y7ycs"]
|
|
||||||
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(1, 1, 1), 2, Vector3(0.5, 0.5, 0.5)]
|
|
||||||
op_type = 3
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_6r64g"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
input_name = "uv"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_5wtf6"]
|
|
||||||
default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
op_type = 0
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVaryingGetter" id="VisualShaderNodeVaryingGetter_cgaqp"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
varying_name = "Cells"
|
|
||||||
varying_type = 3
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_wsoe0"]
|
|
||||||
default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
op_type = 2
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_c8snt"]
|
|
||||||
noise_type = 2
|
|
||||||
seed = 93
|
|
||||||
fractal_type = 0
|
|
||||||
cellular_distance_function = 1
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_7x758"]
|
|
||||||
resource_name = "FoamNoise3"
|
|
||||||
seamless = true
|
|
||||||
noise = SubResource("FastNoiseLite_c8snt")
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_hcimu"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
texture = SubResource("NoiseTexture2D_7x758")
|
|
||||||
texture_type = 1
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_qfu83"]
|
|
||||||
default_input_values = [0, Vector2(0, 0), 1, Vector2(-1, -1)]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
op_type = 0
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_osjwj"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_ft6xr"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
input_name = "time"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFrame" id="VisualShaderNodeFrame_obdjg"]
|
|
||||||
size = Vector2(2124, 1224)
|
|
||||||
title = "Noise"
|
|
||||||
attached_nodes = PackedInt32Array(15, 17, 10, 42, 44, 45, 48, 47, 46, 8, 16, 43, 41, 22, 11, 7, 5, 62)
|
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_gokfr"]
|
|
||||||
noise_type = 2
|
|
||||||
seed = 1615
|
|
||||||
fractal_type = 0
|
|
||||||
cellular_distance_function = 1
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_5fl1t"]
|
|
||||||
resource_name = "FoamNoise2"
|
|
||||||
seamless = true
|
|
||||||
noise = SubResource("FastNoiseLite_gokfr")
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_tk76b"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
texture = SubResource("NoiseTexture2D_5fl1t")
|
|
||||||
texture_type = 1
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_obdjg"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
parameter_name = "DistanceFade"
|
|
||||||
hint = 1
|
|
||||||
max = 5.0
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 0.5
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeSwitch" id="VisualShaderNodeSwitch_vh75p"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeBooleanParameter" id="VisualShaderNodeBooleanParameter_eafem"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
parameter_name = "FoamNoise"
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = true
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeMix" id="VisualShaderNodeMix_004we"]
|
|
||||||
default_input_values = [0, 0.0, 1, 0.0, 2, 0.5]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
|
|
||||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_obdjg"]
|
|
||||||
noise_type = 0
|
|
||||||
seed = -2150
|
|
||||||
frequency = 0.1294
|
|
||||||
fractal_type = 0
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_0o2nh"]
|
|
||||||
resource_name = "RippleNoise"
|
|
||||||
noise = SubResource("FastNoiseLite_obdjg")
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_jwewd"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
texture = SubResource("NoiseTexture2D_0o2nh")
|
|
||||||
texture_type = 1
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_vh75p"]
|
|
||||||
parameter_name = "Spec"
|
|
||||||
hint = 1
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 0.969
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_vh75p"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
input_name = "time"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_eafem"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_004we"]
|
|
||||||
default_input_values = [0, 0.0, 1, 0.1]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_y7ycs"]
|
|
||||||
output_port_for_preview = 0
|
|
||||||
default_input_values = [0, Quaternion(0, 0, 0, 0), 1, Quaternion(0, 0, 0, 0)]
|
|
||||||
op_type = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatOp" id="VisualShaderNodeFloatOp_0o2nh"]
|
|
||||||
default_input_values = [0, 0.0, 1, 2.0]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
operator = 5
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVaryingGetter" id="VisualShaderNodeVaryingGetter_jwewd"]
|
|
||||||
linked_parent_graph_frame = 31
|
|
||||||
varying_name = "Noise"
|
|
||||||
varying_type = 3
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_eafem"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
parameter_name = "FoamScale"
|
|
||||||
hint = 1
|
|
||||||
max = 5.0
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 2.0
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_6r64g"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_5wtf6"]
|
|
||||||
linked_parent_graph_frame = 49
|
|
||||||
input_name = "time"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_vh75p"]
|
|
||||||
parameter_name = "RippleTimeScale"
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = Vector2(0.05, 0.08)
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_eafem"]
|
|
||||||
default_input_values = [0, Vector3(0, 0, 0), 1, Vector3(0.2, 0.2, 0.2)]
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeFloatParameter" id="VisualShaderNodeFloatParameter_004we"]
|
|
||||||
parameter_name = "MaxRippleHeight"
|
|
||||||
hint = 1
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = 0.5
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVec2Parameter" id="VisualShaderNodeVec2Parameter_odxaq"]
|
|
||||||
parameter_name = "CellsScale"
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = Vector2(0.5, 0.5)
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVaryingSetter" id="VisualShaderNodeVaryingSetter_ty10k"]
|
|
||||||
varying_name = "Cells"
|
|
||||||
varying_type = 3
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_cgfff"]
|
|
||||||
input_name = "uv"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVectorOp" id="VisualShaderNodeVectorOp_savut"]
|
|
||||||
default_input_values = [0, Vector2(0, 0), 1, Vector2(0, 0)]
|
|
||||||
op_type = 0
|
|
||||||
operator = 2
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeBooleanParameter" id="VisualShaderNodeBooleanParameter_obdjg"]
|
|
||||||
parameter_name = "Waves"
|
|
||||||
default_value_enabled = true
|
|
||||||
default_value = true
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeSwitch" id="VisualShaderNodeSwitch_eafem"]
|
|
||||||
default_input_values = [0, false, 1, Vector3(1, 1, 1), 2, Vector3(0, 0, 0)]
|
|
||||||
op_type = 4
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_dt65u"]
|
|
||||||
input_name = "vertex"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_obdjg"]
|
|
||||||
input_name = "time"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeUVFunc" id="VisualShaderNodeUVFunc_vh75p"]
|
|
||||||
default_input_values = [1, Vector2(0.1, 0.1), 2, Vector2(0, 0)]
|
|
||||||
|
|
||||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_dt65u"]
|
|
||||||
resource_name = "FoamNoise2"
|
|
||||||
seamless = true
|
|
||||||
noise = SubResource("FastNoiseLite_gokfr")
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeTexture" id="VisualShaderNodeTexture_0o2nh"]
|
|
||||||
texture = SubResource("NoiseTexture2D_dt65u")
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_0o2nh"]
|
|
||||||
input_name = "vertex"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeInput" id="VisualShaderNodeInput_jwewd"]
|
|
||||||
input_name = "normal"
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeMultiplyAdd" id="VisualShaderNodeMultiplyAdd_dt65u"]
|
|
||||||
output_port_for_preview = 0
|
|
||||||
default_input_values = [0, Vector4(0, 0, 0, 0), 1, Vector4(1, 1, 1, 1), 2, Vector4(0, 0, 0, 0)]
|
|
||||||
op_type = 3
|
|
||||||
|
|
||||||
[sub_resource type="VisualShaderNodeVaryingSetter" id="VisualShaderNodeVaryingSetter_274gg"]
|
|
||||||
varying_name = "Noise"
|
|
||||||
varying_type = 3
|
|
||||||
|
|
||||||
[resource]
|
|
||||||
code = "shader_type spatial;
|
|
||||||
render_mode blend_mix, depth_draw_opaque, cull_back, diffuse_toon, specular_toon, fog_disabled;
|
|
||||||
|
|
||||||
|
|
||||||
// Varyings
|
|
||||||
varying vec2 var_Noise;
|
|
||||||
varying vec2 var_Cells;
|
|
||||||
|
|
||||||
uniform bool Waves = true;
|
|
||||||
uniform vec2 CellsScale = vec2(0.500000, 0.500000);
|
|
||||||
uniform vec2 RippleTimeScale = vec2(0.050000, 0.080000);
|
|
||||||
uniform sampler2D tex_vtx_4;
|
|
||||||
uniform float MaxRippleHeight : hint_range(0.0, 1.0) = 0.5;
|
|
||||||
uniform vec4 ColorParameter : source_color = vec4(0.000015, 0.392619, 0.763696, 1.000000);
|
|
||||||
uniform sampler2D tex_frg_11 : source_color;
|
|
||||||
uniform sampler2D tex_frg_5 : source_color;
|
|
||||||
uniform sampler2D tex_frg_45 : source_color;
|
|
||||||
uniform float FoamScale : hint_range(0.0, 5.0) = 2.0;
|
|
||||||
uniform bool FoamNoise = true;
|
|
||||||
uniform float RippleSpeed : hint_range(0.0, 1.0) = 0.5;
|
|
||||||
uniform float DistanceFade : hint_range(0.0, 5.0) = 0.5;
|
|
||||||
uniform sampler2D depth_tex_frg_23 : hint_depth_texture;
|
|
||||||
uniform float RippleNumber : hint_range(1.0, 25.0) = 6.0;
|
|
||||||
uniform sampler2D tex_frg_54 : source_color;
|
|
||||||
uniform float FoamMin : hint_range(0.0, 100.0) = 40.0;
|
|
||||||
uniform float Transparency : hint_range(0.0, 1.0) = 0.80000001192093;
|
|
||||||
uniform float Roughness : hint_range(0.0, 1.0) = 0.0;
|
|
||||||
uniform float Spec : hint_range(0.0, 1.0) = 0.96899998188019;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void vertex() {
|
|
||||||
// BooleanParameter:17
|
|
||||||
bool n_out17p0 = Waves;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:15
|
|
||||||
vec2 n_out15p0 = UV;
|
|
||||||
|
|
||||||
|
|
||||||
// Vector2Parameter:13
|
|
||||||
vec2 n_out13p0 = CellsScale;
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:16
|
|
||||||
vec2 n_out16p0 = n_out15p0 * n_out13p0;
|
|
||||||
|
|
||||||
|
|
||||||
// Vector2Parameter:10
|
|
||||||
vec2 n_out10p0 = RippleTimeScale;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:2
|
|
||||||
float n_out2p0 = TIME;
|
|
||||||
|
|
||||||
|
|
||||||
// UVFunc:3
|
|
||||||
vec2 n_out3p0 = vec2(n_out2p0) * n_out10p0 + n_out16p0;
|
|
||||||
|
|
||||||
|
|
||||||
// Texture2D:4
|
|
||||||
vec4 n_out4p0 = texture(tex_vtx_4, n_out3p0);
|
|
||||||
|
|
||||||
|
|
||||||
// Input:6
|
|
||||||
vec3 n_out6p0 = NORMAL;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:12
|
|
||||||
float n_out12p0 = MaxRippleHeight;
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:11
|
|
||||||
vec3 n_out11p0 = n_out6p0 * vec3(n_out12p0);
|
|
||||||
|
|
||||||
|
|
||||||
// Input:5
|
|
||||||
vec3 n_out5p0 = VERTEX;
|
|
||||||
|
|
||||||
|
|
||||||
// MultiplyAdd:7
|
|
||||||
vec4 n_out7p0 = fma(n_out4p0, vec4(n_out11p0, 0.0), vec4(n_out5p0, 0.0));
|
|
||||||
|
|
||||||
|
|
||||||
// Input:19
|
|
||||||
vec3 n_out19p0 = VERTEX;
|
|
||||||
|
|
||||||
|
|
||||||
vec3 n_out18p0;
|
|
||||||
// Switch:18
|
|
||||||
n_out18p0 = mix(n_out19p0, vec3(n_out7p0.xyz), float(n_out17p0));
|
|
||||||
|
|
||||||
|
|
||||||
// Output:0
|
|
||||||
VERTEX = n_out18p0;
|
|
||||||
|
|
||||||
|
|
||||||
// VaryingSetter:8
|
|
||||||
var_Noise = n_out10p0;
|
|
||||||
|
|
||||||
|
|
||||||
// VaryingSetter:14
|
|
||||||
var_Cells = n_out13p0;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void fragment() {
|
|
||||||
// ColorParameter:2
|
|
||||||
vec4 n_out2p0 = ColorParameter;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:41
|
|
||||||
vec2 n_out41p0 = UV;
|
|
||||||
|
|
||||||
|
|
||||||
// VaryingGetter:43
|
|
||||||
vec2 n_out43p0 = var_Cells;
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:42
|
|
||||||
vec2 n_out42p0 = n_out41p0 * n_out43p0;
|
|
||||||
|
|
||||||
|
|
||||||
// VaryingGetter:22
|
|
||||||
vec2 n_out22p0 = var_Noise;
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:15
|
|
||||||
vec2 n_in15p1 = vec2(-1.00000, -1.00000);
|
|
||||||
vec2 n_out15p0 = n_out22p0 * n_in15p1;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:8
|
|
||||||
float n_out8p0 = TIME;
|
|
||||||
|
|
||||||
|
|
||||||
// UVFunc:10
|
|
||||||
vec2 n_out10p0 = vec2(n_out8p0) * n_out15p0 + n_out42p0;
|
|
||||||
|
|
||||||
|
|
||||||
// Texture2D:11
|
|
||||||
vec4 n_out11p0 = texture(tex_frg_11, n_out10p0);
|
|
||||||
|
|
||||||
|
|
||||||
// UVFunc:7
|
|
||||||
vec2 n_out7p0 = vec2(n_out8p0) * n_out22p0 + n_out42p0;
|
|
||||||
|
|
||||||
|
|
||||||
// Texture2D:5
|
|
||||||
vec4 n_out5p0 = texture(tex_frg_5, n_out7p0);
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:16
|
|
||||||
vec4 n_out16p0 = n_out11p0 * n_out5p0;
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:46
|
|
||||||
vec2 n_in46p0 = vec2(0.00000, 0.00000);
|
|
||||||
vec2 n_in46p1 = vec2(-1.00000, -1.00000);
|
|
||||||
vec2 n_out46p0 = n_in46p0 * n_in46p1;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:48
|
|
||||||
float n_out48p0 = TIME;
|
|
||||||
|
|
||||||
|
|
||||||
// UVFunc:47
|
|
||||||
vec2 n_out47p0 = vec2(n_out48p0) * n_out46p0 + UV;
|
|
||||||
|
|
||||||
|
|
||||||
// Texture2D:45
|
|
||||||
vec4 n_out45p0 = texture(tex_frg_45, n_out47p0);
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:44
|
|
||||||
vec4 n_out44p0 = n_out16p0 * n_out45p0;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:62
|
|
||||||
float n_out62p0 = FoamScale;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:17
|
|
||||||
float n_out17p0 = pow(n_out44p0.x, n_out62p0);
|
|
||||||
|
|
||||||
|
|
||||||
// VectorOp:6
|
|
||||||
vec4 n_out6p0 = n_out2p0 + vec4(n_out17p0);
|
|
||||||
|
|
||||||
|
|
||||||
// BooleanParameter:52
|
|
||||||
bool n_out52p0 = FoamNoise;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:27
|
|
||||||
float n_out27p0 = TIME;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:37
|
|
||||||
float n_out37p0 = RippleSpeed;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:50
|
|
||||||
float n_out50p0 = DistanceFade;
|
|
||||||
|
|
||||||
|
|
||||||
float n_out23p0;
|
|
||||||
// ProximityFade:23
|
|
||||||
{
|
|
||||||
float __depth_tex = texture(depth_tex_frg_23, 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;
|
|
||||||
n_out23p0 = clamp(1.0 - smoothstep(__depth_world_pos.z + n_out50p0, __depth_world_pos.z, VERTEX.z), 0.0, 1.0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// FloatFunc:24
|
|
||||||
float n_out24p0 = 1.0 - n_out23p0;
|
|
||||||
|
|
||||||
|
|
||||||
// MultiplyAdd:38
|
|
||||||
float n_out38p0 = fma(n_out27p0, n_out37p0, n_out24p0);
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:36
|
|
||||||
float n_out36p0 = RippleNumber;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:35
|
|
||||||
float n_out35p0 = n_out38p0 * n_out36p0;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatFunc:26
|
|
||||||
float n_out26p0 = sin(n_out35p0);
|
|
||||||
|
|
||||||
|
|
||||||
// FloatFunc:29
|
|
||||||
float n_out29p0 = abs(n_out26p0);
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:30
|
|
||||||
float n_out30p0 = n_out29p0 * n_out24p0;
|
|
||||||
|
|
||||||
|
|
||||||
// VaryingGetter:61
|
|
||||||
vec2 n_out61p0 = var_Noise;
|
|
||||||
|
|
||||||
|
|
||||||
// Input:57
|
|
||||||
float n_out57p0 = TIME;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:59
|
|
||||||
float n_in59p1 = 0.10000;
|
|
||||||
float n_out59p0 = n_out57p0 * n_in59p1;
|
|
||||||
|
|
||||||
|
|
||||||
// UVFunc:58
|
|
||||||
vec2 n_out58p0 = vec2(n_out59p0) * n_out61p0 + UV;
|
|
||||||
|
|
||||||
|
|
||||||
// Texture2D:54
|
|
||||||
vec4 n_out54p0 = texture(tex_frg_54, n_out58p0);
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:60
|
|
||||||
float n_in60p1 = 2.00000;
|
|
||||||
float n_out60p0 = pow(n_out54p0.x, n_in60p1);
|
|
||||||
|
|
||||||
|
|
||||||
// Mix:53
|
|
||||||
float n_in53p0 = 0.00000;
|
|
||||||
float n_out53p0 = mix(n_in53p0, n_out30p0, n_out60p0);
|
|
||||||
|
|
||||||
|
|
||||||
float n_out51p0;
|
|
||||||
// Switch:51
|
|
||||||
n_out51p0 = mix(n_out30p0, n_out53p0, float(n_out52p0));
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:33
|
|
||||||
float n_out33p0 = FoamMin;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:32
|
|
||||||
float n_out32p0 = pow(n_out24p0, n_out33p0);
|
|
||||||
|
|
||||||
|
|
||||||
// FloatOp:34
|
|
||||||
float n_out34p0 = n_out51p0 + n_out32p0;
|
|
||||||
|
|
||||||
|
|
||||||
// Mix:39
|
|
||||||
vec3 n_in39p1 = vec3(1.00000, 1.00000, 1.00000);
|
|
||||||
vec3 n_out39p0 = mix(vec3(n_out6p0.xyz), n_in39p1, vec3(n_out34p0));
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:18
|
|
||||||
float n_out18p0 = Transparency;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:19
|
|
||||||
float n_out19p0 = Roughness;
|
|
||||||
|
|
||||||
|
|
||||||
// FloatParameter:55
|
|
||||||
float n_out55p0 = Spec;
|
|
||||||
|
|
||||||
|
|
||||||
// Output:0
|
|
||||||
ALBEDO = n_out39p0;
|
|
||||||
ALPHA = n_out18p0;
|
|
||||||
ROUGHNESS = n_out19p0;
|
|
||||||
SPECULAR = n_out55p0;
|
|
||||||
EMISSION = vec3(n_out6p0.xyz);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
"
|
|
||||||
graph_offset = Vector2(-540.049, 106.316)
|
|
||||||
modes/diffuse = 3
|
|
||||||
modes/specular = 1
|
|
||||||
flags/fog_disabled = true
|
|
||||||
varyings/Noise = "0,3"
|
|
||||||
varyings/Cells = "0,3"
|
|
||||||
nodes/vertex/0/position = Vector2(1460, 340)
|
|
||||||
nodes/vertex/2/node = SubResource("VisualShaderNodeInput_obdjg")
|
|
||||||
nodes/vertex/2/position = Vector2(-300, 460)
|
|
||||||
nodes/vertex/3/node = SubResource("VisualShaderNodeUVFunc_vh75p")
|
|
||||||
nodes/vertex/3/position = Vector2(-160, 200)
|
|
||||||
nodes/vertex/4/node = SubResource("VisualShaderNodeTexture_0o2nh")
|
|
||||||
nodes/vertex/4/position = Vector2(160, 220)
|
|
||||||
nodes/vertex/5/node = SubResource("VisualShaderNodeInput_0o2nh")
|
|
||||||
nodes/vertex/5/position = Vector2(240, 760)
|
|
||||||
nodes/vertex/6/node = SubResource("VisualShaderNodeInput_jwewd")
|
|
||||||
nodes/vertex/6/position = Vector2(20, 540)
|
|
||||||
nodes/vertex/7/node = SubResource("VisualShaderNodeMultiplyAdd_dt65u")
|
|
||||||
nodes/vertex/7/position = Vector2(840, 300)
|
|
||||||
nodes/vertex/8/node = SubResource("VisualShaderNodeVaryingSetter_274gg")
|
|
||||||
nodes/vertex/8/position = Vector2(-460, 540)
|
|
||||||
nodes/vertex/10/node = SubResource("VisualShaderNodeVec2Parameter_vh75p")
|
|
||||||
nodes/vertex/10/position = Vector2(-840, 280)
|
|
||||||
nodes/vertex/11/node = SubResource("VisualShaderNodeVectorOp_eafem")
|
|
||||||
nodes/vertex/11/position = Vector2(400, 480)
|
|
||||||
nodes/vertex/12/node = SubResource("VisualShaderNodeFloatParameter_004we")
|
|
||||||
nodes/vertex/12/position = Vector2(-100, 660)
|
|
||||||
nodes/vertex/13/node = SubResource("VisualShaderNodeVec2Parameter_odxaq")
|
|
||||||
nodes/vertex/13/position = Vector2(-800, -180)
|
|
||||||
nodes/vertex/14/node = SubResource("VisualShaderNodeVaryingSetter_ty10k")
|
|
||||||
nodes/vertex/14/position = Vector2(-420, 140)
|
|
||||||
nodes/vertex/15/node = SubResource("VisualShaderNodeInput_cgfff")
|
|
||||||
nodes/vertex/15/position = Vector2(-960, -280)
|
|
||||||
nodes/vertex/16/node = SubResource("VisualShaderNodeVectorOp_savut")
|
|
||||||
nodes/vertex/16/position = Vector2(-440, -180)
|
|
||||||
nodes/vertex/17/node = SubResource("VisualShaderNodeBooleanParameter_obdjg")
|
|
||||||
nodes/vertex/17/position = Vector2(920, 80)
|
|
||||||
nodes/vertex/18/node = SubResource("VisualShaderNodeSwitch_eafem")
|
|
||||||
nodes/vertex/18/position = Vector2(1280, 140)
|
|
||||||
nodes/vertex/19/node = SubResource("VisualShaderNodeInput_dt65u")
|
|
||||||
nodes/vertex/19/position = Vector2(1100, 420)
|
|
||||||
nodes/vertex/connections = PackedInt32Array(2, 0, 3, 2, 3, 0, 4, 0, 5, 0, 7, 2, 4, 0, 7, 0, 10, 0, 8, 0, 10, 0, 3, 1, 6, 0, 11, 0, 11, 0, 7, 1, 12, 0, 11, 1, 13, 0, 14, 0, 15, 0, 16, 0, 13, 0, 16, 1, 16, 0, 3, 0, 7, 0, 18, 1, 17, 0, 18, 0, 18, 0, 0, 0, 19, 0, 18, 2)
|
|
||||||
nodes/fragment/0/position = Vector2(1780, 1540)
|
|
||||||
nodes/fragment/2/node = SubResource("VisualShaderNodeColorParameter_qysla")
|
|
||||||
nodes/fragment/2/position = Vector2(240, 920)
|
|
||||||
nodes/fragment/5/node = SubResource("VisualShaderNodeTexture_tk76b")
|
|
||||||
nodes/fragment/5/position = Vector2(-480, 1720)
|
|
||||||
nodes/fragment/6/node = SubResource("VisualShaderNodeVectorOp_y7ycs")
|
|
||||||
nodes/fragment/6/position = Vector2(640, 980)
|
|
||||||
nodes/fragment/7/node = SubResource("VisualShaderNodeUVFunc_6r64g")
|
|
||||||
nodes/fragment/7/position = Vector2(-860, 1840)
|
|
||||||
nodes/fragment/8/node = SubResource("VisualShaderNodeInput_5wtf6")
|
|
||||||
nodes/fragment/8/position = Vector2(-1160, 1720)
|
|
||||||
nodes/fragment/10/node = SubResource("VisualShaderNodeUVFunc_obdjg")
|
|
||||||
nodes/fragment/10/position = Vector2(-840, 1460)
|
|
||||||
nodes/fragment/11/node = SubResource("VisualShaderNodeTexture_004we")
|
|
||||||
nodes/fragment/11/position = Vector2(-480, 1360)
|
|
||||||
nodes/fragment/15/node = SubResource("VisualShaderNodeVectorOp_0o2nh")
|
|
||||||
nodes/fragment/15/position = Vector2(-1060, 1460)
|
|
||||||
nodes/fragment/16/node = SubResource("VisualShaderNodeVectorOp_jwewd")
|
|
||||||
nodes/fragment/16/position = Vector2(-240, 1520)
|
|
||||||
nodes/fragment/17/node = SubResource("VisualShaderNodeFloatOp_dt65u")
|
|
||||||
nodes/fragment/17/position = Vector2(280, 1520)
|
|
||||||
nodes/fragment/18/node = SubResource("VisualShaderNodeFloatParameter_274gg")
|
|
||||||
nodes/fragment/18/position = Vector2(820, 1600)
|
|
||||||
nodes/fragment/19/node = SubResource("VisualShaderNodeFloatParameter_mxgkd")
|
|
||||||
nodes/fragment/19/position = Vector2(800, 1920)
|
|
||||||
nodes/fragment/22/node = SubResource("VisualShaderNodeVaryingGetter_obdjg")
|
|
||||||
nodes/fragment/22/position = Vector2(-1600, 1740)
|
|
||||||
nodes/fragment/23/node = SubResource("VisualShaderNodeProximityFade_obdjg")
|
|
||||||
nodes/fragment/23/position = Vector2(-620, 60)
|
|
||||||
nodes/fragment/24/node = SubResource("VisualShaderNodeFloatFunc_vh75p")
|
|
||||||
nodes/fragment/24/position = Vector2(-400, 60)
|
|
||||||
nodes/fragment/26/node = SubResource("VisualShaderNodeFloatFunc_eafem")
|
|
||||||
nodes/fragment/26/position = Vector2(380, -40)
|
|
||||||
nodes/fragment/27/node = SubResource("VisualShaderNodeInput_004we")
|
|
||||||
nodes/fragment/27/position = Vector2(-680, -80)
|
|
||||||
nodes/fragment/29/node = SubResource("VisualShaderNodeFloatFunc_0o2nh")
|
|
||||||
nodes/fragment/29/position = Vector2(560, -40)
|
|
||||||
nodes/fragment/30/node = SubResource("VisualShaderNodeFloatOp_jwewd")
|
|
||||||
nodes/fragment/30/position = Vector2(780, 20)
|
|
||||||
nodes/fragment/31/node = SubResource("VisualShaderNodeFrame_dt65u")
|
|
||||||
nodes/fragment/31/position = Vector2(-1000, -440)
|
|
||||||
nodes/fragment/32/node = SubResource("VisualShaderNodeFloatOp_274gg")
|
|
||||||
nodes/fragment/32/position = Vector2(420, 180)
|
|
||||||
nodes/fragment/33/node = SubResource("VisualShaderNodeFloatParameter_qysla")
|
|
||||||
nodes/fragment/33/position = Vector2(-160, 260)
|
|
||||||
nodes/fragment/34/node = SubResource("VisualShaderNodeFloatOp_ycrm4")
|
|
||||||
nodes/fragment/34/position = Vector2(1320, 340)
|
|
||||||
nodes/fragment/35/node = SubResource("VisualShaderNodeFloatOp_bt44v")
|
|
||||||
nodes/fragment/35/position = Vector2(200, -80)
|
|
||||||
nodes/fragment/36/node = SubResource("VisualShaderNodeFloatParameter_gokfr")
|
|
||||||
nodes/fragment/36/position = Vector2(-500, 180)
|
|
||||||
nodes/fragment/37/node = SubResource("VisualShaderNodeFloatParameter_5fl1t")
|
|
||||||
nodes/fragment/37/position = Vector2(-620, -400)
|
|
||||||
nodes/fragment/38/node = SubResource("VisualShaderNodeMultiplyAdd_tk76b")
|
|
||||||
nodes/fragment/38/position = Vector2(-80, -100)
|
|
||||||
nodes/fragment/39/node = SubResource("VisualShaderNodeMix_y7ycs")
|
|
||||||
nodes/fragment/39/position = Vector2(1540, 1020)
|
|
||||||
nodes/fragment/41/node = SubResource("VisualShaderNodeInput_6r64g")
|
|
||||||
nodes/fragment/41/position = Vector2(-1520, 2040)
|
|
||||||
nodes/fragment/42/node = SubResource("VisualShaderNodeVectorOp_5wtf6")
|
|
||||||
nodes/fragment/42/position = Vector2(-1180, 2040)
|
|
||||||
nodes/fragment/43/node = SubResource("VisualShaderNodeVaryingGetter_cgaqp")
|
|
||||||
nodes/fragment/43/position = Vector2(-1440, 2160)
|
|
||||||
nodes/fragment/44/node = SubResource("VisualShaderNodeVectorOp_wsoe0")
|
|
||||||
nodes/fragment/44/position = Vector2(-80, 1700)
|
|
||||||
nodes/fragment/45/node = SubResource("VisualShaderNodeTexture_hcimu")
|
|
||||||
nodes/fragment/45/position = Vector2(-360, 2060)
|
|
||||||
nodes/fragment/46/node = SubResource("VisualShaderNodeVectorOp_qfu83")
|
|
||||||
nodes/fragment/46/position = Vector2(-940, 2160)
|
|
||||||
nodes/fragment/47/node = SubResource("VisualShaderNodeUVFunc_osjwj")
|
|
||||||
nodes/fragment/47/position = Vector2(-720, 2160)
|
|
||||||
nodes/fragment/48/node = SubResource("VisualShaderNodeInput_ft6xr")
|
|
||||||
nodes/fragment/48/position = Vector2(-1040, 2420)
|
|
||||||
nodes/fragment/49/node = SubResource("VisualShaderNodeFrame_obdjg")
|
|
||||||
nodes/fragment/49/position = Vector2(-1640, 1319)
|
|
||||||
nodes/fragment/50/node = SubResource("VisualShaderNodeFloatParameter_obdjg")
|
|
||||||
nodes/fragment/50/position = Vector2(-960, 80)
|
|
||||||
nodes/fragment/51/node = SubResource("VisualShaderNodeSwitch_vh75p")
|
|
||||||
nodes/fragment/51/position = Vector2(1300, -280)
|
|
||||||
nodes/fragment/52/node = SubResource("VisualShaderNodeBooleanParameter_eafem")
|
|
||||||
nodes/fragment/52/position = Vector2(940, -240)
|
|
||||||
nodes/fragment/53/node = SubResource("VisualShaderNodeMix_004we")
|
|
||||||
nodes/fragment/53/position = Vector2(1040, 20)
|
|
||||||
nodes/fragment/54/node = SubResource("VisualShaderNodeTexture_jwewd")
|
|
||||||
nodes/fragment/54/position = Vector2(720, 440)
|
|
||||||
nodes/fragment/55/node = SubResource("VisualShaderNodeFloatParameter_vh75p")
|
|
||||||
nodes/fragment/55/position = Vector2(1300, 1920)
|
|
||||||
nodes/fragment/57/node = SubResource("VisualShaderNodeInput_vh75p")
|
|
||||||
nodes/fragment/57/position = Vector2(0, 640)
|
|
||||||
nodes/fragment/58/node = SubResource("VisualShaderNodeUVFunc_eafem")
|
|
||||||
nodes/fragment/58/position = Vector2(480, 560)
|
|
||||||
nodes/fragment/59/node = SubResource("VisualShaderNodeFloatOp_004we")
|
|
||||||
nodes/fragment/59/position = Vector2(280, 660)
|
|
||||||
nodes/fragment/60/node = SubResource("VisualShaderNodeFloatOp_0o2nh")
|
|
||||||
nodes/fragment/60/position = Vector2(940, 540)
|
|
||||||
nodes/fragment/61/node = SubResource("VisualShaderNodeVaryingGetter_jwewd")
|
|
||||||
nodes/fragment/61/position = Vector2(280, 560)
|
|
||||||
nodes/fragment/62/node = SubResource("VisualShaderNodeFloatParameter_eafem")
|
|
||||||
nodes/fragment/62/position = Vector2(-40, 1380)
|
|
||||||
nodes/fragment/connections = PackedInt32Array(2, 0, 6, 0, 7, 0, 5, 0, 8, 0, 7, 2, 10, 0, 11, 0, 15, 0, 10, 1, 8, 0, 10, 2, 11, 0, 16, 0, 5, 0, 16, 1, 17, 0, 6, 1, 18, 0, 0, 1, 19, 0, 0, 3, 22, 0, 15, 0, 22, 0, 7, 1, 23, 0, 24, 0, 26, 0, 29, 0, 29, 0, 30, 0, 24, 0, 30, 1, 24, 0, 32, 0, 33, 0, 32, 1, 32, 0, 34, 1, 35, 0, 26, 0, 36, 0, 35, 1, 27, 0, 38, 0, 24, 0, 38, 2, 37, 0, 38, 1, 38, 0, 35, 0, 6, 0, 39, 0, 41, 0, 42, 0, 42, 0, 7, 0, 43, 0, 42, 1, 16, 0, 44, 0, 44, 0, 17, 0, 47, 0, 45, 0, 46, 0, 47, 1, 48, 0, 47, 2, 45, 0, 44, 1, 42, 0, 10, 0, 50, 0, 23, 0, 52, 0, 51, 0, 55, 0, 0, 4, 58, 0, 54, 0, 57, 0, 59, 0, 59, 0, 58, 2, 54, 0, 60, 0, 60, 0, 53, 2, 61, 0, 58, 1, 39, 0, 0, 0, 6, 0, 0, 5, 30, 0, 53, 1, 34, 0, 39, 2, 53, 0, 51, 1, 30, 0, 51, 2, 51, 0, 34, 0, 62, 0, 17, 1)
|
|
|
@ -10,16 +10,71 @@ config_version=5
|
||||||
|
|
||||||
[application]
|
[application]
|
||||||
|
|
||||||
config/name="SpilledClone"
|
config/name="ChatBoat"
|
||||||
run/main_scene="uid://cjjrdfywoxwgr"
|
config/version="0.1"
|
||||||
|
config/tags=PackedStringArray("games")
|
||||||
|
run/main_scene="uid://bhwuawppmqk4"
|
||||||
config/features=PackedStringArray("4.4", "Forward Plus")
|
config/features=PackedStringArray("4.4", "Forward Plus")
|
||||||
boot_splash/bg_color=Color(0, 0, 0, 1)
|
|
||||||
config/icon="res://icon.svg"
|
config/icon="res://icon.svg"
|
||||||
|
|
||||||
[display]
|
|
||||||
|
|
||||||
window/size/viewport_width=576
|
|
||||||
window/size/viewport_height=324
|
|
||||||
window/stretch/mode="viewport"
|
window/stretch/mode="viewport"
|
||||||
window/per_pixel_transparency/allowed=true
|
window/stretch/aspect="expand"
|
||||||
window/vsync/vsync_mode=0
|
|
||||||
|
[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
|
||||||
|
|
||||||
|
[rendering]
|
||||||
|
|
||||||
|
scaling_3d/scale=0.4
|
||||||
|
|
7
test.tscn
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
[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")]
|
520
world.tscn
Normal file
|
@ -0,0 +1,520 @@
|
||||||
|
[gd_scene load_steps=11 format=3 uid="uid://buntgqegmy578"]
|
||||||
|
|
||||||
|
[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"]
|
||||||
|
|
||||||
|
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_aqk2v"]
|
||||||
|
sky_top_color = Color(0.191699, 0.357914, 1, 1)
|
||||||
|
sky_horizon_color = Color(0.549485, 0.583289, 0.73481, 1)
|
||||||
|
ground_bottom_color = Color(0.196971, 0.32493, 0.588228, 1)
|
||||||
|
ground_horizon_color = Color(0.549485, 0.583289, 0.73481, 1)
|
||||||
|
ground_energy_multiplier = 0.5
|
||||||
|
|
||||||
|
[sub_resource type="Sky" id="Sky_036b0"]
|
||||||
|
sky_material = SubResource("ProceduralSkyMaterial_aqk2v")
|
||||||
|
radiance_size = 0
|
||||||
|
|
||||||
|
[sub_resource type="Environment" id="Environment_dwbse"]
|
||||||
|
background_mode = 2
|
||||||
|
sky = SubResource("Sky_036b0")
|
||||||
|
ambient_light_source = 3
|
||||||
|
ambient_light_color = Color(0.408507, 0.421831, 0.473046, 1)
|
||||||
|
reflected_light_source = 2
|
||||||
|
tonemap_mode = 2
|
||||||
|
ssao_enabled = true
|
||||||
|
sdfgi_enabled = true
|
||||||
|
glow_enabled = true
|
||||||
|
fog_light_color = Color(0.187177, 0.206743, 0.237501, 1)
|
||||||
|
volumetric_fog_enabled = true
|
||||||
|
volumetric_fog_density = 0.0038
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_f3sb7"]
|
||||||
|
resource_name = "BoatShape"
|
||||||
|
size = Vector3(3, 0.5, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_fj7yv"]
|
||||||
|
size = Vector3(3, 0.5, 1)
|
||||||
|
|
||||||
|
[sub_resource type="BoxShape3D" id="BoxShape3D_tlwt5"]
|
||||||
|
size = Vector3(0.5, 0.5, 0.5)
|
||||||
|
|
||||||
|
[sub_resource type="BoxMesh" id="BoxMesh_aqk2v"]
|
||||||
|
size = Vector3(0.5, 0.5, 0.5)
|
||||||
|
|
||||||
|
[sub_resource type="FogMaterial" id="FogMaterial_fj7yv"]
|
||||||
|
density = 0.03
|
||||||
|
albedo = Color(0.636369, 0.709149, 0.427976, 1)
|
||||||
|
|
||||||
|
[node name="World" type="Node3D"]
|
||||||
|
|
||||||
|
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
|
||||||
|
environment = SubResource("Environment_dwbse")
|
||||||
|
|
||||||
|
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||||
|
transform = Transform3D(-0.866024, -0.433016, 0.250001, 0, 0.499998, 0.866026, -0.500003, 0.749999, -0.43301, 0, 1.5328, 0)
|
||||||
|
shadow_enabled = true
|
||||||
|
|
||||||
|
[node name="Ocean" type="Node3D" parent="."]
|
||||||
|
script = ExtResource("1_aqk2v")
|
||||||
|
|
||||||
|
[node name="Boat" type="RigidBody3D" parent="."]
|
||||||
|
mass = 5.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Boat"]
|
||||||
|
shape = SubResource("BoxShape3D_f3sb7")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D" type="MeshInstance3D" parent="Boat"]
|
||||||
|
mesh = SubResource("BoxMesh_fj7yv")
|
||||||
|
|
||||||
|
[node name="ProbeContainer" type="Node3D" parent="Boat"]
|
||||||
|
|
||||||
|
[node name="BuyancyProbe00" type="Node3D" parent="Boat/ProbeContainer"]
|
||||||
|
script = ExtResource("2_fj7yv")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[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")
|
||||||
|
|
||||||
|
[node name="Junk" type="RigidBody3D" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0207567, 1.19209e-07, -3.99773)
|
||||||
|
mass = 5.0
|
||||||
|
|
||||||
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="Junk"]
|
||||||
|
shape = SubResource("BoxShape3D_tlwt5")
|
||||||
|
|
||||||
|
[node name="MeshInstance3D2" type="MeshInstance3D" parent="Junk"]
|
||||||
|
mesh = SubResource("BoxMesh_aqk2v")
|
||||||
|
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")
|
||||||
|
|
||||||
|
[node name="FogVolume" type="FogVolume" parent="."]
|
||||||
|
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.04025, 0)
|
||||||
|
shape = 4
|
||||||
|
material = SubResource("FogMaterial_fj7yv")
|