2022-12-10 05:06:01 +01:00
|
|
|
function __initCollection() {
|
2022-01-13 05:24:03 +01:00
|
|
|
log_message("COLLECTION", "init");
|
|
|
|
|
|
|
|
globalvar COLLECTIONS;
|
2022-01-25 04:05:30 +01:00
|
|
|
COLLECTIONS = -1;
|
2022-01-13 05:24:03 +01:00
|
|
|
|
2022-09-27 06:37:28 +02:00
|
|
|
var root = DIRECTORY + "Collections";
|
|
|
|
if(!directory_exists(root))
|
|
|
|
directory_create(root);
|
|
|
|
|
2022-12-10 05:06:01 +01:00
|
|
|
var _l = root + "\\_coll" + string(VERSION);
|
2022-01-13 05:24:03 +01:00
|
|
|
if(!file_exists(_l)) {
|
|
|
|
log_message("COLLECTION", "unzipping new collection to DIRECTORY.");
|
|
|
|
var f = file_text_open_write(_l);
|
|
|
|
file_text_write_real(f, 0);
|
|
|
|
file_text_close(f);
|
|
|
|
|
2022-12-10 05:06:01 +01:00
|
|
|
zip_unzip("data/Collections.zip", root);
|
2022-01-13 05:24:03 +01:00
|
|
|
}
|
|
|
|
|
2022-01-25 10:58:11 +01:00
|
|
|
refreshCollections();
|
2022-01-13 05:24:03 +01:00
|
|
|
}
|
|
|
|
|
2022-01-25 10:58:11 +01:00
|
|
|
function refreshCollections() {
|
2022-01-13 05:24:03 +01:00
|
|
|
log_message("COLLECTION", "refreshing collection base folder.");
|
|
|
|
|
2022-01-25 04:05:30 +01:00
|
|
|
COLLECTIONS = new DirectoryObject("Collections", DIRECTORY + "Collections");
|
2022-09-27 06:37:28 +02:00
|
|
|
COLLECTIONS.scan([".json", ".pxcc"]);
|
2022-01-25 04:05:30 +01:00
|
|
|
COLLECTIONS.open = true;
|
2022-01-25 10:58:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
function searchCollection(_list, _search_str, _claer_list = true) {
|
|
|
|
if(_claer_list)
|
|
|
|
ds_list_clear(_list);
|
|
|
|
|
|
|
|
if(_search_str == "") return;
|
|
|
|
var search_lower = string_lower(_search_str);
|
|
|
|
|
|
|
|
var st = ds_stack_create();
|
|
|
|
ds_stack_push(st, COLLECTIONS);
|
|
|
|
|
|
|
|
while(!ds_stack_empty(st)) {
|
|
|
|
var _st = ds_stack_pop(st);
|
|
|
|
for( var i = 0; i < ds_list_size(_st.content); i++ ) {
|
|
|
|
var _nd = _st.content[| i];
|
|
|
|
|
|
|
|
var match = string_pos(search_lower, string_lower(_nd.name)) > 0;
|
2023-01-01 02:06:02 +01:00
|
|
|
if(!match) continue;
|
|
|
|
|
|
|
|
ds_list_add(_list, _nd);
|
2022-01-25 10:58:11 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
for( var i = 0; i < ds_list_size(_st.subDir); i++ ) {
|
|
|
|
ds_stack_push(st, _st.subDir[| i]);
|
|
|
|
}
|
|
|
|
}
|
2022-09-27 06:37:28 +02:00
|
|
|
|
2022-01-25 10:58:11 +01:00
|
|
|
ds_stack_destroy(st);
|
2022-01-13 05:24:03 +01:00
|
|
|
}
|