Advertisement
Guest User

ReactTest

a guest
Mar 4th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.49 KB | None | 0 0
  1. -- Projector
  2. local component = require("component")
  3. local hologram = component.hologram
  4.  
  5. -- Reactor
  6. local reactor = component.br_reactor
  7. local turbine = component.br_turbine
  8.  
  9. -- Configure projector
  10. hologram.clear()
  11. hologram.setScale(0.33)
  12.  
  13. -- Prepare colors
  14. hologram.setPaletteColor(1, 0xFF0000)
  15. hologram.setPaletteColor(2, 0x00FF00)
  16. hologram.setPaletteColor(3, 0x0000FF)
  17.  
  18. -- Options
  19. char_coords = {35, 1, 20}
  20. used_coords = {35, 10, 24}
  21. avai_coords = {35, 10, 15}
  22.  
  23. -- Characters
  24. char_map = {
  25.   ["0"]={
  26.   " XXX ",
  27.   "X   X",
  28.   "X X X",
  29.   "X   X",
  30.   " XXX "
  31.   },
  32.   ["1"]={
  33.   " XX  ",
  34.   "X X  ",
  35.   "  X  ",
  36.   "  X  ",
  37.   "  X  "
  38.   },
  39.   ["2"]={
  40.   "XXXX ",
  41.   "    X",
  42.   "  X  ",
  43.   "X    ",
  44.   "XXXXX"
  45.   },
  46.   ["3"]={
  47.   "XXXX ",
  48.   "    X",
  49.   " XXX ",
  50.   "    X",
  51.   "XXXX "
  52.   },
  53.   ["4"]={
  54.   "X   X",
  55.   "X   X",
  56.   "XXXXX",
  57.   "    X",
  58.   "    X"
  59.   },
  60.   ["5"]={
  61.   "XXXXX",
  62.   "X    ",
  63.   "XXXX ",
  64.   "    X",
  65.   "XXXX "
  66.   },
  67.   ["6"]={
  68.   " XXX ",
  69.   "X    ",
  70.   "XXXX ",
  71.   "X   X",
  72.   " XXX "
  73.   },
  74.   ["7"]={
  75.   "XXXXX",
  76.   "   X ",
  77.   " XXX ",
  78.   "  X  ",
  79.   " X   "
  80.   },
  81.   ["8"]={
  82.   " XXX ",
  83.   "X   X",
  84.   " XXX ",
  85.   "X   X",
  86.   " XXX "
  87.   },
  88.   ["9"]={
  89.   " XXX ",
  90.   "X   X",
  91.   " XXXX",
  92.   "    X",
  93.   " XXX "
  94.   }
  95. }
  96.  
  97. -- Draws a layer
  98. function layer(hologram, x, y, z, size, depth, color)
  99.   for i=x, x+size, 1 do
  100.     for j=z, z+size, 1 do
  101.       hologram.fill(i, j, y, y+depth, color)
  102.     end
  103.   end
  104. end
  105.  
  106. -- Draws a character
  107. function char(hologram, map, x, y, z, color)
  108.   for i=1, 5, 1 do
  109.     for j=1, 5, 1 do
  110.       if map[6-i]:sub(6-j,6-j) == "X" then
  111.         hologram.set(x, y+i-1, z+j-1, color)
  112.       end
  113.     end
  114.   end
  115.  end
  116.  
  117. while true do
  118.   -- Get reactor capacity
  119.   energy = turbine.getEnergyStored()
  120.   level = math.floor(100 * energy / 10000000)
  121.  
  122.   -- Get line heights, 30 max so we can take a shorcut
  123.   used_height = (100 - level) / 3
  124.   avai_height = level / 3
  125.  
  126.   -- Reactor settings
  127.   reactor.setAllControlRodLevels(level)
  128.  
  129.   -- Rendering lines
  130.   hologram.clear()
  131.   layer(hologram, used_coords[1], used_coords[2], used_coords[3], 10, used_height, 1)
  132.   layer(hologram, avai_coords[1], avai_coords[2], avai_coords[3], 10, avai_height, 2)
  133.  
  134.   -- Rendering level number
  135.   lvl_str = tostring(level)
  136.   if level == 100 then
  137.     char(hologram, char_map["1"], char_coords[1], char_coords[2], char_coords[3]+12, 3)
  138.   end
  139.   if level >= 10 then
  140.     char(hologram, char_map[lvl_str:sub(1,1)], char_coords[1], char_coords[2], char_coords[3]+6, 3)
  141.   end
  142.   char(hologram, char_map[lvl_str:sub(2,2)], char_coords[1], char_coords[2], char_coords[3], 3)
  143.  
  144.   print (lvl_str:sub(1,2))
  145.  
  146.   os.sleep(10)
  147. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement