diff options
Diffstat (limited to 'ch_time/api.md')
-rw-r--r-- | ch_time/api.md | 179 |
1 files changed, 179 insertions, 0 deletions
diff --git a/ch_time/api.md b/ch_time/api.md new file mode 100644 index 0000000..946d028 --- /dev/null +++ b/ch_time/api.md @@ -0,0 +1,179 @@ +# Veřejné funkce + +## Nastavení a callbacky + + ch_time.get_time_shift() -> int + ch_time.set_time_shift(new_shift) + +Získá/nastaví časový posun v sekundách, který se přičítá k výstupu os.time() k získání správné aktuální časové známky. +Výchozí posun je 0. + + ch_time.get_time_speed_during_day() + ch_time.set_time_speed_during_day(new_value) + +Získá/nastaví rychlost plynutí herního času během dne. Hodnota může být nil, v takovém případě se při úsvitu rychlost času nemění. +Výchozí hodnota je nil. + + ch_time.get_time_speed_during_night() + ch_time.set_time_speed_during_night(new_value) + +Získá/nastaví rychlost plynutí herního času během noci. Hodnota může být nil, v takovém případě se při soumraku rychlost času nemění. +Výchozí hodnota je nil. + + ch_time.get_rwtime_callback() + ch_time.set_rwtime_callback(new_callback) + +Získá/nastaví callback volaný pro získání aktuálního železničního času. Je-li nil, železniční čas není dostupný. Výchozí hodnota je nil. +Callback se bude volat bez parametrů a musí vracet tabulku v tomto formátu: + +{ + secs = int, -- železniční čas v číselné formě (to_secs()) + string = string, -- železniční čas v textové formě bez cyklu (jen minuty a sekundy) + string_extended = string, -- železniční čas v úplné textové formě (tzn. včetně cyklu) +} + +## Třída "Cas" + +Objekty této třídy vrací funkce ch_time.aktualni_cas() a ch_time.na_strukturu(). Reprezentují konkrétní časový okamžik +v kombinaci s příslušným místním a UTC časem. + + Cas:den_v_tydnu_cislo() -> int + +Vrací den v týdnu jako číslo od 1 (pondělí) do 7 (neděle) + + Cas:den_v_tydnu_nazev() -> string + +Vrací název dne v týdnu malými písmeny ("pondělí" až "neděle") + + Cas:nazev_mesice(pad) -> string + +pad musí být 1, nebo 2. Vrací název měsíce v uvedeném pádě. + + Cas:den_v_roce() -> int + +Vrací den v roce (1 až 366) + + Cas:posun_cislo() -> int + +Vrací posun místního času proti UTC v počtu hodin. + + Cas:posun_text() -> string + +Vrací posun místního času proti UTC v textovém formátu "+HH:MM". + + Cas:znamka32() -> int + +Vrací celý počet sekund od 1. 1. 2020 UTC (může být záporný), v rozsahu typu int32_t. + + Cas:YYYY_MM_DD() -> string + +Vrací místní čas ve formátu "YYYY-MM-DD". + + Cas:YYYY_MM_DD_HH_MM_SS() -> string + +Vrací místní čas ve formátu "YYYY-MM-DD HH:MM:SS". + + Cas:YYYY_MM_DD_HH_MM_SS_ZZZ() -> string + +Vrací místní čas ve formátu "YYYY-MM-DD HH:MM:SS +HH:MM". + + Cas:YYYY_MM_DD_HH_MM_SSZZZ() -> string + +Vrací místní čas ve formátu "YYYY-MM-DD HH:MM:SS+HH:MM". + + Cas:YYYY_MM_DDTHH_MM_SSZZZ() -> string + +Vrací místní čas ve formátu "YYYY-MM-DDTHH:MM:SS+HH:MM" (tzn. zcela bez mezer). + + Cas:HH_MM_SS() + +Vrací místní čas ve formátu "HH:MM:SS". + + Cas:UTC_YYYY_MM_DD() + +Vrací UTC čas ve formátu "YYYY-MM-DD". + + Cas:UTC_YYYY_MM_DD_HH_MM_SS() + +Vrací UTC čas ve formátu "YYYY-MM-DD HH:MM:SS". + + Cas:za_n_sekund(n) + +Vrací nový objekt třídy Cas reprezentující časový okamžik o n sekund později než tento objekt; +n může být záporné, v takovém případě bude okamžik o -n sekund dříve. + +## Funkce pro práci s reálným časem + + ch_time.aktualni_cas() + +Vrací objekt třídy Cas reprezentující aktuální čas. V podstatě jde o synonymum k ch_time.na_strukturu(nil). + + ch_time.time() -> int + +Vrací hodnotu os.time() posunutou o posun zadaný funkcí ch_time.set_time_shift(new_shift). + + ch_time.na_strukturu(time) + +Vrací objekt třídy Cas reprezentující zadaný čas (ve stejném formátu jako výstup ch_time.time()). +Kromě metod nabízí ještě následující datové prvky: + +{ + time = int, -- původní zadaná časová známka + utc = table, -- struktura vrácená příkazem os.date() reprezentující UTC čas; prvky jsou např.: year, month, day, hour, min, sec, yday + lt = lt, -- struktura vrácená příkazem os.date() reprezentující místní čas + rok = int, -- rok (místní) + mesic = int, -- měsíc 1 až 12 (místní) + den = int, -- den 1 až 31 (místní) + hodina = int, -- hodina 0 až 23 (místní) + minuta = int, -- minuta 0 až 59 (místní) + sekunda = int, -- sekunda 0 až 59 (místní) + je_letni_cas = bool, -- indikátor, zda místní čas je letní +} + + ch_time.znamka32(time) + +Vrátí časovou známku v rozsahu typu 'int32_t' jako počet sekund od 1. 1. 2020 UTC. +Rozsah je od 1951-12-13 20:45:53 UTC do 2088-01-19 03:14:07 UTC. +Není-li zadaná časová známka (nil), použije aktuální čas. + +## Funkce pro práci s herním časem + + ch_time.herni_cas() -> table + +Vrací herní čas ve struktuře s následujícími prvky: + +{ + day_count = int -- návratová hodnota funkce minetest.get_day_count() + timeofday = float -- hodnota podle funkce minetest.get_timeofday() + hodina = int (0..23) -- hodina ve hře (celá) + minuta = int (0..59) -- minuta ve hře (celá) + sekunda = int (0..59) -- sekunda ve hře (celá) + daynight_ratio = float + natural_light = int (0..15) + time_speed = float -- návratová hodnota core.settings:get("time_speed") +} + + ch_time.herni_cas_nastavit(h, m, s) -> table + +Nastaví herní čas na zadanou hodnotu uvedenou ve formátu hodin, minut a sekund. +Vrací výstup ch_time.herni_cas() po provedení nastavení. +Součástí nastavení může být změna rychlosti plynutí času. + +# Příkazy v četu + +## /posunčasu + +Syntaxe: + +``/posunčasu <celé_číslo>`` + +Nastaví posun času, volá funkci ch_time.set_time_shift(). Účinek je okamžitý. +Vyžaduje právo *server*. + +## /čas + +Syntaxe: + +``/čas [utc|utc+|m[ístní]|m[ístní]+|h[erní]|h[erní]+|ž[elezniční]|ž[elezniční]+]`` + +Vypíše požadovaný druh času. Není-li druh zadán, vypíše herní čas. |