#ifndef CORE_RANDOM_HPP #define CORE_RANDOM_HPP #include "core/data/Array.hpp" #include "core/utils/Types.hpp" namespace Core { struct Random final { using Seed = u32; private: Array data; size_t index; public: Random(Seed seed); Seed next(); Seed next(Seed min, Seed inclusiveMax); i32 nextI32(); i32 nextI32(i32 min, i32 inclusiveMax); size_t nextSize(); size_t nextSize(size_t min, size_t inclusiveMax); bool nextBool(); float nextFloat(); float nextFloat(float min, float exclusiveMax); private: void update(); }; } #endif