2021-12-12 17:04:17 +01:00
tool
extends Resource
class_name SummerDayDocument
2022-01-01 12:55:02 +01:00
signal resolution_changed ( new_resolution )
2021-12-21 21:40:04 +01:00
signal track_added ( track )
2021-12-31 17:22:58 +01:00
signal track_deleted ( track ) # Not used yet. Implement please.
2021-12-21 21:40:04 +01:00
2022-01-01 12:55:02 +01:00
export ( Vector2 ) var resolution = Vector2 ( 1920 , 1080 ) setget _set_resolution
2021-12-15 20:58:46 +01:00
export ( Array , Resource ) var tracks
2022-01-01 12:55:02 +01:00
var raw_aspect_ratio setget , _get_raw_aspect_ratio
2022-01-03 23:53:28 +01:00
var selected_track
2021-12-15 20:58:46 +01:00
2022-01-03 23:53:28 +01:00
func setup ( ) :
2021-12-26 11:39:56 +01:00
for track in tracks :
2022-01-03 23:53:28 +01:00
selected_track = track
2021-12-26 11:39:56 +01:00
emit_signal ( " track_added " , track )
2022-01-03 23:53:28 +01:00
update_interaction_hint ( )
2021-12-26 11:39:56 +01:00
2021-12-19 22:26:09 +01:00
func add_track ( blueprint : SummerDayBlueprint ) :
2021-12-15 20:58:46 +01:00
var track = SummerDayTrack . new ( )
2022-01-09 17:34:26 +01:00
2021-12-15 20:58:46 +01:00
track . blueprint = blueprint
2022-01-09 17:34:26 +01:00
var table : = SummerDayTable . new ( )
table . allocation_size = blueprint . get_allocation_size ( )
table . create ( )
track . table = table
2021-12-19 22:26:09 +01:00
track . add_cell ( 0 )
2021-12-15 20:58:46 +01:00
tracks . append ( track )
2022-01-03 23:53:28 +01:00
selected_track = track
2021-12-21 21:40:04 +01:00
emit_signal ( " track_added " , track )
2021-12-12 17:04:17 +01:00
2022-01-01 12:55:02 +01:00
func create_scene ( ) - > SummerDayScene :
2021-12-12 17:04:17 +01:00
var _scene = SummerDayScene . new ( )
_scene . resource_path = " res://production/test/scene_001.tres "
2022-01-01 12:55:02 +01:00
_scene . resolution = Vector2 ( 12.0 , 9.0 )
2021-12-12 17:04:17 +01:00
return _scene
2022-01-01 12:55:02 +01:00
2022-01-03 23:53:28 +01:00
func update_interaction_hint ( ) :
if selected_track :
selected_track . update_interaction_hint ( )
2022-01-01 12:55:02 +01:00
func _set_resolution ( new_resolution ) :
var handled_resolution = Vector2 ( )
# Don't let the components drop below 0.01!
if new_resolution . x < = 0.01 :
handled_resolution . x = 0.01
else :
handled_resolution . x = new_resolution . x
if new_resolution . y < = 0.01 :
handled_resolution . y = 0.01
else :
handled_resolution . y = new_resolution . y
resolution = handled_resolution
emit_signal ( " resolution_changed " , resolution )
func _get_raw_aspect_ratio ( ) :
return resolution . x / resolution . y