· 2 years ago · Aug 24, 2023, 05:15 PM
1-- Microcraft NextUI Setup --
2
3local function aw(...) return write(...) end
4local function p(...) return print(...) end
5local function s(...) return sleep(...) end
6local function tw(...) return term.write(...) end
7local function scp(...) return term.setCursorPos(...) end
8local function sbc(...) return term.setBackgroundColor(...) end
9local function stc(...) return term.setTextColor(...) end
10local function tc(...) return term.clear(...) end
11local function tcl(...) return term.clearLine(...) end
12local function r(...) return shell.run(...) end
13local function sp(...) return textutils.slowPrint(...) end
14local function sw(...) return textutils.slowWrite(...) end
15local function fse(...) return fs.exists(...) end
16local function pul(...) return paintutils.loadImage(...) end
17local function pud(...) return paintutils.drawImage(...) end
18local function pfb(...) return paintutils.drawFilledBox(...) end
19local function su(...) return os.shutdown(...) end
20local function re(...) return os.reboot(...) end
21local function pdp(...) return paintutils.drawPixel(...) end
22
23w, h = term.getSize()
24
25pliki = {"https://pastebin.com/raw/KmTjVypd", "https://pastebin.com/raw/3V1e5XLS"}
26
27function downloadFile(url, sciezka)
28 local response = http.get(url)
29 if response then
30 local fileContent = response.readAll()
31 response.close()
32
33 local file = fs.open(sciezka, "w")
34 file.write(fileContent)
35 file.close()
36 else
37 print("Instalator napotkal blad z pobieraniem pliku. Jesli wystapi on ponownie uzyj wersji instalatora korzystajacej z API pastebin.")
38 end
39end
40
41function setupUI()
42 pfb(1,1,w,h, colors.blue)
43 pfb(1,h,w,h,colors.gray)
44 local char1 = "\149"
45 local char2 = "\131"
46 scp(1,1)
47 stc(colors.white)
48 sbc(colors.blue)
49 p("Instalator onzOS 2.0")
50 scp(1,2)
51 p(char2, char2, char2, char2, char2, char2, char2, char2, char2)
52end
53
54function welcome()
55 setupUI()
56 scp(1,4)
57 sbc(colors.blue)
58 stc(colors.white)
59 p[[Witamy w Instalatorze onzOS 2.0! Ten program przeprowadzi Cie przez proces pobrania oraz zainstalowania systemu Microcraft onzOS 2.0 na Twoim komputerze. Podazaj dalej za poleceniami Instalatora, aby kontynuowac]]
60 scp(1,12)
61 p[[Nacisnij ENTER, aby skonfigurowac komputer jako TERMINAL ODBIORCZY.]]
62 p[[Nacisnij BACKSPACE, aby skonfigurowac komputer jako TERMINAL GLOSUJACY]]
63 local event, key = os.pullEvent("key")
64 p(key)
65 if key == 14 then
66 installVote()
67 elseif key == 28 then
68 installTerminal()
69 else
70 welcome()
71 end
72
73end
74
75function installVote()
76 setupUI()
77 scp(1,h)
78 sbc(colors.gray)
79 stc(colors.white)
80 write("Pobieranie plikow systemowych...")
81 paintutils.drawBox(8,12,43,14,colors.white)
82 scp(1,3)
83 downloadFile(pliki[1], "/startup")
84 scp(9,13)
85 sbc(colors.yellow)
86 stc(colors.yellow)
87 sp("******")
88 s(1)
89 installVoteStage2()
90end
91
92function installTerminal()
93 setupUI()
94 scp(1,h)
95 sbc(colors.gray)
96 stc(colors.white)
97 write("Pobieranie plikow systemowych...")
98 paintutils.drawBox(8,12,43,14,colors.white)
99 scp(1,3)
100 downloadFile(pliki[2], "/startup")
101 scp(9,13)
102 sbc(colors.yellow)
103 stc(colors.yellow)
104 sp("******")
105 s(1)
106 installTerminalStage2()
107end
108
109function installVoteStage2()
110 setupUI()
111 scp(1,h)
112 sbc(colors.gray)
113 stc(colors.white)
114 write("Instalowanie ustawien systemowych...")
115 paintutils.drawBox(8,12,43,14,colors.white)
116 scp(1,3)
117 sbc(colors.blue)
118 stc(colors.blue)
119 r("set shell.allow_disk_startup false")
120 s(1)
121 pfb(1,h,w,h,colors.gray)
122 stc(colors.white)
123 scp(1,h)
124 write("Uruchamianie ponownie...")
125 for i = 9,42 do
126 scp(i,13)
127 sbc(colors.red)
128 stc(colors.red)
129 sp("*")
130 end
131 s(1)
132 re()
133end
134
135function installTerminalStage2()
136 setupUI()
137 scp(1,h)
138 sbc(colors.gray)
139 stc(colors.white)
140 write("Instalowanie ustawien systemowych...")
141 paintutils.drawBox(8,12,43,14,colors.white)
142 scp(1,3)
143 sbc(colors.blue)
144 stc(colors.blue)
145 r("set shell.allow_disk_startup false")
146 s(1)
147 scp(1,4)
148 write("Podaj PROTOKOL, LOGIN i HASLO do TERMINALA GLOSUJACEGO onzOS 2.0.")
149 protocol = read()
150 login = read()
151 password = read()
152 file1 = fs.open(".prot", "w")
153 file1.write(protocol)
154 file1.close()
155 file2 = fs.open(".pass", "w")
156 file2.write(login)
157 file2.write(password)
158 file2.close()
159 pfb(1,h,w,h,colors.gray)
160 stc(colors.white)
161 scp(1,h)
162 write("Uruchamianie ponownie...")
163 for i = 9,42 do
164 scp(i,13)
165 sbc(colors.red)
166 stc(colors.red)
167 sp("*")
168 end
169 s(1)
170 re()
171end
172
173welcome()
174
175