diff --git a/datafiles/data/Theme.zip b/datafiles/data/Theme.zip index 54f8ddee6..643cdc775 100644 Binary files a/datafiles/data/Theme.zip and b/datafiles/data/Theme.zip differ diff --git a/objects/_p_dialog/Destroy_0.gml b/objects/_p_dialog/Destroy_0.gml index e3ad9c83f..84dd21d60 100644 --- a/objects/_p_dialog/Destroy_0.gml +++ b/objects/_p_dialog/Destroy_0.gml @@ -5,4 +5,6 @@ if(sFOCUS) setFocus(noone); WIDGET_CURRENT = noone; ds_list_remove(DIALOGS, self); -if(parent) array_remove(parent.children, id); \ No newline at end of file +if(parent) array_remove(parent.children, id); + +MOUSE_BLOCK = true; \ No newline at end of file diff --git a/objects/o_main/Draw_64.gml b/objects/o_main/Draw_64.gml index a904d0f68..a17dac439 100644 --- a/objects/o_main/Draw_64.gml +++ b/objects/o_main/Draw_64.gml @@ -16,7 +16,7 @@ draw_clear(COLORS.bg); #region widget scroll if(!WIDGET_TAB_BLOCK) { - if(keyboard_check_pressed(vk_tab) && key_mod_press(SHIFT)) { + if(keyboard_check_pressed(vk_tab)) { if(key_mod_press(SHIFT)) widget_previous(); else widget_next(); } diff --git a/scripts/__VFX/__VFX.gml b/scripts/__VFX/__VFX.gml index 8d8d71f53..56746274b 100644 --- a/scripts/__VFX/__VFX.gml +++ b/scripts/__VFX/__VFX.gml @@ -307,7 +307,7 @@ function __part(_node) constructor { if(path != noone) { var _div = pathDiv.get(lifeRat); - pathPos = path.getPointRatio(lifeRat, pathIndex, pathPos); + pathPos = path.getPointRatio(clamp(lifeRat, 0, 0.99), pathIndex, pathPos); _xx = _xx * _div + pathPos.x; _yy = _yy * _div + pathPos.y; } @@ -358,7 +358,7 @@ function __part(_node) constructor { draw_point(_xx, _yy - 1); break; default : - draw_circle(round(_xx), round(_yy), round(ss) - 2, false); + draw_circle(_xx, _yy, (exact? round(ss) : ss) - 2, false); break; } diff --git a/scripts/control_function/control_function.gml b/scripts/control_function/control_function.gml index f34de8602..d5cf787a7 100644 --- a/scripts/control_function/control_function.gml +++ b/scripts/control_function/control_function.gml @@ -69,7 +69,14 @@ function widget_next() { INLINE - if(array_length(WIDGET_ACTIVE) == 0) return; + if(array_length(WIDGET_ACTIVE) == 0) { + if(WIDGET_CURRENT != noone) { + WIDGET_CURRENT.deactivate(); + WIDGET_CURRENT = noone; + } + return; + } + if(WIDGET_CURRENT == noone) { widget_start() return; @@ -88,7 +95,14 @@ } function widget_previous() { - if(array_length(WIDGET_ACTIVE) == 0) return; + if(array_length(WIDGET_ACTIVE) == 0) { + if(WIDGET_CURRENT != noone) { + WIDGET_CURRENT.deactivate(); + WIDGET_CURRENT = noone; + } + return; + } + if(WIDGET_CURRENT == noone) { widget_start() return; @@ -119,9 +133,7 @@ function widget_clear() { if(WIDGET_CURRENT == noone) return; - if(array_length(WIDGET_ACTIVE) == 0) return; - var ind = array_find(WIDGET_ACTIVE, WIDGET_CURRENT); WIDGET_CURRENT.deactivate(); WIDGET_CURRENT = noone; } diff --git a/scripts/node_canvas/node_canvas.gml b/scripts/node_canvas/node_canvas.gml index a44a81408..fa4df37e1 100644 --- a/scripts/node_canvas/node_canvas.gml +++ b/scripts/node_canvas/node_canvas.gml @@ -155,8 +155,8 @@ function Node_Canvas(_x, _y, _group = noone) : Node(_x, _y, _group) constructor }); #endregion input_display_list = [ - ["Output", false], 0, frame_renderer, 12, 13, - ["Brush", false], 6, 15, 17, 16, + ["Output", false], 0, frame_renderer, 12, 13, + ["Brush", true], 6, 15, 17, 16, ["Background", true, 10], 8, 14, 9, ]; diff --git a/scripts/node_path/node_path.gml b/scripts/node_path/node_path.gml index e036071c0..891dbfaf4 100644 --- a/scripts/node_path/node_path.gml +++ b/scripts/node_path/node_path.gml @@ -149,24 +149,14 @@ function Node_Path(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { my = transform_sy + lengthdir_y(diss, ang); } - //var _tsx = transform_sx; - //var _tsy = transform_sy; - //draw_set_color(COLORS._main_accent); - //draw_line(_tsx, _tsy, _tsx + lengthdir_x(1000, 0), _tsy + lengthdir_y(1000, 0)); - //draw_line(_tsx, _tsy, _tsx + lengthdir_x(1000, 90), _tsy + lengthdir_y(1000, 90)); - //draw_line(_tsx, _tsy, _tsx + lengthdir_x(1000, 180), _tsy + lengthdir_y(1000, 180)); - //draw_line(_tsx, _tsy, _tsx + lengthdir_x(1000, 270), _tsy + lengthdir_y(1000, 270)); - var dx = mx - transform_mx; var dy = my - transform_my; for( var i = input_fix_len; i < ds_list_size(inputs); i++ ) { - var _p = getInputData(i); - var p = [ - _p[0] + dx / _s, - _p[1] + dy / _s - ]; - + var p = array_clone(getInputData(i)); + p[0] += dx / _s; + p[1] += dy / _s; + if(inputs[| i].setValue(p)) _edited = true; } diff --git a/scripts/node_perlin/node_perlin.gml b/scripts/node_perlin/node_perlin.gml index cd4fa8bde..b98552f63 100644 --- a/scripts/node_perlin/node_perlin.gml +++ b/scripts/node_perlin/node_perlin.gml @@ -12,7 +12,7 @@ function Node_Perlin(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) co .setDisplay(VALUE_DISPLAY.vector) .setMappable(10); - inputs[| 3] = nodeValue("Iteration", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 2); + inputs[| 3] = nodeValue("Iteration", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 4); inputs[| 4] = nodeValue("Tile", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 5b5f590d2..4efbfe513 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -230,7 +230,7 @@ function addNodePBCatagory(name, list, filter = []) { #region function addNodePCXCatagory(name, list, filter = []) { #region ds_list_add(NODE_PCX_CATEGORY, { name: name, list: list, filter: filter }); } #endregion - + function __initNodes() { global.__currPage = ""; diff --git a/scripts/panel_inspector/panel_inspector.gml b/scripts/panel_inspector/panel_inspector.gml index 16747331a..a32a28bcb 100644 --- a/scripts/panel_inspector/panel_inspector.gml +++ b/scripts/panel_inspector/panel_inspector.gml @@ -3,6 +3,12 @@ function Inspector_Custom_Renderer(drawFn, registerFn = noone) : widget() constr self.draw = drawFn; if(registerFn != noone) register = registerFn; + else { + register = function(parent = noone) { + if(!interactable) return; + self.parent = parent; + } + } } function Inspector_Sprite(spr) constructor { self.spr = spr; } diff --git a/shaders/sh_perlin_tiled/sh_perlin_tiled.fsh b/shaders/sh_perlin_tiled/sh_perlin_tiled.fsh index a161a344f..750b429ec 100644 --- a/shaders/sh_perlin_tiled/sh_perlin_tiled.fsh +++ b/shaders/sh_perlin_tiled/sh_perlin_tiled.fsh @@ -1,6 +1,3 @@ -// -// Simple passthrough fragment shader -// varying vec2 v_vTexcoord; varying vec4 v_vColour; @@ -28,16 +25,16 @@ vec3 hsv2rgb(vec3 c) { #region return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y); } #endregion -float random (in vec2 st, float seed) { return fract(sin(dot(st.xy + vec2(21.456, 46.856), vec2(12.989, 78.233))) * (43758.545 + seed)); } +float random (in vec2 st, float _seed) { return fract(sin(dot(st.xy + vec2(21.456, 46.856), vec2(12.989, 78.233))) * (43758.545 + _seed)); } -float randomFloat (in vec2 st, float seed) { #region - float sedSt = floor(seed); - float sedFr = fract(seed); +float randomFloat (in vec2 st, float _seed) { #region + float sedSt = floor(_seed); + float sedFr = fract(_seed); return mix(random(st, sedSt), random(st, sedSt + 1.), sedFr); } #endregion -vec2 random2 (in vec2 st, float seed) { return vec2(random(st, seed), random(st, seed + 1.864)); } +vec2 random2 (in vec2 st, float _seed) { return vec2(random(st, _seed), random(st, _seed + 1.864)); } float noise (in vec2 st, in vec2 scale) { #region vec2 cellMin = floor(st); @@ -68,7 +65,7 @@ float perlin(in vec2 st) { #region for(int i = 0; i < iteration; i++) { n += noise(pos, sc) * amp; - pos += random2(vec2(float(i), float(i)), seed + 1.574186) * sc; + //pos += random2(vec2(float(i), float(i)), seed + 1.57) * sc; //make the result goes random somehow sc *= 2.; amp *= .5;