diff --git a/.luacheckrc b/.luacheckrc index 2be56e80..cc54a3ce 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -1,6 +1,10 @@ unused_args = false allow_defined_top = true +globals = { + "default" +} + read_globals = { "DIR_DELIM", "minetest", diff --git a/game_api.txt b/game_api.txt index 8d3653d5..e46ea6bd 100644 --- a/game_api.txt +++ b/game_api.txt @@ -1028,6 +1028,27 @@ Trees * `default.grow_blueberry_bush(pos)` * Grows a blueberry bush at pos + * `default.on_grow_failed(pos)` + * Reset the node timer to 300 seconds, used as default callback when the growth of a sapling fails + + * `default.sapling_growth_defs` + * Table that contains all the definitions for the growable saplings, see `default.register_sapling_growth` + + * `default.register_sapling_growth(name, def)` + * Register a new sapling growth configuration. Useful to add custom sapling and trees to the game in a compact way. + default.register_sapling_growth( + "default:sapling", -- Name of the sapling + { + can_grow = default.can_grow, -- Function called to determine whether the sapling can grow, should return a boolean + on_grow_failed = default.on_grow_failed, -- Function called when the growth fails + grow = function(pos) -- Function called when the growth has success. This should replace the sapling with a tree. + } + ) + + * `default.grow_sapling(pos)` + * Attempt to grow a sapling at the given position. Useful as on_timer callback. + + Carts ----- @@ -1142,8 +1163,9 @@ the log. `default.set_inventory_action_loggers(def, name)` - * sets the callbacks `on_metadata_inventory_move`, + * hooks the callbacks `on_metadata_inventory_move`, `on_metadata_inventory_put` and `on_metadata_inventory_take` that log corresponding actions + * after logging the action, the original callback (if any) is called * `def` See [Node definition] * `name` Description of the node in the log message diff --git a/mods/beds/api.lua b/mods/beds/api.lua index 4a9c6679..8af13ddd 100644 --- a/mods/beds/api.lua +++ b/mods/beds/api.lua @@ -115,8 +115,8 @@ function beds.register_bed(name, def) local dir = minetest.facedir_to_dir(node.param2) local p = vector.add(pos, dir) local node2 = minetest.get_node_or_nil(p) - if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or - not node.param2 == node2.param2 then + if not node2 or minetest.get_item_group(node2.name, "bed") ~= 2 or + node.param2 ~= node2.param2 then return false end if minetest.is_protected(p, user:get_player_name()) then diff --git a/mods/beds/beds.lua b/mods/beds/beds.lua index dc044a35..1623de88 100644 --- a/mods/beds/beds.lua +++ b/mods/beds/beds.lua @@ -65,7 +65,7 @@ beds.register_bed("beds:bed", { "beds_bed_top_bottom.png^[transformR90", "beds_bed_under.png", "beds_bed_side_bottom_r.png", - "beds_bed_side_bottom_r.png^[transformfx", + "beds_bed_side_bottom_r.png^[transformFX", "beds_transparent.png", "beds_bed_side_bottom.png" }, @@ -73,7 +73,7 @@ beds.register_bed("beds:bed", { "beds_bed_top_top.png^[transformR90", "beds_bed_under.png", "beds_bed_side_top_r.png", - "beds_bed_side_top_r.png^[transformfx", + "beds_bed_side_top_r.png^[transformFX", "beds_bed_side_top.png", "beds_transparent.png", } diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua index 99e4dd72..0668976e 100644 --- a/mods/beds/functions.lua +++ b/mods/beds/functions.lua @@ -181,6 +181,26 @@ function beds.skip_night() minetest.set_timeofday(0.23) end +local update_scheduled = false +local function schedule_update() + if update_scheduled then + -- there already is an update scheduled; don't schedule more to prevent races + return + end + update_scheduled = true + minetest.after(2, function() + update_scheduled = false + if not is_sp then + update_formspecs(is_night_skip_enabled()) + end + if is_night_skip_enabled() then + -- skip the night and let all players stand up + beds.skip_night() + beds.kick_players() + end + end) +end + function beds.on_rightclick(pos, player) local name = player:get_player_name() local ppos = player:get_pos() @@ -206,17 +226,8 @@ function beds.on_rightclick(pos, player) update_formspecs(false) end - -- skip the night and let all players stand up if check_in_beds() then - minetest.after(2, function() - if not is_sp then - update_formspecs(is_night_skip_enabled()) - end - if is_night_skip_enabled() then - beds.skip_night() - beds.kick_players() - end - end) + schedule_update() end end @@ -249,13 +260,7 @@ minetest.register_on_leaveplayer(function(player) lay_down(player, nil, nil, false, true) beds.player[name] = nil if check_in_beds() then - minetest.after(2, function() - update_formspecs(is_night_skip_enabled()) - if is_night_skip_enabled() then - beds.skip_night() - beds.kick_players() - end - end) + schedule_update() end end) diff --git a/mods/beds/locale/beds.uk.tr b/mods/beds/locale/beds.uk.tr index f95da70b..c9db693f 100644 --- a/mods/beds/locale/beds.uk.tr +++ b/mods/beds/locale/beds.uk.tr @@ -1,10 +1,10 @@ # textdomain: beds -Fancy Bed=Деталізована Постіль -Simple Bed=Звичайна Постіль -This bed is already occupied!=Ця постіль вже зайнята! -You have to stop moving before going to bed!=Не можна скористатись постіллю на ходу! +Fancy Bed=Гарне ліжко +Simple Bed=Просте ліжко +This bed is already occupied!=Це ліжко вже зайняте! +You have to stop moving before going to bed!=Зупиніться перед тим як лягти! Good morning.=Доброго ранку. -@1 of @2 players are in bed=@1 з @2 гравців в ліжку +@1 of @2 players are in bed=@1 з @2 гравців(-я) у ліжку Force night skip=Пропустити ніч -You can only sleep at night.=Ви можете спати тільки вночі. +You can only sleep at night.=Ви можете спати лише вночі. Leave Bed=Встати з ліжка diff --git a/mods/binoculars/locale/binoculars.id.tr b/mods/binoculars/locale/binoculars.id.tr index 3719d644..59ba2cd3 100644 --- a/mods/binoculars/locale/binoculars.id.tr +++ b/mods/binoculars/locale/binoculars.id.tr @@ -1,3 +1,3 @@ # textdomain: binoculars Binoculars=Teropong -Use with 'Zoom' key=Pakai dengan tombol 'Zum' +Use with 'Zoom' key=Gunakan dengan tombol 'Zum' diff --git a/mods/binoculars/locale/binoculars.uk.tr b/mods/binoculars/locale/binoculars.uk.tr index cb1d0e5b..cec1e2f8 100644 --- a/mods/binoculars/locale/binoculars.uk.tr +++ b/mods/binoculars/locale/binoculars.uk.tr @@ -1,3 +1,3 @@ # textdomain: binoculars Binoculars=Бінокль -Use with 'Zoom' key=Використовується з правами 'Zoom' +Use with 'Zoom' key=Використовується клавішею 'Наближення' diff --git a/mods/bones/init.lua b/mods/bones/init.lua index 54d3f146..725f6622 100644 --- a/mods/bones/init.lua +++ b/mods/bones/init.lua @@ -28,7 +28,7 @@ local bones_formspec = local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200 local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4 -minetest.register_node("bones:bones", { +local bones_def = { description = S("Bones"), tiles = { "bones_top.png^[transform2", @@ -130,7 +130,11 @@ minetest.register_node("bones:bones", { end, on_blast = function(pos) end, -}) +} + +default.set_inventory_action_loggers(bones_def, "bones") + +minetest.register_node("bones:bones", bones_def) local function may_replace(pos, player) local node_name = minetest.get_node(pos).name @@ -224,7 +228,7 @@ minetest.register_on_dieplayer(function(player) -- check if it's possible to place bones, if not find space near player if bones_mode == "bones" and not may_replace(pos, player) then local air = minetest.find_node_near(pos, 1, {"air"}) - if air and not minetest.is_protected(air, player_name) then + if air then pos = air else bones_mode = "drop" diff --git a/mods/bones/locale/bones.uk.tr b/mods/bones/locale/bones.uk.tr index 73b57a76..00b4ff4e 100644 --- a/mods/bones/locale/bones.uk.tr +++ b/mods/bones/locale/bones.uk.tr @@ -1,8 +1,8 @@ # textdomain: bones Bones=Кістки -@1's old bones=старі кістки @1 -@1 died at @2.=@1 помер в @2. -@1 died at @2, and dropped their inventory.=@1 помер в @2, та загубив вміст свого інвентарю. -@1 died at @2, and bones were placed.=@1 помер в @2, розміщені кістки. -@1's fresh bones=нові кістки @1 -@1's bones=кістки @1 +@1's old bones=Старі кістки @1 +@1 died at @2.=@1 загинув на координатах @2. +@1 died at @2, and dropped their inventory.=@1 загинув на координатах @2 та втратив вміст свого інвентарю. +@1 died at @2, and bones were placed.=@1 загинув на координатах @2, було розміщено кістки. +@1's fresh bones=Свіжі кістки @1 +@1's bones=Кістки @1 diff --git a/mods/bucket/locale/bucket.uk.tr b/mods/bucket/locale/bucket.uk.tr index a5251a5a..3486d1ea 100644 --- a/mods/bucket/locale/bucket.uk.tr +++ b/mods/bucket/locale/bucket.uk.tr @@ -1,5 +1,5 @@ # textdomain: bucket -Empty Bucket=Пусте Відро -Water Bucket=Відро З Водою -River Water Bucket=Відро З Річною Водою -Lava Bucket=Відро З Лавою +Empty Bucket=Порожнє відро +Water Bucket=Відро з водою +River Water Bucket=Відро з річковою водою +Lava Bucket=Відро з лавою diff --git a/mods/butterflies/locale/butterflies.uk.tr b/mods/butterflies/locale/butterflies.uk.tr index 4a5995e8..8779b000 100644 --- a/mods/butterflies/locale/butterflies.uk.tr +++ b/mods/butterflies/locale/butterflies.uk.tr @@ -1,4 +1,4 @@ # textdomain: butterflies -White Butterfly=Білий Метелик -Red Butterfly=Червоний Метелик -Violet Butterfly=Фіолетовий Метелик +White Butterfly=Білий метелик +Red Butterfly=Червоний метелик +Violet Butterfly=Фіолетовий метелик diff --git a/mods/carts/locale/carts.uk.tr b/mods/carts/locale/carts.uk.tr index 2b236c54..3e16c722 100644 --- a/mods/carts/locale/carts.uk.tr +++ b/mods/carts/locale/carts.uk.tr @@ -1,6 +1,6 @@ # textdomain: carts Cart=Вагонетка -(Sneak+Click to pick up)=(Пригніться та клікніть по вагонетці, щоб забрати) +(Sneak+Click to pick up)=(Пригніться та натисніть, щоби підібрати) Rail=Рейки -Powered Rail=Задіяні Рейки -Brake Rail=Гальмівні Рейки +Powered Rail=Електричні рейки +Brake Rail=Гальмівні рейки diff --git a/mods/creative/locale/creative.de.tr b/mods/creative/locale/creative.de.tr index 02b02777..ddd88ddc 100644 --- a/mods/creative/locale/creative.de.tr +++ b/mods/creative/locale/creative.de.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Spieler erlauben, das Kreativinventar zu benutzen +No items to show.=Keine Gegenstände vorhanden. Search=Suchen Reset=Zurücksetzen Previous page=Vorherige Seite diff --git a/mods/creative/locale/creative.eo.tr b/mods/creative/locale/creative.eo.tr index 1bb4fdc0..8142baf6 100644 --- a/mods/creative/locale/creative.eo.tr +++ b/mods/creative/locale/creative.eo.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Permesi ke la ludanto uzu la kreeman stokon +No items to show.= Search=Serĉi Reset=Rekomencigi Previous page=Antaŭa paĝo diff --git a/mods/creative/locale/creative.es.tr b/mods/creative/locale/creative.es.tr index f4e39a70..ceeb32fc 100644 --- a/mods/creative/locale/creative.es.tr +++ b/mods/creative/locale/creative.es.tr @@ -1,7 +1,8 @@ # textdomain: creative Allow player to use creative inventory=Permitir al jugador usar el inventario creativo +No items to show.=Sin artículos que mostrar. Search=Buscar -Reset=Resetear +Reset=Reiniciar Previous page=Pág. siguiente Next page=Pág. anterior All=Todos diff --git a/mods/creative/locale/creative.fr.tr b/mods/creative/locale/creative.fr.tr index 695c0a19..89a42226 100644 --- a/mods/creative/locale/creative.fr.tr +++ b/mods/creative/locale/creative.fr.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Permettre aux joueurs d'utiliser l'inventaire du mode créatif +No items to show.= Search=Rechercher Reset=Réinitialiser Previous page=Page précédente diff --git a/mods/creative/locale/creative.id.tr b/mods/creative/locale/creative.id.tr index 613ab137..5b859c4e 100644 --- a/mods/creative/locale/creative.id.tr +++ b/mods/creative/locale/creative.id.tr @@ -1,5 +1,6 @@ # textdomain: creative -Allow player to use creative inventory=Bolehkan pemain memakai inventaris kreatif +Allow player to use creative inventory=Bolehkan pemain menggunakan inventaris kreatif +No items to show.=Tiada barang untuk ditampilkan. Search=Cari Reset=Atur ulang Previous page=Halaman sebelumnya diff --git a/mods/creative/locale/creative.it.tr b/mods/creative/locale/creative.it.tr index 32f540db..736bc941 100644 --- a/mods/creative/locale/creative.it.tr +++ b/mods/creative/locale/creative.it.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Permette al giocatore di usare l'inventario creativo +No items to show.= Search=Cerca Reset=Azzera Previous page=Pagina precedente diff --git a/mods/creative/locale/creative.ja.tr b/mods/creative/locale/creative.ja.tr index 1c215bbf..2d734e52 100644 --- a/mods/creative/locale/creative.ja.tr +++ b/mods/creative/locale/creative.ja.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=プレーヤーにクリエイティブ インベントリーの使用を許可する +No items to show.= Search=検索 Reset=リセット Previous page=前のページ diff --git a/mods/creative/locale/creative.jbo.tr b/mods/creative/locale/creative.jbo.tr index 6d0b7361..d8640b18 100644 --- a/mods/creative/locale/creative.jbo.tr +++ b/mods/creative/locale/creative.jbo.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=zifre le ka pilno le finti ke dacti liste +No items to show.= Search=sisku Reset=kraga'igau Previous page=lidne diff --git a/mods/creative/locale/creative.ms.tr b/mods/creative/locale/creative.ms.tr index a2aef801..26a5c0c0 100644 --- a/mods/creative/locale/creative.ms.tr +++ b/mods/creative/locale/creative.ms.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Benarkan pemain menggunakan inventori kreatif +No items to show.= Search=Cari Reset=Set semula Previous page=Halaman sebelumnya diff --git a/mods/creative/locale/creative.pl.tr b/mods/creative/locale/creative.pl.tr index 7844cd69..1fe78572 100644 --- a/mods/creative/locale/creative.pl.tr +++ b/mods/creative/locale/creative.pl.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Zezwól graczom na używanie kreatywnego ekwipunku +No items to show.= Search=Wyszukaj Reset=Zresetuj Previous page=Poprzednia strona diff --git a/mods/creative/locale/creative.pt_BR.tr b/mods/creative/locale/creative.pt_BR.tr index c8a04bde..b66edcc9 100644 --- a/mods/creative/locale/creative.pt_BR.tr +++ b/mods/creative/locale/creative.pt_BR.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Permitir o jogador usar o inventário criativo +No items to show.= Search=Pesquisar Reset=Redefinir Previous page=Página anterior diff --git a/mods/creative/locale/creative.ru.tr b/mods/creative/locale/creative.ru.tr index f649dbc6..fecfefea 100644 --- a/mods/creative/locale/creative.ru.tr +++ b/mods/creative/locale/creative.ru.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Разрешить игроку использовать творческий инвентарь +No items to show.= Search=Поиск Reset=Сброс Previous page=Предыдущая страница diff --git a/mods/creative/locale/creative.sk.tr b/mods/creative/locale/creative.sk.tr index 935c7803..0aa8d0e4 100644 --- a/mods/creative/locale/creative.sk.tr +++ b/mods/creative/locale/creative.sk.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Povolí hráčovi použivať kreatívny inventár +No items to show.= Search=Hľadaj Reset=Vrátiť späť Previous page=Predchádzajúca stránka diff --git a/mods/creative/locale/creative.sv.tr b/mods/creative/locale/creative.sv.tr index a9a741f4..ddba02d8 100644 --- a/mods/creative/locale/creative.sv.tr +++ b/mods/creative/locale/creative.sv.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=Tillåt spelare att använda kreativa saker +No items to show.= Search=Sök Reset=Återställ Previous page=Förra sida diff --git a/mods/creative/locale/creative.uk.tr b/mods/creative/locale/creative.uk.tr index 4e68caa2..c0a817c9 100644 --- a/mods/creative/locale/creative.uk.tr +++ b/mods/creative/locale/creative.uk.tr @@ -1,5 +1,6 @@ # textdomain: creative -Allow player to use creative inventory=Дозволити гравцеві використати творчий інвентар +Allow player to use creative inventory=Дозволити гравцю використовувати творчий інвентар +No items to show.=Немає результатів. Search=Пошук Reset=Скинути Previous page=Попередня сторінка diff --git a/mods/creative/locale/creative.zh_CN.tr b/mods/creative/locale/creative.zh_CN.tr index 1ca424e5..27d3e868 100644 --- a/mods/creative/locale/creative.zh_CN.tr +++ b/mods/creative/locale/creative.zh_CN.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=允许玩家使用创造模式物品栏 +No items to show.= Search=搜索 Reset=重置 Previous page=上一页 diff --git a/mods/creative/locale/creative.zh_TW.tr b/mods/creative/locale/creative.zh_TW.tr index c5746d40..ae9b1565 100644 --- a/mods/creative/locale/creative.zh_TW.tr +++ b/mods/creative/locale/creative.zh_TW.tr @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory=允許玩家使用創造模式物品欄 +No items to show.= Search=搜索 Reset=重置 Previous page=上一頁 diff --git a/mods/creative/locale/template.txt b/mods/creative/locale/template.txt index 3e79730c..ee593fe9 100644 --- a/mods/creative/locale/template.txt +++ b/mods/creative/locale/template.txt @@ -1,5 +1,6 @@ # textdomain: creative Allow player to use creative inventory= +No items to show.= Search= Reset= Previous page= diff --git a/mods/default/chests.lua b/mods/default/chests.lua index e340416f..1c1ce051 100644 --- a/mods/default/chests.lua +++ b/mods/default/chests.lua @@ -38,16 +38,23 @@ function default.chest.chest_lid_close(pn) default.chest.open_chests[pn] = nil for k, v in pairs(default.chest.open_chests) do - if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then + if vector.equals(v.pos, pos) then + -- another player is also looking at the chest return true end end local node = minetest.get_node(pos) - minetest.after(0.2, minetest.swap_node, pos, { name = swap, - param2 = node.param2 }) - minetest.sound_play(sound, {gain = 0.3, pos = pos, - max_hear_distance = 10}, true) + minetest.after(0.2, function() + local current_node = minetest.get_node(pos) + if current_node.name ~= swap .. "_open" then + -- the chest has already been replaced, don't try to replace what's there. + return + end + minetest.swap_node(pos, {name = swap, param2 = node.param2}) + minetest.sound_play(sound, {gain = 0.3, pos = pos, + max_hear_distance = 10}, true) + end) end default.chest.open_chests = {} diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 0afd97ed..def607bf 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -744,16 +744,23 @@ function default.log_player_action(player, ...) minetest.log("action", msg) end +local nop = function() end function default.set_inventory_action_loggers(def, name) + local on_move = def.on_metadata_inventory_move or nop def.on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) default.log_player_action(player, "moves stuff in", name, "at", pos) + return on_move(pos, from_list, from_index, to_list, to_index, count, player) end + local on_put = def.on_metadata_inventory_put or nop def.on_metadata_inventory_put = function(pos, listname, index, stack, player) - default.log_player_action(player, "moves", stack:get_name(), "to", name, "at", pos) + default.log_player_action(player, "moves", stack:get_name(), stack:get_count(), "to", name, "at", pos) + return on_put(pos, listname, index, stack, player) end + local on_take = def.on_metadata_inventory_take or nop def.on_metadata_inventory_take = function(pos, listname, index, stack, player) - default.log_player_action(player, "takes", stack:get_name(), "from", name, "at", pos) + default.log_player_action(player, "takes", stack:get_name(), stack:get_count(), "from", name, "at", pos) + return on_take(pos, listname, index, stack, player) end end diff --git a/mods/default/license.txt b/mods/default/license.txt index 3c95c1b4..f4c174a5 100644 --- a/mods/default/license.txt +++ b/mods/default/license.txt @@ -19,7 +19,7 @@ Licenses of media (textures, models and sounds) ----------------------------------------------- Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) -Copyright (C) 2010-2018: +Copyright (C) 2010-2023: celeron55, Perttu Ahola Cisoun @@ -52,6 +52,7 @@ Copyright (C) 2010-2018: random-geek Extex101 An0n3m0us + Lopano You are free to: Share — copy and redistribute the material in any medium or format. diff --git a/mods/default/locale/default.de.tr b/mods/default/locale/default.de.tr index 9bee6b8a..cb0ec1eb 100644 --- a/mods/default/locale/default.de.tr +++ b/mods/default/locale/default.de.tr @@ -108,7 +108,7 @@ Acacia Tree Sapling=Akazienbaumsetzling Aspen Tree=Espenbaum Aspen Wood Planks=Espenholzplanken Aspen Tree Leaves=Espenbaumblätter -Aspen Tree Sapling=Esepenbaumsetzling +Aspen Tree Sapling=Espenbaumsetzling Coal Ore=Kohleerz Coal Block=Kohleblock Iron Ore=Eisenerz diff --git a/mods/default/locale/default.fr.tr b/mods/default/locale/default.fr.tr index c5e5bf04..8f694fb3 100644 --- a/mods/default/locale/default.fr.tr +++ b/mods/default/locale/default.fr.tr @@ -111,7 +111,7 @@ Aspen Tree Leaves=Feuilles de tremble Aspen Tree Sapling=Pousse de tremble Coal Ore=Minerai de charbon Coal Block=Bloc de charbon -Iron Ore=Bloc de fer +Iron Ore=Minerai de fer Steel Block=Bloc d'acier Copper Ore=Minerai de cuivre Copper Block=Bloc de cuivre diff --git a/mods/default/locale/default.uk.tr b/mods/default/locale/default.uk.tr index c3263522..aa24bfb8 100644 --- a/mods/default/locale/default.uk.tr +++ b/mods/default/locale/default.uk.tr @@ -1,44 +1,44 @@ # textdomain: default -Locked Chest=Заблокована Скриня -Locked Chest (owned by @1)=Заблокована Скриня (власник: @1) -You do not own this chest.=Ви не власник цієї скрині. -a locked chest=заблокована скриня +Locked Chest=Замкнена скриня +Locked Chest (owned by @1)=Замкнена скриня (власник — @1) +You do not own this chest.=Ви — не власник цієї скрині. +a locked chest=замкнена скриня Chest=Скриня Write=Писати Read=Читати Title:=Заголовок: Contents:=Вміст: Save=Зберегти -by @1=@1 +by @1=Автор: @1 Page @1 of @2=Сторінка @1 з @2 -The book you were writing to mysteriously disappeared.= -"@1" by @2="@1" @2 +The book you were writing to mysteriously disappeared.=Книга, в яку ви писали, загадковим чином зникла. +"@1" by @2=@2 — "@1" Blueberries=Чорниці Book=Книга -Book with Text=Книга З Текстом -Bronze Ingot=Бронзовий Злиток -Clay Brick=Глиняна Цегла -Clay Lump=Шматок Глини -Coal Lump=Шматок Вугілля -Copper Ingot=Мідний Злиток -Copper Lump=Шматок Меді -Diamond=Алмаз +Book with Text=Книга з текстом +Bronze Ingot=Бронзовий злиток +Clay Brick=Глиняна цегла +Clay Lump=Шматок глини +Coal Lump=Шматок вугілля +Copper Ingot=Мідний злиток +Copper Lump=Шматок міді +Diamond=Діамант Flint=Кремінь -Gold Ingot=Золотий Злиток -Gold Lump=Шматок Золота -Iron Lump=Шматок Заліза +Gold Ingot=Золотий злиток +Gold Lump=Шматок золота +Iron Lump=Шматок заліза Mese Crystal=Кристал Месе -Mese Crystal Fragment=Уламок Кристалу Месе -Obsidian Shard=Обсидіановий Уламок +Mese Crystal Fragment=Уламок кристалу Месе +Obsidian Shard=Обсидіановий уламок Paper=Папір -Steel Ingot=Залізний Злиток -Stick=Палка -Tin Ingot=Шматок Олова -Tin Lump=Уламок Олова -Furnace is empty=Пічка Порожня -100% (output full)=100% (повне приготування) +Steel Ingot=Сталевий злиток +Stick=Палиця +Tin Ingot=Олов'яний злиток +Tin Lump=Шматок олова +Furnace is empty=Піч порожня +100% (output full)=100% (піч переповнена) @1%=@1% -Not cookable=Не може бути приготовлено +Not cookable=Не може бути приготовано Empty=Порожньо Furnace active=Піч запалена Furnace inactive=Піч не запалена @@ -46,170 +46,170 @@ Furnace inactive=Піч не запалена Furnace=Піч Stone=Камінь Cobblestone=Кругляк -Stone Brick=Кам'яна Цегла -Stone Block=Кам'яний Блок -Mossy Cobblestone=Моховий Кругляк -Desert Stone=Пустельний Камінь -Desert Cobblestone=Пустельний Камінь -Desert Stone Brick=Пустельна Кам'яна Цегла -Desert Stone Block=Пустельний Кам'яний Блок -Sandstone=Піщаник -Sandstone Brick=Цегла З Піщанику -Sandstone Block=Блок З Піщанику -Desert Sandstone=Пустельний Піщаник -Desert Sandstone Brick=Пустельна Цегла З Піщанику -Desert Sandstone Block=Пустельний Блок З Піщанику -Silver Sandstone=Срібний Піщаник -Silver Sandstone Brick=Цегла Із Срібного Піщанику -Silver Sandstone Block=Блок Із Срібного Піщанику +Stone Brick=Кам'яна цегла +Stone Block=Блок каменю +Mossy Cobblestone=Моховитий кругляк +Desert Stone=Пустельний камінь +Desert Cobblestone=Пустельний кругляк +Desert Stone Brick=Цегла з пустельного каменю +Desert Stone Block=Блок пустельного каменю +Sandstone=Пісковик +Sandstone Brick=Пісковикова цегла +Sandstone Block=Блок пісковику +Desert Sandstone=Пустельний пісковик +Desert Sandstone Brick=Цегла з пустельного пісковику +Desert Sandstone Block=Блок пустельного пісковику +Silver Sandstone=Срібний пісковик +Silver Sandstone Brick=Цегла зі срібного пісковику +Silver Sandstone Block=Блок срібного пісковику Obsidian=Обсидіан -Obsidian Brick=Обсидіанова Цегла -Obsidian Block=Обсидіановий Блок +Obsidian Brick=Обсидіанова цегла +Obsidian Block=Блок обсидіану Dirt=Земля -Dirt with Grass=Земля З Травою -Dirt with Grass and Footsteps=Земля З Травою Та Слідами -Dirt with Savanna Grass=Земля Із Саванною Травою -Dirt with Snow=Земля Зі Снігом -Dirt with Rainforest Litter=Земля Із Тропічною Підстилкою -Dirt with Coniferous Litter=Земля Із Сосновою Підстилкою -Savanna Dirt=Саваннова Земля -Savanna Dirt with Savanna Grass=Саваннова Земля Із Травою -Permafrost=Заморожений Ґрунт -Permafrost with Stones=Заморожений Ґрунт Із Камінням -Permafrost with Moss=Заморожений Ґрунт Із Мохом +Dirt with Grass=Земля з травою +Dirt with Grass and Footsteps=Земля з травою та слідами +Dirt with Savanna Grass=Земля із саванною травою +Dirt with Snow=Земля зі снігом +Dirt with Rainforest Litter=Земля з тропічно-лісовою підстилкою +Dirt with Coniferous Litter=Земля з хвойно-лісовою підстилкою +Savanna Dirt=Саванна земля +Savanna Dirt with Savanna Grass=Саванна земля із саванною травою +Permafrost=Вічна мерзлота +Permafrost with Stones=Вічна мерзлота з камінням +Permafrost with Moss=Вічна мерзлота з мохом Sand=Пісок -Desert Sand=Пустельний Пісок -Silver Sand=Срібний Пісок +Desert Sand=Пустельний пісок +Silver Sand=Срібний пісок Gravel=Гравій -Clay=Глиняний Блок +Clay=Глина Snow=Сніг -Snow Block=Сніговий Блок -Ice=Лід -Cave Ice=Печерний Лід -Apple Tree=Стовбур Яблуні -Apple Wood Planks=Яблуневі Дошки -Apple Tree Sapling=Саджанець Яблуні -Apple Tree Leaves=Яблуневе Листя +Snow Block=Блок снігу +Ice=Крига +Cave Ice=Печерова крига +Apple Tree=Стовбур яблуні +Apple Wood Planks=Яблуневі дошки +Apple Tree Sapling=Саджанець яблуні +Apple Tree Leaves=Яблуневе листя Apple=Яблуко -Apple Marker=Яблучна Мітка -Jungle Tree=Стовбур Тропічного Дерева -Jungle Wood Planks=Дошки З Тропічного Дерева -Jungle Tree Leaves=Листя Тропічного Дерева -Jungle Tree Sapling=Саджанець Тропічного Дерева -Emergent Jungle Tree Sapling=Саджанець Тропічного Дерева, Що Виріс -Pine Tree=Сосновий Стовбур -Pine Wood Planks=Соснові Дошки -Pine Needles=Соснова Хвоя -Pine Tree Sapling=Саджанець Сосни -Acacia Tree=Стовбур Акації -Acacia Wood Planks=Дошки Акації -Acacia Tree Leaves=Листя Акації -Acacia Tree Sapling=Саджанець Акації -Aspen Tree=Стовбур Осики -Aspen Wood Planks=Осикові Дошки -Aspen Tree Leaves=Осикове Листя -Aspen Tree Sapling=Саджанець Осики -Coal Ore=Поклади Вугілля -Coal Block=Вугільний Блок -Iron Ore=Залізна Руда -Steel Block=Сталевий Блок -Copper Ore=Мідна Руда -Copper Block=Мідний Блок -Tin Ore=Олов'яна Руда -Tin Block=Олов'яний Блок -Bronze Block=Бронзовий Блок -Mese Ore=Месева Руда -Mese Block=Месевий Блок -Gold Ore=Золота Руда -Gold Block=Золотий Блок -Diamond Ore=Поклади Алмазу -Diamond Block=Алмазний Блок +Apple Marker=Мітка яблука +Jungle Tree=Стовбур тропічного дерева +Jungle Wood Planks=Дошки з тропічного дерева +Jungle Tree Leaves=Листя тропічного дерева +Jungle Tree Sapling=Саджанець тропічного дерева +Emergent Jungle Tree Sapling=Молодий саджанець тропічного дерева +Pine Tree=Сосновий стовбур +Pine Wood Planks=Соснові дошки +Pine Needles=Соснова хвоя +Pine Tree Sapling=Саджанець сосни +Acacia Tree=Акацієвий стовбур +Acacia Wood Planks=Акацієві дошки +Acacia Tree Leaves=Акацієве листя +Acacia Tree Sapling=Саджанець акації +Aspen Tree=Осиковий стовбур +Aspen Wood Planks=Осикові дошки +Aspen Tree Leaves=Осикове листя +Aspen Tree Sapling=Саджанець осики +Coal Ore=Поклади вугілля +Coal Block=Блок вугілля +Iron Ore=Поклади заліза +Steel Block=Блок сталі +Copper Ore=Поклади міді +Copper Block=Блок міді +Tin Ore=Поклади олова +Tin Block=Блок олова +Bronze Block=Блок бронзи +Mese Ore=Поклади Месе +Mese Block=Блок Месе +Gold Ore=Поклади золота +Gold Block=Блок золота +Diamond Ore=Поклади діамантів +Diamond Block=Блок діамантів Cactus=Кактус -Large Cactus Seedling=Саджанець Кактуса +Large Cactus Seedling=Великий саджанець кактуса Papyrus=Папірус -Dry Shrub=Сухий Кущ -Jungle Grass=Тропічна Трава +Dry Shrub=Сухий кущ +Jungle Grass=Тропічна трава Grass=Трава -Savanna Grass=Саваннова Трава +Savanna Grass=Саванна трава Fern=Папороть -Marram Grass=Пісколюб -Bush Stem=Стебла Куща -Bush Leaves=Листя Куща -Bush Sapling=Саджанець Куща -Blueberry Bush Leaves with Berries=Кущ Чорниці З Ягодами -Blueberry Bush Leaves=Кущ Чорниці -Blueberry Bush Sapling=Саджанець Куща Чорниці -Acacia Bush Stem=Стебла Куща Акації -Acacia Bush Leaves=Листя Куща Акації -Acacia Bush Sapling=Саджанець Куща Акації -Pine Bush Stem=Стебла Хвойного Куща -Pine Bush Needles=Хвоя Куща -Pine Bush Sapling=Саджанець Хвойного Куща +Marram Grass=Пляжна трава +Bush Stem=Стебла куща +Bush Leaves=Листя куща +Bush Sapling=Саджанець куща +Blueberry Bush Leaves with Berries=Кущ чорниці з ягодами +Blueberry Bush Leaves=Кущ чорниці +Blueberry Bush Sapling=Саджанець куща чорниці +Acacia Bush Stem=Стебла акацієвого куща +Acacia Bush Leaves=Листя акацієвого куща +Acacia Bush Sapling=Саджанець акацієвого куща +Pine Bush Stem=Стебла соснового куща +Pine Bush Needles=Хвоя соснового куща +Pine Bush Sapling=Саджанець соснового куща Kelp=Ламінарія -Green Coral=Зелений Корал -Pink Coral=Рожевий Корал -Cyan Coral=Блакитний Корал -Brown Coral=Коричневий Корал -Orange Coral=Помаранчевий Корал -Coral Skeleton=Кораловий Остов -Water Source=Водне Джерело -Flowing Water=Проточна Вода -River Water Source=Річкове Водне Джерело -Flowing River Water=Проточна Річна Вода -Lava Source=Лавове Джерело -Flowing Lava=Проточна Лава -Empty Bookshelf=Порожня Книжкова Полиця -Bookshelf (@1 written, @2 empty books)=Книжкова Полиця (@1 книг з записами, @2 чисті книги) -Bookshelf=Книжкова Полиця -Text too long=Текст надто довгий +Green Coral=Зелений корал +Pink Coral=Рожевий корал +Cyan Coral=Блакитний корал +Brown Coral=Коричневий корал +Orange Coral=Помаранчевий корал +Coral Skeleton=Скелет корала +Water Source=Водне джерело +Flowing Water=Проточна вода +River Water Source=Річкове водне джерело +Flowing River Water=Проточна річкова вода +Lava Source=Лавове джерело +Flowing Lava=Проточна лава +Empty Bookshelf=Порожня книжкова полиця +Bookshelf (@1 written, @2 empty books)=Книжкова полиця (книги: @1 з текстом, @2 без тексту) +Bookshelf=Книжкова полиця +Text too long=Текст занадто довгий "@1"="@1" -Wooden Sign=Дерев'яна Табличка -Steel Sign=Сталева Табличка -Wooden Ladder=Дерев'яна Драбина -Steel Ladder=Сталеві Сходи -Apple Wood Fence=Яблуневий Дерев'яний Паркан -Acacia Wood Fence=Дерев'яний Паркан З Акації -Jungle Wood Fence=Дерев'яний Паркан З Тропічного Дерева -Pine Wood Fence=Сосновий Дерев'яний Паркан -Aspen Wood Fence=Осиковий Дерев'яний Паркан -Apple Wood Fence Rail=Яблуневий Дерев'яний Рейковий Паркан -Acacia Wood Fence Rail=Дерев'яний Рейковий Паркан З Акації -Jungle Wood Fence Rail=Дерев'яний Рейковий Паркан З Тропічного Дерева -Pine Wood Fence Rail=Сосновий Дерев'яний Рейковий Паркан -Aspen Wood Fence Rail=Осиковий Дерев'яний Рейковий Паркан +Wooden Sign=Дерев'яна табличка +Steel Sign=Сталева табличка +Wooden Ladder=Дерев'яна драбина +Steel Ladder=Сталева драбина +Apple Wood Fence=Яблуневий паркан +Acacia Wood Fence=Акацієвий паркан +Jungle Wood Fence=Паркан із тропічного дерева +Pine Wood Fence=Сосновий паркан +Aspen Wood Fence=Осиковий паркан +Apple Wood Fence Rail=Яблуневий рейковий паркан +Acacia Wood Fence Rail=Акацієвий рейковий паркан +Jungle Wood Fence Rail=Рейковий паркан з тропічного дерева +Pine Wood Fence Rail=Сосновий рейковий паркан +Aspen Wood Fence Rail=Осиковий рейковий паркан Glass=Скло -Obsidian Glass=Обсидіанове Скло -Brick Block=Цегляний Блок -Mese Lamp=Месе Лампа -Apple Wood Mese Post Light=Стовповий Месе Світильник З Яблуні -Acacia Wood Mese Post Light=Стовповий Месе Світильник З Акації -Jungle Wood Mese Post Light=Стовповий Месе Світильник Із Тропічного Дерева -Pine Wood Mese Post Light=Стовповий Месе Світильник Із Сосни -Aspen Wood Mese Post Light=Стовповий Месе Світильник З Осики +Obsidian Glass=Обсидіанове скло +Brick Block=Цегляний блок +Mese Lamp=Месе-лампа +Apple Wood Mese Post Light=Яблуневий стовповий Месе-світильник +Acacia Wood Mese Post Light=Акацієвий стовповий Месе-світильник +Jungle Wood Mese Post Light=Стовповий Месе-світильник із тропічного дерева +Pine Wood Mese Post Light=Сосновий стовповий Месе-світильник +Aspen Wood Mese Post Light=Осиковий стовповий Месе-світильник Cloud=Хмара -Wooden Pickaxe=Дерев'яна Кірка -Stone Pickaxe=Кам'яна Кірка -Bronze Pickaxe=Бронзова Кірка -Steel Pickaxe=Сталева Кірка -Mese Pickaxe=Месе Кірка -Diamond Pickaxe=Алмазна Кірка -Wooden Shovel=Дерев'янна Лопата -Stone Shovel=Кам'яна Лопата -Bronze Shovel=Бронзова Лопата -Steel Shovel=Сталева Лопата -Mese Shovel=Месе Лопата -Diamond Shovel=Алмазна Лопата -Wooden Axe=Дерев'яна Сокира -Stone Axe=Кам'яна Сокира -Bronze Axe=Бронзова Сокира -Steel Axe=Сталева Сокира -Mese Axe=Месе Сокира -Diamond Axe=Алмазна Сокира -Wooden Sword=Дерев'яний Меч -Stone Sword=Кам'яний Меч -Bronze Sword=Бронзовий Меч -Steel Sword=Сталевий Меч -Mese Sword=Месе Меч -Diamond Sword=Алмазний Меч -Torch=Факел -@1 will intersect protection on growth.=@1 перетне захист за зростанням. +Wooden Pickaxe=Дерев'яне кайло +Stone Pickaxe=Кам'яне кайло +Bronze Pickaxe=Бронзове кайло +Steel Pickaxe=Сталеве кайло +Mese Pickaxe=Месе-кайло +Diamond Pickaxe=Діамантове кайло +Wooden Shovel=Дерев'яна лопата +Stone Shovel=Кам'яна лопата +Bronze Shovel=Бронзова лопата +Steel Shovel=Сталева лопата +Mese Shovel=Месе-лопата +Diamond Shovel=Діамантова лопата +Wooden Axe=Дерев'яна сокира +Stone Axe=Кам'яна сокира +Bronze Axe=Бронзова сокира +Steel Axe=Сталева сокира +Mese Axe=Месе-сокира +Diamond Axe=Діамантова сокира +Wooden Sword=Дерев'яний меч +Stone Sword=Кам'яний меч +Bronze Sword=Бронзовий меч +Steel Sword=Сталевий меч +Mese Sword=Месе-меч +Diamond Sword=Діамантовий меч +Torch=Смолоскип +@1 will intersect protection on growth.=@1 перетне захист коли виросте. diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index d59f6384..947dba6c 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -2024,7 +2024,7 @@ minetest.register_node("default:sand_with_kelp", { return itemstack end, - after_destruct = function(pos, oldnode) + after_dig_node = function(pos, oldnode, oldmetadata, digger) minetest.set_node(pos, {name = "default:sand"}) end }) @@ -2099,7 +2099,7 @@ minetest.register_node("default:coral_green", { on_place = coral_on_place, - after_destruct = function(pos, oldnode) + after_dig_node = function(pos, oldnode, oldmetadata, digger) minetest.set_node(pos, {name = "default:coral_skeleton"}) end, }) @@ -2130,7 +2130,7 @@ minetest.register_node("default:coral_pink", { on_place = coral_on_place, - after_destruct = function(pos, oldnode) + after_dig_node = function(pos, oldnode, oldmetadata, digger) minetest.set_node(pos, {name = "default:coral_skeleton"}) end, }) @@ -2161,7 +2161,7 @@ minetest.register_node("default:coral_cyan", { on_place = coral_on_place, - after_destruct = function(pos, oldnode) + after_dig_node = function(pos, oldnode, oldmetadata, digger) minetest.set_node(pos, {name = "default:coral_skeleton"}) end, }) @@ -2549,6 +2549,15 @@ local default_bookshelf_def = { end return 0 end, + on_metadata_inventory_put = function(pos) + update_bookshelf(pos) + end, + on_metadata_inventory_take = function(pos) + update_bookshelf(pos) + end, + on_metadata_inventory_move = function(pos) + update_bookshelf(pos) + end, on_blast = function(pos) local drops = {} default.get_inventory_drops(pos, "books", drops) diff --git a/mods/default/textures/default_acacia_leaves.png b/mods/default/textures/default_acacia_leaves.png index da58c095..9620c400 100644 Binary files a/mods/default/textures/default_acacia_leaves.png and b/mods/default/textures/default_acacia_leaves.png differ diff --git a/mods/default/textures/default_acacia_leaves_simple.png b/mods/default/textures/default_acacia_leaves_simple.png index e0348e08..ab464bad 100644 Binary files a/mods/default/textures/default_acacia_leaves_simple.png and b/mods/default/textures/default_acacia_leaves_simple.png differ diff --git a/mods/default/textures/default_aspen_leaves.png b/mods/default/textures/default_aspen_leaves.png index 68ef1884..2d6a7efe 100644 Binary files a/mods/default/textures/default_aspen_leaves.png and b/mods/default/textures/default_aspen_leaves.png differ diff --git a/mods/default/textures/default_blueberry_bush_leaves.png b/mods/default/textures/default_blueberry_bush_leaves.png index 355f0ee4..d6736ca7 100644 Binary files a/mods/default/textures/default_blueberry_bush_leaves.png and b/mods/default/textures/default_blueberry_bush_leaves.png differ diff --git a/mods/default/textures/default_blueberry_overlay.png b/mods/default/textures/default_blueberry_overlay.png index f61efe08..a7f8ab04 100644 Binary files a/mods/default/textures/default_blueberry_overlay.png and b/mods/default/textures/default_blueberry_overlay.png differ diff --git a/mods/default/textures/default_jungleleaves.png b/mods/default/textures/default_jungleleaves.png index 252eee0a..9a8d5f93 100644 Binary files a/mods/default/textures/default_jungleleaves.png and b/mods/default/textures/default_jungleleaves.png differ diff --git a/mods/default/textures/default_jungleleaves_simple.png b/mods/default/textures/default_jungleleaves_simple.png index 8e97f800..d0c3f7ed 100644 Binary files a/mods/default/textures/default_jungleleaves_simple.png and b/mods/default/textures/default_jungleleaves_simple.png differ diff --git a/mods/default/textures/default_leaves.png b/mods/default/textures/default_leaves.png index 13a076cb..55ba1e68 100644 Binary files a/mods/default/textures/default_leaves.png and b/mods/default/textures/default_leaves.png differ diff --git a/mods/default/textures/default_leaves_simple.png b/mods/default/textures/default_leaves_simple.png index 02679ec6..c71def7a 100644 Binary files a/mods/default/textures/default_leaves_simple.png and b/mods/default/textures/default_leaves_simple.png differ diff --git a/mods/default/textures/default_pine_needles.png b/mods/default/textures/default_pine_needles.png index d1bcab6e..e0e39908 100644 Binary files a/mods/default/textures/default_pine_needles.png and b/mods/default/textures/default_pine_needles.png differ diff --git a/mods/default/textures/default_river_water.png b/mods/default/textures/default_river_water.png index be57575b..bee757be 100644 Binary files a/mods/default/textures/default_river_water.png and b/mods/default/textures/default_river_water.png differ diff --git a/mods/default/textures/default_river_water_flowing_animated.png b/mods/default/textures/default_river_water_flowing_animated.png index 52e6e8ec..760d9eb7 100644 Binary files a/mods/default/textures/default_river_water_flowing_animated.png and b/mods/default/textures/default_river_water_flowing_animated.png differ diff --git a/mods/default/textures/default_river_water_source_animated.png b/mods/default/textures/default_river_water_source_animated.png index 560078ee..e7259ccc 100644 Binary files a/mods/default/textures/default_river_water_source_animated.png and b/mods/default/textures/default_river_water_source_animated.png differ diff --git a/mods/default/textures/default_water.png b/mods/default/textures/default_water.png index 47253db5..ee093a9a 100644 Binary files a/mods/default/textures/default_water.png and b/mods/default/textures/default_water.png differ diff --git a/mods/default/textures/default_water_flowing_animated.png b/mods/default/textures/default_water_flowing_animated.png index 0dc0ef9f..c9d9e3ba 100644 Binary files a/mods/default/textures/default_water_flowing_animated.png and b/mods/default/textures/default_water_flowing_animated.png differ diff --git a/mods/default/textures/default_water_source_animated.png b/mods/default/textures/default_water_source_animated.png index 8041b036..c4fed814 100644 Binary files a/mods/default/textures/default_water_source_animated.png and b/mods/default/textures/default_water_source_animated.png differ diff --git a/mods/default/trees.lua b/mods/default/trees.lua index 24a96cf0..c9f94120 100644 --- a/mods/default/trees.lua +++ b/mods/default/trees.lua @@ -26,6 +26,10 @@ function default.can_grow(pos) return true end +function default.on_grow_failed(pos) + minetest.get_node_timer(pos):start(300) +end + -- 'is snow nearby' function @@ -34,84 +38,6 @@ local function is_snow_nearby(pos) end --- Grow sapling - -function default.grow_sapling(pos) - if not default.can_grow(pos) then - -- try again 5 min later - minetest.get_node_timer(pos):start(300) - return - end - - local mg_name = minetest.get_mapgen_setting("mg_name") - local node = minetest.get_node(pos) - if node.name == "default:sapling" then - minetest.log("action", "A sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - if mg_name == "v6" then - default.grow_tree(pos, random(1, 4) == 1) - else - default.grow_new_apple_tree(pos) - end - elseif node.name == "default:junglesapling" then - minetest.log("action", "A jungle sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - if mg_name == "v6" then - default.grow_jungle_tree(pos) - else - default.grow_new_jungle_tree(pos) - end - elseif node.name == "default:pine_sapling" then - minetest.log("action", "A pine sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - local snow = is_snow_nearby(pos) - if mg_name == "v6" then - default.grow_pine_tree(pos, snow) - elseif snow then - default.grow_new_snowy_pine_tree(pos) - else - default.grow_new_pine_tree(pos) - end - elseif node.name == "default:acacia_sapling" then - minetest.log("action", "An acacia sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_new_acacia_tree(pos) - elseif node.name == "default:aspen_sapling" then - minetest.log("action", "An aspen sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_new_aspen_tree(pos) - elseif node.name == "default:bush_sapling" then - minetest.log("action", "A bush sapling grows into a bush at ".. - minetest.pos_to_string(pos)) - default.grow_bush(pos) - elseif node.name == "default:blueberry_bush_sapling" then - minetest.log("action", "A blueberry bush sapling grows into a bush at ".. - minetest.pos_to_string(pos)) - default.grow_blueberry_bush(pos) - elseif node.name == "default:acacia_bush_sapling" then - minetest.log("action", "An acacia bush sapling grows into a bush at ".. - minetest.pos_to_string(pos)) - default.grow_acacia_bush(pos) - elseif node.name == "default:pine_bush_sapling" then - minetest.log("action", "A pine bush sapling grows into a bush at ".. - minetest.pos_to_string(pos)) - default.grow_pine_bush(pos) - elseif node.name == "default:emergent_jungle_sapling" then - minetest.log("action", "An emergent jungle sapling grows into a tree at ".. - minetest.pos_to_string(pos)) - default.grow_new_emergent_jungle_tree(pos) - end -end - -minetest.register_lbm({ - name = "default:convert_saplings_to_node_timer", - nodenames = {"default:sapling", "default:junglesapling", - "default:pine_sapling", "default:acacia_sapling", - "default:aspen_sapling"}, - action = function(pos) - minetest.get_node_timer(pos):start(math.random(300, 1500)) - end -}) -- -- Tree generation @@ -209,7 +135,6 @@ function default.grow_tree(pos, is_apple_tree, bad) vm:update_map() end - -- Jungle tree function default.grow_jungle_tree(pos, bad) @@ -604,3 +529,78 @@ function default.sapling_on_place(itemstack, placer, pointed_thing, return itemstack end + +-- Grow sapling + +default.sapling_growth_defs = {} + +function default.register_sapling_growth(name, def) + default.sapling_growth_defs[name] = { + can_grow = def.can_grow or default.can_grow, + on_grow_failed = def.on_grow_failed or default.on_grow_failed, + grow = assert(def.grow) + } +end + +function default.grow_sapling(pos) + local node = minetest.get_node(pos) + local sapling_def = default.sapling_growth_defs[node.name] + + if not sapling_def then + minetest.log("warning", "default.grow_sapling called on undefined sapling " .. node.name) + return + end + + if not sapling_def.can_grow(pos) then + sapling_def.on_grow_failed(pos) + return + end + + minetest.log("action", "Growing sapling " .. node.name .. " at " .. minetest.pos_to_string(pos)) + sapling_def.grow(pos) +end + +local function register_sapling_growth(nodename, grow) + default.register_sapling_growth("default:" .. nodename, {grow = grow}) +end + +if minetest.get_mapgen_setting("mg_name") == "v6" then + register_sapling_growth("sapling", function(pos) + default.grow_tree(pos, random(1, 4) == 1) + end) + register_sapling_growth("junglesapling", default.grow_jungle_tree) + register_sapling_growth("pine_sapling", function(pos) + local snow = is_snow_nearby(pos) + default.grow_pine_tree(pos, snow) + end) +else + register_sapling_growth("sapling", default.grow_new_apple_tree) + register_sapling_growth("junglesapling", default.grow_new_jungle_tree) + register_sapling_growth("pine_sapling", function(pos) + local snow = is_snow_nearby(pos) + if snow then + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + end) +end + +register_sapling_growth("acacia_sapling", default.grow_new_acacia_tree) +register_sapling_growth("aspen_sapling", default.grow_new_aspen_tree) +register_sapling_growth("bush_sapling", default.grow_bush) +register_sapling_growth("blueberry_bush_sapling", default.grow_blueberry_bush) +register_sapling_growth("acacia_bush_sapling", default.grow_acacia_bush) +register_sapling_growth("pine_bush_sapling", default.grow_pine_bush) +register_sapling_growth("emergent_jungle_sapling", default.grow_new_emergent_jungle_tree) + +-- Backwards compatibility for saplings that used to use ABMs; does not need to include newer saplings. +minetest.register_lbm({ + name = "default:convert_saplings_to_node_timer", + nodenames = {"default:sapling", "default:junglesapling", + "default:pine_sapling", "default:acacia_sapling", + "default:aspen_sapling"}, + action = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end +}) diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 0c0f0896..d198f1e2 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -19,6 +19,10 @@ local function replace_old_owner_information(pos) end end +local function is_doors_upper_node(pos) + return minetest.get_node(pos).name == "doors:hidden" +end + -- returns an object to a door object or nil function doors.get(pos) local node_name = minetest.get_node(pos).name @@ -388,8 +392,11 @@ function doors.register(name, def) end end def.after_dig_node = function(pos, node, meta, digger) - minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) - minetest.check_for_falling({x = pos.x, y = pos.y + 1, z = pos.z}) + local above = pos:offset(0, 1, 0) + if is_doors_upper_node(above) then + minetest.remove_node(above) + end + minetest.check_for_falling(above) end def.on_rotate = function(pos, node, user, mode, new_param2) return false @@ -427,14 +434,20 @@ function doors.register(name, def) else def.on_blast = function(pos, intensity) minetest.remove_node(pos) + local above = pos:offset(0, 1, 0) -- hidden node doesn't get blasted away. - minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + if is_doors_upper_node(above) then + minetest.remove_node(above) + end return {name} end end def.on_destruct = function(pos) - minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + local above = pos:offset(0, 1, 0) + if is_doors_upper_node(above) then + minetest.remove_node(above) + end end def.drawtype = "mesh" diff --git a/mods/doors/locale/doors.uk.tr b/mods/doors/locale/doors.uk.tr index ae2ad14e..fc07f397 100644 --- a/mods/doors/locale/doors.uk.tr +++ b/mods/doors/locale/doors.uk.tr @@ -1,18 +1,18 @@ # textdomain: doors -Hidden Door Segment=Захована Частина Дверей +Hidden Door Segment=Прихована частина дверей Owned by @1=Власник: @1 -You do not own this locked door.=Ви не власник цих заблокованих дверей. -a locked door=заблоковані двері +You do not own this locked door.=Ви — не власник цих замкнених дверей. +a locked door=замкнені двері Wooden Door=Дерев'яні двері -Steel Door=Сталеві Двері +Steel Door=Сталеві двері Glass Door=Скляні двері -Obsidian Glass Door=Двері З Обсидіанового Скла -You do not own this trapdoor.=Ви не є власником цього люка. -a locked trapdoor=заблокований люк -Wooden Trapdoor=Дерев'яний Люк -Steel Trapdoor=Сталевий Люк -Apple Wood Fence Gate=Яблунева Дерев'яна Хвіртка -Acacia Wood Fence Gate=Дерев'яна Хвіртка З Акації -Jungle Wood Fence Gate=Дерев'яна Хвіртка З Тропічного Дерева -Pine Wood Fence Gate=Соснова Дерев'яна Хвіртка -Aspen Wood Fence Gate=Осикова Дерев'яна Хвіртка +Obsidian Glass Door=Двері з обсидіанового скла +You do not own this trapdoor.=Ви — не власник цього люка. +a locked trapdoor=замкнений люк +Wooden Trapdoor=Дерев'яний люк +Steel Trapdoor=Сталевий люк +Apple Wood Fence Gate=Яблунева хвіртка +Acacia Wood Fence Gate=Акацієва хвіртка +Jungle Wood Fence Gate=Хвіртка з тропічного дерева +Pine Wood Fence Gate=Соснова хвіртка +Aspen Wood Fence Gate=Осикова хвіртка diff --git a/mods/dye/locale/dye.uk.tr b/mods/dye/locale/dye.uk.tr index e3698b03..7bf0f45c 100644 --- a/mods/dye/locale/dye.uk.tr +++ b/mods/dye/locale/dye.uk.tr @@ -1,16 +1,16 @@ # textdomain: dye -White Dye=Біла Фарба -Grey Dye=Сіра Фарба -Dark Grey Dye=Темно-Сіра фарба -Black Dye=Чорна Фарба -Violet Dye=Фіолетова Фарба -Blue Dye=Синя Фарба -Cyan Dye=Синьо-Зелена Фарба -Dark Green Dye=Темно-Зелена Фарба -Green Dye=Зелена Фарба -Yellow Dye=Жовта Фарба -Brown Dye=Коричнева Фарба -Orange Dye=Помаранчева Фарба -Red Dye=Червона Фарба -Magenta Dye=Пурпурна Фарба -Pink Dye=Рожева Фарба +White Dye=Білий барвник +Grey Dye=Сірий барвник +Dark Grey Dye=Темно-сірий барвник +Black Dye=Чорний барвник +Violet Dye=Фіолетовий барвник +Blue Dye=Синій барвник +Cyan Dye=Синьо-зелений барвник +Dark Green Dye=Темно-зелений барвник +Green Dye=Зелений барвник +Yellow Dye=Жовтий барвник +Brown Dye=Коричневий барвник +Orange Dye=Помаранчевий барвник +Red Dye=Червоний барвник +Magenta Dye=Пурпурний барвник +Pink Dye=Рожевий барвник diff --git a/mods/farming/locale/farming.uk.tr b/mods/farming/locale/farming.uk.tr index 854491c1..75e7deae 100644 --- a/mods/farming/locale/farming.uk.tr +++ b/mods/farming/locale/farming.uk.tr @@ -1,28 +1,28 @@ # textdomain: farming -Hoe=Мотига +Hoe=Мотика Seed=Насіння -Wooden Hoe=Дерев'яна Мотига -Stone Hoe=Кам'яна Мотига -Steel Hoe=Сталева Мотига -Bronze Hoe=Бронзова Мотига -Mese Hoe=Месе Мотига -Diamond Hoe=Алмазна Мотига -Wheat Seed=Насіння Пшениці +Wooden Hoe=Дерев'яна мотика +Stone Hoe=Кам'яна мотика +Steel Hoe=Сталева мотика +Bronze Hoe=Бронзова мотика +Mese Hoe=Месе-мотика +Diamond Hoe=Діамантова мотика +Wheat Seed=Насіння пшениці Wheat=Пшениця -Flour=Мука +Flour=Борошно Bread=Хліб -Cotton Seed=Насіння Бавовнику +Cotton Seed=Насіння бавовнику Cotton=Бавовна String=Нитка Soil=Ґрунт -Wet Soil=Вологий Ґрунт -Savanna Soil=Саванновий Ґрунт -Wet Savanna Soil=Вологий Саванновий Ґрунт -Desert Sand Soil=Пустинний Піщаний Ґрунт -Wet Desert Sand Soil=Вологий Пустельний Піщаний Ґрунт +Wet Soil=Вологий ґрунт +Savanna Soil=Саванний ґрунт +Wet Savanna Soil=Вологий саванний ґрунт +Desert Sand Soil=Пустельний піщаний ґрунт +Wet Desert Sand Soil=Вологий пустельний піщаний ґрунт Straw=Солома -Straw Stair=Солом'яна Сходинка -Inner Straw Stair=Кутова Солом'яна Сходинка (Внутрішній Кут) -Outer Straw Stair=Кутова Солом'яна Сходинка (Зовнішній Кут) -Straw Slab=Солом'яна Плита -Wild Cotton=Дикий Бавовник +Straw Stair=Солом'яна сходинка +Inner Straw Stair=Кутова солом'яна сходинка (внутрішній кут) +Outer Straw Stair=Кутова солом'яна сходинка (зовнішній кут) +Straw Slab=Солом'яна плита +Wild Cotton=Дикий бавовник diff --git a/mods/fire/locale/fire.fr.tr b/mods/fire/locale/fire.fr.tr index 4d5d08ac..6218c53c 100644 --- a/mods/fire/locale/fire.fr.tr +++ b/mods/fire/locale/fire.fr.tr @@ -6,5 +6,4 @@ Flint and Steel=Briquet à silex en acier ##### not used anymore ##### -# textdomain: fire Permanent Flame=Flamme permanente diff --git a/mods/fire/locale/fire.it.tr b/mods/fire/locale/fire.it.tr index 61eae452..14ad3828 100644 --- a/mods/fire/locale/fire.it.tr +++ b/mods/fire/locale/fire.it.tr @@ -6,5 +6,4 @@ Flint and Steel=Acciarino ##### not used anymore ##### -# textdomain: fire Permanent Flame=Fiamma permanente diff --git a/mods/fire/locale/fire.ms.tr b/mods/fire/locale/fire.ms.tr index fdd20a51..ceda6cad 100644 --- a/mods/fire/locale/fire.ms.tr +++ b/mods/fire/locale/fire.ms.tr @@ -6,5 +6,4 @@ Flint and Steel=Pemetik Api ##### not used anymore ##### -# textdomain: fire Permanent Flame=Api Abadi diff --git a/mods/fire/locale/fire.ru.tr b/mods/fire/locale/fire.ru.tr index 496e81c1..aa7e8181 100644 --- a/mods/fire/locale/fire.ru.tr +++ b/mods/fire/locale/fire.ru.tr @@ -6,5 +6,4 @@ Flint and Steel=Огниво ##### not used anymore ##### -# textdomain: fire Permanent Flame=Вечный Огонь diff --git a/mods/fire/locale/fire.uk.tr b/mods/fire/locale/fire.uk.tr index 9da0beb6..da202aa7 100644 --- a/mods/fire/locale/fire.uk.tr +++ b/mods/fire/locale/fire.uk.tr @@ -1,4 +1,4 @@ # textdomain: fire Fire=Вогонь -Permanent Fire=Вічний Вогонь -Flint and Steel=Кремінь і Сталь +Permanent Fire=Вічний вогонь +Flint and Steel=Кресало diff --git a/mods/fireflies/locale/fireflies.uk.tr b/mods/fireflies/locale/fireflies.uk.tr index f1aa265f..f1bcb163 100644 --- a/mods/fireflies/locale/fireflies.uk.tr +++ b/mods/fireflies/locale/fireflies.uk.tr @@ -1,5 +1,5 @@ # textdomain: fireflies -Firefly=Світлячок -Hidden Firefly=Світлячок, що причаївся -Bug Net=Сачок Для Ловлі Комах -Firefly in a Bottle=Світлячок у Пляшці +Firefly=Світляк +Hidden Firefly=Світляк, що причаївся +Bug Net=Сачок +Firefly in a Bottle=Світляк у пляшці diff --git a/mods/flowers/locale/flowers.uk.tr b/mods/flowers/locale/flowers.uk.tr index 25d8f82a..56200293 100644 --- a/mods/flowers/locale/flowers.uk.tr +++ b/mods/flowers/locale/flowers.uk.tr @@ -1,12 +1,12 @@ # textdomain: flowers -Red Rose=Червона Троянда -Orange Tulip=Помаранчевий Тюльпан -Yellow Dandelion=Жовта Кульбабка -Green Chrysanthemum=Зелена Хризантема -Blue Geranium=Синій Геран +Red Rose=Червона троянда +Orange Tulip=Помаранчевий тюльпан +Yellow Dandelion=Жовта кульбаба +Green Chrysanthemum=Зелена хризантема +Blue Geranium=Синій журавець Viola=Фіалка -White Dandelion=Біла Кульбабка -Black Tulip=Чорний Тюльпан -Red Mushroom=Мухомор -Brown Mushroom=Коричневий Гриб -Waterlily=Водяна Лілія +White Dandelion=Біла кульбаба +Black Tulip=Чорний тюльпан +Red Mushroom=Червоний гриб +Brown Mushroom=Коричневий гриб +Waterlily=Латаття diff --git a/mods/game_commands/locale/game_commands.id.tr b/mods/game_commands/locale/game_commands.id.tr index 1ab364b2..0d586c93 100644 --- a/mods/game_commands/locale/game_commands.id.tr +++ b/mods/game_commands/locale/game_commands.id.tr @@ -1,4 +1,4 @@ # textdomain: game_commands Kill yourself to respawn=Bunuh diri untuk bangkit kembali -No static_spawnpoint defined=Tiada static_spawnpoint (titik bangkit statis) yang diatur +No static_spawnpoint defined=Tidak ada static_spawnpoint (titik bangkit statis) yang diatur You need to be online to be killed!=Anda harus daring untuk dibunuh! diff --git a/mods/game_commands/locale/game_commands.uk.tr b/mods/game_commands/locale/game_commands.uk.tr index 7e8241e8..03cd2678 100644 --- a/mods/game_commands/locale/game_commands.uk.tr +++ b/mods/game_commands/locale/game_commands.uk.tr @@ -1,4 +1,4 @@ # textdomain: game_commands -Kill yourself to respawn=Вбийте себе щоб відродися -No static_spawnpoint defined=static_spawnpoint не визначений -You need to be online to be killed!=Ви повинні бути онлайн, щоб вбити себе! +Kill yourself to respawn=Вбити себе, щоб відродитися +No static_spawnpoint defined=Немає визначеного static_spawnpoint +You need to be online to be killed!=Ви повинні бути онлайн, щоби Вас було вбито! diff --git a/mods/keys/locale/keys.uk.tr b/mods/keys/locale/keys.uk.tr index 832d1c70..6f6a681d 100644 --- a/mods/keys/locale/keys.uk.tr +++ b/mods/keys/locale/keys.uk.tr @@ -1,4 +1,4 @@ # textdomain: keys Key=Ключ -Key to @1's @2=Ключ до @2 від @1 -Skeleton Key=Ключ Кістяка +Key to @1's @2=Ключ з биркою "@2, власником якого(-ої/-их) є @1" +Skeleton Key=Заготовка ключа diff --git a/mods/map/locale/map.fr.tr b/mods/map/locale/map.fr.tr index 29f8e208..fcffb6de 100644 --- a/mods/map/locale/map.fr.tr +++ b/mods/map/locale/map.fr.tr @@ -1,3 +1,3 @@ # textdomain: map Mapping Kit=Kit de carthographie -Use with 'Minimap' key=Utiliser avec le bouton « Minimap » +Use with 'Minimap' key=Utiliser avec le bouton « Mini-carte » diff --git a/mods/map/locale/map.id.tr b/mods/map/locale/map.id.tr index cb31d0f7..c90a0293 100644 --- a/mods/map/locale/map.id.tr +++ b/mods/map/locale/map.id.tr @@ -1,3 +1,3 @@ # textdomain: map Mapping Kit=Alat Pemetaan -Use with 'Minimap' key=Pakai dengan tombol 'Peta Mini' +Use with 'Minimap' key=Gunakan dengan tombol 'Peta Mini' diff --git a/mods/map/locale/map.uk.tr b/mods/map/locale/map.uk.tr index 3f58b781..b7d6452c 100644 --- a/mods/map/locale/map.uk.tr +++ b/mods/map/locale/map.uk.tr @@ -1,3 +1,3 @@ # textdomain: map -Mapping Kit=Картографічний Комплект -Use with 'Minimap' key=Використовуйте за допомогою ключа 'Minimap' +Mapping Kit=Картографічний набір +Use with 'Minimap' key=Використовується клавішею 'Мінімапа' diff --git a/mods/mtg_craftguide/locale/mtg_craftguide.id.tr b/mods/mtg_craftguide/locale/mtg_craftguide.id.tr index 1498a0ae..d4e6ea08 100644 --- a/mods/mtg_craftguide/locale/mtg_craftguide.id.tr +++ b/mods/mtg_craftguide/locale/mtg_craftguide.id.tr @@ -34,7 +34,7 @@ G=G Any item belonging to the group(s): @1=Barang apa pun yang termasuk grup: @1 Unknown Item=Barang Tak Diketahui Fuel=Bahan Bakar -Usage @1 of @2=Pemakaian @1 dari @2 +Usage @1 of @2=Penggunaan @1 dari @2 Recipe @1 of @2=Resep @1 dari @2 Previous recipe=Resep sebelumnya Next recipe=Resep selanjutnya @@ -45,9 +45,9 @@ Search=Cari Reset=Atur ulang Previous page=Halaman sebelumnya Next page=Halaman selanjutnya -No items to show.=Tiada barang untuk ditampilkan. -No usages.=Tiada pemakaian. +No items to show.=Tidak ada barang untuk ditampilkan. +No usages.=Tidak ada penggunaan. Click again to show recipes.=Klik lagi untuk menampilkan resep. -No recipes.=Tiada resep. -Click again to show usages.=Klik lagi untuk menampilkan pemakaian. +No recipes.=Tidak ada resep. +Click again to show usages.=Klik lagi untuk menampilkan penggunaan. Recipes=Resep diff --git a/mods/mtg_craftguide/locale/mtg_craftguide.uk.tr b/mods/mtg_craftguide/locale/mtg_craftguide.uk.tr index 52d33a45..8fe78a92 100644 --- a/mods/mtg_craftguide/locale/mtg_craftguide.uk.tr +++ b/mods/mtg_craftguide/locale/mtg_craftguide.uk.tr @@ -1,10 +1,10 @@ # textdomain: mtg_craftguide Any coal=Будь-яке вугілля -Any sand=Будь-якій пісок +Any sand=Будь-який пісок Any wool=Будь-яка вовна -Any stick=Будь-яка паличка +Any stick=Будь-яка палиця Any vessel=Будь-який посуд -Any wood planks=Будь-які дерев'яні палички +Any wood planks=Будь-які дошки Any kind of stone block=Будь-який кам'яний блок Any red flower=Будь-яка червона квітка Any blue flower=Будь-яка синя квітка @@ -14,40 +14,40 @@ Any white flower=Будь-яка біла квітка Any orange flower=Будь-яка помаранчева квітка Any violet flower=Будь-яка фіолетова квітка Any yellow flower=Будь-яка жовта квітка -Any red dye=Будь-яка червона фарба -Any blue dye=Будь-яка синя фарба -Any cyan dye=Будь-яка синьо-зелена фарба -Any grey dye=Будь-яка сіра фарба -Any pink dye=Будь-яка рожева фарба -Any black dye=Будь-яка чорна фарба -Any brown dye=Будь-яка коричнева фарба -Any green dye=Будь-яка зелена фарба -Any white dye=Будь-яка біла фарба -Any orange dye=Будь-яка помаранчева фарба -Any violet dye=Будь-яка фіолетова фарба -Any yellow dye=Будь-яка жовта фарба -Any magenta dye=Будь-який пурпурна фарба -Any dark grey dye=Будь-яка темно-сіра фарба -Any dark green dye=Будь-яка темно-зелена фарба +Any red dye=Будь-який червоний барвник +Any blue dye=Будь-який синій барвник +Any cyan dye=Будь-який синьо-зелений барвник +Any grey dye=Будь-який сірий барвник +Any pink dye=Будь-який рожевий барвник +Any black dye=Будь-який чорний барвник +Any brown dye=Будь-який коричневий барвник +Any green dye=Будь-який зелений барвник +Any white dye=Будь-який білий барвник +Any orange dye=Будь-який помаранчевий барвник +Any violet dye=Будь-який фіолетовий барвник +Any yellow dye=Будь-який жовтий барвник +Any magenta dye=Будь-який пурпурний барвник +Any dark grey dye=Будь-який темно-сірий барвник +Any dark green dye=Будь-який темно-зелений барвник # Label for group ingredients -G= +G=Г Any item belonging to the group(s): @1=Будь-який предмет з груп(и): @1 Unknown Item=Невідомий предмет Fuel=Паливо -Usage @1 of @2=Використано @1 з @2 -Recipe @1 of @2=Рецепт @1 з @2 +Usage @1 of @2=Матеріал: @1 з @2 +Recipe @1 of @2=Рецепт: @1 з @2 Previous recipe=Попередній рецепт Next recipe=Наступний рецепт -Recipe is too big to be displayed.=Рецепт занадто великий для показу. +Recipe is too big to be displayed.=Рецепт завеликий для показу. Shapeless=Безформний Cooking time: @1=Час виготовлення: @1 Search=Пошук Reset=Скинути Previous page=Попередня сторінка Next page=Наступна сторінка -No items to show.=Немає елементів для показу. +No items to show.=Немає результатів. No usages.=Не використовується. -Click again to show recipes.=Натисніть ще раз, щоб показати рецепти. +Click again to show recipes.=Натисніть ще раз для рецептів. No recipes.=Немає рецептів. -Click again to show usages.=Натисніть ще раз, щоб показати використання. +Click again to show usages.=Натисніть ще раз для використань. Recipes=Рецепти diff --git a/mods/screwdriver/locale/screwdriver.uk.tr b/mods/screwdriver/locale/screwdriver.uk.tr index 363e4c4c..b88fc2a6 100644 --- a/mods/screwdriver/locale/screwdriver.uk.tr +++ b/mods/screwdriver/locale/screwdriver.uk.tr @@ -1,3 +1,3 @@ # textdomain: screwdriver Screwdriver=Викрутка -(left-click rotates face, right-click rotates axis)=(клік лівою кнопкою миші повертає край, клік правою кнопкою миші - вісь) +(left-click rotates face, right-click rotates axis)=(ЛКМ повертає грань, ПКМ — вісь) diff --git a/mods/sethome/locale/sethome.fr.tr b/mods/sethome/locale/sethome.fr.tr index d1af03b0..01345e0e 100644 --- a/mods/sethome/locale/sethome.fr.tr +++ b/mods/sethome/locale/sethome.fr.tr @@ -1,5 +1,5 @@ # textdomain: sethome -This command can only be executed in-game!= +This command can only be executed in-game!=Cette commande peut seulement être exécutée en jeu ! Can use /sethome and /home=Peut utiliser /sethome et /home Teleport you to your home point=Vous téléporter à votre domicile Teleported to home!=Téléporté à votre domicile ! diff --git a/mods/sethome/locale/sethome.id.tr b/mods/sethome/locale/sethome.id.tr index 6193446d..f5c68ddb 100644 --- a/mods/sethome/locale/sethome.id.tr +++ b/mods/sethome/locale/sethome.id.tr @@ -1,6 +1,6 @@ # textdomain: sethome -This command can only be executed in-game!= -Can use /sethome and /home=Boleh pakai /sethome dan /home +This command can only be executed in-game!=Perintah ini hanya bisa dijalankan dalam permainan! +Can use /sethome and /home=Boleh gunakan /sethome dan /home Teleport you to your home point=Teleportasi ke rumah Anda Teleported to home!=Teleportasi ke rumah! Set a home using /sethome=Atur letak rumah dengan /sethome diff --git a/mods/sethome/locale/sethome.uk.tr b/mods/sethome/locale/sethome.uk.tr index a7e310ad..f17ac777 100644 --- a/mods/sethome/locale/sethome.uk.tr +++ b/mods/sethome/locale/sethome.uk.tr @@ -1,9 +1,9 @@ # textdomain: sethome -This command can only be executed in-game!= +This command can only be executed in-game!=Ця команда може бути виконана тільки у грі! Can use /sethome and /home=Можливість використання /sethome та /home -Teleport you to your home point=Ви телепортуєтесь у свою домашню точку -Teleported to home!=Ви телепортувались додому! +Teleport you to your home point=Телепортуватися до домашньої точки +Teleported to home!=Телепортовано додому! Set a home using /sethome=Встановіть домашню точку, використовуючи /sethome -Set your home point=Встановіть домашню точку -Home set!=Домашня точка встановлена! -Player not found!=Гравець не визначений! +Set your home point=Встановити домашню точку +Home set!=Домашню точку встановлено! +Player not found!=Гравця не знайдено! diff --git a/mods/sfinv/locale/sfinv.uk.tr b/mods/sfinv/locale/sfinv.uk.tr index d7c11b2f..aff94202 100644 --- a/mods/sfinv/locale/sfinv.uk.tr +++ b/mods/sfinv/locale/sfinv.uk.tr @@ -1,2 +1,2 @@ # textdomain: sfinv -Crafting=Крафтинг +Crafting=Майстрування diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index fabd9642..bc4250d9 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -63,16 +63,19 @@ local function warn_if_exists(nodename) end end --- get node settings to use for stairs -local function get_node_vars(nodename) - - local def = minetest.registered_nodes[nodename] - - if def then - return def.light_source, def.use_texture_alpha, def.sunlight_propagates +-- Set backface culling and world-aligned textures +local function set_textures(images, worldaligntex) + local stair_images = {} + for i, image in ipairs(images) do + stair_images[i] = type(image) == "string" and {name = image} or table.copy(image) + if stair_images[i].backface_culling == nil then + stair_images[i].backface_culling = true + end + if worldaligntex and stair_images[i].align_style == nil then + stair_images[i].align_style = "world" + end end - - return nil, nil, nil + return stair_images end -- Register stair @@ -80,29 +83,8 @@ end function stairs.register_stair(subname, recipeitem, groups, images, description, sounds, worldaligntex) - local light_source, texture_alpha, sunlight = get_node_vars(recipeitem) - - -- Set backface culling and world-aligned textures - local stair_images = {} - for i, image in ipairs(images) do - if type(image) == "string" then - stair_images[i] = { - name = image, - backface_culling = true, - } - if worldaligntex then - stair_images[i].align_style = "world" - end - else - stair_images[i] = table.copy(image) - if stair_images[i].backface_culling == nil then - stair_images[i].backface_culling = true - end - if worldaligntex and stair_images[i].align_style == nil then - stair_images[i].align_style = "world" - end - end - end + local def = minetest.registered_nodes[recipeitem] or {} + local stair_images = set_textures(images, worldaligntex) local new_groups = table.copy(groups) new_groups.stair = 1 warn_if_exists("stairs:stair_" .. subname) @@ -110,14 +92,14 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, description = description, drawtype = "nodebox", tiles = stair_images, - use_texture_alpha = texture_alpha, - sunlight_propagates = sunlight, - light_source = light_source, + use_texture_alpha = def.use_texture_alpha, + sunlight_propagates = def.sunlight_propagates, + light_source = def.light_source, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, groups = new_groups, - sounds = sounds, + sounds = sounds or def.sounds, node_box = { type = "fixed", fixed = { @@ -184,25 +166,8 @@ end function stairs.register_slab(subname, recipeitem, groups, images, description, sounds, worldaligntex) - local light_source, texture_alpha, sunlight = get_node_vars(recipeitem) - - -- Set world-aligned textures - local slab_images = {} - for i, image in ipairs(images) do - if type(image) == "string" then - slab_images[i] = { - name = image, - } - if worldaligntex then - slab_images[i].align_style = "world" - end - else - slab_images[i] = table.copy(image) - if worldaligntex and image.align_style == nil then - slab_images[i].align_style = "world" - end - end - end + local def = minetest.registered_nodes[recipeitem] or {} + local slab_images = set_textures(images, worldaligntex) local new_groups = table.copy(groups) new_groups.slab = 1 warn_if_exists("stairs:slab_" .. subname) @@ -210,14 +175,14 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, description = description, drawtype = "nodebox", tiles = slab_images, - use_texture_alpha = texture_alpha, - sunlight_propagates = sunlight, - light_source = light_source, + use_texture_alpha = def.use_texture_alpha, + sunlight_propagates = def.sunlight_propagates, + light_source = def.light_source, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, groups = new_groups, - sounds = sounds, + sounds = sounds or def.sounds, node_box = { type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, @@ -324,29 +289,8 @@ end function stairs.register_stair_inner(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description) - local light_source, texture_alpha, sunlight = get_node_vars(recipeitem) - - -- Set backface culling and world-aligned textures - local stair_images = {} - for i, image in ipairs(images) do - if type(image) == "string" then - stair_images[i] = { - name = image, - backface_culling = true, - } - if worldaligntex then - stair_images[i].align_style = "world" - end - else - stair_images[i] = table.copy(image) - if stair_images[i].backface_culling == nil then - stair_images[i].backface_culling = true - end - if worldaligntex and stair_images[i].align_style == nil then - stair_images[i].align_style = "world" - end - end - end + local def = minetest.registered_nodes[recipeitem] or {} + local stair_images = set_textures(images, worldaligntex) local new_groups = table.copy(groups) new_groups.stair = 1 if full_description then @@ -359,14 +303,14 @@ function stairs.register_stair_inner(subname, recipeitem, groups, images, description = description, drawtype = "nodebox", tiles = stair_images, - use_texture_alpha = texture_alpha, - sunlight_propagates = sunlight, - light_source = light_source, + use_texture_alpha = def.use_texture_alpha, + sunlight_propagates = def.sunlight_propagates, + light_source = def.light_source, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, groups = new_groups, - sounds = sounds, + sounds = sounds or def.sounds, node_box = { type = "fixed", fixed = { @@ -416,29 +360,8 @@ end function stairs.register_stair_outer(subname, recipeitem, groups, images, description, sounds, worldaligntex, full_description) - local light_source, texture_alpha, sunlight = get_node_vars(recipeitem) - - -- Set backface culling and world-aligned textures - local stair_images = {} - for i, image in ipairs(images) do - if type(image) == "string" then - stair_images[i] = { - name = image, - backface_culling = true, - } - if worldaligntex then - stair_images[i].align_style = "world" - end - else - stair_images[i] = table.copy(image) - if stair_images[i].backface_culling == nil then - stair_images[i].backface_culling = true - end - if worldaligntex and stair_images[i].align_style == nil then - stair_images[i].align_style = "world" - end - end - end + local def = minetest.registered_nodes[recipeitem] or {} + local stair_images = set_textures(images, worldaligntex) local new_groups = table.copy(groups) new_groups.stair = 1 if full_description then @@ -451,14 +374,14 @@ function stairs.register_stair_outer(subname, recipeitem, groups, images, description = description, drawtype = "nodebox", tiles = stair_images, - use_texture_alpha = texture_alpha, - sunlight_propagates = sunlight, - light_source = light_source, + use_texture_alpha = def.use_texture_alpha, + sunlight_propagates = def.sunlight_propagates, + light_source = def.light_source, paramtype = "light", paramtype2 = "facedir", is_ground_content = false, groups = new_groups, - sounds = sounds, + sounds = sounds or def.sounds, node_box = { type = "fixed", fixed = { diff --git a/mods/stairs/locale/stairs.uk.tr b/mods/stairs/locale/stairs.uk.tr index f501b5eb..bf729a03 100644 --- a/mods/stairs/locale/stairs.uk.tr +++ b/mods/stairs/locale/stairs.uk.tr @@ -1,145 +1,145 @@ # textdomain: stairs -Glass Stair=Скляна Сходинка -Glass Slab=Скляна Плита -Inner Glass Stair=Кутова Скляна Сходинка (Внутрішній Кут) -Outer Glass Stair=Кутова Скляна Сходинка (Зовнішній Кут) -Obsidian Glass Stair=Скляна Сходинка З Обсидіану -Obsidian Glass Slab=Скляна Плита З Обсидіану -Inner Obsidian Glass Stair=Кутова Скляна Сходинка З Обсидіану (Внутрішній Кут) -Outer Obsidian Glass Stair=Кутова Скляна Сходинка З Обсидіану (Зовнішній Кут) -Wooden Stair=Яблунева Дерев'яна Сходинка -Inner Wooden Stair=Кутова Яблунева Дерев'яна Сходинка (Внутрішній Кут) -Outer Wooden Stair=Кутова Яблунева Дерев'яна Сходинка (Внутрішній Кут) -Wooden Slab=Яблунева Дерев'яна Плита -Jungle Wood Stair=Дерев'яна Сходинка З Тропічного Дерева -Inner Jungle Wood Stair=Кутова Дерев'яна Сходинка З Тропічного Дерева (Внутрішній Кут) -Outer Jungle Wood Stair=Кутова Дерев'яна Сходинка З Тропічного Дерева (Зовнішній Кут) -Jungle Wood Slab=Дерев'яна Плита З Тропічного Дерева -Pine Wood Stair=Дерев'яна Сходинка З Сосни -Inner Pine Wood Stair=Кутова Дерев'яна Сходинка З Сосни (Внутрішній Кут) -Outer Pine Wood Stair=Кутова Дерев'яна Сходинка З Сосни (Зовнішній Кут) -Pine Wood Slab=Дерев'яна Плита З Сосни -Acacia Wood Stair=Дерев'яна Сходинка З Акації -Inner Acacia Wood Stair=Кутова Дерев'яна Сходинка З Акації (Внутрішній Кут) -Outer Acacia Wood Stair=Кутова Дерев'яна Сходинка З Акації (Зовнішній Кут) -Acacia Wood Slab=Дерев'яна Плита З Акації -Aspen Wood Stair=Дерев'яна Сходинка З Осики -Inner Aspen Wood Stair=Кутова Дерев'яна Сходинка З Осики (Внутрішній Кут) -Outer Aspen Wood Stair=Кутова Дерев'яна Сходинка З Осики (Зовнішній Кут) -Aspen Wood Slab=Дерев'яна Плита З Осики -Stone Stair=Кам'яна Сходинка -Inner Stone Stair=Кутова Кам'яна Сходинка (Внутрішній Кут) -Outer Stone Stair=Кутова Кам'яна Сходинка (Зовнішній Кут) -Stone Slab=Кам'яна Плита -Cobblestone Stair=Сходинка З Кругляку -Inner Cobblestone Stair=Кутова Сходинка З Кругляку (Внутрішній Кут) -Outer Cobblestone Stair=Кутова Сходинка З Кругляку (Зовнішній Кут) -Cobblestone Slab=Плита З Кругляку -Mossy Cobblestone Stair=Мохова Сходинка З Кругляку -Inner Mossy Cobblestone Stair=Кутова Мохова Сходинка З Кругляку (Внутрішній Кут) -Outer Mossy Cobblestone Stair=Кутова Мохова Сходинка З Кругляку (Зовнішній Кут) -Mossy Cobblestone Slab=Мохова Плита З Кругляку -Stone Brick Stair=Сходинка З Кам'яної Цегли -Inner Stone Brick Stair=Кутова Сходинка З Кам'яної Цегли (Внутрішній Кут) -Outer Stone Brick Stair=Кутова Сходинка З Кам'яної Цегли (Зовнішній Кут) -Stone Brick Slab=Плита З Кам'яної Цегли -Stone Block Stair=Сходинка З Кам'яного Блоку -Inner Stone Block Stair=Кутова Сходинка З Кам'яного Блоку (Внутрішній Кут) -Outer Stone Block Stair=Кутова Сходинка З Кам'яного Блоку (Зовнішній Кут) -Stone Block Slab=Плита З Кам'яного Блоку -Desert Stone Stair=Сходинка З Пустельного Каменю -Inner Desert Stone Stair=Кутова Сходинка З Пустельного Каменю (Внутрішній Кут) -Outer Desert Stone Stair=Кутова Сходинка З Пустельного Каменю (Зовнішній Кут) -Desert Stone Slab=Плита З Пустельного Каменю -Desert Cobblestone Stair=Сходинка З Пустельного Кругляку -Inner Desert Cobblestone Stair=Кутова Сходинка З Пустельного Кругляку (Внутрішній Кут) -Outer Desert Cobblestone Stair=Кутова Сходинка З Пустельного Кругляку (Зовнішній Кут) -Desert Cobblestone Slab=Плита З Пустельного Каменю -Desert Stone Brick Stair=Сходинка З Цегли Із Пустельного Каменю -Inner Desert Stone Brick Stair=Кутова Сходинка З Цегли Із Пустельного Каменю (Внутрішній Кут) -Outer Desert Stone Brick Stair=Кутова Сходинка З Цегли Із Пустельного Каменю (Зовнішній Кут) -Desert Stone Brick Slab=Плита З Цегли Із Пустельного Каменю -Desert Stone Block Stair=Сходинка З Пустельного Кам'яного Блоку -Inner Desert Stone Block Stair=Кутова Сходинка З Пустельного Кам'яного Блоку (Внутрішній Кут) -Outer Desert Stone Block Stair=Кутова Сходинка З Пустельного Кам'яного Блоку (Зовнішній Кут) -Desert Stone Block Slab=Плита З Пустельного Кам'яного Блоку -Sandstone Stair=Сходинка З Піщанику -Inner Sandstone Stair=Кутова Сходинка З Піщанику (Внутрішній Кут) -Outer Sandstone Stair=Кутова Сходинка З Піщанику (Зовнішній Кут) -Sandstone Slab=Плита З Піщанику -Sandstone Brick Stair=Сходинка З Цегли Із Піщанику -Inner Sandstone Brick Stair=Кутова Сходинка З Цегли Із Піщанику (Внутрішній Кут) -Outer Sandstone Brick Stair=Кутова Сходинка З Цегли Із Піщанику (Зовнішній Кут) -Sandstone Brick Slab=Плита З Цегли Із Піщанику -Sandstone Block Stair=Сходинка З Блоку Із Піщанику -Inner Sandstone Block Stair=Кутова Сходинка З Блоку Із Піщанику (Внутрішній Кут) -Outer Sandstone Block Stair=Кутова Сходинка З Блоку Із Піщанику (Зовнішній Кут) -Sandstone Block Slab=Плита З Блоку Із Піщанику -Desert Sandstone Stair=Сходинка З Пустельного Піщанику -Inner Desert Sandstone Stair=Кутова Сходинка З Пустельного Піщанику (Внутрішній Кут) -Outer Desert Sandstone Stair=Кутова Сходинка З Пустельного Піщанику (Зовнішній Кут) -Desert Sandstone Slab=Плита З Пустельного Піщанику -Desert Sandstone Brick Stair=Сходинка З Цегли Із Пустельного Піщанику -Inner Desert Sandstone Brick Stair=Кутова Сходинка З Цегли Із Пустельного Піщанику (Внутрішній Кут) -Outer Desert Sandstone Brick Stair=Кутова Сходинка З Цегли Із Пустельного Піщанику (Зовнішній Кут) -Desert Sandstone Brick Slab=Плита З Цегли Із Пустельного Піщанику -Desert Sandstone Block Stair=Сходинка З Блоку Із Пустельного Піщанику -Inner Desert Sandstone Block Stair=Кутова Сходинка З Блоку Із Пустельного Піщанику (Внутрішній Кут) -Outer Desert Sandstone Block Stair=Кутова Сходинка З Блоку Із Пустельного Піщанику (Зовнішній Кут) -Desert Sandstone Block Slab=Плита З Блоку Із Пустельного Піщанику -Silver Sandstone Stair=Сходинка З Срібного Піщанику -Inner Silver Sandstone Stair=Кутова Сходинка З Срібного Піщанику (Внутрішній Кут) -Outer Silver Sandstone Stair=Кутова Сходинка З Срібного Піщанику (Зовнішній Кут) -Silver Sandstone Slab=Плита З Срібного Піщанику -Silver Sandstone Brick Stair=Сходинка З Цегли Із Срібного Піщанику -Inner Silver Sandstone Brick Stair=Кутова Сходинка З Цегли Із Срібного Піщанику (Внутрішній Кут) -Outer Silver Sandstone Brick Stair=Кутова Сходинка З Цегли Із Срібного Піщанику (Зовнішній Кут) -Silver Sandstone Brick Slab=Плита З Цегли Із Срібного Піщанику -Silver Sandstone Block Stair=Сходинка З Блоку Із Срібного Піщанику -Inner Silver Sandstone Block Stair=Кутова Сходинка З Блоку Із Срібного Піщанику (Внутрішній Кут) -Outer Silver Sandstone Block Stair=Кутова Сходинка З Блоку Із Срібного Піщанику (Зовнішній Кут) -Silver Sandstone Block Slab=Плита З Блоку Із Срібного Піщанику -Obsidian Stair=Обсидіанова Сходинка -Inner Obsidian Stair=Кутова Обсидіанова Сходинка (Внутрішній Кут) -Outer Obsidian Stair=Кутова Обсидіанова Сходинка (Зовнішній Кут) -Obsidian Slab=Обсидіанова Плита -Obsidian Brick Stair=Сходинка З Обсидіанової Цегли -Inner Obsidian Brick Stair=Кутова Сходинка З Обсидіанової Цегли (Внутрішній Кут) -Outer Obsidian Brick Stair=Кутова Сходинка З Обсидіанової Цегли (Зовнішній Кут) -Obsidian Brick Slab=Плита З Обсидіанової Цегли -Obsidian Block Stair=Сходинка З Обсидіанового Блоку -Inner Obsidian Block Stair=Кутова Сходинка З Обсидіанового Блоку (Внутрішній Кут) -Outer Obsidian Block Stair=Кутова Сходинка З Обсидіанового Блоку (Зовнішній Кут) -Obsidian Block Slab=Плита З Обсидіанового Блоку -Brick Stair=Сходинка З Цегли -Inner Brick Stair=Кутова Сходинка З Цегли (Внутрішній Кут) -Outer Brick Stair=Кутова Сходинка З Цегли (Зовнішній Кут) -Brick Slab=Плита З Цегли -Steel Block Stair=Сходинка Із Сталевого Блоку -Inner Steel Block Stair=Кутова Сходинка Із Сталевого Блоку (Внутрішній Кут) -Outer Steel Block Stair=Кутова Сходинка Із Сталевого Блоку (Зовнішній Кут) -Steel Block Slab=Плита Із Сталевого Блоку -Tin Block Stair=Сходинка З Олов'яного Блоку -Inner Tin Block Stair=Кутова Сходинка З Олов'яного Блоку (Внутрішній Кут) -Outer Tin Block Stair=Кутова Сходинка З Олов'яного Блоку (Зовнішній Кут) -Tin Block Slab=Плита З Олов'яного Блоку -Copper Block Stair=Сходинка З Мідного Блоку -Inner Copper Block Stair=Кутова Сходинка З Мідного Блоку (Внутрішній Кут) -Outer Copper Block Stair=Кутова Сходинка З Мідного Блоку (Зовнішній Кут) -Copper Block Slab=Плита З Мідного Блоку -Bronze Block Stair=Сходинка З Бронзового Блоку -Inner Bronze Block Stair=Кутова Сходинка З Бронзового Блоку (Внутрішній Кут) -Outer Bronze Block Stair=Кутова Сходинка З Бронзового Блоку (Зовнішній Кут) -Bronze Block Slab=Плита З Бронзового Блоку -Gold Block Stair=Сходинка З Золотого Блоку -Inner Gold Block Stair=Сходинка З Золотого Блоку (Внутрішній Кут) -Outer Gold Block Stair=Сходинка З Золотого Блоку (Зовнішній Кут) -Gold Block Slab=Плита З Золотого Блоку -Ice Stair=Крижана Сходинка -Inner Ice Stair=Кутова Крижана Сходинка (Внутрішній Кут) -Outer Ice Stair=Кутова Крижана Сходинка (Зовнішній Кут) -Ice Slab=Крижана Плита -Snow Block Stair=Ступінь З Крижаного Блоку -Inner Snow Block Stair=Кутова Ступінь З Крижаного Блоку (Внутрішній Кут) -Outer Snow Block Stair=Кутова Ступінь З Крижаного Блоку (Зовнішній Кут) -Snow Block Slab=Плита З Крижаного Блоку +Glass Stair=Скляна сходинка +Glass Slab=Скляна плита +Inner Glass Stair=Кутова скляна сходинка (внутрішній кут) +Outer Glass Stair=Кутова скляна сходинка (зовнішній кут) +Obsidian Glass Stair=Сходинка з обсидіанового скла +Obsidian Glass Slab=Плита з обсидіанового скла +Inner Obsidian Glass Stair=Кутова сходинка з обсидіанового скла (внутрішній кут) +Outer Obsidian Glass Stair=Кутова сходинка з обсидіанового скла (зовнішній кут) +Wooden Stair=Дерев'яна сходинка +Inner Wooden Stair=Кутова дерев'яна сходинка (внутрішній кут) +Outer Wooden Stair=Кутова дерев'яна сходинка (зовнішній кут) +Wooden Slab=Дерев'яна плита +Jungle Wood Stair=Сходинка з тропічного дерева +Inner Jungle Wood Stair=Кутова сходинка з тропічного дерева (внутрішній кут) +Outer Jungle Wood Stair=Кутова сходинка з тропічного дерева (зовнішній кут) +Jungle Wood Slab=Плита з тропічного дерева +Pine Wood Stair=Соснова сходинка +Inner Pine Wood Stair=Кутова соснова сходинка (внутрішній кут) +Outer Pine Wood Stair=Кутова соснова сходинка (зовнішній кут) +Pine Wood Slab=Соснова плита +Acacia Wood Stair=Акацієва сходинка +Inner Acacia Wood Stair=Кутова акацієва сходинка (внутрішній кут) +Outer Acacia Wood Stair=Кутова акацієва сходинка (зовнішній кут) +Acacia Wood Slab=Акацієва плита +Aspen Wood Stair=Осикова сходинка +Inner Aspen Wood Stair=Кутова осикова сходинка (внутрішній кут) +Outer Aspen Wood Stair=Кутова осикова сходинка (зовнішній кут) +Aspen Wood Slab=Осикова плита +Stone Stair=Кам'яна сходинка +Inner Stone Stair=Кутова кам'яна сходинка (внутрішній кут) +Outer Stone Stair=Кутова кам'яна сходинка (зовнішній кут) +Stone Slab=Кам'яна плита +Cobblestone Stair=Круглякова сходинка +Inner Cobblestone Stair=Кутова круглякова сходинка (внутрішній кут) +Outer Cobblestone Stair=Кутова круглякова сходинка (зовнішній кут) +Cobblestone Slab=Круглякова плита +Mossy Cobblestone Stair=Сходинка з моховитого кругляку +Inner Mossy Cobblestone Stair=Кутова сходинка з моховитого кругляку (внутрішній кут) +Outer Mossy Cobblestone Stair=Кутова сходинка з моховитого кругляку (зовнішній кут) +Mossy Cobblestone Slab=Плита з моховитого кругляку +Stone Brick Stair=Сходинка з кам'яної цегли +Inner Stone Brick Stair=Кутова сходинка з кам'яної цегли (внутрішній кут) +Outer Stone Brick Stair=Кутова сходинка з кам'яної цегли (зовнішній кут) +Stone Brick Slab=Плита з кам'яної цегли +Stone Block Stair=Сходинка з блоку каменю +Inner Stone Block Stair=Кутова сходинка з блоку каменю (внутрішній кут) +Outer Stone Block Stair=Кутова сходинка з блоку каменю (зовнішній кут) +Stone Block Slab=Плита з блоку каменю +Desert Stone Stair=Сходинка з пустельного каменю +Inner Desert Stone Stair=Кутова сходинка з пустельного каменю (внутрішній кут) +Outer Desert Stone Stair=Кутова сходинка з пустельного каменю (зовнішній кут) +Desert Stone Slab=Плита з пустельного каменю +Desert Cobblestone Stair=Сходинка з пустельного кругляку +Inner Desert Cobblestone Stair=Кутова сходинка з пустельного кругляку (внутрішній кут) +Outer Desert Cobblestone Stair=Кутова сходинка з пустельного кругляку (зовнішній кут) +Desert Cobblestone Slab=Плита з пустельного кругляку +Desert Stone Brick Stair=Сходинка з цегли з пустельного каменю +Inner Desert Stone Brick Stair=Кутова сходинка з цегли з пустельного каменю (внутрішній кут) +Outer Desert Stone Brick Stair=Кутова сходинка з цегли з пустельного каменю (зовнішній кут) +Desert Stone Brick Slab=Плита з цегли з пустельного каменю +Desert Stone Block Stair=Сходинка з блоку пустельного каменю +Inner Desert Stone Block Stair=Кутова сходинка з блоку пустельного каменю (внутрішній кут) +Outer Desert Stone Block Stair=Кутова сходинка з блоку пустельного каменю (зовнішній кут) +Desert Stone Block Slab=Плита з блоку пустельного каменю +Sandstone Stair=Пісковикова сходинка +Inner Sandstone Stair=Кутова пісковикова сходинка (внутрішній кут) +Outer Sandstone Stair=Кутова пісковикова сходинка (зовнішній кут) +Sandstone Slab=Пісковикова плита +Sandstone Brick Stair=Сходинка з пісковикової цегли +Inner Sandstone Brick Stair=Кутова сходинка з пісковикової цегли (внутрішній кут) +Outer Sandstone Brick Stair=Кутова сходинка з пісковикової цегли (зовнішній кут) +Sandstone Brick Slab=Плита з пісковикової цегли +Sandstone Block Stair=Сходинка з блоку пісковику +Inner Sandstone Block Stair=Кутова сходинка з блоку пісковику (внутрішній кут) +Outer Sandstone Block Stair=Кутова сходинка з блоку пісковику (зовнішній кут) +Sandstone Block Slab=Плита з блоку пісковику +Desert Sandstone Stair=Сходинка з пустельного пісковику +Inner Desert Sandstone Stair=Кутова сходинка з пустельного пісковику (внутрішній кут) +Outer Desert Sandstone Stair=Кутова сходинка з пустельного пісковику (зовнішній кут) +Desert Sandstone Slab=Плита з пустельного пісковику +Desert Sandstone Brick Stair=Сходинка з цегли з пустельного пісковику +Inner Desert Sandstone Brick Stair=Кутова сходинка з цегли з пустельного пісковику (внутрішній кут) +Outer Desert Sandstone Brick Stair=Кутова сходинка з цегли з пустельного пісковику (зовнішній кут) +Desert Sandstone Brick Slab=Плита з цегли з пустельного пісковику +Desert Sandstone Block Stair=Сходинка з блоку пустельного пісковику +Inner Desert Sandstone Block Stair=Кутова сходинка з блоку пустельного пісковику (внутрішній кут) +Outer Desert Sandstone Block Stair=Кутова сходинка з блоку пустельного пісковику (зовнішній кут) +Desert Sandstone Block Slab=Плита з блоку пустельного пісковику +Silver Sandstone Stair=Сходинка зі срібного пісковику +Inner Silver Sandstone Stair=Кутова сходинка зі срібного пісковику (внутрішній кут) +Outer Silver Sandstone Stair=Кутова сходинка зі срібного пісковику (зовнішній кут) +Silver Sandstone Slab=Плита зі срібного пісковику +Silver Sandstone Brick Stair=Сходинка з цегли зі срібного пісковику +Inner Silver Sandstone Brick Stair=Кутова сходинка з цегли зі срібного пісковику (внутрішній кут) +Outer Silver Sandstone Brick Stair=Кутова сходинка з цегли зі срібного пісковику (зовнішній кут) +Silver Sandstone Brick Slab=Плита з цегли зі срібного пісковику +Silver Sandstone Block Stair=Сходинка з блоку срібного пісковику +Inner Silver Sandstone Block Stair=Кутова сходинка з блоку срібного пісковику (внутрішній кут) +Outer Silver Sandstone Block Stair=Кутова сходинка з блоку срібного пісковику (зовнішній кут) +Silver Sandstone Block Slab=Плита з блоку срібного пісковику +Obsidian Stair=Обсидіанова сходинка +Inner Obsidian Stair=Кутова обсидіанова сходинка (внутрішній кут) +Outer Obsidian Stair=Кутова обсидіанова сходинка (зовнішній кут) +Obsidian Slab=Обсидіанова плита +Obsidian Brick Stair=Сходинка з обсидіанової цегли +Inner Obsidian Brick Stair=Кутова сходинка з обсидіанової цегли (внутрішній кут) +Outer Obsidian Brick Stair=Кутова сходинка з обсидіанової цегли (зовнішній кут) +Obsidian Brick Slab=Плита з обсидіанової цегли +Obsidian Block Stair=Сходинка з блоку обсидіану +Inner Obsidian Block Stair=Кутова сходинка з блоку обсидіану (внутрішній кут) +Outer Obsidian Block Stair=Кутова сходинка з блоку обсидіану (зовнішній кут) +Obsidian Block Slab=Плита з блоку обсидіану +Brick Stair=Цегляна сходинка +Inner Brick Stair=Кутова цегляна сходинка (внутрішній кут) +Outer Brick Stair=Кутова цегляна сходинка (зовнішній кут) +Brick Slab=Цегляна плита +Steel Block Stair=Сходинка з блоку сталі +Inner Steel Block Stair=Кутова сходинка з блоку сталі (внутрішній кут) +Outer Steel Block Stair=Кутова сходинка з блоку сталі (зовнішній кут) +Steel Block Slab=Плита з блоку сталі +Tin Block Stair=Сходинка з блоку олова +Inner Tin Block Stair=Кутова сходинка з блоку олова (внутрішній кут) +Outer Tin Block Stair=Кутова сходинка з блоку олова (зовнішній кут) +Tin Block Slab=Плита з блоку олова +Copper Block Stair=Сходинка з блоку міді +Inner Copper Block Stair=Кутова сходинка з блоку міді (внутрішній кут) +Outer Copper Block Stair=Кутова сходинка з блоку міді (зовнішній кут) +Copper Block Slab=Плита з блоку міді +Bronze Block Stair=Сходинка з блоку бронзи +Inner Bronze Block Stair=Кутова сходинка з блоку бронзи (внутрішній кут) +Outer Bronze Block Stair=Кутова сходинка з блоку бронзи (зовнішній кут) +Bronze Block Slab=Плита з блоку бронзи +Gold Block Stair=Сходинка з блоку золота +Inner Gold Block Stair=Кутова сходинка з блоку золота (внутрішній кут) +Outer Gold Block Stair=Кутова сходинка з блоку золота (зовнішній кут) +Gold Block Slab=Плита з блоку золота +Ice Stair=Крижана сходинка +Inner Ice Stair=Кутова крижана сходинка (внутрішній кут) +Outer Ice Stair=Кутова крижана сходинка (зовнішній кут) +Ice Slab=Крижана плита +Snow Block Stair=Сходинка з блоку снігу +Inner Snow Block Stair=Кутова сходинка з блоку снігу (внутрішній кут) +Outer Snow Block Stair=Кутова сходинка з блоку снігу (зовнішній кут) +Snow Block Slab=Плита з блоку снігу diff --git a/mods/tnt/locale/tnt.uk.tr b/mods/tnt/locale/tnt.uk.tr index 684466d5..51865497 100644 --- a/mods/tnt/locale/tnt.uk.tr +++ b/mods/tnt/locale/tnt.uk.tr @@ -1,4 +1,4 @@ # textdomain: tnt Gun Powder=Порох -TNT Stick=Тротилова Паличка +TNT Stick=Тротилова шашка TNT=Тротил diff --git a/mods/vessels/init.lua b/mods/vessels/init.lua index 4bd0fb4d..77cf98b9 100644 --- a/mods/vessels/init.lua +++ b/mods/vessels/init.lua @@ -81,6 +81,15 @@ local vessels_shelf_def = { minetest.remove_node(pos) return drops end, + on_metadata_inventory_put = function(pos) + update_vessels_shelf(pos) + end, + on_metadata_inventory_take = function(pos) + update_vessels_shelf(pos) + end, + on_metadata_inventory_move = function(pos) + update_vessels_shelf(pos) + end, } default.set_inventory_action_loggers(vessels_shelf_def, "vessels shelf") minetest.register_node("vessels:shelf", vessels_shelf_def) diff --git a/mods/vessels/locale/vessels.uk.tr b/mods/vessels/locale/vessels.uk.tr index 50258358..34165d97 100644 --- a/mods/vessels/locale/vessels.uk.tr +++ b/mods/vessels/locale/vessels.uk.tr @@ -1,8 +1,8 @@ # textdomain: vessels -Empty Vessels Shelf=Полиця з Пустим Посудом -Vessels Shelf (@1 items)=Полиця з Посудом (@1 предмета) -Vessels Shelf=Полиця з Посудом -Empty Glass Bottle=Порожня Скляна Пляшка -Empty Drinking Glass=Порожня Склянка -Empty Heavy Steel Bottle=Порожня Сталева Пляшка -Glass Fragments=Скляні Уламки +Empty Vessels Shelf=Пуста полиця для посуду +Vessels Shelf (@1 items)=Полиця для посуду (@1 предм.) +Vessels Shelf=Полиця для посуду +Empty Glass Bottle=Порожня скляна пляшка +Empty Drinking Glass=Порожня склянка +Empty Heavy Steel Bottle=Порожня важка сталева пляшка +Glass Fragments=Скляні уламки diff --git a/mods/walls/locale/walls.uk.tr b/mods/walls/locale/walls.uk.tr index f92d7cc4..25bdd268 100644 --- a/mods/walls/locale/walls.uk.tr +++ b/mods/walls/locale/walls.uk.tr @@ -1,4 +1,4 @@ # textdomain: walls -Cobblestone Wall=Паркан З Кругляку -Mossy Cobblestone Wall=Паркан З Мохового Кругляку -Desert Cobblestone Wall=Паркан З Пустельного Кругляку +Cobblestone Wall=Кругляковий паркан +Mossy Cobblestone Wall=Паркан з моховитого кругляку +Desert Cobblestone Wall=Паркан з пустельного кругляку diff --git a/mods/wool/locale/wool.uk.tr b/mods/wool/locale/wool.uk.tr index b9a3f7a1..24dbed7f 100644 --- a/mods/wool/locale/wool.uk.tr +++ b/mods/wool/locale/wool.uk.tr @@ -1,16 +1,16 @@ # textdomain: wool -White Wool=Біла Шерсть -Grey Wool=Сіра Шерсть -Dark Grey Wool=Темно-Сіра Шерсть -Black Wool=Чорна Шерсть -Violet Wool=Фіолетова Шерсть -Blue Wool=Синя Шерсть -Cyan Wool=Голуба Шерсть -Dark Green Wool=Темно-Зелена Шерсть -Green Wool=Зелена Шерсть -Yellow Wool=Жовта Шерсть -Brown Wool=Коричнева Шерсть -Orange Wool=Оранжева Шерсть -Red Wool=Червона Шерсть -Magenta Wool=Пурпурна Шерсть -Pink Wool=Рожева Шерсть +White Wool=Біла вовна +Grey Wool=Сіра вовна +Dark Grey Wool=Темно-сіра вовна +Black Wool=Чорна вовна +Violet Wool=Фіолетова вовна +Blue Wool=Синя вовна +Cyan Wool=Синьо-зелена вовна +Dark Green Wool=Темно-зелена вовна +Green Wool=Зелена вовна +Yellow Wool=Жовта вовна +Brown Wool=Коричнева вовна +Orange Wool=Помаранчева вовна +Red Wool=Червона вовна +Magenta Wool=Пурпурна вовна +Pink Wool=Рожева вовна diff --git a/mods/xpanes/locale/xpanes.uk.tr b/mods/xpanes/locale/xpanes.uk.tr index d4b4b5c8..41033bd6 100644 --- a/mods/xpanes/locale/xpanes.uk.tr +++ b/mods/xpanes/locale/xpanes.uk.tr @@ -1,6 +1,6 @@ # textdomain: xpanes -Glass Pane=Скляна Панель -Obsidian Glass Pane=Скляна Панель З Обсидіану -Steel Bars=Сталева Решітка -Steel Bar Door=Сталеві Двері З Решіткою -Steel Bar Trapdoor=Сталевий Люк З Решіткою +Glass Pane=Скляна панель +Obsidian Glass Pane=Панель з обсидіанового скла +Steel Bars=Ґрати +Steel Bar Door=Двері з ґратами +Steel Bar Trapdoor=Люк з ґратами