From a2382a42cc65385d4b7ad6c21a866c54ef3c83b6 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Fri, 7 Feb 2025 11:19:40 +0700 Subject: [PATCH] 1.18.8 --- PixelComposer.resource_order | 1 + PixelComposer.yyp | 1 + datafiles/data/Nodes/Internal.zip | Bin 9101194 -> 9101194 bytes .../Values/Vector/Node_Vector2/info.json | 2 +- .../Values/Vector/Node_Vector3/info.json | 2 +- .../Values/Vector/Node_Vector4/info.json | 2 +- datafiles/data/Theme.zip | Bin 2866026 -> 2867531 bytes objects/o_dialog_menubox/Create_0.gml | 49 +- objects/o_dialog_menubox/Draw_64.gml | 53 +- .../function_register/function_register.gml | 12 +- scripts/globals/globals.gml | 2 +- scripts/hotkey_data/hotkey_data.gml | 2 +- scripts/node_3d_camera/node_3d_camera.gml | 3 +- scripts/node_composite/node_composite.gml | 3 +- .../node_composite_tag/node_composite_tag.gml | 21 +- scripts/node_crop/node_crop.gml | 6 + .../node_crop_content/node_crop_content.gml | 24 +- scripts/node_delay_value/node_delay_value.gml | 2 +- .../node_fn_wave_table/node_fn_wave_table.gml | 12 +- scripts/node_padding/node_padding.gml | 8 + scripts/node_path_3d/node_path_3d.gml | 8 +- .../node_path_3d_camera.gml | 2 +- scripts/node_scale/node_scale.gml | 17 +- scripts/node_scale_algo/node_scale_algo.gml | 5 + .../panel_file_explorer.gml | 466 +++++++++--------- .../5be69b3e-a07f-48b0-98b1-36e6c85f1720.png | Bin 0 -> 572 bytes .../97b2b845-2e62-4358-86bd-5ea8dd97bef1.png | Bin 0 -> 572 bytes sprites/s_icon_16_white/s_icon_16_white.yy | 90 ++++ 28 files changed, 459 insertions(+), 334 deletions(-) create mode 100644 sprites/s_icon_16_white/5be69b3e-a07f-48b0-98b1-36e6c85f1720.png create mode 100644 sprites/s_icon_16_white/layers/5be69b3e-a07f-48b0-98b1-36e6c85f1720/97b2b845-2e62-4358-86bd-5ea8dd97bef1.png create mode 100644 sprites/s_icon_16_white/s_icon_16_white.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index eef8db41e..494c0ab44 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -1879,6 +1879,7 @@ {"name":"s_gizmo","order":3,"path":"sprites/s_gizmo/s_gizmo.yy",}, {"name":"s_gmlayer","order":2,"path":"sprites/s_gmlayer/s_gmlayer.yy",}, {"name":"s_gmroom","order":1,"path":"sprites/s_gmroom/s_gmroom.yy",}, + {"name":"s_icon_16_white","order":4,"path":"sprites/s_icon_16_white/s_icon_16_white.yy",}, {"name":"s_icon_256","order":1,"path":"sprites/s_icon_256/s_icon_256.yy",}, {"name":"s_icon_32","order":2,"path":"sprites/s_icon_32/s_icon_32.yy",}, {"name":"s_icon_64","order":3,"path":"sprites/s_icon_64/s_icon_64.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 133a4ef77..37b621926 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -3205,6 +3205,7 @@ {"id":{"name":"s_gizmo","path":"sprites/s_gizmo/s_gizmo.yy",},}, {"id":{"name":"s_gmlayer","path":"sprites/s_gmlayer/s_gmlayer.yy",},}, {"id":{"name":"s_gmroom","path":"sprites/s_gmroom/s_gmroom.yy",},}, + {"id":{"name":"s_icon_16_white","path":"sprites/s_icon_16_white/s_icon_16_white.yy",},}, {"id":{"name":"s_icon_24","path":"sprites/s_icon_24/s_icon_24.yy",},}, {"id":{"name":"s_icon_256","path":"sprites/s_icon_256/s_icon_256.yy",},}, {"id":{"name":"s_icon_32","path":"sprites/s_icon_32/s_icon_32.yy",},}, diff --git a/datafiles/data/Nodes/Internal.zip b/datafiles/data/Nodes/Internal.zip index 7d60f12e24fc2bd4650e5e326b5aa4758e7d356f..c317b6d7d42ca7774fd3ebfb842d9435e1f55c67 100644 GIT binary patch delta 1533 zcmZ9LT~JhI7{|+nc3A@;u?yJiM*5hh^}@!caRFnJOLwM1rfH^+i)?hJE*hHt`*0T0o%zlDpa1jmKIfcw z)s>G^6dA((SOy1DkctQ3gbQhKV>uo~Ix?^VnaILJScz<`!fNDT4c5W~FLIHGb;w5n z3b7s=uo0W^Fp5x&&DeqxY{fQ|Vmo%A4CUB~NAM^runW6Ui7HfM4{A^gAN;68JsQ3+ z8Ul`$!AAXi(D3NafRQdycfcqW5eXPuL|hLTTSd$VjBO&`Z)3-i@0*4@v3W?52!DunX~$}PkcX~^cBPIL3#4qv0+`mK)yWD1B~3ZN|t-|x;Qek z>Q9_Gy!65oqa1NmNs&K}nuIVpfQ&?k;^Et=k~%#bE)&5UP^f+LVdww8T4KoTYPhTX|rq5iYfyti3~c21~!{k3x((HT*0oiP_)co14U7iUGg=fV{o zu0N_8+d3}%)T_s9&11_}H|so~+331M_s*pc1`}?nzTh)`i>beu`t;CL-9qY|cXrC&k5R1@aS^YcpRx)hD!69PP4q^4uUWrcl(&1dPwf*i-lz5^ zMD*`IRh=SM*8o>&=~oNid$`}OoatBlC7(N>nx%z>KNpJCI;!eK$oij;sv?Pg7*+nH zU7vKkdT>l_O4?ri&6r&+z0Qaol|@v86j6BfhY?l0*b|&+r&Uh&f3$KU_W%F@ delta 1530 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 W6VEZLp8Ar$G~%?L-fMG)bM=4natNIO delta 52309 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

Lup|o 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 Ykl-Z?Jv>DLjgm%5kLumrQdBb3zm!VYSO5S3 diff --git a/objects/o_dialog_menubox/Create_0.gml b/objects/o_dialog_menubox/Create_0.gml index 4ac06ccb8..4b174aaf1 100644 --- a/objects/o_dialog_menubox/Create_0.gml +++ b/objects/o_dialog_menubox/Create_0.gml @@ -7,33 +7,33 @@ event_inherited(); mouse_init_inside = false; mouse_init_r_pressed = mouse_click(mb_right); selecting = -1; + parentPanel = noone; + context = noone; - parentPanel = noone; - menu_id = ""; - alarm[0] = -1; - menu = 1; - font = f_p2; - hght = line_get_height(font, 10); - tooltips = []; - show_icon = false; - context = noone; - submenu = noone; - submenuIt = noone; + menu_id = ""; + menu = 1; + tooltips = []; + show_icon = false; + font = f_p2; + hght = line_get_height(font, 10); - _hovering_ch = true; + submenu = noone; + submenuIt = noone; + + _hovering_ch = true; init_press_l = MOUSE_POOL.lpress; + alarm[0] = -1; setFocus(self.id); - #endregion #region menu item_sel_submenu = noone; - remove_parents = true; - selecting_menu = noone; - hk_editing = noone; + remove_parents = true; + selecting_menu = noone; + hk_editing = noone; - function setMenu(_menu, align = fa_left) { + function setMenu(_menu, _align = fa_left) { with(_p_dialog) { if(on_top) continue; other.depth = min(depth - 1, other.depth); } title = menu_id; @@ -50,7 +50,7 @@ event_inherited(); tooltips = []; draw_set_text(font, fa_center, fa_center, COLORS._main_text); - for(var i = 0; i < array_length(menu); i++) { + for( var i = 0, n = array_length(menu); i < n; i++ ) { var _menuItem = menu[i]; if(_menuItem == -1) { @@ -67,7 +67,7 @@ event_inherited(); draw_set_font(font); var ww = string_width(_menuItem.name) + ui(64); - var _key = _menuItem.hotkey != noone? find_hotkey(_menuItem.hotkey[0], _menuItem.hotkey[1]) : noone; + var _key = _menuItem.hoykeyObject; draw_set_font(font); var _kw = _key? string_width(key_get_name(_key.key, _key.modi)) + ui(16) : 0; @@ -95,7 +95,7 @@ event_inherited(); dialog_y = min(dialog_y, _maxh - dialog_h - 2); - switch(align) { + switch(_align) { case fa_left: dialog_x = round(min(dialog_x, _maxw - dialog_w - 2)); break; case fa_center: dialog_x = round(min(dialog_x - dialog_w / 2, _maxw - dialog_w - 2)); break; case fa_right: dialog_x = round(max(dialog_x - dialog_w, 2)); break; @@ -121,11 +121,6 @@ event_inherited(); dialog_y = 0; } } -#endregion - -#region focus - function getContextPanel() { - if(is(context, PanelContent)) return context.panel; - return context; - } + + function getContextPanel() { return is(context, PanelContent)? context.panel : context; } #endregion \ No newline at end of file diff --git a/objects/o_dialog_menubox/Draw_64.gml b/objects/o_dialog_menubox/Draw_64.gml index 8bfc283a4..8a899c6b7 100644 --- a/objects/o_dialog_menubox/Draw_64.gml +++ b/objects/o_dialog_menubox/Draw_64.gml @@ -14,10 +14,9 @@ DIALOG_WINCLEAR1 item_sel_submenu = noone; } - var to_del = noone; - draw_sprite_stretched(THEME.box_r2_clr, 0, dialog_x, dialog_y, dialog_w, dialog_h); + var to_del = noone; for( var i = 0, n = array_length(menu); i < n; i++ ) { var _menuItem = menu[i]; @@ -29,7 +28,7 @@ DIALOG_WINCLEAR1 continue; } - if(is_instanceof(_menuItem, MenuItem) && _menuItem.shiftMenu != noone && key_mod_press(SHIFT)) + if(is(_menuItem, MenuItem) && _menuItem.shiftMenu != noone && key_mod_press(SHIFT)) _menuItem = _menuItem.shiftMenu; if(_menuItem == -1) { @@ -43,10 +42,14 @@ DIALOG_WINCLEAR1 } var label = _menuItem.name; - var _h = is_instanceof(_menuItem, MenuItemGroup)? hght * 2 : hght; + var _h = is(_menuItem, MenuItemGroup)? hght * 2 : hght; var cc = struct_try_get(_menuItem, "color", c_white); - var _key = _menuItem.hotkey != noone? find_hotkey(_menuItem.hotkey[0], _menuItem.hotkey[1]) : noone; - _menuItem.hoykeyObject = _key; + var _key = _menuItem.hoykeyObject; + + if(_key == noone && _menuItem.hotkey != noone) { + _key = find_hotkey(_menuItem.hotkey[0], _menuItem.hotkey[1]); + _menuItem.hoykeyObject = _key; + } //print($"{i}: {sHOVER} && {point_in_rectangle(mouse_mx, mouse_my, dialog_x, yy + 1, dialog_x + dialog_w, yy + _h - 1)}") if(sHOVER && point_in_rectangle(mouse_mx, mouse_my, dialog_x, yy + 1, dialog_x + dialog_w, yy + _h - 1)) { @@ -56,16 +59,11 @@ DIALOG_WINCLEAR1 } if(selecting == i) { - var _hc = cc == c_white? COLORS.dialog_menubox_highlight : cc; - var _ha = cc == c_white? 0.75 : 0.8; + if(_menuItem.active && cc == c_white) cc = COLORS.dialog_menubox_highlight; - if(_menuItem.active) - draw_sprite_stretched_ext(THEME.textbox, 3, dialog_x, yy, dialog_w, _h, _hc); - - if(_hovering_ch && is_instanceof(_menuItem, MenuItem)) { - if(_menuItem.active && _lclick) { + if(_hovering_ch) { + if(is(_menuItem, MenuItem) && _menuItem.active && _lclick) { var _par = _menuItem.params; - var _p = _par != noone; if(_menuItem.isShelf) { FOCUS_CONTENT = context; @@ -77,6 +75,7 @@ DIALOG_WINCLEAR1 if(submenuIt == _menuItem) { submenuIt = noone; + } else { var _dat = { _x: dialog_x, @@ -97,16 +96,14 @@ DIALOG_WINCLEAR1 } else { FOCUS_CONTENT = context; - if(_p) _menuItem.func(_par); - else _menuItem.func(); + if(_par != noone) _menuItem.func(_par); + else _menuItem.func(); to_del = remove_parents? o_dialog_menubox : self; } } - } - - if(_hovering_ch && (is_instanceof(_menuItem, MenuItem) || is_instanceof(_menuItem, MenuItemGroup))) { - if(_key && _rclick) { + + if((is(_menuItem, MenuItem) || is(_menuItem, MenuItemGroup)) && (_key && _rclick)) { var _dat = { _x: mouse_mx + ui(4), x: mouse_mx + ui(4), @@ -128,16 +125,17 @@ DIALOG_WINCLEAR1 item_sel_submenu = submenuCall(_dat, context_menu_settings); item_sel_submenu.remove_parents = false; + } } - - } else if(cc != c_white) - draw_sprite_stretched_ext(THEME.textbox, 3, dialog_x, yy, dialog_w, _h, cc); + } + + if(cc != c_white) draw_sprite_stretched_ext(THEME.textbox, 3, dialog_x, yy, dialog_w, _h, cc); var _hx = dialog_x + dialog_w - ui(16); var _hy = yy + hght / 2 + ui(2); - if(is_instanceof(_menuItem, MenuItemGroup)) { + if(is(_menuItem, MenuItemGroup)) { var _submenus = _menuItem.group; draw_set_text(font, fa_center, fa_center, COLORS._main_text_sub); draw_set_alpha(_menuItem.active * 0.75 + 0.25); @@ -282,8 +280,11 @@ DIALOG_WINCLEAR1 draw_sprite_stretched(THEME.box_r2_clr, 1, dialog_x, dialog_y, dialog_w, dialog_h); - if(mouse_init_inside && (mouse_release(mb_left) || mouse_release(mb_right))) mouse_init_inside = false; - if(mouse_release(mb_right)) mouse_init_r_pressed = false; + if(mouse_init_inside && (mouse_release(mb_left) || mouse_release(mb_right))) + mouse_init_inside = false; + + if(mouse_release(mb_right)) + mouse_init_r_pressed = false; #endregion #region debug diff --git a/scripts/function_register/function_register.gml b/scripts/function_register/function_register.gml index 56083e638..c3989b445 100644 --- a/scripts/function_register/function_register.gml +++ b/scripts/function_register/function_register.gml @@ -66,13 +66,11 @@ function functionObject(_context, _name, _key, _mod, _action, _param = noone) co FUNCTIONS[$ fnName] = self; CMD_FUNCTIONS[$ fnName] = { action: _action, args: [] }; - static setArg = function(_args = []) { - CMD_FUNCTIONS[$ fnName] = { action, args: _args }; - return self; - } + static setArg = function(_args = []) { CMD_FUNCTIONS[$ fnName] = { action, args: _args }; return self; } static setMenuAlt = function(_name, _id, _spr = noone, shelf = false) { menu = menuItem(__txt(_name), action, _spr, [ context, name ]); + menu.hoykeyObject = hotkey; if(shelf) menu.setIsShelf(); MENU_ITEMS[$ _id] = menu; @@ -81,16 +79,14 @@ function functionObject(_context, _name, _key, _mod, _action, _param = noone) co static setMenu = function(_id, _spr = noone, shelf = false) { menu = menuItem(__txt(name), action, _spr, [ context, name ]); + menu.hoykeyObject = hotkey; if(shelf) menu.setIsShelf(); MENU_ITEMS[$ _id] = menu; return self; } - static hidePalette = function() { - hide = true; - return self; - } + static hidePalette = function() { hide = true; return self; } } function callStatusFunction(name) { diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 279af77a3..236c781bf 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -43,7 +43,7 @@ LATEST_VERSION = 1_18_00_0; VERSION = 1_18_07_2; SAVE_VERSION = 1_18_05_0; - VERSION_STRING = MAC? "1.18.003m" : "1.18.8.012"; + VERSION_STRING = MAC? "1.18.003m" : "1.18.8"; BUILD_NUMBER = 118072.011; PREF_VERSION = 1_17_1; diff --git a/scripts/hotkey_data/hotkey_data.gml b/scripts/hotkey_data/hotkey_data.gml index c5dddc432..d90f4bd4e 100644 --- a/scripts/hotkey_data/hotkey_data.gml +++ b/scripts/hotkey_data/hotkey_data.gml @@ -111,7 +111,7 @@ function hotkeyObject(_context, _name, _key, _mod = MOD_KEY.none, _action = noon dKey = _key; dModi = _mod; - static full_name = function() /*=>*/ {return string_to_var(context == ""? $"global.{name}" : $"{context}.{name}")}; + static full_name = function() /*=>*/ {return string_to_var(context == 0? $"global.{name}" : $"{context}.{name}")}; static get_key_name = function() /*=>*/ {return key_get_name(key, modi)}; static serialize = function( ) /*=>*/ { return { context, name, key, modi } } diff --git a/scripts/node_3d_camera/node_3d_camera.gml b/scripts/node_3d_camera/node_3d_camera.gml index 7ad039947..7a3b4b83e 100644 --- a/scripts/node_3d_camera/node_3d_camera.gml +++ b/scripts/node_3d_camera/node_3d_camera.gml @@ -408,11 +408,12 @@ function Node_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _group) BLEND_MULTIPLY draw_surface_safe(deferData.ssao); BLEND_NORMAL + + _outData[4] = deferData.ssao; } surface_reset_target(); surface_free(_render); - _outData[4] = deferData.ssao; #endregion surface_depth_disable(true); diff --git a/scripts/node_composite/node_composite.gml b/scripts/node_composite/node_composite.gml index 4548bc6e9..55c4d8630 100644 --- a/scripts/node_composite/node_composite.gml +++ b/scripts/node_composite/node_composite.gml @@ -777,6 +777,8 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) } static processData = function(_outData, _data, _output_index, _array_index) { + draw_transforms[_array_index] = noone; + var _outSurf = _outData[0]; if(getInputAmount() == 0) return _outData; @@ -787,7 +789,6 @@ function Node_Composite(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) var cDep = attrDepth(); if(!is_surface(base)) return _outData; - draw_transforms[_array_index] = noone; #region dimension var ww = 0, hh = 0; diff --git a/scripts/node_composite_tag/node_composite_tag.gml b/scripts/node_composite_tag/node_composite_tag.gml index 376b6ece3..2d95ab3ee 100644 --- a/scripts/node_composite_tag/node_composite_tag.gml +++ b/scripts/node_composite_tag/node_composite_tag.gml @@ -22,7 +22,22 @@ function Node_Composite_Tag(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr setDynamicInput(1, true, VALUE_TYPE.dynaSurface); + draw_transforms = []; + static drawOverlayTransform = function(_node) { + var _df = array_safe_get(draw_transforms, preview_index, noone); + if(_df == noone) return noone; + + var _amo = getInputAmount(); + for( var i = 0; i < _amo; i++ ) { + if(_node == inputs[input_fix_len + i].getNodeFrom()) + return _df[i]; + } + + return noone; + } + static processData = function(_outSurf, _data, _output_index, _array_index = 0) { + draw_transforms[_array_index] = noone; var _amo = getInputAmount(); var _dim = _data[0]; @@ -78,7 +93,8 @@ function Node_Composite_Tag(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr var _cx = _dim[0] / 2 - (minx + maxx) / 2; var _cy = _dim[1] / 2 - (miny + maxy) / 2; - _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); + _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); + var _trans = array_create(_amo, noone); surface_set_shader(_outSurf); for( var i = 0; i < _amo; i++ ) { @@ -102,8 +118,11 @@ function Node_Composite_Tag(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr _oy /= _tagArrAmo; draw_surface(_surface, _cx - _ox, _cy - _oy); + _trans[i] = [ _cx - _ox, _cy - _oy, 1, 1, 0 ]; } surface_reset_shader(); + + draw_transforms[_array_index] = _trans; return _outSurf; } diff --git a/scripts/node_crop/node_crop.gml b/scripts/node_crop/node_crop.gml index 746602f29..ddc15543b 100644 --- a/scripts/node_crop/node_crop.gml +++ b/scripts/node_crop/node_crop.gml @@ -329,6 +329,9 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons } + // draw_transforms = []; + // static drawOverlayTransform = function(_node) { return array_safe_get(draw_transforms, preview_index, noone); } + static onValueUpdate = function(index) { if(index != 3) return; @@ -361,6 +364,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons surface_set_shader(_outSurf, noone); draw_surface_safe(_inSurf, -_crop[2], -_crop[1]); + draw_transforms[_array_index] = [-_crop[2], -_crop[1], 1, 1, 0]; surface_reset_shader(); } else if(_fit == 0) { @@ -374,6 +378,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons surface_set_shader(_outSurf, noone); draw_surface_safe(_inSurf, -_x0, -_y0); + draw_transforms[_array_index] = [-_x0, -_y0, 1, 1, 0]; surface_reset_shader(); } else { @@ -400,6 +405,7 @@ function Node_Crop(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons surface_set_shader(_outSurf, noone); draw_surface_safe(_inSurf, -_x0, -_y0); + draw_transforms[_array_index] = [-_x0, -_y0, 1, 1, 0]; surface_reset_shader(); } diff --git a/scripts/node_crop_content/node_crop_content.gml b/scripts/node_crop_content/node_crop_content.gml index 0d411834c..b8c013a60 100644 --- a/scripts/node_crop_content/node_crop_content.gml +++ b/scripts/node_crop_content/node_crop_content.gml @@ -33,6 +33,9 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr temp_surface = [ 0, 0 ]; + draw_transforms = []; + static drawOverlayTransform = function(_node) { return array_safe_get(draw_transforms, preview_index, noone); } + static update = function() { var _inSurf = getInputData(0); var _active = getInputData(1); @@ -58,10 +61,10 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr if(!_arr) _inSurf = [ _inSurf ]; var _amo = array_length(_inSurf); - var minx = array_create(_amo); - var miny = array_create(_amo); - var maxx = array_create(_amo); - var maxy = array_create(_amo); + var minx = array_create(_amo, infinity); + var miny = array_create(_amo, infinity); + var maxx = array_create(_amo, -infinity); + var maxy = array_create(_amo, -infinity); var cDep = attrDepth(); for( var j = 0; j < _amo; j++ ) { @@ -101,9 +104,10 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr if(_array) { minx[j] = _minx; miny[j] = _miny; - + maxx[j] = _maxx; maxy[j] = _maxy; + } else { minx[0] = min(minx[0], _minx); miny[0] = min(miny[0], _miny); @@ -113,11 +117,13 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr } } + print(minx, miny); + var res = []; var crop = []; var atlas = []; - for( var i = 0, n = _amo; i < n; i++ ) { + for( var i = 0; i < _amo; i++ ) { var _surf = _inSurf[i]; var _ind = _array == 0? 0 : i; @@ -128,11 +134,15 @@ function Node_Crop_Content(_x, _y, _group = noone) : Node(_x, _y, _group) constr res[i] = surface_create_valid(resDim[DIMENSION.width], resDim[DIMENSION.height], cDep); crop[i] = [ surface_get_width_safe(_surf) - maxx[_ind] - 1, miny[_ind], minx[_ind], surface_get_height_safe(_surf) - maxy[_ind] - 1 ]; + var _sx = -minx[_ind] + _padd[PADDING.left]; + var _sy = -miny[_ind] + _padd[PADDING.top]; + surface_set_shader(res[i], noone); - draw_surface_safe(_surf, -minx[_ind] + _padd[PADDING.left], -miny[_ind] + _padd[PADDING.top]); + draw_surface_safe(_surf, _sx, _sy); surface_reset_shader(); atlas[i] = new SurfaceAtlas(res[i], minx[_ind], miny[_ind]); + draw_transforms[i] = [_sx, _sy, 1, 1, 0]; } if(!_arr) { diff --git a/scripts/node_delay_value/node_delay_value.gml b/scripts/node_delay_value/node_delay_value.gml index 8b68236ba..5cc9c0b28 100644 --- a/scripts/node_delay_value/node_delay_value.gml +++ b/scripts/node_delay_value/node_delay_value.gml @@ -7,7 +7,7 @@ function Node_Delay_Value(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Delay Value"; is_simulation = true; - setDimension(96, 32 + 24); + setDimension(96, 48); newInput(0, nodeValue("Value", self, CONNECT_TYPE.input, VALUE_TYPE.any, noone)) .setVisible(true, true); diff --git a/scripts/node_fn_wave_table/node_fn_wave_table.gml b/scripts/node_fn_wave_table/node_fn_wave_table.gml index 13be26c07..8780ce6f8 100644 --- a/scripts/node_fn_wave_table/node_fn_wave_table.gml +++ b/scripts/node_fn_wave_table/node_fn_wave_table.gml @@ -26,10 +26,10 @@ function Node_Fn_WaveTable(_x, _y, _group = noone) : Node_Fn(_x, _y, _group) con wavetable_selecting = noone; wavetable_menu = [ - new MenuItem("Sine", function() /*=>*/ { wavetable_apply(WAVETABLE_FN.sine); }, [ s_inspector_wavetable, 0 ]), - new MenuItem("Square", function() /*=>*/ { wavetable_apply(WAVETABLE_FN.square); }, [ s_inspector_wavetable, 1 ]), - new MenuItem("Triangle", function() /*=>*/ { wavetable_apply(WAVETABLE_FN.tri); }, [ s_inspector_wavetable, 2 ]), - new MenuItem("Sawtooth", function() /*=>*/ { wavetable_apply(WAVETABLE_FN.saw); }, [ s_inspector_wavetable, 3 ]), + new MenuItem("Sine", function() /*=>*/ {return wavetable_apply(WAVETABLE_FN.sine)} , [ s_inspector_wavetable, 0 ]), + new MenuItem("Square", function() /*=>*/ {return wavetable_apply(WAVETABLE_FN.square)} , [ s_inspector_wavetable, 1 ]), + new MenuItem("Triangle", function() /*=>*/ {return wavetable_apply(WAVETABLE_FN.tri)} , [ s_inspector_wavetable, 3 ]), + new MenuItem("Sawtooth", function() /*=>*/ {return wavetable_apply(WAVETABLE_FN.saw)} , [ s_inspector_wavetable, 2 ]), ]; wavetable_editor = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus, _panel = noone) { @@ -207,8 +207,8 @@ function Node_Fn_WaveTable(_x, _y, _group = noone) : Node_Fn(_x, _y, _group) con switch(attributes.wavetable[_ind]) { case WAVETABLE_FN.sine : return sin(_x * pi * 2); case WAVETABLE_FN.square : return (1 - floor(frac(_x) * 2)) * 2 - 1; - case WAVETABLE_FN.tri : return frac(_x + 0.5) * 2 - 1; - case WAVETABLE_FN.saw : return abs(frac(_x + .5) - .5) * 2 * 2 - 1; + case WAVETABLE_FN.tri : return abs(frac(_x + .5) - .5) * 2 * 2 - 1; + case WAVETABLE_FN.saw : return frac(_x + 0.5) * 2 - 1; } return 0; diff --git a/scripts/node_padding/node_padding.gml b/scripts/node_padding/node_padding.gml index 34978f4b7..934a89527 100644 --- a/scripts/node_padding/node_padding.gml +++ b/scripts/node_padding/node_padding.gml @@ -38,6 +38,9 @@ function Node_Padding(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c attribute_surface_depth(); + draw_transforms = []; + static drawOverlayTransform = function(_node) { return array_safe_get(draw_transforms, preview_index, noone); } + static step = function() { var mode = getInputData(5); @@ -85,6 +88,9 @@ function Node_Padding(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c BLEND_NORMAL surface_reset_target(); } + + draw_transforms[_array_index] = [ padding[2], padding[1], 1, 1, 0]; + } else if(mode == 1) { _outSurf = surface_verify(_outSurf, dim[0], dim[1], cDep); @@ -113,6 +119,8 @@ function Node_Padding(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c draw_surface_safe(surf, sx, sy); BLEND_NORMAL surface_reset_target(); + + draw_transforms[_array_index] = [ sx, sy, 1, 1, 0 ]; } return _outSurf; diff --git a/scripts/node_path_3d/node_path_3d.gml b/scripts/node_path_3d/node_path_3d.gml index 741f30252..9622092af 100644 --- a/scripts/node_path_3d/node_path_3d.gml +++ b/scripts/node_path_3d/node_path_3d.gml @@ -322,8 +322,8 @@ function Node_Path_3D(_x, _y, _group = noone) : Node(_x, _y, _group) constructor draw_line(_ax0, _ay0, xx, yy); draw_line(_ax1, _ay1, xx, yy); - draw_sprite_colored(THEME.anchor_selector, 2, _ax0, _ay0); - draw_sprite_colored(THEME.anchor_selector, 2, _ax1, _ay1); + draw_circle_ui(_ax0, _ay0, 4, 0, COLORS._main_accent); + draw_circle_ui(_ax1, _ay1, 4, 0, COLORS._main_accent); } draw_sprite_colored(THEME.anchor_selector, 0, xx, yy); @@ -339,12 +339,12 @@ function Node_Path_3D(_x, _y, _group = noone) : Node(_x, _y, _group) constructor hover_type = 0; } else if(cont && point_in_circle(_mx, _my, _ax0, _ay0, 8)) { - draw_sprite_colored(THEME.anchor_selector, 0, _ax0, _ay0); + draw_circle_ui(_ax0, _ay0, 6, 0, COLORS._main_accent); anchor_hover = i; hover_type = 1; } else if(cont && point_in_circle(_mx, _my, _ax1, _ay1, 8)) { - draw_sprite_colored(THEME.anchor_selector, 0, _ax1, _ay1); + draw_circle_ui(_ax1, _ay1, 6, 0, COLORS._main_accent); anchor_hover = i; hover_type = -1; } diff --git a/scripts/node_path_3d_camera/node_path_3d_camera.gml b/scripts/node_path_3d_camera/node_path_3d_camera.gml index 7e9b868e6..bfb36fa96 100644 --- a/scripts/node_path_3d_camera/node_path_3d_camera.gml +++ b/scripts/node_path_3d_camera/node_path_3d_camera.gml @@ -91,7 +91,7 @@ function Node_Path_3D_Camera(_x, _y, _group = noone) : Node_3D_Object(_x, _y, _g if(is_path) { var _nodeFrom = inputs[in_d3d + 2].value_from.node; if(struct_has(_nodeFrom, "drawOverlay3D")) - _nodeFrom.drawOverlay3D(false, params, _mx, _my, _snx, _sny, _panel); + _nodeFrom.drawOverlay3D(active, params, _mx, _my, _snx, _sny, _panel); } var preObj = getPreviewObjects(); diff --git a/scripts/node_scale/node_scale.gml b/scripts/node_scale/node_scale.gml index 0c07a0df1..4a70625d0 100644 --- a/scripts/node_scale/node_scale.gml +++ b/scripts/node_scale/node_scale.gml @@ -36,11 +36,13 @@ function Node_Scale(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con static step = function() { var _surf = getSingleValue(0); - var _atlas = is_instanceof(_surf, SurfaceAtlas); inputs[5].setVisible(_atlas); } + draw_transforms = []; + static drawOverlayTransform = function(_node) { return array_safe_get(draw_transforms, preview_index, noone); } + static processData = function(_outSurf, _data, _output_index, _array_index) { var surf = _data[0]; var scale = _data[1]; @@ -58,16 +60,19 @@ function Node_Scale(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con var _surf = isAtlas? _outSurf.getSurface() : _outSurf; var ww, hh, scx = 1, scy = 1; + var _sw = surface_get_width_safe(surf); + var _sh = surface_get_height_safe(surf); + switch(mode) { case 0 : scx = scale; scy = scale; - ww = scale * surface_get_width_safe(surf); - hh = scale * surface_get_height_safe(surf); + ww = scale * _sw; + hh = scale * _sh; break; case 1 : - scx = targ[0] / surface_get_width_safe(surf); - scy = targ[1] / surface_get_height_safe(surf); + scx = targ[0] / _sw; + scy = targ[1] / _sh; ww = targ[0]; hh = targ[1]; break; @@ -80,6 +85,8 @@ function Node_Scale(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con draw_surface_stretched_safe(_data[0], 0, 0, ww, hh); surface_reset_shader(); + draw_transforms[_array_index] = [ 0, 0, ww * _sw, hh * _sh, 0]; + if(isAtlas) { if(_atlS) { _outSurf.x = surf.x * scx; diff --git a/scripts/node_scale_algo/node_scale_algo.gml b/scripts/node_scale_algo/node_scale_algo.gml index e79c03bfc..30c8cfae8 100644 --- a/scripts/node_scale_algo/node_scale_algo.gml +++ b/scripts/node_scale_algo/node_scale_algo.gml @@ -48,6 +48,9 @@ function Node_Scale_Algo(_x, _y, _group = noone) : Node_Processor(_x, _y, _group attribute_surface_depth(); + draw_transforms = []; + static drawOverlayTransform = function(_node) { return array_safe_get(draw_transforms, preview_index, noone); } + static step = function() { var _surf = getSingleValue(0); var _type = getSingleValue(1); @@ -117,6 +120,8 @@ function Node_Scale_Algo(_x, _y, _group = noone) : Node_Processor(_x, _y, _group surface_reset_shader(); gpu_set_texfilter(false); + draw_transforms[_array_index] = [ 0, 0, sc, sc, 0 ]; + if(isAtlas) { if(_atlS) { _outSurf.x = _data[0].x * sc; diff --git a/scripts/panel_file_explorer/panel_file_explorer.gml b/scripts/panel_file_explorer/panel_file_explorer.gml index e036b1db9..ba23dd370 100644 --- a/scripts/panel_file_explorer/panel_file_explorer.gml +++ b/scripts/panel_file_explorer/panel_file_explorer.gml @@ -9,13 +9,7 @@ function ExpCreateFile(path) { INLINE if(struct_has(global.__temp_fileMap, path)) return global.__temp_fileMap[$ path]; - var f; - - if(directory_exists(path)) - f = new ExpDir(path); - else - f = new ExpFile(path); - + var f = directory_exists(path)? new ExpDir(path) : new ExpFile(path); global.__temp_fileMap[$ path] = f; return f; } @@ -32,10 +26,8 @@ function ExpFile(path) constructor { th_h = 1; static getThumbnail = function() { - if(thumbnail == -1) - return noone; - else if(thumbnail != noone && sprite_exists(thumbnail)) - return thumbnail; + if(thumbnail == -1) return noone; + else if(thumbnail != noone && sprite_exists(thumbnail)) return thumbnail; thumbnail = -1; switch(ext) { @@ -84,28 +76,28 @@ function ExpDir(path) : ExpFile(path) constructor { files = []; if(!directory_exists(path)) return; + var f = file_find_first(path + "/*", fa_directory), fp; - var f = file_find_first(path + "/*", fa_directory); while (f != "") { - var _fp = $"{path}/{f}"; - if(directory_exists(_fp)) { - var _fileObj = ExpCreateFile(_fp); - _fileObj.parent = self; - array_push(directories, _fileObj); - } - f = file_find_next(); + fp = $"{path}/{f}"; + f = file_find_next(); + if(!directory_exists(fp)) continue; + + var _fileObj = ExpCreateFile(fp); + _fileObj.parent = self; + array_push(directories, _fileObj); } file_find_close(); var f = file_find_first(path + "/*", fa_none); while (f != "") { - var _fp = $"{path}/{f}"; - if(file_exists(_fp) && !directory_exists(_fp)) { - var _fileObj = ExpCreateFile(_fp); - _fileObj.parent = self; - array_push(files, _fileObj); - } - f = file_find_next(); + fp = $"{path}/{f}"; + f = file_find_next(); + if(!file_exists(fp) || directory_exists(fp)) continue; + + var _fileObj = ExpCreateFile(fp); + _fileObj.parent = self; + array_push(files, _fileObj); } file_find_close(); @@ -141,9 +133,9 @@ function ExpRoot() constructor { } function Panel_File_Explorer() : PanelContent() constructor { - title = "File Explorer"; - w = ui(320); - h = ui(540); + title = "File Explorer"; + w = ui(320); + h = ui(540); auto_pin = true; fileMap = {}; @@ -151,8 +143,7 @@ function Panel_File_Explorer() : PanelContent() constructor { rootFile = noone; function setRoot(_root = "") { - if(rootFile) - rootFile.destroy(); + if(rootFile) rootFile.destroy(); if(_root != "" && directory_exists(_root)) { root = _root; @@ -177,59 +168,56 @@ function Panel_File_Explorer() : PanelContent() constructor { scroll_y_max = 0; item_height = ui(20); + grid_size = ui(64); cntPad = ui(4); padding = ui(8); top_bar = ui(44); - - grid_size = ui(64); - - tb_root = new textBox(TEXTBOX_INPUT.text, function(val) { setRoot(val); }); + tb_root = new textBox(TEXTBOX_INPUT.text, function(v) /*=>*/ {return setRoot(v)}); file_selectings = []; file_hovering = noone; context_hovering = noone; - file_dragging = false; - file_drag_mx = 0; - file_drag_my = 0; + file_dragging = false; + file_drag_mx = 0; + file_drag_my = 0; - draggable = true; - frame_dragging = false; - frame_drag_mx = false; - frame_drag_my = false; + draggable = true; + frame_dragging = false; + frame_drag_mx = false; + frame_drag_my = false; - path_dragging = -1; - file_focus = noone; + path_dragging = -1; + file_focus = noone; #region menu __menu_file_selecting = noone; __menu_cnxt_selecting = noone; menu_file_image = [ - menuItem("Add as node", function() { + menuItem("Add as node", function() /*=>*/ { var node = Node_create_Image_path(PANEL_GRAPH.graph_cx, PANEL_GRAPH.graph_cy, __menu_file_selecting.path); PANEL_PREVIEW.setNodePreview(node); PANEL_INSPECTOR.inspecting = node; }), - menuItem("Add as canvas", function() { + menuItem("Add as canvas", function() /*=>*/ { var node = nodeBuild("Node_Canvas", PANEL_GRAPH.graph_cx, PANEL_GRAPH.graph_cy).loadImagePath(__menu_file_selecting.path); PANEL_PREVIEW.setNodePreview(node); PANEL_INSPECTOR.inspecting = node; }), - menuItem("Copy path", function() { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy), + menuItem("Copy path", function() /*=>*/ { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy), ]; menu_file_project = [ - menuItem("Open", function() { LOAD_AT(__menu_file_selecting.path); }), - - menuItem("Copy path", function() { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy), + menuItem("Open", function() /*=>*/ { LOAD_AT(__menu_file_selecting.path); }), + menuItem("Copy path", function() /*=>*/ { clipboard_set_text(__menu_file_selecting.path); }, THEME.copy), ]; menu_general = [ - menuItem("New Canvas", function() { + menuItem("New Canvas", function() /*=>*/ { var dia = dialogCall(o_dialog_file_name, mouse_mx + 8, mouse_my + 8); dia.onModify = function (txt) { var _s = surface_create(DEF_SURF_W, DEF_SURF_H); @@ -246,7 +234,7 @@ function Panel_File_Explorer() : PanelContent() constructor { dia.path = __menu_cnxt_selecting.path + "/"; }, THEME.new_file), - menuItem("New Folder", function() { + menuItem("New Folder", function() /*=>*/ { var dia = dialogCall(o_dialog_file_name, mouse_mx + 8, mouse_my + 8); dia.name = "New Folder"; dia.onModify = function (txt) { @@ -257,153 +245,12 @@ function Panel_File_Explorer() : PanelContent() constructor { }, THEME.folder), -1, - menuItem("Refresh", function() { if(rootFile) rootFile.getContent() }), + menuItem("Refresh", function() /*=>*/ { if(rootFile) rootFile.getContent() }), ]; #endregion function onFocusBegin() { PANEL_FILE = self; } - contentPane = new scrollPane(w - padding - padding - cntPad * 2, h - padding - top_bar - cntPad * 2, function(_y, _m, _r) { - draw_clear_alpha(COLORS.panel_bg_clear, 0); - - if(frame_dragging) file_selectings = []; - - file_hovering = noone; - context_hovering = noone; - draggable = true; - - contentPane.hover_content = true; - - var _h = drawDir(rootFile, 0, _y, contentPane.surface_w, _m); - - if(frame_dragging) draw_sprite_stretched_points_clamp(THEME.ui_selection, 0, frame_drag_mx, frame_drag_my, _m[0], _m[1], COLORS._main_accent); - if(context_hovering == noone) - context_hovering = rootFile; - - if(draggable && mouse_press(mb_left, pFOCUS)) { - if(file_hovering == noone) { - file_selectings = []; - frame_dragging = true; - frame_drag_mx = _m[0]; - frame_drag_my = _m[1]; - - } else { - if(key_mod_press(SHIFT)) { - if(!array_empty(file_selectings)) { - var _frm = file_selectings[array_length(file_selectings) - 1]; - var _to = file_hovering; - - if(is_instanceof(_frm, ExpFile) && is_instanceof(_to, ExpFile) && _frm.parent && _frm.parent == _to.parent) { - var _par = _frm.parent; - var _ifrm = array_find(_par.files, _frm); - var _ito = array_find(_par.files, _to); - - file_selectings = array_create(abs(_ifrm - _ito) + 1); - var _i = min(_ifrm, _ito); - var _j = max(_ifrm, _ito); - var _ind = 0; - - for(; _i <= _j; _i++) file_selectings[_ind++] = _par.files[_i]; - } - } - - } else if(!array_exists(file_selectings, file_hovering)) - file_selectings = [ file_hovering ]; - - path_dragging = -1; - file_dragging = true; - file_drag_mx = mouse_mx; - file_drag_my = mouse_my; - } - } - - if(mouse_release(mb_left)) frame_dragging = false; - - if(pFOCUS && mouse_press(mb_right)) { - __menu_cnxt_selecting = context_hovering; - - if(file_hovering == noone || is_instanceof(file_hovering, ExpDir)) - menuCall("", menu_general); - } - - if(file_dragging) { - if(path_dragging == -1 && point_distance(file_drag_mx, file_drag_my, mouse_mx, mouse_my) > 8) { - path_dragging = []; - - for (var i = 0, n = array_length(file_selectings); i < n; i++) - path_dragging[i] = file_selectings[i].path; - } - - if(path_dragging != -1 && !array_empty(path_dragging) && !pHOVER) { - if(HOVER && is_instanceof(HOVER, Panel)) { - var _cont = HOVER.getContent(); - if(is_instanceof(_cont, Panel_Preview) || is_instanceof(_cont, Panel_Graph)) - HOVER.draw_droppable = true; - } - } - - if(mouse_release(mb_left)) { - var _file_focus = file_focus; - file_focus = noone; - - if(path_dragging != -1 && !array_empty(path_dragging) && !pHOVER) { - var _dropped = false; - - if(HOVER && is_instanceof(HOVER, Panel)) { - var _cont = HOVER.getContent(); - - if(is_instanceof(_cont, Panel_Preview)) { - var _node = _cont.getNodePreview(); - - if(_node && _node.on_drop_file) { - _node.on_drop_file(path_dragging[0]); - _dropped = true; - } - } - - if(array_length(file_selectings) == 1) - file_focus = file_selectings[0]; - } - - if(!_dropped) - load_file_path(path_dragging); - } - - if(_file_focus != file_focus) - recordAction_variable_change(self, "file_focus", _file_focus); - - file_dragging = false; - path_dragging = -1; - - } else if(keyboard_check_pressed(vk_control)) { - __menu_file_selecting = file_selectings[0]; - - if(path_is_image(__menu_file_selecting.path)) - pieMenuCall("",,, menu_file_image); - - else if(path_is_project(__menu_file_selecting.path)) - pieMenuCall("",,, menu_file_project); - - file_dragging = false; - path_dragging = -1; - - } - } - - if(view_mode == FILE_EXPLORER_VIEW.grid && pHOVER && key_mod_press(CTRL)) { - if(mouse_wheel_down()) grid_size = clamp(grid_size - ui(8), ui(32), ui(128)); - if(mouse_wheel_up()) grid_size = clamp(grid_size + ui(8), ui(32), ui(128)); - } - - return _h; - - } ); - - function onResize() { #region - initSize(); - contentPane.resize(w - padding - padding - cntPad * 2, h - padding - top_bar - cntPad * 2); - } #endregion - function drawDir(dirObject, _x, _y, _w, _m) { var _h = 0; var _sy = _y; @@ -469,10 +316,7 @@ function Panel_File_Explorer() : PanelContent() constructor { } } - if(array_length(dirObject.files)) { - _h += ui(4); - _sy += ui(4); - } + if(array_length(dirObject.files)) { _h += ui(4); _sy += ui(4); } if(view_mode == FILE_EXPLORER_VIEW.list) { draw_set_text(f_p2, fa_left, fa_top, COLORS._main_text); @@ -491,28 +335,22 @@ function Panel_File_Explorer() : PanelContent() constructor { array_push(file_selectings, _fil); var _sel = array_exists(file_selectings, _fil); - var _tx = _px + ui(2); var _ty = _py + ui(2); var _th = _fil.getThumbnail(); - draw_set_color(c_white); - gpu_set_colorwriteenable(1, 1, 1, 0); - draw_rectangle(_px, _py, _px + _tw, _py + _ph, false); - gpu_set_colorwriteenable(1, 1, 1, 1); - - if(_sel) draw_sprite_stretched_ext(THEME.ui_panel_bg, 4, _px, _py, _tw, _ph, merge_color(COLORS._main_icon_dark, COLORS._main_icon, 0.3), 1); + if(_sel) draw_sprite_stretched_ext(THEME.ui_panel_bg, 4, _px, _py, _tw, _ph, merge_color(COLORS._main_icon_dark, COLORS._main_icon, 0.2), 1); if(point_in_rectangle(_m[0], _m[1], _px, _py, _px + _pw, _py + _ph)) { var _bx = _px + _tw + ui(4); if(path_is_image(_fil.path)) { - if(buttonInstant(noone, _bx, _py, _ph, _ph, _m, pHOVER, pFOCUS, "", THEME.image_20, 0, [ COLORS._main_icon, c_white ]) == 2) { + if(buttonInstant(noone, _bx, _py, _ph, _ph, _m, pHOVER, pFOCUS, "Import as Image", THEME.image_20, 0, [ COLORS._main_icon, c_white ]) == 2) { Node_create_Image_path(_graph_x, _graph_y, _fil.path); draggable = false; } _bx += _ph + ui(2); - if(buttonInstant(noone, _bx, _py, _ph, _ph, _m, pHOVER, pFOCUS, "", THEME.canvas_20, 0, [ COLORS._main_icon, c_white ]) == 2) { + if(buttonInstant(noone, _bx, _py, _ph, _ph, _m, pHOVER, pFOCUS, "Import as Canvas", THEME.canvas_20, 0, [ COLORS._main_icon, c_white ]) == 2) { var node = nodeBuild("Node_Canvas", _graph_x, _graph_y).loadImagePath(_fil.path); PANEL_PREVIEW.setNodePreview(node); PANEL_INSPECTOR.inspecting = node; @@ -521,7 +359,7 @@ function Panel_File_Explorer() : PanelContent() constructor { } _bx += _ph + ui(2); } else if(path_is_project(_fil.path)) { - if(buttonInstant(noone, _bx, _py, _ph, _ph, _m, pHOVER, pFOCUS, "", THEME.path_open_20, 0, [ COLORS._main_icon, c_white ]) == 2) { + if(buttonInstant(noone, _bx, _py, _ph, _ph, _m, pHOVER, pFOCUS, "Open Project", THEME.path_open_20, 0, [ COLORS._main_icon, c_white ]) == 2) { LOAD_AT(_fil.path); draggable = false; } _bx += _ph + ui(2); @@ -531,7 +369,7 @@ function Panel_File_Explorer() : PanelContent() constructor { if(contentPane.hover && point_in_rectangle(_m[0], _m[1], _px, _py, _px + _tw, _py + _ph)) { if(!mouse_click(mb_left)) { - draw_sprite_stretched_ext(THEME.ui_panel, 1, _px, _py, _tw, _ph, COLORS._main_icon_light, 1); + draw_sprite_stretched_ext(THEME.ui_panel, 1, _px, _py, _tw, _ph, COLORS._main_icon, .75); if(!instance_exists(o_dialog_menubox)) TOOLTIP = [ _th, "sprite" ]; } @@ -555,12 +393,18 @@ function Panel_File_Explorer() : PanelContent() constructor { } if(sprite_exists(_th)) { + gpu_set_texfilter(true); var _ths = min(1, (_ph - ui(4)) / _fil.th_w, (_ph - ui(4)) / _fil.th_h); draw_sprite_ext(_th, 0, _tx + _ph / 2, _py + _ph / 2, _ths, _ths, 0, c_white, 1); + gpu_set_texfilter(false); } _tx += _ph + ui(4); - draw_set_color(_fil == file_focus? COLORS._main_value_positive : COLORS._main_text); + var _cc = COLORS._main_text; + if(_fil == file_focus) _cc = COLORS._main_value_positive; + if(_fil.path == PROJECT.path) _cc = COLORS._main_accent; + + draw_set_color(_cc); draw_text_add(_tx, _ty, _fil.name); _h += _ith + ui(2); @@ -587,31 +431,20 @@ function Panel_File_Explorer() : PanelContent() constructor { var _pw = _grid_width; var _ph = _grid_height + _title_heigh; - // if(i == _amo - 1) { - // draw_sprite_ext(THEME.add, 0, _px + _grid_width / 2, _py + _grid_height / 2, 1, 1, 0, COLORS._main_value_positive, 1); - // continue; - // } - var _fil = dirObject.files[i]; if(frame_dragging && rectangle_in_rectangle(_px, _py, _px + _pw, _py + _ph, frame_drag_mx, frame_drag_my, _m[0], _m[1])) array_push(file_selectings, _fil); var _sel = array_exists(file_selectings, _fil); - var _tx = _px + _grid_width / 2; var _ty = _py + _grid_height + _title_heigh; var _th = _fil.getThumbnail(); - draw_set_color(c_white); - gpu_set_colorwriteenable(1, 1, 1, 0); - draw_rectangle(_px, _py, _px + _pw, _py + _ph, false); - gpu_set_colorwriteenable(1, 1, 1, 1); - - if(_sel) draw_sprite_stretched_ext(THEME.ui_panel_bg, 4, _px, _py, _pw, _ph, merge_color(COLORS._main_icon_dark, COLORS._main_icon, 0.3), 1); + if(_sel) draw_sprite_stretched_ext(THEME.ui_panel_bg, 4, _px, _py, _pw, _ph, merge_color(COLORS._main_icon_dark, COLORS._main_icon, 0.2), 1); if(contentPane.hover && point_in_rectangle(_m[0], _m[1], _px, _py, _px + _pw, _py + _ph)) { if(!mouse_click(mb_left)) { - draw_sprite_stretched_ext(THEME.ui_panel, 1, _px, _py, _pw, _ph, COLORS._main_icon_light, 1); + draw_sprite_stretched_ext(THEME.ui_panel, 1, _px, _py, _pw, _ph, COLORS._main_icon, .75); if(!instance_exists(o_dialog_menubox)) TOOLTIP = [ _th, "sprite" ]; } @@ -635,11 +468,17 @@ function Panel_File_Explorer() : PanelContent() constructor { } if(sprite_exists(_th)) { + gpu_set_texfilter(true); var _ths = min((_grid_width - ui(4)) / _fil.th_w, (_grid_height - ui(4)) / _fil.th_h); draw_sprite_ext(_th, 0, _px + _grid_width / 2, _py + _grid_height / 2, _ths, _ths, 0, c_white, 1); + gpu_set_texfilter(false); } - draw_set_color(_fil == file_focus? COLORS._main_value_positive : COLORS._main_text); + var _cc = COLORS._main_text; + if(_fil == file_focus) _cc = COLORS._main_value_positive; + if(_fil.path == PROJECT.path) _cc = COLORS._main_accent; + + draw_set_color(_cc); draw_text_ext_add(_tx, _ty, _fil.name, -1, _grid_width, 1, true); } @@ -653,8 +492,148 @@ function Panel_File_Explorer() : PanelContent() constructor { return _h; } + contentPane = new scrollPane(w - padding - padding - cntPad * 2, h - padding - top_bar - cntPad * 2, function(_y, _m, _r) { + draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); + + if(frame_dragging) file_selectings = []; + + file_hovering = noone; + context_hovering = noone; + draggable = true; + + contentPane.hover_content = true; + + var _h = drawDir(rootFile, 0, _y, contentPane.surface_w, _m); + + if(frame_dragging) draw_sprite_stretched_points_clamp(THEME.ui_selection, 0, frame_drag_mx, frame_drag_my, _m[0], _m[1], COLORS._main_accent); + if(context_hovering == noone) context_hovering = rootFile; + + if(draggable && mouse_press(mb_left, pFOCUS)) { + if(file_hovering == noone) { + file_selectings = []; + frame_dragging = true; + frame_drag_mx = _m[0]; + frame_drag_my = _m[1]; + + } else { + if(key_mod_press(SHIFT)) { + if(!array_empty(file_selectings)) { + var _frm = file_selectings[array_length(file_selectings) - 1]; + var _to = file_hovering; + + if(is(_frm, ExpFile) && is(_to, ExpFile) && _frm.parent && _frm.parent == _to.parent) { + var _par = _frm.parent; + var _ifrm = array_find(_par.files, _frm); + var _ito = array_find(_par.files, _to); + + file_selectings = array_create(abs(_ifrm - _ito) + 1); + var _i = min(_ifrm, _ito); + var _j = max(_ifrm, _ito); + var _ind = 0; + + for(; _i <= _j; _i++) file_selectings[_ind++] = _par.files[_i]; + } + } + + } else if(!array_exists(file_selectings, file_hovering)) + file_selectings = [ file_hovering ]; + + path_dragging = -1; + file_dragging = true; + file_drag_mx = mouse_mx; + file_drag_my = mouse_my; + } + } + + if(mouse_release(mb_left)) frame_dragging = false; + + if(pFOCUS && mouse_press(mb_right)) { + __menu_cnxt_selecting = context_hovering; + + if(file_hovering == noone || is(file_hovering, ExpDir)) + menuCall("", menu_general); + } + + if(file_dragging) { + if(path_dragging == -1 && point_distance(file_drag_mx, file_drag_my, mouse_mx, mouse_my) > 8) { + path_dragging = []; + + for (var i = 0, n = array_length(file_selectings); i < n; i++) + path_dragging[i] = file_selectings[i].path; + } + + if(path_dragging != -1 && !array_empty(path_dragging) && !pHOVER) { + if(HOVER && is(HOVER, Panel)) { + var _cont = HOVER.getContent(); + if(is(_cont, Panel_Preview) || is(_cont, Panel_Graph)) + HOVER.draw_droppable = true; + } + } + + if(mouse_release(mb_left)) { + var _file_focus = file_focus; + file_focus = noone; + + if(path_dragging != -1 && !array_empty(path_dragging) && !pHOVER) { + var _dropped = false; + + if(HOVER && is(HOVER, Panel)) { + var _cont = HOVER.getContent(); + + if(is(_cont, Panel_Preview)) { + var _node = _cont.getNodePreview(); + + if(_node && _node.on_drop_file) { + _node.on_drop_file(path_dragging[0]); + _dropped = true; + } + } + + if(array_length(file_selectings) == 1) + file_focus = file_selectings[0]; + } + + if(!_dropped) + load_file_path(path_dragging); + } + + if(_file_focus != file_focus) + recordAction_variable_change(self, "file_focus", _file_focus); + + file_dragging = false; + path_dragging = -1; + + } else if(keyboard_check_pressed(vk_control)) { + __menu_file_selecting = file_selectings[0]; + + if(path_is_image(__menu_file_selecting.path)) + pieMenuCall("",,, menu_file_image); + + else if(path_is_project(__menu_file_selecting.path)) + pieMenuCall("",,, menu_file_project); + + file_dragging = false; + path_dragging = -1; + + } + } + + if(view_mode == FILE_EXPLORER_VIEW.grid && pHOVER && key_mod_press(CTRL)) { + if(mouse_wheel_down()) grid_size = clamp(grid_size - ui(8), ui(32), ui(128)); + if(mouse_wheel_up()) grid_size = clamp(grid_size + ui(8), ui(32), ui(128)); + } + + return _h; + + } ); + + function onResize() { + initSize(); + contentPane.resize(w - padding - padding - cntPad * 2, h - padding - top_bar - cntPad * 2); + } + function drawContent(panel) { - draw_clear_alpha(COLORS.panel_bg_clear, 0); + draw_clear_alpha(COLORS.panel_bg_clear, 1); var pad = padding; var cnt_x = pad; @@ -665,10 +644,20 @@ function Panel_File_Explorer() : PanelContent() constructor { draw_sprite_stretched(THEME.ui_panel_bg, 1, cnt_x, cnt_y, cnt_w, cnt_h); var bs = top_bar - pad - ui(8); - if(buttonInstant(THEME.button_hide_fill, pad, pad, bs, bs, [mx, my], pHOVER, pFOCUS, "Go up", THEME.arrow, 1, root != ""? COLORS._main_icon : COLORS._main_icon_dark) == 2) + var bx = pad; + var bc = root != ""? COLORS._main_icon : COLORS._main_icon_dark; + if(buttonInstant(THEME.button_hide_fill, bx, pad, bs, bs, [mx, my], pHOVER, pFOCUS, "Go up", THEME.arrow, 1, bc) == 2) if(root != "") setRoot(filename_dir(root)); + bx += bs + ui(4); - var tb_x = cnt_x + ui(32); + if(buttonInstant(THEME.button_hide_fill, bx, pad, bs, bs, [mx, my], pHOVER, pFOCUS, "Go to current project", s_icon_16_white) == 2) { + var _pth = PROJECT.path; + if(_pth == "") return; + setRoot(filename_dir(_pth)); + } + bx += bs + ui(4); + + var tb_x = bx; var tb_y = pad; var tb_w = w - pad - tb_x - bs - ui(4); var tb_h = top_bar - pad - ui(8); @@ -690,22 +679,17 @@ function Panel_File_Explorer() : PanelContent() constructor { } function drawGUI() { - if(path_dragging != -1) { + if(path_dragging == -1) return; - for (var i = 0, n = array_length(file_selectings); i < n; i++) { - var f = file_selectings[i]; + for (var i = 0, n = array_length(file_selectings); i < n; i++) { + var f = file_selectings[i]; + + if(is(f, ExpDir)) { + draw_sprite_ext(THEME.folder_content, 0, mouse_mx + 20 + 8 * i, mouse_my + 20 + 8 * i, 1, 1, 0, c_white, 1); - if(is_instanceof(f, ExpDir)) { - draw_sprite_ext(THEME.folder_content, 0, mouse_mx + 20 + 8 * i, - mouse_my + 20 + 8 * i, - 1, 1, 0, c_white, 1); - - } else if(is_instanceof(f, ExpFile)) { - var _s = 64 / max(f.th_w, f.th_h); - if(f.thumbnail) draw_sprite_ext(f.thumbnail, 0, mouse_mx + f.th_w * _s / 2 + 8 * i, - mouse_my + f.th_h * _s / 2 + 8 * i, - _s, _s, 0, c_white, 1); - } + } else if(is(f, ExpFile)) { + var _s = 64 / max(f.th_w, f.th_h); + if(f.thumbnail) draw_sprite_ext(f.thumbnail, 0, mouse_mx + f.th_w * _s / 2 + 8 * i, mouse_my + f.th_h * _s / 2 + 8 * i, _s, _s, 0, c_white, 1); } } } diff --git a/sprites/s_icon_16_white/5be69b3e-a07f-48b0-98b1-36e6c85f1720.png b/sprites/s_icon_16_white/5be69b3e-a07f-48b0-98b1-36e6c85f1720.png new file mode 100644 index 0000000000000000000000000000000000000000..ba553d028b617e83e693ddbfc81b55e274c751f5 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3dtTpz6=aiY77hwEes65fI|H*Yfq_xq)5S5w;&kg|TR$g9 zk=Ff=iW`pvi6uVb+8|gZo**|x%}gZZ*3BEQnR=Gmu5&!_WGAEa_Xge?GvhQPn-6Bj z-_y_CDSpnAvW(4CWaGT3-MQLd^+ZdrY}^$h{>tO+kvqON8v@f`?fo^^LFmAahizKV zmR+2m61!E{Bdhu*!-f+K*Rr-RC|iHa%kK8Jlize7Y&kKXaf=fNlRqy*>KjMf@P6gF zj`#f3`Sf@3uzTjJf_k$H0KUnT59o=hw#rjsTY?_F6 zY22$89~I%PtG`|SE;0YutgPvNLI>8oSQXE3Mw;Q-%UVV|t~ApP=l(29+I literal 0 HcmV?d00001 diff --git a/sprites/s_icon_16_white/layers/5be69b3e-a07f-48b0-98b1-36e6c85f1720/97b2b845-2e62-4358-86bd-5ea8dd97bef1.png b/sprites/s_icon_16_white/layers/5be69b3e-a07f-48b0-98b1-36e6c85f1720/97b2b845-2e62-4358-86bd-5ea8dd97bef1.png new file mode 100644 index 0000000000000000000000000000000000000000..ba553d028b617e83e693ddbfc81b55e274c751f5 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`3dtTpz6=aiY77hwEes65fI|H*Yfq_xq)5S5w;&kg|TR$g9 zk=Ff=iW`pvi6uVb+8|gZo**|x%}gZZ*3BEQnR=Gmu5&!_WGAEa_Xge?GvhQPn-6Bj z-_y_CDSpnAvW(4CWaGT3-MQLd^+ZdrY}^$h{>tO+kvqON8v@f`?fo^^LFmAahizKV zmR+2m61!E{Bdhu*!-f+K*Rr-RC|iHa%kK8Jlize7Y&kKXaf=fNlRqy*>KjMf@P6gF zj`#f3`Sf@3uzTjJf_k$H0KUnT59o=hw#rjsTY?_F6 zY22$89~I%PtG`|SE;0YutgPvNLI>8oSQXE3Mw;Q-%UVV|t~ApP=l(29+I literal 0 HcmV?d00001 diff --git a/sprites/s_icon_16_white/s_icon_16_white.yy b/sprites/s_icon_16_white/s_icon_16_white.yy new file mode 100644 index 000000000..89754d86f --- /dev/null +++ b/sprites/s_icon_16_white/s_icon_16_white.yy @@ -0,0 +1,90 @@ +{ + "$GMSprite":"", + "%Name":"s_icon_16_white", + "bboxMode":0, + "bbox_bottom":15, + "bbox_left":0, + "bbox_right":15, + "bbox_top":0, + "collisionKind":1, + "collisionTolerance":0, + "DynamicTexturePage":false, + "edgeFiltering":false, + "For3D":false, + "frames":[ + {"$GMSpriteFrame":"","%Name":"5be69b3e-a07f-48b0-98b1-36e6c85f1720","name":"5be69b3e-a07f-48b0-98b1-36e6c85f1720","resourceType":"GMSpriteFrame","resourceVersion":"2.0",}, + ], + "gridX":0, + "gridY":0, + "height":16, + "HTile":false, + "layers":[ + {"$GMImageLayer":"","%Name":"97b2b845-2e62-4358-86bd-5ea8dd97bef1","blendMode":0,"displayName":"default","isLocked":false,"name":"97b2b845-2e62-4358-86bd-5ea8dd97bef1","opacity":100.0,"resourceType":"GMImageLayer","resourceVersion":"2.0","visible":true,}, + ], + "name":"s_icon_16_white", + "nineSlice":null, + "origin":4, + "parent":{ + "name":"meta", + "path":"folders/sprites/meta.yy", + }, + "preMultiplyAlpha":false, + "resourceType":"GMSprite", + "resourceVersion":"2.0", + "sequence":{ + "$GMSequence":"", + "%Name":"s_icon_16_white", + "autoRecord":true, + "backdropHeight":768, + "backdropImageOpacity":0.5, + "backdropImagePath":"", + "backdropWidth":1366, + "backdropXOffset":0.0, + "backdropYOffset":0.0, + "events":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "eventStubScript":null, + "eventToFunction":{}, + "length":1.0, + "lockOrigin":false, + "moments":{ + "$KeyframeStore":"", + "Keyframes":[], + "resourceType":"KeyframeStore", + "resourceVersion":"2.0", + }, + "name":"s_icon_16_white", + "playback":1, + "playbackSpeed":30.0, + "playbackSpeedType":0, + "resourceType":"GMSequence", + "resourceVersion":"2.0", + "showBackdrop":true, + "showBackdropImage":false, + "timeUnits":1, + "tracks":[ + {"$GMSpriteFramesTrack":"","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"$KeyframeStore":"","Keyframes":[ + {"$Keyframe":"","Channels":{ + "0":{"$SpriteFrameKeyframe":"","Id":{"name":"5be69b3e-a07f-48b0-98b1-36e6c85f1720","path":"sprites/s_icon_16_white/s_icon_16_white.yy",},"resourceType":"SpriteFrameKeyframe","resourceVersion":"2.0",}, + },"Disabled":false,"id":"9a0266b0-bb17-477c-a4e2-2ef4de13f1c5","IsCreationKey":false,"Key":0.0,"Length":1.0,"resourceType":"Keyframe","resourceVersion":"2.0","Stretch":false,}, + ],"resourceType":"KeyframeStore","resourceVersion":"2.0",},"modifiers":[],"name":"frames","resourceType":"GMSpriteFramesTrack","resourceVersion":"2.0","spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange":null, + "volume":1.0, + "xorigin":8, + "yorigin":8, + }, + "swatchColours":null, + "swfPrecision":0.5, + "textureGroupId":{ + "name":"Default", + "path":"texturegroups/Default", + }, + "type":0, + "VTile":false, + "width":16, +} \ No newline at end of file