load groups meta
This commit is contained in:
@ -6,5 +6,6 @@ class_name GroupMetadata
|
||||
@export var description: String
|
||||
@export var installs: Array[InstallMetadata]
|
||||
@export var settings_overrides: Dictionary
|
||||
@export var index: int
|
||||
|
||||
signal save_request
|
||||
|
@ -11,6 +11,15 @@ var groups: Dictionary = {}
|
||||
func _ready() -> void:
|
||||
DirAccess.make_dir_absolute(GROUPS_BASE_FOLDER)
|
||||
|
||||
var d := DirAccess.open(GROUPS_BASE_FOLDER)
|
||||
d.list_dir_begin()
|
||||
var current_folder := d.get_next()
|
||||
while current_folder != "":
|
||||
var res_path := GROUPS_BASE_FOLDER.path_join(current_folder).path_join(METADATA_FILENAME)
|
||||
var gm: GroupMetadata = ResourceLoader.load(res_path, "GroupMetadata")
|
||||
groups[gm] = current_folder
|
||||
current_folder = d.get_next()
|
||||
|
||||
|
||||
func create_group_folder(gm: GroupMetadata) -> void:
|
||||
if gm in groups:
|
||||
@ -38,3 +47,13 @@ func group_metadata_should_save(gm: GroupMetadata) -> void:
|
||||
var save_err := ResourceSaver.save(gm, path)
|
||||
if save_err != OK:
|
||||
print("couldn't save resource, error ", save_err)
|
||||
|
||||
|
||||
func get_all_group_metadatas() -> Array[GroupMetadata]:
|
||||
var res: Array[GroupMetadata]
|
||||
res.assign(groups.keys())
|
||||
res.sort_custom(
|
||||
func(a: GroupMetadata, b: GroupMetadata):
|
||||
return a.index < b.index
|
||||
)
|
||||
return res
|
||||
|
Reference in New Issue
Block a user