12 releases (4 stable)
1.2.1 | Jul 20, 2024 |
---|---|
1.2.0 | Jul 9, 2024 |
0.4.5 | Jun 24, 2024 |
0.3.7 | May 30, 2024 |
#874 in Game dev
84 downloads per month
Used in 2 crates
27KB
694 lines
rantz_random
A simple Rust library for generating random values using fastrand. Basically just a fastrand wrapper for a few additional types at the moment. Likely to grow over time. Designed for use with Bevy.
Can generate random values for:
- i8-128
- u8-128
- f32 & f64
- Vec2/3/4, UVec2/3/4, and IVec2/3/4 (with the
bevy
feature) - Color (with the
bevy
feature) - Degrees, Radians,
Position2D
, and all the compasses (with thespatial2d
feature) - Requiresrantz_spatial2d
Can generate random values in a range for:
- i8-128
- u8-128
- f32 & f64
- Vec2/3/4, UVec2/3/4, and IVec2/3/4 (with the
bevy
feature) - Degrees, Radians, and
Position2D
(with thespatial2d
feature) - Requiresrantz_spatial2d
Can shuffle anything Clone + IntoIterator<T> + FromIterator<T>
as well as returning a random element, or random index.
Also includes a WeightedTable
class for use in weighted random generation.
Usage
Add to your Cargo.toml
. Use rantz_random::*;
to get access to the traits that define random generation.
Determinism
This crate relies on fastrand
which is "deterministic". That is to say, for a given seed value, assuming system order is deterministic, the results will be deterministic.
For gaurenteed determinism, any system that uses the features of this crate will need to be .chain()
ed together when added to a Bevy app.
Dependencies
~23MB
~430K SLoC