diff options
| author | s-ol <s+removethis@s-ol.nu> | 2025-09-27 15:51:29 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2025-09-27 15:51:29 +0000 |
| commit | 13cfcd8c0f9446614cffdac793983518cd426c40 (patch) | |
| tree | 723a0af52d6a660dab823c2d5b682283588e4587 | |
| parent | lib/love: add text-wrap (diff) | |
| download | alive-13cfcd8c0f9446614cffdac793983518cd426c40.tar.gz alive-13cfcd8c0f9446614cffdac793983518cd426c40.zip | |
lib/random: accept [min max] ranges
| -rw-r--r-- | alv-lib/random.moon | 9 |
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: |
