summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChaosus <chaosus89@gmail.com>2018-12-03 17:43:14 +0300
committerChaosus <chaosus89@gmail.com>2018-12-06 14:49:52 +0300
commitd376be2bf4c8c8b5bfcb650647ebb73605f8fc81 (patch)
tree43e5c522df67e50d808bb980fabc36d77af1ad33
parent8dd00ed1762c4956b3231d709ce0d01ee9b306c8 (diff)
Added integer number generation function to RNG class
-rw-r--r--core/math/random_number_generator.cpp3
-rw-r--r--core/math/random_number_generator.h7
-rw-r--r--doc/classes/RandomNumberGenerator.xml15
3 files changed, 21 insertions, 4 deletions
diff --git a/core/math/random_number_generator.cpp b/core/math/random_number_generator.cpp
index e4ec0dac99..9f0a5bc992 100644
--- a/core/math/random_number_generator.cpp
+++ b/core/math/random_number_generator.cpp
@@ -40,6 +40,7 @@ void RandomNumberGenerator::_bind_methods() {
ClassDB::bind_method(D_METHOD("randi"), &RandomNumberGenerator::randi);
ClassDB::bind_method(D_METHOD("randf"), &RandomNumberGenerator::randf);
- ClassDB::bind_method(D_METHOD("rand_range", "from", "to"), &RandomNumberGenerator::rand_range);
+ ClassDB::bind_method(D_METHOD("randf_range", "from", "to"), &RandomNumberGenerator::randf_range);
+ ClassDB::bind_method(D_METHOD("randi_range", "from", "to"), &RandomNumberGenerator::randi_range);
ClassDB::bind_method(D_METHOD("randomize"), &RandomNumberGenerator::randomize);
}
diff --git a/core/math/random_number_generator.h b/core/math/random_number_generator.h
index 557863fdbd..078bfbed60 100644
--- a/core/math/random_number_generator.h
+++ b/core/math/random_number_generator.h
@@ -53,7 +53,12 @@ public:
_FORCE_INLINE_ real_t randf() { return randbase.randf(); }
- _FORCE_INLINE_ real_t rand_range(real_t from, real_t to) { return randbase.random(from, to); }
+ _FORCE_INLINE_ real_t randf_range(real_t from, real_t to) { return randbase.random(from, to); }
+
+ _FORCE_INLINE_ int randi_range(int from, int to) {
+ unsigned int ret = randbase.rand();
+ return ret % (to - from + 1) + from;
+ }
RandomNumberGenerator();
};
diff --git a/doc/classes/RandomNumberGenerator.xml b/doc/classes/RandomNumberGenerator.xml
index aee9654561..720acc16ba 100644
--- a/doc/classes/RandomNumberGenerator.xml
+++ b/doc/classes/RandomNumberGenerator.xml
@@ -10,7 +10,7 @@
<demos>
</demos>
<methods>
- <method name="rand_range">
+ <method name="randf_range">
<return type="float">
</return>
<argument index="0" name="from" type="float">
@@ -21,6 +21,17 @@
Generates pseudo-random float between [code]from[/code] and [code]to[/code].
</description>
</method>
+ <method name="randi_range">
+ <return type="int">
+ </return>
+ <argument index="0" name="from" type="int">
+ </argument>
+ <argument index="1" name="to" type="int">
+ </argument>
+ <description>
+ Generates pseudo-random 32-bit signed integer between [code]from[/code] and [code]to[/code](inclusive).
+ </description>
+ </method>
<method name="randf">
<return type="float">
</return>
@@ -32,7 +43,7 @@
<return type="int">
</return>
<description>
- Generates pseudo-random 32-bit integer between '0' and '4294967295'.
+ Generates pseudo-random 32-bit unsigned integer between '0' and '4294967295'.
</description>
</method>
<method name="randomize">