aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--alv-lib/random.moon9
1 files changed, 7 insertions, 2 deletions
diff --git a/alv-lib/random.moon b/alv-lib/random.moon
index 3edc98b..a25c6ad 100644
--- a/alv-lib/random.moon
+++ b/alv-lib/random.moon
@@ -1,5 +1,6 @@
import Constant, Error, Op, Input, T, Array, sig, evt from require 'alv.base'
+vec2 = Array 2, T.num
apply_range = (range, val) ->
if range\type! == T.str
switch range!
@@ -11,6 +12,9 @@ apply_range = (range, val) ->
error Error 'argument', "unknown range '#{range!}'"
elseif range\type! == T.num
val * range!
+ elseif range\type! == vec2
+ { min, max } = range!
+ min + val * (max - min)
else
error Error 'argument', "range has to be a string or number"
@@ -21,9 +25,10 @@ range can be one of:
- 'bip' [-1 - 1[
- 'rad' [ 0 - tau[
- 'deg' [ 0 - 360[
-- (num) [ 0 - num["
+- (num) [ 0 - num[
+- [min max]"
-pattern = -evt.bang + -(sig.num / sig.str)
+pattern = -evt.bang + -(sig.num / sig.str / sig[vec2])
num = Constant.meta
meta: