diff --git a/uuid.lua b/uuid.lua index c4f07c1..d341eee 100644 --- a/uuid.lua +++ b/uuid.lua @@ -6,15 +6,11 @@ local path = (...):gsub("uuid", "") local uuid = {} ---helper for optionally passed random; defaults to love.math.random if present, otherwise math.random -local _global_random = math.random -if love and love.math and love.math.random then - _global_random = love.math.random -end - -local function _random(min, max, r) - return r and r:random(min, max) - or _global_random(min, max) +--(internal; use a provided random generator object, or not) +local function _random(rng, ...) + if rng then return rng:random(...) end + if love then return nlove.math.random(...) end + return math.random(...) end local uuid4_template = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" @@ -24,7 +20,7 @@ function uuid.uuid4(rng) return uuid4_template:gsub("[xy]", function (c) -- x should be 0x0-0xF, the single y should be 0x8-0xB -- 4 should always just be 4 (denoting uuid version) - return string.format("%x", c == "x" and _random(0x0, 0xF, rng) or _random(0x8, 0xB, rng)) + return string.format("%x", c == "x" and _random(rng, 0x0, 0xF) or _random(rng, 0x8, 0xB)) end) end