From 3e0e23c28c29285d4c939496cce6f7665a2d1326 Mon Sep 17 00:00:00 2001
From: Tabby <41929769+tabby-cat-nya@users.noreply.github.com>
Date: Sun, 29 Jun 2025 15:15:49 +1000
Subject: [PATCH] cooking
---
2dWorld.tscn | 73 +++++++++++++++++++++++++++++++++++++
Sprites/Cyclone.png | Bin 0 -> 7130 bytes
Sprites/Cyclone.png.import | 34 +++++++++++++++++
cyclone.gd | 66 +++++++++++++++++++++++++++++++++
cyclone.gd.uid | 1 +
project.godot | 2 +-
6 files changed, 175 insertions(+), 1 deletion(-)
create mode 100644 2dWorld.tscn
create mode 100644 Sprites/Cyclone.png
create mode 100644 Sprites/Cyclone.png.import
create mode 100644 cyclone.gd
create mode 100644 cyclone.gd.uid
diff --git a/2dWorld.tscn b/2dWorld.tscn
new file mode 100644
index 0000000..1c6d174
--- /dev/null
+++ b/2dWorld.tscn
@@ -0,0 +1,73 @@
+[gd_scene load_steps=4 format=3 uid="uid://biu528mgexdyp"]
+
+[ext_resource type="Texture2D" uid="uid://cdw1vlidvg2yt" path="res://Sprites/Cyclone.png" id="1_1wkcu"]
+[ext_resource type="Texture2D" uid="uid://b48ofysofsffi" path="res://icon.svg" id="1_2uw02"]
+[ext_resource type="Script" uid="uid://u353j4q7l26d" path="res://cyclone.gd" id="1_xr6w1"]
+
+[node name="2dWorld" type="Node2D"]
+
+[node name="WorldMap" type="Sprite2D" parent="."]
+position = Vector2(589, 319)
+scale = Vector2(5, 5)
+texture = ExtResource("1_2uw02")
+
+[node name="Cyclone" type="Node2D" parent="." node_paths=PackedStringArray("sprite", "label", "wind_speed_label")]
+position = Vector2(572, 229)
+script = ExtResource("1_xr6w1")
+sprite = NodePath("Sprite2D")
+label = NodePath("cLabel")
+wind_speed_label = NodePath("wsLabel")
+
+[node name="Sprite2D" type="Sprite2D" parent="Cyclone"]
+scale = Vector2(0.2, 0.2)
+texture = ExtResource("1_1wkcu")
+
+[node name="cLabel" type="Label" parent="Cyclone"]
+offset_left = -21.0
+offset_top = -11.0
+offset_right = 19.0
+offset_bottom = 12.0
+size_flags_horizontal = 4
+text = "1"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="wsLabel" type="Label" parent="Cyclone"]
+offset_left = -21.0
+offset_top = -66.0
+offset_right = 19.0
+offset_bottom = -43.0
+size_flags_horizontal = 4
+text = "1"
+horizontal_alignment = 1
+vertical_alignment = 1
+
+[node name="Timer" type="Timer" parent="Cyclone"]
+wait_time = 5.0
+autostart = true
+
+[node name="Background" type="CanvasLayer" parent="."]
+layer = -1
+
+[node name="UI" type="Control" parent="Background"]
+layout_mode = 3
+anchors_preset = 15
+anchor_right = 1.0
+anchor_bottom = 1.0
+grow_horizontal = 2
+grow_vertical = 2
+
+[node name="VBoxContainer" type="VBoxContainer" parent="Background/UI"]
+layout_mode = 0
+offset_right = 40.0
+offset_bottom = 40.0
+
+[node name="LoadImage" type="Button" parent="Background/UI/VBoxContainer"]
+layout_mode = 2
+text = "Load Image"
+
+[node name="Spawn" type="Button" parent="Background/UI/VBoxContainer"]
+layout_mode = 2
+text = "Spawn Cyclone"
+
+[connection signal="timeout" from="Cyclone/Timer" to="Cyclone" method="_on_timer_timeout"]
diff --git a/Sprites/Cyclone.png b/Sprites/Cyclone.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cd197f3214388a4f430970ec8f72e75b83dc2cc
GIT binary patch
literal 7130
zcmd^k_fu10w>3?wNDCmniL?MJA{uJwHPk>riiX}1LKQ?hgpLpt1f)rez@ZbGKq5jY
zN{NcnM3f>Ry-4}+eeeC{`xow>*|YXqyPWpSbI#03GJ)wZ(sR?3k&!X#>1vvhkx?MX
z$jFaqDK8Wc=K8xAKptSGqfS;k%DZwws9d2&P%<(go#Eu+r3-$|#Lz
!jH8R$@(a{T?&QI4m
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
literal 0
HcmV?d00001
diff --git a/Sprites/Cyclone.png.import b/Sprites/Cyclone.png.import
new file mode 100644
index 0000000..ea59891
--- /dev/null
+++ b/Sprites/Cyclone.png.import
@@ -0,0 +1,34 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://cdw1vlidvg2yt"
+path="res://.godot/imported/Cyclone.png-5ff4ec84cd16e1667f6ef06ee600f279.ctex"
+metadata={
+"vram_texture": false
+}
+
+[deps]
+
+source_file="res://Sprites/Cyclone.png"
+dest_files=["res://.godot/imported/Cyclone.png-5ff4ec84cd16e1667f6ef06ee600f279.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
diff --git a/cyclone.gd b/cyclone.gd
new file mode 100644
index 0000000..de27aef
--- /dev/null
+++ b/cyclone.gd
@@ -0,0 +1,66 @@
+extends Node2D
+
+
+@export var sprite : Sprite2D
+@export var label : Label
+@export var wind_speed_label : Label
+var wind_speed : float = 30
+#var move_speed : float = 20
+var wind_acceleration : float = 0.2
+var wind_change : float = 0.2
+
+var move_acceleration : Vector2 = Vector2(0,0)
+var move_change : Vector2 = Vector2(0,0)
+var velocity : Vector2 = Vector2(0,0)
+
+# 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:
+ label.text = get_category()
+ wind_speed_label.text = str(round(wind_speed*10)/10)
+ sprite.rotation_degrees += 40 * delta
+ if wind_speed <= 0:
+ end_cyclone()
+ wind_acceleration += wind_change * delta
+ wind_acceleration = clampf(wind_acceleration, -5, 5)
+ wind_speed += wind_acceleration * delta
+ move_acceleration += move_change * delta
+ move_acceleration.x = clampf(move_acceleration.x, -5, 5)
+ move_acceleration.y = clampf(move_acceleration.y, -5, 5)
+ velocity += move_acceleration * delta
+ velocity.x = clampf(velocity.x, -3, 3)
+ velocity.y = clampf(velocity.y, -3, 3)
+ position += velocity * delta
+
+
+func do_something():
+ wind_change = randf_range(-1,1)
+ move_change = Vector2(randf_range(-1,1),randf_range(-1,1))
+ pass
+
+func end_cyclone():
+ queue_free()
+
+func get_category() -> String:
+ if wind_speed >= 250:
+ return "5"
+ elif wind_speed >= 210:
+ return "4"
+ elif wind_speed >= 178:
+ return "3"
+ elif wind_speed >= 154:
+ return "2"
+ elif wind_speed >= 119:
+ return "1"
+ elif wind_speed >= 63:
+ return "TS"
+ else:
+ return "TD"
+
+
+func _on_timer_timeout() -> void:
+ do_something()
diff --git a/cyclone.gd.uid b/cyclone.gd.uid
new file mode 100644
index 0000000..e08387c
--- /dev/null
+++ b/cyclone.gd.uid
@@ -0,0 +1 @@
+uid://u353j4q7l26d
diff --git a/project.godot b/project.godot
index f5920ac..e2a1105 100644
--- a/project.godot
+++ b/project.godot
@@ -11,7 +11,7 @@ config_version=5
[application]
config/name="Cyclone Tracker"
-run/main_scene="res://world.tscn"
+run/main_scene="uid://biu528mgexdyp"
config/features=PackedStringArray("4.4", "GL Compatibility")
config/icon="res://icon.svg"