From fe4d7196242d0576db8a9a3c9a7ac14081487b89 Mon Sep 17 00:00:00 2001 From: Florian Date: Thu, 18 Sep 2025 15:43:44 +0200 Subject: [PATCH] Wrote method "create_tsunami" --- project.godot | 2 +- water/tsunami.res | Bin 0 -> 497 bytes water/water.gd | 24 +++++++++++++++++++++++- water/water.tscn | 42 +++++++++++++++++++++++++++++++++++++++++- 4 files changed, 65 insertions(+), 3 deletions(-) create mode 100644 water/tsunami.res diff --git a/project.godot b/project.godot index 5d0c72b..cfdd9be 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="The Dark Side of Earth" -run/main_scene="uid://dpkr8yoobtej6" +run/main_scene="uid://cxo6bq26huau7" config/features=PackedStringArray("4.5", "Forward Plus") config/icon="res://icon.svg" diff --git a/water/tsunami.res b/water/tsunami.res new file mode 100644 index 0000000000000000000000000000000000000000..bd9f37d15d759a152af7339b09f36a08f94dcbfb GIT binary patch literal 497 zcmV{_Z$KaTujo-DvMDYAF#tCJ@ogBV zll~I#1SThDsk`L-A+G!k|9}M?xKJU&BY}ng**!MZVs63j_!)o0zxYwDzj3wI)hNfN zjn{-q{gL5Lxz)2K_+HCQjNA4*yp}r1>z0z!n^RNjwP~q%J-GpLV+D#kbpt^PUNIqy zl#HS%ilT_K8mMtI8OEJ1GZj|bAgJ4FXME6Nk{5C&gaDEnO5>DqH31AR4=%srd42*= z08C6Ik)2w>s{!Q~1(uc$lTPE5Ixk6Y=@?k9#TW!4APUOE@C$)01o=IwdbuBQ zB7(sX_Yr4<#rvTylc@ay)LujbJp$2jZh+8s`DyvP!^@*>&N%7|h=@3k$PW0Niqr)> n%XN$ZP+A+n void: update_shader() radius = rise_from + #auto_rise = false + #radius = 2950; + #create_tsunami(4.712, 1); + #await get_tree().create_timer(10).timeout + #create_tsunami(4.712, 1); func _process(_delta: float) -> void: @@ -68,3 +77,16 @@ func _process(_delta: float) -> void: water_reached_max_height.emit() else: radius = lerpf(rise_from, rise_to, (time - start_unix_time) / rise_time) + + if $Tsunami.is_playing(): + tsunami_angle = tsunami_base_angle + animation_angle * direction; + + # direction is -1 for left, +1 for right +func create_tsunami(angle : float, dir : int): + if direction not in [-1, 1]: + push_error("direction must be in {-1, 1}") + return + direction = dir + tsunami_base_angle = angle; + + $Tsunami.play("tsunami") diff --git a/water/water.tscn b/water/water.tscn index a2adef2..58133f3 100644 --- a/water/water.tscn +++ b/water/water.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=5 format=3 uid="uid://ca5ndobertnp4"] +[gd_scene load_steps=8 format=3 uid="uid://ca5ndobertnp4"] [ext_resource type="Script" uid="uid://chcxmo2uqvjbm" path="res://water/water.gd" id="1_m8een"] [ext_resource type="Shader" uid="uid://dg6cmhincvxua" path="res://water/water.gdshader" id="1_wjap7"] +[ext_resource type="Animation" uid="uid://y1u85w0ew7uj" path="res://water/tsunami.res" id="3_6c1kg"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_m8een"] shader = ExtResource("1_wjap7") @@ -13,9 +14,43 @@ shader_parameter/tsunami_angle = 0.0 [sub_resource type="QuadMesh" id="QuadMesh_6c1kg"] +[sub_resource type="Animation" id="Animation_6c1kg"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:tsunami_size") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:animation_angle") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6c1kg"] +_data = { +&"RESET": SubResource("Animation_6c1kg"), +&"tsunami": ExtResource("3_6c1kg") +} + [node name="Water" type="Node2D"] script = ExtResource("1_m8een") amplitude = 20.0 +tsunami_base_angle = 4.712 rise_from = 2400.0 rise_to = 4200.0 rise_time = 900.0 @@ -25,3 +60,8 @@ unique_name_in_owner = true material = SubResource("ShaderMaterial_m8een") scale = Vector2(10000, 10000) mesh = SubResource("QuadMesh_6c1kg") + +[node name="Tsunami" type="AnimationPlayer" parent="."] +libraries = { +&"": SubResource("AnimationLibrary_6c1kg") +}