From 3f3789c54d98f16f7df9f6c03edbc18700497105 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Sat, 2 Dec 2023 20:30:27 +0700 Subject: [PATCH] Fix --- PixelComposer.resource_order | 2 ++ PixelComposer.yyp | 2 ++ scripts/globals/globals.gml | 6 ++--- scripts/node_glow/node_glow.gml | 30 ++++++++++----------- scripts/node_keyframe/node_keyframe.gml | 9 +++++-- scripts/node_mk_cable/node_mk_cable.gml | 36 +++++++++++++++++++++++++ scripts/node_mk_cable/node_mk_cable.yy | 11 ++++++++ scripts/node_mk_flag/node_mk_flag.gml | 36 +++++++++++++++++++++++++ scripts/node_mk_flag/node_mk_flag.yy | 11 ++++++++ scripts/slider/slider.gml | 4 +-- shaders/sh_lum2alpha/sh_lum2alpha.fsh | 5 ++-- 11 files changed, 127 insertions(+), 25 deletions(-) create mode 100644 scripts/node_mk_cable/node_mk_cable.gml create mode 100644 scripts/node_mk_cable/node_mk_cable.yy create mode 100644 scripts/node_mk_flag/node_mk_flag.gml create mode 100644 scripts/node_mk_flag/node_mk_flag.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index 49937924b..e21a58f8e 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -609,6 +609,7 @@ {"name":"sh_draw_texture","order":6,"path":"shaders/sh_draw_texture/sh_draw_texture.yy",}, {"name":"d3d_terrain","order":8,"path":"scripts/d3d_terrain/d3d_terrain.yy",}, {"name":"fd_rectangle_get_pressure_width","order":18,"path":"scripts/fd_rectangle_get_pressure_width/fd_rectangle_get_pressure_width.yy",}, + {"name":"node_mk_flag","order":5,"path":"scripts/node_mk_flag/node_mk_flag.yy",}, {"name":"sh_blend_normal","order":1,"path":"shaders/sh_blend_normal/sh_blend_normal.yy",}, {"name":"node_feedback_output","order":2,"path":"scripts/node_feedback_output/node_feedback_output.yy",}, {"name":"node_lua_surface","order":2,"path":"scripts/node_lua_surface/node_lua_surface.yy",}, @@ -766,6 +767,7 @@ {"name":"polygon_points","order":2,"path":"scripts/polygon_points/polygon_points.yy",}, {"name":"transformBox","order":15,"path":"scripts/transformBox/transformBox.yy",}, {"name":"sh_grey_alpha","order":12,"path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",}, + {"name":"node_mk_cable","order":4,"path":"scripts/node_mk_cable/node_mk_cable.yy",}, {"name":"s_node_time_map","order":39,"path":"sprites/s_node_time_map/s_node_time_map.yy",}, {"name":"node_crop","order":7,"path":"scripts/node_crop/node_crop.yy",}, {"name":"s_biterator_tab_content","order":14,"path":"sprites/s_biterator_tab_content/s_biterator_tab_content.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 7abf25b90..56e41d4bf 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -1222,6 +1222,7 @@ {"id":{"name":"sh_draw_texture","path":"shaders/sh_draw_texture/sh_draw_texture.yy",},}, {"id":{"name":"d3d_terrain","path":"scripts/d3d_terrain/d3d_terrain.yy",},}, {"id":{"name":"fd_rectangle_get_pressure_width","path":"scripts/fd_rectangle_get_pressure_width/fd_rectangle_get_pressure_width.yy",},}, + {"id":{"name":"node_mk_flag","path":"scripts/node_mk_flag/node_mk_flag.yy",},}, {"id":{"name":"s_node_strandSim_render","path":"sprites/s_node_strandSim_render/s_node_strandSim_render.yy",},}, {"id":{"name":"sh_blend_normal","path":"shaders/sh_blend_normal/sh_blend_normal.yy",},}, {"id":{"name":"node_feedback_output","path":"scripts/node_feedback_output/node_feedback_output.yy",},}, @@ -1407,6 +1408,7 @@ {"id":{"name":"transformBox","path":"scripts/transformBox/transformBox.yy",},}, {"id":{"name":"s_node_fluidSim_group","path":"sprites/s_node_fluidSim_group/s_node_fluidSim_group.yy",},}, {"id":{"name":"sh_grey_alpha","path":"shaders/sh_grey_alpha/sh_grey_alpha.yy",},}, + {"id":{"name":"node_mk_cable","path":"scripts/node_mk_cable/node_mk_cable.yy",},}, {"id":{"name":"sh_normal","path":"shaders/sh_normal/sh_normal.yy",},}, {"id":{"name":"s_node_time_map","path":"sprites/s_node_time_map/s_node_time_map.yy",},}, {"id":{"name":"node_crop","path":"scripts/node_crop/node_crop.yy",},}, diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 4d9fa048f..c82711c93 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -25,10 +25,10 @@ globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER, LATEST_VERSION; LATEST_VERSION = 11500; - VERSION = 11587; + VERSION = 11588; SAVE_VERSION = 11600; - VERSION_STRING = "1.16rc7"; - BUILD_NUMBER = 11587; + VERSION_STRING = "1.16rc8"; + BUILD_NUMBER = 11588; globalvar APPEND_MAP; APPEND_MAP = ds_map_create(); diff --git a/scripts/node_glow/node_glow.gml b/scripts/node_glow/node_glow.gml index 6a065714e..62dca9f99 100644 --- a/scripts/node_glow/node_glow.gml +++ b/scripts/node_glow/node_glow.gml @@ -1,11 +1,6 @@ function Node_Glow(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Glow"; - shader = sh_outline_only; - uniform_dim = shader_get_uniform(shader, "dimension"); - uniform_size = shader_get_uniform(shader, "borderSize"); - uniform_colr = shader_get_uniform(shader, "borderColor"); - inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, 0); inputs[| 1] = nodeValue("Border", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) @@ -52,30 +47,33 @@ function Node_Glow(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) cons surface_set_target(pass1); draw_clear_alpha(c_black, 1); - shader_set(shader); - shader_set_uniform_f_array_safe(uniform_dim, [ surface_get_width_safe(_outSurf), surface_get_height_safe(_outSurf) ]); - shader_set_uniform_f(uniform_size, _size + _border); - shader_set_uniform_f_array_safe(uniform_colr, [ 1., 1., 1., 1. ]); + shader_set(sh_outline_only); + shader_set_f("dimension", [ surface_get_width_safe(_outSurf), surface_get_height_safe(_outSurf) ]); + shader_set_f("borderSize", _size + _border); + shader_set_f("borderColor", [ 1., 1., 1., 1. ]); if(is_surface(_data[0])) draw_surface_safe(_data[0], 0, 0); shader_reset(); surface_reset_target(); + var s = surface_apply_gaussian(pass1, _size, false, c_black, 1, noone); + surface_set_target(_outSurf); DRAW_CLEAR - BLEND_OVERRIDE; - - var s = surface_apply_gaussian(pass1, _size, false, c_black, 0); + BLEND_OVERRIDE shader_set(sh_lum2alpha); - shader_set_uniform_f_array_safe(shader_get_uniform(sh_lum2alpha, "color"), colToVec4(cl)); - draw_surface_ext_safe(s, 0, 0, 1, 1, 0, c_white, _stre); + shader_set_color("color", cl); + shader_set_f("intensity", _stre); + draw_surface_ext_safe(s, 0, 0, 1, 1, 0, c_white, 1); shader_reset(); - BLEND_NORMAL; - + BLEND_ALPHA_MULP draw_surface_safe(_data[0], 0, 0); + BLEND_NORMAL + surface_reset_target(); + surface_free(pass1); surface_free(s); diff --git a/scripts/node_keyframe/node_keyframe.gml b/scripts/node_keyframe/node_keyframe.gml index 0f8aad819..b8bd794ff 100644 --- a/scripts/node_keyframe/node_keyframe.gml +++ b/scripts/node_keyframe/node_keyframe.gml @@ -76,6 +76,7 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor { prop = _prop; y = 0; key_map = array_create(TOTAL_FRAMES); + key_map_mode = KEYFRAME_END.hold; animate_frames = []; @@ -116,6 +117,7 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor { } var _len = max(TOTAL_FRAMES, values[| ds_list_size(values) - 1].time); + key_map_mode = prop.on_end; if(array_length(key_map) != _len) array_resize(key_map, _len); @@ -277,7 +279,10 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor { } } #endregion - var _keyIndex = _time >= _len? 999_999 : key_map[_time]; + var _keyIndex; + if(_time >= _len) _keyIndex = 999_999; + else if(_time < _len) _keyIndex = 0; + else _keyIndex = key_map[_time]; if(_keyIndex == -1) { #region Before first key if(prop.on_end == KEYFRAME_END.wrap) { @@ -300,7 +305,7 @@ function valueAnimator(_val, _prop, _sep_axis = false) constructor { } #endregion if(_keyIndex == 999_999) { #region After last key - if(_keyIndex == KEYFRAME_END.wrap) { + if(prop.on_end == KEYFRAME_END.wrap) { var from = values[| ds_list_size(values) - 1]; var to = values[| 0]; var prog = _time - from.time; diff --git a/scripts/node_mk_cable/node_mk_cable.gml b/scripts/node_mk_cable/node_mk_cable.gml new file mode 100644 index 000000000..a1e4abaa8 --- /dev/null +++ b/scripts/node_mk_cable/node_mk_cable.gml @@ -0,0 +1,36 @@ +function Node_MK_Cable(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "MK Cable"; + + inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 1] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 2] = nodeValue("Point 2", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ]) + .setDisplay(VALUE_DISPLAY.vector); + + input_display_list = [ 0, + ["Saber", false], 1, 2, + ]; + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region + var _a = inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a; + var _a = inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a; + } #endregion + + static processData = function(_outSurf, _data, _output_index, _array_index) { + var _dim = _data[0]; + var _pnt1 = _data[1]; + var _pnt2 = _data[2]; + + surface_set_target(_outSurf); + DRAW_CLEAR + + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_mk_cable/node_mk_cable.yy b/scripts/node_mk_cable/node_mk_cable.yy new file mode 100644 index 000000000..b1e30b579 --- /dev/null +++ b/scripts/node_mk_cable/node_mk_cable.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_mk_cable", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "MK effects", + "path": "folders/nodes/data/MK effects.yy", + }, +} \ No newline at end of file diff --git a/scripts/node_mk_flag/node_mk_flag.gml b/scripts/node_mk_flag/node_mk_flag.gml new file mode 100644 index 000000000..f2ec7099d --- /dev/null +++ b/scripts/node_mk_flag/node_mk_flag.gml @@ -0,0 +1,36 @@ +function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { + name = "MK Flag"; + + inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 1] = nodeValue("Point 1", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 0, 0 ]) + .setDisplay(VALUE_DISPLAY.vector); + + inputs[| 2] = nodeValue("Point 2", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ]) + .setDisplay(VALUE_DISPLAY.vector); + + input_display_list = [ 0, + ["Saber", false], 1, 2, + ]; + + outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); + + static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region + var _a = inputs[| 1].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a; + var _a = inputs[| 2].drawOverlay(active, _x, _y, _s, _mx, _my, _snx, _sny); active &= _a; + } #endregion + + static processData = function(_outSurf, _data, _output_index, _array_index) { + var _dim = _data[0]; + var _pnt1 = _data[1]; + var _pnt2 = _data[2]; + + surface_set_target(_outSurf); + DRAW_CLEAR + + surface_reset_target(); + + return _outSurf; + } +} \ No newline at end of file diff --git a/scripts/node_mk_flag/node_mk_flag.yy b/scripts/node_mk_flag/node_mk_flag.yy new file mode 100644 index 000000000..d251a1031 --- /dev/null +++ b/scripts/node_mk_flag/node_mk_flag.yy @@ -0,0 +1,11 @@ +{ + "resourceType": "GMScript", + "resourceVersion": "1.0", + "name": "node_mk_flag", + "isCompatibility": false, + "isDnD": false, + "parent": { + "name": "MK effects", + "path": "folders/nodes/data/MK effects.yy", + }, +} \ No newline at end of file diff --git a/scripts/slider/slider.gml b/scripts/slider/slider.gml index a1880a7c4..532e2271e 100644 --- a/scripts/slider/slider.gml +++ b/scripts/slider/slider.gml @@ -142,8 +142,8 @@ function slider(_min, _max, _step, _onModify = noone, _onRelease = noone) : widg if(key_mod_press(CTRL)) amo *= 10; if(key_mod_press(ALT)) amo /= 10; - if(mouse_wheel_down()) modifyValue(_data + amo * SCROLL_SPEED); - if(mouse_wheel_up()) modifyValue(_data - amo * SCROLL_SPEED); + if(key_mod_press(SHIFT) && mouse_wheel_down()) modifyValue(_data + amo * SCROLL_SPEED); + if(key_mod_press(SHIFT) && mouse_wheel_up()) modifyValue(_data - amo * SCROLL_SPEED); } } diff --git a/shaders/sh_lum2alpha/sh_lum2alpha.fsh b/shaders/sh_lum2alpha/sh_lum2alpha.fsh index a9d375430..dac60a077 100644 --- a/shaders/sh_lum2alpha/sh_lum2alpha.fsh +++ b/shaders/sh_lum2alpha/sh_lum2alpha.fsh @@ -5,12 +5,13 @@ varying vec2 v_vTexcoord; varying vec4 v_vColour; uniform vec4 color; +uniform float intensity; void main() { vec4 samp = texture2D( gm_BaseTexture, v_vTexcoord ); float bright = dot(samp.rgb, vec3(0.2126, 0.7152, 0.0722)); - vec4 col = v_vColour * color; - col.a *= bright; + vec4 col = color; + col.a *= bright * intensity; gl_FragColor = col; }