diff --git a/README.md b/README.md index 2659357..5d23f79 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,8 @@ Unified Inventory replaces the default survival and creative inventory. * Recipe search function by ingredients * Up to four bags with up to 24 slots each * Home function to teleport - * Trash slot + * Trash slot and refill slot for creative + * Waypoints to keep track of important locations * Lite mode: reduces the item browser width * `minetest.conf` setting `unified_inventory_lite = true` * Mod API for modders: see [mod_api.txt](doc/mod_api.txt) @@ -27,7 +28,7 @@ Unified Inventory replaces the default survival and creative inventory. * Minetest 5.4.0+ * Mod `default` for category filters (contained in Minetest Game) * Mod `farming` for craftable bags (contained in Minetest Game) - * Mod `datastorage` for waypoints (deprecated) + * For waypoint migration: `datastorage` # Licenses diff --git a/init.lua b/init.lua index 8cb56b7..1a07d20 100644 --- a/init.lua +++ b/init.lua @@ -166,9 +166,5 @@ if minetest.settings:get_bool("unified_inventory_bags") ~= false then end dofile(modpath.."/item_names.lua") - -if minetest.get_modpath("datastorage") then - dofile(modpath.."/waypoints.lua") -end - +dofile(modpath.."/waypoints.lua") minetest.log("action", "[unified_inventory] loaded.") diff --git a/locale/unified_inventory.template.tr b/locale/template.txt similarity index 73% rename from locale/unified_inventory.template.tr rename to locale/template.txt index 2ea4fca..fd931d8 100644 --- a/locale/unified_inventory.template.tr +++ b/locale/template.txt @@ -1,54 +1,52 @@ # textdomain: unified_inventory - -# waypoints.lua - -White= -Yellow= -Red= -Green= -Blue= -Waypoints= -Select Waypoint #@1= -Waypoint @1= -Set waypoint to current location= -Make waypoint @1= -invisible= -visible= -@1 display of waypoint coordinates= -Disable= -Enable= -Change color of waypoint display= -Edit waypoint name= -Waypoint active= -Waypoint inactive= -Finish editing= -World position= -Name= -HUD text color= - -# group.lua - +Mixing= +Cooking= +Digging= +Bags= +Bag @1= +Small Bag= +Medium Bag= +Large Bag= +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = - -# register.lua - +Scroll categories left= +Scroll categories right= +Search= +Reset search and display everything= +First page= +Back three pages= +Back one page= +Forward one page= +Forward three pages= +Last page= +No matching items= +No matches.= +Page= +@1 of @2= +Filter= Can use the creative inventory= Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid= Crafting Guide= Set home position= Home position set to: @1= -You don't have the \"home\" privilege!= +You don't have the "home" privilege!= Go home= Set time to day= -Set time to night= Time of day set to 6am= -Time of day set to 9pm= You don't have the settime privilege!= +Set time to night= +Time of day set to 9pm= Clear inventory= +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!= -This button has been disabled outside= -Crafting= Trash:= Refill:= Any item belonging to the @1 group= @@ -65,36 +63,28 @@ Show previous recipe= Show previous usage= @1 (@2)= Give me:= -This recipe is too@nlarge to be displayed.= +This recipe is too@@large to be displayed.= To craft grid:= All= - -# api.lua - -Mixing= -Cooking= -Digging= - -# internal.lua - -First page= -Back three pages= -Back one page= -Forward one page= -Forward three pages= -Last page= -Search= -Reset search and display everything= -No matching items= -No matches.= -Page= -@1 of @2= -Filter= - -# bags.lua - -Bags= -Bag @1= -Small Bag= -Medium Bag= -Large Bag= +Crafting= +White= +Yellow= +Red= +Green= +Blue= +Waypoints= +Select Waypoint #@1= +Waypoint @1= +Set waypoint to current location= +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= +Change color of waypoint display= +Edit waypoint name= +Waypoint active= +Waypoint inactive= +Finish editing= +World position= +Name= +HUD text color= diff --git a/locale/unified_inventory.de.tr b/locale/unified_inventory.de.tr index e2a05be..474049c 100644 --- a/locale/unified_inventory.de.tr +++ b/locale/unified_inventory.de.tr @@ -1,5 +1,4 @@ # textdomain: unified_inventory -Crafting=Fertigung Mixing=Mischen Cooking=Kochen Digging=Graben @@ -8,21 +7,32 @@ Bag @1=Tasche @1 Small Bag=Kleine Tasche Medium Bag=Mittelgroße Tasche Large Bag=Große Tasche +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = und +Scroll categories left= +Scroll categories right= +Search=Suchen +Reset search and display everything=Suche zurücksetzen und alles anzeigen First page=Erste Seite Back three pages=3 Seiten zurückblättern Back one page=1 Seite zurückblättern Forward one page=1 Seite vorblättern Forward three pages=3 Seiten vorblättern Last page=Letzte Seite -Search=Suchen -Reset search and display everything=Suche zurücksetzen und alles anzeigen No matching items=Keine passenden Gegenstände No matches.=Keine Treffer Page=Seite @1 of @2=@1 von @2 Filter=Filter Can use the creative inventory=Kann das Kreativinventar nutzen +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Zwingt Unified Inventory, im Vollmodus angezeigt zu werden, wenn der Minimalmodus global eingestellt ist Crafting Grid=Fertigungsraster Crafting Guide=Fertigungsführer Set home position=Heimatposition setzen @@ -35,6 +45,7 @@ You don't have the settime privilege!=Du hast das „settime“-Privileg nicht! Set time to night=Zur Nachtzeit wechseln Time of day set to 9pm=Tageszeit auf 21 Uhr gesetzt Clear inventory=Inventar leeren +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Inventar geleert! Trash:=Müll: Refill:=Nachfüllen: @@ -50,9 +61,12 @@ Show next recipe=Nächstes Rezept zeigen Show next usage=Nächste Verwendung zeigen Show previous recipe=Vorheriges Rezept zeigen Show previous usage=Vorherige Verwendung zeigen +@1 (@2)= Give me:=Gib mir: +This recipe is too@@large to be displayed.= To craft grid:=Ins Fertigungsraster: All=Alles +Crafting=Fertigung White=Weiß Yellow=Gelb Red=Rot @@ -62,12 +76,10 @@ Waypoints=Wegpunkte Select Waypoint #@1=Wegpunkt Nr. @1 auswählen Waypoint @1=Wegpunkt Nr. @1 Set waypoint to current location=Setze Wegpunkt zur derzeitigen Position -invisible=unsichtbar -visible=sichtbar -Make waypoint @1=Wegpunkt @1 machen -Disable=ausschalten -Enable=einschalten -@1 display of waypoint coordinates=Anzeige der Wegpunktkoordinaten @1 +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Farbe der Darstellung der Wegpunkte ändern Edit waypoint name=Name des Wegpunkts ändern Waypoint active=Wegpunkt aktiv @@ -76,4 +88,13 @@ Finish editing=Bearbeitung abschließen World position=Weltposition Name=Name HUD text color=HUD-Textfarbe -Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Zwingt Unified Inventory, im Vollmodus angezeigt zu werden, wenn der Minimalmodus global eingestellt ist + + +##### not used anymore ##### + +invisible=unsichtbar +visible=sichtbar +Make waypoint @1=Wegpunkt @1 machen +Disable=ausschalten +Enable=einschalten +@1 display of waypoint coordinates=Anzeige der Wegpunktkoordinaten @1 diff --git a/locale/unified_inventory.es.tr b/locale/unified_inventory.es.tr index 18b6c77..85a794e 100644 --- a/locale/unified_inventory.es.tr +++ b/locale/unified_inventory.es.tr @@ -1,54 +1,57 @@ # textdomain: unified_inventory - -# waypoints.lua - -White=Blanco -Yellow=Amarillo -Red=Rojo -Green=Verde -Blue=Azul -Waypoints=Puntos -Select Waypoint #@1=Seleccionar Punto #@1 -Waypoint @1=Punto @1 -Set waypoint to current location=Establecer el punto a la ubicación actual -Make waypoint @1=Hacer punto @1 -invisible=invisible -visible=visible -@1 display of waypoint coordinates=Visualizar coordenadas del punto @1 -Disable=Deshabilitado -Enable=Habilitado -Change color of waypoint display=Cambiar el color del punto -Edit waypoint name=Editar nombre del punto -Waypoint active=Punto activo -Waypoint inactive=Punto inactivo -Finish editing=Terminar edición -World position=Posición en el mundo -Name=Nombre -HUD text color=Color del texto de la Interfaz - +# api.lua +Mixing=Mezclar +Cooking=Hornear +Digging=Recoger +# bags.lua +Bags=Bolsos +Bag @1=Bolso @1 +Small Bag=Bolso Pequeño +Medium Bag=Bolso Mediano +Large Bag=Bolso Grande +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= # group.lua - and = y - +Scroll categories left= +Scroll categories right= +Search=Buscar +Reset search and display everything=Limpiar la busqueda y mostrar todo +# internal.lua +First page=Primera página +Back three pages=Volver tres páginas +Back one page=Volver una página +Forward one page=Avanzar una página +Forward three pages=Avanzar tres páginas +Last page=Ultima Pagina +No matching items=No se encontraron elementos +No matches.=No hay resultados. +Page=Página +@1 of @2=@1 de @2 +Filter=Filtro # register.lua - Can use the creative inventory=Puede usar el inventario creativo Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Obliga al Inventario Unificado a mostrarse en modo Completo si el modo Simple está configurado globalmente Crafting Grid=Cuadricula de Elaboración Crafting Guide=Guía de Elaboración Set home position=Establecer posición de la casa Home position set to: @1=Posición de la casa cambiada a: @1 -You don't have the \"home\" privilege!=¡No tienes el privilegio \"home\"! +You don't have the "home" privilege!= Go home=Ir a casa Set time to day=Cambiar a dia -Set time to night=Cambiar a noche Time of day set to 6am=Hora del día cambiada a 6 AM -Time of day set to 9pm=Hora del día cambiada a 9 PM You don't have the settime privilege!=¡No tienes el privilegio "settime"! +Set time to night=Cambiar a noche +Time of day set to 9pm=Hora del día cambiada a 9 PM Clear inventory=Limpiar inventario +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=¡Inventario limpio! -This button has been disabled outside=Este botón ha sido deshabilitado -Crafting=Elaboración Trash:=Basura: Refill:=Rellenar: Any item belonging to the @1 group=Cualquier elemento que pertenezca al grupo @1 @@ -65,36 +68,41 @@ Show previous recipe=Mostrar la receta anterior Show previous usage=Mostrar el uso anterior @1 (@2)=@1 (@2) Give me:=Dame: -This recipe is too@nlarge to be displayed.=Esta receta es demasiado@ngrande para ser mostrada. +This recipe is too@@large to be displayed.= To craft grid:=Construir: All=Todos +Crafting=Elaboración +White=Blanco +Yellow=Amarillo +Red=Rojo +Green=Verde +Blue=Azul +Waypoints=Puntos +Select Waypoint #@1=Seleccionar Punto #@1 +Waypoint @1=Punto @1 +Set waypoint to current location=Establecer el punto a la ubicación actual +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= +Change color of waypoint display=Cambiar el color del punto +Edit waypoint name=Editar nombre del punto +Waypoint active=Punto activo +Waypoint inactive=Punto inactivo +Finish editing=Terminar edición +World position=Posición en el mundo +Name=Nombre +HUD text color=Color del texto de la Interfaz -# api.lua -Mixing=Mezclar -Cooking=Hornear -Digging=Recoger +##### not used anymore ##### -# internal.lua - -First page=Primera página -Back three pages=Volver tres páginas -Back one page=Volver una página -Forward one page=Avanzar una página -Forward three pages=Avanzar tres páginas -Last page=Ultima Pagina -Search=Buscar -Reset search and display everything=Limpiar la busqueda y mostrar todo -No matching items=No se encontraron elementos -No matches.=No hay resultados. -Page=Página -@1 of @2=@1 de @2 -Filter=Filtro - -# bags.lua - -Bags=Bolsos -Bag @1=Bolso @1 -Small Bag=Bolso Pequeño -Medium Bag=Bolso Mediano -Large Bag=Bolso Grande +Make waypoint @1=Hacer punto @1 +invisible=invisible +visible=visible +@1 display of waypoint coordinates=Visualizar coordenadas del punto @1 +Disable=Deshabilitado +Enable=Habilitado +You don't have the \"home\" privilege!=¡No tienes el privilegio \"home\"! +This button has been disabled outside=Este botón ha sido deshabilitado +This recipe is too@nlarge to be displayed.=Esta receta es demasiado@ngrande para ser mostrada. diff --git a/locale/unified_inventory.fr.tr b/locale/unified_inventory.fr.tr index 5367ddb..96d8c3f 100644 --- a/locale/unified_inventory.fr.tr +++ b/locale/unified_inventory.fr.tr @@ -1,5 +1,5 @@ # textdomain: unified_inventory -Crafting=Création +Mixing= Cooking=Cuisson Digging=Creuser Bags=Sacs @@ -7,35 +7,66 @@ Bag @1=Sac @1 Small Bag=Petit sac Medium Bag=Sac moyen Large Bag=Grand sac +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = et +Scroll categories left= +Scroll categories right= +Search=Rechercher +Reset search and display everything= First page=1ère page Back three pages=3 pages en arrière Back one page=Page précédente Forward one page=Page suivante Forward three pages=3 pages en avant Last page=Dernière page -Search=Rechercher No matching items=Aucun élément correspondant No matches.=Aucun match Page=Page @1 of @2=@1 de @2 Filter=Filtre Can use the creative inventory=Vous pouvez utiliser l'inventaire créatif +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=Grille de création Crafting Guide=Guide de création Set home position=Position dans le monde Home position set to: @1=Position de votre base fixée à: @1 You don't have the "home" privilege!=Vous n'avez pas le privilège "home"! +Go home= +Set time to day= Time of day set to 6am=Heure fixée à 6h You don't have the settime privilege!=Vous n'avez pas le privilège "settime"! +Set time to night= Time of day set to 9pm=Heure fixée à 21h +Clear inventory= +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Inventaire vidé ! Trash:=Poubelle : Refill:=Remplir : +Any item belonging to the @1 group= +Any item belonging to the groups @1= Recipe @1 of @2=Recette @1 de @2 +Usage @1 of @2= +No recipes= +No usages= Result=Résultat +Ingredient= +Show next recipe= +Show next usage= +Show previous recipe= +Show previous usage= +@1 (@2)= +Give me:= +This recipe is too@@large to be displayed.= To craft grid:=Sur de création: All=Tout +Crafting=Création White=Blanc Yellow=Jaune Red=Rouge @@ -45,8 +76,10 @@ Waypoints=Point de passage Select Waypoint #@1=Choisir un point de passage #@1 Waypoint @1=Point de passage @1 Set waypoint to current location=Marquer un point de passage à la position actuelle -Make waypoint @1=Rendre @1 le point de passage -@1 display of waypoint coordinates=@1 montrer les coordonnées des points de passages +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Changer la couleur du point de passage Edit waypoint name=Editer le nom du point de passage Waypoint active=Point de passage actif @@ -55,3 +88,9 @@ Finish editing=Terminer l'édition World position=Position dans le monde Name=Nom HUD text color=Couleur de texte du HUD + + +##### not used anymore ##### + +Make waypoint @1=Rendre @1 le point de passage +@1 display of waypoint coordinates=@1 montrer les coordonnées des points de passages diff --git a/locale/unified_inventory.it.tr b/locale/unified_inventory.it.tr index 1bf7660..c30d9e0 100644 --- a/locale/unified_inventory.it.tr +++ b/locale/unified_inventory.it.tr @@ -1,5 +1,4 @@ # textdomain: unified_inventory -Crafting=Assemblaggio Mixing=Unione Cooking=Cottura Digging=Scavo @@ -8,21 +7,32 @@ Bag @1=Borsa @1 Small Bag=Borsa piccola Medium Bag=Borsa media Large Bag=Borsa grande +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = e +Scroll categories left= +Scroll categories right= +Search=Cerca +Reset search and display everything=Azzera la ricerca e mostra tutto First page=Prima pagina Back three pages=Indietro di tre pagine Back one page=Indietro di una pagina Forward one page=Avanti di una pagina Forward three pages=Avanti di tre pagine Last page=Ultima pagina -Search=Cerca -Reset search and display everything=Azzera la ricerca e mostra tutto No matching items=Nessun oggetto corrispondente No matches.=Nessuna corrispondenza. Page=Pagina @1 of @2=@1 di @2 Filter=Filtro Can use the creative inventory=Può usare l'inventario creativo +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Forza la visualizzazione di Unified Inventory in modalità completa se è configurata globalmente la visualizzazione semplice Crafting Grid=Griglia di assemblaggio Crafting Guide=Guida di assemblaggio Set home position=Imposta la residenza @@ -35,6 +45,7 @@ You don't have the settime privilege!=Non hai il privilegio "time"! Set time to night=Imposta l'orario sulla notte Time of day set to 9pm=Orario impostato sulle 9am Clear inventory=Ripulisci l'inventario +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Inventario ripulito! Trash:=Butta: Refill:=Riempi: @@ -50,9 +61,12 @@ Show next recipe=Mostra la prossima ricetta Show next usage=Mostra il prossimo utilizzo Show previous recipe=Mostra la ricetta precedente Show previous usage=Mostra l'utilizzo precedente +@1 (@2)= Give me:=Dammi: +This recipe is too@@large to be displayed.= To craft grid:=Alla griglia di assemblaggio: All=Tutto +Crafting=Assemblaggio White=Bianco Yellow=Giallo Red=Rosso @@ -62,12 +76,10 @@ Waypoints=Tappe Select Waypoint #@1=Seleziona tappa n°@1 Waypoint @1=Tappa @1 Set waypoint to current location=Imposta tappa alla posizione attuale -invisible=invisibile -visible=visibile -Make waypoint @1=Crea tappa @1 -Disable=Disabilita -Enable=Abilita -@1 display of waypoint coordinates=@1 la visualizzazione delle coordinate della tappa +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Modifica il colore della visualizzazione della tappa Edit waypoint name=Modifica il nome della tappa Waypoint active=Tappa attiva @@ -76,4 +88,13 @@ Finish editing=Termina la modifica World position=Posizione del mondo Name=Nome HUD text color=Colore del testo del visore -Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally=Forza la visualizzazione di Unified Inventory in modalità completa se è configurata globalmente la visualizzazione semplice + + +##### not used anymore ##### + +invisible=invisibile +visible=visibile +Make waypoint @1=Crea tappa @1 +Disable=Disabilita +Enable=Abilita +@1 display of waypoint coordinates=@1 la visualizzazione delle coordinate della tappa diff --git a/locale/unified_inventory.ms.tr b/locale/unified_inventory.ms.tr index 25fc853..be4eb5e 100644 --- a/locale/unified_inventory.ms.tr +++ b/locale/unified_inventory.ms.tr @@ -1,5 +1,4 @@ # textdomain: unified_inventory -Crafting=Pertukangan Mixing=Pencampuran Cooking=Pemasakan Digging=Penggalian @@ -8,21 +7,32 @@ Bag @1=Beg @1 Small Bag=Beg Kecil Medium Bag=Beg Sederhana Large Bag=Beg Besar +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = dan +Scroll categories left= +Scroll categories right= +Search=Cari +Reset search and display everything=Set semula carian dan tunjukkan semua benda First page=Halaman pertama Back three pages=Tiga halaman sebelumnya Back one page=Halaman sebelumnya Forward one page=Halaman seterusnya Forward three pages=Tiga halaman seterusnya Last page=Halaman terakhir -Search=Cari -Reset search and display everything=Set semula carian dan tunjukkan semua benda No matching items=Tiada item sepadan No matches.=Tiada padanan. Page=Halaman @1 of @2=@1 drpd @2 Filter=Tapis Can use the creative inventory=Boleh guna inventori kreatif +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=Grid Pertukangan Crafting Guide=Panduan Pertukangan Set home position=Tetapkan kedudukan rumah @@ -35,6 +45,7 @@ You don't have the settime privilege!=Anda tidak ada keistimewaan settime! Set time to night=Tetapkan masa jadi malam Time of day set to 9pm=Masa ditetapkan ke 9 malam Clear inventory=Kosongkan inventori +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Inventori dikosongkan! Trash:=Buang: Refill:=Isi balik: @@ -52,7 +63,10 @@ Show previous recipe=Tunjuk resipi sebelumnya Show previous usage=Tunjuk kegunaan sebelumnya @1 (@2)=@1 (@2) Give me:=Beri saya: +This recipe is too@@large to be displayed.= To craft grid:=Ke grid pertukangan: +All= +Crafting=Pertukangan White=Putih Yellow=Kuning Red=Merah @@ -62,12 +76,10 @@ Waypoints=Titik Arah Select Waypoint #@1=Pilih Titik Arah #@1 Waypoint @1=Titik Arah @1 Set waypoint to current location=Tetapkan titik arah ke lokasi semasa -invisible=Sembunyikan -visible=Paparkan -Make waypoint @1=@1 titik arah -Disable=Sembunyikan -Enable=Paparkan -@1 display of waypoint coordinates=@1 koordinat untuk titik arah +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Tukar warna paparan titik arah Edit waypoint name=Edit nama titik arah Waypoint active=Titik arah aktif @@ -76,3 +88,13 @@ Finish editing=Selesai edit World position=Kedudukan dunia Name=Nama HUD text color=Warna tulisan HUD + + +##### not used anymore ##### + +invisible=Sembunyikan +visible=Paparkan +Make waypoint @1=@1 titik arah +Disable=Sembunyikan +Enable=Paparkan +@1 display of waypoint coordinates=@1 koordinat untuk titik arah diff --git a/locale/unified_inventory.pl.tr b/locale/unified_inventory.pl.tr index 19121d8..69d39e3 100644 --- a/locale/unified_inventory.pl.tr +++ b/locale/unified_inventory.pl.tr @@ -1,22 +1,40 @@ # textdomain: unified_inventory +Mixing= +Cooking= +Digging= Bags=Plecaki Bag @1=Plecak @1 Small Bag=Maly plecak Medium Bag=Sredni plecak Large Bag=Duzy plecak +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = i +Scroll categories left= +Scroll categories right= +Search=Szukaj +Reset search and display everything= First page=Pierwsza strona Back three pages=3 strony w tyl Back one page=1 strona w tyl Forward one page=1 strona do przodu Forward three pages=3 strony do przodu Last page=Ostatnia strona -Search=Szukaj No matching items=Brak pasujacych przedmiotow No matches.=Brak wyników Page=Strona @1 of @2=@1 z @2 Filter=Filtr +Can use the creative inventory= +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= +Crafting Grid= +Crafting Guide= Set home position=Ustaw pozycję wyjściową Home position set to: @1=Pozycja domowa ustawiona na: @1 You don't have the "home" privilege!=Nie masz uprawnien do zmiany czasu "home"! @@ -27,17 +45,28 @@ You don't have the settime privilege!=Nie masz uprawnien do zmiany czasu "settim Set time to night=Ustaw czas na noc Time of day set to 9pm=Czas ustawiony na 21:00 Clear inventory=Wyczyść zapasy +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Zapasy zostały wyczyszczone! Trash:=Smietnik: Refill:=Uzupelnianie: +Any item belonging to the @1 group= +Any item belonging to the groups @1= Recipe @1 of @2=Recepta @1 z @2 Usage @1 of @2=Użycie @1 z @2 No recipes=Brak recepty No usages=Bez użycia Result=Wynik Ingredient=Składnik +Show next recipe= +Show next usage= +Show previous recipe= +Show previous usage= +@1 (@2)= Give me:=Daj mi: +This recipe is too@@large to be displayed.= +To craft grid:= All=Wszystko +Crafting= White=Bialy Yellow=Zolty Red=Czerwony @@ -47,10 +76,10 @@ Waypoints=Punkty orientacyjne Select Waypoint #@1=Wybierz punkt #@1 Waypoint @1=Punkty orientacyjne @1 Set waypoint to current location=Ustaw punkt orientacyjny na biezacej pozycji -invisible=niewidzialny -visible=widomy -Make waypoint @1=Robić punkt @1 -@1 display of waypoint coordinates=@1 koordynatow punktu +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Zmien kolor punktu Edit waypoint name=Edytuj nazwe punktu Waypoint active=Punkt wlaczony @@ -59,3 +88,11 @@ Finish editing=Zakoncz edycje World position=Pozycja Name=Nazwa HUD text color=Kolor tekstu HUD + + +##### not used anymore ##### + +invisible=niewidzialny +visible=widomy +Make waypoint @1=Robić punkt @1 +@1 display of waypoint coordinates=@1 koordynatow punktu diff --git a/locale/unified_inventory.pt.tr b/locale/unified_inventory.pt.tr index 3b0b902..5fedbc0 100644 --- a/locale/unified_inventory.pt.tr +++ b/locale/unified_inventory.pt.tr @@ -1,5 +1,4 @@ # textdomain: unified_inventory -Crafting=Artesanato Mixing=Muistura Cooking=Cozimento Digging=Escavação @@ -8,21 +7,32 @@ Bag @1=Bolsa @1 Small Bag=Bolsa Pequena Medium Bag=Bolsa Média Large Bag=Bolsa Grande +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = e +Scroll categories left= +Scroll categories right= +Search=Pesquisar +Reset search and display everything=Redefinir pesquisa e exibir tudo First page=Primeira Página Back three pages=Voltar 3 Páginas Back one page=Voltar 1 Página Forward one page=Avançar 1 Página Forward three pages=Avançar 3 Páginas Last page=Ultima Página -Search=Pesquisar -Reset search and display everything=Redefinir pesquisa e exibir tudo No matching items=Nenhum item correspondente No matches.=Sem correspondências Page=Página @1 of @2=@1 de @2 Filter=Filtro Can use the creative inventory=Pode usar o inventário do criativo +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=Grade de Artesanato Crafting Guide=Guia de Artesanato Set home position=Definir posição de casa @@ -35,6 +45,7 @@ You don't have the settime privilege!=Você não tem o privilégio de "settime"! Set time to night=Definir turno para noite Time of day set to 9pm=Hora do dia ajustada para 21h Clear inventory=Limpar Inventário +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Inventário Apagado! Trash:=Lixo: Refill:=Recarga: @@ -50,9 +61,12 @@ Show next recipe=Exibir Próxima Receita Show next usage=Mostrar Próxima Utilização Show previous recipe=Exibir Receita Anterior Show previous usage=Exibir Utilização Anterior +@1 (@2)= Give me:=Gerado: +This recipe is too@@large to be displayed.= To craft grid:=Para Grade de Artesanato All=MAX +Crafting=Artesanato White=Branco Yellow=Amarelo Red=Vermelho @@ -62,10 +76,10 @@ Waypoints=Apontador de Direção Select Waypoint #@1=Seleção de Apontador de Direção #@1 Waypoint @1=Apontador de Direção @1 Set waypoint to current location=Configurar localização atual do Apontador de Direção -invisible=invisível -visible=visível -Make waypoint @1=Fazer Apontador de Direção @1 -@1 display of waypoint coordinates=@1 exibição de coordenadas de Fazer Apontador de Direção +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Mudar cor exibida do Apontador de Direção Edit waypoint name=Editar Nome de Apontador de Direção Waypoint active=Apontador de Direção Ativo @@ -74,3 +88,11 @@ Finish editing=Edição Finalizada World position=Posição Mundial Name=Nome HUD text color=Cor de HUD + + +##### not used anymore ##### + +invisible=invisível +visible=visível +Make waypoint @1=Fazer Apontador de Direção @1 +@1 display of waypoint coordinates=@1 exibição de coordenadas de Fazer Apontador de Direção diff --git a/locale/unified_inventory.ru.tr b/locale/unified_inventory.ru.tr index f2a2300..2e3489c 100644 --- a/locale/unified_inventory.ru.tr +++ b/locale/unified_inventory.ru.tr @@ -1,5 +1,4 @@ # textdomain: unified_inventory -Crafting=Крафт Mixing=Мешать Cooking=Варить Digging=Копать @@ -8,21 +7,32 @@ Bag @1=Сумка @1 Small Bag=Малая сумка Medium Bag=Средняя сумка Large Bag=Большая сумка +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = и +Scroll categories left= +Scroll categories right= +Search=Поиск +Reset search and display everything=Сброс поиска, показать всё First page=Первая страница Back three pages=3 страницы назад Back one page=1 страницу назад Forward one page=1 страницу вперёд Forward three pages=3 страницы вперёд Last page=Последняя страница -Search=Поиск -Reset search and display everything=Сброс поиска, показать всё No matching items=Нет подходящих элементов No matches.=Ничего не найдено Page=Страница @1 of @2=@1 из @2 Filter=Фильтр Can use the creative inventory=Можно использовать инвентарь творческого режима +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=Решетка крафта Crafting Guide=Книга рецептов Set home position=Установить позицию дома @@ -35,6 +45,7 @@ You don't have the settime privilege!=Вам не разрешено устан Set time to night=Ночь Time of day set to 9pm=Установлено время 9 вечера Clear inventory=Очистить инвентарь +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Инвентарь очищен! Trash:=Мусор: Refill:=Наполнить: @@ -50,9 +61,12 @@ Show next recipe=Следующий рецепт Show next usage=Следующее использование Show previous recipe=Прошлый рецепт Show previous usage=Прошлая страница +@1 (@2)= Give me:=Дай мне: +This recipe is too@@large to be displayed.= To craft grid:=На решeтку крафта: All=Все +Crafting=Крафт White=Белый Yellow=Желтый Red=Красный @@ -62,12 +76,10 @@ Waypoints=Путевые точки Select Waypoint #@1=Выбрать путевую точку №@1 Waypoint @1=Путевая точка @1 Set waypoint to current location=Установить путевую точку по текущей позиции -invisible=невидимой -visible=видимой -Make waypoint @1=Сделать путевую точку @1 -Disable=Выключить -Enable=Включить -@1 display of waypoint coordinates=@1 показ координат путевых точек +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Поменять цвет путевой точки Edit waypoint name=Переименовать путевую точку Waypoint active=Путевая точка включена @@ -76,3 +88,13 @@ Finish editing=Закончить редакцию World position=Позиция мира Name=Имя HUD text color=Цвет текста HUDа + + +##### not used anymore ##### + +invisible=невидимой +visible=видимой +Make waypoint @1=Сделать путевую точку @1 +Disable=Выключить +Enable=Включить +@1 display of waypoint coordinates=@1 показ координат путевых точек diff --git a/locale/unified_inventory.tr.tr b/locale/unified_inventory.tr.tr index 93246cc..b4e15b8 100644 --- a/locale/unified_inventory.tr.tr +++ b/locale/unified_inventory.tr.tr @@ -1,5 +1,4 @@ # textdomain: unified_inventory -Crafting=Üretim Mixing=Karıştırma Cooking=Pişirme Digging=Kazma @@ -8,20 +7,32 @@ Bag @1=@1. Çanta Small Bag=Küçük Çanta Medium Bag=Çanta Large Bag=Büyük Çanta +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = ve +Scroll categories left= +Scroll categories right= +Search=Ara +Reset search and display everything= First page=İlk Sayfa Back three pages=3 Sayfa Gerile Back one page=Geri Forward one page=İleri Forward three pages=3 Sayfa İlerile Last page=Son Sayfa -Search=Ara No matching items=Eşleşme yok No matches.=Eşleşme yok Page=Sayfa @1 of @2=@1 dan @2 Filter=Süzgeç Can use the creative inventory=Yaratıcı envanteri kullanabilir +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=Üretim tablosu Crafting Guide=Kılavuz Set home position=Set ev pozisyon @@ -33,19 +44,29 @@ Time of day set to 6am=Saat 06:00 olarak ayarlandı You don't have the settime privilege!="settime" yetkiniz yok! Set time to night=Geceye zaman ayarla Time of day set to 9pm=Saat 19:00 olarak ayarlandı -msgid ""=Yaratıcı modu dışında iken bu tuş kullanılamaz. +Clear inventory= +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= Inventory cleared!=Envanter temizlendi! Trash:=Çöp Refill:=Doldur +Any item belonging to the @1 group= +Any item belonging to the groups @1= Recipe @1 of @2=@1 dan @2 tarifi Usage @1 of @2=Kullanım @1/@2 No recipes=Tarifi yok No usages=Kullanım yok Result=Çıktı Ingredient=Bileşen +Show next recipe= +Show next usage= +Show previous recipe= +Show previous usage= +@1 (@2)= Give me:=Ver bana: +This recipe is too@@large to be displayed.= To craft grid:=Üretim tablosuna kopyala All=Tümü +Crafting=Üretim White=Beyaz Yellow=Sarı Red=Kırmızı @@ -55,10 +76,10 @@ Waypoints=Konum Noktaları Select Waypoint #@1=#@1 konum noktası seç Waypoint @1=@1 Konum Noktaları Set waypoint to current location=Bulunduğun noktayı işaretle -invisible=görünmez -visible=görünür -Make waypoint @1=Yol noktası @1 -@1 display of waypoint coordinates=Yol noktası koordinatlarının görüntülenmesini @1 +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=Konum Gösterge Rengi Edit waypoint name=Konum Noktasını Düzenle Waypoint active=Konum Etkin @@ -67,3 +88,12 @@ Finish editing=Düzenleme bitti World position=Dünya konumu Name=İsim HUD text color=Metin rengi + + +##### not used anymore ##### + +msgid ""=Yaratıcı modu dışında iken bu tuş kullanılamaz. +invisible=görünmez +visible=görünür +Make waypoint @1=Yol noktası @1 +@1 display of waypoint coordinates=Yol noktası koordinatlarının görüntülenmesini @1 diff --git a/locale/unified_inventory.zh_CN.tr b/locale/unified_inventory.zh_CN.tr index 30e15e3..595a492 100644 --- a/locale/unified_inventory.zh_CN.tr +++ b/locale/unified_inventory.zh_CN.tr @@ -1,8 +1,4 @@ # textdomain: unified_inventory -# traslation by: IFRFSX(BingFengFSX) -#Email: IFRFSX@Protonmail.com - -Crafting=合成 Mixing=混合 Cooking=烹饪 Digging=挖出 @@ -11,20 +7,32 @@ Bag @1=背包@1 Small Bag=小背包 Medium Bag=中背包 Large Bag=大背包 +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = 和 +Scroll categories left= +Scroll categories right= +Search=搜索 +Reset search and display everything=重置搜索并显示所有物品 First page=第一页 Back three pages=后退三页 Back one page=后退一页 Forward one page=前进一页 Forward three pages=前进三页 Last page=最后一页 -Search=搜索 No matching items=没有匹配物品 No matches.=没有匹配 Page=页面 @1 of @2=第@1页,共@2页 Filter=过滤器 Can use the creative inventory=可以使用创造背包 +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=合成表 Crafting Guide=合成指南 Set home position=设置家的位置 @@ -36,21 +44,29 @@ Time of day set to 6am=时间设置到早晨6点 You don't have the settime privilege!=你没有“settime”权限! Set time to night=设置时间到晚上 Time of day set to 9pm=时间设置到晚上9点 - -Inventory cleared!=清空背包 Clear inventory=清空背包 - +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= +Inventory cleared!=清空背包 Trash:=丢弃: Refill:=填满: +Any item belonging to the @1 group=属于@1组的任何项目 +Any item belonging to the groups @1=属于组@1的任何项目 Recipe @1 of @2=第@1配方,共@2个 Usage @1 of @2=第@1用法,共@2个 No recipes=没有配方 No usages=没有用法 Result=结果 Ingredient=原料 +Show next recipe= +Show next usage= +Show previous recipe= +Show previous usage= +@1 (@2)= Give me:=给予: +This recipe is too@@large to be displayed.= To craft grid:=填充物品到合成表 All=全部 +Crafting=合成 White=白 Yellow=黄 Red=红 @@ -60,10 +76,10 @@ Waypoints=航路点 Select Waypoint #@1=查询航路点 #@1 Waypoint @1=航路点 @1 Set waypoint to current location=将航路点设置到当前位置 -invisible=不可见的 -visible=可见的 -Make waypoint @1=设置航路点 @1 -@1 display of waypoint coordinates=显示航路点@1坐标 +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=改变航路点显示的颜色 Edit waypoint name=编辑航路点名称 Waypoint active=航路点已激活 @@ -73,7 +89,10 @@ World position=世界位置 Name=名称 HUD text color=HUD文本颜色 -Reset search and display everything=重置搜索并显示所有物品 -Any item belonging to the @1 group=属于@1组的任何项目 -Any item belonging to the groups @1=属于组@1的任何项目 +##### not used anymore ##### + +invisible=不可见的 +visible=可见的 +Make waypoint @1=设置航路点 @1 +@1 display of waypoint coordinates=显示航路点@1坐标 diff --git a/locale/unified_inventory.zh_TW.tr b/locale/unified_inventory.zh_TW.tr index 3e8d1a1..f41190c 100644 --- a/locale/unified_inventory.zh_TW.tr +++ b/locale/unified_inventory.zh_TW.tr @@ -1,8 +1,4 @@ # textdomain: unified_inventory -# traslation by: IFRFSX(BingFengFSX) -#Email: IFRFSX@Protonmail.com - -Crafting=合成 Mixing=混合 Cooking=烹飪 Digging=挖出 @@ -11,20 +7,32 @@ Bag @1=揹包@1 Small Bag=小揹包 Medium Bag=中揹包 Large Bag=大揹包 +All Items= +Misc. Items= +Plant Life= +Building Materials= +Tools= +Minerals and Metals= +Environment and Worldgen= +Lighting= and = 和 +Scroll categories left= +Scroll categories right= +Search=搜索 +Reset search and display everything=重置搜索並顯示所有物品 First page=第一頁 Back three pages=後退三頁 Back one page=後退一頁 Forward one page=前進一頁 Forward three pages=前進三頁 Last page=最後一頁 -Search=搜索 No matching items=沒有匹配物品 No matches.=沒有匹配 Page=頁面 @1 of @2=第@1頁,共@2頁 Filter=過濾器 Can use the creative inventory=可以使用創造揹包 +Forces Unified Inventory to be displayed in Full mode if Lite mode is configured globally= Crafting Grid=合成表 Crafting Guide=合成指南 Set home position=設置家的位置 @@ -36,21 +44,29 @@ Time of day set to 6am=時間設置到早晨6點 You don't have the settime privilege!=你沒有“settime”權限! Set time to night=設置時間到晚上 Time of day set to 9pm=時間設置到晚上9點 - -Inventory cleared!=清空揹包 Clear inventory=清空揹包 - +This button has been disabled outside of creative mode to prevent accidental inventory trashing.@nUse the trash slot instead.= +Inventory cleared!=清空揹包 Trash:=丟棄: Refill:=填滿: +Any item belonging to the @1 group=屬於@1組的任何項目 +Any item belonging to the groups @1=屬於組@1的任何項目 Recipe @1 of @2=第@1配方,共@2個 Usage @1 of @2=第@1用法,共@2個 No recipes=沒有配方 No usages=沒有用法 Result=結果 Ingredient=原料 +Show next recipe= +Show next usage= +Show previous recipe= +Show previous usage= +@1 (@2)= Give me:=給予: +This recipe is too@@large to be displayed.= To craft grid:=填充物品到合成表 All=全部 +Crafting=合成 White=白 Yellow=黃 Red=紅 @@ -60,10 +76,10 @@ Waypoints=航路點 Select Waypoint #@1=查詢航路點 #@1 Waypoint @1=航路點 @1 Set waypoint to current location=將航路點設置到當前位置 -invisible=不可見的 -visible=可見的 -Make waypoint @1=設置航路點 @1 -@1 display of waypoint coordinates=顯示航路點@1座標 +Hide waypoint= +Show waypoint= +Hide coordinates= +Show coordinates= Change color of waypoint display=改變航路點顯示的顏色 Edit waypoint name=編輯航路點名稱 Waypoint active=航路點已激活 @@ -73,7 +89,10 @@ World position=世界位置 Name=名稱 HUD text color=HUD文本顏色 -Reset search and display everything=重置搜索並顯示所有物品 -Any item belonging to the @1 group=屬於@1組的任何項目 -Any item belonging to the groups @1=屬於組@1的任何項目 +##### not used anymore ##### + +invisible=不可見的 +visible=可見的 +Make waypoint @1=設置航路點 @1 +@1 display of waypoint coordinates=顯示航路點@1座標 diff --git a/waypoints.lua b/waypoints.lua index 2a8ead4..08fce38 100644 --- a/waypoints.lua +++ b/waypoints.lua @@ -1,6 +1,7 @@ local S = minetest.get_translator("unified_inventory") local F = minetest.formspec_escape local ui = unified_inventory +local COUNT = 5 local hud_colors = { {"#FFFFFF", 0xFFFFFF, S("White")}, @@ -10,11 +11,97 @@ local hud_colors = { {"#2c4df1", 0x2c4df1, S("Blue")}, } -local hud_colors_max = #hud_colors +-- Storage compatibility code --- Stores temporary player data (persists until player leaves) +--[[ +Stores temporary player data (persists until player leaves) + [player_name] = { + [] = { + edit = , + hud = , + }, + [] = { ... }, + ... + } +]] local waypoints_temp = {} +--[[ +Datastorage format (per-player): + { + selected = , + [] = { + name = + world_pos = , + color = <"hud_colors" index>, + active = , + display_pos = , + }, + [] = { ... }, + ... + } +Player metadata format: + { + selected = , + -- Cannot mix integer/string keys in JSON + data = { + [] = { same as above }, + ... + } + } +]] + +local function set_waypoint_data(player, waypoints) + local meta = player:get_meta() + if not next(waypoints.data or {}) then + -- Empty data. Do not save anything, or delete + meta:set_string("ui_waypoints", "") + else + meta:set_string("ui_waypoints", minetest.write_json(waypoints)) + end +end + +local function migrate_datastorage(player, waypoints) + -- Copy values from old table + local new_data = { + selected = waypoints.selected, + data = {} + } + for i = 1, COUNT do + new_data.data[i] = waypoints[i] + end + + set_waypoint_data(player, new_data) + + -- Delete values, but keep one entry so that it's saved by datastorage + for k, _ in pairs(waypoints) do + waypoints[k] = nil + end + waypoints[1] = 1 +end + +local have_datastorage = minetest.get_modpath("datastorage") ~= nil +local function get_waypoint_data(player) + local player_name = player:get_player_name() + + -- Migration step + if have_datastorage then + local waypoints = datastorage.get(player_name, "waypoints") + if waypoints.selected then + migrate_datastorage(player, waypoints) + minetest.log("action", "[unified_inventory] " .. + "Migrated waypoints of player: " .. player_name) + end + end + + -- Get directly from metadata + local waypoints = player:get_meta():get("ui_waypoints") + waypoints = waypoints and minetest.parse_json(waypoints) or {} + waypoints.data = waypoints.data or {} + + return waypoints +end + ui.register_page("waypoints", { get_formspec = function(player) local player_name = player:get_player_name() @@ -24,73 +111,83 @@ ui.register_page("waypoints", { local wp_buttons_rj = ui.style_full.std_inv_x + 10.1 - ui.style_full.btn_spc local wp_edit_w = ui.style_full.btn_spc * 4 - 0.1 - -- build a "fake" temp entry if the server took too long - -- during sign-on and returned an empty entry - if not waypoints_temp[player_name] then waypoints_temp[player_name] = {hud = 1} end + local waypoints = get_waypoint_data(player) + local sel = waypoints.selected or 1 - local waypoints = datastorage.get(player_name, "waypoints") - local formspec = { ui.style_full.standard_inv_bg, + local formspec = { + ui.style_full.standard_inv_bg, string.format("label[%f,%f;%s]", - ui.style_full.form_header_x, ui.style_full.form_header_y, - F(S("Waypoints"))), + ui.style_full.form_header_x, ui.style_full.form_header_y, F(S("Waypoints"))), "image["..wp_info_x..","..wp_info_y..";1,1;ui_waypoints_icon.png]" } local n=4 -- Tabs buttons: - for i = 1, 5 do + for i = 1, COUNT do local sw="select_waypoint"..i formspec[n] = string.format("image_button[%f,%f;%f,%f;%sui_%i_icon.png;%s;]", ui.style_full.main_button_x, wp_bottom_row - (5-i) * ui.style_full.btn_spc, ui.style_full.btn_size, ui.style_full.btn_size, - (i == waypoints.selected) and "ui_blue_icon_background.png^" or "", + (i == sel) and "ui_blue_icon_background.png^" or "", i, sw) formspec[n+1] = "tooltip["..sw..";"..S("Select Waypoint #@1", i).."]" n = n + 2 end - local i = waypoints.selected or 1 - local waypoint = waypoints[i] or {} - local temp = waypoints_temp[player_name][i] or {} - local default_name = S("Waypoint @1", i) + local waypoint = waypoints.data[sel] or {} + local temp = waypoints_temp[player_name][sel] or {} + local default_name = S("Waypoint @1", sel) -- Main buttons: local btnlist = { - { "ui_waypoint_set_icon.png", "set_waypoint", S("Set waypoint to current location") }, - { waypoint.active and "ui_on_icon.png" or "ui_off_icon.png", "toggle_waypoint", S("Make waypoint @1", waypoint.active and "invisible" or "visible") }, - { waypoint.display_pos and "ui_green_icon_background.png^ui_xyz_icon.png" or "ui_red_icon_background.png^ui_xyz_icon.png^(ui_no.png^[transformR90)", "toggle_display_pos", S("@1 display of waypoint coordinates", waypoint.display_pos and "Disable" or "Enable") }, - { "ui_circular_arrows_icon.png", "toggle_color", S("Change color of waypoint display") }, - { "ui_pencil_icon.png", "rename_waypoint", S("Edit waypoint name") } + set_waypoint = { + "ui_waypoint_set_icon.png", + S("Set waypoint to current location") + }, + toggle_waypoint = { + waypoint.active and "ui_on_icon.png" or "ui_off_icon.png", + waypoint.active and S("Hide waypoint") or S("Show waypoint") + }, + toggle_display_pos = { + waypoint.display_pos and "ui_green_icon_background.png^ui_xyz_icon.png" or "ui_red_icon_background.png^ui_xyz_icon.png^(ui_no.png^[transformR90)", + waypoint.display_pos and S("Hide coordinates") or S("Show coordinates") + }, + toggle_color = { + "ui_circular_arrows_icon.png", + S("Change color of waypoint display") + }, + rename_waypoint = { + "ui_pencil_icon.png", + S("Edit waypoint name") + } } local x = 4 - for _, b in pairs(btnlist) do + for name, def in pairs(btnlist) do formspec[n] = string.format("image_button[%f,%f;%f,%f;%s;%s%i;]", wp_buttons_rj - ui.style_full.btn_spc * x, wp_bottom_row, ui.style_full.btn_size, ui.style_full.btn_size, - b[1], b[2], i) - formspec[n+1] = "tooltip["..b[2]..i..";"..F(b[3]).."]" + def[1], name, sel) + formspec[n+1] = "tooltip["..name..sel..";"..F(def[2]).."]" x = x - 1 n = n + 2 end -- Waypoint's info: - formspec[n] = "label["..wp_info_x..","..(wp_info_y+1.1)..";" - if waypoint.active then - formspec[n+1] = F(S("Waypoint active")).."]" - else - formspec[n+1] = F(S("Waypoint inactive")).."]" - end - n = n + 2 + formspec[n] = ("label[%f,%f;%s]"):format( + wp_info_x, wp_info_y + 1.1, + F(waypoint.active and S("Waypoint active") or S("Waypoint inactive")) + ) + n = n + 1 if temp.edit then formspec[n] = string.format("field[%f,%f;%f,%f;rename_box%i;;%s]", wp_buttons_rj - wp_edit_w - 0.1, wp_bottom_row - ui.style_full.btn_spc, - wp_edit_w, ui.style_full.btn_size, i, (waypoint.name or default_name)) + wp_edit_w, ui.style_full.btn_size, sel, (waypoint.name or default_name)) formspec[n+1] = string.format("image_button[%f,%f;%f,%f;ui_ok_icon.png;confirm_rename%i;]", wp_buttons_rj, wp_bottom_row - ui.style_full.btn_spc, - ui.style_full.btn_size, ui.style_full.btn_size, i) - formspec[n+2] = "tooltip[confirm_rename"..i..";"..F(S("Finish editing")).."]" + ui.style_full.btn_size, ui.style_full.btn_size, sel) + formspec[n+2] = "tooltip[confirm_rename"..sel..";"..F(S("Finish editing")).."]" n = n + 3 end @@ -114,10 +211,12 @@ ui.register_button("waypoints", { }) local function update_hud(player, waypoints, temp, i) - local waypoint = waypoints[i] + local waypoint = waypoints.data[i] if not waypoint then return end + temp[i] = temp[i] or {} temp = temp[i] + local pos = waypoint.world_pos or vector.new() local name if waypoint.display_pos then @@ -126,10 +225,13 @@ local function update_hud(player, waypoints, temp, i) name = name..", "..waypoint.name end else - name = waypoint.name or "Waypoint "..i + name = waypoint.name or S("Waypoint @1", i) end + + -- Perform HUD updates if temp.hud then player:hud_remove(temp.hud) + temp.hud = nil end if waypoint.active then temp.hud = player:hud_add({ @@ -139,8 +241,6 @@ local function update_hud(player, waypoints, temp, i) text = "m", world_pos = pos }) - else - temp.hud = nil end end @@ -152,9 +252,11 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local need_update_hud = false local hit = false - local waypoints = datastorage.get(player_name, "waypoints") + local waypoints = get_waypoint_data(player) local temp = waypoints_temp[player_name] - for i = 1, 5, 1 do + for i = 1, COUNT do + local waypoint = waypoints.data[i] or {} + if fields["select_waypoint"..i] then hit = true waypoints.selected = i @@ -163,20 +265,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if fields["toggle_waypoint"..i] then hit = true - waypoints[i] = waypoints[i] or {} - waypoints[i].active = not (waypoints[i].active) + waypoint.active = not (waypoint.active) need_update_hud = true update_formspec = true end if fields["set_waypoint"..i] then hit = true - local pos = player:get_pos() - pos.x = math.floor(pos.x) - pos.y = math.floor(pos.y) - pos.z = math.floor(pos.z) - waypoints[i] = waypoints[i] or {} - waypoints[i].world_pos = pos + local pos = vector.round(player:get_pos()) + waypoint.world_pos = pos need_update_hud = true update_formspec = true end @@ -190,39 +287,45 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if fields["toggle_display_pos"..i] then hit = true - waypoints[i] = waypoints[i] or {} - waypoints[i].display_pos = not waypoints[i].display_pos + waypoint.display_pos = not waypoint.display_pos need_update_hud = true update_formspec = true end if fields["toggle_color"..i] then hit = true - waypoints[i] = waypoints[i] or {} - local color = waypoints[i].color or 1 + local color = waypoint.color or 0 color = color + 1 - if color > hud_colors_max then + if color > #hud_colors then color = 1 end - waypoints[i].color = color + waypoint.color = color need_update_hud = true update_formspec = true end if fields["confirm_rename"..i] then hit = true - waypoints[i] = waypoints[i] or {} + temp[i] = temp[i] or {} temp[i].edit = false - waypoints[i].name = fields["rename_box"..i] + waypoint.name = fields["rename_box"..i] need_update_hud = true update_formspec = true end + + if hit then + -- Save first + waypoints.data[i] = waypoint + set_waypoint_data(player, waypoints) + end + -- Update after if need_update_hud then update_hud(player, waypoints, temp, i) end if update_formspec then ui.set_inventory_formspec(player, "waypoints") end + if hit then return end end end) @@ -230,11 +333,11 @@ end) minetest.register_on_joinplayer(function(player) local player_name = player:get_player_name() - local waypoints = datastorage.get(player_name, "waypoints") - local temp = {} - waypoints_temp[player_name] = temp - for i = 1, 5 do - update_hud(player, waypoints, temp, i) + local waypoints = get_waypoint_data(player) + + waypoints_temp[player_name] = {} + for i = 1, COUNT do + update_hud(player, waypoints, waypoints_temp[player_name], i) end end)