Advertisement
Guest User

Untitled

a guest
Nov 7th, 2015
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local args = {...}
  2. local fileHeader =
  3. [[
  4. -----------------------------------------
  5. --          Custom Key Layout          --
  6. -----------------------------------------
  7.  
  8. ----------------Remapper------------------
  9. local map = {}
  10.  
  11. local function addRemap(expected, modifier)
  12.   map[expected] = modifier
  13. end
  14.  
  15. function os.pullEvent(filter)
  16.  local evt = {os.pullEventRaw(filter or nil)}
  17.  if(evt[1] == "char") then
  18.    for k,v in pairs(map) do
  19.      if(k[2] == evt[2]) then
  20.        e = v(evt)
  21.        return unpack(e)
  22.      end
  23.    end
  24.  end
  25.  return unpack(evt)
  26. end
  27. ------------------------------------------
  28.  
  29. ]]
  30.  
  31. local function split(str)
  32.   local t = {}
  33.   for m in str:gmatch(".") do table.insert(t,m) end
  34.   return t
  35. end
  36.  
  37. local data = {}
  38. local layout = {}
  39. local priority = "gfhdjskalrueiwoqpvbcnxmy"
  40. priority = priority..priority:upper()
  41. priority = priority.."1234567890"
  42.  
  43. local handle,content = fs.open(args[1],"r"),false
  44. content = handle.readAll()
  45. handle.close()
  46. data = textutils.unserialize(content)
  47.  
  48. local datakeys = {}
  49. for k,v in pairs(data) do
  50.   table.insert(datakeys,k)
  51. end
  52. table.sort(datakeys,function(i,j) return i>j end)
  53.  
  54. local processed = {}
  55. for _,i in pairs(datakeys) do
  56.   if(#priority==0) then break end
  57.   for k,v in pairs(data[i]) do
  58.     if(#priority==0) then break end
  59.     local c = priority:sub(1,1)
  60.     priority = priority:sub(2)
  61.     processed[c] = v
  62.   end
  63. end
  64.  
  65. local map = {}
  66. for k,v in pairs(processed) do
  67.   local val = v
  68.   if(v == "\"") then val = "\\\"" end
  69.   if(v == "\n") then val = "\\n" end
  70.   fileHeader = fileHeader.."addRemap({'char',\""..k.."\"},function(evt) return {'char',\""..val.."\"} end)".."\n"
  71. end
  72.  
  73. local handle = fs.open("mapped","w")
  74. handle.write(fileHeader)
  75. handle.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement