]> hydra-www.ietfng.org Git - acmetensortoys-esp-lua_lamp/commitdiff
Adds simple nom-ing animation
authorRachael <srbennett@gmail.com>
Sun, 18 Dec 2016 05:43:39 +0000 (21:43 -0800)
committerRachael <srbennett@gmail.com>
Sun, 18 Dec 2016 05:43:39 +0000 (21:43 -0800)
draw-nom.lua [new file with mode: 0644]

diff --git a/draw-nom.lua b/draw-nom.lua
new file mode 100644 (file)
index 0000000..98aea7e
--- /dev/null
@@ -0,0 +1,39 @@
+--
+return function(t,fb,g,r,b)
+  local ix = 2 -- since we start effectively in state 1...
+  local c = string.char(g,r,b)
+  local z = string.char(0,0,0)
+  local ft = {   -- open mouth
+               [1] = function() fb:set(16,z) fb:set(24,z) fb:set(9,c) fb:set(17,c) fb:set(2,c) fb:set(26,c) end
+                 -- close mouth
+             , [2] = function() fb:set(10, c) fb:set(18,c) fb:set(2,z) fb:set(26,z) end
+                 -- advance & open mouth
+             , [3] = function() fb:set(9,z) fb:set(17,z) fb:set(3, c) fb:set(27,c) end
+                 -- close mouth
+             , [4] = function() fb:set(3,z) fb:set(27,z) fb:set(11,c) fb:set(19,c) end
+                 -- nom
+             , [5] = function() fb:set(10,z) fb:set(18,z) fb:set(4,c) fb:set(28,c) end
+                 -- nom 1
+             , [6] = function() fb:set(4,z) fb:set(28,z) fb:set(12,c) fb:set(20,c) end
+                 -- nom 2
+             , [7] = function() fb:set(11,z) fb:set(19,z) fb:set(5,c) fb:set(29,c) end
+                 -- nom 3
+             , [8] = function() fb:set(5,z) fb:set(29,z) fb:set(13,c) fb:set(21,c) end
+                 -- nom 4
+             , [9] = function() fb:set(12,z) fb:set(20,z) fb:set(6,c) fb:set(30,c)  end
+            , [10] = function() fb:set(6,z) fb:set(30,z) fb:set(14,c) fb:set(22,c) end
+            , [11] = function() fb:set(13,z) fb:set(21,z) fb:set(7,c) fb:set(31,c) end
+            , [12] = function() fb:set(7,z) fb:set(31,z) fb:set(15,c) fb:set(23,c) end
+            , [13] = function() fb:set(14,z) fb:set(22,z) fb:set(8,c) fb:set(32,c) end
+            , [14] = function() fb:set(8,z) fb:set(32,z) fb:set(16,c) fb:set(24,c) end
+            , [15] = function() fb:set(15,z) fb:set(23,z) fb:set(1,c) fb:set(25,c) end
+            , [16] = function() fb:set(1,z) fb:set(25,z) fb:set(9,c) fb:set(17,c) end
+             }
+  fb:fill(z)
+  fb:set(9,c) fb:set(17,c) fb:set(2,c) fb:set(26,c) fb:set(29,c)
+  t:register(500,tmr.ALARM_AUTO,function()
+    ft[ix]()
+    ix = (ix == 16 and 1) or ix + 1
+    dodraw()
+  end)
+end