Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- util.lua
- function tcontains(t,element)
- for _,value in pairs(t) do
- if element == value then
- return true
- end
- end
- return false
- end
- function wordwrap(str, callback, maxLength, maxRows)
- if type(callback) == "table" then
- local t = callback
- callback = function(row) table.insert(t, row) end
- end
- local rows = 0
- while #str > 1 do
- if type(maxRows) == "number"
- and rows >= maxRows and (#str + 3 > maxLength) then
- callback(str:sub(1,maxLength-3) .. "...")
- return str
- else
- local pre = ""
- pre, str = smartSplit(str, maxLength)
- callback(pre)
- rows = rows + 1
- end
- end
- return nil
- end
- -- split a string at a space if possible
- function smartSplit(str, maxLength)
- if #str < maxLength then
- return str, ""
- end
- local pre = str:sub(1,maxLength)
- local post = str:sub(maxLength+1,-1)
- -- check from first to last
- for index = 1,math.min(#str,maxLength) do
- local char = str:sub(index,index)
- if char == "\n" then
- pre = str:sub(1,index-1)
- post = str:sub(index+1,-1)
- return pre, post
- end
- end
- -- check from last to first, i.e. backwards
- for index = math.min(#str,maxLength),1,-1 do
- local char = str:sub(index,index)
- if char == " " and index > 3 then
- pre = str:sub(1,index-1)
- post = str:sub(index+1,-1)
- return pre, post
- end
- end
- return pre, post
- end
- function log(x,base)
- return math.log(x) / math.log(base)
- end
- function colorToHex(color)
- return string.format("%x", log(color, 2))
- end
- -- eof
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement