frame-of-mind/src/logic-scenes/board/empty_sticky_note_panel.gd

51 lines
1.9 KiB
GDScript3
Raw Normal View History

2023-09-23 14:19:58 +00:00
class_name PostItPanel
extends Panel
var stored_costum_minimum_size:Vector2
2023-10-12 16:25:21 +00:00
var attatched_sticky_note: StickyNote
@onready var ancor = $"sticky-note_anchor"
2023-09-23 14:19:58 +00:00
func _ready():
stored_costum_minimum_size = custom_minimum_size
ancor.position = Vector2(ancor.position.x, 0)
custom_minimum_size = Vector2(custom_minimum_size.x, 0)
2023-10-12 16:25:21 +00:00
func attatch_sticky_note(attatchment: StickyNote, tween:bool = true):
2023-09-23 14:19:58 +00:00
attatchment.on_board = false
if tween:
var height_tween: Tween = create_tween()
height_tween.tween_property(self, "custom_minimum_size", stored_costum_minimum_size, 0.3)
height_tween.tween_property(ancor, "position", Vector2(ancor.position.x, stored_costum_minimum_size.y/2), 0.3)
attatchment.tween_transform_to(ancor.global_position)
await attatchment.transform_tween_finished
2023-10-12 16:25:21 +00:00
else:
custom_minimum_size = stored_costum_minimum_size
2023-09-23 14:19:58 +00:00
attatchment.reparent(self)
2023-10-12 16:25:21 +00:00
attatched_sticky_note = attatchment
2023-09-23 14:19:58 +00:00
attatchment.owner = self.owner
attatchment.attatched_to = self
2023-10-12 16:25:21 +00:00
attatchment.transform = ancor.transform
2023-09-23 14:19:58 +00:00
2023-10-12 16:25:21 +00:00
func reclaim_sticky_note():
if is_empty():
2023-10-12 16:25:21 +00:00
attatched_sticky_note.on_board = false
attatched_sticky_note.tween_transform_to(ancor.global_position)
await attatched_sticky_note.transform_tween_finished
attatched_sticky_note.reparent(self)
attatched_sticky_note.owner = self.owner
2023-10-12 16:25:21 +00:00
func clear_if_empty():
if !is_empty(): return
if attatched_sticky_note.attatched_to == self: attatched_sticky_note.attatched_to = null
2023-09-23 14:19:58 +00:00
var height_tween: Tween = create_tween()
height_tween.tween_property(self, "custom_minimum_size", Vector2.ZERO, 0.3)
await height_tween.finished
self.free()
2023-10-12 16:25:21 +00:00
func replace_sticky_note_with(new_sticky_note: StickyNote):
if is_empty():
2023-10-12 16:25:21 +00:00
attatched_sticky_note = new_sticky_note
2023-10-12 16:25:21 +00:00
func is_empty() -> bool:
return ancor.get_child_count() == 0