Advertisement
Ocawesome101

keyboard.lua

Jan 10th, 2020
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.30 KB | None | 0 0
  1. -- I hope this goes better than the OC-OS one. Yikes. --
  2.  
  3. local kb = {}
  4. local keys = {}
  5.  
  6. -- the OpenOS keyboard library, pretty much
  7. keys["1"] = 0x02
  8. keys["2"] = 0x03
  9. keys["3"] = 0x04
  10. keys["4"] = 0x05
  11. keys["5"] = 0x06
  12. keys["6"] = 0x07
  13. keys["7"] = 0x08
  14. keys["8"] = 0x09
  15. keys["9"] = 0x0A
  16. keys["0"] = 0x0B
  17. keys.a = 0x1E
  18. keys.b = 0x30
  19. keys.c = 0x2E
  20. keys.d = 0x20
  21. keys.e = 0x12
  22. keys.f = 0x21
  23. keys.g = 0x22
  24. keys.h = 0x23
  25. keys.i = 0x17
  26. keys.j = 0x24
  27. keys.k = 0x25
  28. keys.l = 0x26
  29. keys.m = 0x32
  30. keys.n = 0x31
  31. keys.o = 0x18
  32. keys.p = 0x19
  33. keys.q = 0x10
  34. keys.r = 0x13
  35. keys.s = 0x1F
  36. keys.t = 0x14
  37. keys.u = 0x16
  38. keys.v = 0x2F
  39. keys.w = 0x11
  40. keys.x = 0x2D
  41. keys.y = 0x15
  42. keys.z = 0x2C
  43.  
  44. keys["'"] = 0x28
  45. keys["@"] = 0x91
  46. keys.back = 0x0E -- backspace
  47. keys["\\"] = 0x2B
  48. keys.capital = 0x3A -- capslock
  49. keys[":"] = 0x92
  50. keys[","] = 0x33
  51. keys.enter = 0x1C
  52. keys["="] = 0x0D
  53. keys["`"] = 0x29 -- accent grave
  54. keys["["] = 0x1A
  55. keys.lcontrol = 0x1D
  56. keys.lmenu = 0x38 -- left Alt
  57. keys.lshift = 0x2A
  58. keys["-"] = 0x0C
  59. keys.numlock = 0x45
  60. keys.pause = 0xC5
  61. keys["."] = 0x34
  62. keys["]"] = 0x1B
  63. keys.rcontrol = 0x9D
  64. keys.rmenu = 0xB8 -- right Alt
  65. keys.rshift = 0x36
  66. keys.scroll = 0x46 -- Scroll Lock
  67. keys[";"] = 0x27
  68. keys["/"] = 0x35 -- / on main keyboard
  69. keys[" "] = 0x39
  70. keys.stop = 0x95
  71. keys[" "] = 0x0F
  72. keys["_"] = 0x93
  73.  
  74. -- Keypad (and numpad with numlock off)
  75. keys.up = 0xC8
  76. keys.down = 0xD0
  77. keys.left = 0xCB
  78. keys.right = 0xCD
  79. keys.home = 0xC7
  80. keys["end"] = 0xCF
  81. keys.pageUp = 0xC9
  82. keys.pageDown = 0xD1
  83. keys.insert = 0xD2
  84. keys.delete = 0xD3
  85.  
  86. -- Function keys
  87. keys.f1 = 0x3B
  88. keys.f2 = 0x3C
  89. keys.f3 = 0x3D
  90. keys.f4 = 0x3E
  91. keys.f5 = 0x3F
  92. keys.f6 = 0x40
  93. keys.f7 = 0x41
  94. keys.f8 = 0x42
  95. keys.f9 = 0x43
  96. keys.f10 = 0x44
  97. keys.f11 = 0x57
  98. keys.f12 = 0x58
  99. keys.f13 = 0x64
  100. keys.f14 = 0x65
  101. keys.f15 = 0x66
  102. keys.f16 = 0x67
  103. keys.f17 = 0x68
  104. keys.f18 = 0x69
  105. keys.f19 = 0x71
  106.  
  107. -- Japanese keyboards
  108. keys.kana = 0x70
  109. keys.kanji = 0x94
  110. keys.convert = 0x79
  111. keys.noconvert = 0x7B
  112. keys.yen = 0x7D
  113. keys.circumflex = 0x90
  114. keys.ax = 0x96
  115.  
  116. -- Numpad
  117. keys.numpad0 = 0x52
  118. keys.numpad1 = 0x4F
  119. keys.numpad2 = 0x50
  120. keys.numpad3 = 0x51
  121. keys.numpad4 = 0x4B
  122. keys.numpad5 = 0x4C
  123. keys.numpad6 = 0x4D
  124. keys.numpad7 = 0x47
  125. keys.numpad8 = 0x48
  126. keys.numpad9 = 0x49
  127. keys.numpadmul = 0x37
  128. keys.numpaddiv = 0xB5
  129. keys.numpadsub = 0x4A
  130. keys.numpadadd = 0x4E
  131. keys.numpaddecimal = 0x53
  132. keys.numpadcomma = 0xB3
  133. keys.numpadenter = 0x9C
  134. keys.numpadequals = 0x8D
  135.  
  136. -- Create inverse mapping for name lookup.
  137. setmetatable(keys,
  138. {
  139. __index = function(tbl, k)
  140. if type(k) ~= "number" then return end
  141. for name,value in pairs(tbl) do
  142. if value == k then
  143. return name
  144. end
  145. end
  146. end
  147. })
  148.  
  149. kb.pullKey = function() -- It works... I think...
  150. local n, __, ___, code, name = computer.pullSignal()
  151. local key = ""
  152.  
  153. if n ~= "key_down" then
  154. return
  155. end
  156.  
  157. for k,c in pairs(keys) do
  158. if c == code then
  159. key = k
  160. end
  161. end
  162.  
  163. return {char = key:upper(), player = name, code = code}
  164. end
  165.  
  166. kb.keys = keys
  167.  
  168. return kb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement