Guest User

Computercraft Multi Timer

a guest
Mar 2nd, 2013
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.18 KB | None | 0 0
  1. local tick = 0
  2. local backOutputColor = 0
  3. local firstTime = true
  4.  
  5. while true do
  6.     if not rs.getInput("front") then   
  7.         if firstTime then
  8.             print("------------")
  9.             print("Timer Active")
  10.             print("------------")
  11.             firstTime = false
  12.         end
  13.    
  14.         -- Timers for back output.
  15.         backOutputColor = 0
  16.    
  17.         if tick ~= 0 then
  18.             -- Pulse every:
  19.             -- 1/10 Second
  20.             if math.fmod(tick, 2) == 0 then
  21.                 backOutputColor = backOutputColor + colors.white
  22.             end
  23.            
  24.             -- 1/2 Second
  25.             if math.fmod(tick, 5) == 0 then
  26.                 backOutputColor = backOutputColor + colors.orange
  27.             end
  28.            
  29.             -- 1 Second
  30.             if math.fmod(tick, 10) == 0 then
  31.                 backOutputColor = backOutputColor + colors.magenta
  32.             end
  33.  
  34.             -- 2 Second        
  35.             if math.fmod(tick, 20) == 0 then
  36.                 backOutputColor = backOutputColor + colors.lightBlue
  37.             end
  38.  
  39.             -- 3 Second        
  40.             if math.fmod(tick, 30) == 0 then
  41.                 backOutputColor = backOutputColor + colors.yellow
  42.             end
  43.  
  44.             -- 4 Second        
  45.             if math.fmod(tick, 40) == 0 then
  46.                 backOutputColor = backOutputColor + colors.lime
  47.             end        
  48.  
  49.             -- 5 Second        
  50.             if math.fmod(tick, 50) == 0 then
  51.                 backOutputColor = backOutputColor + colors.pink
  52.             end
  53.  
  54.             -- 10 Second           
  55.             if math.fmod(tick, 100) == 0 then
  56.                 backOutputColor = backOutputColor + colors.gray
  57.             end
  58.  
  59.             -- 20 Second           
  60.             if math.fmod(tick, 200) == 0 then
  61.                 backOutputColor = backOutputColor + colors.lightGray
  62.             end
  63.            
  64.             -- 30 Second           
  65.             if math.fmod(tick, 300) == 0 then
  66.                 backOutputColor = backOutputColor + colors.cyan
  67.             end
  68.  
  69.             -- 1 Minute
  70.             if math.fmod(tick, 600) == 0 then
  71.                 backOutputColor = backOutputColor + colors.purple
  72.             end
  73.  
  74.             -- 5 Minute
  75.             if math.fmod(tick, 3000) == 0 then
  76.                 backOutputColor = backOutputColor + colors.blue
  77.             end
  78.  
  79.             -- 10 Minute
  80.             if math.fmod(tick, 6000) == 0 then
  81.                 print("10 Minutes Complete.")
  82.                 backOutputColor = backOutputColor + colors.brown
  83.             end
  84.  
  85.             -- 20 Minute
  86.             if math.fmod(tick, 12000) == 0 then
  87.                 backOutputColor = backOutputColor + colors.green
  88.             end        
  89.  
  90.             -- 30 Minute
  91.             if math.fmod(tick, 18000) == 0 then
  92.                 backOutputColor = backOutputColor + colors.red
  93.             end
  94.  
  95.             -- 1 Hour
  96.             if math.fmod(tick, 36000) == 0 then
  97.                 print("1 Hour Complete")
  98.                 backOutputColor = backOutputColor + colors.black
  99.             end
  100.         end
  101.        
  102.         -- Set Bundled Cable backoutput
  103.         redstone.setBundledOutput("back", backOutputColor)
  104.        
  105.         -- Add timers for bundled output to any other side.
  106.        
  107.         -- Base time interval (1/10 second) == 1 Redstone tick == 2 Game Ticks
  108.         sleep(.1)
  109.        
  110.         -- Reset tick count in case there is a max int size
  111.         if tick == 36000 then
  112.             tick = 0           
  113.         end
  114.         tick = tick + 1
  115.     else
  116.         term.clear()
  117.         term.setCursorPos(1,1)
  118.         timerOutput("back", 0)
  119.         print("Timer Disabled, Redstone Low in front to enable.")
  120.         os.pullEvent("redstone")
  121.         if not rs.getInput("front") then   
  122.             firstTime = true
  123.             tick = 0
  124.         end
  125.     end
  126. end
  127.  
  128. -- Colors API Cheat Sheet
  129. --[[
  130. colors.white
  131. colors.orange
  132. colors.magenta
  133. colors.lightBlue
  134. colors.yellow
  135. colors.lime
  136. colors.pink
  137. colors.gray
  138. colors.lightGray
  139. colors.cyan
  140. colors.purple
  141. colors.blue
  142. colors.brown
  143. colors.green
  144. colors.red
  145. colors.black
  146. ]]--
Advertisement
Add Comment
Please, Sign In to add comment