converted project to Godot 3 for OpenGL ES 2 compatibility

This commit is contained in:
Anselme FRANÇOIS 2025-12-28 13:54:40 +01:00
parent b5655b3c79
commit d8f254dade
28 changed files with 241 additions and 303 deletions

View File

@ -1,4 +0,0 @@
root = true
[*]
charset = utf-8

1
.import/.gdignore Normal file
View File

@ -0,0 +1 @@

View File

@ -0,0 +1,3 @@
source_md5="30f027e7d96a4bc2490e41af96f0065d"
dest_md5="ee7cf1e791b9a0aa2763c43b49761587"

View File

@ -0,0 +1,3 @@
source_md5="e764f545f45ff67472d11f7abdd9eba8"
dest_md5="f29d733ab0173aefbf5ac7dafaeb9350"

Binary file not shown.

View File

@ -0,0 +1,3 @@
source_md5="b78dff39c0eaeb82b9d9181b5b886af9"
dest_md5="d79c9b247e2c22f49149ecbcbef3cd3f"

View File

@ -0,0 +1,3 @@
source_md5="0c2b232333654cbc3c5a7b5f68b8ab4d"
dest_md5="63dae64c3e44bb209aabe30cace3b86e"

BIN
AgatheOs.x86 Normal file

Binary file not shown.

View File

@ -1,42 +0,0 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://4xh07bbhtmaf"
path="res://.godot/imported/OpenSans-Bold.ttf-e736ce5ac4bed0969e44842cb3065dab.fontdata"
[deps]
source_file="res://OpenSans-Bold.ttf"
dest_files=["res://.godot/imported/OpenSans-Bold.ttf-e736ce5ac4bed0969e44842cb3065dab.fontdata"]
[params]
Rendering=null
antialiasing=1
generate_mipmaps=false
disable_embedded_bitmaps=true
multichannel_signed_distance_field=false
msdf_pixel_range=8
msdf_size=48
allow_system_fallback=true
force_autohinter=false
modulate_color_glyphs=false
hinting=1
subpixel_positioning=4
keep_rounding_remainders=true
oversampling=0.0
Fallbacks=null
fallbacks=[]
Compress=null
compress=true
preload=[{
"chars": [90, 70, 68, 74, 71, 75, 78, 82, 79, 83, 86, 87, 89, 88, 81, 85, 84, 67, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 80, 77, 76, 73, 72, 69, 66, 65, 0, 13, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 58, 59, 60, 61, 62, 63, 64, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255],
"glyphs": [],
"name": "New Configuration",
&"size": Vector2i(100, 0),
&"variation_embolden": 0.0
}]
language_support={}
script_support={}
opentype_features={}

7
default_env.tres Normal file
View File

@ -0,0 +1,7 @@
[gd_resource type="Environment" load_steps=2 format=2]
[sub_resource type="ProceduralSky" id=1]
[resource]
background_mode = 2
background_sky = SubResource( 1 )

View File

@ -1,14 +1,13 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://3rauc5r5b2ox"
path="res://.godot/imported/delete.wav-e50e6d74de8e18946331c3a0bc61be5a.sample"
type="AudioStreamSample"
path="res://.import/delete.wav-e50e6d74de8e18946331c3a0bc61be5a.sample"
[deps]
source_file="res://delete.wav"
dest_files=["res://.godot/imported/delete.wav-e50e6d74de8e18946331c3a0bc61be5a.sample"]
dest_files=[ "res://.import/delete.wav-e50e6d74de8e18946331c3a0bc61be5a.sample" ]
[params]
@ -21,4 +20,4 @@ edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
compress/mode=0

View File

@ -1,42 +1,24 @@
[preset.0]
name="Linux"
platform="Linux"
name="Linux/X11"
platform="Linux/X11"
runnable=true
advanced_options=false
dedicated_server=false
custom_features=""
export_filter="all_resources"
include_filter=""
exclude_filter=""
export_path="./AgatheOS.zip"
patches=PackedStringArray()
encryption_include_filters=""
encryption_exclude_filters=""
seed=0
encrypt_pck=false
encrypt_directory=false
script_export_mode=2
export_path="./AgatheOs.x86"
script_export_mode=1
script_encryption_key=""
[preset.0.options]
custom_template/debug=""
custom_template/release=""
debug/export_console_wrapper=1
binary_format/embed_pck=false
texture_format/s3tc_bptc=true
texture_format/etc2_astc=false
shader_baker/enabled=false
binary_format/architecture="x86_32"
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="#!/usr/bin/env bash
export DISPLAY=:0
unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
\"{temp_dir}/{exe_name}\" {cmd_args}"
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
rm -rf \"{temp_dir}\""
binary_format/embed_pck=true
texture_format/bptc=false
texture_format/s3tc=true
texture_format/etc=false
texture_format/etc2=false
texture_format/no_bptc_fallbacks=true

BIN
icon.png (Stored with Git LFS) Normal file

Binary file not shown.

35
icon.png.import Normal file
View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="StreamTexture"
path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.png"
dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ]
[params]
compress/mode=0
compress/lossy_quality=0.7
compress/hdr_mode=0
compress/bptc_ldr=0
compress/normal_map=0
flags/repeat=0
flags/filter=true
flags/mipmaps=false
flags/anisotropic=false
flags/srgb=2
process/fix_alpha_border=true
process/premult_alpha=false
process/HDR_as_SRGB=false
process/invert_color=false
process/normal_map_invert_y=false
stream=false
size_limit=0
detect_3d=true
svg/scale=1.0

View File

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="128"><rect width="124" height="124" x="2" y="2" fill="#363d52" stroke="#212532" stroke-width="4" rx="14"/><g fill="#fff" transform="translate(12.322 12.322)scale(.101)"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 814 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H446l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c0 34 58 34 58 0v-86c0-34-58-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042" transform="translate(12.322 12.322)scale(.101)"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></svg>

Before

Width:  |  Height:  |  Size: 995 B

View File

@ -1,43 +0,0 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c4x58roxqr6u"
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://icon.svg"
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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

31
main.gd
View File

@ -10,11 +10,12 @@ var labels: Array = []
var current_x: float = 0
var current_y: float = 0
@onready var labels_node: Control = $Labels
onready var labels_node: Control = $Labels
var is_ready: bool = false
func _ready() -> void:
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
offset_line(1)
is_ready = true
@ -22,16 +23,18 @@ func _input(event: InputEvent) -> void:
if event is InputEventKey:
var key_event: InputEventKey = event
if key_event.pressed and not key_event.echo:
var letter: String = OS.get_keycode_string(event.keycode)
if letter.length() == 1:
spawn_text(OS.get_keycode_string(event.keycode))
var letter: String = OS.get_scancode_string(event.scancode)
if event.physical_scancode >= KEY_0 and event.physical_scancode <= KEY_9:
spawn_text(OS.get_scancode_string(event.physical_scancode))
elif letter.length() == 1:
spawn_text(OS.get_scancode_string(event.scancode))
else:
match key_event.keycode:
Key.KEY_ENTER:
match key_event.physical_scancode:
KEY_ENTER:
offset_line()
Key.KEY_ESCAPE:
KEY_ESCAPE:
offset_line(6)
Key.KEY_BACKSPACE:
KEY_BACKSPACE:
delete_last_text()
func offset_line(amount: int = 1) -> void:
@ -39,26 +42,26 @@ func offset_line(amount: int = 1) -> void:
current_y = current_y + LINE_HEIGHT * amount
var target_pos := Vector2(0, SCREEN_HEIGHT - (LINE_HEIGHT + current_y))
var tween := get_tree().create_tween()
var tweener := tween.tween_property(labels_node, "position", target_pos, 0.3)
var tweener := tween.tween_property(labels_node, "rect_position", target_pos, 0.3)
tweener.from_current().set_trans(Tween.TRANS_CUBIC)
if is_ready:
$AudioStreamPlayer.stop()
$AudioStreamPlayer.play()
func spawn_text(text: String) -> void:
var instance : TypedLetter = label.instantiate()
var instance : TypedLetter = label.instance()
labels.push_back(instance)
labels_node.add_child(instance)
instance.position = Vector2(current_x, current_y)
instance.rect_position = Vector2(current_x, current_y)
instance.add_label(text)
current_x = current_x + instance.get_width() + LETTER_SPACING
if current_x > SCREEN_WIDTH:
offset_line()
func delete_last_text() -> void:
if not labels.is_empty():
if not labels.empty():
var last: TypedLetter = labels.back()
if current_y == last.position.y:
current_x = last.position.x
if current_y == last.rect_position.y:
current_x = last.rect_position.x
labels.pop_back()
last.delete_label()

View File

@ -1 +0,0 @@
uid://drsg3aygmqy4e

View File

@ -1,22 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://dtgl0v3ev3l1o"]
[gd_scene load_steps=3 format=2]
[ext_resource type="Script" uid="uid://drsg3aygmqy4e" path="res://main.gd" id="1_0xm2m"]
[ext_resource type="AudioStream" uid="uid://dox2ltjurhp6q" path="res://new_line.wav" id="2_0xm2m"]
[ext_resource path="res://new_line.wav" type="AudioStream" id=1]
[ext_resource path="res://main.gd" type="Script" id=2]
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_0xm2m")
script = ExtResource( 2 )
[node name="Labels" type="Control" parent="."]
anchors_preset = 0
offset_right = 40.0
offset_bottom = 40.0
margin_right = 40.0
margin_bottom = 40.0
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("2_0xm2m")
volume_db = -23.72
stream = ExtResource( 1 )
volume_db = -23.056

View File

@ -1,14 +1,13 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://dox2ltjurhp6q"
path="res://.godot/imported/new_line.wav-dbe0aa9ef88d20f900089dd0f8df1eb9.sample"
type="AudioStreamSample"
path="res://.import/new_line.wav-dbe0aa9ef88d20f900089dd0f8df1eb9.sample"
[deps]
source_file="res://new_line.wav"
dest_files=["res://.godot/imported/new_line.wav-dbe0aa9ef88d20f900089dd0f8df1eb9.sample"]
dest_files=[ "res://.import/new_line.wav-dbe0aa9ef88d20f900089dd0f8df1eb9.sample" ]
[params]
@ -21,4 +20,4 @@ edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
compress/mode=0

View File

@ -1,14 +1,13 @@
[remap]
importer="wav"
type="AudioStreamWAV"
uid="uid://2odedxbolgoj"
path="res://.godot/imported/plop.wav-2f0fd709d6f75c10aa7f3c6071ab150d.sample"
type="AudioStreamSample"
path="res://.import/plop.wav-2f0fd709d6f75c10aa7f3c6071ab150d.sample"
[deps]
source_file="res://plop.wav"
dest_files=["res://.godot/imported/plop.wav-2f0fd709d6f75c10aa7f3c6071ab150d.sample"]
dest_files=[ "res://.import/plop.wav-2f0fd709d6f75c10aa7f3c6071ab150d.sample" ]
[params]
@ -21,4 +20,4 @@ edit/normalize=false
edit/loop_mode=0
edit/loop_begin=0
edit/loop_end=-1
compress/mode=2
compress/mode=0

View File

@ -6,23 +6,46 @@
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
config_version=4
_global_script_classes=[ {
"base": "Control",
"class": "TypedLetter",
"language": "GDScript",
"path": "res://typed_letter.gd"
} ]
_global_script_class_icons={
"TypedLetter": ""
}
[application]
config/name="AgatheOS"
run/main_scene="uid://dtgl0v3ev3l1o"
config/features=PackedStringArray("4.5", "GL Compatibility")
config/icon="res://icon.svg"
config/name="Agathe Os"
run/main_scene="res://main.tscn"
boot_splash/show_image=false
boot_splash/fullsize=false
boot_splash/use_filter=false
config/icon="res://icon.png"
[display]
window/size/viewport_width=1024
window/size/viewport_height=600
window/size/mode=4
window/size/resizable=false
window/size/borderless=true
window/size/fullscreen=true
window/vsync/use_vsync=false
window/stretch/aspect="expand"
[gui]
common/drop_mouse_on_gui_input_disabled=true
[physics]
common/enable_pause_aware_picking=true
[rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
quality/driver/driver_name="GLES2"
vram_compression/import_etc=true
vram_compression/import_etc2=false
environment/default_environment="res://default_env.tres"

View File

@ -1,7 +1,7 @@
class_name TypedLetter
extends Control
@onready var label: Label = $Label
onready var label: Label = $Label
var letter_size := Vector2.ZERO
@ -13,10 +13,10 @@ func get_width() -> float:
func add_label(text: String) -> void:
label.text = text
letter_size = label.get_theme_font("font").get_string_size(label.text, HORIZONTAL_ALIGNMENT_LEFT, -1, label.get_theme_font_size("font_size"))
label.pivot_offset = letter_size / 2
letter_size = label.get_font("font").get_string_size(label.text)
label.rect_pivot_offset = letter_size / 2
$AnimationPlayer.play("spawn")
$AudioStreamPlayer.pitch_scale = randf_range(0.7, 1.7)
$AudioStreamPlayer.pitch_scale = 0.7 + randf()
$AudioStreamPlayer.play()
func delete_label() -> void:

View File

@ -1 +0,0 @@
uid://bk02reogr7lmi

View File

@ -1,185 +1,157 @@
[gd_scene load_steps=9 format=3 uid="uid://badfkx2cegbbh"]
[gd_scene load_steps=9 format=2]
[ext_resource type="Script" uid="uid://bk02reogr7lmi" path="res://typed_letter.gd" id="1_382cc"]
[ext_resource type="FontFile" uid="uid://4xh07bbhtmaf" path="res://OpenSans-Bold.ttf" id="2_s3pwu"]
[ext_resource type="AudioStream" uid="uid://2odedxbolgoj" path="res://plop.wav" id="3_hy1vi"]
[ext_resource type="AudioStream" uid="uid://3rauc5r5b2ox" path="res://delete.wav" id="4_4wxnc"]
[ext_resource path="res://typed_letter.gd" type="Script" id=1]
[ext_resource path="res://plop.wav" type="AudioStream" id=2]
[ext_resource path="res://delete.wav" type="AudioStream" id=3]
[ext_resource path="res://OpenSans-Bold.ttf" type="DynamicFontData" id=4]
[sub_resource type="Animation" id="Animation_i3osk"]
[sub_resource type="DynamicFont" id=1]
size = 100
font_data = ExtResource( 4 )
[sub_resource type="Animation" id=2]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Label:scale")
tracks/0/path = NodePath("Label:rect_scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [Vector2(1, 1)]
"values": [ Vector2( 1, 1 ) ]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Label:theme_override_colors/font_color")
tracks/1/path = NodePath("Label:custom_colors/font_color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [Color(1, 1, 1, 1)]
"values": [ Color( 1, 1, 1, 1 ) ]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Label:position")
tracks/2/path = NodePath("Label:rect_position")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [Vector2(0, 0)]
"values": [ Vector2( 0, 0 ) ]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Label:rotation")
tracks/3/path = NodePath("Label:rect_rotation")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"times": PoolRealArray( 0 ),
"transitions": PoolRealArray( 1 ),
"update": 0,
"values": [0.0]
"values": [ 0.0 ]
}
[sub_resource type="Animation" id="Animation_06tve"]
resource_name = "spawn"
length = 0.1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Label:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.06666667, 0.1),
"transitions": PackedFloat32Array(2.3784113, 0.28717464, 1),
"update": 0,
"values": [Vector2(0.4, 0.4), Vector2(1.2, 1.2), Vector2(1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Label:theme_override_colors/font_color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.06666667),
"transitions": PackedFloat32Array(2.3784113, 1),
"update": 0,
"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)]
}
[sub_resource type="Animation" id="Animation_4wxnc"]
[sub_resource type="Animation" id=4]
resource_name = "delete"
length = 1.5
tracks/0/type = "value"
tracks/0/path = NodePath("Label:rect_position")
tracks/0/interp = 2
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("Label:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(),
"transitions": PackedFloat32Array(),
"times": PoolRealArray( 0, 0.138872, 0.49812, 1.5 ),
"transitions": PoolRealArray( 0.965937, 1.03527, 1, 1 ),
"update": 0,
"values": []
"values": [ Vector2( 0, 0 ), Vector2( 32, -20 ), Vector2( 89, 171 ), Vector2( 196, 819 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Label:rect_rotation")
tracks/1/interp = 2
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("Label:theme_override_colors/font_color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 0.18, 1.1),
"transitions": PackedFloat32Array(1, 1, 1),
"times": PoolRealArray( 0, 0.138872, 0.49812, 1.5 ),
"transitions": PoolRealArray( 1, 1, 1, 1 ),
"update": 0,
"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)]
"values": [ 0.0, 13.1, 31.0, 44.1 ]
}
tracks/2/type = "value"
tracks/2/type = "method"
tracks/2/path = NodePath(".")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("Label:position")
tracks/2/interp = 2
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0, 0.14, 0.6, 1.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [Vector2(0, 0), Vector2(33, -19.999998), Vector2(89, 171), Vector2(132.99998, 648)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("Label:rotation")
tracks/3/interp = 2
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0, 0.14, 0.6, 1.5),
"transitions": PackedFloat32Array(1, 1, 1, 1),
"update": 0,
"values": [0.0, 0.21454777, 0.55489826, 0.69997525]
}
tracks/4/type = "method"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath(".")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(1.5),
"transitions": PackedFloat32Array(1),
"values": [{
"args": [],
"method": &"on_delete"
}]
"times": PoolRealArray( 1.5 ),
"transitions": PoolRealArray( 1 ),
"values": [ {
"args": [ ],
"method": "on_delete"
} ]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_02dvo"]
_data = {
&"RESET": SubResource("Animation_i3osk"),
&"delete": SubResource("Animation_4wxnc"),
&"spawn": SubResource("Animation_06tve")
[sub_resource type="Animation" id=3]
resource_name = "spawn"
length = 0.1
step = 0.01
tracks/0/type = "value"
tracks/0/path = NodePath("Label:rect_scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/keys = {
"times": PoolRealArray( 0, 0.06, 0.1 ),
"transitions": PoolRealArray( 1, 1, 1 ),
"update": 0,
"values": [ Vector2( 0, 0 ), Vector2( 1.2, 1.2 ), Vector2( 1, 1 ) ]
}
tracks/1/type = "value"
tracks/1/path = NodePath("Label:custom_colors/font_color")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/keys = {
"times": PoolRealArray( 0, 0.06 ),
"transitions": PoolRealArray( 1, 1 ),
"update": 0,
"values": [ Color( 1, 1, 1, 0 ), Color( 1, 1, 1, 1 ) ]
}
[node name="Root" type="Control"]
layout_mode = 3
anchors_preset = 0
offset_right = 70.0
offset_bottom = 165.0
script = ExtResource("1_382cc")
anchor_right = 1.0
anchor_bottom = 1.0
margin_right = -964.0
margin_bottom = -458.0
script = ExtResource( 1 )
[node name="Label" type="Label" parent="."]
layout_mode = 0
offset_right = 58.00009
offset_bottom = 137.00006
theme_override_colors/font_color = Color(1, 1, 1, 1)
theme_override_fonts/font = ExtResource("2_s3pwu")
theme_override_font_sizes/font_size = 100
margin_right = 58.0005
margin_bottom = 137.001
custom_colors/font_color = Color( 1, 1, 1, 1 )
custom_fonts/font = SubResource( 1 )
text = "T"
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_02dvo")
}
anims/RESET = SubResource( 2 )
anims/delete = SubResource( 4 )
anims/spawn = SubResource( 3 )
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
stream = ExtResource("3_hy1vi")
stream = ExtResource( 2 )
[node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="."]
stream = ExtResource("4_4wxnc")
stream = ExtResource( 3 )