Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[Stworzone przez kwinto93
- Created by kwinto93
- http://www.youtube.com/user/kwinto93
- --]]
- local ArgStartowe = {...} -- argumenty startowe
- local strona = ArgStartowe[1] -- strona komputera do której podłączony jest monitor
- local rozmiar = tonumber(ArgStartowe[2]) --[[powiekszenie wyswietlanego tekstu; od razu zamieniamy tekst na liczbę za pomoca
- tonumber(string)
- --]]
- local czy24h = ArgStartowe[3] -- czy czas ma byc wyswietlony w formacie 24h czy 12h
- -- sprawdzam argumenty startowe(strona: left, right, top, rozmiar od 0.5 do 5 (takie są wymagania funkcji monitor.setTextScale(x)), czy24h: 24 lub 12)
- if (strona == "left" or strona == "right" or strona == "top" or strona == "back" or strona == "bottom") and (rozmiar >= 0.5 and rozmiar <= 5.0) and (czy24h == "24" or czy24h == "12") then
- -- zamieniam czy24h na wartosc logiczna (textutils.formatTime(czas, czy24h), true - wyswietla 24h, false - 12h)
- if czy24h == "24" then
- czy24h = true;
- else
- czy24h = false;
- end
- -- jesli z zadanej strony komputera jest podłączone jakiekolwiek urządzenie
- if peripheral.isPresent(strona) then
- -- jesli z zadanej strony jest podlaczony monitor
- if peripheral.getType(strona) == "monitor" then
- local monitor = peripheral.wrap(strona) --[[podłącza pod zmienną "monitor", urządzenie z zadanej strony komputera
- http://computercraft.info/wiki/Peripheral_(API)
- --]]
- monitor.setTextScale(rozmiar) -- ustawiamy skale tekstu
- local czas = textutils.formatTime(os.time(),czy24h) --[[zanim wyswietlisz czas, musisz skorzystac z formatowania tekstu
- z api textutils; standardowo czas to ilość sekund (lub milisekund)
- liczona od pewnego punktu w przeszłości (w dekstopie jest to
- umowny rok 1970); tą wielką liczbę trzeba dopiero zamienić na lata,
- miesiące, dni, godziny, minuty i sekundy, formatTime() robi to automatycznie;
- w CC czas jest zwracany przez os.time()
- http://computercraft.info/wiki/Textutils_(API)
- http://computercraft.info/wiki/OS_(API)
- --]]
- local dlugoscTekstu = string.len(czas) --[[metoda string.len(string), zwraca nam ilość znaków zapisanych w zadanej zmiennej, potrzebne nam to będzie
- do wyśrodkowania tekstu na ekranie (musimy wiedzieć jak on jest długi)
- http://www.lua.org/manual/5.1/manual.html#5.4
- --]]
- local szerokoscEkranu, wysokoscEkranu = monitor.getSize() --[[term.getSize() zwraca nam wysokosc i szerokosc aktualnej konsoli lub monitora; aby dowiedzieć się więcej
- o tym jak funkcja może zwracać wiele zmiennych, obejrzyj mój tutorial o funkcjach
- http://computercraft.info/wiki/Term_(API)
- --]]
- local x = ((szerokoscEkranu - dlugoscTekstu) / 2) + 1 --[[wyliczamy początek drukowanego tekstu, jest to odległość od lewej krawędzi ekranu monitora, którą dopasowujemy tak,
- aby tekst był mniej więcej na środku; narysuj sobie na kartce dwa prostokąty, jeden duży, a drugi mniejszy w środku pierwszego;
- następnie zastanów się jak wyznaczyć odległość od lewej i górnej krawędzi, mając do dyspozycji długości boków małego
- i dużego prostokąta
- --]]
- local y = ((wysokoscEkranu - 1) / 2) + 1 -- jak wyżej tylko, że odległość od górnej krawędzi (wysokość litery to zawsze jedna jenostka)
- -- tzw. pętla nieskończona, ponieważ warunek jest zawsze spełniony i pętla będzie się kręcić bez końca
- while true do
- monitor.clear() --czyści wyświetlacz monitora, aby usunąć starą godzinę
- monitor.setCursorPos(x,y) -- ustawia kursor na właściwej, wyliczonej pozycji
- monitor.write(czas) -- wydrukowuje aktualny czas na ekranie
- czas = textutils.formatTime(os.time(),czy24h) -- uaktualnia czas
- os.sleep(0) -- bez oczekiwania trwającego 0 sekund, nasza pętla nieskończona się zakończy :P i wcale to nie jest źle, lecz wręcz dobrze pomyślane ;)
- end
- -- jesli z zadanej strony nie jest podlaczony monitor
- else
- print("Z "..strona.." strony nie jest podlaczony monitor!")
- end
- -- jesli z zadanej strony nie jest podlaczone zadne urzadzenie
- else
- print("Podlacz urzadzenie do "..strona.." strony komputera!")
- end
- -- jesli ktorys z argumentow jest bledny...
- else
- print("Podales bledne argumenty startowe")
- print("Wlasciwy format: zegar strona(left,right,top,back,front,bottom) rozmiar(0.5-5.0) czy24h(24/12)")
- print("np.: zegar left 2 24")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement