mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-11-10 12:34:06 +01:00
pref folder
This commit is contained in:
parent
3c4019c6ea
commit
d91d7e10ba
@ -42,6 +42,7 @@
|
||||
} else
|
||||
DIRECTORY = APP_DIRECTORY;
|
||||
|
||||
PREFERENCES_DIR = $"{DIRECTORY}Preferences\\{PREF_VERSION}\\";
|
||||
directory_verify(DIRECTORY);
|
||||
|
||||
APP_LOCATION = program_directory;
|
||||
|
@ -264,12 +264,12 @@ function hotkey_serialize() {
|
||||
}
|
||||
}
|
||||
|
||||
json_save_struct(DIRECTORY + "hotkeys.json", { context: _context, node: _node });
|
||||
json_save_struct(PREFERENCES_DIR + "hotkeys.json", { context: _context, node: _node });
|
||||
}
|
||||
|
||||
function hotkey_deserialize() {
|
||||
HOTKEYS_DATA = {};
|
||||
var path = DIRECTORY + "hotkeys.json";
|
||||
var path = PREFERENCES_DIR + "hotkeys.json";
|
||||
if(!file_exists(path)) return;
|
||||
|
||||
var map = json_load_struct(path);
|
||||
|
@ -583,8 +583,8 @@ function Node_Collection(_x, _y, _group = noone) : Node(_x, _y, _group) construc
|
||||
}
|
||||
|
||||
function getPreviewingNode() {
|
||||
var _oj = outputs[preview_channel];
|
||||
if(is_undefined(_oj)) return self;
|
||||
var _oj = array_safe_get(outputs, preview_channel, noone);
|
||||
if(_oj == noone) return self;
|
||||
|
||||
switch(_oj.type) {
|
||||
case VALUE_TYPE.d3Mesh :
|
||||
|
@ -1,5 +1,5 @@
|
||||
#region preference
|
||||
globalvar PREFERENCES, PREFERENCES_DEF, HOTKEYS_DATA;
|
||||
globalvar PREFERENCES, PREFERENCES_DEF, HOTKEYS_DATA, PREFERENCES_DIR;
|
||||
PREFERENCES = {};
|
||||
HOTKEYS_DATA = {};
|
||||
|
||||
@ -241,24 +241,67 @@
|
||||
#endregion
|
||||
|
||||
#region save load
|
||||
globalvar PREF_VERSION, PREF_UPDATES;
|
||||
PREF_VERSION = 1_17_1;
|
||||
PREF_UPDATES = [
|
||||
{
|
||||
version: 0,
|
||||
exists: function() /*=>*/ {return file_exists(DIRECTORY + "keys.json")},
|
||||
update: function() /*=>*/ {
|
||||
var _pth_k = DIRECTORY + "keys.json";
|
||||
var _pth_h = DIRECTORY + "hotkeys.json";
|
||||
var _pth_d = DIRECTORY + "default_project.json";
|
||||
|
||||
if(file_exists(_pth_k)) file_copy(_pth_k, PREFERENCES_DIR + "keys.json");
|
||||
if(file_exists(_pth_h)) file_copy(_pth_h, PREFERENCES_DIR + "hotkeys.json");
|
||||
if(file_exists(_pth_d)) file_copy(_pth_d, PREFERENCES_DIR + "default_project.json");
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
function PREF_UPDATE() {
|
||||
directory_verify(PREFERENCES_DIR);
|
||||
var _oldest = -1;
|
||||
|
||||
for (var i = 0, n = array_length(PREF_UPDATES); i < n; i++) {
|
||||
var _pf = PREF_UPDATES[i];
|
||||
if(_pf.exists()) {
|
||||
_oldest = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(_oldest == -1) return;
|
||||
for(var i = _oldest; i >= 0; i--) {
|
||||
var _pf = PREF_UPDATES[i];
|
||||
_pf.update();
|
||||
}
|
||||
}
|
||||
|
||||
function PREF_SAVE() {
|
||||
if(IS_CMD) return;
|
||||
|
||||
directory_verify($"{DIRECTORY}Preferences");
|
||||
directory_verify($"{DIRECTORY}Preferences\\{PREF_VERSION}");
|
||||
|
||||
PREFERENCES.window_maximize = window_is_maximized;
|
||||
PREFERENCES.window_width = max(960, window_minimize_size[0]);
|
||||
PREFERENCES.window_height = max(600, window_minimize_size[1]);
|
||||
PREFERENCES.window_monitor = window_monitor;
|
||||
|
||||
json_save_struct(DIRECTORY + "keys.json", PREFERENCES);
|
||||
json_save_struct(DIRECTORY + "Nodes/fav.json", global.FAV_NODES);
|
||||
json_save_struct(DIRECTORY + "Nodes/recent.json", global.RECENT_NODES);
|
||||
json_save_struct(DIRECTORY + "default_project.json", PROJECT_ATTRIBUTES);
|
||||
json_save_struct(PREFERENCES_DIR + "keys.json", PREFERENCES);
|
||||
json_save_struct(PREFERENCES_DIR + "default_project.json", PROJECT_ATTRIBUTES);
|
||||
json_save_struct(DIRECTORY + "Nodes/fav.json", global.FAV_NODES);
|
||||
json_save_struct(DIRECTORY + "Nodes/recent.json", global.RECENT_NODES);
|
||||
|
||||
hotkey_serialize();
|
||||
}
|
||||
|
||||
function PREF_LOAD() {
|
||||
var path = DIRECTORY + "keys.json";
|
||||
directory_verify($"{DIRECTORY}Preferences");
|
||||
if(!directory_exists(PREFERENCES_DIR)) PREF_UPDATE();
|
||||
|
||||
var path = PREFERENCES_DIR + "keys.json";
|
||||
if(file_exists(path)) {
|
||||
var map = json_load_struct(path);
|
||||
if(struct_has(map, "preferences")) struct_override(PREFERENCES, map.preferences);
|
||||
@ -276,7 +319,7 @@
|
||||
|
||||
if(PREFERENCES.move_directory) directory_set_current_working(DIRECTORY);
|
||||
|
||||
var f = json_load_struct(DIRECTORY + "default_project.json");
|
||||
var f = json_load_struct(PREFERENCES_DIR + "default_project.json");
|
||||
struct_override(PROJECT_ATTRIBUTES, f);
|
||||
|
||||
hotkey_deserialize();
|
||||
@ -329,4 +372,4 @@
|
||||
var grav = struct_try_get(PREFERENCES, "physics_gravity", [ 0, 10 ]);
|
||||
physics_world_gravity(array_safe_get_fast(grav, 0, 0), array_safe_get_fast(grav, 1, 10));
|
||||
}
|
||||
#endregion
|
||||
#endregion
|
||||
|
Loading…
Reference in New Issue
Block a user