AImDrago

dragoos.lua live

Jul 9th, 2021 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 12.64 KB | None | 0 0
  1. --                          ██
  2. --                  ██    ██
  3. --          █████████████  ████                        ███████
  4. --      ████  ███████████████                          █████████
  5. --  ██████    █████████     ██   ████                  █      ███
  6. --  ████████████████████████     ██████                █       ██
  7. --    ██████  ██    ██████         ██████              █       ██
  8. --    ██      ████      ██████   ████████              █       ██
  9. --            ██        ██████   ██████████            █      ███
  10. --        ██  ██        ██████   ██████████            ████████
  11. --          ██        ██████   ██████████████          ████████
  12. --                ██████████ ██    ████  ████
  13. --        █████████████████  ████████████████          ████████
  14. --  ██████████████████████ ██████    ████████          █████████
  15. -- ███████████████████   ████████████████████          █       ██
  16. --██████████████  ██  ███  ████    ██████  ██          █        ██
  17. --██  ████████    ██  ███████  ██████████  ██          ██████████
  18. --█  ████████            ██  ████████████   █          █████
  19. --   ██████    ████        ██          ██              ██ ███
  20. --  ██████       ████                    ██            ██  ███               █████████
  21. --  ███████       ████  ████████████████               ██   ███             ██       ██
  22. --  ████████      █████████████████████                                     ██       ██
  23. --   ████████████████████████████████████                ███████            ██       ██
  24. --     ███████████████████         ████████             ███   ███           ██       ██
  25. --       █████████████         ██    ██████            ███     ███          ██       ██
  26. --         ██████            ██████  ████████          ███████████           █████████
  27. --           ██            ██████    ████████          ███████████
  28. --                          █████████████  ██          ██       ██          ███████████
  29. --         ██████████████████████████████   █          ██       ██          ██
  30. --     ███████    █████████████████  ██                                     ██
  31. --   ████              ██████      ██                   ██████████          ███████████
  32. --   ██  ██              ██                            ███                           ██
  33. -- ██  ██                                              ███   █████                   ██
  34. --   ██           ██  ████████████                     ███      ██          ███████████
  35. --   ██   ███      ██  ████       ██                   ███      ██
  36. -- ██    ███████  ██████         ███                    ██████████
  37. -- ████  ██  █████████         ████
  38. -- ██████  █████████████                                ████████
  39. --   ███████████████  ████                             ██      ██
  40. --     ███████████                                     ██      ██
  41. --              ██                                     ██      ██
  42. --                                                     ██      ██
  43. --                                                      ████████
  44. -- Bugs:
  45. --      Add_event causes  events.lua to not works [V] Repaired it :3 Also improved clearing vars when closing
  46. --
  47. local gpu = require("component").gpu
  48. local internet = require("internet")
  49. local io = require("io")
  50. local event = require("event")
  51. local thread = require("thread")
  52. local banned_player = {"Majkaaa"}
  53. local modules_list = {}
  54. modules_list["charset"] = "nVf9B9dQ"
  55. modules_list["events"] = "" -- Not added to pastebin yett
  56. items = {}  
  57. console = ""
  58. random = math.random -- Fuck math isnt imported globally
  59.  
  60.  
  61.  
  62. local function uuid()
  63.     local template ='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
  64.     return string.gsub(template, '[xy]', function (c)
  65.         local v = (c == 'x') and random(0, 0xf) or random(8, 0xb)
  66.         return string.format('%x', v)
  67.     end)
  68. end
  69.  
  70. function sleep(n)
  71.   os.execute("sleep " .. tonumber(n))
  72. end
  73.  
  74. function _load_module (mod)
  75.     dofile("/home/"..mod..".lua")
  76. end
  77.  
  78. function install_module (mod)
  79.     if pcall(_load_module, mod) then
  80.         -- Installed module mod
  81.     else
  82.         os.execute("pastebin get "..modules_list[mod].." "..mod..".lua")
  83.         _load_module(mod)
  84.     end
  85. end
  86. install_module("events")
  87. install_module("charset")
  88.  
  89.  
  90. local screen_adress = gpu.getScreen() -- Current Screen #
  91. local max_color_depth = gpu.maxDepth() -- Current max color depth (depends on screen)
  92. local screen_xsize, screen_ysize  = gpu.getResolution() -- Width
  93. local dragoos_theme = 0 -- Theme index
  94. local dragoos_double_buffering = true -- turned on or off
  95. local buffer_1 = gpu.allocateBuffer(screen_xsize,screen_ysize+1)
  96. local buffer_2 = gpu.allocateBuffer(screen_xsize,screen_ysize+1)
  97. local dragoos_currentbuffer = buffer_1
  98.  
  99. local ui_hide = false
  100. dragos_exit = false
  101. ui_menuactive = false
  102. rc_menuactive = false
  103. rc_x = 0
  104. rc_y = 0
  105. local color_themes = {
  106. {0x00ff00,0x00ff00,0x00ff00}
  107. }
  108.  
  109. local windows = {}
  110.  
  111. function setcolor (color)
  112.     gpu.setBackground(color)
  113. end
  114.  
  115. function fsetcolor (color) --  Foreground SetColor
  116.     gpu.setForeground(color)
  117. end
  118.  
  119. function switch_buffering ()
  120.     if dragoos_double_buffering == false then
  121.         dragoos_double_buffering = true
  122.     else
  123.         dragoos_double_buffering = false
  124.     end
  125. end
  126.  
  127. function draw_wallpaper ()
  128.     setcolor(0x800080)
  129.     gpu.fill(0,-1,screen_xsize,screen_ysize+4,' ')
  130. end
  131.  
  132. function draw_ui ()
  133.     setcolor(0x000000)
  134.     gpu.fill(0,0,0,screen_xsize," ") -- Top bar
  135.     setcolor(0x00aa00)
  136.     gpu.fill(0,screen_ysize-2,screen_xsize+1,screen_ysize+1," ") -- taskbar
  137.     fsetcolor(0x000000)
  138.     setcolor(0x800080) --Wallpaper bottom color
  139.     gpu.set(0,screen_ysize-3,string.rep("_",160))-- taskbar black shadow
  140.     fsetcolor(0xffffff)
  141.     setcolor(0x0000ff)
  142.     gpu.fill(1,screen_ysize-2,5,screen_ysize-1," ") -- menu
  143.     gpu.set(1,screen_ysize-1,"Menu")
  144.     setcolor(0xff0000)
  145.     gpu.fill(screen_xsize-4,screen_ysize-2,screen_xsize,screen_ysize+1," ")-- menu
  146.     gpu.set(screen_xsize-3,screen_ysize-1,"X")
  147.     if ui_menuactive == true then
  148.         setcolor(0xffffff)
  149.         gpu.fill(0,screen_ysize-19,33,17," ")
  150.         fsetcolor(0x000000)
  151.         gpu.set(1,screen_ysize-19,"DragoOS v0.1")
  152.         gpu.set(0,screen_ysize-6,"_________________________________")
  153.         gpu.set(12,screen_ysize-4,"Ustawienia")
  154.         gpu.set(0,screen_ysize-9,"_________________________________")
  155.         gpu.set(12,screen_ysize-7,"Aplikacje")
  156.         gpu.set(0,screen_ysize-12,"_________________________________")
  157.         gpu.set(10,screen_ysize-10,"DragoAppStore")
  158.         fsetcolor(0xffffff)
  159.     end
  160.     if rc_menuactive == true then
  161.         setcolor(0xffffff)
  162.         fsetcolor(0x000000)
  163.         gpu.set(rc_x+1,rc_y-1,"Refresh   ")
  164.         gpu.set(rc_x+1,rc_y-2,"New       ")
  165.         if rc_onfile == true then
  166.             gpu.set(rc_x+1,rc_y-3,"Delete    ")
  167.             gpu.set(rc_x+1,rc_y-4,"Rename    ")
  168.             gpu.set(rc_x+1,rc_y-5,"Propreties")
  169.         end
  170.         fsetcolor(0xffffff)
  171.     end
  172.     setcolor(0x00aa00)
  173.     gpu.set(screen_xsize-15,screen_ysize-1,tostring(os.date("%H:%M:%S")))
  174.     setcolor(0xff0000)
  175. end
  176.  
  177. function create_window()
  178.     -- Windows args  
  179.     -- 0-1 > Position
  180.     -- 2-4 > Width,Height
  181.     -- 5 > Window Title  
  182.     table.insert(windows,{0,0,0,0,""})
  183. end
  184.  
  185. function draw_windows ()
  186. end
  187.  
  188. function switch_buffer ()
  189.     if gpu.getActiveBuffer() == buffer_1 then
  190.         gpu.setActiveBuffer(buffer_2)
  191.         dragoos_currentbuffer = buffer_2
  192.     else  
  193.         gpu.setActiveBuffer(buffer_1)
  194.         dragoos_currentbuffer = buffer_1
  195.     end
  196. end
  197.  
  198.  
  199.  
  200. function os_startup ()
  201.     for i = 1,screen_ysize
  202.     do
  203.         setcolor(0xff0000)
  204.         gpu.fill(0,0+i,screen_xsize,1," ")
  205.         os.sleep(0)
  206.     end
  207. end
  208.  
  209. function add_point (x,y,color, l)
  210.     items[tostring(random(0, 0xffff))] = {"point",x,y,color,l}
  211. end
  212.  
  213. function add_window (x,y,w,h,title,inside)
  214.     items[tostring(random(0, 0xffff))] = {"window", x,y,w,h,title,inside,false}
  215.     -- Last arg is if its dragged
  216. end
  217.  
  218. function add_button (x,y,w,h,text,color,fcolor,onclick)
  219.     items[tostring(random(0, 0xffff))] = {"button", x,y,w,h,text,color,fcolor,onclick}
  220. end
  221.  
  222. function nowindow_drag()
  223.     -- disabless all window drags
  224.     for _id ,vars in pairs(items) do
  225.         if vars[1] == "window" then
  226.             vars[8] = false
  227.         end
  228.     end
  229. end
  230.  
  231.  
  232. -- EVENTS
  233.  
  234. function set_uimenuactive(x,y)
  235.     if ui_menuactive == true then
  236.         ui_menuactive = false
  237.     elseif ui_menuactive == false then
  238.         ui_menuactive = true
  239.     end    
  240. end
  241. function exit_os(x,y);dragos_exit = true;end  
  242. add_event("touch",{0,47,6,6,set_uimenuactive})
  243. add_event("touch",{155,47,6,6,exit_os})
  244.  
  245.  
  246. function draw_items ()
  247.     for _id ,vars in pairs(items) do
  248.         types = vars[1]
  249.         if types == "point" then
  250.             setcolor(vars[4])
  251.             gpu.set(vars[2],vars[3],vars[5])
  252.         elseif types == "button" then
  253.             setcolor(vars[7])
  254.             fsetcolor(vars[8])
  255.             gpu.fill(vars[2],vars[3],vars[4],vars[5]," ")
  256.             gpu.set(vars[2],vars[3]+math.floor((vars[5]/2)-0.5),vars[6])
  257.             add_event("touch",{vars[2],vars[3],vars[4],vars[5],vars[9]})
  258.         elseif types == "window" then
  259.             setcolor(0xefefef)
  260.             gpu.fill(vars[2],vars[3],vars[4],vars[5]," ")
  261.             setcolor(0x5a5a5a)
  262.             gpu.fill(vars[2],vars[3],vars[4],1," ")
  263.             gpu.set(vars[2],vars[3],vars[6])
  264.             setcolor(0xfa0000)
  265.             gpu.set(vars[2]+vars[4]-1,vars[3],"X")
  266.             setcolor(0x00fa00)
  267.             gpu.set(vars[2]+vars[4]-2,vars[3],"-")
  268.             for _,tab in pairs(vars[7]) do  
  269.                 if tab[1] == "rect" then
  270.                     setcolor(tab[6])
  271.                     gpu.fill(vars[2]+tab[2],vars[3]+tab[3],tab[4],tab[5]," ")
  272.                 end
  273.                 if tab[1] == "text" then
  274.                     fsetcolor(tab[5])
  275.                     gpu.set(vars[2]+tab[2],vars[3]+tab[3],tab[4])
  276.                 end
  277.                 if tab[1] == "button" then
  278.                     -- tab[1] -  x   {"button", x,y,w,h,text,color,fcolor,onclick}
  279.                     setcolor(tab[7])
  280.                     fsetcolor(tab[8])
  281.                     gpu.fill()
  282.                 end
  283.                 if tab[1] == "checkbox" then
  284.                 end
  285.             end
  286.            
  287.         end
  288.     end
  289. end
  290.  
  291.  
  292. thread.create(event_loop):detach()
  293.  
  294.  
  295.  
  296.  
  297. while (dragos_exit == false) do
  298.     if dragoos_double_buffering == true then
  299.         switch_buffer()
  300.     end
  301.    
  302.     local start_time = os.time()
  303.    
  304.     draw_wallpaper()
  305.     draw_items()
  306.     draw_windows()
  307.     draw_ui()
  308.    
  309.    
  310.     gpu.set(1,10,tostring(start_console))
  311.  
  312.    
  313.     if start_console == true then
  314.         setcolor(0x006400)
  315.         gpu.fill(0,0,160,51," ")
  316.        
  317.         l=0
  318.         for _, v in pairs(console_log) do
  319.             gpu.set(1,1+l,v)
  320.             l = l  + 1
  321.         end
  322.         gpu.set(1,1+l,">"..console)
  323.         l = l + 1
  324.         gpu.set(1,1+l,console_return)
  325.     end
  326.  
  327.     local end_time = os.time() - start_time
  328.    
  329.    
  330.     gpu.bitblt(0, 0,0 ,screen_xsize, screen_ysize+1, dragoos_currentbuffer, 0, 0)
  331.    
  332.     os.sleep(0)
  333. end
  334. gpu.freeBuffer(buffer_1)
  335. gpu.freeBuffer(buffer_2)
  336. gpu.setActiveBuffer(0)
  337. items = {} -- cleans items on exit
  338. os.execute("cls")
Add Comment
Please, Sign In to add comment