From 6764915bff2264654f735deaf1c10f36d842b4cc Mon Sep 17 00:00:00 2001 From: Tanasart Date: Mon, 11 Dec 2023 11:45:12 +0700 Subject: [PATCH] MK flag --- PixelComposer.resource_order | 4 + PixelComposer.yyp | 5 + objects/o_dialog_preference/Create_0.gml | 16 +-- scripts/draw_UI_scale/draw_UI_scale.gml | 12 +- .../draw_sprite_ext_override.gml | 71 +++++---- .../draw_text_function/draw_text_function.gml | 16 ++- scripts/font_loader/font_loader.gml | 2 +- scripts/globals/globals.gml | 6 +- scripts/locale_data/locale_data.gml | 28 ++-- scripts/node_3d_mesh_obj/node_3d_mesh_obj.gml | 2 +- scripts/node_mk_cable/node_mk_cable.gml | 2 +- scripts/node_mk_flag/node_mk_flag.gml | 136 ++++++++++++++---- .../node_mk_grid_balls/node_mk_grid_balls.gml | 2 +- .../node_mk_grid_flip/node_mk_grid_flip.gml | 2 +- scripts/node_mk_rain/node_mk_rain.gml | 2 +- scripts/node_mk_saber/node_mk_saber.gml | 38 ++++- scripts/node_mk_tile/node_mk_tile.gml | 2 +- scripts/node_registry/node_registry.gml | 4 +- scripts/node_value/node_value.gml | 6 +- scripts/panel_inspector/panel_inspector.gml | 10 +- scripts/panel_menu/panel_menu.gml | 16 +-- .../surface_functions/surface_functions.gml | 2 +- scripts/textBox/textBox.gml | 5 +- shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.fsh | 10 ++ shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.vsh | 19 +++ shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy | 10 ++ shaders/sh_mk_flag_shade/sh_mk_flag_shade.fsh | 36 +++++ shaders/sh_mk_flag_shade/sh_mk_flag_shade.vsh | 19 +++ shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy | 10 ++ .../c73dddac-dac5-48a6-946b-872fd494343d.png | Bin 0 -> 1358 bytes .../9732ca81-2fd3-4435-9662-baa1df3f77c3.png | Bin 0 -> 1358 bytes sprites/s_MKFX/s_MKFX.yy | 74 ++++++++++ .../1df90f61-4eb3-4deb-8559-b204622d14a0.png | Bin 0 -> 1809 bytes .../c905195c-29a2-4f99-abf3-9a5cca11fad5.png | Bin 0 -> 1809 bytes sprites/s_node_mk_flag/s_node_mk_flag.yy | 74 ++++++++++ 35 files changed, 514 insertions(+), 127 deletions(-) create mode 100644 shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.fsh create mode 100644 shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.vsh create mode 100644 shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy create mode 100644 shaders/sh_mk_flag_shade/sh_mk_flag_shade.fsh create mode 100644 shaders/sh_mk_flag_shade/sh_mk_flag_shade.vsh create mode 100644 shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy create mode 100644 sprites/s_MKFX/c73dddac-dac5-48a6-946b-872fd494343d.png create mode 100644 sprites/s_MKFX/layers/c73dddac-dac5-48a6-946b-872fd494343d/9732ca81-2fd3-4435-9662-baa1df3f77c3.png create mode 100644 sprites/s_MKFX/s_MKFX.yy create mode 100644 sprites/s_node_mk_flag/1df90f61-4eb3-4deb-8559-b204622d14a0.png create mode 100644 sprites/s_node_mk_flag/layers/1df90f61-4eb3-4deb-8559-b204622d14a0/c905195c-29a2-4f99-abf3-9a5cca11fad5.png create mode 100644 sprites/s_node_mk_flag/s_node_mk_flag.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index a8b03b0bd..e0a5b1976 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -247,6 +247,7 @@ {"name":"button","order":34,"path":"folders/widgets/button.yy",}, {"name":"rotator","order":35,"path":"folders/widgets/rotator.yy",}, {"name":"text","order":36,"path":"folders/widgets/text.yy",}, + {"name":"Flag","order":9,"path":"folders/shader/MK effects/Flag.yy",}, ], "ResourceOrderSettings": [ {"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",}, @@ -264,6 +265,7 @@ {"name":"__node_3d","order":2,"path":"scripts/__node_3d/__node_3d.yy",}, {"name":"node_csv_file_write","order":12,"path":"scripts/node_csv_file_write/node_csv_file_write.yy",}, {"name":"surface_functions","order":5,"path":"scripts/surface_functions/surface_functions.yy",}, + {"name":"s_MKFX","order":6,"path":"sprites/s_MKFX/s_MKFX.yy",}, {"name":"_f_sdf","order":13,"path":"fonts/_f_sdf/_f_sdf.yy",}, {"name":"dynaSurf_iso","order":1,"path":"scripts/dynaSurf_iso/dynaSurf_iso.yy",}, {"name":"sh_fd_add_velocity_glsl","order":1,"path":"shaders/sh_fd_add_velocity_glsl/sh_fd_add_velocity_glsl.yy",}, @@ -753,6 +755,7 @@ {"name":"sh_rsh_erode","order":2,"path":"shaders/sh_rsh_erode/sh_rsh_erode.yy",}, {"name":"node_chromatic_aberration","order":4,"path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",}, {"name":"draw_line_elbow_diag","order":18,"path":"scripts/draw_line_elbow_diag/draw_line_elbow_diag.yy",}, + {"name":"s_node_mk_flag","order":5,"path":"sprites/s_node_mk_flag/s_node_mk_flag.yy",}, {"name":"node_pin","order":2,"path":"scripts/node_pin/node_pin.yy",}, {"name":"_node_fluid_nodes","order":7,"path":"scripts/_node_fluid_nodes/_node_fluid_nodes.yy",}, {"name":"sh_skew","order":6,"path":"shaders/sh_skew/sh_skew.yy",}, @@ -1443,6 +1446,7 @@ {"name":"node_morph_surface","order":5,"path":"scripts/node_morph_surface/node_morph_surface.yy",}, {"name":"node_tunnel_in","order":6,"path":"scripts/node_tunnel_in/node_tunnel_in.yy",}, {"name":"node_anim_priority","order":2,"path":"scripts/node_anim_priority/node_anim_priority.yy",}, + {"name":"sh_mk_flag_shade","order":1,"path":"shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy",}, {"name":"s_node_fluidSim_render","order":4,"path":"sprites/s_node_fluidSim_render/s_node_fluidSim_render.yy",}, {"name":"o_dialog_crashed","order":3,"path":"objects/o_dialog_crashed/o_dialog_crashed.yy",}, {"name":"fd_rectangle_enums","order":3,"path":"scripts/fd_rectangle_enums/fd_rectangle_enums.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 4ae0afa1a..cc11817b9 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -282,6 +282,7 @@ {"resourceType":"GMFolder","resourceVersion":"1.0","name":"button","folderPath":"folders/widgets/button.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"rotator","folderPath":"folders/widgets/rotator.yy",}, {"resourceType":"GMFolder","resourceVersion":"1.0","name":"text","folderPath":"folders/widgets/text.yy",}, + {"resourceType":"GMFolder","resourceVersion":"1.0","name":"Flag","folderPath":"folders/shader/MK effects/Flag.yy",}, ], "IncludedFiles": [ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",}, @@ -1244,6 +1245,7 @@ {"id":{"name":"__node_3d","path":"scripts/__node_3d/__node_3d.yy",},}, {"id":{"name":"node_csv_file_write","path":"scripts/node_csv_file_write/node_csv_file_write.yy",},}, {"id":{"name":"surface_functions","path":"scripts/surface_functions/surface_functions.yy",},}, + {"id":{"name":"s_MKFX","path":"sprites/s_MKFX/s_MKFX.yy",},}, {"id":{"name":"_f_sdf","path":"fonts/_f_sdf/_f_sdf.yy",},}, {"id":{"name":"dynaSurf_iso","path":"scripts/dynaSurf_iso/dynaSurf_iso.yy",},}, {"id":{"name":"sh_fd_add_velocity_glsl","path":"shaders/sh_fd_add_velocity_glsl/sh_fd_add_velocity_glsl.yy",},}, @@ -1803,6 +1805,7 @@ {"id":{"name":"sh_rsh_erode","path":"shaders/sh_rsh_erode/sh_rsh_erode.yy",},}, {"id":{"name":"node_chromatic_aberration","path":"scripts/node_chromatic_aberration/node_chromatic_aberration.yy",},}, {"id":{"name":"draw_line_elbow_diag","path":"scripts/draw_line_elbow_diag/draw_line_elbow_diag.yy",},}, + {"id":{"name":"s_node_mk_flag","path":"sprites/s_node_mk_flag/s_node_mk_flag.yy",},}, {"id":{"name":"node_pin","path":"scripts/node_pin/node_pin.yy",},}, {"id":{"name":"_node_fluid_nodes","path":"scripts/_node_fluid_nodes/_node_fluid_nodes.yy",},}, {"id":{"name":"sh_noise","path":"shaders/sh_noise/sh_noise.yy",},}, @@ -2589,6 +2592,7 @@ {"id":{"name":"node_morph_surface","path":"scripts/node_morph_surface/node_morph_surface.yy",},}, {"id":{"name":"node_tunnel_in","path":"scripts/node_tunnel_in/node_tunnel_in.yy",},}, {"id":{"name":"node_anim_priority","path":"scripts/node_anim_priority/node_anim_priority.yy",},}, + {"id":{"name":"sh_mk_flag_shade","path":"shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy",},}, {"id":{"name":"s_node_fluidSim_render","path":"sprites/s_node_fluidSim_render/s_node_fluidSim_render.yy",},}, {"id":{"name":"o_dialog_crashed","path":"objects/o_dialog_crashed/o_dialog_crashed.yy",},}, {"id":{"name":"fd_rectangle_enums","path":"scripts/fd_rectangle_enums/fd_rectangle_enums.yy",},}, @@ -2814,6 +2818,7 @@ {"id":{"name":"node_dynamic_surface_out_height","path":"scripts/node_dynamic_surface_out_height/node_dynamic_surface_out_height.yy",},}, {"id":{"name":"paddingBox","path":"scripts/paddingBox/paddingBox.yy",},}, {"id":{"name":"fd_rectangle_set_visualization_shader","path":"scripts/fd_rectangle_set_visualization_shader/fd_rectangle_set_visualization_shader.yy",},}, + {"id":{"name":"sh_mk_flag_mrt","path":"shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy",},}, {"id":{"name":"s_biterator_bg","path":"sprites/s_biterator_bg/s_biterator_bg.yy",},}, {"id":{"name":"addonPanel","path":"scripts/addonPanel/addonPanel.yy",},}, {"id":{"name":"s_node_ase_layer","path":"sprites/s_node_ase_layer/s_node_ase_layer.yy",},}, diff --git a/objects/o_dialog_preference/Create_0.gml b/objects/o_dialog_preference/Create_0.gml index 38026205f..86b04a7eb 100644 --- a/objects/o_dialog_preference/Create_0.gml +++ b/objects/o_dialog_preference/Create_0.gml @@ -274,20 +274,12 @@ event_inherited(); PREFERENCES._display_scaling = PREFERENCES.display_scaling; ds_list_add(pref_appr, new __Panel_Linear_Setting_Item( - __txtx("pref_gui_scaling", "GUI scaling"), - new slider(0.5, 2, 0.01,, function(val) { + __txtx("pref_gui_scaling", "GUI scaling*"), + new slider(0.5, 2, 0.01, function(val) { PREFERENCES._display_scaling = val; - PREF_SAVE(); }, function() { PREFERENCES._display_scaling = clamp(PREFERENCES._display_scaling, 0.5, 2); - if(PREFERENCES.display_scaling == PREFERENCES._display_scaling) - return; - - PREFERENCES.display_scaling = PREFERENCES._display_scaling; - resetPanel(); - loadFonts(); - - time_source_start(time_source_create(time_source_global, 1, time_source_units_frames, onResize)); + resetScale(PREFERENCES._display_scaling); }), function() { return PREFERENCES._display_scaling; }, function(val) { PREFERENCES.display_scaling = val; PREFERENCES._display_scaling = val; }, @@ -954,7 +946,7 @@ event_inherited(); draw_text_add(ui(24), yy + th / 2, name); _pref.editWidget.setFocusHover(sFOCUS, sHOVER && sp_pref.hover); - var widget_w = ui(240); + var widget_w = ui(260); var widget_h = th; if(is_instanceof(_pref.editWidget, textBox)) diff --git a/scripts/draw_UI_scale/draw_UI_scale.gml b/scripts/draw_UI_scale/draw_UI_scale.gml index 06c4896b1..d2b3823d3 100644 --- a/scripts/draw_UI_scale/draw_UI_scale.gml +++ b/scripts/draw_UI_scale/draw_UI_scale.gml @@ -26,7 +26,17 @@ function line_get_width(txt, font = noone, offset = 0) { function ui(val) { INLINE + return round(val * UI_SCALE); + } + + function resetScale(scale) { + if(scale == PREFERENCES.display_scaling) return; - return val * UI_SCALE; + PREFERENCES.display_scaling = scale; + resetPanel(); + loadFonts(); + + time_source_start(time_source_create(time_source_global, 1, time_source_units_frames, onResize)); + PREF_SAVE(); } #endregion \ No newline at end of file diff --git a/scripts/draw_sprite_ext_override/draw_sprite_ext_override.gml b/scripts/draw_sprite_ext_override/draw_sprite_ext_override.gml index f62324f61..5a757f5e8 100644 --- a/scripts/draw_sprite_ext_override/draw_sprite_ext_override.gml +++ b/scripts/draw_sprite_ext_override/draw_sprite_ext_override.gml @@ -1,86 +1,81 @@ #macro draw_sprite_ext draw_sprite_ext_override #macro __draw_sprite_ext draw_sprite_ext -function draw_sprite_ext_override(spr, ind, _x, _y, xscale = 1, yscale = 1, rot = 0, color = c_white, alpha = 1) { +function draw_sprite_ext_override(spr, ind, _x, _y, xscale = 1, yscale = 1, rot = 0, color = c_white, alpha = 1) { #region INLINE __draw_sprite_ext(spr, ind, round(_x), round(_y), xscale, yscale, rot, color, alpha); -} +} #endregion #macro draw_sprite_stretched_ext draw_sprite_stretched_ext_override #macro __draw_sprite_stretched_ext draw_sprite_stretched_ext -function draw_sprite_stretched_ext_override(spr, ind, _x, _y, w = 1, h = 1, color = c_white, alpha = 1) { +function draw_sprite_stretched_ext_override(spr, ind, _x, _y, w = 1, h = 1, color = c_white, alpha = 1) { #region INLINE __draw_sprite_stretched_ext(spr, ind, round(_x), round(_y), round(w), round(h), color, alpha); -} +} #endregion #macro draw_sprite_stretched draw_sprite_stretched_override #macro __draw_sprite_stretched draw_sprite_stretched -function draw_sprite_stretched_override(spr, ind, _x, _y, w = 1, h = 1) { +function draw_sprite_stretched_override(spr, ind, _x, _y, w = 1, h = 1) { #region INLINE __draw_sprite_stretched(spr, ind, round(_x), round(_y), round(w), round(h)); -} +} #endregion -function draw_sprite_ext_add(spr, ind, _x, _y, xscale = 1, yscale = 1, rot = 0, color = c_white, alpha = 1) { +function draw_sprite_ext_add(spr, ind, _x, _y, xscale = 1, yscale = 1, rot = 0, color = c_white, alpha = 1) { #region INLINE BLEND_ADD __draw_sprite_ext(spr, ind, round(_x), round(_y), xscale, yscale, rot, color, alpha); BLEND_NORMAL -} +} #endregion -function draw_sprite_stretched_points(spr, ind, _x0, _y0, _x1, _y1, color = c_white, alpha = 1) { +function draw_sprite_stretched_points(spr, ind, _x0, _y0, _x1, _y1, color = c_white, alpha = 1) { #region INLINE - var _xs = round(min(_x0, _x1)); - var _ys = round(min(_y0, _y1)); - var _w = round(max(_x0, _x1) - _xs); - var _h = round(max(_y0, _y1) - _ys); + var _xs = min(_x0, _x1); + var _ys = min(_y0, _y1); + var _w = max(_x0, _x1) - _xs; + var _h = max(_y0, _y1) - _ys; __draw_sprite_stretched_ext(spr, ind, _xs, _ys, _w, _h, color, alpha); -} +} #endregion -function draw_sprite_stretched_points_clamp(spr, ind, _x0, _y0, _x1, _y1, color = c_white, alpha = 1, _min = 12) { +function draw_sprite_stretched_points_clamp(spr, ind, _x0, _y0, _x1, _y1, color = c_white, alpha = 1, _min = 12) { #region INLINE - var _xs = round(min(_x0, _x1)); - var _ys = round(min(_y0, _y1)); - var _w = max(_min, round(max(_x0, _x1) - _xs)); - var _h = max(_min, round(max(_y0, _y1) - _ys)); + var _xs = min(_x0, _x1); + var _ys = min(_y0, _y1); + var _w = max(_min, max(_x0, _x1) - _xs); + var _h = max(_min, max(_y0, _y1) - _ys); __draw_sprite_stretched_ext(spr, ind, _xs, _ys, _w, _h, color, alpha); -} +} #endregion -function draw_sprite_bbox(spr, ind, _bbox) { +function draw_sprite_bbox(spr, ind, _bbox) { #region INLINE if(_bbox == noone) return; __draw_sprite_stretched(spr, ind, _bbox.x0, _bbox.y0, _bbox.w, _bbox.h); -} +} #endregion -function draw_sprite_uniform(spr, ind, _x, _y, scale, color = c_white) { +function draw_sprite_uniform(spr, ind, _x, _y, scale, color = c_white) { #region INLINE - draw_sprite_ext(spr, ind, round(_x), round(_y), scale, scale, 0, color, 1); -} + draw_sprite_ext(spr, ind, _x, _y, scale, scale, 0, color, 1); +} #endregion -function draw_sprite_ui(spr, ind, _x, _y, xscale = 1, yscale = 1, rot = 0, color = c_white, alpha = 1) { +function draw_sprite_ui(spr, ind, _x, _y, xscale = 1, yscale = 1, rot = 0, color = c_white, alpha = 1) { #region INLINE - static UI_SPRITE_SCALE = 1; - - var xscale_ui = ui(xscale) / UI_SPRITE_SCALE; - var yscale_ui = ui(yscale) / UI_SPRITE_SCALE; - - draw_sprite_ext(spr, ind, round(_x), round(_y), xscale_ui, yscale_ui, rot, color, alpha); -} + draw_sprite_ext(spr, ind, _x, _y, xscale * UI_SCALE, yscale * UI_SCALE, rot, color, alpha); +} #endregion -function draw_sprite_ui_uniform(spr, ind, _x, _y, scale = 1, color = c_white, alpha = 1, rot = 0) { +function draw_sprite_ui_uniform(spr, ind, _x, _y, scale = 1, color = c_white, alpha = 1, rot = 0) { #region INLINE - draw_sprite_ui(spr, ind, round(_x), round(_y), scale, scale, rot, color, alpha); -} + draw_sprite_ui(spr, ind, _x, _y, scale, scale, rot, color, alpha); +} #endregion -function draw_sprite_colored(spr, ind, _x, _y, scale = 1, rot = 0) { +function draw_sprite_colored(spr, ind, _x, _y, scale = 1, rot = 0) { #region INLINE var num = sprite_get_number(spr); draw_sprite_ui(spr, ind, _x, _y, scale, scale, rot, c_white); if(num % 2 == 0) draw_sprite_ui(spr, num / 2 + ind, _x, _y, scale, scale, rot, COLORS._main_accent); -} \ No newline at end of file +} #endregion \ No newline at end of file diff --git a/scripts/draw_text_function/draw_text_function.gml b/scripts/draw_text_function/draw_text_function.gml index c99d8ab5e..52524bc84 100644 --- a/scripts/draw_text_function/draw_text_function.gml +++ b/scripts/draw_text_function/draw_text_function.gml @@ -6,14 +6,15 @@ function draw_text_line(_x, _y, _text, _sep, _w) { #region function draw_text_add(_x, _y, _text, scale = 1) { #region INLINE BLEND_ALPHA_MULP; - draw_text_transformed(_x, _y, _text, scale, scale, 0); + if(scale == 1) draw_text(round(_x), round(_y), _text); + else draw_text_transformed(round(_x), round(_y), _text, scale, scale, 0); BLEND_NORMAL; } #endregion function draw_text_over(_x, _y, _text, scale = 1) { #region INLINE BLEND_OVERRIDE; - draw_text_transformed(_x, _y, _text, scale, scale, 0); + draw_text_transformed(round(_x), round(_y), _text, scale, scale, 0); BLEND_NORMAL; } #endregion @@ -62,7 +63,7 @@ function draw_text_lang(_x, _y, _text, scale = 1) { #region if(_font != _ff) draw_set_font(_ff); _font = _ff; - draw_text_transformed(_x, _y, _g, scale, scale, 0); + draw_text_transformed(round(_x), round(_y), _g, scale, scale, 0); _x += string_width(_g) * scale; } @@ -92,12 +93,19 @@ function draw_text_bbox(bbox, text) { #region function draw_text_cut(x, y, str, w, scale = 1) { #region INLINE BLEND_ALPHA_MULP; - draw_text_transformed(x, y, string_cut(str, w,, scale), scale, scale, 0); + draw_text_transformed(round(x), round(y), string_cut(str, w,, scale), scale, scale, 0); BLEND_NORMAL; } #endregion +function draw_text_int(x, y, str) { #region + INLINE + draw_text(round(x), round(y), str); +} #endregion + function __draw_text_ext_transformed(_x, _y, _text, _sep, _w, sx, sy, rotation, forceCut = false) { #region INLINE + _x = round(_x); + _y = round(_y); if(!LOCALE.config.per_character_line_break && !forceCut) { BLEND_ALPHA_MULP; diff --git a/scripts/font_loader/font_loader.gml b/scripts/font_loader/font_loader.gml index cc2966e6e..76300dca2 100644 --- a/scripts/font_loader/font_loader.gml +++ b/scripts/font_loader/font_loader.gml @@ -73,7 +73,7 @@ function _font_load_from_struct(str, name, def, over = true) { #region font_add_enable_aa(THEME_VALUE.font_aa); var _sdf = struct_try_get(font, "sdf", false); - var _font = _font_add(path, font.size * UI_SCALE, _sdf); + var _font = _font_add(path, round(font.size * UI_SCALE), _sdf); return _font; } #endregion diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 2b4844339..9f86a9266 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 = 11602; + VERSION = 11603; SAVE_VERSION = 11600.1; - VERSION_STRING = "1.16.0.2"; - BUILD_NUMBER = 11602; + VERSION_STRING = "1.16.0.3"; + BUILD_NUMBER = 11603; globalvar APPEND_MAP; APPEND_MAP = ds_map_create(); diff --git a/scripts/locale_data/locale_data.gml b/scripts/locale_data/locale_data.gml index a83d5f0e5..2a80b6509 100644 --- a/scripts/locale_data/locale_data.gml +++ b/scripts/locale_data/locale_data.gml @@ -37,6 +37,8 @@ function __txtx(key, def = "") { #region INLINE + if(LOCALE_DEF) return def; + if(key == "") return ""; if(TEST_LOCALE) { if(!struct_has(LOCALE.word, key) && !struct_has(LOCALE.ui, key)) { @@ -46,8 +48,6 @@ return ""; } - if(LOCALE_DEF) return def; - if(struct_has(LOCALE.word, key)) return LOCALE.word[$ key]; if(struct_has(LOCALE.ui, key)) return LOCALE.ui[$ key]; @@ -57,6 +57,8 @@ function __txt(txt, prefix = "") { #region INLINE + if(LOCALE_DEF) return txt; + if(txt == "") return ""; var key = string_lower(txt); key = string_replace_all(key, " ", "_"); @@ -68,7 +70,7 @@ } return ""; } - if(LOCALE_DEF) return txt; + return __txtx(prefix + key, txt); } #endregion @@ -83,6 +85,8 @@ function __txt_node_name(node, def = "") { #region INLINE + if(LOCALE_DEF) return def; + if(TEST_LOCALE) { if(!struct_has(LOCALE.node, node)) { show_debug_message($"LOCALE [NODE]: \"{node}\": \"{def}\","); @@ -91,8 +95,6 @@ return ""; } - if(LOCALE_DEF) return def; - if(!struct_has(LOCALE.node, node)) return def; @@ -101,6 +103,8 @@ function __txt_node_tooltip(node, def = "") { #region INLINE + + if(LOCALE_DEF) return def; if(TEST_LOCALE) { if(!struct_has(LOCALE.node, node)) { @@ -110,8 +114,6 @@ return ""; } - if(LOCALE_DEF) return def; - if(!struct_has(LOCALE.node, node)) return def; @@ -121,6 +123,8 @@ function __txt_junction_name(node, type, index, def = "") { #region INLINE + if(LOCALE_DEF) return def; + if(TEST_LOCALE) { if(!struct_has(LOCALE.node, node)) { show_debug_message($"LOCALE [JNAME]: \"{node}\": \"{def}\","); @@ -129,8 +133,6 @@ return ""; } - if(LOCALE_DEF) return def; - if(!struct_has(LOCALE.node, node)) return def; @@ -144,6 +146,8 @@ function __txt_junction_tooltip(node, type, index, def = "") { #region INLINE + if(LOCALE_DEF) return def; + if(TEST_LOCALE) { if(!struct_has(LOCALE.node, node)) { show_debug_message($"LOCALE [JTIP]: \"{node}\": \"{def}\","); @@ -152,8 +156,6 @@ return ""; } - if(LOCALE_DEF) return def; - if(!struct_has(LOCALE.node, node)) return def; @@ -167,6 +169,8 @@ function __txt_junction_data(node, type, index, def = []) { #region INLINE + if(LOCALE_DEF) return def; + if(TEST_LOCALE) { if(!struct_has(LOCALE.node, node)) { show_debug_message($"LOCALE [DDATA]: \"{node}\": \"{def}\","); @@ -175,8 +179,6 @@ return [ "" ]; } - if(LOCALE_DEF) return def; - if(!struct_has(LOCALE.node, node)) return def; diff --git a/scripts/node_3d_mesh_obj/node_3d_mesh_obj.gml b/scripts/node_3d_mesh_obj/node_3d_mesh_obj.gml index a30b6707a..223842075 100644 --- a/scripts/node_3d_mesh_obj/node_3d_mesh_obj.gml +++ b/scripts/node_3d_mesh_obj/node_3d_mesh_obj.gml @@ -1,7 +1,7 @@ function Node_create_3D_Obj(_x, _y, _group = noone) { #region var path = ""; if(!LOADING && !APPENDING && !CLONING) { - path = get_open_filename("30 object|*.obj", ""); + path = get_open_filename("3d object|*.obj", ""); key_release(); if(path == "") return noone; } diff --git a/scripts/node_mk_cable/node_mk_cable.gml b/scripts/node_mk_cable/node_mk_cable.gml index a1e4abaa8..da3066570 100644 --- a/scripts/node_mk_cable/node_mk_cable.gml +++ b/scripts/node_mk_cable/node_mk_cable.gml @@ -10,7 +10,7 @@ function Node_MK_Cable(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) inputs[| 2] = nodeValue("Point 2", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, [ 16, 16 ]) .setDisplay(VALUE_DISPLAY.vector); - input_display_list = [ 0, + input_display_list = [ { spr: s_MKFX }, 0, ["Saber", false], 1, 2, ]; diff --git a/scripts/node_mk_flag/node_mk_flag.gml b/scripts/node_mk_flag/node_mk_flag.gml index a36b22d60..f85474ab7 100644 --- a/scripts/node_mk_flag/node_mk_flag.gml +++ b/scripts/node_mk_flag/node_mk_flag.gml @@ -17,16 +17,30 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c inputs[| 5] = nodeValue("Wind speed", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2); - inputs[| 6] = nodeValue("Wave width", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 2); + inputs[| 6] = nodeValue("Wave width", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 1) + .setDisplay(VALUE_DISPLAY.slider, { range: [0, 4, 0.1] }); - inputs[| 7] = nodeValue("Wave size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 4); + inputs[| 7] = nodeValue("Wave size", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2) + .setDisplay(VALUE_DISPLAY.slider); inputs[| 8] = nodeValue("Phase", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.1) .setDisplay(VALUE_DISPLAY.slider); - input_display_list = [ 0, - ["Flag", false], 4, 1, 2, 3, - ["Wave", false], 6, 7, 5, 8, + inputs[| 9] = nodeValue("Clip", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2) + .setDisplay(VALUE_DISPLAY.slider); + + inputs[| 10] = nodeValue("Shadow", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0.2) + .setDisplay(VALUE_DISPLAY.slider); + + inputs[| 11] = nodeValue("Shadow threshold", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) + .setDisplay(VALUE_DISPLAY.slider, { range: [-0.1, 0.1, 0.001] }); + + inputs[| 12] = nodeValue("Invert shadow", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, 0); + + input_display_list = [ { spr: s_MKFX }, 0, + ["Flag", false], 4, 1, 2, 3, + ["Wave", false], 6, 7, 5, 8, 9, + ["Rendering", false], 10, 11, 12, ]; outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); @@ -38,7 +52,9 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c attributes.iteration = val; triggerRender(); })]); - + + temp_surface = [ surface_create(1, 1), surface_create(1, 1) ]; + function fPoints(_x, _y, _u, _v) constructor { #region x = _x; y = _y; @@ -65,15 +81,14 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c links = []; meshes = []; + static onValueUpdate = function(index = 0) { #region + if(index == 3) setGeometry(); + } #endregion + static setGeometry = function() { #region - var _surf = getSingleValue(1); if(!is_surface(_surf)) return; - var _start = getSingleValue(2); var _pinn = getSingleValue(3); var _subd = getSingleValue(4); - var _sw = surface_get_width_safe(_surf); - var _sh = surface_get_height_safe(_surf); - points = array_create((_subd + 1) * (_subd + 1)); links = array_create(2 * _subd * (_subd + 1)); meshes = array_create(2 * _subd * _subd); @@ -81,10 +96,7 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c var _ind = 0; for( var i = 0; i <= _subd; i++ ) for( var j = 0; j <= _subd; j++ ) { - var _x = _start[0] + i / _subd * _sw; - var _y = _start[1] + j / _subd * _sh; - - points[_ind++] = new fPoints(_x, _y, i / _subd, j / _subd); + points[_ind++] = new fPoints(i / _subd, j / _subd, i / _subd, j / _subd); } switch(_pinn) { @@ -127,24 +139,44 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c } #endregion static stepFlag = function() { #region - var _pinn = getSingleValue(3); - var _wspd = getSingleValue(5); - var _wave = getSingleValue(6); - var _wavz = getSingleValue(7); - var _wphs = getSingleValue(8); + var _pinn = getSingleValue(3); + var _wspd = getSingleValue(5); + var _wave = getSingleValue(6); + var _wavz = getSingleValue(7); + var _wphs = getSingleValue(8); + var _clip = getSingleValue(9); var _tps = CURRENT_FRAME / TOTAL_FRAMES * _wspd * pi * 2; + var _wve = _wave * pi; for( var i = 0, n = array_length(points); i < n; i++ ) { var p = points[i]; switch(_pinn) { case 0 : - var y0 = p.sy + max(-0.2, sin(p.u * pi * _wave - _tps)) * _wavz * p.u; - var y1 = p.sy + min( 0.2, sin((p.u - _wphs) * pi * _wave - _tps)) * _wavz * p.u; + var y0 = p.sy + max(-_clip, sin(p.u * _wve - _tps)) * _wavz * p.u; + var y1 = p.sy + min( _clip, sin((p.u - _wphs) * _wve - _tps)) * _wavz * p.u; p.y = lerp(y0, y1, p.v); break; + case 1 : + var y0 = p.sy + max(-_clip, sin((1 - p.u) * _wve - _tps)) * _wavz * (1 - p.u); + var y1 = p.sy + min( _clip, sin(((1 - p.u) - _wphs) * _wve - _tps)) * _wavz * (1 - p.u); + + p.y = lerp(y0, y1, p.v); + break; + case 2 : + var x0 = p.sx + max(-_clip, sin(p.v * _wve - _tps)) * _wavz * p.v; + var x1 = p.sx + min( _clip, sin((p.v - _wphs) * _wve - _tps)) * _wavz * p.v; + + p.x = lerp(x0, x1, p.u); + break; + case 3 : + var x0 = p.sx + max(-_clip, sin((1 - p.v) * _wve - _tps)) * _wavz * (1 - p.v); + var x1 = p.sx + min( _clip, sin(((1 - p.v) - _wphs) * _wve - _tps)) * _wavz * (1 - p.v); + + p.x = lerp(x0, x1, p.u); + break; } } } #endregion @@ -179,13 +211,47 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c } #endregion static processData = function(_outSurf, _data, _output_index, _array_index) { #region - var _dim = _data[0]; - var _tex = _data[1]; + var _dim = _data[0]; + var _tex = _data[1]; + var _start = _data[2]; + var _pinn = _data[3]; + + var _shadow = _data[10]; + var _shdThr = _data[11]; + var _shdInv = _data[12]; _outSurf = surface_verify(_outSurf, _dim[0], _dim[1]); if(!is_surface(_tex)) return _outSurf; - surface_set_target(_outSurf); + var _sx, _sy; + var _sw = surface_get_width_safe(_tex); + var _sh = surface_get_height_safe(_tex); + + switch(_pinn) { + case 0 : + _sx = _start[0]; + _sy = _start[1]; + break; + case 1 : + _sx = _start[0] - _sw; + _sy = _start[1]; + break; + case 2 : + _sx = _start[0]; + _sy = _start[1]; + break; + case 3 : + _sx = _start[0]; + _sy = _start[1] - _sh; + break; + } + + for( var i = 0, n = array_length(temp_surface); i < n; i++ ) + temp_surface[i] = surface_verify(temp_surface[i], _dim[0], _dim[1]); + + surface_set_target_ext(0, temp_surface[0]); + surface_set_target_ext(1, temp_surface[1]); + shader_set(sh_mk_flag_mrt); DRAW_CLEAR draw_set_color(c_white); @@ -198,14 +264,28 @@ function Node_MK_Flag(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c var p1 = m.p1; var p2 = m.p2; - draw_vertex_texture(p0.x, p0.y, p0.u, p0.v); - draw_vertex_texture(p1.x, p1.y, p1.u, p1.v); - draw_vertex_texture(p2.x, p2.y, p2.u, p2.v); + draw_vertex_texture(_sx + p0.x * _sw, _sy + p0.y * _sh, p0.u, p0.v); + draw_vertex_texture(_sx + p1.x * _sw, _sy + p1.y * _sh, p1.u, p1.v); + draw_vertex_texture(_sx + p2.x * _sw, _sy + p2.y * _sh, p2.u, p2.v); } draw_primitive_end(); + shader_reset(); surface_reset_target(); + surface_set_shader(_outSurf, sh_mk_flag_shade); + shader_set_surface("textureMap", temp_surface[1]); + shader_set_f("dimension", _dim); + shader_set_f("oriPosition", _start); + shader_set_f("oriScale", _sw, _sh); + shader_set_f("shadow", 1 - _shadow); + shader_set_f("shadowThres", _shdThr); + shader_set_i("shadowInv", _shdInv); + shader_set_i("side", _pinn > 1); + + draw_surface(temp_surface[0], 0, 0); + surface_reset_shader(); + return _outSurf; } #endregion } \ No newline at end of file diff --git a/scripts/node_mk_grid_balls/node_mk_grid_balls.gml b/scripts/node_mk_grid_balls/node_mk_grid_balls.gml index 84afc3289..d129d84e2 100644 --- a/scripts/node_mk_grid_balls/node_mk_grid_balls.gml +++ b/scripts/node_mk_grid_balls/node_mk_grid_balls.gml @@ -44,7 +44,7 @@ function Node_MK_GridBalls(_x, _y, _group = noone) : Node_Processor(_x, _y, _gro inputs[| 15] = nodeValue("Twist shift", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0) .setDisplay(VALUE_DISPLAY.slider, { range: [ -1, 1, 0.01 ] }); - input_display_list = [ 5, 1, + input_display_list = [ { spr: s_MKFX }, 5, 1, ["Surface", true], 0, ["Grid", false], 2, ["Movement", false], 8, 4, 7, 9, 10, 11, 13, 14, 15, diff --git a/scripts/node_mk_grid_flip/node_mk_grid_flip.gml b/scripts/node_mk_grid_flip/node_mk_grid_flip.gml index 6140c2216..b63f22766 100644 --- a/scripts/node_mk_grid_flip/node_mk_grid_flip.gml +++ b/scripts/node_mk_grid_flip/node_mk_grid_flip.gml @@ -30,7 +30,7 @@ function Node_MK_GridFlip(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou inputs[| 10] = nodeValue("Flip limit", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_scroll, [ "None", "90", "180" ]); - input_display_list = [ 3, 1, + input_display_list = [ { spr: s_MKFX }, 3, 1, ["Surface", true], 0, 4, ["Grid", false], 2, ["Flip", false], 6, 10, 5, 7, 8, 9, diff --git a/scripts/node_mk_rain/node_mk_rain.gml b/scripts/node_mk_rain/node_mk_rain.gml index 5a7ebacac..f01204126 100644 --- a/scripts/node_mk_rain/node_mk_rain.gml +++ b/scripts/node_mk_rain/node_mk_rain.gml @@ -33,7 +33,7 @@ function Node_MK_Rain(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c inputs[| 11] = nodeValue("Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); - input_display_list = [ 0, 8, + input_display_list = [ { spr: s_MKFX }, 0, 8, ["Shape", false], 9, 3, 4, 10, 11, ["Effect", false], 2, 1, 7, ["Render", false], 5, 6, diff --git a/scripts/node_mk_saber/node_mk_saber.gml b/scripts/node_mk_saber/node_mk_saber.gml index 6d61d09f7..24aa99dc3 100644 --- a/scripts/node_mk_saber/node_mk_saber.gml +++ b/scripts/node_mk_saber/node_mk_saber.gml @@ -25,9 +25,12 @@ function Node_MK_Saber(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) inputs[| 9] = nodeValue("Glow radius", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0); - input_display_list = [ 0, + inputs[| 10] = nodeValue("Trace texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone) + .setVisible(true, true); + + input_display_list = [ { spr: s_MKFX }, 0, ["Saber", false], 1, 2, 3, 6, - ["Render", false], 4, 7, 5, 8, 9, + ["Render", false], 4, 7, 5, 8, 9, 10, ]; outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); @@ -65,6 +68,7 @@ function Node_MK_Saber(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) var _grds = max(1, _data[7]); var _gint = _data[8]; var _grad = _data[9]; + var _trcTex = _data[10]; draw_set_circle_precision(32); @@ -132,6 +136,12 @@ function Node_MK_Saber(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) if(_trac > 0 && CURRENT_FRAME > 0 && prev_points != noone) { #region var _prevArr = prev_points[_array_index]; var _inds = max(0, array_length(_prevArr) - _trac); + var useTex = is_surface(_trcTex); + + if(useTex) + draw_primitive_begin_texture(pr_trianglelist, surface_get_texture(_trcTex)); + else + draw_primitive_begin(pr_trianglelist); for( var i = _inds, n = array_length(_prevArr); i < n; i++ ) { var _prev = _prevArr[i]; @@ -147,9 +157,29 @@ function Node_MK_Saber(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) var _pp2x = _curr[1][0]; var _pp2y = _curr[1][1]; - draw_triangle(_pr1x, _pr1y, _pr2x, _pr2y, _pp1x, _pp1y, false); - draw_triangle(_pr2x, _pr2y, _pp1x, _pp1y, _pp2x, _pp2y, false); + if(useTex) { + var _v0 = (i - _inds + 0) / (n - _inds); + var _v1 = (i - _inds + 1) / (n - _inds); + + draw_vertex_texture(ceil(_pr1x), ceil(_pr1y), 0, _v0); + draw_vertex_texture(ceil(_pr2x), ceil(_pr2y), 1, _v0); + draw_vertex_texture(ceil(_pp1x), ceil(_pp1y), 0, _v1); + + draw_vertex_texture(ceil(_pr2x), ceil(_pr2y), 1, _v0); + draw_vertex_texture(ceil(_pp1x), ceil(_pp1y), 0, _v1); + draw_vertex_texture(ceil(_pp2x), ceil(_pp2y), 1, _v1); + } else { + draw_vertex(ceil(_pr1x), ceil(_pr1y)); + draw_vertex(ceil(_pr2x), ceil(_pr2y)); + draw_vertex(ceil(_pp1x), ceil(_pp1y)); + + draw_vertex(ceil(_pr2x), ceil(_pr2y)); + draw_vertex(ceil(_pp1x), ceil(_pp1y)); + draw_vertex(ceil(_pp2x), ceil(_pp2y)); + } } + + draw_primitive_end(); } #endregion if(_thck == 1) { diff --git a/scripts/node_mk_tile/node_mk_tile.gml b/scripts/node_mk_tile/node_mk_tile.gml index 2e4e96986..ac5826208 100644 --- a/scripts/node_mk_tile/node_mk_tile.gml +++ b/scripts/node_mk_tile/node_mk_tile.gml @@ -35,7 +35,7 @@ function Node_MK_Tile(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c inputs[| 13] = nodeValue("Edge transform", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0) .setDisplay(VALUE_DISPLAY.enum_button, [ "Flip", "Rotate" ] ); - input_display_list = [ + input_display_list = [ { spr: s_MKFX }, ["Surfaces", true], 0, 1, ["Tile set", false], 2, 4, ["Edge", false], 5, 12, 13, 10, 11, diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 788a14c96..f29b20570 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -615,14 +615,14 @@ function __initNodes() { addNodeObject(generator, "Separate Shape", s_node_sepearte_shape, "Node_Seperate_Shape", [1, Node_Seperate_Shape],, "Separate disconnected pixel each into an image in an image array."); addNodeObject(generator, "Region Fill", s_node_region_fill, "Node_Region_Fill", [1, Node_Region_Fill],, "Fill connected pixel with colors.").setVersion(1147); addNodeObject(generator, "Flood Fill", s_node_flood_fill, "Node_Flood_Fill", [1, Node_Flood_Fill],, "Filled connected pixel given position and color.").setVersion(1133); - + ds_list_add(generator, "MK Effects"); addNodeObject(generator, "MK Rains", s_node_mk_rain, "Node_MK_Rain", [1, Node_MK_Rain]).setVersion(11600); addNodeObject(generator, "MK GridBalls", s_node_mk_ball_grid, "Node_MK_GridBalls", [1, Node_MK_GridBalls]).setVersion(11600); addNodeObject(generator, "MK GridFlip", s_node_mk_flip_grid, "Node_MK_GridFlip", [1, Node_MK_GridFlip]).setVersion(11600); addNodeObject(generator, "MK Saber", s_node_mk_saber, "Node_MK_Saber", [1, Node_MK_Saber]).setVersion(11600); addNodeObject(generator, "MK Tile", s_node_mk_tile, "Node_MK_Tile", [1, Node_MK_Tile]).setVersion(11600); - if(TESTING) addNodeObject(generator, "MK Flag", s_node_mk_tile, "Node_MK_Flag", [1, Node_MK_Flag]).setVersion(11600); + addNodeObject(generator, "MK Flag", s_node_mk_flag, "Node_MK_Flag", [1, Node_MK_Flag]).setVersion(11600); #endregion var compose = ds_list_create(); #region diff --git a/scripts/node_value/node_value.gml b/scripts/node_value/node_value.gml index 62e7f30bb..0aff4b872 100644 --- a/scripts/node_value/node_value.gml +++ b/scripts/node_value/node_value.gml @@ -2176,15 +2176,15 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru if(type == VALUE_TYPE.action) { var tx = x; draw_set_text(f_p1, fa_center, fa_center, _draw_cc); - draw_text(round(tx), round(y - (line_get_height() + 16) / 2), name); + draw_text_int(tx, y - (line_get_height() + 16) / 2, name); } else if(connect_type == JUNCTION_CONNECT.input) { var tx = x - 12 * _s; draw_set_halign(fa_right); - draw_text(round(tx), round(y), name); + draw_text_int(tx, y, name); } else { var tx = x + 12 * _s; draw_set_halign(fa_left); - draw_text(round(tx), round(y), name); + draw_text_int(tx, y, name); } } #endregion diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index 441926b91..a88887907 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -478,7 +478,15 @@ function Panel_Inspector() : PanelContent() constructor { } else { if(i >= array_length(_inspecting.input_display_list)) break; var jun_disp = _inspecting.input_display_list[i]; - if(is_array(jun_disp)) { // LABEL + if(is_struct(jun_disp)) { // others + var _spr = jun_disp.spr; + var _sh = sprite_get_height(_spr); + + draw_sprite(_spr, 0, xc, yy); + + hh += _sh + ui(8); + continue; + } if(is_array(jun_disp)) { // LABEL var txt = __txt(jun_disp[0]); var coll = jun_disp[1] && filter_text == ""; var lbh = lineBreak? ui(32) : ui(26); diff --git a/scripts/panel_menu/panel_menu.gml b/scripts/panel_menu/panel_menu.gml index cfd6b1d86..0079e1540 100644 --- a/scripts/panel_menu/panel_menu.gml +++ b/scripts/panel_menu/panel_menu.gml @@ -427,7 +427,7 @@ function Panel_Menu() : PanelContent() constructor { } draw_set_text(f_p1, fa_center, fa_center, COLORS._main_text); - draw_text_add(round(xc), round(yc), menus[i][0]); + draw_text_add(xc, yc, menus[i][0]); if(hori) { xx += ww + 8; @@ -494,11 +494,11 @@ function Panel_Menu() : PanelContent() constructor { draw_set_color(COLORS._main_text_inner); var wr_x = hori? nx0 + ui(8) : w / 2 - (wr_w + er_w + ui(16)) / 2; draw_sprite_ui_uniform(THEME.noti_icon_warning, warning_amo? 1 : 0, wr_x + ui(10), ny0); - draw_text(round(wr_x + ui(28)), round(ny0), warning_amo); + draw_text_int(wr_x + ui(28), ny0, warning_amo); wr_x += wr_w + ui(16); draw_sprite_ui_uniform(THEME.noti_icon_error, error_amo? 1 : 0, wr_x + ui(10), ny0); - draw_text(round(wr_x + ui(28)), round(ny0), error_amo); + draw_text_int(wr_x + ui(28), ny0, error_amo); if(hori) nx0 += nw + ui(8); else ny0 += nh + ui(8); @@ -522,7 +522,7 @@ function Panel_Menu() : PanelContent() constructor { dialogPanelCall(new Panel_Addon()); } else draw_sprite_stretched(THEME.ui_panel_bg, 1, nx0, ny0 - wh / 2, ww, wh); - draw_text(round(nx0 + ui(8)), round(ny0), name); + draw_text_int(nx0 + ui(8), ny0, name); draw_sprite_ui(THEME.addon_icon, 0, nx0 + ui(20) + string_width(name), ny0 + ui(1),,,, COLORS._main_icon); if(hori) nx0 += ww + ui(4); @@ -639,7 +639,7 @@ function Panel_Menu() : PanelContent() constructor { } } - draw_text(round((_x0 + _x1) / 2), round((_y0 + _y1) / 2), txt); + draw_text_int((_x0 + _x1) / 2, (_y0 + _y1) / 2, txt); } else { var _xx1 = ui(40); var y1 = h - ui(20); @@ -658,7 +658,7 @@ function Panel_Menu() : PanelContent() constructor { } } - draw_text(round(_xx1 + ui(6)), round(y1), txt); + draw_text_int(_xx1 + ui(6), y1, txt); } #endregion @@ -732,10 +732,10 @@ function Panel_Menu() : PanelContent() constructor { if(hori) { draw_set_text(f_p0b, fa_center, fa_center, COLORS._main_text_sub); - draw_text(round(tcx), round((ty0 + ty1) / 2), tc); + draw_text_int(tcx, (ty0 + ty1) / 2, tc); } else { draw_set_text(f_p0b, fa_left, fa_center, COLORS._main_text_sub); - draw_text(round(tx0 + ui(8)), round(tby0 + th / 2), tc); + draw_text_int(tx0 + ui(8), tby0 + th / 2, tc); } if(IS_PATREON && PREFERENCES.show_supporter_icon) { diff --git a/scripts/surface_functions/surface_functions.gml b/scripts/surface_functions/surface_functions.gml index 21cc08e00..88b9f17e7 100644 --- a/scripts/surface_functions/surface_functions.gml +++ b/scripts/surface_functions/surface_functions.gml @@ -434,7 +434,7 @@ function surface_valid_size(s) { if(!is_numeric(s)) return 1; if(is_infinity(s)) return 1; - return clamp(s, 1, 8196); + return clamp(round(s), 1, 8196); } function surface_array_free(arr) { diff --git a/scripts/textBox/textBox.gml b/scripts/textBox/textBox.gml index 49632c771..a52f73e14 100644 --- a/scripts/textBox/textBox.gml +++ b/scripts/textBox/textBox.gml @@ -25,6 +25,7 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor { _input_text = ""; _last_text = ""; current_value = ""; + _disp_text = ""; cursor = 0; cursor_pos = 0; @@ -277,7 +278,6 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor { } #endregion static display_text = function(_x, _y, _text, _w, _m = -1) { #region - _text = string_real(_text); draw_set_alpha(0.5 + 0.5 * interactable); switch(format) { @@ -374,6 +374,7 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor { } text_surface = surface_verify(text_surface, _w - ui(16), _h); + if(!hide) draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, _h, boxColor, 1); disp_x = lerp_float(disp_x, disp_x_to, 5); @@ -462,7 +463,7 @@ function textBox(_input, _onModify) : textInput(_input, _onModify) constructor { } surface_set_shader(text_surface, noone, true, BLEND.add); - display_text(tx - tb_surf_x, _h / 2 - th / 2, txt, _w - ui(4), _mx - tb_surf_x); + display_text(tx - tb_surf_x, _h / 2 - th / 2, string_real(txt), _w - ui(4), _mx - tb_surf_x); surface_reset_shader(); BLEND_ALPHA diff --git a/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.fsh b/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.fsh new file mode 100644 index 000000000..4e5b43edc --- /dev/null +++ b/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.fsh @@ -0,0 +1,10 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() { + gl_FragData[0] = texture2D( gm_BaseTexture, v_vTexcoord ); + gl_FragData[1] = vec4(v_vTexcoord, 0., 1. ); +} diff --git a/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.vsh b/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy b/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy new file mode 100644 index 000000000..fc51fb64b --- /dev/null +++ b/shaders/sh_mk_flag_mrt/sh_mk_flag_mrt.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_mk_flag_mrt", + "parent": { + "name": "Flag", + "path": "folders/shader/MK effects/Flag.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/shaders/sh_mk_flag_shade/sh_mk_flag_shade.fsh b/shaders/sh_mk_flag_shade/sh_mk_flag_shade.fsh new file mode 100644 index 000000000..cf38c38fe --- /dev/null +++ b/shaders/sh_mk_flag_shade/sh_mk_flag_shade.fsh @@ -0,0 +1,36 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +uniform sampler2D textureMap; +uniform vec2 dimension; +uniform vec2 oriPosition; +uniform vec2 oriScale; +uniform int side; + +uniform int shadowInv; +uniform float shadow; +uniform float shadowThres; + +void main() { + vec2 texPos = texture2D( textureMap, v_vTexcoord ).xy; + vec2 oriPos = v_vTexcoord - (oriPosition / dimension); + oriPos /= oriScale / dimension; + + float shade; + if(side == 0) { + if(shadowInv == 0) shade = oriPos.y - shadowThres < texPos.y? shadow : 1.; + else shade = oriPos.y - shadowThres > texPos.y? shadow : 1.; + } else { + if(shadowInv == 0) shade = oriPos.x - shadowThres < texPos.x? shadow : 1.; + else shade = oriPos.x - shadowThres > texPos.x? shadow : 1.; + } + + vec4 tex = texture2D( gm_BaseTexture, v_vTexcoord ); + + tex.rgb *= shade; + + gl_FragColor = tex; +} diff --git a/shaders/sh_mk_flag_shade/sh_mk_flag_shade.vsh b/shaders/sh_mk_flag_shade/sh_mk_flag_shade.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_mk_flag_shade/sh_mk_flag_shade.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy b/shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy new file mode 100644 index 000000000..5acaf545f --- /dev/null +++ b/shaders/sh_mk_flag_shade/sh_mk_flag_shade.yy @@ -0,0 +1,10 @@ +{ + "resourceType": "GMShader", + "resourceVersion": "1.0", + "name": "sh_mk_flag_shade", + "parent": { + "name": "Flag", + "path": "folders/shader/MK effects/Flag.yy", + }, + "type": 1, +} \ No newline at end of file diff --git a/sprites/s_MKFX/c73dddac-dac5-48a6-946b-872fd494343d.png b/sprites/s_MKFX/c73dddac-dac5-48a6-946b-872fd494343d.png new file mode 100644 index 0000000000000000000000000000000000000000..889132dc659c2a058100b85a43454f2e3ca6035c GIT binary patch literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^jX>Lkk1LFQ8Dv z3kHT#0|tgy2@DKYGZ+}e3+C(!v;j)6C3(BMF#HF>1$&oIW?*1(^mK6yskrra?#0sC z1|kmm)t}|_-4Wr_OFCzo&EmOfSax$+I0#^c388d{Bugfv#LaA`F*c`aCgmB}E!*8Ot|+Zx&R zTUB)D?TMPG&Sv2EeA&@Ei(@>ars#fMzq&Z)*8Y#b`u<5gNPYj_asub6{6^Q?oZ_5aTfC@ zo@y5L&3k_yPL}`nUD^GeeFq2I?Wxz#_;2|xVlCsG)6@8{%O*t?SXSW++Ftxa=J z?K`}&F-CKbn_IElMb9@W7k@WCYAa-GGCsd+KI6|V*ZY(63)*t-d|~Imxcd`}V#Gvs z{~H(IS};5A_^7d&S&W&J;alVT>!z+^Yz`7^S#1*-a;BS|3%SrQyN$i#WnnM-o!w7$ z+w%)F*Sz-&h;Lq~@a$u0?ek>C`je6;v^IwSS+!8mDJ`?N%nv=73@J>Cj&$mC> zyh$)UKv8wa>%ecvCF1uz61u@NL)7LN)BYH@&bN+Lf__a~PHf2Z*WCU^<_61yu8%G= z6wY&Ai7DD~Lq)B`!r+GGYHfab1+nWrs!neE4K^HFc62YNcBAh`sW&ydyVEZnVp+T2 z-nrYreOurYk<|Hz9|LQYPgTjl)dq@?6yPUim8_I zZ32qU+X9z#i<;fmP`fAc@r%R9;~bHe(?5KfH$&+Rr!d>S;9nwLbJY!QR92j2&fM4+ z^W5;-jZj<7jV>Lf{Odl>&^n;=}c^IEd5&9U330`)bS~wD!mwhzFhj>Z6fct?Val^+FL(Q zWoQ#wsB*?_B2Q$*j)jlKPhQx2yrBE;F&XLmRdF(>_s+4IB-Ung^O7C&jd!(Wx#_WK z?*jF*Ez>4^)oSZo`pN&-f4(W7`PjLzXIKo;58}u73)Sn*os$VHUQ|n5BT7;dOH!?p zi&B9UgOP!ev96(!uAyOwfw7gLxs{25wt<0_fq}R-R}_kd-29Zxv`X9>(#keH18UHK g+fb63n_66wm|K8bk74p;OQ0SGPgg&ebxsLQ03^3W1poj5 literal 0 HcmV?d00001 diff --git a/sprites/s_MKFX/layers/c73dddac-dac5-48a6-946b-872fd494343d/9732ca81-2fd3-4435-9662-baa1df3f77c3.png b/sprites/s_MKFX/layers/c73dddac-dac5-48a6-946b-872fd494343d/9732ca81-2fd3-4435-9662-baa1df3f77c3.png new file mode 100644 index 0000000000000000000000000000000000000000..889132dc659c2a058100b85a43454f2e3ca6035c GIT binary patch literal 1358 zcmeAS@N?(olHy`uVBq!ia0vp^jX>Lkk1LFQ8Dv z3kHT#0|tgy2@DKYGZ+}e3+C(!v;j)6C3(BMF#HF>1$&oIW?*1(^mK6yskrra?#0sC z1|kmm)t}|_-4Wr_OFCzo&EmOfSax$+I0#^c388d{Bugfv#LaA`F*c`aCgmB}E!*8Ot|+Zx&R zTUB)D?TMPG&Sv2EeA&@Ei(@>ars#fMzq&Z)*8Y#b`u<5gNPYj_asub6{6^Q?oZ_5aTfC@ zo@y5L&3k_yPL}`nUD^GeeFq2I?Wxz#_;2|xVlCsG)6@8{%O*t?SXSW++Ftxa=J z?K`}&F-CKbn_IElMb9@W7k@WCYAa-GGCsd+KI6|V*ZY(63)*t-d|~Imxcd`}V#Gvs z{~H(IS};5A_^7d&S&W&J;alVT>!z+^Yz`7^S#1*-a;BS|3%SrQyN$i#WnnM-o!w7$ z+w%)F*Sz-&h;Lq~@a$u0?ek>C`je6;v^IwSS+!8mDJ`?N%nv=73@J>Cj&$mC> zyh$)UKv8wa>%ecvCF1uz61u@NL)7LN)BYH@&bN+Lf__a~PHf2Z*WCU^<_61yu8%G= z6wY&Ai7DD~Lq)B`!r+GGYHfab1+nWrs!neE4K^HFc62YNcBAh`sW&ydyVEZnVp+T2 z-nrYreOurYk<|Hz9|LQYPgTjl)dq@?6yPUim8_I zZ32qU+X9z#i<;fmP`fAc@r%R9;~bHe(?5KfH$&+Rr!d>S;9nwLbJY!QR92j2&fM4+ z^W5;-jZj<7jV>Lf{Odl>&^n;=}c^IEd5&9U330`)bS~wD!mwhzFhj>Z6fct?Val^+FL(Q zWoQ#wsB*?_B2Q$*j)jlKPhQx2yrBE;F&XLmRdF(>_s+4IB-Ung^O7C&jd!(Wx#_WK z?*jF*Ez>4^)oSZo`pN&-f4(W7`PjLzXIKo;58}u73)Sn*os$VHUQ|n5BT7;dOH!?p zi&B9UgOP!ev96(!uAyOwfw7gLxs{25wt<0_fq}R-R}_kd-29Zxv`X9>(#keH18UHK g+fb63n_66wm|K8bk74p;OQ0SGPgg&ebxsLQ03^3W1poj5 literal 0 HcmV?d00001 diff --git a/sprites/s_MKFX/s_MKFX.yy b/sprites/s_MKFX/s_MKFX.yy new file mode 100644 index 000000000..82a443f44 --- /dev/null +++ b/sprites/s_MKFX/s_MKFX.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_MKFX", + "bbox_bottom": 47, + "bbox_left": 7, + "bbox_right": 120, + "bbox_top": 16, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"c73dddac-dac5-48a6-946b-872fd494343d",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"9732ca81-2fd3-4435-9662-baa1df3f77c3","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 1, + "parent": { + "name": "MK effects", + "path": "folders/nodes/icons/MK effects.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_MKFX", + "autoRecord": true, + "backdropHeight": 768, + "backdropImageOpacity": 0.5, + "backdropImagePath": "", + "backdropWidth": 1366, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "events": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "eventStubScript": null, + "eventToFunction": {}, + "length": 1.0, + "lockOrigin": false, + "moments": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "showBackdrop": true, + "showBackdropImage": false, + "timeUnits": 1, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[ + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"c73dddac-dac5-48a6-946b-872fd494343d","path":"sprites/s_MKFX/s_MKFX.yy",},},},"Disabled":false,"id":"89951b9c-0cf7-4f05-8a8a-a9c9877beac4","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange": null, + "volume": 1.0, + "xorigin": 64, + "yorigin": 0, + }, + "swatchColours": null, + "swfPrecision": 2.525, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "type": 0, + "VTile": false, + "width": 129, +} \ No newline at end of file diff --git a/sprites/s_node_mk_flag/1df90f61-4eb3-4deb-8559-b204622d14a0.png b/sprites/s_node_mk_flag/1df90f61-4eb3-4deb-8559-b204622d14a0.png new file mode 100644 index 0000000000000000000000000000000000000000..b1be952107e452d1074c59d326bd852766f97c47 GIT binary patch literal 1809 zcmZ{lc{Cf?7sp=`L}MaRlu}FW)#@bFIt@`v(OM^d&FPe}g;LrejWubgrKE~bQ$=l92)ci;V%GxMMVU@+&}nFfhc?1xYz>_sQ~~Z4uE|@h_L{`Z43ZQ9srm;0zihGTkm{c z@F3!K>7pgz|8oksB^iQ%kgcUTA$)8$$3Ae(SGI%C8)<8n;vGXQsb{Zx{-pgLSFLEr zt{7C)U7mimUBBJ$wjb=)O8RB)NlG{2)N;_#kK&&-B9~Ouji03-Q_<)446qcmwenn8 z*{N-KYQZDacpIZx{4gIwKOE~zou~adPgA;lLQ(O8>%^T6eMXe5xLb3t(#rF^YA%Ea zYvK+YECNh4?{$3tcOKy>!*TddEWUMj^u3!}otUp#_?5?sei+G+=Xose*dSsGoY6*w z{QCTDK#7l|a^psE!tc9};{uN?UOWEjN7WZ44Q&|{{FlgI*Ys;Qgxb$w0(nZp&BcF^ ziEQ7TkDc;DP*b71E3wlWlOe{n;3zdX2^Dw^1LQjYt64fn$X zNOyPRw)6#R7%DzCq=BAJPpYj=DPA$U30>hT#kGE7FiFq*?tEiz_e~syeb)=SpT@jh z4mDa-vhaztTf^zKG%bFiYrGml1He+lPLUS^E)7x~c|RQm;G;E%=-0RNN)0?NHXj{N zbzrHP4{nm7;K4SO+d4A>B^z1e(Q$JT37!e^j9zOGLaR-zGTxbY*&|CBTt~qYA>Mo< z=toejh0F#ancXC}<)PwwZ&bmxv#J~GKNGYQFV?aB<4&l?*{xEAymyYl*2UHI)c=dD%NWWmg?glH~-ke%_aL>FJgEX^ttD{W7u+hl5c zlEh5wD3;QkNmSrkRs3DlwkM6n0Z@BmLm`P&!m%o(LZs1`{=DF;^d-f3${L{mm z!;g9cj||ID$^49fe*KTIN_tcIVLbBnt|Vgm2j_D$*8SccmpfAy*XDZP_Xgq)&MDxR zJ&jT7N{*>|yUCyFvoc7IgsE$le5rZ06v$FRBRS1324qEq;a*WmE0uSVa6j(|M}o{s zUeVDL6T)qmYyL)pUy^X!ksR1%`&|i3?>c4Zr2_-_jB&X#>YZ;jZRmxPx%?!=^xY@> zE2cvr>&eRLVxk~(&iYk2emZmLoiT2TMj8A91y3pWI6gH0nG#wD zZ?`j6lZmIQpe;qqP*yhV1^@wz{xsKyZ|flR9nNC^k60(B7y?{9VqvCkC;fpq0s+r9 zNYQU|mkYlqabAcNVo~8WZVWBgOfW{WKg>*fhl;ZF;cCK$`qhLi1L9-jh%UwfuOW zOI?<7DfUF9bIva^(mdE!%6%TC)^%G^W5s$JQhVN`2`!gWRi+@6r9$4Beyx9nrgzd% zG1?@d)2N8(S|^7pAc>v}*qu-n0bfzoBa{y{UV2l4A3~jCMWpz6Qb;D=AtZqSU5u`t z4pvtOizQ(6Ot88pSfkSzj0pyljEqtEKOpFqkH2rkzXJzO#)Sev>wgs}{z0Trif0h{ V-{|2zDFgO4J literal 0 HcmV?d00001 diff --git a/sprites/s_node_mk_flag/layers/1df90f61-4eb3-4deb-8559-b204622d14a0/c905195c-29a2-4f99-abf3-9a5cca11fad5.png b/sprites/s_node_mk_flag/layers/1df90f61-4eb3-4deb-8559-b204622d14a0/c905195c-29a2-4f99-abf3-9a5cca11fad5.png new file mode 100644 index 0000000000000000000000000000000000000000..b1be952107e452d1074c59d326bd852766f97c47 GIT binary patch literal 1809 zcmZ{lc{Cf?7sp=`L}MaRlu}FW)#@bFIt@`v(OM^d&FPe}g;LrejWubgrKE~bQ$=l92)ci;V%GxMMVU@+&}nFfhc?1xYz>_sQ~~Z4uE|@h_L{`Z43ZQ9srm;0zihGTkm{c z@F3!K>7pgz|8oksB^iQ%kgcUTA$)8$$3Ae(SGI%C8)<8n;vGXQsb{Zx{-pgLSFLEr zt{7C)U7mimUBBJ$wjb=)O8RB)NlG{2)N;_#kK&&-B9~Ouji03-Q_<)446qcmwenn8 z*{N-KYQZDacpIZx{4gIwKOE~zou~adPgA;lLQ(O8>%^T6eMXe5xLb3t(#rF^YA%Ea zYvK+YECNh4?{$3tcOKy>!*TddEWUMj^u3!}otUp#_?5?sei+G+=Xose*dSsGoY6*w z{QCTDK#7l|a^psE!tc9};{uN?UOWEjN7WZ44Q&|{{FlgI*Ys;Qgxb$w0(nZp&BcF^ ziEQ7TkDc;DP*b71E3wlWlOe{n;3zdX2^Dw^1LQjYt64fn$X zNOyPRw)6#R7%DzCq=BAJPpYj=DPA$U30>hT#kGE7FiFq*?tEiz_e~syeb)=SpT@jh z4mDa-vhaztTf^zKG%bFiYrGml1He+lPLUS^E)7x~c|RQm;G;E%=-0RNN)0?NHXj{N zbzrHP4{nm7;K4SO+d4A>B^z1e(Q$JT37!e^j9zOGLaR-zGTxbY*&|CBTt~qYA>Mo< z=toejh0F#ancXC}<)PwwZ&bmxv#J~GKNGYQFV?aB<4&l?*{xEAymyYl*2UHI)c=dD%NWWmg?glH~-ke%_aL>FJgEX^ttD{W7u+hl5c zlEh5wD3;QkNmSrkRs3DlwkM6n0Z@BmLm`P&!m%o(LZs1`{=DF;^d-f3${L{mm z!;g9cj||ID$^49fe*KTIN_tcIVLbBnt|Vgm2j_D$*8SccmpfAy*XDZP_Xgq)&MDxR zJ&jT7N{*>|yUCyFvoc7IgsE$le5rZ06v$FRBRS1324qEq;a*WmE0uSVa6j(|M}o{s zUeVDL6T)qmYyL)pUy^X!ksR1%`&|i3?>c4Zr2_-_jB&X#>YZ;jZRmxPx%?!=^xY@> zE2cvr>&eRLVxk~(&iYk2emZmLoiT2TMj8A91y3pWI6gH0nG#wD zZ?`j6lZmIQpe;qqP*yhV1^@wz{xsKyZ|flR9nNC^k60(B7y?{9VqvCkC;fpq0s+r9 zNYQU|mkYlqabAcNVo~8WZVWBgOfW{WKg>*fhl;ZF;cCK$`qhLi1L9-jh%UwfuOW zOI?<7DfUF9bIva^(mdE!%6%TC)^%G^W5s$JQhVN`2`!gWRi+@6r9$4Beyx9nrgzd% zG1?@d)2N8(S|^7pAc>v}*qu-n0bfzoBa{y{UV2l4A3~jCMWpz6Qb;D=AtZqSU5u`t z4pvtOizQ(6Ot88pSfkSzj0pyljEqtEKOpFqkH2rkzXJzO#)Sev>wgs}{z0Trif0h{ V-{|2zDFgO4J literal 0 HcmV?d00001 diff --git a/sprites/s_node_mk_flag/s_node_mk_flag.yy b/sprites/s_node_mk_flag/s_node_mk_flag.yy new file mode 100644 index 000000000..6a2fabe57 --- /dev/null +++ b/sprites/s_node_mk_flag/s_node_mk_flag.yy @@ -0,0 +1,74 @@ +{ + "resourceType": "GMSprite", + "resourceVersion": "1.0", + "name": "s_node_mk_flag", + "bbox_bottom": 63, + "bbox_left": 0, + "bbox_right": 63, + "bbox_top": 0, + "bboxMode": 0, + "collisionKind": 1, + "collisionTolerance": 0, + "DynamicTexturePage": false, + "edgeFiltering": false, + "For3D": false, + "frames": [ + {"resourceType":"GMSpriteFrame","resourceVersion":"1.1","name":"1df90f61-4eb3-4deb-8559-b204622d14a0",}, + ], + "gridX": 0, + "gridY": 0, + "height": 64, + "HTile": false, + "layers": [ + {"resourceType":"GMImageLayer","resourceVersion":"1.0","name":"c905195c-29a2-4f99-abf3-9a5cca11fad5","blendMode":0,"displayName":"default","isLocked":false,"opacity":100.0,"visible":true,}, + ], + "nineSlice": null, + "origin": 4, + "parent": { + "name": "MK effects", + "path": "folders/nodes/icons/MK effects.yy", + }, + "preMultiplyAlpha": false, + "sequence": { + "resourceType": "GMSequence", + "resourceVersion": "1.4", + "name": "s_node_mk_flag", + "autoRecord": true, + "backdropHeight": 768, + "backdropImageOpacity": 0.5, + "backdropImagePath": "", + "backdropWidth": 1366, + "backdropXOffset": 0.0, + "backdropYOffset": 0.0, + "events": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "eventStubScript": null, + "eventToFunction": {}, + "length": 1.0, + "lockOrigin": false, + "moments": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, + "playback": 1, + "playbackSpeed": 30.0, + "playbackSpeedType": 0, + "showBackdrop": true, + "showBackdropImage": false, + "timeUnits": 1, + "tracks": [ + {"resourceType":"GMSpriteFramesTrack","resourceVersion":"1.0","name":"frames","builtinName":0,"events":[],"inheritsTrackColour":true,"interpolation":1,"isCreationTrack":false,"keyframes":{"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[ + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"1df90f61-4eb3-4deb-8559-b204622d14a0","path":"sprites/s_node_mk_flag/s_node_mk_flag.yy",},},},"Disabled":false,"id":"030b00ed-a261-43f8-987c-52c8fcfa9707","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, + ], + "visibleRange": null, + "volume": 1.0, + "xorigin": 32, + "yorigin": 32, + }, + "swatchColours": null, + "swfPrecision": 2.525, + "textureGroupId": { + "name": "Default", + "path": "texturegroups/Default", + }, + "type": 0, + "VTile": false, + "width": 64, +} \ No newline at end of file