From 8e4c70ced33251e90b2a39a70af36f2e2eb207f7 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Thu, 4 Apr 2024 18:56:19 +0700 Subject: [PATCH] - Add option to toggle off real fps display --- PixelComposer.yyp | 4 +- objects/o_dialog_preference/Create_0.gml | 23 ++- scripts/event_recorder/event_recorder.gml | 42 +++++ scripts/node_shape/node_shape.gml | 1 - scripts/panel_preview/panel_preview.gml | 8 +- scripts/preferences/preferences.gml | 185 +++++++++++++--------- 6 files changed, 175 insertions(+), 88 deletions(-) diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 04acc18ab..5c1106da7 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -301,7 +301,7 @@ "Itch":{ "CopyToMask":"0", }, - },"CopyToMask":-1,"filePath":"datafiles","name":"ApolloHelp.html","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + },"CopyToMask":0,"filePath":"datafiles","name":"ApolloHelp.html","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Actions.zip","CopyToMask":-1,"filePath":"datafiles/data","name":"Actions.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"icons.ai","CopyToMask":-1,"filePath":"datafiles/data/Actions","name":"icons.ai","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Armature Build.json","CopyToMask":-1,"filePath":"datafiles/data/Actions/Nodes","name":"Armature Build.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, @@ -414,7 +414,7 @@ "Itch":{ "CopyToMask":"0", }, - },"CopyToMask":-1,"filePath":"datafiles","name":"README.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + },"CopyToMask":0,"filePath":"datafiles","name":"README.txt","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"data.win","CopyToMask":-1,"filePath":"datafiles/report","name":"data.win","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"execute_shell_simple_ext_x64.dll","CopyToMask":-1,"filePath":"datafiles/report","name":"execute_shell_simple_ext_x64.dll","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"options.ini","CopyToMask":-1,"filePath":"datafiles/report","name":"options.ini","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, diff --git a/objects/o_dialog_preference/Create_0.gml b/objects/o_dialog_preference/Create_0.gml index dbf436017..a2724c7d0 100644 --- a/objects/o_dialog_preference/Create_0.gml +++ b/objects/o_dialog_preference/Create_0.gml @@ -273,7 +273,7 @@ event_inherited(); #region interface pref_appr = ds_list_create(); - ds_list_add(pref_appr, __txt("Interface")); + ds_list_add(pref_appr, __txt("Interface")); /////////////////////////////////////////////////////////////// Interface PREFERENCES._display_scaling = PREFERENCES.display_scaling; ds_list_add(pref_appr, new __Panel_Linear_Setting_Item( @@ -356,7 +356,7 @@ event_inherited(); }) )); - ds_list_add(pref_appr, __txt("Graph")); + ds_list_add(pref_appr, __txt("Graph")); //////////////////////////////////////////////////////////////////////// Graph ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( __txtx("pref_add_node_remember", "Remember add node position"), @@ -446,7 +446,18 @@ event_inherited(); }) )); - ds_list_add(pref_appr, __txt("Inspector")); + ds_list_add(pref_appr, __txt("Preview")); ////////////////////////////////////////////////////////////////////// Preview + + ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( + __txtx("pref_preview_show_real_fps", "Show real fps"), + "panel_preview_show_real_fps", + new checkBox(function(str) { + PREFERENCES.panel_preview_show_real_fps = !PREFERENCES.panel_preview_show_real_fps; + PREF_SAVE(); + }) + )); + + ds_list_add(pref_appr, __txt("Inspector")); //////////////////////////////////////////////////////////////////// Inspector ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( __txtx("pref_inspector_focus_on_double_click", "Focus on double click"), @@ -457,7 +468,7 @@ event_inherited(); }) )); - ds_list_add(pref_appr, __txt("Collection")); + ds_list_add(pref_appr, __txt("Collection")); /////////////////////////////////////////////////////////////////// Collection ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( __txtx("pref_collection_preview_speed", "Collection preview speed"), @@ -468,7 +479,7 @@ event_inherited(); }) )); - ds_list_add(pref_appr, __txt("Notification")); + ds_list_add(pref_appr, __txt("Notification")); ///////////////////////////////////////////////////////////////// Notification ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( __txtx("pref_warning_notification_time", "Warning notification time"), @@ -479,7 +490,7 @@ event_inherited(); }) )); - ds_list_add(pref_appr, __txt("Text Area")); + ds_list_add(pref_appr, __txt("Text Area")); //////////////////////////////////////////////////////////////////// Text area ds_list_add(pref_appr, new __Panel_Linear_Setting_Item_Preference( __txtx("pref_widget_autocomplete_delay", "Code Autocomplete delay"), diff --git a/scripts/event_recorder/event_recorder.gml b/scripts/event_recorder/event_recorder.gml index b1a8c9c88..72d9fb937 100644 --- a/scripts/event_recorder/event_recorder.gml +++ b/scripts/event_recorder/event_recorder.gml @@ -57,57 +57,71 @@ function Action(_type, _object, _data, _trigger = 0) constructor { } data[0] = _n; break; + case ACTION_TYPE.list_insert : if(!ds_exists(obj, ds_type_list)) return; ds_list_delete(obj, data[1]); break; + case ACTION_TYPE.list_modify : if(!ds_exists(obj, ds_type_list)) return; _n = data[0]; obj[| data[1]] = data[0]; data[0] = _n; break; + case ACTION_TYPE.list_delete : if(!ds_exists(obj, ds_type_list)) return; ds_list_insert(obj, data[1], data[0]); break; + case ACTION_TYPE.node_added : nodeDelete(obj); break; + case ACTION_TYPE.node_delete : obj.restore(); break; + case ACTION_TYPE.junction_connect : var _d = obj.value_from; obj.setFrom(data); data = _d; break; + case ACTION_TYPE.junction_disconnect : obj.setFrom(data); break; + case ACTION_TYPE.group_added : obj.remove(data); break; + case ACTION_TYPE.group_removed : obj.add(data); break; + case ACTION_TYPE.group : upgroupNode(obj, false); break; + case ACTION_TYPE.ungroup : obj.restore(); groupNodes(data.content, obj, false); break; + case ACTION_TYPE.collection_loaded : for( var i = 0, n = array_length(obj); i < n; i++ ) nodeDelete(obj[i]); break; + case ACTION_TYPE.struct_modify : var _data = obj.serialize(); obj.deserialize(data); data = _data; break; + case ACTION_TYPE.custom : obj(data); break; @@ -129,56 +143,70 @@ function Action(_type, _object, _data, _trigger = 0) constructor { } data[0] = _n; break; + case ACTION_TYPE.list_insert : if(!ds_exists(obj, ds_type_list)) return; ds_list_insert(obj, data[1], data[0]); break; + case ACTION_TYPE.list_modify : if(!ds_exists(obj, ds_type_list)) return; _n = data[0]; obj[| data[1]] = data[0]; data[0] = _n; break; + case ACTION_TYPE.list_delete : if(!ds_exists(obj, ds_type_list)) return; ds_list_delete(obj, data[1]); break; + case ACTION_TYPE.node_added : obj.restore(); break; + case ACTION_TYPE.node_delete : nodeDelete(obj); break; + case ACTION_TYPE.junction_connect : var _d = obj.value_from; obj.setFrom(data); data = _d; break; + case ACTION_TYPE.junction_disconnect : obj.removeFrom(); break; + case ACTION_TYPE.group_added : obj.add(data); break; + case ACTION_TYPE.group_removed : obj.remove(data); break; + case ACTION_TYPE.group : obj.restore(); groupNodes(data.content, obj, false); break; + case ACTION_TYPE.ungroup : upgroupNode(obj, false); break; + case ACTION_TYPE.collection_loaded : for( var i = 0, n = array_length(obj); i < n; i++ ) obj[i].restore(); break; + case ACTION_TYPE.struct_modify : var _data = obj.serialize(); obj.deserialize(data); data = _data; break; + case ACTION_TYPE.custom : obj(data); break; @@ -196,48 +224,62 @@ function Action(_type, _object, _data, _trigger = 0) constructor { else ss = $"modify {data[1]}"; break; + case ACTION_TYPE.list_insert : if(array_length(data) > 2) ss = data[2]; else ss = $"insert {data[1]} to list {obj}"; break; + case ACTION_TYPE.list_modify : ss = $"modify {data[1]} of list {obj}"; break; + case ACTION_TYPE.list_delete : ss = $"delete {data[1]} from list {obj}"; break; + case ACTION_TYPE.node_added : ss = $"add {obj.name} node"; break; + case ACTION_TYPE.node_delete : ss = $"deleted {obj.name} node"; break; + case ACTION_TYPE.junction_connect : ss = $"connect {obj.name}"; break; + case ACTION_TYPE.junction_disconnect : ss = $"disconnect {obj.name}"; break; + case ACTION_TYPE.group_added : ss = $"add {obj.name} to group"; break; + case ACTION_TYPE.group_removed : ss = $"remove {obj.name} from group"; break; + case ACTION_TYPE.group : ss = $"group {array_length(data.content)} nodes"; break; + case ACTION_TYPE.ungroup : ss = $"ungroup {obj.name} node"; break; + case ACTION_TYPE.collection_loaded : ss = $"load {filename_name(data)}"; break; + case ACTION_TYPE.struct_modify : ss = $"modify {struct_try_get(obj, "name", "value")}"; break; + case ACTION_TYPE.custom : ss = struct_try_get(data, "tooltip", "action"); break; diff --git a/scripts/node_shape/node_shape.gml b/scripts/node_shape/node_shape.gml index 032096315..bca4dce54 100644 --- a/scripts/node_shape/node_shape.gml +++ b/scripts/node_shape/node_shape.gml @@ -180,7 +180,6 @@ function Node_Shape(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con inputs[| 7].setVisible(true); inputs[| 8].setVisible(true); inputs[| 9].setVisible(true); - inputs[| 11].setVisible(_bg); inputs[| 13].setVisible(true); inputs[| 15].setVisible(true); diff --git a/scripts/panel_preview/panel_preview.gml b/scripts/panel_preview/panel_preview.gml index 0075bcd91..1dd5baad7 100644 --- a/scripts/panel_preview/panel_preview.gml +++ b/scripts/panel_preview/panel_preview.gml @@ -1039,9 +1039,13 @@ function Panel_Preview() : PanelContent() constructor { draw_text(w - ui(8), right_menu_y, __txt("Active")); right_menu_y += string_height("l"); } - + + var txt = $"{__txt("fps")} {fps}"; + if(PREFERENCES.panel_preview_show_real_fps) + txt += $" / {FPS_REAL}"; + draw_set_text(f_p0, fa_right, fa_top, fps >= PROJECT.animator.framerate? COLORS._main_text_sub : COLORS._main_value_negative); - draw_text(w - ui(8), right_menu_y, $"{__txt("fps")} {fps} / {FPS_REAL}"); + draw_text(w - ui(8), right_menu_y, txt); right_menu_y += string_height("l"); draw_set_text(f_p0, fa_right, fa_top, COLORS._main_text_sub); diff --git a/scripts/preferences/preferences.gml b/scripts/preferences/preferences.gml index f8e97e91f..d891453d3 100644 --- a/scripts/preferences/preferences.gml +++ b/scripts/preferences/preferences.gml @@ -3,107 +3,138 @@ PREFERENCES = {}; HOTKEYS_DATA = {}; - PREFERENCES.ui_framerate = 120; - PREFERENCES.path_resolution = 32; - PREFERENCES.move_directory = false; - - PREFERENCES.node_recents_amount = 20; + #region ////////////////////////////////////////////////////////////////////// GENERAL UI ////////////////////////////////////////////////////////////////////// - PREFERENCES.double_click_delay = 0.25; - PREFERENCES.mouse_wheel_speed = 1.00; - - PREFERENCES.keyboard_repeat_start = 0.50; - PREFERENCES.keyboard_repeat_speed = 0.10; - - PREFERENCES.show_splash = true; - PREFERENCES.splash_expand_recent = false; + PREFERENCES.display_scaling = 1; + PREFERENCES.window_width = 1600; + PREFERENCES.window_height = 800; + PREFERENCES.window_maximize = false; - PREFERENCES.notification_time = 180; - PREFERENCES.notify_load_version = true; - - PREFERENCES.display_scaling = 1; - PREFERENCES.window_width = 1600; - PREFERENCES.window_height = 800; - PREFERENCES.window_maximize = false; + PREFERENCES.theme = "default"; + PREFERENCES.local = "en"; + PREFERENCES.font_overwrite = ""; + + PREFERENCES.ui_framerate = 120; + PREFERENCES.path_resolution = 32; + PREFERENCES.move_directory = false; + + PREFERENCES.notification_time = 180; + PREFERENCES.notify_load_version = true; + PREFERENCES.show_crash_dialog = false; + + PREFERENCES.test_mode = false; + PREFERENCES.auto_save_time = 300; + PREFERENCES.use_legacy_exception = false; - PREFERENCES.connection_line_width = 2; - PREFERENCES.connection_line_sample = 1; - PREFERENCES.connection_line_corner = 8; - PREFERENCES.connection_line_aa = 2; - PREFERENCES.connection_line_transition = true; - PREFERENCES.connection_line_highlight = 0; - PREFERENCES.connection_line_highlight_fade = 0.75; - PREFERENCES.connection_line_highlight_all = false; - PREFERENCES.curve_connection_line = 1; + PREFERENCES.caret_blink = 0.75; - PREFERENCES.default_surface_side = 32; + PREFERENCES.textbox_shake = 0; + PREFERENCES.textbox_particle = 0; - PREFERENCES.panel_layout_file = "Vertical"; - PREFERENCES.panel_graph_dragging = MOD_KEY.alt; - PREFERENCES.panel_graph_group_require_shift = true; - PREFERENCES.panel_preview_dragging = MOD_KEY.alt; + #endregion + + #region ////////////////////////////////////////////////////////////////////////// IO ////////////////////////////////////////////////////////////////////////// + + PREFERENCES.double_click_delay = 0.25; + PREFERENCES.mouse_wheel_speed = 1.00; - PREFERENCES.inspector_focus_on_double_click = true; - PREFERENCES.inspector_view_default = 1; + PREFERENCES.keyboard_repeat_start = 0.50; + PREFERENCES.keyboard_repeat_speed = 0.10; + + #endregion - PREFERENCES.node_show_render_status = false; - PREFERENCES.node_show_time = true; + #region ///////////////////////////////////////////////////////////////////////// DIALOG //////////////////////////////////////////////////////////////////////// + + PREFERENCES.node_recents_amount = 20; + + PREFERENCES.show_splash = true; + PREFERENCES.splash_expand_recent = false; - PREFERENCES.expand_hover = false; + PREFERENCES.dialog_add_node_grouping = true; + PREFERENCES.dialog_add_node_view = 0; - PREFERENCES.graph_zoom_smoooth = 4; - PREFERENCES.graph_open_group_in_tab = false; + PREFERENCES.dialog_add_node_w = 532; + PREFERENCES.dialog_add_node_h = 400; + + PREFERENCES.add_node_remember = true; - PREFERENCES.theme = "default"; - PREFERENCES.local = "en"; - PREFERENCES.font_overwrite = ""; + #endregion - PREFERENCES.dialog_add_node_grouping = true; - PREFERENCES.dialog_add_node_view = 0; + #region //////////////////////////////////////////////////////////////////////// PANEL ///////////////////////////////////////////////////////////////////////// - PREFERENCES.physics_gravity = [ 0, 10 ]; - - PREFERENCES.test_mode = false; - PREFERENCES.auto_save_time = 300; - PREFERENCES.use_legacy_exception = false; + PREFERENCES.panel_layout_file = "Vertical"; - PREFERENCES.dialog_add_node_w = 532; - PREFERENCES.dialog_add_node_h = 400; + PREFERENCES.panel_graph_dragging = MOD_KEY.alt; + PREFERENCES.panel_graph_group_require_shift = true; - PREFERENCES.panel_menu_resource_monitor = false; - PREFERENCES.panel_menu_right_control = os_type == os_windows; + PREFERENCES.panel_preview_dragging = MOD_KEY.alt; + PREFERENCES.panel_preview_show_real_fps = false; - PREFERENCES.show_crash_dialog = false; - PREFERENCES.save_file_minify = true; - PREFERENCES.render_all_export = true; + PREFERENCES.panel_menu_resource_monitor = false; + PREFERENCES.panel_menu_right_control = os_type == os_windows; - PREFERENCES.alt_picker = true; - PREFERENCES.clear_temp_on_close = true; - PREFERENCES.pan_mouse_key = mb_middle; + PREFERENCES.inspector_focus_on_double_click = true; + PREFERENCES.inspector_view_default = 1; - PREFERENCES.widget_autocomplete_delay = 500; + PREFERENCES.node_show_render_status = false; + PREFERENCES.node_show_time = true; + + PREFERENCES.expand_hover = false; - PREFERENCES.show_supporter_icon = true; + PREFERENCES.graph_zoom_smoooth = 4; + PREFERENCES.graph_open_group_in_tab = false; - PREFERENCES.temp_path = "%DIR%/temp/"; - PREFERENCES.ImageMagick_path = "%APP%/imagemagick/"; - PREFERENCES.webp_path = "%APP%/webp/"; - PREFERENCES.gifski_path = "%APP%/gifski/"; - PREFERENCES.ffmpeg_path = "%APP%/ffmpeg/"; + PREFERENCES.connection_line_width = 2; + PREFERENCES.connection_line_sample = 1; + PREFERENCES.connection_line_corner = 8; + PREFERENCES.connection_line_aa = 2; + PREFERENCES.connection_line_transition = true; + PREFERENCES.connection_line_highlight = 0; + PREFERENCES.connection_line_highlight_fade = 0.75; + PREFERENCES.connection_line_highlight_all = false; + PREFERENCES.curve_connection_line = 1; + + PREFERENCES.collection_animated = true; + PREFERENCES.collection_preview_speed = 60; + PREFERENCES.collection_scale = 1; + + PREFERENCES.pan_mouse_key = mb_middle; + + #endregion - PREFERENCES.collection_animated = true; - PREFERENCES.collection_preview_speed = 60; - PREFERENCES.collection_scale = 1; + #region //////////////////////////////////////////////////////////////////////// WIDGET //////////////////////////////////////////////////////////////////////// - PREFERENCES.caret_blink = 0.75; + PREFERENCES.widget_autocomplete_delay = 500; + PREFERENCES.alt_picker = true; - PREFERENCES.add_node_remember = true; + #endregion - PREFERENCES.textbox_shake = 0; - PREFERENCES.textbox_particle = 0; + #region //////////////////////////////////////////////////////////////////////// NODES ///////////////////////////////////////////////////////////////////////// - PREFERENCES.node_param_show = false; - PREFERENCES.node_param_width = 192; + PREFERENCES.node_param_show = false; + PREFERENCES.node_param_width = 192; + + #endregion + + #region //////////////////////////////////////////////////////////////////////// MISC ////////////////////////////////////////////////////////////////////////// + + PREFERENCES.save_file_minify = true; + PREFERENCES.render_all_export = true; + PREFERENCES.clear_temp_on_close = true; + + PREFERENCES.show_supporter_icon = true; + + #endregion + + #region //////////////////////////////////////////////////////////////////////// PATHS ///////////////////////////////////////////////////////////////////////// + + PREFERENCES.temp_path = "%DIR%/temp/"; + PREFERENCES.ImageMagick_path = "%APP%/imagemagick/"; + PREFERENCES.webp_path = "%APP%/webp/"; + PREFERENCES.gifski_path = "%APP%/gifski/"; + PREFERENCES.ffmpeg_path = "%APP%/ffmpeg/"; + + #endregion PREFERENCES_DEF = variable_clone(PREFERENCES); #endregion