|
@@ -3,8 +3,6 @@ extends Node2D
|
|
# Manage slide cycling
|
|
# Manage slide cycling
|
|
|
|
|
|
|
|
|
|
-signal new_focus(pos: Vector2, scale: float, trans: Focus.Transit)
|
|
|
|
-
|
|
|
|
const VOID_SLIDE_ID := -1
|
|
const VOID_SLIDE_ID := -1
|
|
|
|
|
|
@export_group("Slide management")
|
|
@export_group("Slide management")
|
|
@@ -20,6 +18,7 @@ const VOID_SLIDE_ID := -1
|
|
var current_id := VOID_SLIDE_ID
|
|
var current_id := VOID_SLIDE_ID
|
|
var current_slide: Slide
|
|
var current_slide: Slide
|
|
|
|
|
|
|
|
+@onready var focus: Focus = $"../Focus"
|
|
@onready var slides: Array = get_children()
|
|
@onready var slides: Array = get_children()
|
|
|
|
|
|
|
|
|
|
@@ -60,7 +59,7 @@ func next_slide_at(next_id: int, trans: Focus.Transit) -> void:
|
|
|
|
|
|
func _focus_slide(id: int, trans: Focus.Transit) -> Slide:
|
|
func _focus_slide(id: int, trans: Focus.Transit) -> Slide:
|
|
var slide: Slide = slides[id]
|
|
var slide: Slide = slides[id]
|
|
- new_focus.emit(slide.get_center(), slide.get_scale().x, trans)
|
|
|
|
|
|
+ focus.focus_on(slide.get_center(), slide.get_scale().x, trans)
|
|
return slide
|
|
return slide
|
|
|
|
|
|
|
|
|
|
@@ -91,6 +90,7 @@ func _enforce() -> void:
|
|
|
|
|
|
|
|
|
|
func _enforce_parameters() -> void:
|
|
func _enforce_parameters() -> void:
|
|
|
|
+ assert(focus, "A Focus node must be next to the Show node")
|
|
assert(start_slide >= 0,
|
|
assert(start_slide >= 0,
|
|
"Negative index is not supported for start_slide")
|
|
"Negative index is not supported for start_slide")
|
|
assert(start_slide < slides.size(),
|
|
assert(start_slide < slides.size(),
|