improve ui, bug fix and update assets

This commit is contained in:
2026-06-04 23:33:52 +02:00
parent 34ffced619
commit 5ffd92c26b
72 changed files with 1276 additions and 144 deletions

View File

@@ -23,17 +23,20 @@ func _ready():
func _on_pressed() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.PUNCH_IN):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.punch_in(self)
func _on_mouse_entered() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.BREATHE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.breathe(self, 1)
func _on_mouse_exited() -> void:
TweenFX.stop(self, TweenFX.Animations.BREATHE)
scale = Vector2(1, 1)
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0

View File

@@ -19,6 +19,7 @@ func _ready():
TweenFX.breathe(self, 1)
func _on_pressed() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.PRESS_ROTATE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.press_rotate(self)

View File

@@ -29,6 +29,9 @@ func select() -> void:
return
selected = true
$%Border.color.a = 1
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.press_rotate(self)
@@ -40,12 +43,13 @@ func deselect() -> void:
func _on_mouse_entered() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.BREATHE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.breathe(self, 1)
func _on_mouse_exited() -> void:
TweenFX.stop(self, TweenFX.Animations.BREATHE)
scale = Vector2(1, 1)
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0

View File

@@ -2,7 +2,7 @@ extends Control
@onready var tabs: Array[GameMenuTab] = [$%Tab1, $%Tab2, $%Tab3]
@onready var pages: Array[GameMenuPage] = [$%Page1, $%Page2, $%Page3]
var current_index = 0
func _ready() -> void:
for tab: GameMenuTab in tabs:
@@ -27,3 +27,7 @@ func on_tab_pressed(index: int, disable_animation: bool = false) -> void:
tab.deselect()
pages[index].show_page()
current_index = index
func open() -> void:
pages[current_index].show_page()

View File

@@ -16,8 +16,14 @@ func _on_photo_highlighted(texture: Texture) -> void:
photo.setup(texture)
var is_closing: bool = false
func _on_panel_gui_input(event: InputEvent) -> void:
if is_closing:
return
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT and event.pressed:
is_closing = true
await TweenFX.fold_out(photo).finished
photo.texture_rect.texture = null
hide()
is_closing = false

View File

@@ -13,17 +13,20 @@ func _ready():
func _on_pressed() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.PUNCH_IN):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.punch_in(self)
func _on_mouse_entered() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.BREATHE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.breathe(self, 1)
func _on_mouse_exited() -> void:
TweenFX.stop(self, TweenFX.Animations.BREATHE)
scale = Vector2(1, 1)
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0

View File

@@ -2,6 +2,8 @@ extends Control
class_name GameMenuPage
func _ready() -> void:
GameState.on_game_resumed.connect(_on_game_resumed)
func show_page() -> void:
var tweens = find_children("*", "ContainerTween", true, false)
@@ -11,4 +13,12 @@ func show_page() -> void:
func hide_page() -> void:
var tweens = find_children("*", "ContainerTween", true, false)
for tween in tweens:
tween.stop_tween()
hide()
func _on_game_resumed() -> void:
var tweens = find_children("*", "ContainerTween", true, false)
for tween in tweens:
tween.stop_tween()

View File

@@ -12,19 +12,22 @@ func setup(texture: Texture) -> void:
func _on_pressed() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.PUNCH_IN):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.punch_in(self)
GameState.on_photo_highlighted.emit(texture_rect.texture)
func _on_mouse_entered() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.BREATHE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.breathe(self, 1)
func _on_mouse_exited() -> void:
TweenFX.stop(self, TweenFX.Animations.BREATHE)
scale = Vector2(1, 1)
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2ft1kea45hec"
path="res://.godot/imported/button_audio_next.png-17e91d5e4df00a576a14bcd4d3696d32.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_audio_next.png"
dest_files=["res://.godot/imported/button_audio_next.png-17e91d5e4df00a576a14bcd4d3696d32.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 767 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dbxhxvvg4s8ru"
path="res://.godot/imported/button_audio_off.png-617d21714200dc3a38b43c8cba95a132.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_audio_off.png"
dest_files=["res://.godot/imported/button_audio_off.png-617d21714200dc3a38b43c8cba95a132.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b0mir57askv7j"
path="res://.godot/imported/button_audio_on.png-dd086d7a5c226f69ac7b3cfbadd7154e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_audio_on.png"
dest_files=["res://.godot/imported/button_audio_on.png-dd086d7a5c226f69ac7b3cfbadd7154e.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://vx7wa6afj4ri"
path="res://.godot/imported/button_audio_pause.png-2a8a35733bc746b9a958a2941115243f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_audio_pause.png"
dest_files=["res://.godot/imported/button_audio_pause.png-2a8a35733bc746b9a958a2941115243f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bdnevc7ewu5qe"
path="res://.godot/imported/button_audio_play.png-4965b6c3221c73f6a58fb05bdcbe0268.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_audio_play.png"
dest_files=["res://.godot/imported/button_audio_play.png-4965b6c3221c73f6a58fb05bdcbe0268.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 774 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cqx45c744325t"
path="res://.godot/imported/button_audio_previous.png-375059d79d180148465016932aa2ac12.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_audio_previous.png"
dest_files=["res://.godot/imported/button_audio_previous.png-375059d79d180148465016932aa2ac12.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 761 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://24p0rdm86cn"
path="res://.godot/imported/button_chrono_day.png-3ddab67e694789d130ce50061a39b5d1.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_chrono_day.png"
dest_files=["res://.godot/imported/button_chrono_day.png-3ddab67e694789d130ce50061a39b5d1.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bkos5j6dwqcxw"
path="res://.godot/imported/button_chrono_night.png-279ca6caeb4f12cca476e354c7bf9592.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_chrono_night.png"
dest_files=["res://.godot/imported/button_chrono_night.png-279ca6caeb4f12cca476e354c7bf9592.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 758 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ccylkmwm2nb6q"
path="res://.godot/imported/button_chrono_sunset.png-ad73e6ff3e1c7574edbfaaefec144dc3.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_chrono_sunset.png"
dest_files=["res://.godot/imported/button_chrono_sunset.png-ad73e6ff3e1c7574edbfaaefec144dc3.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 834 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dttoiuq4lgq5j"
path="res://.godot/imported/button_collection.png-ae0e910fcc941043f54433a1f0e4609f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_collection.png"
dest_files=["res://.godot/imported/button_collection.png-ae0e910fcc941043f54433a1f0e4609f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ji0nb7x1s1it"
path="res://.godot/imported/button_collection02.png-67f98ad7a50d033fba466aaebfe77c8a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_collection02.png"
dest_files=["res://.godot/imported/button_collection02.png-67f98ad7a50d033fba466aaebfe77c8a.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 832 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b03si5ir3ypp7"
path="res://.godot/imported/button_collection03.png-381f22d69b1c3c89a36a638f90c7e1b8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_collection03.png"
dest_files=["res://.godot/imported/button_collection03.png-381f22d69b1c3c89a36a638f90c7e1b8.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://y12wqk2bkoi1"
path="res://.godot/imported/button_daynightcycle.png-69e795b664a9071e6c4105b5e25c7abb.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_daynightcycle.png"
dest_files=["res://.godot/imported/button_daynightcycle.png-69e795b664a9071e6c4105b5e25c7abb.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1n3paucfsovj"
path="res://.godot/imported/button_photomode.png-e79e3abf7716dd24a1f28b0a376d6d0c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_photomode.png"
dest_files=["res://.godot/imported/button_photomode.png-e79e3abf7716dd24a1f28b0a376d6d0c.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

View File

@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dldg826x1kkoe"
path="res://.godot/imported/weather_test.png-b32f5910d510365f593b180d50dbe815.ctex"
uid="uid://tex06svipyg4"
path="res://.godot/imported/button_random.png-9547902e723e6a3090929d4a2dc77f8b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/weather_test.png"
dest_files=["res://.godot/imported/weather_test.png-b32f5910d510365f593b180d50dbe815.ctex"]
source_file="res://core/main_scene_ui/assets/button_random.png"
dest_files=["res://.godot/imported/button_random.png-9547902e723e6a3090929d4a2dc77f8b.ctex"]
[params]

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7h2kc3o86rv2"
path="res://.godot/imported/button_settings.png-4b0bceeed668262e532274c5605aa203.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_settings.png"
dest_files=["res://.godot/imported/button_settings.png-4b0bceeed668262e532274c5605aa203.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cc6e2piksgv1a"
path="res://.godot/imported/button_weather01.png-45c952f33be70e18ae06c81b25bb5311.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather01.png"
dest_files=["res://.godot/imported/button_weather01.png-45c952f33be70e18ae06c81b25bb5311.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 789 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ddqmcpt506ruu"
path="res://.godot/imported/button_weather02.png-438e6a2cb8ecac072d8406dba53e4725.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather02.png"
dest_files=["res://.godot/imported/button_weather02.png-438e6a2cb8ecac072d8406dba53e4725.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 795 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bk457dlo13pvq"
path="res://.godot/imported/button_weather03.png-7a61a3418c243ea64b4dbe1fe4365ad5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather03.png"
dest_files=["res://.godot/imported/button_weather03.png-7a61a3418c243ea64b4dbe1fe4365ad5.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 796 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b4t4nvejvi0su"
path="res://.godot/imported/button_weather_norain.png-aafd2f4eb9233cb124ffde569b090995.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_norain.png"
dest_files=["res://.godot/imported/button_weather_norain.png-aafd2f4eb9233cb124ffde569b090995.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://blttomjog2rin"
path="res://.godot/imported/button_weather_nosnow.png-f785f119d06ab4f6ebc8ea0a703ab5a8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_nosnow.png"
dest_files=["res://.godot/imported/button_weather_nosnow.png-f785f119d06ab4f6ebc8ea0a703ab5a8.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://wxla636wypht"
path="res://.godot/imported/button_weather_nostorm.png-59c73c738aca40c077a482fcd8f1cc82.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_nostorm.png"
dest_files=["res://.godot/imported/button_weather_nostorm.png-59c73c738aca40c077a482fcd8f1cc82.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cq65xyg4wsctm"
path="res://.godot/imported/button_weather_nowind.png-eec1a3778177627578aa9a848b91510f.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_nowind.png"
dest_files=["res://.godot/imported/button_weather_nowind.png-eec1a3778177627578aa9a848b91510f.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 763 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3v43kog5fwnf"
path="res://.godot/imported/button_weather_rain.png-c28920c6aeaadbecbc2899642985b531.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_rain.png"
dest_files=["res://.godot/imported/button_weather_rain.png-c28920c6aeaadbecbc2899642985b531.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bj0idkr7kd4ik"
path="res://.godot/imported/button_weather_snow.png-bfe291ef9c63ee26967e0823c2fd2e00.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_snow.png"
dest_files=["res://.godot/imported/button_weather_snow.png-bfe291ef9c63ee26967e0823c2fd2e00.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c7tkn1gj7iuqp"
path="res://.godot/imported/button_weather_storm.png-c0c12dd635b15f28517e2e9a84ff9013.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_storm.png"
dest_files=["res://.godot/imported/button_weather_storm.png-c0c12dd635b15f28517e2e9a84ff9013.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 KiB

View File

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://k75acvihjf1h"
path="res://.godot/imported/button_weather_wind.png-c5acdd549bb67bda7f41f85149b9ea88.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://core/main_scene_ui/assets/button_weather_wind.png"
dest_files=["res://.godot/imported/button_weather_wind.png-c5acdd549bb67bda7f41f85149b9ea88.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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 162 KiB

View File

@@ -19,22 +19,26 @@ func _ready() -> void:
radio.track_changed.connect(_on_radio_track_changed)
if radio.stream and radio.stream.resource_path:
track_label.text = radio.stream.resource_path.get_file().get_basename().capitalize()
play_pause_icon_button.image = play_pause_icon_button.images[1]
else:
track_label.text = "Unknown Track"
func _on_radio_track_changed(track_name: String) -> void:
track_label.text = track_name
play_pause_icon_button.image = play_pause_icon_button.images[1]
func _on_prev_track_icon_button_pressed() -> void:
if radio:
radio.prev_track()
func _on_play_pause_icon_button_pressed() -> void:
radio.toggle_pause()
#if radio.stream_paused:
#button_pause_resume.text = "Resume"
#else:
#button_pause_resume.text = "Pause"
if radio:
if radio.stream:
radio.toggle_pause()
else:
radio.next_track()
var play_pause_index = 0 if radio.stream_paused else 1
play_pause_icon_button.image = play_pause_icon_button.images[play_pause_index]
func _on_next_track_icon_button_pressed() -> void:
if radio:

View File

@@ -2,6 +2,12 @@
[ext_resource type="Script" uid="uid://c4kekqicrv4m8" path="res://core/main_scene_ui/audio_player.gd" id="1_i2mrl"]
[ext_resource type="PackedScene" uid="uid://2tqofxxxnvhv" path="res://core/main_scene_ui/icon_button.tscn" id="1_ucnyb"]
[ext_resource type="Texture2D" uid="uid://cqx45c744325t" path="res://core/main_scene_ui/assets/button_audio_previous.png" id="3_netjv"]
[ext_resource type="Texture2D" uid="uid://bdnevc7ewu5qe" path="res://core/main_scene_ui/assets/button_audio_play.png" id="4_urwwp"]
[ext_resource type="Texture2D" uid="uid://d2ft1kea45hec" path="res://core/main_scene_ui/assets/button_audio_next.png" id="5_0koyu"]
[ext_resource type="Texture2D" uid="uid://vx7wa6afj4ri" path="res://core/main_scene_ui/assets/button_audio_pause.png" id="5_urwwp"]
[ext_resource type="Texture2D" uid="uid://b0mir57askv7j" path="res://core/main_scene_ui/assets/button_audio_on.png" id="6_xv7rp"]
[ext_resource type="Texture2D" uid="uid://dbxhxvvg4s8ru" path="res://core/main_scene_ui/assets/button_audio_off.png" id="7_7ib2x"]
[node name="AudioPlayer" type="Control" unique_id=425192018]
layout_mode = 3
@@ -28,7 +34,7 @@ unique_name_in_owner = true
layout_mode = 2
size_flags_horizontal = 4
theme_override_font_sizes/font_size = 24
text = "Test Test"
text = "Uknown Track"
horizontal_alignment = 1
vertical_alignment = 1
@@ -40,49 +46,52 @@ alignment = 1
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
image = ExtResource("3_netjv")
images = Array[Texture]([])
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(80, 80)
anchor_left = 0.0
anchor_top = 0.11538447
anchor_right = 1.0
anchor_bottom = 0.88461524
anchors_preset = -1
offset_left = 116.66667
offset_top = 122.14813
offset_top = 131.3789
offset_right = -116.666664
offset_bottom = -122.14813
offset_bottom = -131.3789
texture = ExtResource("3_netjv")
metadata/_edit_use_anchors_ = true
[node name="PlayPauseIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=1533336956 instance=ExtResource("1_ucnyb")]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
image = ExtResource("4_urwwp")
images = Array[Texture]([ExtResource("4_urwwp"), ExtResource("5_urwwp")])
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(80, 80)
anchor_left = 0.0
anchor_top = 0.11538447
anchor_right = 1.0
anchor_bottom = 0.88461524
anchors_preset = -1
offset_left = 116.66667
offset_top = 122.14813
offset_top = 131.3789
offset_right = -116.666664
offset_bottom = -122.14813
offset_bottom = -131.3789
texture = ExtResource("4_urwwp")
metadata/_edit_use_anchors_ = true
[node name="NextTrackIconButton" parent="HBoxContainer/VBoxContainer/IconButtonsRow" unique_id=2108379455 instance=ExtResource("1_ucnyb")]
unique_name_in_owner = true
custom_minimum_size = Vector2(80, 80)
layout_mode = 2
image = ExtResource("5_0koyu")
images = Array[Texture]([])
[node name="Texture" parent="HBoxContainer/VBoxContainer/IconButtonsRow/NextTrackIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(80, 80)
anchor_left = 0.0
anchor_top = 0.11538447
anchor_right = 1.0
anchor_bottom = 0.88461524
anchors_preset = -1
offset_left = 116.66667
offset_top = 122.14813
offset_top = 131.3789
offset_right = -116.666664
offset_bottom = -122.14813
offset_bottom = -131.3789
texture = ExtResource("5_0koyu")
metadata/_edit_use_anchors_ = true
[node name="VBoxContainer2" type="VBoxContainer" parent="HBoxContainer" unique_id=1843266535]
layout_mode = 2
@@ -94,17 +103,17 @@ custom_minimum_size = Vector2(40, 40)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 3
image = ExtResource("6_xv7rp")
images = Array[Texture]([])
[node name="Texture" parent="HBoxContainer/VBoxContainer2/IncreaseVolumeIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(40, 40)
anchor_left = 0.25
anchor_top = 0.35915482
anchor_right = 0.75
anchor_bottom = 0.64084494
offset_left = 96.66667
offset_top = 92.64813
offset_right = -96.666664
offset_bottom = -92.64813
offset_left = 106.66667
offset_top = 107.01433
offset_right = -106.666664
offset_bottom = -107.014336
texture = ExtResource("6_xv7rp")
metadata/_edit_use_anchors_ = true
[node name="DecreaseVolumeIconButton" parent="HBoxContainer/VBoxContainer2" unique_id=399629327 instance=ExtResource("1_ucnyb")]
unique_name_in_owner = true
@@ -112,17 +121,17 @@ custom_minimum_size = Vector2(40, 40)
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 3
image = ExtResource("7_7ib2x")
images = Array[Texture]([])
[node name="Texture" parent="HBoxContainer/VBoxContainer2/DecreaseVolumeIconButton" index="0" unique_id=1071359322]
custom_minimum_size = Vector2(40, 40)
anchor_left = 0.25
anchor_top = 0.35915482
anchor_right = 0.75
anchor_bottom = 0.64084494
offset_left = 96.66667
offset_top = 92.64813
offset_right = -96.666664
offset_bottom = -92.64813
offset_left = 106.66667
offset_top = 107.01433
offset_right = -106.666664
offset_bottom = -107.014336
texture = ExtResource("7_7ib2x")
metadata/_edit_use_anchors_ = true
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/PrevTrackIconButton"]
[editable path="HBoxContainer/VBoxContainer/IconButtonsRow/PlayPauseIconButton"]

View File

@@ -3,30 +3,33 @@ extends Button
class_name IconButton
@export var data: String
@export var image: Texture:
set(value):
image = value
if is_inside_tree() and has_node("%Texture"):
$%Texture.texture = image
@export var images: Array[Texture]
@export var apply_texture_on_selection: bool = true
@onready var mini_texture: TextureRect = $%MiniTexture
func _ready():
if image != null and has_node("%Texture"):
$%Texture.texture = image
func _on_mouse_entered() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.BREATHE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.breathe(self, 1)
func _on_mouse_exited() -> void:
TweenFX.stop(self, TweenFX.Animations.BREATHE)
scale = Vector2(1, 1)
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
func _on_pressed() -> void:
if TweenFX.is_playing(self, TweenFX.Animations.PRESS_ROTATE):
return
TweenFX.stop_all(self)
scale = Vector2.ONE
rotation = 0.0
TweenFX.press_rotate(self)

View File

@@ -1,7 +1,7 @@
[gd_scene format=3 uid="uid://2tqofxxxnvhv"]
[ext_resource type="Script" uid="uid://bpbgecvan0a5k" path="res://core/main_scene_ui/icon_button.gd" id="1_r8gxt"]
[ext_resource type="Texture2D" uid="uid://dldg826x1kkoe" path="res://core/main_scene_ui/assets/weather_test.png" id="1_upldh"]
[ext_resource type="Texture2D" uid="uid://bkos5j6dwqcxw" path="res://core/main_scene_ui/assets/button_chrono_night.png" id="3_6q6an"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_r8gxt"]
@@ -26,10 +26,10 @@
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_cxhgx"]
[node name="IconButton" type="Button" unique_id=1621140689]
custom_minimum_size = Vector2(160, 160)
custom_minimum_size = Vector2(80, 80)
anchors_preset = -1
anchor_right = 0.083333336
anchor_bottom = 0.14814815
anchor_right = 0.041666668
anchor_bottom = 0.074074075
pivot_offset_ratio = Vector2(0.5, 0.5)
theme_override_styles/normal = SubResource("StyleBoxEmpty_r8gxt")
theme_override_styles/normal_mirrored = SubResource("StyleBoxEmpty_6q6an")
@@ -43,36 +43,19 @@ theme_override_styles/disabled = SubResource("StyleBoxEmpty_ogiom")
theme_override_styles/disabled_mirrored = SubResource("StyleBoxEmpty_4beq1")
theme_override_styles/focus = SubResource("StyleBoxEmpty_cxhgx")
script = ExtResource("1_r8gxt")
image = ExtResource("1_upldh")
image = ExtResource("3_6q6an")
metadata/_edit_use_anchors_ = true
[node name="Texture" type="TextureRect" parent="." unique_id=1071359322]
unique_name_in_owner = true
custom_minimum_size = Vector2(160, 160)
custom_minimum_size = Vector2(80, 80)
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("1_upldh")
expand_mode = 1
[node name="MiniTexture" type="TextureRect" parent="." unique_id=65158044]
unique_name_in_owner = true
visible = false
custom_minimum_size = Vector2(32, 32)
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -32.0
offset_top = -32.0
grow_horizontal = 0
grow_vertical = 0
texture = ExtResource("1_upldh")
texture = ExtResource("3_6q6an")
expand_mode = 1
[connection signal="mouse_entered" from="." to="." method="_on_mouse_entered"]

View File

@@ -18,18 +18,19 @@ func _ready() -> void:
if i == 0:
category_icon_button = icon_button
icon_button.pressed.connect(on_category_icon_button_pressed)
icon_button.mini_texture.visible = true
else:
options_icon_buttons.append(icon_button)
icon_button.pressed.connect(on_icon_pressed_changed.bind(icon_button))
icon_button.mini_texture.visible = false
func on_icon_pressed_changed(in_icon_button: IconButton):
for icon_button in options_icon_buttons:
if icon_button == in_icon_button:
category_icon_button.mini_texture.texture = in_icon_button.image
if icon_button.apply_texture_on_selection:
category_icon_button.image = in_icon_button.image
category_icon_button.data = in_icon_button.data
on_option_changed.emit(icon_button.data)
if !icon_button.images.is_empty():
icon_button.image = icon_button.images[0] if icon_button.image == icon_button.images[1] else icon_button.images[1]
break
func on_category_icon_button_pressed() -> void:

View File

@@ -5,7 +5,8 @@
[ext_resource type="PackedScene" uid="uid://dxun0jk5t0n6" path="res://core/tween/container_tween.tscn" id="3_58qdb"]
[node name="IconButtonsRow" type="HBoxContainer" unique_id=1734127019]
custom_minimum_size = Vector2(800, 0)
offset_right = 80.0
offset_bottom = 80.0
size_flags_vertical = 3
script = ExtResource("1_xq3mw")

View File

@@ -1,6 +1,5 @@
extends Control
enum Weather {RAIN, SNOW}
@onready var game_menu: Control = $%GameMenu
@onready var game_menu_panel: Control = $%GameMenuPanel
@@ -35,6 +34,7 @@ func _on_menu_icon_button_pressed() -> void:
GameState.pause_game()
game_menu_panel.show()
game_menu.scale = Vector2(1, 1)
game_menu.open()
TweenFX.fold_in(game_menu)
func _on_photo_icon_button_pressed() -> void:
@@ -52,7 +52,6 @@ func _on_resume_button_pressed() -> void:
await tween.finished
game_menu_panel.hide()
GameState.resume_game()
GameState.on_game_menu_closed.emit()
func _on_time_of_day_row_on_option_changed(data: String) -> void:
match data:

View File

@@ -2,14 +2,30 @@
[ext_resource type="Script" uid="uid://bhad1id8jr8jw" path="res://core/main_scene_ui/main_scene_ui.gd" id="1_h43jo"]
[ext_resource type="PackedScene" uid="uid://ir8nke8o6ssm" path="res://core/main_scene_ui/icon_buttons_row.tscn" id="2_4cc8f"]
[ext_resource type="Texture2D" uid="uid://ccylkmwm2nb6q" path="res://core/main_scene_ui/assets/button_chrono_sunset.png" id="3_kd244"]
[ext_resource type="PackedScene" uid="uid://2tqofxxxnvhv" path="res://core/main_scene_ui/icon_button.tscn" id="3_t1xop"]
[ext_resource type="PackedScene" uid="uid://dqqm4o8j45tr6" path="res://core/game_menu/game_menu.tscn" id="4_jh36j"]
[ext_resource type="Texture2D" uid="uid://24p0rdm86cn" path="res://core/main_scene_ui/assets/button_chrono_day.png" id="4_lapqe"]
[ext_resource type="Texture2D" uid="uid://y12wqk2bkoi1" path="res://core/main_scene_ui/assets/button_daynightcycle.png" id="5_fjfwt"]
[ext_resource type="PackedScene" uid="uid://cpeyt1dgrtglc" path="res://core/radio/radio.tscn" id="5_nevjt"]
[ext_resource type="Texture2D" uid="uid://blttomjog2rin" path="res://core/main_scene_ui/assets/button_weather_nosnow.png" id="6_167gj"]
[ext_resource type="AudioStream" uid="uid://70cc8she43re" path="res://docs/gyms/radio/lofi_01.ogg" id="6_kd244"]
[ext_resource type="Texture2D" uid="uid://bj0idkr7kd4ik" path="res://core/main_scene_ui/assets/button_weather_snow.png" id="6_xykej"]
[ext_resource type="Texture2D" uid="uid://cc6e2piksgv1a" path="res://core/main_scene_ui/assets/button_weather01.png" id="6_yggu7"]
[ext_resource type="Texture2D" uid="uid://d3v43kog5fwnf" path="res://core/main_scene_ui/assets/button_weather_rain.png" id="7_jpmw5"]
[ext_resource type="PackedScene" uid="uid://dg4f3v0ukpmay" path="res://core/main_scene_ui/audio_player.tscn" id="7_lapqe"]
[ext_resource type="Texture2D" uid="uid://b4t4nvejvi0su" path="res://core/main_scene_ui/assets/button_weather_norain.png" id="8_c5e3i"]
[ext_resource type="Texture2D" uid="uid://c7tkn1gj7iuqp" path="res://core/main_scene_ui/assets/button_weather_storm.png" id="8_i1mwp"]
[ext_resource type="PackedScene" uid="uid://cifadwamy04ko" path="res://core/main_scene_ui/photo_taken.tscn" id="8_t1xop"]
[ext_resource type="Texture2D" uid="uid://dcsy5yawnlxhq" path="res://core/photo_mode/assets/reticolo.png" id="9_4cc8f"]
[ext_resource type="Texture2D" uid="uid://b7h2kc3o86rv2" path="res://core/main_scene_ui/assets/button_settings.png" id="10_6016m"]
[ext_resource type="Shader" uid="uid://dudbt51v33tt7" path="res://core/main_scene_ui/center_hole.gdshader" id="10_shader"]
[ext_resource type="Texture2D" uid="uid://wxla636wypht" path="res://core/main_scene_ui/assets/button_weather_nostorm.png" id="10_th1nj"]
[ext_resource type="Texture2D" uid="uid://k75acvihjf1h" path="res://core/main_scene_ui/assets/button_weather_wind.png" id="11_gcgq4"]
[ext_resource type="Texture2D" uid="uid://cq65xyg4wsctm" path="res://core/main_scene_ui/assets/button_weather_nowind.png" id="12_fjfwt"]
[ext_resource type="Texture2D" uid="uid://tex06svipyg4" path="res://core/main_scene_ui/assets/button_random.png" id="14_gcgq4"]
[ext_resource type="Texture2D" uid="uid://1n3paucfsovj" path="res://core/main_scene_ui/assets/button_photomode.png" id="15_th1nj"]
[ext_resource type="Texture2D" uid="uid://b03si5ir3ypp7" path="res://core/main_scene_ui/assets/button_collection03.png" id="19_yggu7"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_hole"]
shader = ExtResource("10_shader")
@@ -25,69 +41,94 @@ grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_h43jo")
[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=2071886807]
custom_minimum_size = Vector2(160, 320)
[node name="Rows" type="VBoxContainer" parent="." unique_id=2071886807]
custom_minimum_size = Vector2(80, 160)
layout_mode = 1
anchors_preset = 2
anchor_top = 1.0
anchor_bottom = 1.0
offset_top = -320.0
offset_right = 160.0
offset_top = -164.0
offset_right = 80.0
grow_vertical = 0
[node name="TimeOfDayRow" parent="VBoxContainer" unique_id=1734127019 instance=ExtResource("2_4cc8f")]
[node name="TimeOfDayRow" parent="Rows" unique_id=1734127019 instance=ExtResource("2_4cc8f")]
unique_name_in_owner = true
layout_mode = 2
[node name="IconButton2" parent="VBoxContainer/TimeOfDayRow" index="1" unique_id=638856991]
[node name="IconButton" parent="Rows/TimeOfDayRow" index="0" unique_id=1750448019]
apply_texture_on_selection = false
[node name="IconButton2" parent="Rows/TimeOfDayRow" index="1" unique_id=638856991]
data = "Sunrise"
image = ExtResource("3_kd244")
[node name="IconButton3" parent="VBoxContainer/TimeOfDayRow" index="2" unique_id=1662483962]
[node name="IconButton3" parent="Rows/TimeOfDayRow" index="2" unique_id=1662483962]
data = "Day"
image = ExtResource("4_lapqe")
[node name="IconButton4" parent="VBoxContainer/TimeOfDayRow" index="3" unique_id=1375190490]
[node name="IconButton4" parent="Rows/TimeOfDayRow" index="3" unique_id=1375190490]
data = "Night"
[node name="IconButton5" parent="VBoxContainer/TimeOfDayRow" index="4" unique_id=315412403]
[node name="IconButton5" parent="Rows/TimeOfDayRow" index="4" unique_id=315412403]
data = "Cycle"
image = ExtResource("5_fjfwt")
apply_texture_on_selection = false
[node name="ShowContainerTween" parent="VBoxContainer/TimeOfDayRow" index="5" unique_id=160227524]
[node name="ShowContainerTween" parent="Rows/TimeOfDayRow" index="5" unique_id=160227524]
tween_types = Array[String](["impact_land", "fade_in"])
[node name="HideContainerTween" parent="VBoxContainer/TimeOfDayRow" index="6" unique_id=1169748375]
[node name="HideContainerTween" parent="Rows/TimeOfDayRow" index="6" unique_id=1169748375]
tween_types = Array[String](["impact_land", "fade_out"])
[node name="WeatherRow" parent="VBoxContainer" unique_id=1803637359 instance=ExtResource("2_4cc8f")]
[node name="WeatherRow" parent="Rows" unique_id=1803637359 instance=ExtResource("2_4cc8f")]
unique_name_in_owner = true
layout_mode = 2
[node name="IconButton2" parent="VBoxContainer/WeatherRow" index="1" unique_id=638856991]
[node name="IconButton" parent="Rows/WeatherRow" index="0" unique_id=1750448019]
image = ExtResource("6_yggu7")
apply_texture_on_selection = false
[node name="IconButton2" parent="Rows/WeatherRow" index="1" unique_id=638856991]
data = "Snow"
image = ExtResource("6_xykej")
images = Array[Texture]([ExtResource("6_xykej"), ExtResource("6_167gj")])
apply_texture_on_selection = false
[node name="IconButton3" parent="VBoxContainer/WeatherRow" index="2" unique_id=1662483962]
[node name="IconButton3" parent="Rows/WeatherRow" index="2" unique_id=1662483962]
data = "Rain"
image = ExtResource("7_jpmw5")
images = Array[Texture]([ExtResource("7_jpmw5"), ExtResource("8_c5e3i")])
apply_texture_on_selection = false
[node name="IconButton4" parent="VBoxContainer/WeatherRow" index="3" unique_id=1375190490]
[node name="IconButton4" parent="Rows/WeatherRow" index="3" unique_id=1375190490]
data = "Storm"
image = ExtResource("8_i1mwp")
images = Array[Texture]([ExtResource("8_i1mwp"), ExtResource("10_th1nj")])
apply_texture_on_selection = false
[node name="IconButton5" parent="VBoxContainer/WeatherRow" index="4" unique_id=315412403]
[node name="IconButton5" parent="Rows/WeatherRow" index="4" unique_id=315412403]
data = "Wind"
image = ExtResource("11_gcgq4")
images = Array[Texture]([ExtResource("11_gcgq4"), ExtResource("12_fjfwt")])
apply_texture_on_selection = false
[node name="ShowContainerTween" parent="VBoxContainer/WeatherRow" index="5" unique_id=160227524 node_paths=PackedStringArray("targets")]
[node name="ShowContainerTween" parent="Rows/WeatherRow" index="5" unique_id=160227524 node_paths=PackedStringArray("targets")]
targets = [NodePath("../IconButton2"), NodePath("../IconButton3"), NodePath("../IconButton4"), NodePath("../IconButton5"), NodePath("../IconButton6")]
tween_types = Array[String](["impact_land", "fade_in"])
[node name="HideContainerTween" parent="VBoxContainer/WeatherRow" index="6" unique_id=1169748375 node_paths=PackedStringArray("targets")]
[node name="HideContainerTween" parent="Rows/WeatherRow" index="6" unique_id=1169748375 node_paths=PackedStringArray("targets")]
targets = [NodePath("../IconButton6"), NodePath("../IconButton5"), NodePath("../IconButton4"), NodePath("../IconButton3"), NodePath("../IconButton2")]
tween_types = Array[String](["impact_land", "fade_out"])
[node name="IconButton6" parent="VBoxContainer/WeatherRow" unique_id=218253485 instance=ExtResource("3_t1xop")]
[node name="IconButton6" parent="Rows/WeatherRow" unique_id=218253485 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
visible = false
layout_mode = 2
size_flags_horizontal = 0
size_flags_vertical = 3
data = "Random"
image = ExtResource("14_gcgq4")
apply_texture_on_selection = false
[node name="MenuIconButton" parent="." unique_id=707872474 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
@@ -96,8 +137,10 @@ anchors_preset = 1
anchor_left = 1.0
anchor_right = 1.0
anchor_bottom = 0.0
offset_left = -160.0
offset_left = -80.0
offset_bottom = 80.0
grow_horizontal = 0
image = ExtResource("10_6016m")
[node name="CollectionOptions" type="VBoxContainer" parent="." unique_id=542153805]
layout_mode = 1
@@ -115,19 +158,20 @@ grow_vertical = 2
[node name="PhotoIconButton" parent="CollectionOptions" unique_id=1863476241 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
layout_mode = 2
image = ExtResource("15_th1nj")
[node name="CollectibleIconButton" parent="CollectionOptions" unique_id=520235552 instance=ExtResource("3_t1xop")]
unique_name_in_owner = true
layout_mode = 2
image = ExtResource("19_yggu7")
[node name="AudioPlayer" parent="." unique_id=425192018 node_paths=PackedStringArray("radio") instance=ExtResource("7_lapqe")]
unique_name_in_owner = true
layout_mode = 1
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_top = 0.99814814
anchor_right = 1.0
anchor_bottom = 1.0
anchor_bottom = 0.99814814
offset_left = -146.0
offset_top = -57.0
offset_right = -146.0
@@ -203,11 +247,11 @@ grow_vertical = 2
[node name="Radio" parent="." unique_id=1234112225 instance=ExtResource("5_nevjt")]
playlist = Array[AudioStream]([ExtResource("6_kd244")])
[connection signal="on_option_changed" from="VBoxContainer/TimeOfDayRow" to="." method="_on_time_of_day_row_on_option_changed"]
[connection signal="on_option_changed" from="VBoxContainer/WeatherRow" to="." method="_on_weather_row_on_option_changed"]
[connection signal="on_option_changed" from="Rows/TimeOfDayRow" to="." method="_on_time_of_day_row_on_option_changed"]
[connection signal="on_option_changed" from="Rows/WeatherRow" to="." method="_on_weather_row_on_option_changed"]
[editable path="VBoxContainer/TimeOfDayRow"]
[editable path="VBoxContainer/WeatherRow"]
[editable path="Rows/TimeOfDayRow"]
[editable path="Rows/WeatherRow"]
[editable path="GameMenuPanel/GameMenu"]
[editable path="GameMenuPanel/GameMenu/Pages/Page3"]
[editable path="GameMenuPanel/GameMenu/Pages/Page3/OptionMenu"]

View File

@@ -20,6 +20,7 @@ enum AnimateOrder {
@export var show_on_start: bool = false
@export var hide_on_finish: bool = false
@export var reset_state_on_start: bool = true
@export var max_targets: int = 9
var _tween_generation: int = 0
var is_running: bool = false
@@ -51,6 +52,9 @@ func start_tween() -> void:
return
if is_instance_valid(target):
target.set_meta("pre_tween_mouse_filter", target.mouse_filter)
target.mouse_filter = Control.MOUSE_FILTER_IGNORE
if reset_state_on_start:
target.scale = Vector2.ONE
target.modulate.a = 1.0
@@ -74,6 +78,7 @@ func start_tween() -> void:
if current_gen == _tween_generation:
is_running = false
_restore_mouse_filters(sorted_targets)
finished.emit()
@@ -81,22 +86,31 @@ func stop_tween() -> void:
is_running = false
_tween_generation += 1
var current_targets: Array[Control] = _get_current_targets()
_restore_mouse_filters(current_targets)
for target in current_targets:
if is_instance_valid(target):
TweenFX.stop_all(target)
func _restore_mouse_filters(targets_array: Array[Control]) -> void:
for target in targets_array:
if is_instance_valid(target) and target.has_meta("pre_tween_mouse_filter"):
target.mouse_filter = target.get_meta("pre_tween_mouse_filter")
target.remove_meta("pre_tween_mouse_filter")
func _get_current_targets() -> Array[Control]:
if !targets.is_empty():
return targets.duplicate()
var current_targets: Array[Control] = []
if runtime_target_parent == null:
return current_targets
if not targets.is_empty():
current_targets = targets.duplicate()
elif runtime_target_parent != null:
for child in runtime_target_parent.get_children():
var target := child as Control
if target != null:
current_targets.append(target)
for child in runtime_target_parent.get_children():
var target := child as Control
if target != null:
current_targets.append(target)
if max_targets > 0 and current_targets.size() > max_targets:
return current_targets.slice(0, max_targets)
return current_targets