Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Projector
- local component = require("component")
- local hologram = component.hologram
- -- Reactor
- local reactor = component.br_reactor
- local turbine = component.br_turbine
- -- Configure projector
- hologram.clear()
- hologram.setScale(0.33)
- -- Prepare colors
- hologram.setPaletteColor(1, 0xFF0000)
- hologram.setPaletteColor(2, 0x00FF00)
- hologram.setPaletteColor(3, 0x0000FF)
- -- Options
- char_coords = {35, 1, 20}
- used_coords = {35, 10, 24}
- avai_coords = {35, 10, 15}
- -- Characters
- char_map = {
- ["0"]={
- " XXX ",
- "X X",
- "X X X",
- "X X",
- " XXX "
- },
- ["1"]={
- " XX ",
- "X X ",
- " X ",
- " X ",
- " X "
- },
- ["2"]={
- "XXXX ",
- " X",
- " X ",
- "X ",
- "XXXXX"
- },
- ["3"]={
- "XXXX ",
- " X",
- " XXX ",
- " X",
- "XXXX "
- },
- ["4"]={
- "X X",
- "X X",
- "XXXXX",
- " X",
- " X"
- },
- ["5"]={
- "XXXXX",
- "X ",
- "XXXX ",
- " X",
- "XXXX "
- },
- ["6"]={
- " XXX ",
- "X ",
- "XXXX ",
- "X X",
- " XXX "
- },
- ["7"]={
- "XXXXX",
- " X ",
- " XXX ",
- " X ",
- " X "
- },
- ["8"]={
- " XXX ",
- "X X",
- " XXX ",
- "X X",
- " XXX "
- },
- ["9"]={
- " XXX ",
- "X X",
- " XXXX",
- " X",
- " XXX "
- }
- }
- -- Draws a layer
- function layer(hologram, x, y, z, size, depth, color)
- for i=x, x+size, 1 do
- for j=z, z+size, 1 do
- hologram.fill(i, j, y, y+depth, color)
- end
- end
- end
- -- Draws a character
- function char(hologram, map, x, y, z, color)
- for i=1, 5, 1 do
- for j=1, 5, 1 do
- if map[6-i]:sub(6-j,6-j) == "X" then
- hologram.set(x, y+i-1, z+j-1, color)
- end
- end
- end
- end
- while true do
- -- Get reactor capacity
- energy = turbine.getEnergyStored()
- level = math.floor(100 * energy / 10000000)
- -- Get line heights, 30 max so we can take a shorcut
- used_height = (100 - level) / 3
- avai_height = level / 3
- -- Reactor settings
- reactor.setAllControlRodLevels(level)
- -- Rendering lines
- hologram.clear()
- layer(hologram, used_coords[1], used_coords[2], used_coords[3], 10, used_height, 1)
- layer(hologram, avai_coords[1], avai_coords[2], avai_coords[3], 10, avai_height, 2)
- -- Rendering level number
- lvl_str = tostring(level)
- if level == 100 then
- char(hologram, char_map["1"], char_coords[1], char_coords[2], char_coords[3]+12, 3)
- end
- if level >= 10 then
- char(hologram, char_map[lvl_str:sub(1,1)], char_coords[1], char_coords[2], char_coords[3]+6, 3)
- end
- char(hologram, char_map[lvl_str:sub(2,2)], char_coords[1], char_coords[2], char_coords[3], 3)
- print (lvl_str:sub(1,2))
- os.sleep(10)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement