From 5ecca493fbfe15687a6764349d80d08c7c0bb1f2 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Wed, 29 Jan 2025 14:47:54 +0700 Subject: [PATCH] [Flip to VFX] Fix freeze on connect, --- PixelComposer.resource_order | 6 +-- datafiles/data/Nodes/Internal.zip | Bin 9100058 -> 9100059 bytes .../FLIP Fluid/Node_FLIP_to_VFX/info.json | 6 +-- scripts/__VFX/__VFX.gml | 5 ++- scripts/globalvar_drawer/globalvar_drawer.gml | 12 ++++-- scripts/nodeValue_drawer/nodeValue_drawer.gml | 22 ++++++----- .../node_VFX_group_inline.gml | 2 +- .../node_VFX_renderer/node_VFX_renderer.gml | 25 ++++++------ scripts/node_data/node_data.gml | 2 +- scripts/panel_inspector/panel_inspector.gml | 19 ++++----- scripts/render_data/render_data.gml | 36 ++++++++++-------- 11 files changed, 74 insertions(+), 61 deletions(-) diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 7bea213f3..954a1e954 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -316,7 +316,6 @@ {"name":"_addon_custom","order":4,"path":"objects/_addon_custom/_addon_custom.yy",}, {"name":"_p_dialog_undo_block","order":1,"path":"objects/_p_dialog_undo_block/_p_dialog_undo_block.yy",}, {"name":"addon","order":1,"path":"objects/addon/addon.yy",}, - {"name":"FLIP_Domain","order":5,"path":"objects/FLIP_Domain/FLIP_Domain.yy",}, {"name":"o_dialog_add_image","order":3,"path":"objects/o_dialog_add_image/o_dialog_add_image.yy",}, {"name":"o_dialog_add_node","order":1,"path":"objects/o_dialog_add_node/o_dialog_add_node.yy",}, {"name":"o_dialog_assetbox","order":4,"path":"objects/o_dialog_assetbox/o_dialog_assetbox.yy",}, @@ -851,8 +850,9 @@ {"name":"node_FLIP_apply_force","order":8,"path":"scripts/node_FLIP_apply_force/node_FLIP_apply_force.yy",}, {"name":"node_FLIP_apply_velocity","order":7,"path":"scripts/node_FLIP_apply_velocity/node_FLIP_apply_velocity.yy",}, {"name":"node_FLIP_destroy","order":11,"path":"scripts/node_FLIP_destroy/node_FLIP_destroy.yy",}, - {"name":"node_FLIP_domain","order":3,"path":"scripts/node_FLIP_domain/node_FLIP_domain.yy",}, - {"name":"node_FLIP_render","order":4,"path":"scripts/node_FLIP_render/node_FLIP_render.yy",}, + {"name":"node_FLIP_domain","order":4,"path":"scripts/node_FLIP_domain/node_FLIP_domain.yy",}, + {"name":"node_FLIP_group_inline","order":3,"path":"scripts/node_FLIP_group_inline/node_FLIP_group_inline.yy",}, + {"name":"node_FLIP_render","order":5,"path":"scripts/node_FLIP_render/node_FLIP_render.yy",}, {"name":"node_FLIP_repel","order":12,"path":"scripts/node_FLIP_repel/node_FLIP_repel.yy",}, {"name":"node_FLIP_spawner","order":6,"path":"scripts/node_FLIP_spawner/node_FLIP_spawner.yy",}, {"name":"node_FLIP_to_VFX","order":14,"path":"scripts/node_FLIP_to_VFX/node_FLIP_to_VFX.yy",}, diff --git a/datafiles/data/Nodes/Internal.zip b/datafiles/data/Nodes/Internal.zip index ffc8349de3f6bb8cb0c58455cdeeb532cb088d75..d6f642f704422e034fc2db845bdf8c9dcda1b66f 100644 GIT binary patch delta 10534 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 delta 10229 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 var_dragging? j : j - 1); if(j) { - // draw_set_color(merge_color(c_black, COLORS.panel_toolbar_separator, 0.75)); - // draw_line_round(wd_x + ui(8), yy, wd_x + wd_w - ui(16), yy, 2); - yy += _pd_h; hh += _pd_h; } @@ -121,9 +118,16 @@ function globalvar_viewer_draw(xx, yy, ww, _m, focus, hover, _scrollPane, rx, ry if(del != noone) array_delete(_node.inputs, del, 1); + } else { + padd = viewMode == INSP_VIEW_MODE.spacious? ui(8) : ui(4); + if(viewMode == INSP_VIEW_MODE.compact) { + yy += ui(4); + hh += ui(4); + } + for( var j = 0; j < array_length(_node.inputs); j++ ) { - var widg = drawWidget(xx, yy, ww, _m, _node.inputs[j], true, focus, hover, _scrollPane, rx, ry); + var widg = drawWidget(xx, yy, ww, _m, _node.inputs[j], true, hover, focus, _scrollPane, rx, ry); var widH = widg[0]; var mbRight = widg[1]; var widHov = widg[2]; diff --git a/scripts/nodeValue_drawer/nodeValue_drawer.gml b/scripts/nodeValue_drawer/nodeValue_drawer.gml index af0ed5c24..93c46919f 100644 --- a/scripts/nodeValue_drawer/nodeValue_drawer.gml +++ b/scripts/nodeValue_drawer/nodeValue_drawer.gml @@ -42,6 +42,8 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc #region left buttons var butx = xx; + var lb_x = xx + ui(20); + if(jun.connect_type == CONNECT_TYPE.input && jun.isAnimable() && !jun.expUse) { // Animation var index = jun.hasJunctionFrom()? 2 : jun.is_anim; @@ -49,8 +51,10 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc if(jun.is_anim) cc = COLORS._main_value_positive; if(index == 2) cc = COLORS._main_accent; - draw_sprite_ui_uniform(THEME.animate_clock, index, butx, lb_y, 1, cc, 0.8); - if(_hover && point_in_circle(_m[0], _m[1], butx, lb_y, ui(10))) { + var _hov = _hover && point_in_circle(_m[0], _m[1], butx, lb_y, ui(10)); + draw_sprite_ui_uniform(THEME.animate_clock, index, butx, lb_y, 1, cc, .8 + .2 * _hov); + + if(_hov) { cHov = true; if(anim_hold != noone) @@ -69,11 +73,12 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc } } } - + if(anim_hold != noone && mouse_release(mb_left)) anim_hold = noone; - butx += ui(20); if(!global_var) { // Visibility + butx += ui(20); + lb_x += ui(20); var _visi = jun.isVisible(); draw_sprite_ui_uniform(THEME.junc_visible, _visi, butx, lb_y, 1,, 0.8); @@ -87,15 +92,13 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc draw_sprite_ui_uniform(THEME.junc_visible, _visi, butx, lb_y, 1,, 1); TOOLTIP = __txt("Visibility"); - + if(mouse_press(mb_left, _focus)) { jun.setVisibleManual(_visi? -1 : 1); visi_hold = jun.visible_manual; } } - - } else - draw_sprite_ui_uniform(THEME.node_use_expression, 0, butx, lb_y, 1,, 0.8); + } if(visi_hold != noone && mouse_release(mb_left)) visi_hold = noone; @@ -114,7 +117,6 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc draw_set_text(_font, fa_left, fa_center, cc); var lb_w = ui(40 + 16) + string_width(_name); - var lb_x = ui(40) + xx; if(jun.color != -1) { draw_sprite_ext(THEME.timeline_color, 1, lb_x + ui(8), lb_y, 1, 1, 0, jun.color, 1); @@ -143,7 +145,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc } #endregion - #region label + #region draw name draw_text_add(lb_x, lb_y, _name); if(jun.tooltip != "") { // Tooltip diff --git a/scripts/node_VFX_group_inline/node_VFX_group_inline.gml b/scripts/node_VFX_group_inline/node_VFX_group_inline.gml index c02bb1541..c2f3095ac 100644 --- a/scripts/node_VFX_group_inline/node_VFX_group_inline.gml +++ b/scripts/node_VFX_group_inline/node_VFX_group_inline.gml @@ -14,6 +14,7 @@ function Node_VFX_Group_Inline(_x, _y, _group = noone) : Node_Collection_Inline( is_simulation = true; update_on_frame = true; managedRenderOrder = true; + loopable = true; prev_nodes = []; @@ -51,7 +52,6 @@ function Node_VFX_Group_Inline(_x, _y, _group = noone) : Node_Collection_Inline( if(!string_pos("Node_VFX", _ins)) continue; - if(_ins == "Node_VFX_Renderer" || _ins == "Node_VFX_Renderer_Output") continue; diff --git a/scripts/node_VFX_renderer/node_VFX_renderer.gml b/scripts/node_VFX_renderer/node_VFX_renderer.gml index 605e54f2e..190d4a4eb 100644 --- a/scripts/node_VFX_renderer/node_VFX_renderer.gml +++ b/scripts/node_VFX_renderer/node_VFX_renderer.gml @@ -42,7 +42,7 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr array_push(input_display_list, ["Particle", false], index + 0, index + 1); return inputs[index + 1]; - } + } setDynamicInput(2, true, VALUE_TYPE.particle); dyna_input_check_shift = 1; @@ -80,13 +80,12 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr var surf_w = surface_get_width_safe(_outSurf); var surf_h = surface_get_height_safe(_outSurf); - surface_set_shader(_outSurf, _type == PARTICLE_RENDER_TYPE.surface? sh_sample : noone); - if(_type == PARTICLE_RENDER_TYPE.surface) - shader_set_interpolation(_outSurf); + surface_set_shader(_outSurf, noone); + var blend, parts, part, _part; - for( var i = input_fix_len; i < array_length(inputs); i += data_length ) { - var blend = inputs[i + 0].getValue(_time); - var parts = inputs[i + 1].getValue(_time); + for( var i = input_fix_len, n = array_length(inputs); i < n; i += data_length ) { + blend = inputs[i + 0].getValue(_time); + parts = inputs[i + 1].getValue(_time); switch(blend) { case PARTICLE_BLEND_MODE.normal: BLEND_NORMAL break; @@ -97,16 +96,16 @@ function Node_VFX_Renderer(_x, _y, _group = noone) : Node(_x, _y, _group) constr if(!is_array(parts) || array_length(parts) == 0) continue; if(!is_array(parts[0])) parts = [ parts ]; - for(var j = 0; j < array_length(parts); j++) { - var part = parts[j]; + for( var j = 0, m = array_length(parts); j < m; j++ ) { + part = parts[j]; - for(var k = 0; k < array_length(part); k++) { - var _part = part[k]; - + for( var k = 0, p = array_length(part); k < p; k++ ) { + _part = part[k]; _part.render_type = _type; _part.line_draw = _llife; - if(_part.active || _type) _part.draw(_exact, surf_w, surf_h); + if(_part.active || _type) + _part.draw(_exact, surf_w, surf_h); } } } diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index cc71f7813..e12981649 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -479,7 +479,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { if(dummy_input) dummy_input.index = _ina; inputs = _in; - refreshNodeDisplay(); + setHeight(); if(input_display_dynamic == -1) input_display_list = _input_display_list; } diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index 49173532d..a30b9783d 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -226,10 +226,10 @@ function Panel_Inspector() : PanelContent() constructor { meta_steam_avatar = new checkBox(function() { STEAM_UGC_ITEM_AVATAR = !STEAM_UGC_ITEM_AVATAR; }); - global_buttons = [ - button(function() /*=>*/ { meta_display[2][1] = false; var_editing = !var_editing; } ).setIcon(THEME.gear_16, 0, COLORS._main_icon_light), - button(function() /*=>*/ { meta_display[2][1] = false; PROJECT.globalNode.createValue(); } ).setIcon(THEME.add_16, 0, COLORS._main_value_positive), - ]; + global_button_edit = button(function() /*=>*/ { meta_display[2][1] = false; var_editing = !var_editing; }).setIcon(THEME.gear_16, 0, COLORS._main_icon_light); + global_button_new = button(function() /*=>*/ { meta_display[2][1] = false; PROJECT.globalNode.createValue(); }).setIcon(THEME.add_16, 0, COLORS._main_value_positive); + global_buttons = [ global_button_edit ]; + global_buttons_editing = [ global_button_edit, global_button_new ]; GM_Explore_draw_init(); #endregion @@ -450,17 +450,18 @@ function Panel_Inspector() : PanelContent() constructor { var _x1 = con_w; var _y1 = yy + ui(2); - var _amo = array_length(global_buttons); + var _butts = var_editing? global_buttons_editing : global_buttons; + var _amo = array_length(_butts); var _tw = (_bw + ui(4)) * _amo; draw_sprite_stretched_ext(THEME.box_r5_clr, 0, con_w - _tw, yy, _tw, lbh, COLORS.panel_inspector_group_bg, 1); - global_buttons[0].icon = var_editing? THEME.accept_16 : THEME.gear_16; - global_buttons[0].icon_blend = var_editing? COLORS._main_value_positive : COLORS._main_icon_light; + global_button_edit.icon = var_editing? THEME.accept_16 : THEME.gear_16; + global_button_edit.icon_blend = var_editing? COLORS._main_value_positive : COLORS._main_icon_light; - for (var j = 0, m = array_length(global_buttons); j < m; j++) { + for (var j = 0, m = array_length(_butts); j < m; j++) { _x1 -= _bw + ui(4); - var _b = global_buttons[j]; + var _b = _butts[j]; _b.setFocusHover(pFOCUS, _hover); _b.draw(_x1 + ui(2), _y1, _bw, _bh, _m, THEME.button_hide_fill); if(_b.inBBOX(_m)) contentPane.hover_content = true; diff --git a/scripts/render_data/render_data.gml b/scripts/render_data/render_data.gml index 219fe80e4..76daddde9 100644 --- a/scripts/render_data/render_data.gml +++ b/scripts/render_data/render_data.gml @@ -48,12 +48,11 @@ function NodeTopoSort() { } function NodeListSort(_nodeList) { - var _arr = []; - __topoSort(_arr, _nodeList); + var _arr = __topoSort([], _nodeList); return _arr; } -function __sortNode(_arr, _node, _sorted) { +function __sortNode(_arr, _node, _sorted, _nodeMap = undefined) { if(struct_has(_sorted, _node.node_id)) return; var _parents = []; @@ -62,7 +61,8 @@ function __sortNode(_arr, _node, _sorted) { for( var i = 0, n = array_length(_prev); i < n; i++ ) { var _in = _prev[i]; if(_in == noone || struct_has(_sorted, _in.node_id)) continue; - + if(_nodeMap != undefined && !struct_has(_nodeMap, _in.node_id)) continue; + array_push(_parents, _in); } @@ -72,7 +72,7 @@ function __sortNode(_arr, _node, _sorted) { __topoSort(_arr, _node.nodes, _sorted); for( var i = 0, n = array_length(_parents); i < n; i++ ) - __sortNode(_arr, _parents[i], _sorted); + __sortNode(_arr, _parents[i], _sorted, _nodeMap); if(struct_has(_sorted, _node.node_id)) return; array_push(_arr, _node); @@ -83,39 +83,42 @@ function __sortNode(_arr, _node, _sorted) { // print($" > Adding > {_node.name} | {_arr}"); } -function __topoSort(_arr, _nodeArr, _sorted = {}) { - var _root = []; +function __topoSort(_arr = [], _nodeArr = [], _sorted = {}) { + var _leaf = []; var _leftOver = []; var _global = _nodeArr == PROJECT.nodes; + var _nodeMap = _global? undefined : {}; __temp_nodeList = _nodeArr; for( var i = 0, n = array_length(_nodeArr); i < n; i++ ) { var _node = _nodeArr[i]; - var _isRoot = true; + var _isLeaf = true; + + if(!_global) _nodeMap[$ _node.node_id] = 1; if(is_instanceof(_node, Node_Collection_Inline) && !_node.is_root) { array_push(_leftOver, _node); continue; } if(_node.attributes.show_update_trigger && !array_empty(_node.updatedOutTrigger.getJunctionTo())) { - _isRoot = false; + _isLeaf = false; } else { for( var j = 0, m = array_length(_node.outputs); j < m; j++ ) { var _to = _node.outputs[j].getJunctionTo(); - if(_global) _isRoot &= array_empty(_to); - else _isRoot &= !array_any(_to, function(_val) /*=>*/ {return array_exists(__temp_nodeList, _val.node)}); + if(_global) _isLeaf &= array_empty(_to); + else _isLeaf &= !array_any(_to, function(_val) /*=>*/ {return array_exists(__temp_nodeList, _val.node)}); - if(!_isRoot) break; + if(!_isLeaf) break; } } - if(_isRoot) array_push(_root, _node); + if(_isLeaf) array_push(_leaf, _node); } - // print($"Root: {_root}"); + // print($"Leaf: {_leaf}"); - for( var i = 0, n = array_length(_root); i < n; i++ ) - __sortNode(_arr, _root[i], _sorted); + for( var i = 0, n = array_length(_leaf); i < n; i++ ) + __sortNode(_arr, _leaf[i], _sorted, _nodeMap); for( var i = 0, n = array_length(_leftOver); i < n; i++ ) { if(!struct_has(_sorted, _leftOver[i].node_id)) @@ -123,6 +126,7 @@ function __topoSort(_arr, _nodeArr, _sorted = {}) { } __temp_nodeList = []; + return _arr; } function __nodeLeafList(_arr) {