Compare commits

..

3 Commits
dev ... master

Author SHA1 Message Date
bri cassa 0c40684377 Merge branch 'dev' 2022-09-25 15:02:45 +02:00
bri cassa f7f90d8a29 Merge branch 'dev' 2022-09-01 21:39:08 +02:00
bri cassa 8c9c50e590 Merge tag '5.5.1'
5.5.1
2022-08-24 18:52:13 +02:00
146 changed files with 1082 additions and 1314 deletions

View File

@ -1,10 +1,6 @@
unused_args = false
allow_defined_top = true
globals = {
"default"
}
read_globals = {
"DIR_DELIM",
"minetest",

View File

@ -1,27 +1,13 @@
# Minetest Game
[![ContentDB](https://content.minetest.net/packages/Minetest/minetest_game/shields/title/)](https://content.minetest.net/packages/Minetest/minetest_game/)
The default game bundled in the Minetest engine.
Minetest Game (abbreviated MTG) is a simple and peaceful sandbox game, with no
real goals or built-in enemy mobs.
For further information, check [this forum topic](https://forum.minetest.net/viewtopic.php?f=15&t=9724).
While it provides a basic gameplay experience out of the box, it is best played
with mods.
Minetest Game is currently in maintenance-only mode, meaning it will not see new
gameplay features or anything else that breaks compatibility (See
[#2710](https://github.com/minetest/minetest_game/issues/2710)).
Also see the [Minetest Wiki](https://wiki.minetest.net/Subgames/Minetest_Game) for more information.
## Installation
### ContentDB
* Content > Browse Online Content
* Search for Minetest Game
* Click Install
### Manually
- Unzip the archive, rename the folder to `minetest_game` and
place it in .. `minetest/games/`
@ -39,7 +25,7 @@ The Minetest Game GitHub `master` `HEAD` is generally compatible with the GitHub
Additionally, when the Minetest engine is tagged to be a certain version (e.g.
`0.4.10`), Minetest Game is tagged with the version, too.
When stable releases are made, Minetest Game and the Minetest engine is packaged
When stable releases are made, Minetest Game and the Minetest engine is packaged
and made available at [www.minetest.net](https://www.minetest.net/downloads/).
## Licensing

View File

@ -1,4 +1,3 @@
title = Notre Ami Le Cube 1.6
author = Minetest and Sys4
description = A basic exploration, mining, crafting, and building, sandbox game with no NPCs, monsters, or animals. Minetest Game is usually used with mods added, and many mods are available for this game. Reliably maintained by Minetest Engine core developers.
min_minetest_version = 5.8

View File

@ -49,8 +49,6 @@ Beds API
* `beds.read_spawns() ` Returns a table containing players respawn positions
* `beds.kick_players()` Forces all players to leave bed
* `beds.skip_night()` Sets world time to morning and saves respawn position of all players currently sleeping
* `beds.day_interval` Is a table with keys "start" and "finish". Allows you
to set the period of the day (timeofday format). Default: `{ start = 0.2, finish = 0.805 }`.
### Bed definition
@ -1028,27 +1026,6 @@ 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
-----
@ -1163,9 +1140,8 @@ the log.
`default.set_inventory_action_loggers(def, name)`
* hooks the callbacks `on_metadata_inventory_move`,
* sets 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

View File

@ -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 minetest.get_item_group(node2.name, "bed") ~= 2 or
node.param2 ~= node2.param2 then
if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or
not node.param2 == node2.param2 then
return false
end
if minetest.is_protected(p, user:get_player_name()) then

View File

@ -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",
}

View File

@ -181,32 +181,12 @@ 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()
local tod = minetest.get_timeofday()
if tod > beds.day_interval.start and tod < beds.day_interval.finish then
if tod > 0.2 and tod < 0.805 then
if beds.player[name] then
lay_down(player, nil, nil, false)
end
@ -226,8 +206,17 @@ function beds.on_rightclick(pos, player)
update_formspecs(false)
end
-- skip the night and let all players stand up
if check_in_beds() then
schedule_update()
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)
end
end
@ -260,7 +249,13 @@ minetest.register_on_leaveplayer(function(player)
lay_down(player, nil, nil, false, true)
beds.player[name] = nil
if check_in_beds() then
schedule_update()
minetest.after(2, function()
update_formspecs(is_night_skip_enabled())
if is_night_skip_enabled() then
beds.skip_night()
beds.kick_players()
end
end)
end
end)

View File

@ -16,11 +16,6 @@ beds.formspec = "size[8,11;true]" ..
"bgcolor[#080808BB;true]" ..
"button_exit[2,10;4,0.75;leave;" .. esc(S("Leave Bed")) .. "]"
beds.day_interval = {
start = 0.2,
finish = 0.805,
}
local modpath = minetest.get_modpath("beds")
-- Load files

View File

@ -1,10 +1,10 @@
# textdomain: beds
Fancy Bed=Ranjang Mewah
Simple Bed=Ranjang Sederhana
This bed is already occupied!=Ranjang telah terisi!
You have to stop moving before going to bed!=Anda harus diam untuk tidur!
This bed is already occupied!=
You have to stop moving before going to bed!=
Good morning.=Selamat pagi.
@1 of @2 players are in bed=@1 dari @2 pemain sedang tidur
Force night skip=Paksa lewati malam
You can only sleep at night.=Anda hanya bisa tidur pada waktu malam.
You can only sleep at night.=Anda hanya dapat tidur pada waktu malam.
Leave Bed=Tinggalkan Ranjang

View File

@ -1,10 +1,10 @@
# textdomain: beds
Fancy Bed=Katil Beragam
Simple Bed=Katil Biasa
This bed is already occupied!=Katil ini sudah diduduki!
You have to stop moving before going to bed!=Anda perlu berhenti bergerak sebelum tidur!
This bed is already occupied!=
You have to stop moving before going to bed!=
Good morning.=Selamat pagi.
@1 of @2 players are in bed=@1 daripada @2 pemain sedang tidur
Force night skip=Paksa langkau malam
You can only sleep at night.=Anda hanya boleh tidur pada waktu malam.
Leave Bed=Tinggalkan Katil
Leave Bed=Bangun

View File

@ -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=Встати з ліжка

View File

@ -1,8 +1,8 @@
# textdomain: beds
Fancy Bed=花式床
Simple Bed=簡易床
This bed is already occupied!=這個床已經被占據了!
You have to stop moving before going to bed!=你必須在上床前停止移動!
This bed is already occupied!=
You have to stop moving before going to bed!=
Good morning.=早安!
@1 of @2 players are in bed=@2位玩家中的@1位在床上
Force night skip=強制跳過夜晚

View File

@ -1,3 +1,3 @@
# textdomain: binoculars
Binoculars=Teropong
Use with 'Zoom' key=Gunakan dengan tombol 'Zum'
Use with 'Zoom' key=Pakai dengan tombol 'Zoom'

View File

@ -1,3 +1,3 @@
# textdomain: binoculars
Binoculars=Бінокль
Use with 'Zoom' key=Використовується клавішею 'Наближення'
Use with 'Zoom' key=Використовується з правами 'Zoom'

View File

@ -1,4 +1,4 @@
# textdomain: boats
Boat cruise mode on=Mod jelajah bot dihidupkan
Boat cruise mode off=Mod jelajah bot dimatikan
Boat cruise mode on=Mod bot layar makan angin dibolehkan
Boat cruise mode off=Mod bot layar makan angin dilumpuhkan
Boat=Bot

View File

@ -1,4 +1,4 @@
# textdomain: boats
Boat cruise mode on=Автоход лодки включен
Boat cruise mode off=Автоход лодки выключен
Boat cruise mode on=Режим путешествия на лодке включен
Boat cruise mode off=Режим путешествия на лодке выключен
Boat=Лодка

View File

@ -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
local bones_def = {
minetest.register_node("bones:bones", {
description = S("Bones"),
tiles = {
"bones_top.png^[transform2",
@ -130,11 +130,7 @@ local bones_def = {
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
@ -228,7 +224,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 then
if air and not minetest.is_protected(air, player_name) then
pos = air
else
bones_mode = "drop"

View File

@ -1,8 +1,8 @@
# textdomain: bones
Bones=Ben
@1's old bones=@1s Gamla ben
@1 died at @2.=@1 dog på @2.
@1 died at @2, and dropped their inventory.=@1 dog på @2, och tappade deras saker.
@1 died at @2.=@1 dog på @a.
@1 died at @2, and dropped their inventory.=@1 dog på @a, och tappade deras saker.
@1 died at @2, and bones were placed.=@1 dog på @2, och deras ben var placerade.
@1's fresh bones=@1s färska ben
@1's bones=@1s ben

View File

@ -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

View File

@ -1,5 +1,5 @@
# textdomain: bucket
Empty Bucket=空のバケツ
Water Bucket=水入りバケツ
River Water Bucket=川水入りバケツ
River Water Bucket=川水入りバケツ
Lava Bucket=溶岩入りバケツ

View File

@ -1,5 +1,5 @@
# textdomain: bucket
Empty Bucket=Порожнє відро
Water Bucket=Відро з водою
River Water Bucket=Відро з річковою водою
Lava Bucket=Відро з лавою
Empty Bucket=Пусте Відро
Water Bucket=Відро З Водою
River Water Bucket=Відро З Річною Водою
Lava Bucket=Відро З Лавою

View File

@ -1,4 +1,4 @@
# textdomain: butterflies
White Butterfly=Білий метелик
Red Butterfly=Червоний метелик
Violet Butterfly=Фіолетовий метелик
White Butterfly=Білий Метелик
Red Butterfly=Червоний Метелик
Violet Butterfly=Фіолетовий Метелик

View File

@ -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=Гальмівні Рейки

View File

@ -46,36 +46,34 @@ end
dofile(minetest.get_modpath("creative") .. "/inventory.lua")
if minetest.is_creative_enabled("") then
minetest.register_on_mods_loaded(function()
-- Dig time is modified according to difference (leveldiff) between tool
-- 'maxlevel' and node 'level'. Digtime is divided by the larger of
-- leveldiff and 1.
-- To speed up digging in creative, hand 'maxlevel' and 'digtime' have been
-- increased such that nodes of differing levels have an insignificant
-- effect on digtime.
local digtime = 42
local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
-- Dig time is modified according to difference (leveldiff) between tool
-- 'maxlevel' and node 'level'. Digtime is divided by the larger of
-- leveldiff and 1.
-- To speed up digging in creative, hand 'maxlevel' and 'digtime' have been
-- increased such that nodes of differing levels have an insignificant
-- effect on digtime.
local digtime = 42
local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256}
-- Override the hand tool
minetest.override_item("", {
range = 10,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level = 3,
groupcaps = {
crumbly = caps,
cracky = caps,
snappy = caps,
choppy = caps,
oddly_breakable_by_hand = caps,
-- dig_immediate group doesn't use value 1. Value 3 is instant dig
dig_immediate =
{times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256},
},
damage_groups = {fleshy = 10},
}
})
end)
-- Override the hand tool
minetest.override_item("", {
range = 10,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level = 3,
groupcaps = {
crumbly = caps,
cracky = caps,
snappy = caps,
choppy = caps,
oddly_breakable_by_hand = caps,
-- dig_immediate group doesn't use value 1. Value 3 is instant dig
dig_immediate =
{times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256},
},
damage_groups = {fleshy = 10},
}
})
end
-- Unlimited node placement

View File

@ -150,10 +150,9 @@ function creative.register_tab(name, title, items)
creative.update_creative_inventory(player_name, items)
local inv = player_inventory[player_name]
local pagenum = math.floor(inv.start_i / (4*8) + 1)
local pagemax = math.max(math.ceil(inv.size / (4*8)), 1)
local pagemax = math.ceil(inv.size / (4*8))
local esc = minetest.formspec_escape
return sfinv.make_formspec(player, context,
(inv.size == 0 and ("label[3,2;"..esc(S("No items to show.")).."]") or "") ..
"label[5.8,4.15;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" ..
[[
image[4.08,4.2;0.8,0.8;creative_trash_icon.png]
@ -161,7 +160,7 @@ function creative.register_tab(name, title, items)
list[detached:trash;main;4.02,4.1;1,1;]
listring[]
image_button[5,4.05;0.8,0.8;creative_prev_icon.png;creative_prev;]
image_button[7.25,4.05;0.8,0.8;creative_next_icon.png;creative_next;]
image_button[7.2,4.05;0.8,0.8;creative_next_icon.png;creative_next;]
image_button[2.63,4.05;0.8,0.8;creative_search_icon.png;creative_search;]
image_button[3.25,4.05;0.8,0.8;creative_clear_icon.png;creative_clear;]
]] ..
@ -192,13 +191,10 @@ function creative.register_tab(name, title, items)
inv.start_i = 0
inv.filter = ""
sfinv.set_player_inventory_formspec(player, context)
elseif (fields.creative_search or
fields.key_enter_field == "creative_filter")
and fields.creative_filter then
elseif fields.creative_search or
fields.key_enter_field == "creative_filter" then
inv.start_i = 0
inv.filter = fields.creative_filter:sub(1, 128) -- truncate to a sane length
:gsub("[%z\1-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n)
:lower() -- search is case insensitive
inv.filter = fields.creative_filter:lower()
sfinv.set_player_inventory_formspec(player, context)
elseif not fields.quit then
local start_i = inv.start_i or 0

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,8 +1,7 @@
# 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=Reiniciar
Reset=Resetear
Previous page=Pág. siguiente
Next page=Pág. anterior
All=Todos

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=Bolehkan pemain menggunakan inventaris kreatif
No items to show.=Tiada barang untuk ditampilkan.
Allow player to use creative inventory=Bolehkan pemain memakai inventaris kreatif
Search=Cari
Reset=Atur ulang
Previous page=Halaman sebelumnya

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=プレーヤーにクリエイティブ インベントリーの使用を許可する
No items to show.=
Search=検索
Reset=リセット
Previous page=前のページ

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,8 +1,7 @@
# textdomain: creative
Allow player to use creative inventory=Benarkan pemain menggunakan inventori kreatif
No items to show.=Tiada item untuk ditunjukkan.
Search=Cari
Reset=Tetap semula
Reset=Set semula
Previous page=Halaman sebelumnya
Next page=Halaman seterusnya
All=Semua

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=Разрешить игроку использовать творческий инвентарь
No items to show.=
Search=Поиск
Reset=Сброс
Previous page=Предыдущая страница

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# 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

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=Дозволити гравцю використовувати творчий інвентар
No items to show.=Немає результатів.
Allow player to use creative inventory=Дозволити гравцеві використати творчий інвентар
Search=Пошук
Reset=Скинути
Previous page=Попередня сторінка

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=允许玩家使用创造模式物品栏
No items to show.=
Search=搜索
Reset=重置
Previous page=上一页

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=允許玩家使用創造模式物品欄
No items to show.=
Search=搜索
Reset=重置
Previous page=上一頁

View File

@ -1,6 +1,5 @@
# textdomain: creative
Allow player to use creative inventory=
No items to show.=
Search=
Reset=
Previous page=

View File

@ -1,3 +1,4 @@
name = creative
description = Minetest Game mod: creative
depends = sfinv
optional_depends = default

View File

@ -38,44 +38,34 @@ function default.chest.chest_lid_close(pn)
default.chest.open_chests[pn] = nil
for k, v in pairs(default.chest.open_chests) do
if vector.equals(v.pos, pos) then
-- another player is also looking at the chest
if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then
return true
end
end
local node = minetest.get_node(pos)
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)
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)
end
default.chest.open_chests = {}
minetest.register_on_player_receive_fields(function(player, formname, fields)
local pn = player:get_player_name()
if formname ~= "default:chest" then
if default.chest.open_chests[pn] then
default.chest.chest_lid_close(pn)
end
return
end
if not player or not fields.quit then
return
end
local pn = player:get_player_name()
if not (fields.quit and default.chest.open_chests[pn]) then
if not default.chest.open_chests[pn] then
return
end
default.chest.chest_lid_close(pn)
return true
end)
@ -139,12 +129,6 @@ function default.chest.register_chest(prefixed_name, d)
return itemstack
end
local cn = clicker:get_player_name()
if default.chest.open_chests[cn] then
default.chest.chest_lid_close(cn)
end
minetest.sound_play(def.sound_open, {gain = 0.3,
pos = pos, max_hear_distance = 10}, true)
if not default.chest.chest_lid_obstructed(pos) then
@ -152,9 +136,10 @@ function default.chest.register_chest(prefixed_name, d)
{ name = name .. "_open",
param2 = node.param2 })
end
minetest.after(0.2, minetest.show_formspec, cn,
minetest.after(0.2, minetest.show_formspec,
clicker:get_player_name(),
"default:chest", default.chest.get_chest_formspec(pos))
default.chest.open_chests[cn] = { pos = pos,
default.chest.open_chests[clicker:get_player_name()] = { pos = pos,
sound = def.sound_close, swap = name }
end
def.on_blast = function() end
@ -215,12 +200,6 @@ function default.chest.register_chest(prefixed_name, d)
return inv:is_empty("main")
end
def.on_rightclick = function(pos, node, clicker)
local cn = clicker:get_player_name()
if default.chest.open_chests[cn] then
default.chest.chest_lid_close(cn)
end
minetest.sound_play(def.sound_open, {gain = 0.3, pos = pos,
max_hear_distance = 10}, true)
if not default.chest.chest_lid_obstructed(pos) then
@ -229,9 +208,9 @@ function default.chest.register_chest(prefixed_name, d)
param2 = node.param2 })
end
minetest.after(0.2, minetest.show_formspec,
cn,
clicker:get_player_name(),
"default:chest", default.chest.get_chest_formspec(pos))
default.chest.open_chests[cn] = { pos = pos,
default.chest.open_chests[clicker:get_player_name()] = { pos = pos,
sound = def.sound_close, swap = name }
end
def.on_blast = function(pos)
@ -295,18 +274,6 @@ function default.chest.register_chest(prefixed_name, d)
end
})
end
-- close opened chests on load
minetest.register_lbm({
label = "close opened chests on load",
name = "default:close_" .. prefixed_name:gsub(":", "_") .. "_open",
nodenames = {prefixed_name .. "_open"},
run_at_every_load = true,
action = function(pos, node)
node.name = prefixed_name
minetest.swap_node(pos, node)
end
})
end
default.chest.register_chest("default:chest", {

View File

@ -148,7 +148,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
return
end
if fields.quit then
if fields.close then
book_writers[player_name] = nil
end
@ -179,7 +179,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
data.description = S("\"@1\" by @2", short_title, data.owner)
data.text = fields.text:sub(1, max_text_size)
data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n")
data.text = data.text:gsub("[%z\1-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n)
data.page = 1
data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp)

View File

@ -744,23 +744,16 @@ 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(), stack:get_count(), "to", name, "at", pos)
return on_put(pos, listname, index, stack, player)
default.log_player_action(player, "moves", stack:get_name(), "to", name, "at", pos)
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(), stack:get_count(), "from", name, "at", pos)
return on_take(pos, listname, index, stack, player)
default.log_player_action(player, "takes", stack:get_name(), "from", name, "at", pos)
end
end

View File

@ -19,7 +19,7 @@ Licenses of media (textures, models and sounds)
-----------------------------------------------
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
Copyright (C) 2010-2023:
Copyright (C) 2010-2018:
celeron55, Perttu Ahola <celeron55@gmail.com>
Cisoun
@ -52,7 +52,6 @@ Copyright (C) 2010-2023:
random-geek
Extex101
An0n3m0us
Lopano
You are free to:
Share — copy and redistribute the material in any medium or format.

View File

@ -108,7 +108,7 @@ Acacia Tree Sapling=Akazienbaumsetzling
Aspen Tree=Espenbaum
Aspen Wood Planks=Espenholzplanken
Aspen Tree Leaves=Espenbaumblätter
Aspen Tree Sapling=Espenbaumsetzling
Aspen Tree Sapling=Esepenbaumsetzling
Coal Ore=Kohleerz
Coal Block=Kohleblock
Iron Ore=Eisenerz

View File

@ -162,7 +162,6 @@ Empty Bookshelf=Malplena Librobreto
Bookshelf (@1 written, @2 empty books)=Librobreto (@1 skriba(j), @2 malplena(j) libro(j))
Bookshelf=Librobreto
Text too long=Tro longa teksto
"@1"=
Wooden Sign=Ligna Signo
Steel Sign=Ŝtala Signo
Wooden Ladder=Ligna Ŝtupetaro
@ -218,3 +217,4 @@ Torch=Torĉo
##### not used anymore #####
Mese Post Light=Mesea Fosta Lampo

View File

@ -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=Minerai de fer
Iron Ore=Bloc de fer
Steel Block=Bloc d'acier
Copper Ore=Minerai de cuivre
Copper Block=Bloc de cuivre

View File

@ -4,16 +4,16 @@ Locked Chest (owned by @1)=Peti Terkunci (milik @1)
You do not own this chest.=Anda bukan pemilik peti ini.
a locked chest=peti terkunci
Chest=Peti
Write=Tulis
Read=Baca
Write=
Read=
Title:=Judul:
Contents:=Isi:
Save=Simpan
by @1=oleh @1
Page @1 of @2=Halaman @1 dari @2
The book you were writing to mysteriously disappeared.=Buku yang Anda tulis menghilang secara misterius.
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" oleh @2
Blueberries=Bluberi
Blueberries=Blueberry
Book=Buku
Book with Text=Buku Tertulis
Bronze Ingot=Perunggu Batangan
@ -38,7 +38,7 @@ Tin Lump=Bongkahan Timah
Furnace is empty=Tungku kosong
100% (output full)=100% (keluaran penuh)
@1%=@1%
Not cookable=Tidak bisa dimasak
Not cookable=Tidak dapat dimasak
Empty=Kosong
Furnace active=Tungku nyala
Furnace inactive=Tungku mati
@ -85,7 +85,7 @@ Clay=Tanah Liat
Snow=Salju
Snow Block=Balok Salju
Ice=Es
Cave Ice=Es Gua
Cave Ice=Gua Es
Apple Tree=Pohon Apel
Apple Wood Planks=Papan Kayu Pohon Apel
Apple Tree Sapling=Anak Pohon Apel
@ -132,13 +132,13 @@ Jungle Grass=Rumput Rimba
Grass=Rumput
Savanna Grass=Rumput Sabana
Fern=Pakis
Marram Grass=Rumput Pantai
Marram Grass=Rumput Maram
Bush Stem=Batang Semak
Bush Leaves=Daun Semak
Bush Sapling=Anak Semak
Blueberry Bush Leaves with Berries=Daun Semak Bluberi Berbuah
Blueberry Bush Leaves=Daun Semak Bluberi
Blueberry Bush Sapling=Anak Semak Bluberi
Blueberry Bush Leaves with Berries=Daun Semak Blueberry Berbuah
Blueberry Bush Leaves=Daun Semak Blueberry
Blueberry Bush Sapling=Anak Semak Blueberry
Acacia Bush Stem=Batang Semak Akasia
Acacia Bush Leaves=Daun Semak Akasia
Acacia Bush Sapling=Bibit Semak Akasia
@ -147,7 +147,7 @@ Pine Bush Needles=Daun Semak Pinus
Pine Bush Sapling=Bibit Semak Pinus
Kelp=Kelp
Green Coral=Koral Hijau
Pink Coral=Koral Merah Muda
Pink Coral=Koral Jambon
Cyan Coral=Koral Sian
Brown Coral=Koral Cokelat
Orange Coral=Koral Oranye
@ -181,18 +181,18 @@ Glass=Kaca
Obsidian Glass=Kaca Obsidian
Brick Block=Balok Bata
Mese Lamp=Lampu Mese
Apple Wood Mese Post Light=Lampu Taman Mese Kayu Apel
Acacia Wood Mese Post Light=Lampu Taman Mese Kayu Akasia
Jungle Wood Mese Post Light=Lampu Taman Mese Kayu Rimba
Pine Wood Mese Post Light=Lampu Taman Mese Kayu Pinus
Aspen Wood Mese Post Light=Lampu Taman Mese Kayu Aspen
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=Awan
Wooden Pickaxe=Belencong Kayu
Stone Pickaxe=Belencong Batu
Bronze Pickaxe=Belencong Perunggu
Steel Pickaxe=Belencong Baja
Mese Pickaxe=Belencong Mese
Diamond Pickaxe=Belencong Berlian
Wooden Pickaxe=Gancu Kayu
Stone Pickaxe=Gancu Batu
Bronze Pickaxe=Gancu Perunggu
Steel Pickaxe=Gancu Baja
Mese Pickaxe=Gancu Mese
Diamond Pickaxe=Gancu Berlian
Wooden Shovel=Sekop Kayu
Stone Shovel=Sekop Batu
Bronze Shovel=Sekop Perunggu

View File

@ -4,37 +4,37 @@ Locked Chest (owned by @1)=鍵のかかったチェスト(@1所有)
You do not own this chest.=あなたはこのチェストの所有者ではありません。
a locked chest=ロックされたチェスト
Chest=チェスト
Write=書き込む
Read=読む
Write=
Read=
Title:=題名
Contents:=内容
Save=保存
by @1=@1著
Page @1 of @2=@1 / @2 ページ
The book you were writing to mysteriously disappeared.=あなたが書いていた本が、不思議なことに消えました。
The book you were writing to mysteriously disappeared.=
"@1" by @2=@2著「@1」
Blueberries=ブルーベリー
Book=本
Book with Text=記入済みの
Book with Text=テキストが書かれた
Bronze Ingot=青銅インゴット
Clay Brick=粘土レンガ
Clay Lump=粘土
Clay Lump=粘土の塊
Coal Lump=石炭
Copper Ingot=銅インゴット
Copper Lump=銅の粗鉱
Copper Lump=銅の
Diamond=ダイヤモンド
Flint=火打ち石
Gold Ingot=金インゴット
Gold Lump=金の粗鉱
Iron Lump=鉄の粗鉱
Gold Lump=金の
Iron Lump=鉄の
Mese Crystal=メセクリスタル
Mese Crystal Fragment=メセクリスタルの破片
Obsidian Shard=黒曜石の
Obsidian Shard=黒曜石の
Paper=紙
Steel Ingot=鉄インゴット
Stick=棒
Tin Ingot=スズインゴット
Tin Lump=スズの粗鉱
Tin Lump=スズの
Furnace is empty=かまどは空です
100% (output full)=100%(フル出力)
@1%=@1%
@ -59,70 +59,70 @@ Sandstone Block=砂岩ブロック
Desert Sandstone=砂漠の砂岩
Desert Sandstone Brick=砂漠の砂岩レンガ
Desert Sandstone Block=砂漠の砂岩ブロック
Silver Sandstone=銀の砂岩
Silver Sandstone Brick=銀の砂岩レンガ
Silver Sandstone Block=銀の砂岩ブロック
Silver Sandstone=銀の砂岩
Silver Sandstone Brick=銀の砂岩レンガ
Silver Sandstone Block=銀の砂岩ブロック
Obsidian=黒曜石
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=針葉樹の落葉に覆われた土
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=サバンナの草に覆われたサバンナの土
Savanna Dirt with Savanna Grass=サバンナの草のついたサバンナの土
Permafrost=永久凍土
Permafrost with Stones=石に覆われた永久凍土
Permafrost with Moss=苔に覆われた永久凍土
Permafrost with Stones=石のついた永久凍土
Permafrost with Moss=苔のついた永久凍土
Sand=砂
Desert Sand=砂漠の砂
Silver Sand=銀の砂
Silver Sand=銀の砂
Gravel=砂利
Clay=粘土
Snow=雪
Snow Block=雪ブロック
Ice=氷
Cave Ice=洞窟の氷
Apple Tree=リンゴの
Apple Wood Planks=リンゴの木の板材
Apple Tree Sapling=リンゴの木の苗木
Apple Tree Leaves=リンゴの木の
Apple Tree=リンゴの木
Apple Wood Planks=リンゴの板材
Apple Tree Sapling=リンゴの苗木
Apple Tree Leaves=リンゴの葉
Apple=リンゴ
Apple Marker=リンゴのマーカー
Jungle Tree=ジャングルの
Jungle Wood Planks=ジャングルの木の板材
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=ポプラの木の苗木
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=鉄鉱石
Iron Ore=鉄鉱石
Steel Block=鉄ブロック
Copper Ore=銅鉱石
Copper Ore=銅鉱石
Copper Block=銅ブロック
Tin Ore=スズ鉱石
Tin Ore=スズ鉱石
Tin Block=スズブロック
Bronze Block=青銅ブロック
Mese Ore=メセ鉱石
Mese Block=メセブロック
Gold Ore=金鉱石
Gold Ore=金鉱石
Gold Block=金ブロック
Diamond Ore=ダイヤモンド鉱石
Diamond Ore=ダイヤモンド鉱石
Diamond Block=ダイヤモンドブロック
Cactus=サボテン
Large Cactus Seedling=大きなサボテンの苗
@ -136,7 +136,7 @@ Marram Grass=マラムの草
Bush Stem=低木の幹
Bush Leaves=低木の葉
Bush Sapling=低木の苗木
Blueberry Bush Leaves with Berries=ブルーベリーの実った低木
Blueberry Bush Leaves with Berries=ブルーベリーの低木と実
Blueberry Bush Leaves=ブルーベリーの低木の葉
Blueberry Bush Sapling=ブルーベリーの低木の苗木
Acacia Bush Stem=アカシアの低木の幹
@ -153,9 +153,9 @@ Brown Coral=茶色のサンゴ
Orange Coral=橙色のサンゴ
Coral Skeleton=サンゴのしがい
Water Source=水源
Flowing Water=流れる
River Water Source=川水源
Flowing River Water=流れる河川水
Flowing Water=水
River Water Source=川水源
Flowing River Water=川
Lava Source=溶岩
Flowing Lava=流れる溶岩
Empty Bookshelf=空の本棚
@ -163,49 +163,49 @@ Bookshelf (@1 written, @2 empty books)=本棚(記述済み @1 冊, 未記述 @2
Bookshelf=本棚
Text too long=テキストが長すぎます
"@1"=「@1」
Wooden Sign=木の看板
Wooden Sign=木の看板
Steel Sign=鉄の看板
Wooden Ladder=木のはしご
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=ポプラのフェンスレール
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=黒曜石ガラス
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=ポプラのメセ灯柱
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=木のシャベル
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=木の斧
Wooden Axe=木の斧
Stone Axe=石の斧
Bronze Axe=青銅の斧
Steel Axe=鉄の斧
Mese Axe=メセの斧
Diamond Axe=ダイヤモンドの斧
Wooden Sword=木の剣
Wooden Sword=木の剣
Stone Sword=石の剣
Bronze Sword=青銅の剣
Steel Sword=鉄の剣

View File

@ -4,14 +4,14 @@ Locked Chest (owned by @1)=Peti Berkunci (milik @1)
You do not own this chest.=Ini bukan peti milik anda.
a locked chest=peti berkunci
Chest=Peti
Write=Tulis
Read=Baca
Write=
Read=
Title:=Tajuk:
Contents:=Kandungan:
Save=Simpan
by @1=oleh @1
Page @1 of @2=Halaman @1 daripada @2
The book you were writing to mysteriously disappeared.=Buku yang anda tulis hilang secara misterinya.
Page @1 of @2=Ms. @1 / @2
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" oleh @2
Blueberries=Beri Biru
Book=Buku
@ -28,7 +28,7 @@ Gold Ingot=Jongkong Emas
Gold Lump=Longgokan Emas
Iron Lump=Longgokan Besi
Mese Crystal=Kristal Mese
Mese Crystal Fragment=Serpihan Kristal Mese
Mese Crystal Fragment=Serpihan Mese
Obsidian Shard=Serpihan Obsidia
Paper=Kertas
Steel Ingot=Jongkong Keluli
@ -68,12 +68,12 @@ Obsidian Block=Bongkah Obsidia
Dirt=Tanah
Dirt with Grass=Tanah Berumput
Dirt with Grass and Footsteps=Tanah Berumput dan Tapak Kaki
Dirt with Savanna Grass=Tanah Berumput Savana
Dirt with Savanna Grass=
Dirt with Snow=Tanah Bersalji
Dirt with Rainforest Litter=Tanah Bersarap Hutan Hujan
Dirt with Coniferous Litter=Tanah Bersarap Hutan Konifer
Savanna Dirt=Tanah Savana
Savanna Dirt with Savanna Grass=Tanah Savana Berumput Savana
Savanna Dirt=
Savanna Dirt with Savanna Grass=
Permafrost=Ibun Abadi
Permafrost with Stones=Ibun Abadi Berbatu
Permafrost with Moss=Ibun Abadi Berlumut
@ -130,7 +130,7 @@ Papyrus=Papirus
Dry Shrub=Pokok Renek Kering
Jungle Grass=Rumput Hutan
Grass=Rumput
Savanna Grass=Rumput Savana
Savanna Grass=
Fern=Paku Pakis
Marram Grass=Rumput Maram
Bush Stem=Batang Belukar
@ -181,11 +181,11 @@ Glass=Kaca
Obsidian Glass=Kaca Obsidia
Brick Block=Bongkah Bata
Mese Lamp=Lampu Mese
Apple Wood Mese Post Light=Lampu Tiang Mese Kayu Epal
Acacia Wood Mese Post Light=Lampu Tiang Mese Kayu Akasia
Jungle Wood Mese Post Light=Lampu Tiang Mese Kayu Hutan
Pine Wood Mese Post Light=Lampu Tiang Mese Kayu Pain
Aspen Wood Mese Post Light=Lampu Tiang Mese Kayu Aspen
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=Awan
Wooden Pickaxe=Beliung Kayu
Stone Pickaxe=Beliung Batu

View File

@ -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=@2 — "@1"
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" @2
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 перетне захист за зростанням.

View File

@ -4,14 +4,14 @@ Locked Chest (owned by @1)=已上锁的箱子(属于@1
You do not own this chest.=这个箱子不属于你所有。
a locked chest=一个已上锁的箱子
Chest=箱子
Write=
Read=
Write=
Read=
Title:=标题:
Contents:=内容:
Save=保存
by @1=由@1
Page @1 of @2=第@1页共@2页。
The book you were writing to mysteriously disappeared.=你正在写的书不知为何消失了。
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" by @2
Blueberries=蓝莓
Book=书

View File

@ -4,14 +4,14 @@ Locked Chest (owned by @1)=已上鎖的箱子(屬於@1所有
You do not own this chest.=這個箱子不屬於你所有。
a locked chest=一個已上鎖的箱子
Chest=箱子
Write=
Read=
Write=
Read=
Title:=標題:
Contents:=內容:
Save=保存
by @1=由@1
Page @1 of @2=第@1頁共@2頁。
The book you were writing to mysteriously disappeared.=你正在寫的書神秘消失了。
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" by @2
Blueberries=藍莓
Book=書

View File

@ -2476,6 +2476,9 @@ end
-- Detect mapgen to select functions
--
minetest.clear_registered_biomes()
minetest.clear_registered_ores()
minetest.clear_registered_decorations()
local mg_name = minetest.get_mapgen_setting("mg_name")

View File

@ -2024,7 +2024,7 @@ minetest.register_node("default:sand_with_kelp", {
return itemstack
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
after_destruct = function(pos, oldnode)
minetest.set_node(pos, {name = "default:sand"})
end
})
@ -2099,7 +2099,7 @@ minetest.register_node("default:coral_green", {
on_place = coral_on_place,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
after_destruct = function(pos, oldnode)
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_dig_node = function(pos, oldnode, oldmetadata, digger)
after_destruct = function(pos, oldnode)
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_dig_node = function(pos, oldnode, oldmetadata, digger)
after_destruct = function(pos, oldnode)
minetest.set_node(pos, {name = "default:coral_skeleton"})
end,
})
@ -2549,15 +2549,6 @@ 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)
@ -2606,12 +2597,12 @@ local function register_sign(material, desc, def)
if not text then
return
end
if #text > 512 then
if string.len(text) > 512 then
minetest.chat_send_player(player_name, S("Text too long"))
return
end
text = text:gsub("[%z-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n)
default.log_player_action(sender, ("wrote %q to the sign at"):format(text), pos)
default.log_player_action(sender, "wrote \"" .. text ..
"\" to the sign at", pos)
local meta = minetest.get_meta(pos)
meta:set_string("text", text)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 336 B

After

Width:  |  Height:  |  Size: 327 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 610 B

After

Width:  |  Height:  |  Size: 514 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 B

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 388 B

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 B

After

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 447 B

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 481 B

After

Width:  |  Height:  |  Size: 426 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 B

After

Width:  |  Height:  |  Size: 676 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 560 B

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -26,10 +26,6 @@ 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
@ -38,6 +34,84 @@ 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
@ -135,6 +209,7 @@ function default.grow_tree(pos, is_apple_tree, bad)
vm:update_map()
end
-- Jungle tree
function default.grow_jungle_tree(pos, bad)
@ -529,78 +604,3 @@ 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
})

View File

@ -19,10 +19,6 @@ 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
@ -392,11 +388,8 @@ function doors.register(name, def)
end
end
def.after_dig_node = function(pos, node, meta, digger)
local above = pos:offset(0, 1, 0)
if is_doors_upper_node(above) then
minetest.remove_node(above)
end
minetest.check_for_falling(above)
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})
end
def.on_rotate = function(pos, node, user, mode, new_param2)
return false
@ -434,20 +427,14 @@ 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.
if is_doors_upper_node(above) then
minetest.remove_node(above)
end
minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z})
return {name}
end
end
def.on_destruct = function(pos)
local above = pos:offset(0, 1, 0)
if is_doors_upper_node(above) then
minetest.remove_node(above)
end
minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z})
end
def.drawtype = "mesh"

View File

@ -3,16 +3,16 @@ Hidden Door Segment=隠しドアの区切り
Owned by @1=所有者 @1
You do not own this locked door.=あなたはこのロックされたドアの所有者ではありません。
a locked door=ロックされたドア
Wooden Door=木のドア
Wooden Door=木のドア
Steel Door=鉄のドア
Glass Door=ガラスのドア
Obsidian Glass Door=黒曜石ガラスのドア
Obsidian Glass Door=黒曜石ガラスのドア
You do not own this trapdoor.=あなたはこのトラップドアの所有者ではありません。
a locked trapdoor=ロックされたトラップドア
Wooden 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=ポプラのフェンスゲート
Apple Wood Fence Gate=リンゴのフェンスゲート
Acacia Wood Fence Gate=アカシアのフェンスゲート
Jungle Wood Fence Gate=ジャングルのフェンスゲート
Pine Wood Fence Gate=マツのフェンスゲート
Aspen Wood Fence Gate=ポプラのフェンスゲート

View File

@ -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=Осикова Дерев'яна Хвіртка

Binary file not shown.

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 133 B

View File

@ -13,4 +13,4 @@ Brown Dye=Pewarna Cokelat
Orange Dye=Pewarna Oranye
Red Dye=Pewarna Merah
Magenta Dye=Pewarna Magenta
Pink Dye=Pewarna Merah Muda
Pink Dye=Pewarna Merah Jambu

View File

@ -1,16 +1,16 @@
# textdomain: dye
White Dye=Pewarna Putih
Grey Dye=Pewarna Kelabu
Dark Grey Dye=Pewarna Kelabu Tua
Dark Grey Dye=Pewarna Kelabu Gelap
Black Dye=Pewarna Hitam
Violet Dye=Pewarna Ungu
Blue Dye=Pewarna Biru
Cyan Dye=Pewarna Biru Kehijauan
Dark Green Dye=Pewarna Hijau Tua
Dark Green Dye=Pewarna Hijau Gelap
Green Dye=Pewarna Hijau
Yellow Dye=Pewarna Kuning
Brown Dye=Pewarna Perang
Orange Dye=Pewarna Jingga
Red Dye=Pewarna Merah
Magenta Dye=Pewarna Magenta
Magenta Dye=Pewarna Merah Lembayung
Pink Dye=Pewarna Merah Jambu

View File

@ -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=Рожева Фарба

View File

@ -1,7 +1,7 @@
# textdomain: farming
Hoe=クワ
Seed=種
Wooden Hoe=木のクワ
Wooden Hoe=木のクワ
Stone Hoe=石のクワ
Steel Hoe=鉄のクワ
Bronze Hoe=青銅のクワ
@ -22,7 +22,7 @@ Desert Sand Soil=砂漠の砂の土壌
Wet Desert Sand Soil=湿った砂漠の砂の土壌
Straw=ワラ
Straw Stair=ワラの階段
Inner Straw Stair=ワラの階段
Outer Straw Stair=ワラの階段
Straw Slab=ワラの厚板
Inner Straw Stair=へっこんだワラの階段
Outer Straw Stair=でっぱったワラの階段
Straw Slab=ワラのハーフブロック
Wild Cotton=天然綿

View File

@ -1,6 +1,6 @@
# textdomain: farming
Hoe=Cangkul
Seed=Benih
Hoe=
Seed=
Wooden Hoe=Cangkul Kayu
Stone Hoe=Cangkul Batu
Steel Hoe=Cangkul Keluli
@ -16,8 +16,8 @@ Cotton=Kapas
String=Benang
Soil=Tanih
Wet Soil=Tanih Lembap
Savanna Soil=Tanih Savana
Wet Savanna Soil=Tanih Savana Lembap
Savanna Soil=
Wet Savanna Soil=
Desert Sand Soil=Tanih Pasir Gurun
Wet Desert Sand Soil=Tanih Pasir Gurun Lembap
Straw=Jerami
@ -25,7 +25,7 @@ Straw Stair=Tangga Jerami
Inner Straw Stair=Tangga Jerami Dalaman
Outer Straw Stair=Tangga Jerami Luaran
Straw Slab=Papak Jerami
Wild Cotton=Kapuk
Wild Cotton=
##### not used anymore #####

View File

@ -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=Дикий Бавовник

View File

@ -1,6 +1,6 @@
# textdomain: farming
Hoe=鋤頭
Seed=種子
Hoe=
Seed=
Wooden Hoe=木鋤頭
Stone Hoe=石鋤頭
Steel Hoe=鐵鋤頭
@ -16,8 +16,8 @@ Cotton=棉
String=線
Soil=土
Wet Soil=溼土
Savanna Soil=草原土
Wet Savanna Soil=溼草原土
Savanna Soil=
Wet Savanna Soil=
Desert Sand Soil=沙漠沙土
Wet Desert Sand Soil=溼沙漠沙土
Straw=稻草
@ -25,7 +25,7 @@ Straw Stair=稻草臺階
Inner Straw Stair=稻草內樓梯
Outer Straw Stair=稻草外樓梯
Straw Slab=稻草板
Wild Cotton=野生棉花
Wild Cotton=
##### not used anymore #####

View File

@ -6,4 +6,5 @@ Flint and Steel=Briquet à silex en acier
##### not used anymore #####
# textdomain: fire
Permanent Flame=Flamme permanente

View File

@ -6,4 +6,5 @@ Flint and Steel=Acciarino
##### not used anymore #####
# textdomain: fire
Permanent Flame=Fiamma permanente

View File

@ -1,9 +1,10 @@
# textdomain: fire
Fire=Api
Permanent Fire=Api Abadi
Fire=
Permanent Fire=
Flint and Steel=Pemetik Api
##### not used anymore #####
# textdomain: fire
Permanent Flame=Api Abadi

View File

@ -6,4 +6,5 @@ Flint and Steel=Огниво
##### not used anymore #####
# textdomain: fire
Permanent Flame=Вечный Огонь

View File

@ -1,4 +1,4 @@
# textdomain: fire
Fire=Вогонь
Permanent Fire=Вічний вогонь
Flint and Steel=Кресало
Permanent Fire=Вічний Вогонь
Flint and Steel=Кремінь і Сталь

View File

@ -1,5 +1,5 @@
# textdomain: fireflies
Firefly=Світляк
Hidden Firefly=Світляк, що причаївся
Bug Net=Сачок
Firefly in a Bottle=Світляк у пляшці
Firefly=Світлячок
Hidden Firefly=Світлячок, що причаївся
Bug Net=Сачок Для Ловлі Комах
Firefly in a Bottle=Світлячок у Пляшці

View File

@ -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=Водяна Лілія

View File

@ -1,4 +1,4 @@
# textdomain: game_commands
Kill yourself to respawn=Bunuh diri untuk bangkit kembali
No static_spawnpoint defined=Tidak ada static_spawnpoint (titik bangkit statis) yang diatur
No static_spawnpoint defined=Tiada static_spawnpoint (titik bangkit statis) yang diatur
You need to be online to be killed!=Anda harus daring untuk dibunuh!

View File

@ -1,4 +1,4 @@
# textdomain: game_commands
Kill yourself to respawn=Bunuh diri anda untuk jelma semula
No static_spawnpoint defined=Tiada titik jelma statik (tetapan static_spawnpoint) ditakrifkan
Kill yourself to respawn=Bunuh diri anda untuk lahir semula
No static_spawnpoint defined=Tiada titik permulaan statik (tetapan static_spawnpoint) ditakrifkan
You need to be online to be killed!=Anda mesti berada dalam talian untuk dibunuh!

View File

@ -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!=Ви повинні бути онлайн, щоб вбити себе!

View File

@ -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=Ключ Кістяка

View File

@ -1,3 +1,3 @@
# textdomain: map
Mapping Kit=Kit de carthographie
Use with 'Minimap' key=Utiliser avec le bouton « Mini-carte »
Use with 'Minimap' key=Utiliser avec le bouton « Minimap »

Some files were not shown because too many files have changed in this diff Show More