feat: animated GIF covers with config toggle and focus-based pausing
All checks were successful
Build plugin / build (push) Successful in 1m8s

- Add settings menu with 'Animate GIF covers' toggle (default: off)
- When enabled: extract all GIF frames via ffmpeg, build AnimatedTexture
- When disabled: extract first frame only (static ImageTexture)
- AnimatedTexture starts paused — unpauses only when card has focus
- Focus-based pausing via gui_focus_changed signal (walks up to GameCard)
- Parse GIF89a frame delays for accurate animation speed
- Cache invalidation when setting changes (no restart needed)
- Cache AnimatedTextures in memory to avoid re-extraction
- Bump to v0.1.13
This commit is contained in:
Jose Falanga 2026-08-19 21:11:04 -03:00
parent 9be6847f14
commit 208dc58f28
5 changed files with 308 additions and 59 deletions

View file

@ -6,6 +6,7 @@ extends Plugin
## Requires the itch.io library plugin to populate LibraryItem metadata.
var icon := preload("res://plugins/itch-artprovider/assets/itch.svg")
var _settings_scene := load("res://plugins/itch-artprovider/core/artprovider_settings.tscn") as PackedScene
func _ready() -> void:
@ -13,3 +14,7 @@ func _ready() -> void:
var boxart_provider: BoxArtProvider = load("res://plugins/itch-artprovider/core/boxart_itch.tscn").instantiate()
add_child(boxart_provider)
logger.info("itch.io Art Provider loaded")
func get_settings_menu() -> Control:
return _settings_scene.instantiate()