diff --git a/worldeditadditions/utils/strings/init.lua b/worldeditadditions/utils/strings/init.lua index 32a8454..d5b76c9 100644 --- a/worldeditadditions/utils/strings/init.lua +++ b/worldeditadditions/utils/strings/init.lua @@ -4,3 +4,4 @@ dofile(wea.modpath.."/utils/strings/split.lua") dofile(wea.modpath.."/utils/strings/polyfill.lua") dofile(wea.modpath.."/utils/strings/tochars.lua") wea.split_shell = dofile(wea.modpath.."/utils/strings/split_shell.lua") +wea.to_boolean = dofile(wea.modpath.."/utils/strings/to_boolean.lua") diff --git a/worldeditadditions/utils/strings/to_boolean.lua b/worldeditadditions/utils/strings/to_boolean.lua new file mode 100644 index 0000000..b1fe2d3 --- /dev/null +++ b/worldeditadditions/utils/strings/to_boolean.lua @@ -0,0 +1,12 @@ +--- Converts input to a value of type Boolean. +-- @param arg any Input to convert +-- @returns boolean +local function to_boolean(arg) + local typ = type(arg) + if typ == "boolean" then return arg + elseif typ == number and arg > 0 then return true + elseif arg == "false" or arg == "no" then return false + elseif typ ~= "nil" then return true + else return false end +end +return to_boolean