Pixel-Composer/scripts/node_VFX_wind/node_VFX_wind.gml

25 lines
908 B
Plaintext
Raw Normal View History

2023-02-28 09:43:01 +01:00
function Node_VFX_Wind(_x, _y, _group = noone) : Node_VFX_effector(_x, _y, _group) constructor {
2022-12-13 09:20:36 +01:00
name = "Wind";
2022-12-16 09:18:09 +01:00
node_draw_icon = s_node_vfx_wind;
2022-12-13 09:20:36 +01:00
function onAffect(part, str) {
2023-10-10 07:12:42 +02:00
var _vect = getInputData(4);
var _sten = getInputData(5);
var _rot_range = getInputData(6);
var _sca_range = getInputData(7);
2023-10-10 07:12:42 +02:00
var _rot = random_range(_rot_range[0], _rot_range[1]);
var _sca = [ random_range(_sca_range[0], _sca_range[1]), random_range(_sca_range[2], _sca_range[3]) ];
2022-12-13 09:20:36 +01:00
part.x = part.x + _vect[0] * _sten * str;
part.y = part.y + _vect[1] * _sten * str;
part.rot += _rot * str;
var scx_s = _sca[0] * str;
var scy_s = _sca[1] * str;
if(scx_s < 0) part.scx = lerp_linear(part.scx, 0, abs(scx_s));
else part.scx += sign(part.scx) * scx_s;
if(scy_s < 0) part.scy = lerp_linear(part.scy, 0, abs(scy_s));
else part.scy += sign(part.scy) * scy_s;
}
}