Pixel-Composer/scripts/angle_functions/angle_functions.gml

35 lines
1.2 KiB
Plaintext
Raw Normal View History

2023-09-11 16:08:58 +02:00
function angle_random_eval(range, seed = undefined) {
2024-01-24 06:19:34 +01:00
if(is_real(range)) return range;
2023-09-11 16:08:58 +02:00
if(seed != undefined) random_set_seed(seed);
2023-09-19 12:53:24 +02:00
if(array_empty(range)) return 0;
2024-01-24 06:19:34 +01:00
var _l = array_length(range);
2023-09-19 12:53:24 +02:00
2024-01-24 06:19:34 +01:00
if(_l < 2)
2023-09-19 12:53:24 +02:00
return range[0]
2024-01-24 06:19:34 +01:00
else if(_l == 2)
2023-09-11 16:08:58 +02:00
return irandom_range(range[0], range[1]);
2024-01-24 06:19:34 +01:00
else if(_l > 2) {
2023-09-11 16:08:58 +02:00
switch(range[0]) {
case 0 : return irandom_range(range[1], range[2]);
case 1 : return irandom_range(range[1] - range[2], range[1] + range[2]);
case 2 : return choose(irandom_range(range[1], range[2]), irandom_range(range[3], range[4]));
case 3 : return choose(irandom_range(range[1] - range[3], range[1] + range[3]), irandom_range(range[2] - range[3], range[2] + range[3]));
}
}
2023-09-19 12:53:24 +02:00
return array_safe_get(range, 0);
2024-01-24 06:19:34 +01:00
}
function angle_random_eval_fast(range) {
switch(range[0]) {
case 0 : return irandom_range(range[1], range[2]);
case 1 : return irandom_range(range[1] - range[2], range[1] + range[2]);
case 2 : return choose(irandom_range(range[1], range[2]), irandom_range(range[3], range[4]));
case 3 : return choose(irandom_range(range[1] - range[3], range[1] + range[3]), irandom_range(range[2] - range[3], range[2] + range[3]));
}
return 0;
2023-09-11 16:08:58 +02:00
}