From 265f7c997e413c2e6c74ee039545ec671cfa1d58 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Wed, 15 Nov 2023 08:35:30 +0700 Subject: [PATCH] 3D light, SDF fixes --- PixelComposer.yyp | 2 +- scripts/__d3d_gizmo/__d3d_gizmo.gml | 1 + .../d3d_camera_object/d3d_camera_object.gml | 1 + scripts/d3d_light/d3d_light.gml | 2 +- .../d3d_light_directional.gml | 4 +- scripts/d3d_light_point/d3d_light_point.gml | 1 + scripts/d3d_object/d3d_object.gml | 2 + scripts/globals/globals.gml | 2 +- scripts/node_sdf/node_sdf.gml | 33 +++--------- scripts/panel_menu/panel_menu.gml | 49 ++++++++++++------ scripts/panel_patreon/panel_patreon.gml | 21 ++++++-- shaders/sh_d3d_wireframe/sh_d3d_wireframe.fsh | 3 +- shaders/sh_sdf_dist/sh_sdf_dist.fsh | 5 ++ .../61b3fd81-17a8-41fd-aa0d-362fc4677ef8.png | Bin 0 -> 468 bytes .../a4e13440-b690-4486-a6d4-06d9e199737a.png | Bin 0 -> 521 bytes .../f82776f7-e95a-4bd4-a32a-d0eabde1a5ea.png | Bin 627 -> 0 bytes .../6b83fa45-aed7-4e4c-b9bf-3db6806971c5.png | Bin 0 -> 468 bytes .../6b83fa45-aed7-4e4c-b9bf-3db6806971c5.png | Bin 0 -> 521 bytes .../4c192834-2a31-4486-a8a4-f74d1a49b773.png | Bin 627 -> 0 bytes .../s_patreon_supporter.yy | 12 +++-- 20 files changed, 81 insertions(+), 57 deletions(-) create mode 100644 sprites/s_patreon_supporter/61b3fd81-17a8-41fd-aa0d-362fc4677ef8.png create mode 100644 sprites/s_patreon_supporter/a4e13440-b690-4486-a6d4-06d9e199737a.png delete mode 100644 sprites/s_patreon_supporter/f82776f7-e95a-4bd4-a32a-d0eabde1a5ea.png create mode 100644 sprites/s_patreon_supporter/layers/61b3fd81-17a8-41fd-aa0d-362fc4677ef8/6b83fa45-aed7-4e4c-b9bf-3db6806971c5.png create mode 100644 sprites/s_patreon_supporter/layers/a4e13440-b690-4486-a6d4-06d9e199737a/6b83fa45-aed7-4e4c-b9bf-3db6806971c5.png delete mode 100644 sprites/s_patreon_supporter/layers/f82776f7-e95a-4bd4-a32a-d0eabde1a5ea/4c192834-2a31-4486-a8a4-f74d1a49b773.png diff --git a/PixelComposer.yyp b/PixelComposer.yyp index b958bea62..129e8dbac 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -460,7 +460,7 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_panel_inspector.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_panel_preview.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_paste.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_patreon_supporter.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_patreon_supporter_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_patreon.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_pin.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_pixel_builder.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",}, diff --git a/scripts/__d3d_gizmo/__d3d_gizmo.gml b/scripts/__d3d_gizmo/__d3d_gizmo.gml index 9cee45f7e..da0ddfb78 100644 --- a/scripts/__d3d_gizmo/__d3d_gizmo.gml +++ b/scripts/__d3d_gizmo/__d3d_gizmo.gml @@ -6,6 +6,7 @@ function __3dGizmo() : __3dObject() constructor { static submitSel = function(params = {}) { shader_set(sh_d3d_wireframe); + shader_set_color("blend", c_white); submitVertex(params); shader_reset(); } diff --git a/scripts/d3d_camera_object/d3d_camera_object.gml b/scripts/d3d_camera_object/d3d_camera_object.gml index 47bf90f45..9411ec9c5 100644 --- a/scripts/d3d_camera_object/d3d_camera_object.gml +++ b/scripts/d3d_camera_object/d3d_camera_object.gml @@ -36,6 +36,7 @@ function __3dCamera_object() : __3dObject() constructor { static submitSel = function(params = {}) { shader_set(sh_d3d_wireframe); + shader_set_color("blend", c_white); submitVertex(params); shader_reset(); } diff --git a/scripts/d3d_light/d3d_light.gml b/scripts/d3d_light/d3d_light.gml index 76aefa4fe..048641727 100644 --- a/scripts/d3d_light/d3d_light.gml +++ b/scripts/d3d_light/d3d_light.gml @@ -1,7 +1,7 @@ function __3dLight() : __3dObject() constructor { UI_vertex = [ array_create(33) ]; for( var i = 0; i <= 32; i++ ) - UI_vertex[0][i] = new __vertex(0, lengthdir_x(0.5, i / 32 * 360), lengthdir_y(0.5, i / 32 * 360), c_yellow, 0.8); + UI_vertex[0][i] = new __vertex(0, lengthdir_x(0.5, i / 32 * 360), lengthdir_y(0.5, i / 32 * 360), c_white); VB_UI = build(noone, UI_vertex); color = c_white; diff --git a/scripts/d3d_light_directional/d3d_light_directional.gml b/scripts/d3d_light_directional/d3d_light_directional.gml index e5b1fcdb1..e89534114 100644 --- a/scripts/d3d_light_directional/d3d_light_directional.gml +++ b/scripts/d3d_light_directional/d3d_light_directional.gml @@ -1,5 +1,5 @@ function __3dLightDirectional() : __3dLight() constructor { - vertex = [[ new __vertex(1, 0, 0, c_yellow, 0.8), new __vertex(3, 0, 0, c_yellow, 0.8) ]]; + vertex = [[ new __vertex(1, 0, 0, c_white), new __vertex(3, 0, 0, c_white) ]]; VF = global.VF_POS_COL; render_type = pr_linelist; VB = build(); @@ -13,6 +13,8 @@ function __3dLightDirectional() : __3dLight() constructor { static submitSel = function(params = {}) { #region shader_set(sh_d3d_wireframe); + shader_set_color("blend", color); + preSubmitVertex(params); shader_reset(); } #endregion diff --git a/scripts/d3d_light_point/d3d_light_point.gml b/scripts/d3d_light_point/d3d_light_point.gml index 96aab6cfc..4497ccbfd 100644 --- a/scripts/d3d_light_point/d3d_light_point.gml +++ b/scripts/d3d_light_point/d3d_light_point.gml @@ -11,6 +11,7 @@ function __3dLightPoint() : __3dLight() constructor { static submitSel = function(params = {}) { shader_set(sh_d3d_wireframe); + shader_set_color("blend", color); preSubmitVertex(params); shader_reset(); } diff --git a/scripts/d3d_object/d3d_object.gml b/scripts/d3d_object/d3d_object.gml index a5f621e49..3b718a326 100644 --- a/scripts/d3d_object/d3d_object.gml +++ b/scripts/d3d_object/d3d_object.gml @@ -181,6 +181,8 @@ function __3dObject() constructor { if(NVB == noone) generateNormal(); if(NVB != noone) { shader_set(sh_d3d_wireframe); + shader_set_color("blend", c_white); + for( var i = 0, n = array_length(NVB); i < n; i++ ) vertex_submit(NVB[i], pr_linelist, -1); shader_reset(); diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 2b90b2a78..aeacf76de 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -26,7 +26,7 @@ globalvar VERSION, SAVE_VERSION, VERSION_STRING, BUILD_NUMBER; VERSION = 11571; - SAVE_VERSION = 11560; + SAVE_VERSION = 11570; VERSION_STRING = "1.15.7.1"; BUILD_NUMBER = 11571; diff --git a/scripts/node_sdf/node_sdf.gml b/scripts/node_sdf/node_sdf.gml index cce076aa9..bf129e372 100644 --- a/scripts/node_sdf/node_sdf.gml +++ b/scripts/node_sdf/node_sdf.gml @@ -43,16 +43,9 @@ function Node_SDF(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const temp_surface[1] = surface_verify(temp_surface[1], _n, _n, cDep); _outSurf = surface_verify(_outSurf, sw, sh, cDep); - surface_set_target(temp_surface[0]); - DRAW_CLEAR - BLEND_OVERRIDE; - - shader_set(sh_sdf_tex); + surface_set_shader(temp_surface[0], sh_sdf_tex); draw_surface_safe(inSurf, 0, 0); - shader_reset(); - - BLEND_NORMAL; - surface_reset_target(); + surface_reset_shader(); var _step = ceil(log2(_n)); var stepSize = power(2, _step); @@ -62,33 +55,19 @@ function Node_SDF(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) const stepSize /= 2; bg = !bg; - surface_set_target(temp_surface[bg]); - DRAW_CLEAR - BLEND_OVERRIDE; - - shader_set(sh_sdf); + surface_set_shader(temp_surface[bg], sh_sdf); shader_set_uniform_f(uniform_sdf_dim, _n, _n ); shader_set_uniform_f(uniform_sdf_stp, stepSize); shader_set_uniform_i(uniform_sdf_sid, _side); draw_surface_safe(temp_surface[!bg], 0, 0); - shader_reset(); - - BLEND_NORMAL; - surface_reset_target(); + surface_reset_shader(); } - surface_set_target(_outSurf); - DRAW_CLEAR - BLEND_OVERRIDE; - - shader_set(sh_sdf_dist); + surface_set_shader(_outSurf, sh_sdf_dist); shader_set_uniform_i(uniform_dst_sid, _side); shader_set_uniform_f(uniform_dst_dst, _dist); draw_surface_safe(temp_surface[bg], 0, 0); - shader_reset(); - - BLEND_NORMAL; - surface_reset_target(); + surface_reset_shader(); return _outSurf; } #endregion diff --git a/scripts/panel_menu/panel_menu.gml b/scripts/panel_menu/panel_menu.gml index a76428ae2..f928b39a4 100644 --- a/scripts/panel_menu/panel_menu.gml +++ b/scripts/panel_menu/panel_menu.gml @@ -645,22 +645,6 @@ function Panel_Menu() : PanelContent() constructor { } #endregion - #region patreon - if(IS_PATREON && PREFERENCES.show_supporter_icon) { - _x1 = _x0 - 8; - _x0 -= ui(32); - - var _cx = (_x0 + _x1) / 2; - var _cy = (_y0 + _y1) / 2; - - if(pHOVER && point_in_rectangle(mx, my, _cx - 16, _y0, _cx + 16, _y1)) { - TOOLTIP = "Verified supporter"; - } - - draw_sprite_ext(s_patreon_supporter, 0, _cx, _cy, 1, 1, 0, tc, 1); - } - #endregion - #region title var txt = ""; if(PROJECT.safeMode) txt += "[SAFE MODE] "; @@ -713,7 +697,11 @@ function Panel_Menu() : PanelContent() constructor { tby0 = ty0; } - if(buttonInstant(THEME.button_hide_fill, tbx0, tby0, tw, th, [mx, my], pFOCUS, pHOVER) == 2) { + var _b = buttonInstant(THEME.button_hide_fill, tbx0, tby0, tw, th, [mx, my], pFOCUS, pHOVER); + var _hov = _b > 0; + + if(_b == 2) { + _hov = true; var arr = []; var tip = []; for(var i = 0; i < min(10, ds_list_size(RECENT_FILES)); i++) { @@ -734,6 +722,33 @@ function Panel_Menu() : PanelContent() constructor { draw_set_text(f_p0b, fa_left, fa_center, COLORS._main_text_sub); draw_text(tx0 + ui(8), tby0 + th / 2, tc); } + + if(IS_PATREON && PREFERENCES.show_supporter_icon) { + var _tw = string_width(tc); + var _th = string_height(tc); + var _cx, _cy; + + if(hori) { + _cx = tcx + _tw / 2; + _cy = (ty0 + ty1) / 2 - _th / 2; + } else { + _cx = tx0 + ui(8) + _tw; + _cy = tby0 + th / 2 - _th / 2; + } + + _cx += ui(2); + _cy += ui(6); + + var _ib = COLORS._main_text_sub; + + if(pHOVER && point_in_rectangle(mx, my, _cx - 12, _cy - 12, _cx + 12, _cy + 12)) { + TOOLTIP = "Verified supporter"; + _ib = COLORS._main_accent; + } + + draw_sprite_ext(s_patreon_supporter, 0, _cx, _cy, 1, 1, 0, _hov? COLORS._main_icon_dark : COLORS.panel_bg_clear, 1); + draw_sprite_ext(s_patreon_supporter, 1, _cx, _cy, 1, 1, 0, _ib, 1); + } #endregion } } \ No newline at end of file diff --git a/scripts/panel_patreon/panel_patreon.gml b/scripts/panel_patreon/panel_patreon.gml index c4c5947fa..caa880ab5 100644 --- a/scripts/panel_patreon/panel_patreon.gml +++ b/scripts/panel_patreon/panel_patreon.gml @@ -81,8 +81,23 @@ function Panel_Patreon() : PanelContent() constructor { _yy += 100 + 16; if(IS_PATREON) { - draw_set_text(f_p0, fa_center, fa_center, COLORS._main_value_positive); - draw_text(w / 2, (_yy + h) / 2, "Patreon verified, thank you for supporting Pixel Composer."); + var _y = (_yy + h) / 2; + + draw_set_text(f_p0, fa_center, fa_bottom, COLORS._main_value_positive); + draw_text(w / 2, _y - 16, "Patreon verified, thank you for supporting Pixel Composer."); + + var _bw = 200; + var _bh = TEXTBOX_HEIGHT + ui(8); + var _bx = w / 2 - _bw / 2; + + if(buttonInstant(THEME.button, _bx, _y, _bw, _bh, [ mx, my ], pFOCUS, pHOVER) == 2) { + var path = DIRECTORY + "patreon"; + file_delete(path); + IS_PATREON = false; + } + + draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text); + draw_text(_bx + _bw / 2, _y + _bh / 2, "Remove verification"); return; } @@ -117,7 +132,7 @@ function Panel_Patreon() : PanelContent() constructor { break; case 1 : draw_set_text(f_p0, fa_center, fa_center, COLORS._main_text_inner); - draw_text(w / 2, _yy, "Enter verification code send to your email:"); + draw_text(w / 2, _yy, "Enter verification code:"); tb_code.setInteract(true); tb_code.setFocusHover(pFOCUS, pHOVER); diff --git a/shaders/sh_d3d_wireframe/sh_d3d_wireframe.fsh b/shaders/sh_d3d_wireframe/sh_d3d_wireframe.fsh index c10580806..0973c261d 100644 --- a/shaders/sh_d3d_wireframe/sh_d3d_wireframe.fsh +++ b/shaders/sh_d3d_wireframe/sh_d3d_wireframe.fsh @@ -1,5 +1,6 @@ varying vec4 v_vColour; +uniform vec4 blend; void main() { - gl_FragColor = v_vColour; + gl_FragColor = v_vColour * blend; } diff --git a/shaders/sh_sdf_dist/sh_sdf_dist.fsh b/shaders/sh_sdf_dist/sh_sdf_dist.fsh index f5fbccb8d..2144fb358 100644 --- a/shaders/sh_sdf_dist/sh_sdf_dist.fsh +++ b/shaders/sh_sdf_dist/sh_sdf_dist.fsh @@ -9,6 +9,11 @@ uniform float max_distance; void main() { vec4 col = texture2D( gm_BaseTexture, v_vTexcoord ); + if(col.xy == vec2(0.)) { + gl_FragColor = vec4(vec3(0.), 1.); + return; + } + float dist = (max_distance - distance(col.xy, v_vTexcoord)) / max_distance; if((side == 0 && col.z == 0.) || (side == 1 && col.z == 1.)) { diff --git a/sprites/s_patreon_supporter/61b3fd81-17a8-41fd-aa0d-362fc4677ef8.png b/sprites/s_patreon_supporter/61b3fd81-17a8-41fd-aa0d-362fc4677ef8.png new file mode 100644 index 0000000000000000000000000000000000000000..c5f4133465b55d8b4d9248df1e2c43806b7f9016 GIT binary patch literal 468 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aiY77hwEes65fI|H(?D01A>#WBR=_}i(8yoU?~ zTJHxm2)}CZTG8UUf<;APq0j^a&Z!M70Uv%iaxT4Dx;@X^ zzVf&H2C)Oo8_u#!+M4|HO5~1m73PzZpBS=A2r2Z;<-+U>t9#cyN~rjcgCBLvoQ^x%6GD}vu5w<+V{x*N8tfxrB?Yps;|mCfnHKA zag8WRNi0dVN-jzTQVd20M#j2^hPsBPAqIw4Mg~@y literal 0 HcmV?d00001 diff --git a/sprites/s_patreon_supporter/a4e13440-b690-4486-a6d4-06d9e199737a.png b/sprites/s_patreon_supporter/a4e13440-b690-4486-a6d4-06d9e199737a.png new file mode 100644 index 0000000000000000000000000000000000000000..817c2bf6b390e96b21a9bdb947185aac61ae2a40 GIT binary patch literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aiY77hwEes65fI|H(?DDubC#WBR=_|~vM-ev<4 zo3w<<4J^wNEN-Y6uunc96T&2<#>nY&aKZtRJ9Zh)nNcque4V6blKcKw#do;`q$d_b=nUi%q>^#cO?JC+?^F-Zui>R^Se22ZwcN8=> zeE-Il>fyjS;k?obi>r=&50oFA+5Xn-_Oh)LzDidoxhsTTN@tj>&!oxoO{LYL-GOgO z0n36KrgF!L-IW_A^Yn!6P0WeAK37SyAz`y|=-oV>E%Uhdo)Ep+q!q@X5??RCZ)SN? zLwu`X^*)AqR_$kVRF#@)o?i3X@AdwtMB@eVbr&CXr^n9jQvMl#l>fk{{P*w81aASu zLAAs+q9i4;B-JXpC>2OC7#SED>lzyB8k&X}7+M(_Secq?8yHv_7(CshUWcL~H$Npa ttrE9}DG%o#0&38J+fb63n_66wm|K8b&*3loWPy4ZJYD@<);T3K0RTN^w(0-? literal 0 HcmV?d00001 diff --git a/sprites/s_patreon_supporter/f82776f7-e95a-4bd4-a32a-d0eabde1a5ea.png b/sprites/s_patreon_supporter/f82776f7-e95a-4bd4-a32a-d0eabde1a5ea.png deleted file mode 100644 index 4e5fec6debc8e40ee2efe0af848a5cbc0d0fd2cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aiY77hwEes65fI|H*Yfq^m2)5S5wXOy4tHsu%e{%!1aJtEAatD~pTC1GS% zY^1lldb-D-#GQ9<&io&rmXcQtNj;#~Ri*$_b}8?qw(!T*oD`Mes!9V^;n- zOybujSh&7p;&*t&`Hy8C(-GSTA~Rm>`E^rJ(E6B=+q)mTl*9Kg+#21k+?jkq;ez?T zy|?m$zwneO{oKnw@60adHP&|42eb;f-|RM>!CJJRgJmz%w(fO}KF=q|w>FtSxVomi z@omQe-xVjE&nBuWwNI=OpBUBa>{{0BE$C_cJG14_-LL8n0a*?YZ=Pp*60dYASGi%? z@=ss4Zd=_wvt!PW9Z9vh{#9vjmbyPMIwCCW(3zc5)fm&0B;(7Jmp=En)iLus^J6(! z3l@A&49=B5;1-;4n|(RIjnpU24cFiKnJ+(4cFp9PVZCQyZ^-`8+YObh&yHP^|C?WB z6D0Ft@;gRg9H^GKMwFx^mZVxG7o`Fz1|tI_V_ic-T|<))LnA9wQ!8V0Z36=<1B0)h z|JtEw$jwj5OsmALp=F(G6HtQ&+=i0O+|=Td#M}bhdM@uyi3RFm@O1TaS?83{1OQVZ B?|H(?D01A>#WBR=_}i(8yoU?~ zTJHxm2)}CZTG8UUf<;APq0j^a&Z!M70Uv%iaxT4Dx;@X^ zzVf&H2C)Oo8_u#!+M4|HO5~1m73PzZpBS=A2r2Z;<-+U>t9#cyN~rjcgCBLvoQ^x%6GD}vu5w<+V{x*N8tfxrB?Yps;|mCfnHKA zag8WRNi0dVN-jzTQVd20M#j2^hPsBPAqIw4Mg~@y literal 0 HcmV?d00001 diff --git a/sprites/s_patreon_supporter/layers/a4e13440-b690-4486-a6d4-06d9e199737a/6b83fa45-aed7-4e4c-b9bf-3db6806971c5.png b/sprites/s_patreon_supporter/layers/a4e13440-b690-4486-a6d4-06d9e199737a/6b83fa45-aed7-4e4c-b9bf-3db6806971c5.png new file mode 100644 index 0000000000000000000000000000000000000000..817c2bf6b390e96b21a9bdb947185aac61ae2a40 GIT binary patch literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aiY77hwEes65fI|H(?DDubC#WBR=_|~vM-ev<4 zo3w<<4J^wNEN-Y6uunc96T&2<#>nY&aKZtRJ9Zh)nNcque4V6blKcKw#do;`q$d_b=nUi%q>^#cO?JC+?^F-Zui>R^Se22ZwcN8=> zeE-Il>fyjS;k?obi>r=&50oFA+5Xn-_Oh)LzDidoxhsTTN@tj>&!oxoO{LYL-GOgO z0n36KrgF!L-IW_A^Yn!6P0WeAK37SyAz`y|=-oV>E%Uhdo)Ep+q!q@X5??RCZ)SN? zLwu`X^*)AqR_$kVRF#@)o?i3X@AdwtMB@eVbr&CXr^n9jQvMl#l>fk{{P*w81aASu zLAAs+q9i4;B-JXpC>2OC7#SED>lzyB8k&X}7+M(_Secq?8yHv_7(CshUWcL~H$Npa ttrE9}DG%o#0&38J+fb63n_66wm|K8b&*3loWPy4ZJYD@<);T3K0RTN^w(0-? literal 0 HcmV?d00001 diff --git a/sprites/s_patreon_supporter/layers/f82776f7-e95a-4bd4-a32a-d0eabde1a5ea/4c192834-2a31-4486-a8a4-f74d1a49b773.png b/sprites/s_patreon_supporter/layers/f82776f7-e95a-4bd4-a32a-d0eabde1a5ea/4c192834-2a31-4486-a8a4-f74d1a49b773.png deleted file mode 100644 index 4e5fec6debc8e40ee2efe0af848a5cbc0d0fd2cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 627 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`Gj3dtTpz6=aiY77hwEes65fI|H*Yfq^m2)5S5wXOy4tHsu%e{%!1aJtEAatD~pTC1GS% zY^1lldb-D-#GQ9<&io&rmXcQtNj;#~Ri*$_b}8?qw(!T*oD`Mes!9V^;n- zOybujSh&7p;&*t&`Hy8C(-GSTA~Rm>`E^rJ(E6B=+q)mTl*9Kg+#21k+?jkq;ez?T zy|?m$zwneO{oKnw@60adHP&|42eb;f-|RM>!CJJRgJmz%w(fO}KF=q|w>FtSxVomi z@omQe-xVjE&nBuWwNI=OpBUBa>{{0BE$C_cJG14_-LL8n0a*?YZ=Pp*60dYASGi%? z@=ss4Zd=_wvt!PW9Z9vh{#9vjmbyPMIwCCW(3zc5)fm&0B;(7Jmp=En)iLus^J6(! z3l@A&49=B5;1-;4n|(RIjnpU24cFiKnJ+(4cFp9PVZCQyZ^-`8+YObh&yHP^|C?WB z6D0Ft@;gRg9H^GKMwFx^mZVxG7o`Fz1|tI_V_ic-T|<))LnA9wQ!8V0Z36=<1B0)h z|JtEw$jwj5OsmALp=F(G6HtQ&+=i0O+|=Td#M}bhdM@uyi3RFm@O1TaS?83{1OQVZ B?","resourceVersion":"1.0","Keyframes":[],}, "eventStubScript": null, "eventToFunction": {}, - "length": 1.0, + "length": 2.0, "lockOrigin": false, "moments": {"resourceType":"KeyframeStore","resourceVersion":"1.0","Keyframes":[],}, "playback": 1, @@ -54,7 +55,8 @@ "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":"f82776f7-e95a-4bd4-a32a-d0eabde1a5ea","path":"sprites/s_patreon_supporter/s_patreon_supporter.yy",},},},"Disabled":false,"id":"dfe88e31-2c83-4869-a007-b43251820044","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"a4e13440-b690-4486-a6d4-06d9e199737a","path":"sprites/s_patreon_supporter/s_patreon_supporter.yy",},},},"Disabled":false,"id":"0cd2804e-499c-45e7-aefb-de3d9668945d","IsCreationKey":false,"Key":0.0,"Length":1.0,"Stretch":false,}, + {"resourceType":"Keyframe","resourceVersion":"1.0","Channels":{"0":{"resourceType":"SpriteFrameKeyframe","resourceVersion":"1.0","Id":{"name":"61b3fd81-17a8-41fd-aa0d-362fc4677ef8","path":"sprites/s_patreon_supporter/s_patreon_supporter.yy",},},},"Disabled":false,"id":"3bb9721a-2641-4870-8576-2075ea8282d2","IsCreationKey":false,"Key":1.0,"Length":1.0,"Stretch":false,}, ],},"modifiers":[],"spriteId":null,"trackColour":0,"tracks":[],"traits":0,}, ], "visibleRange": null,