Advertisement
IssyPutchy

Drunken Lua Script - G9 Face

Jun 26th, 2020
1,376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.33 KB | None | 0 0
  1. -- From watchface; https://getwatchmaker.com/watch/sBkBU7ny1L
  2. -- wm_action('m_task:WMDisableCUS')
  3.  
  4. -- var_numbers = 48,57
  5. -- var_lower = 97,122
  6. -- var_upper = 65,90
  7.  
  8. var_ms_display = ''
  9. var_ms_char_mode = 1
  10. var_pad = nil
  11. var_ms_ckey = nil
  12. var_ms_timer = 0
  13. var_ms_pm = 1
  14. var_numbers = {}
  15. var_lower = {}
  16. var_upper = {}
  17. var_add = 0
  18. var_case = 0
  19. var_ms_lastkey = nil
  20.  
  21. function reset()
  22.  var_ms_display = ''
  23.  var_ms_char_mode = 1
  24.  var_pad = nil
  25.  var_ms_ckey = nil
  26.  var_ms_timer = 0
  27.  var_ms_pm = 1
  28.  var_add = 0
  29.  last = nil
  30.  var_case = 0
  31.  var_ms_lastkey = nil
  32. end
  33.  
  34. -- Map letters/numbers to tables the easy way
  35. function make_tables()
  36. run = 1
  37.  for num=48,57,1 do
  38.   var_numbers[run] = num
  39.   run = run + 1
  40.  end
  41. run = 1
  42.  for up=65,90,1 do
  43.   var_upper[run] = up
  44.   run = run + 1
  45.  end
  46. run = 1
  47.  for lo=97,122,1 do
  48.   var_lower[run] = lo
  49.   run = run + 1
  50.  end
  51. end
  52. make_tables()
  53.  
  54. -- Attempt a timer for key input
  55. function input_delay(nkey)
  56.  if {dsps} - tonumber(last) < 700 then
  57.   var_ms_pm = 1
  58.  else
  59.   var_ms_pm = 2
  60.  end
  61.  if var_ms_pm == 2 then
  62.   var_add = 0
  63.   var_ms_display = var_ms_display .. var_ms_ckey
  64.   var_ms_ckey = nil
  65.   var_ms_char_mode = 1
  66.   var_case = 0
  67.   var_ms_lastkey = nil
  68.  end
  69. end
  70.  
  71. function charmode(mod)
  72.  var_ms_char_mode = var_ms_char_mode%mod+1
  73.   if var_ms_char_mode == mod then
  74.    var_case = 1-(var_case%2)
  75.     else
  76.   -- var_case = 0
  77.   end
  78. end
  79.  
  80. function keypad(key)
  81.  if var_ms_lastkey == nil or var_ms_lastkey == key then
  82.   last = {dsps}
  83.   var_add = 1
  84.    if key == 0 and var_ms_char_mode == 1 then
  85.     var_ms_ckey = '0'
  86.     charmode(1)
  87.    end
  88.    if key == 1 and var_ms_char_mode == 1 then
  89.     var_ms_ckey = '1'
  90.     charmode(4)
  91.      elseif key == 1 and var_ms_char_mode == 2 then
  92.     var_ms_ckey = ' '
  93.     charmode(4)
  94.      elseif key == 1 and var_ms_char_mode == 3 then
  95.     var_ms_ckey = ','
  96.     charmode(4)
  97.      elseif key == 1 and var_ms_char_mode == 4 then
  98.     var_ms_ckey = '.'
  99.     charmode(4)
  100.    end
  101.    if key == 2 and var_ms_char_mode < 4 then
  102.     if var_case == 0 then
  103.      var_ms_ckey = string.char(var_lower[var_ms_char_mode])
  104.       elseif var_case == 1 then
  105.      var_ms_ckey = string.char(var_upper[var_ms_char_mode])
  106.     end
  107.     charmode(4)
  108.      elseif key == 2 and var_ms_char_mode == 4 then
  109.     var_ms_ckey = '2'
  110.     charmode(4)
  111.    end
  112.    if key == 3 and var_ms_char_mode < 4 then
  113.     if var_case == 0 then
  114.      var_ms_ckey = string.char(var_lower[3+var_ms_char_mode])
  115.       elseif var_case == 1 then
  116.      var_ms_ckey = string.char(var_upper[3+var_ms_char_mode])
  117.     end
  118.     charmode(4)
  119.      elseif key == 3 and var_ms_char_mode == 4 then
  120.     var_ms_ckey = '3'
  121.     charmode(4)
  122.    end
  123.    if key == 4 and var_ms_char_mode < 4 then
  124.     if var_case == 0 then
  125.      var_ms_ckey = string.char(var_lower[6+var_ms_char_mode])
  126.       elseif var_case == 1 then
  127.      var_ms_ckey = string.char(var_upper[6+var_ms_char_mode])
  128.     end
  129.     charmode(4)
  130.      elseif key == 4 and var_ms_char_mode == 4 then
  131.     var_ms_ckey = '4'
  132.     charmode(4)
  133.    end
  134.    if key == 5 and var_ms_char_mode < 4 then
  135.     if var_case == 0 then
  136.      var_ms_ckey = string.char(var_lower[9+var_ms_char_mode])
  137.       elseif var_case == 1 then
  138.      var_ms_ckey = string.char(var_upper[9+var_ms_char_mode])
  139.     end
  140.     charmode(4)
  141.      elseif key == 5 and var_ms_char_mode == 4 then
  142.     var_ms_ckey = '5'
  143.     charmode(4)
  144.    end
  145.    if key == 6 and var_ms_char_mode < 4 then
  146.     if var_case == 0 then
  147.      var_ms_ckey = string.char(var_lower[12+var_ms_char_mode])
  148.       elseif var_case == 1 then
  149.      var_ms_ckey = string.char(var_upper[12+var_ms_char_mode])
  150.     end
  151.     charmode(4)
  152.      elseif key == 6 and var_ms_char_mode == 4 then
  153.     var_ms_ckey = '6'
  154.     charmode(4)
  155.    end
  156.    if key == 7 and var_ms_char_mode < 5 then
  157.     if var_case == 0 then
  158.      var_ms_ckey = string.char(var_lower[15+var_ms_char_mode])
  159.       elseif var_case == 1 then
  160.      var_ms_ckey = string.char(var_upper[15+var_ms_char_mode])
  161.     end
  162.     charmode(5)
  163.      elseif key == 7 and var_ms_char_mode == 5 then
  164.     var_ms_ckey = '7'
  165.     charmode(5)
  166.    end
  167.    if key == 8 and var_ms_char_mode < 4 then
  168.     if var_case == 0 then
  169.      var_ms_ckey = string.char(var_lower[19+var_ms_char_mode])
  170.       elseif var_case == 1 then
  171.      var_ms_ckey = string.char(var_upper[19+var_ms_char_mode])
  172.     end
  173.     charmode(4)
  174.      elseif key == 8 and var_ms_char_mode == 4 then
  175.     var_ms_ckey = '8'
  176.     charmode(4)
  177.    end
  178.    if key == 9 and var_ms_char_mode < 5 then
  179.     if var_case == 0 then
  180.      var_ms_ckey = string.char(var_lower[22+var_ms_char_mode])
  181.       elseif var_case == 1 then
  182.      var_ms_ckey = string.char(var_upper[22+var_ms_char_mode])
  183.     end
  184.     charmode(5)
  185.      elseif key == 9 and var_ms_char_mode == 5 then
  186.     var_ms_ckey = '9'
  187.     charmode(5)
  188.    end
  189.    if key == 'del' then
  190.     var_ms_display = string.sub(var_ms_display,1,string.len(var_ms_display)-1)
  191.     var_ms_lastkey = nil
  192.     var_ms_ckey = nil
  193.    end
  194.      else
  195.     setkey()
  196.     keypad(key)
  197.    end
  198.  if key >= 0 and key <= 9 then
  199.   var_ms_lastkey = key
  200.  end
  201. end
  202.  
  203. function setkey()
  204.   var_add = 0
  205.   var_ms_display = var_ms_display .. var_ms_ckey
  206.   -- var_ms_ckey = nil
  207.   var_ms_char_mode = 1
  208.   var_case = 0
  209.   var_ms_lastkey = nil
  210. end
  211.  
  212. function on_millisecond(dt)
  213.  if var_add == 1 then
  214.   input_delay()
  215.    else
  216.   var_ms_char_mode = 1
  217.  end
  218. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement