tunnel anim

This commit is contained in:
Tanasart 2024-04-22 19:26:08 +07:00
parent 44991cb99e
commit ce4c89495b
8 changed files with 175 additions and 103 deletions

View file

@ -1,4 +1,4 @@
// 2024-04-22 16:35:49 // 2024-04-22 19:24:36
function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Tunnel In"; name = "Tunnel In";
color = COLORS.node_blend_tunnel; color = COLORS.node_blend_tunnel;
@ -12,6 +12,9 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
hover_scale_to = 0; hover_scale_to = 0;
hover_alpha = 0; hover_alpha = 0;
preview_connecting = false;
preview_scale = 1;
var tname = ""; var tname = "";
if(!LOADING && !APPENDING) if(!LOADING && !APPENDING)
tname = $"tunnel{ds_map_size(TUNNELS_IN_MAP)}"; tname = $"tunnel{ds_map_size(TUNNELS_IN_MAP)}";
@ -172,6 +175,9 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
var node = PROJECT.nodeMap[? _k]; var node = PROJECT.nodeMap[? _k];
if(node.group != group) continue; if(node.group != group) continue;
preview_connecting = true;
node.preview_connecting = true;
var tox = _x + node.x * _s; var tox = _x + node.x * _s;
var toy = _y + node.y * _s; var toy = _y + node.y * _s;
draw_line_dotted(xx, yy, tox, toy, 2 * _s, current_time / 10, 3); draw_line_dotted(xx, yy, tox, toy, 2 * _s, current_time / 10, 3);
@ -203,23 +209,29 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
active_draw_index = -1; active_draw_index = -1;
} }
#region draw arc
var prev_s = preview_connecting? 1 + sin(current_time / 100) * 0.1 : 1;
preview_scale = lerp_float(preview_scale, prev_s, 5);
preview_connecting = false;
shader_set(sh_node_arc); shader_set(sh_node_arc);
shader_set_color("color", inputs[| 1].color_display, hover_alpha); shader_set_color("color", inputs[| 1].color_display, hover_alpha);
shader_set_f("angle", degtorad(90)); shader_set_f("angle", degtorad(90));
var _r = _s * 20; var _r = preview_scale * _s * 20;
shader_set_f("amount", 0.4, 0.5); shader_set_f("amount", 0.4, 0.5);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 30; var _r = preview_scale * _s * 30;
shader_set_f("amount", 0.45, 0.525); shader_set_f("amount", 0.45, 0.525);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 40; var _r = preview_scale * _s * 40;
shader_set_f("amount", 0.475, 0.55); shader_set_f("amount", 0.475, 0.55);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
shader_reset(); shader_reset();
#endregion
if(hover_scale > 0) { if(hover_scale > 0) {
var _r = hover_scale * _s * 16; var _r = hover_scale * _s * 16;

View file

@ -1,4 +1,4 @@
// 2024-04-22 16:35:48 // 2024-04-22 19:24:33
function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Tunnel In"; name = "Tunnel In";
color = COLORS.node_blend_tunnel; color = COLORS.node_blend_tunnel;
@ -12,6 +12,9 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
hover_scale_to = 0; hover_scale_to = 0;
hover_alpha = 0; hover_alpha = 0;
preview_connecting = false;
preview_scale = 1;
var tname = ""; var tname = "";
if(!LOADING && !APPENDING) if(!LOADING && !APPENDING)
tname = $"tunnel{ds_map_size(TUNNELS_IN_MAP)}"; tname = $"tunnel{ds_map_size(TUNNELS_IN_MAP)}";
@ -172,6 +175,9 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
var node = PROJECT.nodeMap[? _k]; var node = PROJECT.nodeMap[? _k];
if(node.group != group) continue; if(node.group != group) continue;
preview_connecting = true;
node.preview_connecting = true;
var tox = _x + node.x * _s; var tox = _x + node.x * _s;
var toy = _y + node.y * _s; var toy = _y + node.y * _s;
draw_line_dotted(xx, yy, tox, toy, 2 * _s, current_time / 10, 3); draw_line_dotted(xx, yy, tox, toy, 2 * _s, current_time / 10, 3);
@ -203,23 +209,29 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
active_draw_index = -1; active_draw_index = -1;
} }
#region draw arc
var prev_s = preview_connecting? 1 + sin(current_time / 100) * 0.1 : 1;
preview_scale = lerp_float(preview_scale, prev_s, 5);
preview_connecting = false;
shader_set(sh_node_arc); shader_set(sh_node_arc);
shader_set_color("color", inputs[| 1].color_display, hover_alpha); shader_set_color("color", inputs[| 1].color_display, hover_alpha);
shader_set_f("angle", degtorad(90)); shader_set_f("angle", degtorad(90));
var _r = _s * 20; var _r = preview_scale * _s * 20;
shader_set_f("amount", 0.4, 0.5); shader_set_f("amount", 0.4, 0.5);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 30; var _r = preview_scale * _s * 30;
shader_set_f("amount", 0.45, 0.525); shader_set_f("amount", 0.45, 0.525);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 40; var _r = preview_scale * _s * 40;
shader_set_f("amount", 0.475, 0.55); shader_set_f("amount", 0.475, 0.55);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
shader_reset(); shader_reset();
#endregion
if(hover_scale > 0) { if(hover_scale > 0) {
var _r = hover_scale * _s * 16; var _r = hover_scale * _s * 16;

View file

@ -1,4 +1,4 @@
// 2024-04-22 16:35:44 // 2024-04-22 19:25:58
function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Tunnel Out"; name = "Tunnel Out";
color = COLORS.node_blend_tunnel; color = COLORS.node_blend_tunnel;
@ -12,6 +12,9 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
hover_scale_to = 0; hover_scale_to = 0;
hover_alpha = 0; hover_alpha = 0;
preview_connecting = false;
preview_scale = 1;
var tname = ""; var tname = "";
if(!LOADING && !APPENDING && !ds_map_empty(TUNNELS_IN)) if(!LOADING && !APPENDING && !ds_map_empty(TUNNELS_IN))
tname = ds_map_find_first(TUNNELS_IN); tname = ds_map_find_first(TUNNELS_IN);
@ -104,6 +107,9 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
var node = TUNNELS_IN[? _key].node; var node = TUNNELS_IN[? _key].node;
if(node.group != group) return; if(node.group != group) return;
preview_connecting = true;
node.preview_connecting = true;
draw_set_color(outputs[| 0].color_display); draw_set_color(outputs[| 0].color_display);
draw_set_alpha(0.5); draw_set_alpha(0.5);
@ -137,23 +143,29 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
active_draw_index = -1; active_draw_index = -1;
} }
#region draw arc
var prev_s = preview_connecting? 1 + sin(current_time / 100) * 0.1 : 1;
preview_scale = lerp_float(preview_scale, prev_s, 5);
preview_connecting = false;
shader_set(sh_node_arc); shader_set(sh_node_arc);
shader_set_color("color", outputs[| 0].color_display, hover_alpha); shader_set_color("color", outputs[| 0].color_display, hover_alpha);
shader_set_f("angle", degtorad(-90)); shader_set_f("angle", degtorad(-90));
var _r = _s * 20; var _r = preview_scale * _s * 20;
shader_set_f("amount", 0.4, 0.5); shader_set_f("amount", 0.4, 0.5);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 30; var _r = preview_scale * _s * 30;
shader_set_f("amount", 0.45, 0.525); shader_set_f("amount", 0.45, 0.525);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 40; var _r = preview_scale * _s * 40;
shader_set_f("amount", 0.475, 0.55); shader_set_f("amount", 0.475, 0.55);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
shader_reset(); shader_reset();
#endregion
if(hover_scale > 0) { if(hover_scale > 0) {
var _r = hover_scale * _s * 16; var _r = hover_scale * _s * 16;

View file

@ -1,4 +1,4 @@
// 2024-04-22 16:34:50 // 2024-04-22 19:24:39
function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) constructor {
name = "Tunnel Out"; name = "Tunnel Out";
color = COLORS.node_blend_tunnel; color = COLORS.node_blend_tunnel;
@ -12,6 +12,9 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
hover_scale_to = 0; hover_scale_to = 0;
hover_alpha = 0; hover_alpha = 0;
preview_connecting = false;
preview_scale = 1;
var tname = ""; var tname = "";
if(!LOADING && !APPENDING && !ds_map_empty(TUNNELS_IN)) if(!LOADING && !APPENDING && !ds_map_empty(TUNNELS_IN))
tname = ds_map_find_first(TUNNELS_IN); tname = ds_map_find_first(TUNNELS_IN);
@ -93,7 +96,7 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
var xx = _x + x * _s; var xx = _x + x * _s;
var yy = _y + y * _s; var yy = _y + y * _s;
var hover = isHovering || active_draw_index; var hover = isHovering || hover_alpha == 1;
var tun = findPanel("Panel_Tunnels"); var tun = findPanel("Panel_Tunnels");
hover |= tun && tun.tunnel_hover == self; hover |= tun && tun.tunnel_hover == self;
if(!hover) return; if(!hover) return;
@ -104,6 +107,9 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
var node = TUNNELS_IN[? _key].node; var node = TUNNELS_IN[? _key].node;
if(node.group != group) return; if(node.group != group) return;
preview_connecting = true;
node.preview_connecting = true;
draw_set_color(outputs[| 0].color_display); draw_set_color(outputs[| 0].color_display);
draw_set_alpha(0.5); draw_set_alpha(0.5);
@ -137,23 +143,29 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
active_draw_index = -1; active_draw_index = -1;
} }
#region draw arc
var prev_s = preview_connecting? 1 + sin(current_time / 100) * 0.1 : 1;
preview_scale = lerp_float(preview_scale, prev_s, 5);
preview_connecting = false;
shader_set(sh_node_arc); shader_set(sh_node_arc);
shader_set_color("color", outputs[| 0].color_display, hover_alpha); shader_set_color("color", outputs[| 0].color_display, hover_alpha);
shader_set_f("angle", degtorad(-90)); shader_set_f("angle", degtorad(-90));
var _r = _s * 20; var _r = preview_scale * _s * 20;
shader_set_f("amount", 0.4, 0.5); shader_set_f("amount", 0.4, 0.5);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 30; var _r = preview_scale * _s * 30;
shader_set_f("amount", 0.45, 0.525); shader_set_f("amount", 0.45, 0.525);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 40; var _r = preview_scale * _s * 40;
shader_set_f("amount", 0.475, 0.55); shader_set_f("amount", 0.475, 0.55);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
shader_reset(); shader_reset();
#endregion
if(hover_scale > 0) { if(hover_scale > 0) {
var _r = hover_scale * _s * 16; var _r = hover_scale * _s * 16;

View file

@ -1,4 +1,4 @@
// 2024-04-22 18:42:00 // 2024-04-22 19:15:18
#region ---- global names ---- #region ---- global names ----
global.junctionEndName = [ "Hold", "Loop", "Ping pong", "Wrap" ]; global.junctionEndName = [ "Hold", "Loop", "Ping pong", "Wrap" ];

View file

@ -1,4 +1,4 @@
// 2024-04-22 18:38:48 // 2024-04-22 18:42:00
#region ---- global names ---- #region ---- global names ----
global.junctionEndName = [ "Hold", "Loop", "Ping pong", "Wrap" ]; global.junctionEndName = [ "Hold", "Loop", "Ping pong", "Wrap" ];

View file

@ -11,6 +11,9 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
hover_scale_to = 0; hover_scale_to = 0;
hover_alpha = 0; hover_alpha = 0;
preview_connecting = false;
preview_scale = 1;
var tname = ""; var tname = "";
if(!LOADING && !APPENDING) if(!LOADING && !APPENDING)
tname = $"tunnel{ds_map_size(TUNNELS_IN_MAP)}"; tname = $"tunnel{ds_map_size(TUNNELS_IN_MAP)}";
@ -171,6 +174,9 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
var node = PROJECT.nodeMap[? _k]; var node = PROJECT.nodeMap[? _k];
if(node.group != group) continue; if(node.group != group) continue;
preview_connecting = true;
node.preview_connecting = true;
var tox = _x + node.x * _s; var tox = _x + node.x * _s;
var toy = _y + node.y * _s; var toy = _y + node.y * _s;
draw_line_dotted(xx, yy, tox, toy, 2 * _s, current_time / 10, 3); draw_line_dotted(xx, yy, tox, toy, 2 * _s, current_time / 10, 3);
@ -202,23 +208,29 @@ function Node_Tunnel_In(_x, _y, _group = noone) : Node(_x, _y, _group) construct
active_draw_index = -1; active_draw_index = -1;
} }
#region draw arc
var prev_s = preview_connecting? 1 + sin(current_time / 100) * 0.1 : 1;
preview_scale = lerp_float(preview_scale, prev_s, 5);
preview_connecting = false;
shader_set(sh_node_arc); shader_set(sh_node_arc);
shader_set_color("color", inputs[| 1].color_display, hover_alpha); shader_set_color("color", inputs[| 1].color_display, hover_alpha);
shader_set_f("angle", degtorad(90)); shader_set_f("angle", degtorad(90));
var _r = _s * 20; var _r = preview_scale * _s * 20;
shader_set_f("amount", 0.4, 0.5); shader_set_f("amount", 0.4, 0.5);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 30; var _r = preview_scale * _s * 30;
shader_set_f("amount", 0.45, 0.525); shader_set_f("amount", 0.45, 0.525);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 40; var _r = preview_scale * _s * 40;
shader_set_f("amount", 0.475, 0.55); shader_set_f("amount", 0.475, 0.55);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
shader_reset(); shader_reset();
#endregion
if(hover_scale > 0) { if(hover_scale > 0) {
var _r = hover_scale * _s * 16; var _r = hover_scale * _s * 16;

View file

@ -11,6 +11,9 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
hover_scale_to = 0; hover_scale_to = 0;
hover_alpha = 0; hover_alpha = 0;
preview_connecting = false;
preview_scale = 1;
var tname = ""; var tname = "";
if(!LOADING && !APPENDING && !ds_map_empty(TUNNELS_IN)) if(!LOADING && !APPENDING && !ds_map_empty(TUNNELS_IN))
tname = ds_map_find_first(TUNNELS_IN); tname = ds_map_find_first(TUNNELS_IN);
@ -103,6 +106,9 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
var node = TUNNELS_IN[? _key].node; var node = TUNNELS_IN[? _key].node;
if(node.group != group) return; if(node.group != group) return;
preview_connecting = true;
node.preview_connecting = true;
draw_set_color(outputs[| 0].color_display); draw_set_color(outputs[| 0].color_display);
draw_set_alpha(0.5); draw_set_alpha(0.5);
@ -136,23 +142,29 @@ function Node_Tunnel_Out(_x, _y, _group = noone) : Node(_x, _y, _group) construc
active_draw_index = -1; active_draw_index = -1;
} }
#region draw arc
var prev_s = preview_connecting? 1 + sin(current_time / 100) * 0.1 : 1;
preview_scale = lerp_float(preview_scale, prev_s, 5);
preview_connecting = false;
shader_set(sh_node_arc); shader_set(sh_node_arc);
shader_set_color("color", outputs[| 0].color_display, hover_alpha); shader_set_color("color", outputs[| 0].color_display, hover_alpha);
shader_set_f("angle", degtorad(-90)); shader_set_f("angle", degtorad(-90));
var _r = _s * 20; var _r = preview_scale * _s * 20;
shader_set_f("amount", 0.4, 0.5); shader_set_f("amount", 0.4, 0.5);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 30; var _r = preview_scale * _s * 30;
shader_set_f("amount", 0.45, 0.525); shader_set_f("amount", 0.45, 0.525);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
var _r = _s * 40; var _r = preview_scale * _s * 40;
shader_set_f("amount", 0.475, 0.55); shader_set_f("amount", 0.475, 0.55);
draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2); draw_sprite_stretched(s_fx_pixel, 0, xx - _r, yy - _r, _r * 2, _r * 2);
shader_reset(); shader_reset();
#endregion
if(hover_scale > 0) { if(hover_scale > 0) {
var _r = hover_scale * _s * 16; var _r = hover_scale * _s * 16;