Advertisement
Marlingaming

Settings Application

Apr 5th, 2022 (edited)
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. local tArg = {...}
  2. local Username = "guest"
  3. local UserPortrait = "os/UI/Icons/UserDefaultPortrait.nfp"
  4. local w, h = term.getSize()
  5.  
  6. local User_AppKeys = {}
  7.  
  8. local DeskBackOptions = {{"Sunny Day","os/UI/Desk_Back1.nfp"},{"Window","os/UI/Desk_Back2"}}
  9. settings.load("os/settings.txt")
  10.  
  11. local Menus = {{"AppKeys",{"User Keys:",User_AppKeys}}}--title,info,buttons(text,action,
  12.  
  13. local Opts ={}--settingsname,editType(file or setting), name, other
  14.  
  15. local function Mid(text)
  16. local Tw = string.len(text)
  17. local X = w/2 - Tw/2
  18. return X
  19. end
  20.  
  21. function UserAccount(action,a,b,c)
  22. if action == "open" then
  23. local file = fs.open(fs.combine("os/System/Users",Username,"UserAccount.txt"),"r")
  24. UserPortrait = file.readLine()
  25. file.close()
  26. end
  27. end
  28.  
  29. function HomeScreen()
  30. App.Clear()
  31. App.setBackground(colors.white)
  32. App.setTextColor(colors.black)
  33. App.newImage("ProfileIcon",UserPortrait,2,2)
  34. App.newText("accountName",Username,2,1)
  35. App.newButton("button_account","Account","tsk.openAccount",10,2)
  36. App.newButton("button_Display","Display","tsk.openDisplay",10,4)
  37. end
  38.  
  39. function AccountPage()
  40. App.setBackground(colors.lightGray)
  41. OpenPg("Account")
  42. App.newText("text_username",Username,Mid(Username),3)
  43. App.newImage("image_ProfileIcon",UserPortrait,2,3)
  44. if Username == "Guest" then
  45. App.newText("Alert1","finish account setup",Mid("finish account setup"),6)
  46. App.newText("Alert2","setup your account at any available terminals that support this device",1,7)
  47. else
  48. App.newButton("button1","change portrait","tsk.openPortraits",1,6)
  49. App.newButton("button2","app keys","tsk.openMenu_AppKeys",1,7)
  50. end
  51. end
  52.  
  53. function OpenMenu(I)
  54. App.Clear()
  55. App.newButton("return","return","tsk.home",1,1)
  56. App.newText("title",Menus[I][1],3 + Mid(Menus[I][1]),1)
  57. local Y = 2
  58. if Menus[I][2] ~= -1 then
  59. for i = 1, #Menus[I][2] do
  60. term.setCursorPos(1,Y)
  61. term.write(Menus[I][2][i])
  62. Y = Y + 1
  63. end
  64. end
  65. end
  66.  
  67. function DisplayPage()
  68. OpenPg("Display")
  69. App.newText("text_Displays","Menus",1,3)
  70. App.newButton("button_DeskBack","desktop","tsk.desktopBackground_Menu",1,5)
  71. end
  72.  
  73. function BackgroundMenu(Menu,options)
  74. OpenPg(Menu)
  75. for i = 1, #options do
  76. App.newButton("button"..i,options[i][1],"tsk.setDesktopBack_"..i,1,(i * 2) + 2)
  77. end
  78. end
  79.  
  80. function OpenPg(name,options)
  81. App.Clear()
  82. local tw = string.len(name)
  83. local x = w/2 - tw/2
  84. App.newText("title",name,x,1)
  85. App.newButton("button_return","return","tsk.home",1,1)
  86. end
  87.  
  88. function GetVariables()
  89. local F1 = fs.open(fs.combine("os/System/Users",settings.get("active_user"),"UserKeys.txt"),"r")
  90. User_AppKeys = textutils.unserialize(F1.readAll())
  91. F1.close()
  92. end
  93.  
  94. Username = settings.get("active_user")
  95. UserAccount("open")
  96. GetVariables()
  97. if tArg[1] == "start" then
  98. HomeScreen()
  99. else
  100. if tArg[1] == "openAccount" then
  101. AccountPage()
  102. elseif tArg[1] == "openDisplay" then
  103. DisplayPage()
  104. elseif tArg[1] == "home" then
  105. HomeScreen()
  106. else
  107. if tArg[1] == "desktopBackground_Menu" then
  108. BackgroundMenu("desktop", DeskBackOptions)
  109. elseif string.find(tArg[1],"setDesktopBack_") then
  110. settings.set("screen_desktop_background",DeskBackOptions[textutils.unserialize(string.sub(tArg[1],string.len(tArg[1])))][2])
  111. settings.save("os/settings.txt")
  112. elseif string.find(tArg[1],"openMenu") then
  113. OpenMenu(string.sub(tArg[1],10,string.len(tArg[1])))
  114. end
  115. end
  116. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement