forked from minetest/minetest_game
Merge remote-tracking branch 'upstream/master' into dev
This commit is contained in:
commit
90e786e65b
16
.github/workflows/build.yml
vendored
16
.github/workflows/build.yml
vendored
|
@ -1,16 +0,0 @@
|
||||||
name: build
|
|
||||||
on: [push, pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
luacheck:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- name: Install Luarocks
|
|
||||||
run: |
|
|
||||||
sudo apt-get update -qyy
|
|
||||||
sudo apt-get install luarocks -qyy
|
|
||||||
- name: Install Luacheck
|
|
||||||
run: luarocks install --local luacheck
|
|
||||||
- name: Run Luacheck
|
|
||||||
run: $HOME/.luarocks/bin/luacheck mods
|
|
13
.github/workflows/luacheck.yml
vendored
Normal file
13
.github/workflows/luacheck.yml
vendored
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
name: luacheck
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
luacheck:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Luacheck
|
||||||
|
uses: lunarmodules/luacheck@master
|
||||||
|
with:
|
||||||
|
args: mods
|
11
.github/workflows/test.yml
vendored
Normal file
11
.github/workflows/test.yml
vendored
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
name: test
|
||||||
|
on: [push, pull_request]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 5
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- run: ./utils/test/run.sh
|
19
README.md
19
README.md
|
@ -8,8 +8,8 @@ real goals or built-in enemy mobs.
|
||||||
While it provides a basic gameplay experience out of the box, it is best played
|
While it provides a basic gameplay experience out of the box, it is best played
|
||||||
with mods.
|
with mods.
|
||||||
|
|
||||||
Minetest Game is currently in maintenance-only mode, meaning it will not see new
|
Minetest Game is in perpetual maintenance-only mode, meaning it will not see new
|
||||||
gameplay features or anything else that breaks compatibility (See
|
gameplay features or anything else that breaks compatibility (see
|
||||||
[#2710](https://github.com/minetest/minetest_game/issues/2710)).
|
[#2710](https://github.com/minetest/minetest_game/issues/2710)).
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
@ -17,13 +17,13 @@ gameplay features or anything else that breaks compatibility (See
|
||||||
### ContentDB
|
### ContentDB
|
||||||
|
|
||||||
* Content > Browse Online Content
|
* Content > Browse Online Content
|
||||||
* Search for Minetest Game
|
* Search for "[Minetest Game](https://content.minetest.net/packages/Minetest/minetest_game/)"
|
||||||
* Click Install
|
* Click Install
|
||||||
|
|
||||||
### Manually
|
### Manually
|
||||||
|
|
||||||
- Unzip the archive, rename the folder to `minetest_game` and
|
- Unzip the archive, rename the folder to `minetest_game` and
|
||||||
place it in .. `minetest/games/`
|
place it in `.../minetest/games/`
|
||||||
|
|
||||||
- GNU/Linux: If you use a system-wide installation place it in `~/.minetest/games/`.
|
- GNU/Linux: If you use a system-wide installation place it in `~/.minetest/games/`.
|
||||||
|
|
||||||
|
@ -33,14 +33,13 @@ For further information or help, see: [Installing Mods](https://wiki.minetest.ne
|
||||||
|
|
||||||
## Compatibility
|
## Compatibility
|
||||||
|
|
||||||
The Minetest Game GitHub `master` `HEAD` is generally compatible with the GitHub
|
As of January 2024 Minetest Game follows a **rolling release** model with new changes being automatically
|
||||||
`master` `HEAD` of the Minetest engine.
|
published on ContentDB every day.
|
||||||
|
|
||||||
Additionally, when the Minetest engine is tagged to be a certain version (e.g.
|
There are no stable releases or tags, all existing ones are considered legacy.
|
||||||
`0.4.10`), Minetest Game is tagged with the version, too.
|
|
||||||
|
|
||||||
When stable releases are made, Minetest Game and the Minetest engine is packaged
|
Minetest Game is always compatible to the latest stable release of the engine.
|
||||||
and made available at [www.minetest.net](https://www.minetest.net/downloads/).
|
Older releases may be supported too depending on circumstances.
|
||||||
|
|
||||||
## Licensing
|
## Licensing
|
||||||
|
|
||||||
|
|
58
game_api.txt
58
game_api.txt
|
@ -324,7 +324,7 @@ Allows creation of new fences with "fencelike" drawtype.
|
||||||
name = "default:fence_wood",
|
name = "default:fence_wood",
|
||||||
description = "Wooden Fence",
|
description = "Wooden Fence",
|
||||||
texture = "default_wood.png",
|
texture = "default_wood.png",
|
||||||
material = "default:wood",
|
material = "default:wood", -- `nil` if you don't want the recipe
|
||||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
|
|
||||||
|
@ -382,6 +382,8 @@ The farming API allows you to easily register plants and hoes.
|
||||||
-- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
|
-- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber)
|
||||||
minlight = 13, -- Minimum light to grow
|
minlight = 13, -- Minimum light to grow
|
||||||
maxlight = default.LIGHT_MAX -- Maximum light to grow
|
maxlight = default.LIGHT_MAX -- Maximum light to grow
|
||||||
|
can_grow = function(pos) -- Сalled every growth tick to check if the plant can grow, returns bool
|
||||||
|
-- (optional, checks for wet soil by default)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -632,6 +634,34 @@ set a players home position and teleport a player to home position.
|
||||||
* `name` Player you wish to teleport to their home position
|
* `name` Player you wish to teleport to their home position
|
||||||
* return value: false if player cannot be sent home, otherwise true
|
* return value: false if player cannot be sent home, otherwise true
|
||||||
|
|
||||||
|
Spawn API
|
||||||
|
---------
|
||||||
|
|
||||||
|
The spawn mod takes care of deciding the position of new and respawning players
|
||||||
|
in the world and has an API to modify its behavior.
|
||||||
|
|
||||||
|
`spawn.get_default_pos()`
|
||||||
|
* Gets the default spawn position as decided by a biome-dependent algorithm.
|
||||||
|
* This is not influenced by settings like "static_spawnpoint" or "engine_spawn".
|
||||||
|
* return value: a vector or `nil` on failure
|
||||||
|
|
||||||
|
`spawn.add_suitable_biome(biome)`:
|
||||||
|
* Adds a biome to the list of allowed biomes for the above algorithm.
|
||||||
|
* `biome`: Name of a registered biome
|
||||||
|
|
||||||
|
`spawn.register_on_spawn(func)`:
|
||||||
|
* Registers a callback to be called when a player (re-)spawns. This can be used
|
||||||
|
to intercept the normal logic to e.g. respawn a player at his bed.
|
||||||
|
* `func`: `function(player, is_new)` with arguments
|
||||||
|
- `player`: ObjectRef
|
||||||
|
- `is_new`: true if the player is joining the server for the first time
|
||||||
|
- return value: true to skip all other spawn logic, false or nil otherwise
|
||||||
|
|
||||||
|
When a player (re-)spawns the following order is executed:
|
||||||
|
1. All spawn callbacks in order of registration.
|
||||||
|
2. If no result, teleport player to `spawn.get_default_pos()`.
|
||||||
|
3. If that fails, spawning is left up to engine.
|
||||||
|
|
||||||
|
|
||||||
Sfinv API
|
Sfinv API
|
||||||
---------
|
---------
|
||||||
|
@ -1169,3 +1199,29 @@ the log.
|
||||||
* after logging the action, the original callback (if any) is called
|
* after logging the action, the original callback (if any) is called
|
||||||
* `def` See [Node definition]
|
* `def` See [Node definition]
|
||||||
* `name` Description of the node in the log message
|
* `name` Description of the node in the log message
|
||||||
|
|
||||||
|
|
||||||
|
Weather API
|
||||||
|
-----------
|
||||||
|
|
||||||
|
The weather mod will constantly adjust weather effects seen by the player
|
||||||
|
(that is: cloud parameters and shadow intensity).
|
||||||
|
These can be influenced using this API.
|
||||||
|
|
||||||
|
#### `weather.get = function(player)`
|
||||||
|
|
||||||
|
* Returns the current weather effects seen by the player.
|
||||||
|
It returns a table with two keys:
|
||||||
|
* `clouds`: A table (or `nil`) with cloud data following the same format as used for `player:set_clouds()`.
|
||||||
|
* `lighting`: A table (or `nil`) with lighting data following the same format as used for `player:set_lighting()`.
|
||||||
|
* `player`: ObjectRef of the relevant player
|
||||||
|
* You can override this function to change the weather effects by simply returning different values.
|
||||||
|
Setting `clouds` or `lighting` in the result table to `nil` will *prevent* those from changing.
|
||||||
|
|
||||||
|
Utilities
|
||||||
|
---------
|
||||||
|
|
||||||
|
`default.dig_up(pos, node, digger, max_height)`
|
||||||
|
|
||||||
|
* Find all nodes above `pos` that is the same, then dig them all
|
||||||
|
* `max_height` Maximum number of nodes to iterate. Default: 100
|
||||||
|
|
|
@ -1,5 +1,10 @@
|
||||||
|
-- Removes a node without calling on on_destruct()
|
||||||
local reverse = true
|
-- We use this to mess with bed nodes without causing unwanted recursion.
|
||||||
|
local function remove_no_destruct(pos)
|
||||||
|
minetest.swap_node(pos, {name = "air"})
|
||||||
|
minetest.remove_node(pos) -- Now clear the meta
|
||||||
|
minetest.check_for_falling(pos)
|
||||||
|
end
|
||||||
|
|
||||||
local function destruct_bed(pos, n)
|
local function destruct_bed(pos, n)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
|
@ -12,15 +17,11 @@ local function destruct_bed(pos, n)
|
||||||
local dir = minetest.facedir_to_dir(node.param2)
|
local dir = minetest.facedir_to_dir(node.param2)
|
||||||
other = vector.add(pos, dir)
|
other = vector.add(pos, dir)
|
||||||
end
|
end
|
||||||
|
local oname = minetest.get_node(other).name
|
||||||
if reverse then
|
if minetest.get_item_group(oname, "bed") ~= 0 then
|
||||||
reverse = not reverse
|
remove_no_destruct(other)
|
||||||
minetest.remove_node(other)
|
|
||||||
minetest.check_for_falling(other)
|
|
||||||
beds.remove_spawns_at(pos)
|
beds.remove_spawns_at(pos)
|
||||||
beds.remove_spawns_at(other)
|
beds.remove_spawns_at(other)
|
||||||
else
|
|
||||||
reverse = not reverse
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -113,6 +114,7 @@ function beds.register_bed(name, def)
|
||||||
|
|
||||||
on_rotate = function(pos, node, user, _, new_param2)
|
on_rotate = function(pos, node, user, _, new_param2)
|
||||||
local dir = minetest.facedir_to_dir(node.param2)
|
local dir = minetest.facedir_to_dir(node.param2)
|
||||||
|
-- old position of the top node
|
||||||
local p = vector.add(pos, dir)
|
local p = vector.add(pos, dir)
|
||||||
local node2 = minetest.get_node_or_nil(p)
|
local node2 = minetest.get_node_or_nil(p)
|
||||||
if not node2 or minetest.get_item_group(node2.name, "bed") ~= 2 or
|
if not node2 or minetest.get_item_group(node2.name, "bed") ~= 2 or
|
||||||
|
@ -126,6 +128,7 @@ function beds.register_bed(name, def)
|
||||||
if new_param2 % 32 > 3 then
|
if new_param2 % 32 > 3 then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
-- new position of the top node
|
||||||
local newp = vector.add(pos, minetest.facedir_to_dir(new_param2))
|
local newp = vector.add(pos, minetest.facedir_to_dir(new_param2))
|
||||||
local node3 = minetest.get_node_or_nil(newp)
|
local node3 = minetest.get_node_or_nil(newp)
|
||||||
local node_def = node3 and minetest.registered_nodes[node3.name]
|
local node_def = node3 and minetest.registered_nodes[node3.name]
|
||||||
|
@ -137,8 +140,7 @@ function beds.register_bed(name, def)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
node.param2 = new_param2
|
node.param2 = new_param2
|
||||||
-- do not remove_node here - it will trigger destroy_bed()
|
remove_no_destruct(p)
|
||||||
minetest.set_node(p, {name = "air"})
|
|
||||||
minetest.set_node(pos, node)
|
minetest.set_node(pos, node)
|
||||||
minetest.set_node(newp, {name = name .. "_top", param2 = new_param2})
|
minetest.set_node(newp, {name = name .. "_top", param2 = new_param2})
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -66,7 +66,7 @@ beds.register_bed("beds:bed", {
|
||||||
"beds_bed_under.png",
|
"beds_bed_under.png",
|
||||||
"beds_bed_side_bottom_r.png",
|
"beds_bed_side_bottom_r.png",
|
||||||
"beds_bed_side_bottom_r.png^[transformFX",
|
"beds_bed_side_bottom_r.png^[transformFX",
|
||||||
"beds_transparent.png",
|
"blank.png",
|
||||||
"beds_bed_side_bottom.png"
|
"beds_bed_side_bottom.png"
|
||||||
},
|
},
|
||||||
top = {
|
top = {
|
||||||
|
@ -75,7 +75,7 @@ beds.register_bed("beds:bed", {
|
||||||
"beds_bed_side_top_r.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_bed_side_top.png",
|
||||||
"beds_transparent.png",
|
"blank.png",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
nodebox = {
|
nodebox = {
|
||||||
|
|
|
@ -244,10 +244,9 @@ end
|
||||||
-- Callbacks
|
-- Callbacks
|
||||||
-- Only register respawn callback if respawn enabled
|
-- Only register respawn callback if respawn enabled
|
||||||
if enable_respawn then
|
if enable_respawn then
|
||||||
-- respawn player at bed if enabled and valid position is found
|
-- Respawn player at bed if valid position is found
|
||||||
minetest.register_on_respawnplayer(function(player)
|
spawn.register_on_spawn(function(player, is_new)
|
||||||
local name = player:get_player_name()
|
local pos = beds.spawn[player:get_player_name()]
|
||||||
local pos = beds.spawn[name]
|
|
||||||
if pos then
|
if pos then
|
||||||
player:set_pos(pos)
|
player:set_pos(pos)
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# textdomain: beds
|
# textdomain: beds
|
||||||
Fancy Bed=Luksa Lito
|
Fancy Bed=Luksa lito
|
||||||
Simple Bed=Simpla Lito
|
Simple Bed=Simpla lito
|
||||||
This bed is already occupied!=Tiu lito jam estas okupata!
|
This bed is already occupied!=Tiu lito jam estas okupata!
|
||||||
You have to stop moving before going to bed!=Vi ĉesu moviĝi por enlitiĝi!
|
You have to stop moving before going to bed!=Vi ĉesu moviĝi por enlitiĝi!
|
||||||
Good morning.=Bonan matenon.
|
Good morning.=Bonan matenon.
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# textdomain: beds
|
# textdomain: beds
|
||||||
Fancy Bed=Детализированная Кровать
|
Fancy Bed=Красивая кровать
|
||||||
Simple Bed=Обычная Кровать
|
Simple Bed=Простая кровать
|
||||||
This bed is already occupied!=Эта кровать уже занята!
|
This bed is already occupied!=Эта кровать уже занята!
|
||||||
You have to stop moving before going to bed!=Нельзя воспользоваться кроватью на ходу!
|
You have to stop moving before going to bed!=Вам нужно перестать двигаться чтобы лечь!
|
||||||
Good morning.=Доброе утро.
|
Good morning.=Доброе утро.
|
||||||
@1 of @2 players are in bed=@1 из @2 игроков в кровати
|
@1 of @2 players are in bed=@1 из @2 игроков в кровати
|
||||||
Force night skip=Пропустить ночь
|
Force night skip=Пропустить ночь
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
name = beds
|
name = beds
|
||||||
description = Minetest Game mod: beds
|
description = Minetest Game mod: beds
|
||||||
depends = default, wool
|
depends = default, wool, spawn
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 83 B |
|
@ -1,3 +1,3 @@
|
||||||
# textdomain: binoculars
|
# textdomain: binoculars
|
||||||
Binoculars=Бинокль
|
Binoculars=Бинокль
|
||||||
Use with 'Zoom' key=Используется с привилегией 'Zoom'
|
Use with 'Zoom' key=Используется клавишей 'Приближение'
|
||||||
|
|
|
@ -16,6 +16,27 @@ local function is_owner(pos, name)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function drop(pos, itemstack)
|
||||||
|
local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
|
||||||
|
if obj then
|
||||||
|
obj:set_velocity({
|
||||||
|
x = math.random(-10, 10) / 9,
|
||||||
|
y = 5,
|
||||||
|
z = math.random(-10, 10) / 9,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function drop_contents(pos)
|
||||||
|
local inv = minetest.get_meta(pos):get_inventory()
|
||||||
|
|
||||||
|
for i = 1, inv:get_size("main") do
|
||||||
|
local stk = inv:get_stack("main", i)
|
||||||
|
drop(pos, stk)
|
||||||
|
end
|
||||||
|
minetest.remove_node(pos)
|
||||||
|
end
|
||||||
|
|
||||||
local bones_formspec =
|
local bones_formspec =
|
||||||
"size[8,9]" ..
|
"size[8,9]" ..
|
||||||
"list[current_name;main;0,0.3;8,4;]" ..
|
"list[current_name;main;0,0.3;8,4;]" ..
|
||||||
|
@ -87,6 +108,11 @@ local bones_def = {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not player:is_player() then
|
||||||
|
drop_contents(pos)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if minetest.get_meta(pos):get_string("infotext") == "" then
|
if minetest.get_meta(pos):get_string("infotext") == "" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -171,17 +197,6 @@ local function may_replace(pos, player)
|
||||||
return node_definition.buildable_to
|
return node_definition.buildable_to
|
||||||
end
|
end
|
||||||
|
|
||||||
local drop = function(pos, itemstack)
|
|
||||||
local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count()))
|
|
||||||
if obj then
|
|
||||||
obj:set_velocity({
|
|
||||||
x = math.random(-10, 10) / 9,
|
|
||||||
y = 5,
|
|
||||||
z = math.random(-10, 10) / 9,
|
|
||||||
})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local player_inventory_lists = { "main", "craft" }
|
local player_inventory_lists = { "main", "craft" }
|
||||||
bones.player_inventory_lists = player_inventory_lists
|
bones.player_inventory_lists = player_inventory_lists
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# textdomain: bones
|
# textdomain: bones
|
||||||
Bones=Кости
|
Bones=Кости
|
||||||
@1's old bones=Старые кости @1
|
@1's old bones=Старые кости @1
|
||||||
@1 died at @2.=@1 умер в @2.
|
@1 died at @2.=Игрок @1 умер в @2.
|
||||||
@1 died at @2, and dropped their inventory.=@1 умер в @2 и потерял содержимое своего инвентаря.
|
@1 died at @2, and dropped their inventory.=Игрок @1 умер в @2 и потерял содержимое своего инвентаря.
|
||||||
@1 died at @2, and bones were placed.=@1 умер в @2, помещены кости.
|
@1 died at @2, and bones were placed.=Игрок @1 умер в @2, кости размещены.
|
||||||
@1's fresh bones=новые кости @1
|
@1's fresh bones=Новые кости @1
|
||||||
@1's bones=кости @1
|
@1's bones=Кости @1
|
||||||
|
|
|
@ -33,6 +33,11 @@ local function check_protection(pos, name, text)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function log_action(pos, name, action)
|
||||||
|
minetest.log("action", (name ~= "" and name or "A mod")
|
||||||
|
.. " " .. action .. " at " .. minetest.pos_to_string(pos) .. " with a bucket")
|
||||||
|
end
|
||||||
|
|
||||||
-- Register a new liquid
|
-- Register a new liquid
|
||||||
-- source = name of the source node
|
-- source = name of the source node
|
||||||
-- flowing = name of the flowing node
|
-- flowing = name of the flowing node
|
||||||
|
@ -101,13 +106,13 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if check_protection(lpos, user
|
local pname = user and user:get_player_name() or ""
|
||||||
and user:get_player_name()
|
if check_protection(lpos, pname, "place "..source) then
|
||||||
or "", "place "..source) then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.set_node(lpos, {name = source})
|
minetest.set_node(lpos, {name = source})
|
||||||
|
log_action(lpos, pname, "placed " .. source)
|
||||||
return ItemStack("bucket:bucket_empty")
|
return ItemStack("bucket:bucket_empty")
|
||||||
end
|
end
|
||||||
})
|
})
|
||||||
|
@ -128,16 +133,16 @@ minetest.register_craftitem("bucket:bucket_empty", {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
-- Check if pointing to a liquid source
|
-- Check if pointing to a liquid source
|
||||||
local node = minetest.get_node(pointed_thing.under)
|
local pos = pointed_thing.under
|
||||||
|
local node = minetest.get_node(pos)
|
||||||
local liquiddef = bucket.liquids[node.name]
|
local liquiddef = bucket.liquids[node.name]
|
||||||
local item_count = user:get_wielded_item():get_count()
|
local item_count = user:get_wielded_item():get_count()
|
||||||
|
|
||||||
if liquiddef ~= nil
|
if liquiddef ~= nil
|
||||||
and liquiddef.itemname ~= nil
|
and liquiddef.itemname ~= nil
|
||||||
and node.name == liquiddef.source then
|
and node.name == liquiddef.source then
|
||||||
if check_protection(pointed_thing.under,
|
local pname = user:get_player_name()
|
||||||
user:get_player_name(),
|
if check_protection(pos, pname, "take ".. node.name) then
|
||||||
"take ".. node.name) then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -152,9 +157,9 @@ minetest.register_craftitem("bucket:bucket_empty", {
|
||||||
if inv:room_for_item("main", {name=liquiddef.itemname}) then
|
if inv:room_for_item("main", {name=liquiddef.itemname}) then
|
||||||
inv:add_item("main", liquiddef.itemname)
|
inv:add_item("main", liquiddef.itemname)
|
||||||
else
|
else
|
||||||
local pos = user:get_pos()
|
local upos = user:get_pos()
|
||||||
pos.y = math.floor(pos.y + 0.5)
|
upos.y = math.floor(upos.y + 0.5)
|
||||||
minetest.add_item(pos, liquiddef.itemname)
|
minetest.add_item(upos, liquiddef.itemname)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- set to return empty buckets minus 1
|
-- set to return empty buckets minus 1
|
||||||
|
@ -166,10 +171,13 @@ minetest.register_craftitem("bucket:bucket_empty", {
|
||||||
local source_neighbor = false
|
local source_neighbor = false
|
||||||
if liquiddef.force_renew then
|
if liquiddef.force_renew then
|
||||||
source_neighbor =
|
source_neighbor =
|
||||||
minetest.find_node_near(pointed_thing.under, 1, liquiddef.source)
|
minetest.find_node_near(pos, 1, liquiddef.source)
|
||||||
end
|
end
|
||||||
if not (source_neighbor and liquiddef.force_renew) then
|
if source_neighbor and liquiddef.force_renew then
|
||||||
minetest.add_node(pointed_thing.under, {name = "air"})
|
log_action(pos, pname, "picked up " .. liquiddef.source .. " (force renewed)")
|
||||||
|
else
|
||||||
|
minetest.add_node(pos, {name = "air"})
|
||||||
|
log_action(pos, pname, "picked up " .. liquiddef.source)
|
||||||
end
|
end
|
||||||
|
|
||||||
return ItemStack(giving_back)
|
return ItemStack(giving_back)
|
||||||
|
@ -177,7 +185,7 @@ minetest.register_craftitem("bucket:bucket_empty", {
|
||||||
-- non-liquid nodes will have their on_punch triggered
|
-- non-liquid nodes will have their on_punch triggered
|
||||||
local node_def = minetest.registered_nodes[node.name]
|
local node_def = minetest.registered_nodes[node.name]
|
||||||
if node_def then
|
if node_def then
|
||||||
node_def.on_punch(pointed_thing.under, node, user, pointed_thing)
|
node_def.on_punch(pos, node, user, pointed_thing)
|
||||||
end
|
end
|
||||||
return user:get_wielded_item()
|
return user:get_wielded_item()
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# textdomain: bucket
|
# textdomain: bucket
|
||||||
Empty Bucket=Malplena Sitelo
|
Empty Bucket=Malplena sitelo
|
||||||
Water Bucket=Sitelo da Akvo
|
Water Bucket=Sitelo da akvo
|
||||||
River Water Bucket=Sitelo da Rivera Akvo
|
River Water Bucket=Sitelo da rivera akvo
|
||||||
Lava Bucket=Sitelo da Lafo
|
Lava Bucket=Sitelo da lafo
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# textdomain: bucket
|
# textdomain: bucket
|
||||||
Empty Bucket=Пустое Ведро
|
Empty Bucket=Пустое ведро
|
||||||
Water Bucket=Ведро с Водой
|
Water Bucket=Ведро с водой
|
||||||
River Water Bucket=Ведро с Речной Водой
|
River Water Bucket=Ведро с речной водой
|
||||||
Lava Bucket=Ведро с Лавой
|
Lava Bucket=Ведро с лавой
|
||||||
|
|
|
@ -3,6 +3,9 @@
|
||||||
-- Load support for MT game translation.
|
-- Load support for MT game translation.
|
||||||
local S = minetest.get_translator("butterflies")
|
local S = minetest.get_translator("butterflies")
|
||||||
|
|
||||||
|
-- Legacy compatibility, when pointabilities don't exist, pointable is set to true.
|
||||||
|
local pointable_compat = not minetest.features.item_specific_pointabilities
|
||||||
|
|
||||||
-- register butterflies
|
-- register butterflies
|
||||||
local butter_list = {
|
local butter_list = {
|
||||||
{"white", S("White Butterfly")},
|
{"white", S("White Butterfly")},
|
||||||
|
@ -33,24 +36,15 @@ for i in ipairs (butter_list) do
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
buildable_to = true,
|
buildable_to = true,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
|
pointable = pointable_compat,
|
||||||
groups = {catchable = 1},
|
groups = {catchable = 1},
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
fixed = {-0.1, -0.1, -0.1, 0.1, 0.1, 0.1},
|
||||||
},
|
},
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:butterfly_"..name})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) < 11 then
|
if minetest.get_node_light(pos) < 11 then
|
||||||
|
@ -72,18 +66,8 @@ for i in ipairs (butter_list) do
|
||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "butterflies:hidden_butterfly_"..name})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) >= 11 then
|
if minetest.get_node_light(pos) >= 11 then
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: butterflies
|
# textdomain: butterflies
|
||||||
White Butterfly=Blanka Papilio
|
White Butterfly=Blanka papilio
|
||||||
Red Butterfly=Ruĝa Papilio
|
Red Butterfly=Ruĝa papilio
|
||||||
Violet Butterfly=Violkolora Papilio
|
Violet Butterfly=Violkolora papilio
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: butterflies
|
# textdomain: butterflies
|
||||||
White Butterfly=
|
White Butterfly=Borboleta Branca
|
||||||
Red Butterfly=
|
Red Butterfly=Borboleta Vermelha
|
||||||
Violet Butterfly=
|
Violet Butterfly=Borboleta Violeta
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: butterflies
|
# textdomain: butterflies
|
||||||
White Butterfly=Белая Бабочка
|
White Butterfly=Белая бабочка
|
||||||
Red Butterfly=Красная Бабочка
|
Red Butterfly=Красная бабочка
|
||||||
Violet Butterfly=Фиолетовая Бабочка
|
Violet Butterfly=Фиолетовая бабочка
|
||||||
|
|
|
@ -413,7 +413,8 @@ minetest.register_craftitem("carts:cart", {
|
||||||
minetest.sound_play({name = "default_place_node_metal", gain = 0.5},
|
minetest.sound_play({name = "default_place_node_metal", gain = 0.5},
|
||||||
{pos = pointed_thing.above}, true)
|
{pos = pointed_thing.above}, true)
|
||||||
|
|
||||||
if not minetest.is_creative_enabled(placer:get_player_name()) then
|
local player_name = placer and placer:get_player_name() or ""
|
||||||
|
if not minetest.is_creative_enabled(player_name) then
|
||||||
itemstack:take_item()
|
itemstack:take_item()
|
||||||
end
|
end
|
||||||
return itemstack
|
return itemstack
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
Cart=Ĉaro
|
Cart=Ĉaro
|
||||||
(Sneak+Click to pick up)=(Ŝteliri+Alklaki por reprini)
|
(Sneak+Click to pick up)=(Ŝteliri+Alklaki por reprini)
|
||||||
Rail=Relo
|
Rail=Relo
|
||||||
Powered Rail=Elektra Relo
|
Powered Rail=Elektra relo
|
||||||
Brake Rail=Bremsa Relo
|
Brake Rail=Bremsa relo
|
||||||
|
|
|
@ -2,5 +2,5 @@
|
||||||
Cart=Вагонетка
|
Cart=Вагонетка
|
||||||
(Sneak+Click to pick up)=(Пригнитесь и кликните по вагонетке, чтобы забрать)
|
(Sneak+Click to pick up)=(Пригнитесь и кликните по вагонетке, чтобы забрать)
|
||||||
Rail=Рельсы
|
Rail=Рельсы
|
||||||
Powered Rail=Запитанные рельсы
|
Powered Rail=Ускоряющие рельсы
|
||||||
Brake Rail=Тормозящие рельсы
|
Brake Rail=Тормозящие рельсы
|
||||||
|
|
|
@ -170,6 +170,7 @@ function creative.register_tab(name, title, items)
|
||||||
"tooltip[creative_prev;" .. esc(S("Previous page")) .. "]" ..
|
"tooltip[creative_prev;" .. esc(S("Previous page")) .. "]" ..
|
||||||
"tooltip[creative_next;" .. esc(S("Next page")) .. "]" ..
|
"tooltip[creative_next;" .. esc(S("Next page")) .. "]" ..
|
||||||
"listring[current_player;main]" ..
|
"listring[current_player;main]" ..
|
||||||
|
"field_enter_after_edit[creative_filter;true]" ..
|
||||||
"field_close_on_enter[creative_filter;false]" ..
|
"field_close_on_enter[creative_filter;false]" ..
|
||||||
"field[0.3,4.2;2.8,1.2;creative_filter;;" .. esc(inv.filter) .. "]" ..
|
"field[0.3,4.2;2.8,1.2;creative_filter;;" .. esc(inv.filter) .. "]" ..
|
||||||
"listring[detached:creative_" .. player_name .. ";main]" ..
|
"listring[detached:creative_" .. player_name .. ";main]" ..
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# textdomain: creative
|
# textdomain: creative
|
||||||
Allow player to use creative inventory=Разрешить игроку использовать творческий инвентарь
|
Allow player to use creative inventory=Разрешить игроку использовать творческий инвентарь
|
||||||
No items to show.=
|
No items to show.=Нет предметов.
|
||||||
Search=Поиск
|
Search=Поиск
|
||||||
Reset=Сброс
|
Reset=Сброс
|
||||||
Previous page=Предыдущая страница
|
Previous page=Предыдущая страница
|
||||||
|
|
|
@ -163,12 +163,12 @@ function default.chest.register_chest(prefixed_name, d)
|
||||||
local itemstack = player:get_wielded_item()
|
local itemstack = player:get_wielded_item()
|
||||||
local key_meta = itemstack:get_meta()
|
local key_meta = itemstack:get_meta()
|
||||||
|
|
||||||
if itemstack:get_metadata() == "" then
|
if itemstack:get_meta():get_string("") == "" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if key_meta:get_string("secret") == "" then
|
if key_meta:get_string("secret") == "" then
|
||||||
key_meta:set_string("secret", minetest.parse_json(itemstack:get_metadata()).secret)
|
key_meta:set_string("secret", minetest.parse_json(itemstack:get_meta():get_string("")).secret)
|
||||||
itemstack:set_metadata("")
|
itemstack:set_metadata("")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -284,7 +284,7 @@ function default.chest.register_chest(prefixed_name, d)
|
||||||
nodenames = {name},
|
nodenames = {name},
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("formspec", nil)
|
meta:set_string("formspec", "")
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
local list = inv:get_list("default:chest")
|
local list = inv:get_list("default:chest")
|
||||||
if list then
|
if list then
|
||||||
|
@ -297,9 +297,10 @@ function default.chest.register_chest(prefixed_name, d)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- close opened chests on load
|
-- close opened chests on load
|
||||||
|
local modname, chestname = prefixed_name:match("^(:?.-):(.*)$")
|
||||||
minetest.register_lbm({
|
minetest.register_lbm({
|
||||||
label = "close opened chests on load",
|
label = "close opened chests on load",
|
||||||
name = "default:close_" .. prefixed_name:gsub(":", "_") .. "_open",
|
name = modname .. ":close_" .. chestname .. "_open",
|
||||||
nodenames = {prefixed_name .. "_open"},
|
nodenames = {prefixed_name .. "_open"},
|
||||||
run_at_every_load = true,
|
run_at_every_load = true,
|
||||||
action = function(pos, node)
|
action = function(pos, node)
|
||||||
|
|
|
@ -57,7 +57,7 @@ local function book_on_use(itemstack, user)
|
||||||
local page, page_max, lines, string = 1, 1, {}, ""
|
local page, page_max, lines, string = 1, 1, {}, ""
|
||||||
|
|
||||||
-- Backwards compatibility
|
-- Backwards compatibility
|
||||||
local old_data = minetest.deserialize(itemstack:get_metadata())
|
local old_data = minetest.deserialize(itemstack:get_meta():get_string(""))
|
||||||
if old_data then
|
if old_data then
|
||||||
meta:from_table({ fields = old_data })
|
meta:from_table({ fields = old_data })
|
||||||
end
|
end
|
||||||
|
|
|
@ -2,149 +2,149 @@
|
||||||
-- Sounds
|
-- Sounds
|
||||||
--
|
--
|
||||||
|
|
||||||
function default.node_sound_defaults(table)
|
function default.node_sound_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "", gain = 1.0}
|
{name = "", gain = 1.0}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_dug_node", gain = 0.25}
|
{name = "default_dug_node", gain = 0.25}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node_hard", gain = 1.0}
|
{name = "default_place_node_hard", gain = 1.0}
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_stone_defaults(table)
|
function default.node_sound_stone_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_hard_footstep", gain = 0.2}
|
{name = "default_hard_footstep", gain = 0.2}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_hard_footstep", gain = 1.0}
|
{name = "default_hard_footstep", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_dirt_defaults(table)
|
function default.node_sound_dirt_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_dirt_footstep", gain = 0.25}
|
{name = "default_dirt_footstep", gain = 0.25}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_dig_crumbly", gain = 0.4}
|
{name = "default_dig_crumbly", gain = 0.4}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_dirt_footstep", gain = 1.0}
|
{name = "default_dirt_footstep", gain = 1.0}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node", gain = 1.0}
|
{name = "default_place_node", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_sand_defaults(table)
|
function default.node_sound_sand_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_sand_footstep", gain = 0.05}
|
{name = "default_sand_footstep", gain = 0.05}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_sand_footstep", gain = 0.15}
|
{name = "default_sand_footstep", gain = 0.15}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node", gain = 1.0}
|
{name = "default_place_node", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_gravel_defaults(table)
|
function default.node_sound_gravel_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_gravel_footstep", gain = 0.25}
|
{name = "default_gravel_footstep", gain = 0.25}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_gravel_dig", gain = 0.35}
|
{name = "default_gravel_dig", gain = 0.35}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_gravel_dug", gain = 1.0}
|
{name = "default_gravel_dug", gain = 1.0}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node", gain = 1.0}
|
{name = "default_place_node", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_wood_defaults(table)
|
function default.node_sound_wood_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_wood_footstep", gain = 0.15}
|
{name = "default_wood_footstep", gain = 0.15}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_dig_choppy", gain = 0.4}
|
{name = "default_dig_choppy", gain = 0.4}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_wood_footstep", gain = 1.0}
|
{name = "default_wood_footstep", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_leaves_defaults(table)
|
function default.node_sound_leaves_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_grass_footstep", gain = 0.45}
|
{name = "default_grass_footstep", gain = 0.45}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_grass_footstep", gain = 0.7}
|
{name = "default_grass_footstep", gain = 0.7}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node", gain = 1.0}
|
{name = "default_place_node", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_glass_defaults(table)
|
function default.node_sound_glass_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_glass_footstep", gain = 0.3}
|
{name = "default_glass_footstep", gain = 0.3}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_glass_footstep", gain = 0.5}
|
{name = "default_glass_footstep", gain = 0.5}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_break_glass", gain = 1.0}
|
{name = "default_break_glass", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_ice_defaults(table)
|
function default.node_sound_ice_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_ice_footstep", gain = 0.15}
|
{name = "default_ice_footstep", gain = 0.15}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_ice_dig", gain = 0.5}
|
{name = "default_ice_dig", gain = 0.5}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_ice_dug", gain = 0.5}
|
{name = "default_ice_dug", gain = 0.5}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_metal_defaults(table)
|
function default.node_sound_metal_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_metal_footstep", gain = 0.2}
|
{name = "default_metal_footstep", gain = 0.2}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_dig_metal", gain = 0.5}
|
{name = "default_dig_metal", gain = 0.5}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_dug_metal", gain = 0.5}
|
{name = "default_dug_metal", gain = 0.5}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node_metal", gain = 0.5}
|
{name = "default_place_node_metal", gain = 0.5}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_water_defaults(table)
|
function default.node_sound_water_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_water_footstep", gain = 0.2}
|
{name = "default_water_footstep", gain = 0.2}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
function default.node_sound_snow_defaults(table)
|
function default.node_sound_snow_defaults(tbl)
|
||||||
table = table or {}
|
tbl = tbl or {}
|
||||||
table.footstep = table.footstep or
|
tbl.footstep = tbl.footstep or
|
||||||
{name = "default_snow_footstep", gain = 0.2}
|
{name = "default_snow_footstep", gain = 0.2}
|
||||||
table.dig = table.dig or
|
tbl.dig = tbl.dig or
|
||||||
{name = "default_snow_footstep", gain = 0.3}
|
{name = "default_snow_footstep", gain = 0.3}
|
||||||
table.dug = table.dug or
|
tbl.dug = tbl.dug or
|
||||||
{name = "default_snow_footstep", gain = 0.3}
|
{name = "default_snow_footstep", gain = 0.3}
|
||||||
table.place = table.place or
|
tbl.place = tbl.place or
|
||||||
{name = "default_place_node", gain = 1.0}
|
{name = "default_place_node", gain = 1.0}
|
||||||
default.node_sound_defaults(table)
|
default.node_sound_defaults(tbl)
|
||||||
return table
|
return tbl
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -293,15 +293,32 @@ minetest.register_abm({
|
||||||
-- Dig upwards
|
-- Dig upwards
|
||||||
--
|
--
|
||||||
|
|
||||||
function default.dig_up(pos, node, digger)
|
local in_dig_up = false
|
||||||
|
|
||||||
|
function default.dig_up(pos, node, digger, max_height)
|
||||||
|
if in_dig_up then return end -- Do not recurse
|
||||||
if digger == nil then return end
|
if digger == nil then return end
|
||||||
local np = {x = pos.x, y = pos.y + 1, z = pos.z}
|
max_height = max_height or 100
|
||||||
local nn = minetest.get_node(np)
|
|
||||||
if nn.name == node.name then
|
in_dig_up = true
|
||||||
minetest.node_dig(np, nn, digger)
|
for y = 1, max_height do
|
||||||
|
local up_pos = vector.offset(pos, 0, y, 0)
|
||||||
|
local up_node = minetest.get_node(up_pos)
|
||||||
|
if up_node.name ~= node.name then
|
||||||
|
break
|
||||||
end
|
end
|
||||||
|
if not minetest.node_dig(up_pos, up_node, digger) then
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
in_dig_up = false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- errors are hard to handle, instead we rely on resetting this value the next step
|
||||||
|
minetest.register_globalstep(function()
|
||||||
|
in_dig_up = false
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Fence registration helper
|
-- Fence registration helper
|
||||||
|
@ -309,14 +326,6 @@ end
|
||||||
local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0
|
local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0
|
||||||
|
|
||||||
function default.register_fence(name, def)
|
function default.register_fence(name, def)
|
||||||
minetest.register_craft({
|
|
||||||
output = name .. " 4",
|
|
||||||
recipe = {
|
|
||||||
{ def.material, 'group:stick', def.material },
|
|
||||||
{ def.material, 'group:stick', def.material },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
local fence_texture = "default_fence_overlay.png^" .. def.texture ..
|
local fence_texture = "default_fence_overlay.png^" .. def.texture ..
|
||||||
"^default_fence_overlay.png^[makealpha:255,126,126"
|
"^default_fence_overlay.png^[makealpha:255,126,126"
|
||||||
-- Allow almost everything to be overridden
|
-- Allow almost everything to be overridden
|
||||||
|
@ -364,10 +373,22 @@ function default.register_fence(name, def)
|
||||||
-- Always add to the fence group, even if no group provided
|
-- Always add to the fence group, even if no group provided
|
||||||
def.groups.fence = 1
|
def.groups.fence = 1
|
||||||
|
|
||||||
|
local material = def.material
|
||||||
def.texture = nil
|
def.texture = nil
|
||||||
def.material = nil
|
def.material = nil
|
||||||
|
|
||||||
minetest.register_node(name, def)
|
minetest.register_node(name, def)
|
||||||
|
|
||||||
|
-- Register crafting recipe, trim away starting colon if any
|
||||||
|
if not material then return end
|
||||||
|
name = string.gsub(name, "^:", "")
|
||||||
|
minetest.register_craft({
|
||||||
|
output = name .. " 4",
|
||||||
|
recipe = {
|
||||||
|
{ material, 'group:stick', material },
|
||||||
|
{ material, 'group:stick', material },
|
||||||
|
}
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -376,15 +397,6 @@ end
|
||||||
--
|
--
|
||||||
|
|
||||||
function default.register_fence_rail(name, def)
|
function default.register_fence_rail(name, def)
|
||||||
minetest.register_craft({
|
|
||||||
output = name .. " 16",
|
|
||||||
recipe = {
|
|
||||||
{ def.material, def.material },
|
|
||||||
{ "", ""},
|
|
||||||
{ def.material, def.material },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
local fence_rail_texture = "default_fence_rail_overlay.png^" .. def.texture ..
|
local fence_rail_texture = "default_fence_rail_overlay.png^" .. def.texture ..
|
||||||
"^default_fence_rail_overlay.png^[makealpha:255,126,126"
|
"^default_fence_rail_overlay.png^[makealpha:255,126,126"
|
||||||
-- Allow almost everything to be overridden
|
-- Allow almost everything to be overridden
|
||||||
|
@ -433,10 +445,23 @@ function default.register_fence_rail(name, def)
|
||||||
-- Always add to the fence group, even if no group provided
|
-- Always add to the fence group, even if no group provided
|
||||||
def.groups.fence = 1
|
def.groups.fence = 1
|
||||||
|
|
||||||
|
local material = def.material
|
||||||
def.texture = nil
|
def.texture = nil
|
||||||
def.material = nil
|
def.material = nil
|
||||||
|
|
||||||
minetest.register_node(name, def)
|
minetest.register_node(name, def)
|
||||||
|
|
||||||
|
-- Register crafting recipe, trim away starting colon if any
|
||||||
|
if not material then return end
|
||||||
|
name = string.gsub(name, "^:", "")
|
||||||
|
minetest.register_craft({
|
||||||
|
output = name .. " 16",
|
||||||
|
recipe = {
|
||||||
|
{ material, material },
|
||||||
|
{ "", ""},
|
||||||
|
{ material, material },
|
||||||
|
}
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -444,15 +469,6 @@ end
|
||||||
--
|
--
|
||||||
|
|
||||||
function default.register_mesepost(name, def)
|
function default.register_mesepost(name, def)
|
||||||
minetest.register_craft({
|
|
||||||
output = name .. " 4",
|
|
||||||
recipe = {
|
|
||||||
{'', 'default:glass', ''},
|
|
||||||
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
|
||||||
{'', def.material, ''},
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
local post_texture = def.texture .. "^default_mese_post_light_side.png^[makealpha:0,0,0"
|
local post_texture = def.texture .. "^default_mese_post_light_side.png^[makealpha:0,0,0"
|
||||||
local post_texture_dark = def.texture .. "^default_mese_post_light_side_dark.png^[makealpha:0,0,0"
|
local post_texture_dark = def.texture .. "^default_mese_post_light_side_dark.png^[makealpha:0,0,0"
|
||||||
-- Allow almost everything to be overridden
|
-- Allow almost everything to be overridden
|
||||||
|
@ -480,10 +496,23 @@ function default.register_mesepost(name, def)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local material = def.material
|
||||||
def.texture = nil
|
def.texture = nil
|
||||||
def.material = nil
|
def.material = nil
|
||||||
|
|
||||||
minetest.register_node(name, def)
|
minetest.register_node(name, def)
|
||||||
|
|
||||||
|
-- Register crafting recipe, trim away starting colon if any
|
||||||
|
if not material then return end
|
||||||
|
name = string.gsub(name, "^:", "")
|
||||||
|
minetest.register_craft({
|
||||||
|
output = name .. " 4",
|
||||||
|
recipe = {
|
||||||
|
{'', 'default:glass', ''},
|
||||||
|
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
||||||
|
{'', material, ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
--
|
--
|
||||||
|
@ -791,7 +820,7 @@ function default.can_interact_with_node(player, pos)
|
||||||
local key_meta = item:get_meta()
|
local key_meta = item:get_meta()
|
||||||
|
|
||||||
if key_meta:get_string("secret") == "" then
|
if key_meta:get_string("secret") == "" then
|
||||||
local key_oldmeta = item:get_metadata()
|
local key_oldmeta = item:get_meta():get_string("")
|
||||||
if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then
|
if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
|
@ -134,6 +134,7 @@ local function furnace_node_timer(pos, elapsed)
|
||||||
local fuel
|
local fuel
|
||||||
|
|
||||||
local update = true
|
local update = true
|
||||||
|
local items_smelt = 0
|
||||||
while elapsed > 0 and update do
|
while elapsed > 0 and update do
|
||||||
update = false
|
update = false
|
||||||
|
|
||||||
|
@ -171,9 +172,7 @@ local function furnace_node_timer(pos, elapsed)
|
||||||
else
|
else
|
||||||
dst_full = true
|
dst_full = true
|
||||||
end
|
end
|
||||||
-- Play cooling sound
|
items_smelt = items_smelt + 1
|
||||||
minetest.sound_play("default_cool_lava",
|
|
||||||
{pos = pos, max_hear_distance = 16, gain = 0.07}, true)
|
|
||||||
else
|
else
|
||||||
-- Item could not be cooked: probably missing fuel
|
-- Item could not be cooked: probably missing fuel
|
||||||
update = true
|
update = true
|
||||||
|
@ -224,6 +223,11 @@ local function furnace_node_timer(pos, elapsed)
|
||||||
elapsed = elapsed - el
|
elapsed = elapsed - el
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if items_smelt > 0 then
|
||||||
|
-- Play cooling sound
|
||||||
|
minetest.sound_play("default_cool_lava",
|
||||||
|
{ pos = pos, max_hear_distance = 16, gain = 0.07 * math.min(items_smelt, 7) }, true)
|
||||||
|
end
|
||||||
if fuel and fuel_totaltime > fuel.time then
|
if fuel and fuel_totaltime > fuel.time then
|
||||||
fuel_totaltime = fuel.time
|
fuel_totaltime = fuel.time
|
||||||
end
|
end
|
||||||
|
@ -329,7 +333,12 @@ end
|
||||||
-- Node definitions
|
-- Node definitions
|
||||||
--
|
--
|
||||||
|
|
||||||
minetest.register_node("default:furnace", {
|
local function apply_logger(def)
|
||||||
|
default.set_inventory_action_loggers(def, "furnace")
|
||||||
|
return def
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_node("default:furnace", apply_logger({
|
||||||
description = S("Furnace"),
|
description = S("Furnace"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_furnace_top.png", "default_furnace_bottom.png",
|
"default_furnace_top.png", "default_furnace_bottom.png",
|
||||||
|
@ -379,9 +388,9 @@ minetest.register_node("default:furnace", {
|
||||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||||
})
|
}))
|
||||||
|
|
||||||
minetest.register_node("default:furnace_active", {
|
minetest.register_node("default:furnace_active", apply_logger({
|
||||||
description = S("Furnace"),
|
description = S("Furnace"),
|
||||||
tiles = {
|
tiles = {
|
||||||
"default_furnace_top.png", "default_furnace_bottom.png",
|
"default_furnace_top.png", "default_furnace_bottom.png",
|
||||||
|
@ -415,7 +424,7 @@ minetest.register_node("default:furnace_active", {
|
||||||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||||
})
|
}))
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
output = "default:furnace",
|
output = "default:furnace",
|
||||||
|
|
|
@ -77,3 +77,19 @@ dofile(default_path.."/crafting.lua")
|
||||||
dofile(default_path.."/mapgen.lua")
|
dofile(default_path.."/mapgen.lua")
|
||||||
dofile(default_path.."/aliases.lua")
|
dofile(default_path.."/aliases.lua")
|
||||||
dofile(default_path.."/legacy.lua")
|
dofile(default_path.."/legacy.lua")
|
||||||
|
|
||||||
|
-- Smoke test that is run via ./util/test/run.sh
|
||||||
|
if minetest.settings:get_bool("minetest_game_smoke_test") then
|
||||||
|
minetest.after(0, function()
|
||||||
|
minetest.emerge_area(vector.new(0, 0, 0), vector.new(32, 32, 32))
|
||||||
|
local pos = vector.new(9, 9, 9)
|
||||||
|
local function check()
|
||||||
|
if minetest.get_node(pos).name ~= "ignore" then
|
||||||
|
minetest.request_shutdown()
|
||||||
|
return
|
||||||
|
end
|
||||||
|
minetest.after(0, check)
|
||||||
|
end
|
||||||
|
check()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# textdomain: default
|
# textdomain: default
|
||||||
Locked Chest=Ŝlosita Kesto
|
Locked Chest=Ŝlosita kesto
|
||||||
Locked Chest (owned by @1)=Ŝlosita Kesto (de @1)
|
Locked Chest (owned by @1)=Ŝlosita kesto (de @1)
|
||||||
You do not own this chest.=Vi ne posedas ĉi tiun keston.
|
You do not own this chest.=Vi ne posedas ĉi tiun keston.
|
||||||
a locked chest=ŝlosita kesto
|
a locked chest=ŝlosita kesto
|
||||||
Chest=Kesto
|
Chest=Kesto
|
||||||
|
@ -15,26 +15,26 @@ The book you were writing to mysteriously disappeared.=La libro, kiun vi skribis
|
||||||
"@1" by @2="@1" per @2
|
"@1" by @2="@1" per @2
|
||||||
Blueberries=Mirteloj
|
Blueberries=Mirteloj
|
||||||
Book=Libro
|
Book=Libro
|
||||||
Book with Text=Libro kun Teksto
|
Book with Text=Libro kun teksto
|
||||||
Bronze Ingot=Bronza Ingoto
|
Bronze Ingot=Bronza ingoto
|
||||||
Clay Brick=Argila Briko
|
Clay Brick=Argila briko
|
||||||
Clay Lump=Argila Bulo
|
Clay Lump=Argila bulo
|
||||||
Coal Lump=Karba Bulo
|
Coal Lump=Karba bulo
|
||||||
Copper Ingot=Kupra Ingoto
|
Copper Ingot=Kupra ingoto
|
||||||
Copper Lump=Kupra Bulo
|
Copper Lump=Kupra bulo
|
||||||
Diamond=Diamanto
|
Diamond=Diamanto
|
||||||
Flint=Siliko
|
Flint=Siliko
|
||||||
Gold Ingot=Ora Ingoto
|
Gold Ingot=Ora ingoto
|
||||||
Gold Lump=Ora Bulo
|
Gold Lump=Ora bulo
|
||||||
Iron Lump=Fera Bulo
|
Iron Lump=Fera bulo
|
||||||
Mese Crystal=Mesea Kristalo
|
Mese Crystal=Mesea kristalo
|
||||||
Mese Crystal Fragment=Mesea Kristala Ero
|
Mese Crystal Fragment=Mesea kristala ero
|
||||||
Obsidian Shard=Obsidiana Peceto
|
Obsidian Shard=Obsidiana peceto
|
||||||
Paper=Papero
|
Paper=Papero
|
||||||
Steel Ingot=Ŝtala Ingoto
|
Steel Ingot=Ŝtala ingoto
|
||||||
Stick=Bastono
|
Stick=Bastono
|
||||||
Tin Ingot=Stana Ingoto
|
Tin Ingot=Stana ingoto
|
||||||
Tin Lump=Stana Bulo
|
Tin Lump=Stana bulo
|
||||||
Furnace is empty=Forno estas malplena
|
Furnace is empty=Forno estas malplena
|
||||||
100% (output full)=100% (plena eligo)
|
100% (output full)=100% (plena eligo)
|
||||||
@1%=@1%
|
@1%=@1%
|
||||||
|
@ -46,175 +46,175 @@ Furnace inactive=Forno ne laboras
|
||||||
Furnace=Forno
|
Furnace=Forno
|
||||||
Stone=Ŝtono
|
Stone=Ŝtono
|
||||||
Cobblestone=Pavimŝtono
|
Cobblestone=Pavimŝtono
|
||||||
Stone Brick=Ŝtona Briko
|
Stone Brick=Ŝtona briko
|
||||||
Stone Block=Ŝtona Bloko
|
Stone Block=Ŝtona bloko
|
||||||
Mossy Cobblestone=Muska Pavimŝtono
|
Mossy Cobblestone=Muska pavimŝtono
|
||||||
Desert Stone=Dezerta Ŝtono
|
Desert Stone=Dezerta ŝtono
|
||||||
Desert Cobblestone=Dezerta Pavimŝtono
|
Desert Cobblestone=Dezerta pavimŝtono
|
||||||
Desert Stone Brick=Dezerta Ŝtona Briko
|
Desert Stone Brick=Dezerta ŝtona briko
|
||||||
Desert Stone Block=Dezerta Ŝtona Bloko
|
Desert Stone Block=Dezerta ŝtona bloko
|
||||||
Sandstone=Sablaŝtono
|
Sandstone=Sablaŝtono
|
||||||
Sandstone Brick=Sablaŝtono Briko
|
Sandstone Brick=Sablaŝtono briko
|
||||||
Sandstone Block=Sablaŝtono Bloko
|
Sandstone Block=Sablaŝtono bloko
|
||||||
Desert Sandstone=Dezerta Sablaŝtono
|
Desert Sandstone=Dezerta sablaŝtono
|
||||||
Desert Sandstone Brick=Dezerta Sablaŝtono Briko
|
Desert Sandstone Brick=Dezerta sablaŝtono briko
|
||||||
Desert Sandstone Block=Dezerta Sablaŝtono Bloko
|
Desert Sandstone Block=Dezerta sablaŝtono bloko
|
||||||
Silver Sandstone=Arĝenta Sablaŝtono
|
Silver Sandstone=Arĝenta sablaŝtono
|
||||||
Silver Sandstone Brick=Arĝenta Sablaŝtono Briko
|
Silver Sandstone Brick=Arĝenta sablaŝtono briko
|
||||||
Silver Sandstone Block=Arĝenta Sablaŝtono Bloko
|
Silver Sandstone Block=Arĝenta sablaŝtono bloko
|
||||||
Obsidian=Obsidiano
|
Obsidian=Obsidiano
|
||||||
Obsidian Brick=Obsidiana Briko
|
Obsidian Brick=Obsidiana briko
|
||||||
Obsidian Block=Obsidiana Bloko
|
Obsidian Block=Obsidiana bloko
|
||||||
Dirt=Tero
|
Dirt=Tero
|
||||||
Dirt with Grass=Tero kun Herbo
|
Dirt with Grass=Tero kun herbo
|
||||||
Dirt with Grass and Footsteps=Tero kun Herbo kaj Piedpaŝoj
|
Dirt with Grass and Footsteps=Tero kun herbo kaj piedpaŝoj
|
||||||
Dirt with Savanna Grass=Tero kun Savana Herbo
|
Dirt with Savanna Grass=Tero kun savana herbo
|
||||||
Dirt with Snow=Tero kun Neĝo
|
Dirt with Snow=Tero kun neĝo
|
||||||
Dirt with Rainforest Litter=Tero kun Pluvarbara Folioj
|
Dirt with Rainforest Litter=Tero kun pluvarbara folioj
|
||||||
Dirt with Coniferous Litter=Tero kun Koniferaj Folioj
|
Dirt with Coniferous Litter=Tero kun koniferaj folioj
|
||||||
Savanna Dirt=Savana Tero
|
Savanna Dirt=Savana tero
|
||||||
Savanna Dirt with Savanna Grass=Savana Tero kun Savana Herbo
|
Savanna Dirt with Savanna Grass=Savana tero kun savana herbo
|
||||||
Permafrost=Ĉiamfrosto
|
Permafrost=Ĉiamfrosto
|
||||||
Permafrost with Stones=Ĉiamfrosto kun Ŝtonoj
|
Permafrost with Stones=Ĉiamfrosto kun ŝtonoj
|
||||||
Permafrost with Moss=Ĉiamfrosto kun Musko
|
Permafrost with Moss=Ĉiamfrosto kun musko
|
||||||
Sand=Sablo
|
Sand=Sablo
|
||||||
Desert Sand=Dezerta Sablo
|
Desert Sand=Dezerta sablo
|
||||||
Silver Sand=Arĝenta Sablo
|
Silver Sand=Arĝenta sablo
|
||||||
Gravel=Gruzo
|
Gravel=Gruzo
|
||||||
Clay=Argilo
|
Clay=Argilo
|
||||||
Snow=Neĝo
|
Snow=Neĝo
|
||||||
Snow Block=Neĝa Bloko
|
Snow Block=Neĝa bloko
|
||||||
Ice=Glacio
|
Ice=Glacio
|
||||||
Cave Ice=Kaverna Glacio
|
Cave Ice=Kaverna glacio
|
||||||
Apple Tree=Pomarbo
|
Apple Tree=Pomarbo
|
||||||
Apple Wood Planks=Pomarbaj Lignaj Tabuloj
|
Apple Wood Planks=Pomarbaj lignaj tabuloj
|
||||||
Apple Tree Sapling=Pomarba Arbido
|
Apple Tree Sapling=Pomarba arbido
|
||||||
Apple Tree Leaves=Pomarbaj Folioj
|
Apple Tree Leaves=Pomarbaj folioj
|
||||||
Apple=Pomo
|
Apple=Pomo
|
||||||
Apple Marker=Poma Marko
|
Apple Marker=Poma marko
|
||||||
Jungle Tree=Ĝangala Arbo
|
Jungle Tree=Ĝangala arbo
|
||||||
Jungle Wood Planks=Ĝangalaj Lignaj Tabuloj
|
Jungle Wood Planks=Ĝangalaj lignaj tabuloj
|
||||||
Jungle Tree Leaves=Ĝangalaj Arbaj Folioj
|
Jungle Tree Leaves=Ĝangalaj arbaj folioj
|
||||||
Jungle Tree Sapling=Ĝangala Arba Arbido
|
Jungle Tree Sapling=Ĝangala arba arbido
|
||||||
Emergent Jungle Tree Sapling=Nova Ĝangala Arba Arbido
|
Emergent Jungle Tree Sapling=Nova ĝangala arba arbido
|
||||||
Pine Tree=Pino
|
Pine Tree=Pino
|
||||||
Pine Wood Planks=Pinaj Lignaj Tabuloj
|
Pine Wood Planks=Pinaj lignaj tabuloj
|
||||||
Pine Needles=Pinpingloj
|
Pine Needles=Pinpingloj
|
||||||
Pine Tree Sapling=Pina Arbido
|
Pine Tree Sapling=Pina arbido
|
||||||
Acacia Tree=Akacio
|
Acacia Tree=Akacio
|
||||||
Acacia Wood Planks=Akaciaj Lignaj Tabuloj
|
Acacia Wood Planks=Akaciaj lignaj tabuloj
|
||||||
Acacia Tree Leaves=Akaciaj Folioj
|
Acacia Tree Leaves=Akaciaj folioj
|
||||||
Acacia Tree Sapling=Akacia Arbido
|
Acacia Tree Sapling=Akacia arbido
|
||||||
Aspen Tree=Tremolo
|
Aspen Tree=Tremolo
|
||||||
Aspen Wood Planks=Tremolaj Lignaj Tabuloj
|
Aspen Wood Planks=Tremolaj lignaj tabuloj
|
||||||
Aspen Tree Leaves=Tremolaj Folioj
|
Aspen Tree Leaves=Tremolaj folioj
|
||||||
Aspen Tree Sapling=Tremola Arbido
|
Aspen Tree Sapling=Tremola arbido
|
||||||
Coal Ore=Karba Minaĵo
|
Coal Ore=Karba minaĵo
|
||||||
Coal Block=Karba Bloko
|
Coal Block=Karba bloko
|
||||||
Iron Ore=Fera Minaĵo
|
Iron Ore=Fera minaĵo
|
||||||
Steel Block=Ŝtala Bloko
|
Steel Block=Ŝtala bloko
|
||||||
Copper Ore=Kupra Minaĵo
|
Copper Ore=Kupra minaĵo
|
||||||
Copper Block=Kupra Bloko
|
Copper Block=Kupra bloko
|
||||||
Tin Ore=Stana Minaĵo
|
Tin Ore=Stana minaĵo
|
||||||
Tin Block=Stana Bloko
|
Tin Block=Stana bloko
|
||||||
Bronze Block=Bronza Bloko
|
Bronze Block=Bronza bloko
|
||||||
Mese Ore=Mesea Minaĵo
|
Mese Ore=Mesea minaĵo
|
||||||
Mese Block=Mesea Bloko
|
Mese Block=Mesea bloko
|
||||||
Gold Ore=Ora Minaĵo
|
Gold Ore=Ora minaĵo
|
||||||
Gold Block=Ora Bloko
|
Gold Block=Ora bloko
|
||||||
Diamond Ore=Diamanta Minaĵo
|
Diamond Ore=Diamanta minaĵo
|
||||||
Diamond Block=Diamanta Bloko
|
Diamond Block=Diamanta bloko
|
||||||
Cactus=Kakto
|
Cactus=Kakto
|
||||||
Large Cactus Seedling=Granda Kakta Kreskaĵo
|
Large Cactus Seedling=Granda kakta kreskaĵo
|
||||||
Papyrus=Papiruso
|
Papyrus=Papiruso
|
||||||
Dry Shrub=Seka Arbetaĵo
|
Dry Shrub=Seka arbetaĵo
|
||||||
Jungle Grass=Ĝangala Herbo
|
Jungle Grass=Ĝangala herbo
|
||||||
Grass=Herbo
|
Grass=Herbo
|
||||||
Savanna Grass=Savana Herbo
|
Savanna Grass=Savana herbo
|
||||||
Fern=Filiko
|
Fern=Filiko
|
||||||
Marram Grass=Amofilo
|
Marram Grass=Amofilo
|
||||||
Bush Stem=Arbateĵa Tubo
|
Bush Stem=Arbateĵa tubo
|
||||||
Bush Leaves=Arbateĵaj Folioj
|
Bush Leaves=Arbateĵaj folioj
|
||||||
Bush Sapling=Arbateĵa Arbido
|
Bush Sapling=Arbateĵa arbido
|
||||||
Blueberry Bush Leaves with Berries=Mirtelaj Arbateĵaj Folioj kaj Beroj
|
Blueberry Bush Leaves with Berries=Mirtelaj arbateĵaj folioj kaj beroj
|
||||||
Blueberry Bush Leaves=Mirtelaj Arbateĵaj Folioj
|
Blueberry Bush Leaves=Mirtelaj arbateĵaj folioj
|
||||||
Blueberry Bush Sapling=Mirtela Arbateĵa Arbido
|
Blueberry Bush Sapling=Mirtela arbateĵa arbido
|
||||||
Acacia Bush Stem=Akacia Arbateĵa Tubo
|
Acacia Bush Stem=Akacia arbateĵa tubo
|
||||||
Acacia Bush Leaves=Akaciaj Arbateĵaj Folioj
|
Acacia Bush Leaves=Akaciaj arbateĵaj folioj
|
||||||
Acacia Bush Sapling=Akacia Arbateĵa Arbido
|
Acacia Bush Sapling=Akacia arbateĵa arbido
|
||||||
Pine Bush Stem=Pina Arbateĵa Tubo
|
Pine Bush Stem=Pina arbateĵa tubo
|
||||||
Pine Bush Needles=Pinaj Arbateĵaj Pingloj
|
Pine Bush Needles=Pinaj arbateĵaj pingloj
|
||||||
Pine Bush Sapling=Pina Arbateĵa Arbido
|
Pine Bush Sapling=Pina arbateĵa arbido
|
||||||
Kelp=Fuko
|
Kelp=Fuko
|
||||||
Green Coral=Verda Koralo
|
Green Coral=Verda koralo
|
||||||
Pink Coral=Rozkolora Koralo
|
Pink Coral=Rozkolora koralo
|
||||||
Cyan Coral=Bluverda Koralo
|
Cyan Coral=Bluverda koralo
|
||||||
Brown Coral=Bruna Koralo
|
Brown Coral=Bruna koralo
|
||||||
Orange Coral=Oranĝkolora Koralo
|
Orange Coral=Oranĝkolora koralo
|
||||||
Coral Skeleton=Korala Framo
|
Coral Skeleton=Korala framo
|
||||||
Water Source=Akva Fonto
|
Water Source=Akva fonto
|
||||||
Flowing Water=Flua Akvo
|
Flowing Water=Flua akvo
|
||||||
River Water Source=Rivera Akva Fonto
|
River Water Source=Rivera akva fonto
|
||||||
Flowing River Water=Flua Rivera Akvo
|
Flowing River Water=Flua rivera akvo
|
||||||
Lava Source=Lafa Fonto
|
Lava Source=Lafa fonto
|
||||||
Flowing Lava=Flua Lafa
|
Flowing Lava=Flua lafa
|
||||||
Empty Bookshelf=Malplena Librobreto
|
Empty Bookshelf=Malplena librobreto
|
||||||
Bookshelf (@1 written, @2 empty books)=Librobreto (@1 skriba(j), @2 malplena(j) libro(j))
|
Bookshelf (@1 written, @2 empty books)=Librobreto (@1 skriba(j), @2 malplena(j) libro(j))
|
||||||
Bookshelf=Librobreto
|
Bookshelf=Librobreto
|
||||||
Text too long=Tro longa teksto
|
Text too long=Tro longa teksto
|
||||||
"@1"=
|
"@1"=
|
||||||
Wooden Sign=Ligna Signo
|
Wooden Sign=Ligna signo
|
||||||
Steel Sign=Ŝtala Signo
|
Steel Sign=Ŝtala signo
|
||||||
Wooden Ladder=Ligna Ŝtupetaro
|
Wooden Ladder=Ligna ŝtupetaro
|
||||||
Steel Ladder=Ŝtala Ŝtupetaro
|
Steel Ladder=Ŝtala ŝtupetaro
|
||||||
Apple Wood Fence=Poma Ligna Barilo
|
Apple Wood Fence=Poma ligna barilo
|
||||||
Acacia Wood Fence=Akacia Ligna Barilo
|
Acacia Wood Fence=Akacia ligna barilo
|
||||||
Jungle Wood Fence=Ĝangala Ligna Barilo
|
Jungle Wood Fence=Ĝangala ligna barilo
|
||||||
Pine Wood Fence=Pina Ligna Barilo
|
Pine Wood Fence=Pina ligna barilo
|
||||||
Aspen Wood Fence=Tremola Ligna Barilo
|
Aspen Wood Fence=Tremola ligna barilo
|
||||||
Apple Wood Fence Rail=Poma Ligna Barila Relo
|
Apple Wood Fence Rail=Poma ligna barila relo
|
||||||
Acacia Wood Fence Rail=Akacia Ligna Barila Relo
|
Acacia Wood Fence Rail=Akacia ligna barila relo
|
||||||
Jungle Wood Fence Rail=Ĝangala Ligna Barila Relo
|
Jungle Wood Fence Rail=Ĝangala ligna barila relo
|
||||||
Pine Wood Fence Rail=Pina Ligna Barila Relo
|
Pine Wood Fence Rail=Pina ligna barila relo
|
||||||
Aspen Wood Fence Rail=Tremola Ligna Barila Relo
|
Aspen Wood Fence Rail=Tremola ligna barila relo
|
||||||
Glass=Vitro
|
Glass=Vitro
|
||||||
Obsidian Glass=Obsidiana Vitro
|
Obsidian Glass=Obsidiana vitro
|
||||||
Brick Block=Brika Bloko
|
Brick Block=Brika bloko
|
||||||
Mese Lamp=Mesea Lampo
|
Mese Lamp=Mesea lampo
|
||||||
Apple Wood Mese Post Light=Poma Ligna Mesea Fosta Lampo
|
Apple Wood Mese Post Light=Poma ligna mesea fosta lampo
|
||||||
Acacia Wood Mese Post Light=Akacia Ligna Mesea Fosta Lampo
|
Acacia Wood Mese Post Light=Akacia ligna mesea fosta lampo
|
||||||
Jungle Wood Mese Post Light=Ĝangala Ligna Mesea Fosta Lampo
|
Jungle Wood Mese Post Light=Ĝangala ligna mesea fosta lampo
|
||||||
Pine Wood Mese Post Light=Pina Ligna Mesea Fosta Lampo
|
Pine Wood Mese Post Light=Pina ligna mesea fosta lampo
|
||||||
Aspen Wood Mese Post Light=Tremola Ligna Mesea Fosta Lampo
|
Aspen Wood Mese Post Light=Tremola ligna mesea fosta lampo
|
||||||
Cloud=Nubo
|
Cloud=Nubo
|
||||||
Wooden Pickaxe=Ligna Pioĉo
|
Wooden Pickaxe=Ligna pioĉo
|
||||||
Stone Pickaxe=Ŝtona Pioĉo
|
Stone Pickaxe=Ŝtona pioĉo
|
||||||
Bronze Pickaxe=Bronza Pioĉo
|
Bronze Pickaxe=Bronza pioĉo
|
||||||
Steel Pickaxe=Ŝtala Pioĉo
|
Steel Pickaxe=Ŝtala pioĉo
|
||||||
Mese Pickaxe=Mesea Pioĉo
|
Mese Pickaxe=Mesea pioĉo
|
||||||
Diamond Pickaxe=Diamanta Pioĉo
|
Diamond Pickaxe=Diamanta pioĉo
|
||||||
Wooden Shovel=Ligna Fosilo
|
Wooden Shovel=Ligna fosilo
|
||||||
Stone Shovel=Ŝtona Fosilo
|
Stone Shovel=Ŝtona fosilo
|
||||||
Bronze Shovel=Bronza Fosilo
|
Bronze Shovel=Bronza fosilo
|
||||||
Steel Shovel=Ŝtala Fosilo
|
Steel Shovel=Ŝtala fosilo
|
||||||
Mese Shovel=Mesea Fosilo
|
Mese Shovel=Mesea fosilo
|
||||||
Diamond Shovel=Diamanta Fosilo
|
Diamond Shovel=Diamanta fosilo
|
||||||
Wooden Axe=Ligna Hakilo
|
Wooden Axe=Ligna hakilo
|
||||||
Stone Axe=Ŝtona Hakilo
|
Stone Axe=Ŝtona hakilo
|
||||||
Bronze Axe=Bronza Hakilo
|
Bronze Axe=Bronza hakilo
|
||||||
Steel Axe=Ŝtala Hakilo
|
Steel Axe=Ŝtala hakilo
|
||||||
Mese Axe=Mesea Hakilo
|
Mese Axe=Mesea hakilo
|
||||||
Diamond Axe=Diamanta Hakilo
|
Diamond Axe=Diamanta hakilo
|
||||||
Wooden Sword=Ligna Glavo
|
Wooden Sword=Ligna glavo
|
||||||
Stone Sword=Ŝtona Glavo
|
Stone Sword=Ŝtona glavo
|
||||||
Bronze Sword=Bronza Glavo
|
Bronze Sword=Bronza glavo
|
||||||
Steel Sword=Ŝtala Glavo
|
Steel Sword=Ŝtala glavo
|
||||||
Mese Sword=Mesea Glavo
|
Mese Sword=Mesea glavo
|
||||||
Diamond Sword=Diamanta Glavo
|
Diamond Sword=Diamanta glavo
|
||||||
Torch=Torĉo
|
Torch=Torĉo
|
||||||
@1 will intersect protection on growth.=@1 sekcos protekton dum kresko.
|
@1 will intersect protection on growth.=@1 sekcos protekton dum kresko.
|
||||||
|
|
||||||
|
|
||||||
##### not used anymore #####
|
##### not used anymore #####
|
||||||
|
|
||||||
Mese Post Light=Mesea Fosta Lampo
|
Mese Post Light=Mesea fosta lampo
|
||||||
|
|
215
mods/default/locale/default.pt.tr
Normal file
215
mods/default/locale/default.pt.tr
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
# textdomain: default
|
||||||
|
Locked Chest=Baú Trancado
|
||||||
|
Locked Chest (owned by @1)=Baú Trancado (pertence a @1)
|
||||||
|
You do not own this chest.=Você não é dono deste baú.
|
||||||
|
a locked chest=um baú trancado
|
||||||
|
Chest=Baú
|
||||||
|
Write=
|
||||||
|
Read=
|
||||||
|
Title:=Título:
|
||||||
|
Contents:=Conteúdo:
|
||||||
|
Save=Salvar
|
||||||
|
by @1=por @1
|
||||||
|
Page @1 of @2=Página @1 de @2
|
||||||
|
The book you were writing to mysteriously disappeared.=
|
||||||
|
"@1" by @2="@1" por @2
|
||||||
|
Blueberries=Mirtilo
|
||||||
|
Book=Livro
|
||||||
|
Book with Text=Livro com Texto
|
||||||
|
Bronze Ingot=Lingote de Bronze
|
||||||
|
Clay Brick=Tijolo de Argila
|
||||||
|
Clay Lump=Pedaço de Argila
|
||||||
|
Coal Lump=Pedaço de Carvão
|
||||||
|
Copper Ingot=Lingote de Cobre
|
||||||
|
Copper Lump=Pedaço de Cobre
|
||||||
|
Diamond=Diamante
|
||||||
|
Flint=Rocha Sílex
|
||||||
|
Gold Ingot=Lingote de Ouro
|
||||||
|
Gold Lump=Pedaço de Ouro
|
||||||
|
Iron Lump=Pedaço de Ferro
|
||||||
|
Mese Crystal=Cristal de Mese
|
||||||
|
Mese Crystal Fragment=Fragmento de Cristal de Mese
|
||||||
|
Obsidian Shard=Caco de Obsidian
|
||||||
|
Paper=Papel
|
||||||
|
Steel Ingot=Lingote de Aço
|
||||||
|
Stick=Graveto
|
||||||
|
Tin Ingot=Lingote de Estanho
|
||||||
|
Tin Lump=Pedaço de Estanho
|
||||||
|
Furnace is empty=A fornalha está vazia
|
||||||
|
100% (output full)=100% (saída cheia)
|
||||||
|
@1%=@1%
|
||||||
|
Not cookable=Não pode cozinhar
|
||||||
|
Empty=Vazio
|
||||||
|
Furnace active=Fornalha ativa
|
||||||
|
Furnace inactive=Fornalha inativa
|
||||||
|
(Item: @1; Fuel: @2)=(Item: @1; Combustível: @2)
|
||||||
|
Furnace=Fornalha
|
||||||
|
Stone=Pedra
|
||||||
|
Cobblestone=Pedregulho
|
||||||
|
Stone Brick=Tijolo de Pedra
|
||||||
|
Stone Block=Bloco de Pedra
|
||||||
|
Mossy Cobblestone=Pedregulho Musgoso
|
||||||
|
Desert Stone=Pedra do Deserto
|
||||||
|
Desert Cobblestone=Pedregulho do Deserto
|
||||||
|
Desert Stone Brick=Tijolo de Pedra do Deserto
|
||||||
|
Desert Stone Block=Bloco de Pedra do Deserto
|
||||||
|
Sandstone=Arenito
|
||||||
|
Sandstone Brick=Tijolo de Arenito
|
||||||
|
Sandstone Block=Bloco de Arenito
|
||||||
|
Desert Sandstone=Bloco de Arenito do Deserto
|
||||||
|
Desert Sandstone Brick=Tijolo de Arenito do Deserto
|
||||||
|
Desert Sandstone Block=Bloco de Arenito do Deserto
|
||||||
|
Silver Sandstone=Arenito Prateado
|
||||||
|
Silver Sandstone Brick=Tijolo de Arenito Prateado
|
||||||
|
Silver Sandstone Block=Bloco de Arenito Prateado
|
||||||
|
Obsidian=Obsidiana
|
||||||
|
Obsidian Brick=Tijolo de Obsidiana
|
||||||
|
Obsidian Block=Bloco de Obsidiana
|
||||||
|
Dirt=Terra
|
||||||
|
Dirt with Grass=Terra com Grama
|
||||||
|
Dirt with Grass and Footsteps=Terra com Grama e Pegadas
|
||||||
|
Dirt with Savanna Grass=Terra com Grama da Savana
|
||||||
|
Dirt with Snow=Terra com Neve
|
||||||
|
Dirt with Rainforest Litter=Terra com Serrapilheira Tropical
|
||||||
|
Dirt with Coniferous Litter=Terra com Serrapilheira
|
||||||
|
Savanna Dirt=Terra da Savana
|
||||||
|
Savanna Dirt with Savanna Grass=Terra da Savana com Grama da Savana
|
||||||
|
Permafrost=Terra Congelada
|
||||||
|
Permafrost with Stones=Terra Congelada com Pedras
|
||||||
|
Permafrost with Moss=Terra Congelada com Musgo
|
||||||
|
Sand=Areia
|
||||||
|
Desert Sand=Areia do Deserto
|
||||||
|
Silver Sand=Areia Prateada
|
||||||
|
Gravel=Cascalho
|
||||||
|
Clay=Argila
|
||||||
|
Snow=Neve
|
||||||
|
Snow Block=Bloco de Neve
|
||||||
|
Ice=Gelo
|
||||||
|
Cave Ice=Caverna de Gelo
|
||||||
|
Apple Tree=Macieira
|
||||||
|
Apple Wood Planks=Tábuas de Macieira
|
||||||
|
Apple Tree Sapling=Muda de Macieira
|
||||||
|
Apple Tree Leaves=Folhas de Macieira
|
||||||
|
Apple=Maçã
|
||||||
|
Apple Marker=Marcador de Maçã
|
||||||
|
Jungle Tree=Árvore da Selva
|
||||||
|
Jungle Wood Planks=Tábuas de Árvore da Selva
|
||||||
|
Jungle Tree Leaves=Folhas de Árvore da Selva
|
||||||
|
Jungle Tree Sapling=Muda de Árvore da Selva
|
||||||
|
Emergent Jungle Tree Sapling=Muda Crescida de Árvore da Selva
|
||||||
|
Pine Tree=Pinheiro
|
||||||
|
Pine Wood Planks=Tábuas de Pinheiro
|
||||||
|
Pine Needles=Agulhas de Pinheiro
|
||||||
|
Pine Tree Sapling=Muda de Pinheiro
|
||||||
|
Acacia Tree=Acácia
|
||||||
|
Acacia Wood Planks=Tábuas de Acácia
|
||||||
|
Acacia Tree Leaves=Folhas de Acácia
|
||||||
|
Acacia Tree Sapling=Mudas de Acácia
|
||||||
|
Aspen Tree=Álamo
|
||||||
|
Aspen Wood Planks=Tábuas de Álamo
|
||||||
|
Aspen Tree Leaves=Folhas de Álamo
|
||||||
|
Aspen Tree Sapling=Muda de Álamo
|
||||||
|
Coal Ore=Minério de Carvão
|
||||||
|
Coal Block=Bloco de Carvão
|
||||||
|
Iron Ore=Minério de Ferro
|
||||||
|
Steel Block=Bloco de Aço
|
||||||
|
Copper Ore=Minério de Cobre
|
||||||
|
Copper Block=Bloco de Cobre
|
||||||
|
Tin Ore=Minério de Estanho
|
||||||
|
Tin Block=Bloco de Estanho
|
||||||
|
Bronze Block=Bloco de Bronze
|
||||||
|
Mese Ore=Minério de Mese
|
||||||
|
Mese Block=Bloco de Mese
|
||||||
|
Gold Ore=Minério de Ouro
|
||||||
|
Gold Block=Bloco de Ouro
|
||||||
|
Diamond Ore=Minério de Diamante
|
||||||
|
Diamond Block=Bloco de Diamante
|
||||||
|
Cactus=Cacto
|
||||||
|
Large Cactus Seedling=Grande Muda de Cacto
|
||||||
|
Papyrus=Papiro
|
||||||
|
Dry Shrub=Arbusto Seco
|
||||||
|
Jungle Grass=Grama da Selva
|
||||||
|
Grass=Grama
|
||||||
|
Savanna Grass=Grama da Savana
|
||||||
|
Fern=Samambaia
|
||||||
|
Marram Grass=Grama de Feno
|
||||||
|
Bush Stem=Caule de Arbusto
|
||||||
|
Bush Leaves=Folhas de Arbusto
|
||||||
|
Bush Sapling=Muda de Arbusto
|
||||||
|
Blueberry Bush Leaves with Berries=Folhas de Arbusto de Mirtilo com Bagas
|
||||||
|
Blueberry Bush Leaves=Folhas de Arbusto de Mirtilo
|
||||||
|
Blueberry Bush Sapling=Muda de Arbusto de Mirtilo
|
||||||
|
Acacia Bush Stem=Caule de Arbusto de Acácia
|
||||||
|
Acacia Bush Leaves=Folhas de Arbusto de Acácia
|
||||||
|
Acacia Bush Sapling=Muda de Arbusto de Acácia
|
||||||
|
Pine Bush Stem=Caule de Arbusto de Pinheiro
|
||||||
|
Pine Bush Needles=Agulha de Arbusto de Pinheiro
|
||||||
|
Pine Bush Sapling=Muda de Arbusto de Pinheiro
|
||||||
|
Kelp=Alga
|
||||||
|
Green Coral=Coral Verde
|
||||||
|
Pink Coral=Coral Rosa
|
||||||
|
Cyan Coral=Coral Ciano
|
||||||
|
Brown Coral=Coral Marrom
|
||||||
|
Orange Coral=Coral Laranja
|
||||||
|
Coral Skeleton=Esqueleto de Coral
|
||||||
|
Water Source=Fonte de Água
|
||||||
|
Flowing Water=Água Corrente
|
||||||
|
River Water Source=Fonte de Água do Rio
|
||||||
|
Flowing River Water=Água Corrente do Rio
|
||||||
|
Lava Source=Fonte de Lava
|
||||||
|
Flowing Lava=Lava Corrente
|
||||||
|
Empty Bookshelf=Estante de Livros Vazia
|
||||||
|
Bookshelf (@1 written, @2 empty books)=Estante de Livros (@1 livros escritos, @2 livros em branco)
|
||||||
|
Bookshelf=Estante de Livros
|
||||||
|
Text too long=Texto muito longo
|
||||||
|
"@1"="@1"
|
||||||
|
Wooden Sign=Placa de Madeira
|
||||||
|
Steel Sign=Placa de Aço
|
||||||
|
Wooden Ladder=Escada de Madeira
|
||||||
|
Steel Ladder=Escada de Aço
|
||||||
|
Apple Wood Fence=Cerca de Macieira
|
||||||
|
Acacia Wood Fence=Cerca de Acácia
|
||||||
|
Jungle Wood Fence=Cerca de Madeira da Selva
|
||||||
|
Pine Wood Fence=Cerca de Pinheiro
|
||||||
|
Aspen Wood Fence=Cerca de Álamo
|
||||||
|
Apple Wood Fence Rail=Trilho de Cerca de Macieira
|
||||||
|
Acacia Wood Fence Rail=Trilho de Cerca de Acácia
|
||||||
|
Jungle Wood Fence Rail=Trilho de Cerca de Madeira da Selva
|
||||||
|
Pine Wood Fence Rail=Trilho de Cerca de Pinheiro
|
||||||
|
Aspen Wood Fence Rail=Trilho de Cerca de Álamo
|
||||||
|
Glass=Vidro
|
||||||
|
Obsidian Glass=Vidro de Obsidiana
|
||||||
|
Brick Block=Bloco de Tijolos
|
||||||
|
Mese Lamp=Lâmpada de Mese
|
||||||
|
Apple Wood Mese Post Light=Poste de Lâmpada de Mese de Macieira
|
||||||
|
Acacia Wood Mese Post Light=Poste de Lâmpada de Mese de Acácia
|
||||||
|
Jungle Wood Mese Post Light=Poste de Lâmpada de Mese de Madeira da Selva
|
||||||
|
Pine Wood Mese Post Light=Poste de Lâmpada de Mese de Pinheiro
|
||||||
|
Aspen Wood Mese Post Light=Poste de Lâmpada de Mese de Aspen
|
||||||
|
Cloud=Nuvem
|
||||||
|
Wooden Pickaxe=Picareta de Madeira
|
||||||
|
Stone Pickaxe=Picareta de Pedra
|
||||||
|
Bronze Pickaxe=Picareta de Bronze
|
||||||
|
Steel Pickaxe=Picareta de Aço
|
||||||
|
Mese Pickaxe=Picareta de Mese
|
||||||
|
Diamond Pickaxe=Picareta de Diamante
|
||||||
|
Wooden Shovel=Pá de Madeira
|
||||||
|
Stone Shovel=Pá de Pedra
|
||||||
|
Bronze Shovel=Pá de Bronze
|
||||||
|
Steel Shovel=Pá de Aço
|
||||||
|
Mese Shovel=Pá de Mese
|
||||||
|
Diamond Shovel=Pá de Diamante
|
||||||
|
Wooden Axe=Machado de Madeira
|
||||||
|
Stone Axe=Machado de Pedra
|
||||||
|
Bronze Axe=Machado de Bronze
|
||||||
|
Steel Axe=Machado de Aço
|
||||||
|
Mese Axe=Machado de Mese
|
||||||
|
Diamond Axe=Machado de Diamante
|
||||||
|
Wooden Sword=Espada de Madeira
|
||||||
|
Stone Sword=Espada de Pedra
|
||||||
|
Bronze Sword=Espada de Bronze
|
||||||
|
Steel Sword=Espada de Aço
|
||||||
|
Mese Sword=Espada de Mese
|
||||||
|
Diamond Sword=Espada de Diamante
|
||||||
|
Torch=Tocha
|
||||||
|
@1 will intersect protection on growth.=@1 cruzará a proteção no crescimento.
|
|
@ -23,7 +23,7 @@ Coal Lump=Pedaço de Carvão
|
||||||
Copper Ingot=Lingote de Cobre
|
Copper Ingot=Lingote de Cobre
|
||||||
Copper Lump=Pedaço de Cobre
|
Copper Lump=Pedaço de Cobre
|
||||||
Diamond=Diamante
|
Diamond=Diamante
|
||||||
Flint=Sílex (Flint)
|
Flint=Rocha Sílex
|
||||||
Gold Ingot=Lingote de Ouro
|
Gold Ingot=Lingote de Ouro
|
||||||
Gold Lump=Pedaço de Ouro
|
Gold Lump=Pedaço de Ouro
|
||||||
Iron Lump=Pedaço de Ferro
|
Iron Lump=Pedaço de Ferro
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
# textdomain: default
|
# textdomain: default
|
||||||
Locked Chest=Заблокированный Сундук
|
Locked Chest=Запертый сундук
|
||||||
Locked Chest (owned by @1)=Заблокированный Сундук (владелец: @1)
|
Locked Chest (owned by @1)=Запертый сундук (владелец: @1)
|
||||||
You do not own this chest.=Вы не владелец этого сундука.
|
You do not own this chest.=Вы не владелец этого сундука.
|
||||||
a locked chest=заблокированный сундук
|
a locked chest=запертый сундук
|
||||||
Chest=Сундук
|
Chest=Сундук
|
||||||
Write=Писать
|
Write=Написать
|
||||||
Read=Читать
|
Read=Читать
|
||||||
Title:=Заголовок:
|
Title:=Заголовок:
|
||||||
Contents:=Содержимое:
|
Contents:=Содержимое:
|
||||||
Save=Сохранить
|
Save=Сохранить
|
||||||
by @1=@1
|
by @1=от @1
|
||||||
Page @1 of @2=Страница @1 из @2
|
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" @2
|
"@1" by @2="@1" @2
|
||||||
Blueberries=Черника
|
Blueberries=Черника
|
||||||
Book=Книга
|
Book=Книга
|
||||||
Book with Text=Книга с Текстом
|
Book with Text=Книга с текстом
|
||||||
Bronze Ingot=Бронзовый Слиток
|
Bronze Ingot=Бронзовый слиток
|
||||||
Clay Brick=Глиняный Кирпич
|
Clay Brick=Кирпич
|
||||||
Clay Lump=Ком Глины
|
Clay Lump=Глина
|
||||||
Coal Lump=Кусок Угля
|
Coal Lump=Уголь
|
||||||
Copper Ingot=Медный Слиток
|
Copper Ingot=Медный слиток
|
||||||
Copper Lump=Кусок Меди
|
Copper Lump=Кусок меди
|
||||||
Diamond=Алмаз
|
Diamond=Алмаз
|
||||||
Flint=Кремень
|
Flint=Кремень
|
||||||
Gold Ingot=Золотой Слиток
|
Gold Ingot=Золотой слиток
|
||||||
Gold Lump=Кусок Золота
|
Gold Lump=Кусок золота
|
||||||
Iron Lump=Кусок Железа
|
Iron Lump=Кусок железа
|
||||||
Mese Crystal=Кристалл Месе
|
Mese Crystal=Кристалл мезы
|
||||||
Mese Crystal Fragment=Осколок Кристалла Месе
|
Mese Crystal Fragment=Осколок кристалла мезы
|
||||||
Obsidian Shard=Обсидиановый Осколок
|
Obsidian Shard=Обсидиановый осколок
|
||||||
Paper=Бумага
|
Paper=Бумага
|
||||||
Steel Ingot=Железный Слиток
|
Steel Ingot=Стальной слиток
|
||||||
Stick=Палка
|
Stick=Палка
|
||||||
Tin Ingot=Оловянный Слиток
|
Tin Ingot=Оловянный слиток
|
||||||
Tin Lump=Кусок Олова
|
Tin Lump=Кусок олова
|
||||||
Furnace is empty=Печь пуста
|
Furnace is empty=Печь пуста
|
||||||
100% (output full)=100% (полное приготовление)
|
100% (output full)=100% (выход заполнен)
|
||||||
@1%=@1%
|
@1%=@1%
|
||||||
Not cookable=Не может быть приготовлено
|
Not cookable=Не может быть приготовлено
|
||||||
Empty=Пустое
|
Empty=Пустое
|
||||||
|
@ -46,179 +46,170 @@ Furnace inactive=Печь не зажжена
|
||||||
Furnace=Печь
|
Furnace=Печь
|
||||||
Stone=Камень
|
Stone=Камень
|
||||||
Cobblestone=Булыжник
|
Cobblestone=Булыжник
|
||||||
Stone Brick=Каменный Кирпич
|
Stone Brick=Каменные кирпичи
|
||||||
Stone Block=Каменный Блок
|
Stone Block=Каменный блок
|
||||||
Mossy Cobblestone=Мшистый Булыжник
|
Mossy Cobblestone=Замшелый булыжник
|
||||||
Desert Stone=Пустынный Камень
|
Desert Stone=Пустынный камень
|
||||||
Desert Cobblestone=Пустынный Булыжник
|
Desert Cobblestone=Пустынный булыжник
|
||||||
Desert Stone Brick=Пустынный Каменный Кирпич
|
Desert Stone Brick=Пустынный каменные кирпичи
|
||||||
Desert Stone Block=Пустынный Каменный Блок
|
Desert Stone Block=Пустынный каменный блок
|
||||||
Sandstone=Песчаник
|
Sandstone=Песчаник
|
||||||
Sandstone Brick=Песчаниковый Кирпич
|
Sandstone Brick=Песчаниковые кирпичи
|
||||||
Sandstone Block=Песчаниковый Блок
|
Sandstone Block=Песчаниковый блок
|
||||||
Desert Sandstone=Пустынный Песчаник
|
Desert Sandstone=Пустынный песчаник
|
||||||
Desert Sandstone Brick=Пустынный Песчаниковый Кирпич
|
Desert Sandstone Brick=Пустынные песчаниковые кирпичи
|
||||||
Desert Sandstone Block=Пустынный Песчаниковый Блок
|
Desert Sandstone Block=Пустынный песчаниковый блок
|
||||||
Silver Sandstone=Серебряный Песчаник
|
Silver Sandstone=Серебристый песчаник
|
||||||
Silver Sandstone Brick=Серебряный Песчаниковый Кирпич
|
Silver Sandstone Brick=Серебристые песчаниковые кирпичи
|
||||||
Silver Sandstone Block=Серебряный Песчаниковый Блок
|
Silver Sandstone Block=Серебристый песчаниковый блок
|
||||||
Obsidian=Обсидиан
|
Obsidian=Обсидиан
|
||||||
Obsidian Brick=Обсидиановый Кирпич
|
Obsidian Brick=Обсидиановые кирпичи
|
||||||
Obsidian Block=Обсидиановый Блок
|
Obsidian Block=Обсидиановый блок
|
||||||
Dirt=Земля
|
Dirt=Земля
|
||||||
Dirt with Grass=Земля с Травой
|
Dirt with Grass=Дёрн
|
||||||
Dirt with Grass and Footsteps=Земля с Травой и Следами
|
Dirt with Grass and Footsteps=Дёрн со следами
|
||||||
Dirt with Savanna Grass=Земля с Саванной Травой
|
Dirt with Savanna Grass=Саванный дёрн
|
||||||
Dirt with Snow=Земля Со Снегом
|
Dirt with Snow=Земля со снегом
|
||||||
Dirt with Rainforest Litter=Земля с Тропической Подстилкой
|
Dirt with Rainforest Litter=Земля с тропической подстилкой
|
||||||
Dirt with Coniferous Litter=Земля с Сосновой Подстилкой
|
Dirt with Coniferous Litter=Земля с сосновой подстилкой
|
||||||
Savanna Dirt=Саванная Земля
|
Savanna Dirt=Саванная земля
|
||||||
Savanna Dirt with Savanna Grass=Саванная Земля с Травой
|
Savanna Dirt with Savanna Grass=Саванная земля с саванной травой
|
||||||
Permafrost=Замороженная Почва
|
Permafrost=Мёрзлая почва
|
||||||
Permafrost with Stones=Замороженная Почва с Камнями
|
Permafrost with Stones=Мёрзлая почва с камнями
|
||||||
Permafrost with Moss=Замороженная Почва с Мхом
|
Permafrost with Moss=Мёрзлая почва с мхом
|
||||||
Sand=Песок
|
Sand=Песок
|
||||||
Desert Sand=Пустынный Песок
|
Desert Sand=Пустынный песок
|
||||||
Silver Sand=Серебряный Песок
|
Silver Sand=Серебристый песок
|
||||||
Gravel=Гравий
|
Gravel=Гравий
|
||||||
Clay=Глиняный Блок
|
Clay=Глиняный блок
|
||||||
Snow=Снег
|
Snow=Снежок
|
||||||
Snow Block=Снежный Блок
|
Snow Block=Снежный блок
|
||||||
Ice=Лёд
|
Ice=Лёд
|
||||||
Cave Ice=Пещерный Лёд
|
Cave Ice=Пещерный лёд
|
||||||
Apple Tree=Ствол Яблони
|
Apple Tree=Яблоневая древесина
|
||||||
Apple Wood Planks=Яблоневые Доски
|
Apple Wood Planks=Яблоневые доски
|
||||||
Apple Tree Sapling=Саженец Яблони
|
Apple Tree Sapling=Саженец яблони
|
||||||
Apple Tree Leaves=Яблоневая Листва
|
Apple Tree Leaves=Яблоневая листва
|
||||||
Apple=Яблоко
|
Apple=Яблоко
|
||||||
Apple Marker=Яблочная Метка
|
Apple Marker=Яблочная метка
|
||||||
Jungle Tree=Ствол Тропического Дерева
|
Jungle Tree=Древесина тропического дерева
|
||||||
Jungle Wood Planks=Доски из Тропического Дерева
|
Jungle Wood Planks=Доски из тропического дерева
|
||||||
Jungle Tree Leaves=Листва Тропического Дерева
|
Jungle Tree Leaves=Листва тропического дерева
|
||||||
Jungle Tree Sapling=Саженец Тропического Дерева
|
Jungle Tree Sapling=Саженец тропического дерева
|
||||||
Emergent Jungle Tree Sapling=Выросший Саженец Тропического Дерева
|
Emergent Jungle Tree Sapling=Выросший саженец тропического дерева
|
||||||
Pine Tree=Сосновый Ствол
|
Pine Tree=Сосновая древесина
|
||||||
Pine Wood Planks=Сосновые Доски
|
Pine Wood Planks=Сосновые доски
|
||||||
Pine Needles=Сосновая Хвоя
|
Pine Needles=Сосновая хвоя
|
||||||
Pine Tree Sapling=Саженец Сосны
|
Pine Tree Sapling=Саженец сосны
|
||||||
Acacia Tree=Ствол Акации
|
Acacia Tree=Акациевая древесина
|
||||||
Acacia Wood Planks=Доски Акации
|
Acacia Wood Planks=Акациевые доски
|
||||||
Acacia Tree Leaves=Листва Акации
|
Acacia Tree Leaves=Акациевая листва
|
||||||
Acacia Tree Sapling=Саженец Акации
|
Acacia Tree Sapling=Саженец акации
|
||||||
Aspen Tree=Ствол Осины
|
Aspen Tree=Осиновая древесина
|
||||||
Aspen Wood Planks=Осиновые Доски
|
Aspen Wood Planks=Осиновые доски
|
||||||
Aspen Tree Leaves=Осиновая Листва
|
Aspen Tree Leaves=Осиновая листва
|
||||||
Aspen Tree Sapling=Саженец Осины
|
Aspen Tree Sapling=Саженец осины
|
||||||
Coal Ore=Уголь
|
Coal Ore=Угольная руда
|
||||||
Coal Block=Угольный Блок
|
Coal Block=Угольный блок
|
||||||
Iron Ore=Железная Руда
|
Iron Ore=Железная руда
|
||||||
Steel Block=Стальной Блок
|
Steel Block=Стальной блок
|
||||||
Copper Ore=Медная Руда
|
Copper Ore=Медная руда
|
||||||
Copper Block=Медный Блок
|
Copper Block=Медный блок
|
||||||
Tin Ore=Оловянная Руда
|
Tin Ore=Оловянная руда
|
||||||
Tin Block=Оловянный Блок
|
Tin Block=Оловянный блок
|
||||||
Bronze Block=Бронзовый Блок
|
Bronze Block=Бронзовый блок
|
||||||
Mese Ore=Месевая Руда
|
Mese Ore=Мезовая руда
|
||||||
Mese Block=Месевый Блок
|
Mese Block=Мезовый блок
|
||||||
Gold Ore=Золотая Руда
|
Gold Ore=Золотая руда
|
||||||
Gold Block=Золотой Блок
|
Gold Block=Золотой блок
|
||||||
Diamond Ore=Алмаз
|
Diamond Ore=Алмазная руда
|
||||||
Diamond Block=Алмазный Блок
|
Diamond Block=Алмазный блок
|
||||||
Cactus=Кактус
|
Cactus=Кактус
|
||||||
Large Cactus Seedling=Саженец Кактуса
|
Large Cactus Seedling=Саженец кактуса
|
||||||
Papyrus=Папирус
|
Papyrus=Папирус
|
||||||
Dry Shrub=Сухой Куст
|
Dry Shrub=Сухой куст
|
||||||
Jungle Grass=Тропическая Трава
|
Jungle Grass=Тропическая трава
|
||||||
Grass=Трава
|
Grass=Трава
|
||||||
Savanna Grass=Саванная Трава
|
Savanna Grass=Саванная трава
|
||||||
Fern=Папоротник
|
Fern=Папоротник
|
||||||
Marram Grass=Песколюб
|
Marram Grass=Песколюб
|
||||||
Bush Stem=Стебли Куста
|
Bush Stem=Стебель куста
|
||||||
Bush Leaves=Листья Куста
|
Bush Leaves=Листья куста
|
||||||
Bush Sapling=Саженец Куста
|
Bush Sapling=Саженец куста
|
||||||
Blueberry Bush Leaves with Berries=Куст Черники с Ягодами
|
Blueberry Bush Leaves with Berries=Черничный куст с ягодами
|
||||||
Blueberry Bush Leaves=Куст Черники
|
Blueberry Bush Leaves=Листья черничного куста
|
||||||
Blueberry Bush Sapling=Саженец Куста Черники
|
Blueberry Bush Sapling=Саженец черничного куста
|
||||||
Acacia Bush Stem=Стебли Куста Акации
|
Acacia Bush Stem=Стебель куста акации
|
||||||
Acacia Bush Leaves=Листья Куста Акации
|
Acacia Bush Leaves=Листья куста акации
|
||||||
Acacia Bush Sapling=Саженец Куста Акации
|
Acacia Bush Sapling=Саженец куста акации
|
||||||
Pine Bush Stem=Стебли Хвойного Куста
|
Pine Bush Stem=Стебли хвойного куста
|
||||||
Pine Bush Needles=Хвоя Куста
|
Pine Bush Needles=Хвоя куста
|
||||||
Pine Bush Sapling=Саженец Хвойного Куста
|
Pine Bush Sapling=Саженец хвойного куста
|
||||||
Kelp=Ламинария
|
Kelp=Ламинария
|
||||||
Green Coral=Зеленый Коралл
|
Green Coral=Зелёный коралл
|
||||||
Pink Coral=Розовый Коралл
|
Pink Coral=Розовый коралл
|
||||||
Cyan Coral=Голубой Коралл
|
Cyan Coral=Бирюзовый коралл
|
||||||
Brown Coral=Коричневый Коралл
|
Brown Coral=Коричневый коралл
|
||||||
Orange Coral=Оранжевый Коралл
|
Orange Coral=Оранжевый коралл
|
||||||
Coral Skeleton=Коралловый Остов
|
Coral Skeleton=Коралловый остов
|
||||||
Water Source=Водный Источник
|
Water Source=Источник воды
|
||||||
Flowing Water=Текущая Вода
|
Flowing Water=Текущая вода
|
||||||
River Water Source=Речной Водный Источник
|
River Water Source=Источник речной воды
|
||||||
Flowing River Water=Текущая Речная Вода
|
Flowing River Water=Текущая речная вода
|
||||||
Lava Source=Лавовый Источник
|
Lava Source=Источник лавы
|
||||||
Flowing Lava=Текущая Лава
|
Flowing Lava=Текущая лава
|
||||||
Empty Bookshelf=Пустая Книжная Полка
|
Empty Bookshelf=Пустая книжная полка
|
||||||
Bookshelf (@1 written, @2 empty books)=Книжная Полка (@1 написано, @2 чистые книги)
|
Bookshelf (@1 written, @2 empty books)=Книжная полка (@1 написано, @2 чистые книги)
|
||||||
Bookshelf=Книжная Полка
|
Bookshelf=Книжная полка
|
||||||
Text too long=Текст слишком длинный
|
Text too long=Текст слишком длинный
|
||||||
"@1"="@1"
|
"@1"="@1"
|
||||||
Wooden Sign=Деревянная Табличка
|
Wooden Sign=Деревянная табличка
|
||||||
Steel Sign=Стальная Табличка
|
Steel Sign=Стальная табличка
|
||||||
Wooden Ladder=Деревянная Лестница
|
Wooden Ladder=Деревянная лестница
|
||||||
Steel Ladder=Стальная Лестница
|
Steel Ladder=Стальная лестница
|
||||||
Apple Wood Fence=Яблоневый Деревянный Забор
|
Apple Wood Fence=Яблоневый забор
|
||||||
Acacia Wood Fence=Деревянный Забор Из Акации
|
Acacia Wood Fence=Акациевый забор
|
||||||
Jungle Wood Fence=Деревянный Забор Из Тропического Дерева
|
Jungle Wood Fence=Забор из тропического дерева
|
||||||
Pine Wood Fence=Сосновый Деревянный Забор
|
Pine Wood Fence=Сосновый забор
|
||||||
Aspen Wood Fence=Осиновый Деревянный Забор
|
Aspen Wood Fence=Осиновый забор
|
||||||
Apple Wood Fence Rail=Яблоневый Деревянный Реечный Забор
|
Apple Wood Fence Rail=Яблоневый реечный забор
|
||||||
Acacia Wood Fence Rail=Деревянный Реечный Забор Из Акации
|
Acacia Wood Fence Rail=Акациевый реечный забор
|
||||||
Jungle Wood Fence Rail=Деревянный Реечный Забор Из Тропического Дерева
|
Jungle Wood Fence Rail=Реечный забор из тропического дерева
|
||||||
Pine Wood Fence Rail=Сосновый Деревянный Реечный Забор
|
Pine Wood Fence Rail=Сосновый реечный забор
|
||||||
Aspen Wood Fence Rail=Осиновый Деревянный Реечный Забор
|
Aspen Wood Fence Rail=Осиновый реечный забор
|
||||||
Glass=Стекло
|
Glass=Стекло
|
||||||
Obsidian Glass=Обсидиановое Стекло
|
Obsidian Glass=Обсидиановое стекло
|
||||||
Brick Block=Кирпичный Блок
|
Brick Block=Кирпичи
|
||||||
Mese Lamp=Месе Лампа
|
Mese Lamp=Мезовая лампа
|
||||||
Apple Wood Mese Post Light=Столбовой Месе светильник из Яблони
|
Apple Wood Mese Post Light=Яблоневый уличный фонарь
|
||||||
Acacia Wood Mese Post Light=Столбовой Месе светильник из Акации
|
Acacia Wood Mese Post Light=Акациевый уличный фонарь
|
||||||
Jungle Wood Mese Post Light=Столбовой Месе светильник из Тропического дерева
|
Jungle Wood Mese Post Light=Уличный фонарь из тропического дерева
|
||||||
Pine Wood Mese Post Light=Столбовой Месе светильник из Сосны
|
Pine Wood Mese Post Light=Сосновый уличный фонарь
|
||||||
Aspen Wood Mese Post Light=Столбовой Месе светильник из Осины
|
Aspen Wood Mese Post Light=Осиновый уличный фонарь
|
||||||
Cloud=Облако
|
Cloud=Облако
|
||||||
Wooden Pickaxe=Деревянная Кирка
|
Wooden Pickaxe=Деревянная кирка
|
||||||
Stone Pickaxe=Каменная Кирка
|
Stone Pickaxe=Каменная кирка
|
||||||
Bronze Pickaxe=Бронзовая Кирка
|
Bronze Pickaxe=Бронзовая кирка
|
||||||
Steel Pickaxe=Стальная Кирка
|
Steel Pickaxe=Стальная кирка
|
||||||
Mese Pickaxe=Месе Кирка
|
Mese Pickaxe=Мезовая кирка
|
||||||
Diamond Pickaxe=Алмазная Кирка
|
Diamond Pickaxe=Алмазная кирка
|
||||||
Wooden Shovel=Деревянная Лопата
|
Wooden Shovel=Деревянная лопата
|
||||||
Stone Shovel=Каменная Лопата
|
Stone Shovel=Каменная лопата
|
||||||
Bronze Shovel=Бронзовая Лопата
|
Bronze Shovel=Бронзовая лопата
|
||||||
Steel Shovel=Стальная Лопата
|
Steel Shovel=Стальная лопата
|
||||||
Mese Shovel=Месе Лопата
|
Mese Shovel=Мезовая лопата
|
||||||
Diamond Shovel=Алмазная Лопата
|
Diamond Shovel=Алмазная лопата
|
||||||
Wooden Axe=Деревянный Топор
|
Wooden Axe=Деревянный топор
|
||||||
Stone Axe=Каменный Топор
|
Stone Axe=Каменный топор
|
||||||
Bronze Axe=Бронзовый Топор
|
Bronze Axe=Бронзовый топор
|
||||||
Steel Axe=Стальной Топор
|
Steel Axe=Стальной топор
|
||||||
Mese Axe=Месе Топор
|
Mese Axe=Мезовый топор
|
||||||
Diamond Axe=Алмазный Топор
|
Diamond Axe=Алмазный топор
|
||||||
Wooden Sword=Деревянный Меч
|
Wooden Sword=Деревянный меч
|
||||||
Stone Sword=Каменный Меч
|
Stone Sword=Каменный меч
|
||||||
Bronze Sword=Бронзовый Меч
|
Bronze Sword=Бронзовый меч
|
||||||
Steel Sword=Стальной Меч
|
Steel Sword=Стальной меч
|
||||||
Mese Sword=Месе Меч
|
Mese Sword=Мезовый меч
|
||||||
Diamond Sword=Алмазный Меч
|
Diamond Sword=Алмазный меч
|
||||||
Torch=Факел
|
Torch=Факел
|
||||||
@1 will intersect protection on growth.=@1 пересечёт защиту по росту.
|
@1 will intersect protection on growth.=@1 пересечет защищённую зону при вырастании.
|
||||||
|
|
||||||
|
|
||||||
##### not used anymore #####
|
|
||||||
|
|
||||||
Dirt with Dry Grass=Земля с Сухой Травой
|
|
||||||
Dry Dirt=Сухая Земля
|
|
||||||
Dry Dirt with Dry Grass=Сухая Земля с Сухой Травой
|
|
||||||
Dry Grass=Сухая Трава
|
|
||||||
Mese Post Light=Столб с Месе Фонарем
|
|
|
@ -1985,8 +1985,8 @@ minetest.register_node("default:sand_with_kelp", {
|
||||||
|
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_place = function(itemstack, placer, pointed_thing)
|
||||||
-- Call on_rightclick if the pointed node defines it
|
-- Call on_rightclick if the pointed node defines it
|
||||||
if pointed_thing.type == "node" and placer and
|
if pointed_thing.type == "node" and not (placer and placer:is_player()
|
||||||
not placer:get_player_control().sneak then
|
and placer:get_player_control().sneak) then
|
||||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||||
if def_ptu and def_ptu.on_rightclick then
|
if def_ptu and def_ptu.on_rightclick then
|
||||||
|
@ -2035,19 +2035,20 @@ minetest.register_node("default:sand_with_kelp", {
|
||||||
--
|
--
|
||||||
|
|
||||||
local function coral_on_place(itemstack, placer, pointed_thing)
|
local function coral_on_place(itemstack, placer, pointed_thing)
|
||||||
if pointed_thing.type ~= "node" or not placer then
|
if pointed_thing.type ~= "node" then
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
local player_name = placer:get_player_name()
|
local player_name = placer and placer:get_player_name()
|
||||||
local pos_under = pointed_thing.under
|
local pos_under = pointed_thing.under
|
||||||
local pos_above = pointed_thing.above
|
local pos_above = pointed_thing.above
|
||||||
local node_under = minetest.get_node(pos_under)
|
local node_under = minetest.get_node(pos_under)
|
||||||
local def_under = minetest.registered_nodes[node_under.name]
|
local def_under = minetest.registered_nodes[node_under.name]
|
||||||
|
|
||||||
if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then
|
if def_under and def_under.on_rightclick and not (
|
||||||
|
placer and placer:is_player() and placer:get_player_control().sneak) then
|
||||||
return def_under.on_rightclick(pos_under, node_under,
|
return def_under.on_rightclick(pos_under, node_under,
|
||||||
placer, itemstack, pointed_thing) or itemstack
|
placer, itemstack, pointed_thing)
|
||||||
end
|
end
|
||||||
|
|
||||||
if node_under.name ~= "default:coral_skeleton" or
|
if node_under.name ~= "default:coral_skeleton" or
|
||||||
|
@ -2057,9 +2058,6 @@ local function coral_on_place(itemstack, placer, pointed_thing)
|
||||||
|
|
||||||
if minetest.is_protected(pos_under, player_name) or
|
if minetest.is_protected(pos_under, player_name) or
|
||||||
minetest.is_protected(pos_above, player_name) then
|
minetest.is_protected(pos_above, player_name) then
|
||||||
default.log_player_action(placer,
|
|
||||||
"tried to place", itemstack:get_name(),
|
|
||||||
"at protected position", pos_under)
|
|
||||||
minetest.record_protection_violation(pos_under, player_name)
|
minetest.record_protection_violation(pos_under, player_name)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
Binary file not shown.
|
@ -488,16 +488,15 @@ function default.sapling_on_place(itemstack, placer, pointed_thing,
|
||||||
interval) then
|
interval) then
|
||||||
minetest.record_protection_violation(pos, player_name)
|
minetest.record_protection_violation(pos, player_name)
|
||||||
-- Print extra information to explain
|
-- Print extra information to explain
|
||||||
-- minetest.chat_send_player(player_name,
|
|
||||||
-- itemstack:get_definition().description .. " will intersect protection " ..
|
|
||||||
-- "on growth")
|
|
||||||
minetest.chat_send_player(player_name,
|
minetest.chat_send_player(player_name,
|
||||||
S("@1 will intersect protection on growth.",
|
S("@1 will intersect protection on growth.",
|
||||||
itemstack:get_definition().description))
|
itemstack:get_definition().description))
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if placer then
|
||||||
default.log_player_action(placer, "places node", sapling_name, "at", pos)
|
default.log_player_action(placer, "places node", sapling_name, "at", pos)
|
||||||
|
end
|
||||||
|
|
||||||
local take_item = not minetest.is_creative_enabled(player_name)
|
local take_item = not minetest.is_creative_enabled(player_name)
|
||||||
local newnode = {name = sapling_name}
|
local newnode = {name = sapling_name}
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# textdomain: doors
|
# textdomain: doors
|
||||||
Hidden Door Segment=Kaŝita Porda Segmento
|
Hidden Door Segment=Kaŝita porda segmento
|
||||||
Owned by @1=Posedita de @1
|
Owned by @1=Posedita de @1
|
||||||
You do not own this locked door.=Vi ne posedas ĉi tiun ŝlositan pordon.
|
You do not own this locked door.=Vi ne posedas ĉi tiun ŝlositan pordon.
|
||||||
a locked door=ŝlosita pordo
|
a locked door=ŝlosita pordo
|
||||||
Wooden Door=Ligna Pordo
|
Wooden Door=Ligna pordo
|
||||||
Steel Door=Ŝtala Pordo
|
Steel Door=Ŝtala pordo
|
||||||
Glass Door=Vitra Pordo
|
Glass Door=Vitra pordo
|
||||||
Obsidian Glass Door=Obsidiana Vitra Pordo
|
Obsidian Glass Door=Obsidiana vitra pordo
|
||||||
You do not own this trapdoor.=Vi ne posedas ĉi tiun plankpordon.
|
You do not own this trapdoor.=Vi ne posedas ĉi tiun plankpordon.
|
||||||
a locked trapdoor=ŝlosita plankpordo
|
a locked trapdoor=ŝlosita plankpordo
|
||||||
Wooden Trapdoor=Ligna Plankpordo
|
Wooden Trapdoor=Ligna plankpordo
|
||||||
Steel Trapdoor=Ŝtala Plankpordo
|
Steel Trapdoor=Ŝtala plankpordo
|
||||||
Apple Wood Fence Gate=Poma Ligna Barila Pordo
|
Apple Wood Fence Gate=Poma ligna barila pordo
|
||||||
Acacia Wood Fence Gate=Akacia Ligna Barila Pordo
|
Acacia Wood Fence Gate=Akacia ligna barila pordo
|
||||||
Jungle Wood Fence Gate=Ĝangala Ligna Barila Pordo
|
Jungle Wood Fence Gate=Ĝangala ligna barila pordo
|
||||||
Pine Wood Fence Gate=Pina Ligna Barila Pordo
|
Pine Wood Fence Gate=Pina ligna barila pordo
|
||||||
Aspen Wood Fence Gate=Tremola Ligna Barila Pordo
|
Aspen Wood Fence Gate=Tremola ligna barila pordo
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
# textdomain: doors
|
# textdomain: doors
|
||||||
Hidden Door Segment=Спрятанная Часть Двери
|
Hidden Door Segment=Спрятанная часть двери
|
||||||
Owned by @1=Владелец: @1
|
Owned by @1=Владелец: @1
|
||||||
You do not own this locked door.=Вы не владелец этой заблокированной двери.
|
You do not own this locked door.=Вы не владелец этой запертой двери.
|
||||||
a locked door=заблокированная дверь
|
a locked door=запертая дверь
|
||||||
Wooden Door=Деревянная Дверь
|
Wooden Door=Деревянная дверь
|
||||||
Steel Door=Стальная Дверь
|
Steel Door=Стальная дверь
|
||||||
Glass Door=Стеклянная Дверь
|
Glass Door=Стеклянная дверь
|
||||||
Obsidian Glass Door=Дверь Из Обсидианового Стекла
|
Obsidian Glass Door=Дверь из обсидианового стекла
|
||||||
You do not own this trapdoor.=Вы не владелец этого люка.
|
You do not own this trapdoor.=Вы не владелец этого люка.
|
||||||
a locked trapdoor=заблокированный люк
|
a locked trapdoor=запертый люк
|
||||||
Wooden Trapdoor=Деревянный Люк
|
Wooden Trapdoor=Деревянный люк
|
||||||
Steel Trapdoor=Стальной Люк
|
Steel Trapdoor=Стальной люк
|
||||||
Apple Wood Fence Gate=Яблоневая Деревянная Калитка
|
Apple Wood Fence Gate=Яблоневая калитка
|
||||||
Acacia Wood Fence Gate=Деревянная Калитка Из Акации
|
Acacia Wood Fence Gate=Акациевая калитка
|
||||||
Jungle Wood Fence Gate=Деревянная Калитка Из Тропического Дерева
|
Jungle Wood Fence Gate=Калитка из тропического дерева
|
||||||
Pine Wood Fence Gate=Сосновая Деревянная Калитка
|
Pine Wood Fence Gate=Сосновая калитка
|
||||||
Aspen Wood Fence Gate=Осиновая Деревянная Калитка
|
Aspen Wood Fence Gate=Осиновая калитка
|
||||||
|
|
|
@ -14,7 +14,7 @@ local function random_sample(rand, list, count)
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
local function find_walls(cpos)
|
local function find_walls(cpos, is_temple)
|
||||||
local is_wall = function(node)
|
local is_wall = function(node)
|
||||||
return node.name ~= "air" and node.name ~= "ignore"
|
return node.name ~= "air" and node.name ~= "ignore"
|
||||||
end
|
end
|
||||||
|
@ -55,7 +55,7 @@ local function find_walls(cpos)
|
||||||
local biome = minetest.get_biome_data(cpos)
|
local biome = minetest.get_biome_data(cpos)
|
||||||
biome = biome and minetest.get_biome_name(biome.biome) or ""
|
biome = biome and minetest.get_biome_name(biome.biome) or ""
|
||||||
local type = "normal"
|
local type = "normal"
|
||||||
if biome:find("desert") == 1 then
|
if is_temple or biome:find("desert") == 1 then
|
||||||
type = "desert"
|
type = "desert"
|
||||||
elseif biome:find("sandstone_desert") == 1 then
|
elseif biome:find("sandstone_desert") == 1 then
|
||||||
type = "sandstone"
|
type = "sandstone"
|
||||||
|
@ -125,6 +125,8 @@ end
|
||||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||||
local gennotify = minetest.get_mapgen_object("gennotify")
|
local gennotify = minetest.get_mapgen_object("gennotify")
|
||||||
local poslist = gennotify["dungeon"] or {}
|
local poslist = gennotify["dungeon"] or {}
|
||||||
|
local n_dungeons = #poslist
|
||||||
|
-- Add MGv6 desert temples to the list too
|
||||||
for _, entry in ipairs(gennotify["temple"] or {}) do
|
for _, entry in ipairs(gennotify["temple"] or {}) do
|
||||||
table.insert(poslist, entry)
|
table.insert(poslist, entry)
|
||||||
end
|
end
|
||||||
|
@ -137,7 +139,7 @@ minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||||
-- process at most 8 rooms to keep runtime of this predictable
|
-- process at most 8 rooms to keep runtime of this predictable
|
||||||
local num_process = math.min(#poslist, 8)
|
local num_process = math.min(#poslist, 8)
|
||||||
for i = 1, num_process do
|
for i = 1, num_process do
|
||||||
local room = find_walls(poslist[i])
|
local room = find_walls(poslist[i], i > n_dungeons)
|
||||||
-- skip small rooms and everything that doesn't at least have 3 walls
|
-- skip small rooms and everything that doesn't at least have 3 walls
|
||||||
if math.min(room.size.x, room.size.z) >= 4 and #room.walls >= 3 then
|
if math.min(room.size.x, room.size.z) >= 4 and #room.walls >= 3 then
|
||||||
table.insert(candidates, room)
|
table.insert(candidates, room)
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# textdomain: dye
|
# textdomain: dye
|
||||||
White Dye=Blanka Tinkturo
|
White Dye=Blanka tinkturo
|
||||||
Grey Dye=Griza Tinkturo
|
Grey Dye=Griza tinkturo
|
||||||
Dark Grey Dye=Malhela Griza Tinkturo
|
Dark Grey Dye=Malhela griza tinkturo
|
||||||
Black Dye=Nigra Tinkturo
|
Black Dye=Nigra tinkturo
|
||||||
Violet Dye=Violkolora Tinkturo
|
Violet Dye=Violkolora tinkturo
|
||||||
Blue Dye=Blua Tinkturo
|
Blue Dye=Blua tinkturo
|
||||||
Cyan Dye=Bluverda Tinkturo
|
Cyan Dye=Bluverda tinkturo
|
||||||
Dark Green Dye=Malhela Verda Tinkturo
|
Dark Green Dye=Malhela verda tinkturo
|
||||||
Green Dye=Verda Tinkturo
|
Green Dye=Verda tinkturo
|
||||||
Yellow Dye=Flava Tinkturo
|
Yellow Dye=Flava tinkturo
|
||||||
Brown Dye=Bruna Tinkturo
|
Brown Dye=Bruna tinkturo
|
||||||
Orange Dye=Oranĝkolora Tinkturo
|
Orange Dye=Oranĝkolora tinkturo
|
||||||
Red Dye=Ruĝa Tinkturo
|
Red Dye=Ruĝa tinkturo
|
||||||
Magenta Dye=Fiksina Tinkturo
|
Magenta Dye=Fiksina tinkturo
|
||||||
Pink Dye=Rozkolora Tinkturo
|
Pink Dye=Rozkolora tinkturo
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# textdomain: dye
|
# textdomain: dye
|
||||||
White Dye=Белая Краска
|
White Dye=Белый краситель
|
||||||
Grey Dye=Серая Краска
|
Grey Dye=Серый краситель
|
||||||
Dark Grey Dye=Тёмно-Серая Краска
|
Dark Grey Dye=Тёмно-серый краситель
|
||||||
Black Dye=Черная Краска
|
Black Dye=Черный краситель
|
||||||
Violet Dye=Фиолетовая Краска
|
Violet Dye=Фиолетовый краситель
|
||||||
Blue Dye=Синяя Краска
|
Blue Dye=Синий краситель
|
||||||
Cyan Dye=Голубая Краска
|
Cyan Dye=Бирюзовый краситель
|
||||||
Dark Green Dye=Тёмно-Зелёная Краска
|
Dark Green Dye=Тёмно-зелёный краситель
|
||||||
Green Dye=Зелёная Краска
|
Green Dye=Зелёный краситель
|
||||||
Yellow Dye=Жёлтая Краска
|
Yellow Dye=Жёлтый краситель
|
||||||
Brown Dye=Бурая Краска
|
Brown Dye=Коричневый краситель
|
||||||
Orange Dye=Оранжевая Краска
|
Orange Dye=Оранжевый краситель
|
||||||
Red Dye=Красная Краска
|
Red Dye=Красный краситель
|
||||||
Magenta Dye=Пурпурная Краска
|
Magenta Dye=Сиреневый краситель
|
||||||
Pink Dye=Розовая Краска
|
Pink Dye=Розовый краситель
|
||||||
|
|
|
@ -178,7 +178,9 @@ farming.place_seed = function(itemstack, placer, pointed_thing, plantname)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- add the node and remove 1 item from the itemstack
|
-- add the node and remove 1 item from the itemstack
|
||||||
|
if placer then
|
||||||
default.log_player_action(placer, "places node", plantname, "at", pt.above)
|
default.log_player_action(placer, "places node", plantname, "at", pt.above)
|
||||||
|
end
|
||||||
minetest.add_node(pt.above, {name = plantname, param2 = 1})
|
minetest.add_node(pt.above, {name = plantname, param2 = 1})
|
||||||
tick(pt.above)
|
tick(pt.above)
|
||||||
if not minetest.is_creative_enabled(player_name) then
|
if not minetest.is_creative_enabled(player_name) then
|
||||||
|
@ -187,6 +189,12 @@ farming.place_seed = function(itemstack, placer, pointed_thing, plantname)
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- check if on wet soil
|
||||||
|
farming.can_grow = function(pos)
|
||||||
|
local below = minetest.get_node(pos:offset(0, -1, 0))
|
||||||
|
return minetest.get_item_group(below.name, "soil") >= 3
|
||||||
|
end
|
||||||
|
|
||||||
farming.grow_plant = function(pos, elapsed)
|
farming.grow_plant = function(pos, elapsed)
|
||||||
local node = minetest.get_node(pos)
|
local node = minetest.get_node(pos)
|
||||||
local name = node.name
|
local name = node.name
|
||||||
|
@ -222,9 +230,7 @@ farming.grow_plant = function(pos, elapsed)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- check if on wet soil
|
if not (def.can_grow or farming.can_grow)(pos) then
|
||||||
local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z})
|
|
||||||
if minetest.get_item_group(below.name, "soil") < 3 then
|
|
||||||
tick_again(pos)
|
tick_again(pos)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,28 +1,28 @@
|
||||||
# textdomain: farming
|
# textdomain: farming
|
||||||
Hoe=Sarkilo
|
Hoe=Sarkilo
|
||||||
Seed=Semo
|
Seed=Semo
|
||||||
Wooden Hoe=Ligna Sarkilo
|
Wooden Hoe=Ligna sarkilo
|
||||||
Stone Hoe=Ŝtona Sarkilo
|
Stone Hoe=Ŝtona sarkilo
|
||||||
Steel Hoe=Ŝtala Sarkilo
|
Steel Hoe=Ŝtala sarkilo
|
||||||
Bronze Hoe=Bronza Sarkilo
|
Bronze Hoe=Bronza sarkilo
|
||||||
Mese Hoe=Mesea Sarkilo
|
Mese Hoe=Mesea sarkilo
|
||||||
Diamond Hoe=Diamanta Sarkilo
|
Diamond Hoe=Diamanta sarkilo
|
||||||
Wheat Seed=Tritika Semo
|
Wheat Seed=Tritika semo
|
||||||
Wheat=Tritiko
|
Wheat=Tritiko
|
||||||
Flour=Faruno
|
Flour=Faruno
|
||||||
Bread=Pano
|
Bread=Pano
|
||||||
Cotton Seed=Katuna Semo
|
Cotton Seed=Katuna semo
|
||||||
Cotton=Katuno
|
Cotton=Katuno
|
||||||
String=Ŝnuro
|
String=Ŝnuro
|
||||||
Soil=Tero
|
Soil=Tero
|
||||||
Wet Soil=Malseka Tero
|
Wet Soil=Malseka tero
|
||||||
Savanna Soil=Savana Tero
|
Savanna Soil=Savana tero
|
||||||
Wet Savanna Soil=Malseka Savana Tero
|
Wet Savanna Soil=Malseka savana tero
|
||||||
Desert Sand Soil=Dezerta Sablo Tero
|
Desert Sand Soil=Dezerta sablo tero
|
||||||
Wet Desert Sand Soil=Malseka Dezerta Sablo Tero
|
Wet Desert Sand Soil=Malseka dezerta sablo tero
|
||||||
Straw=Pajlo
|
Straw=Pajlo
|
||||||
Straw Stair=Pajla Ŝtupo
|
Straw Stair=Pajla ŝtupo
|
||||||
Inner Straw Stair=Interna Pajla Ŝtupo
|
Inner Straw Stair=Interna pajla ŝtupo
|
||||||
Outer Straw Stair=Ekstera Pajla Ŝtupo
|
Outer Straw Stair=Ekstera pajla ŝtupo
|
||||||
Straw Slab=Pajla Plato
|
Straw Slab=Pajla plato
|
||||||
Wild Cotton=Sovaĝa Kotonujo
|
Wild Cotton=Sovaĝa kotonujo
|
||||||
|
|
28
mods/farming/locale/farming.pt.tr
Normal file
28
mods/farming/locale/farming.pt.tr
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# textdomain: farming
|
||||||
|
Hoe=Enxada
|
||||||
|
Seed=Semente
|
||||||
|
Wooden Hoe=Enxada de Madeira
|
||||||
|
Stone Hoe=Enxada de Pedra
|
||||||
|
Steel Hoe=Enxada de Aço
|
||||||
|
Bronze Hoe=Enxada de Bronze
|
||||||
|
Mese Hoe=Enxada de Mese
|
||||||
|
Diamond Hoe=Enxada de Diamante
|
||||||
|
Wheat Seed=Semente de Trigo
|
||||||
|
Wheat=Trigo
|
||||||
|
Flour=Farinha
|
||||||
|
Bread=Pão
|
||||||
|
Cotton Seed=Semente de Algodão
|
||||||
|
Cotton=Algodão
|
||||||
|
String=Fio
|
||||||
|
Soil=Solo
|
||||||
|
Wet Soil=Solo Molhado
|
||||||
|
Savanna Soil=Solo da Savana
|
||||||
|
Wet Savanna Soil=Solo da Savana Molhado
|
||||||
|
Desert Sand Soil=Solo Arenoso do Deserto
|
||||||
|
Wet Desert Sand Soil=Solo Arenoso do Deserto Molhado
|
||||||
|
Straw=Palha
|
||||||
|
Straw Stair=Escada de Palha
|
||||||
|
Inner Straw Stair=Escada de Palha Externa
|
||||||
|
Outer Straw Stair=Escada de Palha Interna
|
||||||
|
Straw Slab=Laje de Palha
|
||||||
|
Wild Cotton=Algodão Selvagem
|
|
@ -1,34 +1,28 @@
|
||||||
# textdomain: farming
|
# textdomain: farming
|
||||||
Hoe=Мотыга
|
Hoe=Мотыга
|
||||||
Seed=Семя
|
Seed=Семена
|
||||||
Wooden Hoe=Деревянная Мотыга
|
Wooden Hoe=Деревянная мотыга
|
||||||
Stone Hoe=Каменная Мотыга
|
Stone Hoe=Каменная мотыга
|
||||||
Steel Hoe=Стальная Мотыга
|
Steel Hoe=Стальная мотыга
|
||||||
Bronze Hoe=Бронзовая Мотыга
|
Bronze Hoe=Бронзовая мотыга
|
||||||
Mese Hoe=Месе Мотыга
|
Mese Hoe=Мезовая мотыга
|
||||||
Diamond Hoe=Алмазная Мотыга
|
Diamond Hoe=Алмазная мотыга
|
||||||
Wheat Seed=Семена Пшеницы
|
Wheat Seed=Семена пшеницы
|
||||||
Wheat=Пшеница
|
Wheat=Пшеница
|
||||||
Flour=Мука
|
Flour=Мука
|
||||||
Bread=Хлеб
|
Bread=Хлеб
|
||||||
Cotton Seed=Семена Хлопчатника
|
Cotton Seed=Семена хлопчатника
|
||||||
Cotton=Хлопок
|
Cotton=Хлопок
|
||||||
String=Нить
|
String=Нить
|
||||||
Soil=Почва
|
Soil=Почва
|
||||||
Wet Soil=Влажная Почва
|
Wet Soil=Влажная почва
|
||||||
Savanna Soil=Саванная Почва
|
Savanna Soil=Саванная почва
|
||||||
Wet Savanna Soil=Влажная Саванная Почва
|
Wet Savanna Soil=Влажная саванная почва
|
||||||
Desert Sand Soil=Пустынная Песчаная Почва
|
Desert Sand Soil=Пустынная песчаная почва
|
||||||
Wet Desert Sand Soil=Влажная Пустынная Песчаная Почва
|
Wet Desert Sand Soil=Влажная пустынная песчаная почва
|
||||||
Straw=Солома
|
Straw=Солома
|
||||||
Straw Stair=Соломенная Ступень
|
Straw Stair=Соломенные ступени
|
||||||
Inner Straw Stair=Угловая Соломенная Ступень (Внутренний Угол)
|
Inner Straw Stair=Внутренние соломенные ступени
|
||||||
Outer Straw Stair=Угловая Соломенная Ступень (Внешний Угол)
|
Outer Straw Stair=Внешние соломенные ступени
|
||||||
Straw Slab=Соломенная Плита
|
Straw Slab=Соломенная плита
|
||||||
Wild Cotton=Неокультуренный Хлопчатник
|
Wild Cotton=Дикий хлопчатник
|
||||||
|
|
||||||
|
|
||||||
##### not used anymore #####
|
|
||||||
|
|
||||||
Dry Soil=Сухая Почва
|
|
||||||
Wet Dry Soil=Влажная Сухая Почва
|
|
||||||
|
|
|
@ -101,13 +101,18 @@ minetest.register_tool("fire:flint_and_steel", {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if minetest.is_protected(pointed_thing.under, player_name) then
|
if minetest.is_protected(pointed_thing.under, player_name) then
|
||||||
minetest.chat_send_player(player_name, "This area is protected")
|
minetest.record_protection_violation(pointed_thing.under, player_name)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if nodedef.on_ignite then
|
if nodedef.on_ignite then
|
||||||
nodedef.on_ignite(pointed_thing.under, user)
|
nodedef.on_ignite(pointed_thing.under, user)
|
||||||
elseif minetest.get_item_group(node_under, "flammable") >= 1
|
elseif minetest.get_item_group(node_under, "flammable") >= 1
|
||||||
and minetest.get_node(pointed_thing.above).name == "air" then
|
and minetest.get_node(pointed_thing.above).name == "air" then
|
||||||
|
if minetest.is_protected(pointed_thing.above, player_name) then
|
||||||
|
minetest.record_protection_violation(pointed_thing.above, player_name)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
minetest.set_node(pointed_thing.above, {name = "fire:basic_flame"})
|
minetest.set_node(pointed_thing.above, {name = "fire:basic_flame"})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: fire
|
# textdomain: fire
|
||||||
Fire=Fajro
|
Fire=Fajro
|
||||||
Permanent Fire=Ĉiama Fajro
|
Permanent Fire=Ĉiama fajro
|
||||||
Flint and Steel=Siliko kaj Ŝtalo
|
Flint and Steel=Siliko kaj ŝtalo
|
||||||
|
|
4
mods/fire/locale/fire.pt.tr
Normal file
4
mods/fire/locale/fire.pt.tr
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# textdomain: fire
|
||||||
|
Fire=Fogo
|
||||||
|
Permanent Fire=Fogo Permanente
|
||||||
|
Flint and Steel=Pederneira Primitiva
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: fire
|
# textdomain: fire
|
||||||
Fire=Fogo
|
Fire=Fogo
|
||||||
Permanent Fire=Fogo Permanente
|
Permanent Fire=Fogo Permanente
|
||||||
Flint and Steel=Sílex e Fogo
|
Flint and Steel=Pederneira Primitiva
|
||||||
|
|
|
@ -1,9 +1,4 @@
|
||||||
# textdomain: fire
|
# textdomain: fire
|
||||||
Fire=Огонь
|
Fire=Огонь
|
||||||
Permanent Fire=Вечный Огонь
|
Permanent Fire=Вечный огонь
|
||||||
Flint and Steel=Огниво
|
Flint and Steel=Огниво
|
||||||
|
|
||||||
|
|
||||||
##### not used anymore #####
|
|
||||||
|
|
||||||
Permanent Flame=Вечный Огонь
|
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
-- Load support for MT game translation.
|
-- Load support for MT game translation.
|
||||||
local S = minetest.get_translator("fireflies")
|
local S = minetest.get_translator("fireflies")
|
||||||
|
|
||||||
|
-- Legacy compatibility, when pointabilities don't exist, pointable is set to true.
|
||||||
|
local pointable_compat = not minetest.features.item_specific_pointabilities
|
||||||
|
|
||||||
minetest.register_node("fireflies:firefly", {
|
minetest.register_node("fireflies:firefly", {
|
||||||
description = S("Firefly"),
|
description = S("Firefly"),
|
||||||
|
@ -23,6 +25,7 @@ minetest.register_node("fireflies:firefly", {
|
||||||
sunlight_propagates = true,
|
sunlight_propagates = true,
|
||||||
buildable_to = true,
|
buildable_to = true,
|
||||||
walkable = false,
|
walkable = false,
|
||||||
|
pointable = pointable_compat,
|
||||||
groups = {catchable = 1},
|
groups = {catchable = 1},
|
||||||
selection_box = {
|
selection_box = {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
|
@ -30,18 +33,8 @@ minetest.register_node("fireflies:firefly", {
|
||||||
},
|
},
|
||||||
light_source = 6,
|
light_source = 6,
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "fireflies:firefly"})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) > 11 then
|
if minetest.get_node_light(pos) > 11 then
|
||||||
|
@ -65,18 +58,8 @@ minetest.register_node("fireflies:hidden_firefly", {
|
||||||
drop = "",
|
drop = "",
|
||||||
groups = {not_in_creative_inventory = 1},
|
groups = {not_in_creative_inventory = 1},
|
||||||
floodable = true,
|
floodable = true,
|
||||||
on_place = function(itemstack, placer, pointed_thing)
|
on_construct = function(pos)
|
||||||
local player_name = placer:get_player_name()
|
|
||||||
local pos = pointed_thing.above
|
|
||||||
|
|
||||||
if not minetest.is_protected(pos, player_name) and
|
|
||||||
not minetest.is_protected(pointed_thing.under, player_name) and
|
|
||||||
minetest.get_node(pos).name == "air" then
|
|
||||||
minetest.set_node(pos, {name = "fireflies:hidden_firefly"})
|
|
||||||
minetest.get_node_timer(pos):start(1)
|
minetest.get_node_timer(pos):start(1)
|
||||||
itemstack:take_item()
|
|
||||||
end
|
|
||||||
return itemstack
|
|
||||||
end,
|
end,
|
||||||
on_timer = function(pos, elapsed)
|
on_timer = function(pos, elapsed)
|
||||||
if minetest.get_node_light(pos) <= 11 then
|
if minetest.get_node_light(pos) <= 11 then
|
||||||
|
@ -91,27 +74,12 @@ minetest.register_node("fireflies:hidden_firefly", {
|
||||||
minetest.register_tool("fireflies:bug_net", {
|
minetest.register_tool("fireflies:bug_net", {
|
||||||
description = S("Bug Net"),
|
description = S("Bug Net"),
|
||||||
inventory_image = "fireflies_bugnet.png",
|
inventory_image = "fireflies_bugnet.png",
|
||||||
on_use = function(itemstack, player, pointed_thing)
|
pointabilities = {nodes = {["group:catchable"] = true}},
|
||||||
local player_name = player and player:get_player_name() or ""
|
tool_capabilities = {
|
||||||
if not pointed_thing or pointed_thing.type ~= "node" or
|
groupcaps = {
|
||||||
minetest.is_protected(pointed_thing.under, player_name) then
|
catchable = { maxlevel = 1, uses = 256, times = { [1] = 0, [2] = 0, [3] = 0 } }
|
||||||
return
|
},
|
||||||
end
|
},
|
||||||
local node_name = minetest.get_node(pointed_thing.under).name
|
|
||||||
local inv = player:get_inventory()
|
|
||||||
if minetest.get_item_group(node_name, "catchable") == 1 then
|
|
||||||
minetest.set_node(pointed_thing.under, {name = "air"})
|
|
||||||
local stack = ItemStack(node_name.." 1")
|
|
||||||
local leftover = inv:add_item("main", stack)
|
|
||||||
if leftover:get_count() > 0 then
|
|
||||||
minetest.add_item(pointed_thing.under, node_name.." 1")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if not minetest.is_creative_enabled(player_name) then
|
|
||||||
itemstack:add_wear_by_uses(256)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft( {
|
minetest.register_craft( {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# textdomain: fireflies
|
# textdomain: fireflies
|
||||||
Firefly=Lampiro
|
Firefly=Lampiro
|
||||||
Hidden Firefly=Kaŝita Lampiro
|
Hidden Firefly=Kaŝita lampiro
|
||||||
Bug Net=Insekta Reto
|
Bug Net=Insekta reto
|
||||||
Firefly in a Bottle=Lampiro en Botelo
|
Firefly in a Bottle=Lampiro en botelo
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# textdomain: fireflies
|
# textdomain: fireflies
|
||||||
Firefly=Светлячок
|
Firefly=Светлячок
|
||||||
Hidden Firefly=Притаившийся Светлячок
|
Hidden Firefly=Притаившийся светлячок
|
||||||
Bug Net=Сачок Для Ловли Насекомых
|
Bug Net=Сачок
|
||||||
Firefly in a Bottle=Светлячок в Бутылке
|
Firefly in a Bottle=Светлячок в бутылке
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# textdomain: flowers
|
# textdomain: flowers
|
||||||
Red Rose=Ruĝa Rozo
|
Red Rose=Ruĝa rozo
|
||||||
Orange Tulip=Oranĝkolora Tulipo
|
Orange Tulip=Oranĝkolora tulipo
|
||||||
Yellow Dandelion=Flava Leontodo
|
Yellow Dandelion=Flava leontodo
|
||||||
Green Chrysanthemum=Verda Krizantemo
|
Green Chrysanthemum=Verda krizantemo
|
||||||
Blue Geranium=Blua Geranio
|
Blue Geranium=Blua geranio
|
||||||
Viola=Violo
|
Viola=Violo
|
||||||
White Dandelion=Blanka Leontodo
|
White Dandelion=Blanka leontodo
|
||||||
Black Tulip=Nigra Tulipo
|
Black Tulip=Nigra tulipo
|
||||||
Red Mushroom=Ruĝa Fungo
|
Red Mushroom=Ruĝa fungo
|
||||||
Brown Mushroom=Bruna Fungo
|
Brown Mushroom=Bruna fungo
|
||||||
Waterlily=Nimfeo
|
Waterlily=Nimfeo
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# textdomain: flowers
|
# textdomain: flowers
|
||||||
Red Rose=Красная Роза
|
Red Rose=Красная роза
|
||||||
Orange Tulip=Оранжевый Тюльпан
|
Orange Tulip=Оранжевый тюльпан
|
||||||
Yellow Dandelion=Желтый Одуванчик
|
Yellow Dandelion=Жёлтый одуванчик
|
||||||
Green Chrysanthemum=Зелёная Хризантема
|
Green Chrysanthemum=Зелёная хризантема
|
||||||
Blue Geranium=Синяя Герань
|
Blue Geranium=Синяя герань
|
||||||
Viola=Фиалка
|
Viola=Фиалка
|
||||||
White Dandelion=Белый Одуванчик
|
White Dandelion=Белый одуванчик
|
||||||
Black Tulip=Черный Тюльпан
|
Black Tulip=Чёрный тюльпан
|
||||||
Red Mushroom=Мухомор
|
Red Mushroom=Красный гриб
|
||||||
Brown Mushroom=Коричневый Гриб
|
Brown Mushroom=Коричневый гриб
|
||||||
Waterlily=Кувшинка
|
Waterlily=Лилия
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: game_commands
|
# textdomain: game_commands
|
||||||
Kill yourself to respawn=Убейте себя, чтобы возродиться
|
Kill yourself to respawn=Убейте себя, чтобы возродиться
|
||||||
No static_spawnpoint defined=static_spawnpoint не определён
|
No static_spawnpoint defined=static_spawnpoint не определён
|
||||||
You need to be online to be killed!=Вы должны быть онлайн, чтобы убить себя!
|
You need to be online to be killed!=Вы должны быть в сети, чтобы убить себя!
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
Key=Ŝlosilo
|
Key=Ŝlosilo
|
||||||
Key to @1's @2=Ŝlosilo por la @2 de @1
|
Key to @1's @2=Ŝlosilo por la @2 de @1
|
||||||
Skeleton Key=Skeleta Ŝlosilo
|
Skeleton Key=Skeleta ŝlosilo
|
||||||
|
|
|
@ -2,4 +2,4 @@
|
||||||
|
|
||||||
Key=Ключ
|
Key=Ключ
|
||||||
Key to @1's @2=Ключ к @2 от @1
|
Key to @1's @2=Ключ к @2 от @1
|
||||||
Skeleton Key=Ключ Скелета
|
Skeleton Key=Заготовка ключа
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# textdomain: map
|
# textdomain: map
|
||||||
Mapping Kit=Mapa Ilaro
|
Mapping Kit=Mapa ilaro
|
||||||
Use with 'Minimap' key=Uzi per 'Minimapo' klavo
|
Use with 'Minimap' key=Uzi per 'Minimapo' klavo
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# textdomain: map
|
# textdomain: map
|
||||||
Mapping Kit=Картографический комплект
|
Mapping Kit=Картографический комплект
|
||||||
Use with 'Minimap' key=Используйте с ключом 'Minimap'
|
Use with 'Minimap' key=Используйте клавишей 'Миникарта'
|
||||||
|
|
|
@ -282,6 +282,7 @@ local function get_formspec(player)
|
||||||
"tooltip[clear;"..esc(S("Reset")).."]"..
|
"tooltip[clear;"..esc(S("Reset")).."]"..
|
||||||
"tooltip[prev;"..esc(S("Previous page")).."]"..
|
"tooltip[prev;"..esc(S("Previous page")).."]"..
|
||||||
"tooltip[next;"..esc(S("Next page")).."]"..
|
"tooltip[next;"..esc(S("Next page")).."]"..
|
||||||
|
"field_enter_after_edit[filter;true]"..
|
||||||
"field_close_on_enter[filter;false]")
|
"field_close_on_enter[filter;false]")
|
||||||
|
|
||||||
if #data.items == 0 then
|
if #data.items == 0 then
|
||||||
|
|
|
@ -33,7 +33,7 @@ Any dark green dye=Ajna malhela verda tinkturo
|
||||||
# Label for group ingredients
|
# Label for group ingredients
|
||||||
G=A
|
G=A
|
||||||
Any item belonging to the group(s): @1=Ajna objekto de la aro(j): @1
|
Any item belonging to the group(s): @1=Ajna objekto de la aro(j): @1
|
||||||
Unknown Item=Nekonata Objekto
|
Unknown Item=Nekonata objekto
|
||||||
Fuel=Brulaĵo
|
Fuel=Brulaĵo
|
||||||
Usage @1 of @2=Uzo @1 el @2
|
Usage @1 of @2=Uzo @1 el @2
|
||||||
Recipe @1 of @2=Recepto @1 el @2
|
Recipe @1 of @2=Recepto @1 el @2
|
||||||
|
|
|
@ -5,7 +5,7 @@ Any wool=Любая шерсть
|
||||||
Any stick=Любая палка
|
Any stick=Любая палка
|
||||||
Any vessel=Любой сосуд
|
Any vessel=Любой сосуд
|
||||||
Any wood planks=Любые доски
|
Any wood planks=Любые доски
|
||||||
Any kind of stone block=Любой вид каменного блока
|
Any kind of stone block=Любой вид камня
|
||||||
Any red flower=Любой красный цветок
|
Any red flower=Любой красный цветок
|
||||||
Any blue flower=Любой синий цветок
|
Any blue flower=Любой синий цветок
|
||||||
Any black flower=Любой чёрный цветок
|
Any black flower=Любой чёрный цветок
|
||||||
|
@ -14,21 +14,21 @@ Any white flower=Любой белый цветок
|
||||||
Any orange flower=Любой оранжевый цветок
|
Any orange flower=Любой оранжевый цветок
|
||||||
Any violet flower=Любой фиолетовый цветок
|
Any violet flower=Любой фиолетовый цветок
|
||||||
Any yellow flower=Любой жёлтый цветок
|
Any yellow flower=Любой жёлтый цветок
|
||||||
Any red dye=Любая красная краска
|
Any red dye=Любой красный краситель
|
||||||
Any blue dye=Любая синяя краска
|
Any blue dye=Любой синий краситель
|
||||||
Any cyan dye=Любая голубая краска
|
Any cyan dye=Любой бирюзовый краситель
|
||||||
Any grey dye=Любая серая краска
|
Any grey dye=Любой серый краситель
|
||||||
Any pink dye=Любая розовая краска
|
Any pink dye=Любой розовый краситель
|
||||||
Any black dye=Любая чёрная краска
|
Any black dye=Любой чёрный краситель
|
||||||
Any brown dye=Любая бурая краска
|
Any brown dye=Любой коричневый краситель
|
||||||
Any green dye=Любая зелёная краска
|
Any green dye=Любой зелёный краситель
|
||||||
Any white dye=Любая белая краска
|
Any white dye=Любой белый краситель
|
||||||
Any orange dye=Любая оранжевая краска
|
Any orange dye=Любой оранжевый краситель
|
||||||
Any violet dye=Любая фиолетовая краска
|
Any violet dye=Любой фиолетовый краситель
|
||||||
Any yellow dye=Любая жёлтая краска
|
Any yellow dye=Любой жёлтый краситель
|
||||||
Any magenta dye=Любая пурпурная краска
|
Any magenta dye=Любой сиреневый краситель
|
||||||
Any dark grey dye=Любая тёмно-серая краска
|
Any dark grey dye=Любой тёмно-серый краситель
|
||||||
Any dark green dye=Любая тёмно-зелёная краска
|
Any dark green dye=Любой тёмно-зелёный краситель
|
||||||
# Label for group ingredients
|
# Label for group ingredients
|
||||||
G=Г
|
G=Г
|
||||||
Any item belonging to the group(s): @1=Любой предмет из групп(ы): @1
|
Any item belonging to the group(s): @1=Любой предмет из групп(ы): @1
|
||||||
|
@ -39,13 +39,13 @@ Recipe @1 of @2=Рецепт @1 из @2
|
||||||
Previous recipe=Предыдущий рецепт
|
Previous recipe=Предыдущий рецепт
|
||||||
Next recipe=Следующий рецепт
|
Next recipe=Следующий рецепт
|
||||||
Recipe is too big to be displayed.=Рецепт слишком большой для отображения.
|
Recipe is too big to be displayed.=Рецепт слишком большой для отображения.
|
||||||
Shapeless=Формонезависимый
|
Shapeless=Бесформенный
|
||||||
Cooking time: @1=Время приготовления: @1
|
Cooking time: @1=Время готовки: @1
|
||||||
Search=Поиск
|
Search=Поиск
|
||||||
Reset=Сброс
|
Reset=Сброс
|
||||||
Previous page=Предыдущая страница
|
Previous page=Предыдущая страница
|
||||||
Next page=Следующая страница
|
Next page=Следующая страница
|
||||||
No items to show.=Нет предметов для отображения.
|
No items to show.=Нет предметов.
|
||||||
No usages.=Нет использований.
|
No usages.=Нет использований.
|
||||||
Click again to show recipes.=Кликните снова чтобы увидеть рецепты.
|
Click again to show recipes.=Кликните снова чтобы увидеть рецепты.
|
||||||
No recipes.=Нет рецептов.
|
No recipes.=Нет рецептов.
|
||||||
|
|
|
@ -71,7 +71,7 @@ function player_api.set_model(player, model_name)
|
||||||
player_data.model = model_name
|
player_data.model = model_name
|
||||||
-- Clear animation data as the model has changed
|
-- Clear animation data as the model has changed
|
||||||
-- (required for setting the `stand` animation not to be a no-op)
|
-- (required for setting the `stand` animation not to be a no-op)
|
||||||
player_data.animation, player_data.animation_speed = nil, nil
|
player_data.animation, player_data.animation_speed, player_data.animation_loop = nil, nil, nil
|
||||||
|
|
||||||
local model = models[model_name]
|
local model = models[model_name]
|
||||||
if model then
|
if model then
|
||||||
|
@ -116,20 +116,27 @@ function player_api.set_texture(player, index, texture)
|
||||||
player_api.set_textures(player, textures)
|
player_api.set_textures(player, textures)
|
||||||
end
|
end
|
||||||
|
|
||||||
function player_api.set_animation(player, anim_name, speed)
|
function player_api.set_animation(player, anim_name, speed, loop)
|
||||||
local player_data = get_player_data(player)
|
local player_data = get_player_data(player)
|
||||||
local model = models[player_data.model]
|
local model = models[player_data.model]
|
||||||
if not (model and model.animations[anim_name]) then
|
if not (model and model.animations[anim_name]) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
speed = speed or model.animation_speed
|
speed = speed or model.animation_speed
|
||||||
if player_data.animation == anim_name and player_data.animation_speed == speed then
|
if loop == nil then
|
||||||
|
loop = true
|
||||||
|
end
|
||||||
|
if player_data.animation == anim_name
|
||||||
|
and player_data.animation_speed == speed
|
||||||
|
and player_data.animation_loop == loop
|
||||||
|
then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
local previous_anim = model.animations[player_data.animation] or {}
|
local previous_anim = model.animations[player_data.animation] or {}
|
||||||
local anim = model.animations[anim_name]
|
local anim = model.animations[anim_name]
|
||||||
player_data.animation = anim_name
|
player_data.animation = anim_name
|
||||||
player_data.animation_speed = speed
|
player_data.animation_speed = speed
|
||||||
|
player_data.animation_loop = loop
|
||||||
-- If necessary change the local animation (only seen by the client of *that* player)
|
-- If necessary change the local animation (only seen by the client of *that* player)
|
||||||
-- `override_local` <=> suspend local animations while this one is active
|
-- `override_local` <=> suspend local animations while this one is active
|
||||||
-- (this is basically a hack, proper engine feature needed...)
|
-- (this is basically a hack, proper engine feature needed...)
|
||||||
|
@ -146,7 +153,7 @@ function player_api.set_animation(player, anim_name, speed)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- Set the animation seen by everyone else
|
-- Set the animation seen by everyone else
|
||||||
player:set_animation(anim, speed, animation_blend)
|
player:set_animation(anim, speed, animation_blend, loop)
|
||||||
-- Update related properties if they changed
|
-- Update related properties if they changed
|
||||||
if anim._equals ~= previous_anim._equals then
|
if anim._equals ~= previous_anim._equals then
|
||||||
player:set_properties({
|
player:set_properties({
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
# textdomain: screwdriver
|
# textdomain: screwdriver
|
||||||
Screwdriver=Отвёртка
|
Screwdriver=Отвёртка
|
||||||
(left-click rotates face, right-click rotates axis)=(клик левой кнопкой мыши вращает грань, клик правой кнопкой мыши вращает ось)
|
(left-click rotates face, right-click rotates axis)=(левый клик вращает грань, правый клик вращает ось)
|
||||||
|
|
|
@ -6,4 +6,4 @@ Teleported to home!=Вы телепортировались домой!
|
||||||
Set a home using /sethome=Установите домашнюю точку, используя /sethome
|
Set a home using /sethome=Установите домашнюю точку, используя /sethome
|
||||||
Set your home point=Установите вашу домашнюю точку
|
Set your home point=Установите вашу домашнюю точку
|
||||||
Home set!=Домашняя точка установлена!
|
Home set!=Домашняя точка установлена!
|
||||||
Player not found!=Игрок не обнаружен!
|
Player not found!=Игрок не найден!
|
||||||
|
|
49
mods/spawn/api.lua
Normal file
49
mods/spawn/api.lua
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
spawn = {}
|
||||||
|
|
||||||
|
-- provide empty default implementations
|
||||||
|
|
||||||
|
function spawn.get_default_pos()
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
|
function spawn.add_suitable_biome(biome)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Callback registration
|
||||||
|
|
||||||
|
spawn.registered_on_spawn = {}
|
||||||
|
|
||||||
|
function spawn.register_on_spawn(func)
|
||||||
|
table.insert(spawn.registered_on_spawn, func)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Logic run on spawn
|
||||||
|
|
||||||
|
local use_engine_spawn = minetest.settings:get("static_spawnpoint") or
|
||||||
|
minetest.settings:get_bool("engine_spawn")
|
||||||
|
|
||||||
|
local function on_spawn(player, is_new)
|
||||||
|
-- Ask all callbacks first
|
||||||
|
for _, cb in ipairs(spawn.registered_on_spawn) do
|
||||||
|
if cb(player, is_new) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Fall back to default spawn
|
||||||
|
if not use_engine_spawn then
|
||||||
|
local pos = spawn.get_default_pos()
|
||||||
|
if pos then
|
||||||
|
player:set_pos(pos)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_on_newplayer(function(player)
|
||||||
|
on_spawn(player, true)
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_respawnplayer(function(player)
|
||||||
|
return on_spawn(player, false)
|
||||||
|
end)
|
|
@ -1,12 +1,12 @@
|
||||||
-- spawn/init.lua
|
-- Always load the API
|
||||||
|
----------------------
|
||||||
|
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/api.lua")
|
||||||
|
|
||||||
-- Disable by mapgen, setting or if 'static_spawnpoint' is set
|
-- Disable biome-search implementation on unsuitable mapgens
|
||||||
--------------------------------------------------------------
|
------------------------------------------------------------
|
||||||
|
|
||||||
local mg_name = minetest.get_mapgen_setting("mg_name")
|
local mg_name = minetest.get_mapgen_setting("mg_name")
|
||||||
if mg_name == "v6" or mg_name == "singlenode" or
|
if mg_name == "v6" or mg_name == "singlenode" then
|
||||||
minetest.settings:get("static_spawnpoint") or
|
|
||||||
minetest.settings:get_bool("engine_spawn") then
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -23,27 +23,35 @@ local checks = 128 * 128
|
||||||
local pos = {x = 0, y = 8, z = 0}
|
local pos = {x = 0, y = 8, z = 0}
|
||||||
|
|
||||||
|
|
||||||
-- Table of suitable biomes
|
-- Table of suitable biomes and matching API function
|
||||||
|
|
||||||
local biome_ids = {
|
local biome_ids = {}
|
||||||
minetest.get_biome_id("taiga"),
|
|
||||||
minetest.get_biome_id("coniferous_forest"),
|
function spawn.add_suitable_biome(biome)
|
||||||
minetest.get_biome_id("deciduous_forest"),
|
local id = minetest.get_biome_id(biome)
|
||||||
minetest.get_biome_id("grassland"),
|
assert(id ~= nil)
|
||||||
minetest.get_biome_id("savanna"),
|
biome_ids[id] = true
|
||||||
}
|
end
|
||||||
|
|
||||||
|
for _, name in ipairs({
|
||||||
|
"taiga", "coniferous_forest", "deciduous_forest", "grassland", "savanna"
|
||||||
|
}) do
|
||||||
|
local id = minetest.get_biome_id(name)
|
||||||
|
if id then
|
||||||
|
biome_ids[id] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- End of parameters
|
-- End of parameters
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
|
|
||||||
-- Direction table
|
-- Direction table
|
||||||
|
|
||||||
local dirs = {
|
local dirs = {
|
||||||
{x = 0, y = 0, z = 1},
|
vector.new(0, 0, 1),
|
||||||
{x = -1, y = 0, z = 0},
|
vector.new(-1, 0, 0),
|
||||||
{x = 0, y = 0, z = -1},
|
vector.new(0, 0, -1),
|
||||||
{x = 1, y = 0, z = 0},
|
vector.new(1, 0, 0),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -67,8 +75,8 @@ local chunksize = tonumber(minetest.get_mapgen_setting("chunksize"))
|
||||||
local spawn_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0)
|
local spawn_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0)
|
||||||
|
|
||||||
|
|
||||||
--Functions
|
-- Functions
|
||||||
-----------
|
------------
|
||||||
|
|
||||||
-- Get next position on square search spiral
|
-- Get next position on square search spiral
|
||||||
|
|
||||||
|
@ -98,17 +106,13 @@ local function search()
|
||||||
for iter = 1, checks do
|
for iter = 1, checks do
|
||||||
local biome_data = minetest.get_biome_data(pos)
|
local biome_data = minetest.get_biome_data(pos)
|
||||||
-- Sometimes biome_data is nil
|
-- Sometimes biome_data is nil
|
||||||
local biome = biome_data and biome_data.biome
|
if biome_data and biome_ids[biome_data.biome] then
|
||||||
for id_ind = 1, #biome_ids do
|
|
||||||
local biome_id = biome_ids[id_ind]
|
|
||||||
if biome == biome_id then
|
|
||||||
local spawn_y = minetest.get_spawn_level(pos.x, pos.z)
|
local spawn_y = minetest.get_spawn_level(pos.x, pos.z)
|
||||||
if spawn_y then
|
if spawn_y then
|
||||||
spawn_pos = {x = pos.x, y = spawn_y, z = pos.z}
|
spawn_pos = vector.new(pos.x, spawn_y, pos.z)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
|
||||||
|
|
||||||
pos = next_pos()
|
pos = next_pos()
|
||||||
-- Check for position being outside world edge
|
-- Check for position being outside world edge
|
||||||
|
@ -121,38 +125,11 @@ local function search()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
-- On new player spawn and player respawn
|
function spawn.get_default_pos()
|
||||||
|
-- Search for spawn position once per server session
|
||||||
-- Search for spawn position once per server session. If successful, store
|
|
||||||
-- position and reposition players, otherwise leave them at engine spawn
|
|
||||||
-- position.
|
|
||||||
|
|
||||||
local function on_spawn(player)
|
|
||||||
if not searched then
|
if not searched then
|
||||||
success = search()
|
success = search()
|
||||||
searched = true
|
searched = true
|
||||||
end
|
end
|
||||||
if success then
|
return success and spawn_pos
|
||||||
player:set_pos(spawn_pos)
|
|
||||||
end
|
|
||||||
return success
|
|
||||||
end
|
end
|
||||||
|
|
||||||
minetest.register_on_newplayer(function(player)
|
|
||||||
on_spawn(player)
|
|
||||||
end)
|
|
||||||
|
|
||||||
local enable_bed_respawn = minetest.settings:get_bool("enable_bed_respawn")
|
|
||||||
if enable_bed_respawn == nil then
|
|
||||||
enable_bed_respawn = true
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_on_respawnplayer(function(player)
|
|
||||||
-- Avoid respawn conflict with beds mod
|
|
||||||
if beds and enable_bed_respawn and
|
|
||||||
beds.spawn[player:get_player_name()] then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
return on_spawn(player)
|
|
||||||
end)
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
name = spawn
|
name = spawn
|
||||||
description = Minetest Game mod: spawn
|
description = Minetest Game mod: spawn
|
||||||
depends = default
|
depends = default
|
||||||
optional_depends = beds
|
|
||||||
|
|
|
@ -1,145 +1,145 @@
|
||||||
# textdomain: stairs
|
# textdomain: stairs
|
||||||
Glass Stair=Vitra Ŝtupo
|
Glass Stair=Vitra ŝtupo
|
||||||
Glass Slab=Vitra Plato
|
Glass Slab=Vitra plato
|
||||||
Inner Glass Stair=Interna Vitra Ŝtupo
|
Inner Glass Stair=Interna vitra ŝtupo
|
||||||
Outer Glass Stair=Ekstera Vitra Ŝtupo
|
Outer Glass Stair=Ekstera vitra ŝtupo
|
||||||
Obsidian Glass Stair=Obsidiana Vitra Ŝtupo
|
Obsidian Glass Stair=Obsidiana vitra ŝtupo
|
||||||
Obsidian Glass Slab=Obsidiana Vitra Plato
|
Obsidian Glass Slab=Obsidiana vitra plato
|
||||||
Inner Obsidian Glass Stair=Interna Obsidiana Vitra Ŝtupo
|
Inner Obsidian Glass Stair=Interna obsidiana vitra ŝtupo
|
||||||
Outer Obsidian Glass Stair=Ekstera Obsidiana Vitra Ŝtupo
|
Outer Obsidian Glass Stair=Ekstera obsidiana vitra ŝtupo
|
||||||
Wooden Stair=Ligna Ŝtupo
|
Wooden Stair=Ligna ŝtupo
|
||||||
Inner Wooden Stair=Interna Ligna Ŝtupo
|
Inner Wooden Stair=Interna ligna ŝtupo
|
||||||
Outer Wooden Stair=Ekstera Ligna Ŝtupo
|
Outer Wooden Stair=Ekstera ligna ŝtupo
|
||||||
Wooden Slab=Ligna Plato
|
Wooden Slab=Ligna plato
|
||||||
Jungle Wood Stair=Ĝangala Ligna Ŝtupo
|
Jungle Wood Stair=Ĝangala ligna ŝtupo
|
||||||
Inner Jungle Wood Stair=Interna Ĝangala Ligna Ŝtupo
|
Inner Jungle Wood Stair=Interna ĝangala ligna ŝtupo
|
||||||
Outer Jungle Wood Stair=Ekstera Ĝangala Ligna Ŝtupo
|
Outer Jungle Wood Stair=Ekstera ĝangala ligna ŝtupo
|
||||||
Jungle Wood Slab=Ĝangala Ligna Plato
|
Jungle Wood Slab=Ĝangala ligna plato
|
||||||
Pine Wood Stair=Pina Ligna Ŝtupo
|
Pine Wood Stair=Pina ligna ŝtupo
|
||||||
Inner Pine Wood Stair=Interna Pina Ligna Ŝtupo
|
Inner Pine Wood Stair=Interna pina ligna ŝtupo
|
||||||
Outer Pine Wood Stair=Ekstera Pina Ligna Ŝtupo
|
Outer Pine Wood Stair=Ekstera pina ligna ŝtupo
|
||||||
Pine Wood Slab=Pina Ligna Plato
|
Pine Wood Slab=Pina ligna plato
|
||||||
Acacia Wood Stair=Akacia Ligna Ŝtupo
|
Acacia Wood Stair=Akacia ligna ŝtupo
|
||||||
Inner Acacia Wood Stair=Interna Akacia Ligna Ŝtupo
|
Inner Acacia Wood Stair=Interna akacia ligna ŝtupo
|
||||||
Outer Acacia Wood Stair=Ekstera Akacia Ligna Ŝtupo
|
Outer Acacia Wood Stair=Ekstera akacia ligna ŝtupo
|
||||||
Acacia Wood Slab=Akacia Ligna Plato
|
Acacia Wood Slab=Akacia ligna plato
|
||||||
Aspen Wood Stair=Tremola Ligna Ŝtupo
|
Aspen Wood Stair=Tremola ligna ŝtupo
|
||||||
Inner Aspen Wood Stair=Interna Tremola Ligna Ŝtupo
|
Inner Aspen Wood Stair=Interna tremola ligna ŝtupo
|
||||||
Outer Aspen Wood Stair=Ekstera Tremola Ligna Ŝtupo
|
Outer Aspen Wood Stair=Ekstera tremola ligna ŝtupo
|
||||||
Aspen Wood Slab=Tremola Ligna Plato
|
Aspen Wood Slab=Tremola ligna plato
|
||||||
Stone Stair=Ŝtona Ŝtupo
|
Stone Stair=Ŝtona ŝtupo
|
||||||
Inner Stone Stair=Interna Ŝtona Ŝtupo
|
Inner Stone Stair=Interna ŝtona ŝtupo
|
||||||
Outer Stone Stair=Ekstera Ŝtona Ŝtupo
|
Outer Stone Stair=Ekstera ŝtona ŝtupo
|
||||||
Stone Slab=Ŝtona Plato
|
Stone Slab=Ŝtona plato
|
||||||
Cobblestone Stair=Pavimŝtona Ŝtupo
|
Cobblestone Stair=Pavimŝtona ŝtupo
|
||||||
Inner Cobblestone Stair=Interna Pavimŝtona Ŝtupo
|
Inner Cobblestone Stair=Interna pavimŝtona ŝtupo
|
||||||
Outer Cobblestone Stair=Ekstera Pavimŝtona Ŝtupo
|
Outer Cobblestone Stair=Ekstera pavimŝtona ŝtupo
|
||||||
Cobblestone Slab=Pavimŝtona Plato
|
Cobblestone Slab=Pavimŝtona plato
|
||||||
Mossy Cobblestone Stair=Muska Pavimŝtona Ŝtupo
|
Mossy Cobblestone Stair=Muska pavimŝtona ŝtupo
|
||||||
Inner Mossy Cobblestone Stair=Interna Muska Pavimŝtona Ŝtupo
|
Inner Mossy Cobblestone Stair=Interna muska pavimŝtona ŝtupo
|
||||||
Outer Mossy Cobblestone Stair=Ekstera Muska Pavimŝtona Ŝtupo
|
Outer Mossy Cobblestone Stair=Ekstera muska pavimŝtona ŝtupo
|
||||||
Mossy Cobblestone Slab=Muska Pavimŝtona Plato
|
Mossy Cobblestone Slab=Muska pavimŝtona plato
|
||||||
Stone Brick Stair=Ŝtona Brika Ŝtupo
|
Stone Brick Stair=Ŝtona brika ŝtupo
|
||||||
Inner Stone Brick Stair=Interna Ŝtona Brika Ŝtupo
|
Inner Stone Brick Stair=Interna ŝtona brika ŝtupo
|
||||||
Outer Stone Brick Stair=Ekstera Ŝtona Brika Ŝtupo
|
Outer Stone Brick Stair=Ekstera ŝtona brika ŝtupo
|
||||||
Stone Brick Slab=Ŝtona Brika Plato
|
Stone Brick Slab=Ŝtona brika plato
|
||||||
Stone Block Stair=Ŝtona Ŝtipa Ŝtupo
|
Stone Block Stair=Ŝtona ŝtipa ŝtupo
|
||||||
Inner Stone Block Stair=Interna Ŝtona Ŝtipa Ŝtupo
|
Inner Stone Block Stair=Interna ŝtona ŝtipa ŝtupo
|
||||||
Outer Stone Block Stair=Ekstera Ŝtona Ŝtipa Ŝtupo
|
Outer Stone Block Stair=Ekstera ŝtona ŝtipa ŝtupo
|
||||||
Stone Block Slab=Ŝtona Ŝtipa Plato
|
Stone Block Slab=Ŝtona ŝtipa plato
|
||||||
Desert Stone Stair=Dezerta Ŝtona Ŝtupo
|
Desert Stone Stair=Dezerta ŝtona ŝtupo
|
||||||
Inner Desert Stone Stair=Interna Dezerta Ŝtona Ŝtupo
|
Inner Desert Stone Stair=Interna dezerta ŝtona ŝtupo
|
||||||
Outer Desert Stone Stair=Ekstera Dezerta Ŝtona Ŝtupo
|
Outer Desert Stone Stair=Ekstera dezerta ŝtona ŝtupo
|
||||||
Desert Stone Slab=Dezerta Ŝtona Plato
|
Desert Stone Slab=Dezerta ŝtona plato
|
||||||
Desert Cobblestone Stair=Dezerta Pavimŝtona Ŝtupo
|
Desert Cobblestone Stair=Dezerta pavimŝtona ŝtupo
|
||||||
Inner Desert Cobblestone Stair=Interna Dezerta Pavimŝtona Ŝtupo
|
Inner Desert Cobblestone Stair=Interna dezerta pavimŝtona ŝtupo
|
||||||
Outer Desert Cobblestone Stair=Ekstera Dezerta Pavimŝtona Ŝtupo
|
Outer Desert Cobblestone Stair=Ekstera dezerta pavimŝtona ŝtupo
|
||||||
Desert Cobblestone Slab=Dezerta Pavimŝtona Plato
|
Desert Cobblestone Slab=Dezerta pavimŝtona plato
|
||||||
Desert Stone Brick Stair=Dezerta Ŝtona Brika Ŝtupo
|
Desert Stone Brick Stair=Dezerta ŝtona brika ŝtupo
|
||||||
Inner Desert Stone Brick Stair=Interna Dezerta Ŝtona Brika Ŝtupo
|
Inner Desert Stone Brick Stair=Interna dezerta ŝtona brika ŝtupo
|
||||||
Outer Desert Stone Brick Stair=Ekstera Dezerta Ŝtona Brika Ŝtupo
|
Outer Desert Stone Brick Stair=Ekstera dezerta ŝtona brika ŝtupo
|
||||||
Desert Stone Brick Slab=Dezerta Ŝtona Brika Plato
|
Desert Stone Brick Slab=Dezerta ŝtona brika plato
|
||||||
Desert Stone Block Stair=Dezerta Ŝtona Bloko Ŝtupo
|
Desert Stone Block Stair=Dezerta ŝtona bloko ŝtupo
|
||||||
Inner Desert Stone Block Stair=Interna Dezerta Ŝtona Bloko Stupo
|
Inner Desert Stone Block Stair=Interna dezerta ŝtona bloko ŝtupo
|
||||||
Outer Desert Stone Block Stair=Ekstera Dezerta Ŝtona Bloko Ŝtupo
|
Outer Desert Stone Block Stair=Ekstera dezerta ŝtona bloko ŝtupo
|
||||||
Desert Stone Block Slab=Dezerta Ŝtona Bloko Plato
|
Desert Stone Block Slab=Dezerta ŝtona bloko plato
|
||||||
Sandstone Stair=Sablŝtona Ŝtupo
|
Sandstone Stair=Sablŝtona ŝtupo
|
||||||
Inner Sandstone Stair=Interna Ŝablŝtona Ŝtupo
|
Inner Sandstone Stair=Interna ŝablŝtona ŝtupo
|
||||||
Outer Sandstone Stair=Ekstera Ŝablŝtona Ŝtupo
|
Outer Sandstone Stair=Ekstera ŝablŝtona ŝtupo
|
||||||
Sandstone Slab=Ŝablŝtona Plato
|
Sandstone Slab=Ŝablŝtona plato
|
||||||
Sandstone Brick Stair=Ŝablŝtona Brika Ŝtupo
|
Sandstone Brick Stair=Ŝablŝtona brika ŝtupo
|
||||||
Inner Sandstone Brick Stair=Interna Ŝablŝtona Brika Ŝtupo
|
Inner Sandstone Brick Stair=Interna ŝablŝtona brika ŝtupo
|
||||||
Outer Sandstone Brick Stair=Ekstera Ŝablŝtona Brika Ŝtupo
|
Outer Sandstone Brick Stair=Ekstera ŝablŝtona brika ŝtupo
|
||||||
Sandstone Brick Slab=Ŝablŝtona Brika Plato
|
Sandstone Brick Slab=Ŝablŝtona brika plato
|
||||||
Sandstone Block Stair=Ŝablŝtona Ŝtipa Ŝtupo
|
Sandstone Block Stair=Ŝablŝtona ŝtipa ŝtupo
|
||||||
Inner Sandstone Block Stair=Interna Ŝablŝtona Ŝtipa Ŝtupo
|
Inner Sandstone Block Stair=Interna ŝablŝtona ŝtipa ŝtupo
|
||||||
Outer Sandstone Block Stair=Ekstera Ŝablŝtona Ŝtipa Ŝtupo
|
Outer Sandstone Block Stair=Ekstera ŝablŝtona ŝtipa ŝtupo
|
||||||
Sandstone Block Slab=Ŝablŝtona Ŝtipa Plato
|
Sandstone Block Slab=Ŝablŝtona ŝtipa plato
|
||||||
Desert Sandstone Stair=Dezerta Ŝablŝtona Ŝtupo
|
Desert Sandstone Stair=Dezerta ŝablŝtona ŝtupo
|
||||||
Inner Desert Sandstone Stair=Interna Dezerta Ŝablŝtona Ŝtupo
|
Inner Desert Sandstone Stair=Interna dezerta ŝablŝtona ŝtupo
|
||||||
Outer Desert Sandstone Stair=Ekstera Dezerta Ŝablŝtona Ŝtupo
|
Outer Desert Sandstone Stair=Ekstera dezerta ŝablŝtona ŝtupo
|
||||||
Desert Sandstone Slab=Dezerta Ŝablŝtona Plato
|
Desert Sandstone Slab=Dezerta ŝablŝtona plato
|
||||||
Desert Sandstone Brick Stair=Dezerta Ŝablŝtona Brika Ŝtupo
|
Desert Sandstone Brick Stair=Dezerta ŝablŝtona brika ŝtupo
|
||||||
Inner Desert Sandstone Brick Stair=Interna Dezerta Ŝablŝtona Brika Ŝtupo
|
Inner Desert Sandstone Brick Stair=Interna dezerta ŝablŝtona brika ŝtupo
|
||||||
Outer Desert Sandstone Brick Stair=Ekstera Dezerta Ŝablŝtona Brika Ŝtupo
|
Outer Desert Sandstone Brick Stair=Ekstera dezerta ŝablŝtona brika ŝtupo
|
||||||
Desert Sandstone Brick Slab=Dezerta Ŝablŝtona Brika Plato
|
Desert Sandstone Brick Slab=Dezerta ŝablŝtona brika plato
|
||||||
Desert Sandstone Block Stair=Dezerta Ŝablŝtona Ŝtipa Ŝtupo
|
Desert Sandstone Block Stair=Dezerta ŝablŝtona ŝtipa ŝtupo
|
||||||
Inner Desert Sandstone Block Stair=Interna Dezerta Ŝablŝtona Brika Ŝtupo
|
Inner Desert Sandstone Block Stair=Interna dezerta ŝablŝtona brika ŝtupo
|
||||||
Outer Desert Sandstone Block Stair=Ekstera Dezerta Ŝablŝtona Brika Ŝtupo
|
Outer Desert Sandstone Block Stair=Ekstera dezerta ŝablŝtona brika ŝtupo
|
||||||
Desert Sandstone Block Slab=Dezerta Ŝablŝtona Ŝtipa Plato
|
Desert Sandstone Block Slab=Dezerta ŝablŝtona ŝtipa plato
|
||||||
Silver Sandstone Stair=Arĝenta Ŝablŝtona Ŝtupo
|
Silver Sandstone Stair=Arĝenta ŝablŝtona ŝtupo
|
||||||
Inner Silver Sandstone Stair=Interna Arĝenta Ŝablŝtona Ŝtupo
|
Inner Silver Sandstone Stair=Interna arĝenta ŝablŝtona ŝtupo
|
||||||
Outer Silver Sandstone Stair=Ekstera Arĝenta Ŝablŝtona Ŝtupo
|
Outer Silver Sandstone Stair=Ekstera arĝenta ŝablŝtona ŝtupo
|
||||||
Silver Sandstone Slab=Arĝenta Ŝablŝtona Plato
|
Silver Sandstone Slab=Arĝenta ŝablŝtona plato
|
||||||
Silver Sandstone Brick Stair=Arĝenta Ŝablŝtona Brika Ŝtupo
|
Silver Sandstone Brick Stair=Arĝenta ŝablŝtona brika ŝtupo
|
||||||
Inner Silver Sandstone Brick Stair=Interna Arĝenta Ŝablŝtona Brika Ŝtupo
|
Inner Silver Sandstone Brick Stair=Interna arĝenta ŝablŝtona brika ŝtupo
|
||||||
Outer Silver Sandstone Brick Stair=Ekstera Arĝenta Ŝablŝtona Brika Ŝtupo
|
Outer Silver Sandstone Brick Stair=Ekstera arĝenta ŝablŝtona brika ŝtupo
|
||||||
Silver Sandstone Brick Slab=Arĝenta Ŝablŝtona Brika Plato
|
Silver Sandstone Brick Slab=Arĝenta ŝablŝtona brika plato
|
||||||
Silver Sandstone Block Stair=Arĝenta Ŝablŝtona Ŝtipa Ŝtupo
|
Silver Sandstone Block Stair=Arĝenta ŝablŝtona ŝtipa ŝtupo
|
||||||
Inner Silver Sandstone Block Stair=Interna Arĝenta Ŝablŝtona Ŝtipa Ŝtupo
|
Inner Silver Sandstone Block Stair=Interna arĝenta ŝablŝtona ŝtipa ŝtupo
|
||||||
Outer Silver Sandstone Block Stair=Ekstera Arĝenta Ŝablŝtona Ŝtipa Ŝtupo
|
Outer Silver Sandstone Block Stair=Ekstera arĝenta ŝablŝtona ŝtipa ŝtupo
|
||||||
Silver Sandstone Block Slab=Arĝenta Ŝablŝtona Ŝtipa Plato
|
Silver Sandstone Block Slab=Arĝenta ŝablŝtona ŝtipa plato
|
||||||
Obsidian Stair=Obsidiana Ŝtupo
|
Obsidian Stair=Obsidiana ŝtupo
|
||||||
Inner Obsidian Stair=Interna Obsidiana Ŝtupo
|
Inner Obsidian Stair=Interna obsidiana ŝtupo
|
||||||
Outer Obsidian Stair=Ekstera Obsidiana Ŝtupo
|
Outer Obsidian Stair=Ekstera obsidiana ŝtupo
|
||||||
Obsidian Slab=Obsidiana Plato
|
Obsidian Slab=Obsidiana plato
|
||||||
Obsidian Brick Stair=Obsidiana Brika Ŝtupo
|
Obsidian Brick Stair=Obsidiana brika ŝtupo
|
||||||
Inner Obsidian Brick Stair=Interna Obsidiana Brika Ŝtupo
|
Inner Obsidian Brick Stair=Interna obsidiana brika ŝtupo
|
||||||
Outer Obsidian Brick Stair=Ekstera Obsidiana Brika Ŝtupo
|
Outer Obsidian Brick Stair=Ekstera obsidiana brika ŝtupo
|
||||||
Obsidian Brick Slab=Obsidiana Brika Plato
|
Obsidian Brick Slab=Obsidiana brika plato
|
||||||
Obsidian Block Stair=Obsidiana Ŝtipa Ŝtupo
|
Obsidian Block Stair=Obsidiana ŝtipa ŝtupo
|
||||||
Inner Obsidian Block Stair=Interna Obsidiana Ŝtipa Ŝtupo
|
Inner Obsidian Block Stair=Interna obsidiana ŝtipa ŝtupo
|
||||||
Outer Obsidian Block Stair=Ekstera Obsidiana Ŝtipa Ŝtupo
|
Outer Obsidian Block Stair=Ekstera obsidiana ŝtipa ŝtupo
|
||||||
Obsidian Block Slab=Obsidiana Ŝtipa Plato
|
Obsidian Block Slab=Obsidiana ŝtipa plato
|
||||||
Brick Stair=Brika Ŝtupo
|
Brick Stair=Brika ŝtupo
|
||||||
Inner Brick Stair=Interna Brika Ŝtupo
|
Inner Brick Stair=Interna brika ŝtupo
|
||||||
Outer Brick Stair=Ekstera Brika Ŝtupo
|
Outer Brick Stair=Ekstera brika ŝtupo
|
||||||
Brick Slab=Brika Plato
|
Brick Slab=Brika plato
|
||||||
Steel Block Stair=Ŝtala Ŝtipa Ŝtupo
|
Steel Block Stair=Ŝtala ŝtipa ŝtupo
|
||||||
Inner Steel Block Stair=Interna Ŝtala Ŝtipa Ŝtupo
|
Inner Steel Block Stair=Interna ŝtala ŝtipa ŝtupo
|
||||||
Outer Steel Block Stair=Ekstera Ŝtala Ŝtipa Ŝtupo
|
Outer Steel Block Stair=Ekstera ŝtala ŝtipa ŝtupo
|
||||||
Steel Block Slab=Ŝtala Ŝtipa Plato
|
Steel Block Slab=Ŝtala ŝtipa plato
|
||||||
Tin Block Stair=Stana Ŝtipa Ŝtupo
|
Tin Block Stair=Stana ŝtipa ŝtupo
|
||||||
Inner Tin Block Stair=Interna Stana Ŝtipa Ŝtupo
|
Inner Tin Block Stair=Interna stana ŝtipa ŝtupo
|
||||||
Outer Tin Block Stair=Ekstera Stana Ŝtipa Ŝtupo
|
Outer Tin Block Stair=Ekstera stana ŝtipa ŝtupo
|
||||||
Tin Block Slab=Stana Ŝtipa Plato
|
Tin Block Slab=Stana ŝtipa plato
|
||||||
Copper Block Stair=Kupra Ŝtipa Ŝtupo
|
Copper Block Stair=Kupra ŝtipa ŝtupo
|
||||||
Inner Copper Block Stair=Interna Kupra Ŝtipa Ŝtupo
|
Inner Copper Block Stair=Interna kupra ŝtipa ŝtupo
|
||||||
Outer Copper Block Stair=Ekstera Kupra Ŝtipa Ŝtupo
|
Outer Copper Block Stair=Ekstera kupra ŝtipa ŝtupo
|
||||||
Copper Block Slab=Kupra Ŝtipa Plato
|
Copper Block Slab=Kupra ŝtipa plato
|
||||||
Bronze Block Stair=Bronza Ŝtipa Ŝtupo
|
Bronze Block Stair=Bronza ŝtipa ŝtupo
|
||||||
Inner Bronze Block Stair=Interna Bronza Ŝtipa Ŝtupo
|
Inner Bronze Block Stair=Interna bronza ŝtipa ŝtupo
|
||||||
Outer Bronze Block Stair=Ekstera Bronza Ŝtipa Ŝtupo
|
Outer Bronze Block Stair=Ekstera bronza ŝtipa ŝtupo
|
||||||
Bronze Block Slab=Bronza Ŝtipa Plato
|
Bronze Block Slab=Bronza ŝtipa plato
|
||||||
Gold Block Stair=Ora Ŝtipa Ŝtupo
|
Gold Block Stair=Ora ŝtipa ŝtupo
|
||||||
Inner Gold Block Stair=Interna Ora Ŝtipa Ŝtupo
|
Inner Gold Block Stair=Interna ora ŝtipa ŝtupo
|
||||||
Outer Gold Block Stair=Ekstera Ora Ŝtipa Ŝtupo
|
Outer Gold Block Stair=Ekstera ora ŝtipa ŝtupo
|
||||||
Gold Block Slab=Ora Ŝtipa Plato
|
Gold Block Slab=Ora ŝtipa plato
|
||||||
Ice Stair=Glacia Ŝtupo
|
Ice Stair=Glacia ŝtupo
|
||||||
Inner Ice Stair=Interna Glacia Ŝtupo
|
Inner Ice Stair=Interna glacia ŝtupo
|
||||||
Outer Ice Stair=Ekstera Glacia Ŝtupo
|
Outer Ice Stair=Ekstera glacia ŝtupo
|
||||||
Ice Slab=Glacia Plato
|
Ice Slab=Glacia plato
|
||||||
Snow Block Stair=Neĝa Ŝtipa Ŝtupo
|
Snow Block Stair=Neĝa ŝtipa ŝtupo
|
||||||
Inner Snow Block Stair=Interna Neĝa Ŝtipa Ŝtupo
|
Inner Snow Block Stair=Interna neĝa ŝtipa ŝtupo
|
||||||
Outer Snow Block Stair=Ekstera Neĝa Ŝtipa Ŝtupo
|
Outer Snow Block Stair=Ekstera neĝa ŝtipa ŝtupo
|
||||||
Snow Block Slab=Neĝa Ŝtipa Plato
|
Snow Block Slab=Neĝa ŝtipa plato
|
||||||
|
|
|
@ -1,145 +1,145 @@
|
||||||
# textdomain: stairs
|
# textdomain: stairs
|
||||||
Glass Stair=Стеклянная Ступень
|
Glass Stair=Стеклянные ступени
|
||||||
Glass Slab=Стеклянная Плита
|
Glass Slab=Стеклянная плита
|
||||||
Inner Glass Stair=Угловая Стеклянная Ступень (Внутренний Угол)
|
Inner Glass Stair=Внутренние стеклянные ступени
|
||||||
Outer Glass Stair=Угловая Стеклянная Ступень (Внешний Угол)
|
Outer Glass Stair=Внешние стеклянные ступени
|
||||||
Obsidian Glass Stair=Стеклянная Ступень Из Обсидиана
|
Obsidian Glass Stair=Ступени из обсидианового стекла
|
||||||
Obsidian Glass Slab=Стеклянная Плита Из Обсидиана
|
Obsidian Glass Slab=Плита из обсидианового стекла
|
||||||
Inner Obsidian Glass Stair=Угловая Стеклянная Ступень Из Обсидиана (Внутренний Угол)
|
Inner Obsidian Glass Stair=Внутренние ступени из обсидианового стекла
|
||||||
Outer Obsidian Glass Stair=Угловая Стеклянная Ступень Из Обсидиана (Внешний Угол)
|
Outer Obsidian Glass Stair=Внешние ступени из обсидианового стекла
|
||||||
Wooden Stair=Яблоневая Деревянная Ступень
|
Wooden Stair=Деревянные ступени
|
||||||
Inner Wooden Stair=Угловая Яблоневая Деревянная Ступень (Внутренний Угол)
|
Inner Wooden Stair=Внутренние деревянные ступени
|
||||||
Outer Wooden Stair=Угловая Яблоневая Деревянная Ступень (Внешний Угол)
|
Outer Wooden Stair=Внешние деревянные ступени
|
||||||
Wooden Slab=Яблоневая Деревянная Плита
|
Wooden Slab=Деревянная плита
|
||||||
Jungle Wood Stair=Тропическая Деревянная Ступень
|
Jungle Wood Stair=Ступени из тропического дерева
|
||||||
Inner Jungle Wood Stair=Угловая Тропическая Деревянная Ступень (Внутренний Угол)
|
Inner Jungle Wood Stair=Внутренние ступени из тропического дерева
|
||||||
Outer Jungle Wood Stair=Угловая Тропическая Деревянная Ступень (Внешний Угол)
|
Outer Jungle Wood Stair=Внешние ступени из тропического дерева
|
||||||
Jungle Wood Slab=Тропическая Деревянная Плита
|
Jungle Wood Slab=Плита из тропического дерева
|
||||||
Pine Wood Stair=Сосновая Деревянная Ступень
|
Pine Wood Stair=Сосновые ступени
|
||||||
Inner Pine Wood Stair=Угловая Сосновая Деревянная Ступень (Внутренний Угол)
|
Inner Pine Wood Stair=Внутренние сосновые ступени
|
||||||
Outer Pine Wood Stair=Угловая Сосновая Деревянная Ступень (Внешний Угол)
|
Outer Pine Wood Stair=Внешние сосновые ступени
|
||||||
Pine Wood Slab=Сосновая Деревянная Плита
|
Pine Wood Slab=Сосновая плита
|
||||||
Acacia Wood Stair=Деревянная Ступень Из Акации
|
Acacia Wood Stair=Акациевые ступени
|
||||||
Inner Acacia Wood Stair=Угловая Деревянная Ступень Из Акации (Внутренний Угол)
|
Inner Acacia Wood Stair=Внутренние акациевые ступени
|
||||||
Outer Acacia Wood Stair=Угловая Деревянная Ступень Из Акации (Внешний Угол)
|
Outer Acacia Wood Stair=Внешние акациевые ступени
|
||||||
Acacia Wood Slab=Деревянная Плита Из Акации
|
Acacia Wood Slab=Акациевая плита
|
||||||
Aspen Wood Stair=Осиновая Деревянная Ступень
|
Aspen Wood Stair=Осиновые ступени
|
||||||
Inner Aspen Wood Stair=Угловая Осиновая Деревянная Ступень (Внутренний Угол)
|
Inner Aspen Wood Stair=Внутренние осиновые ступени
|
||||||
Outer Aspen Wood Stair=Угловая осиновая Деревянная Ступень (Внешний Угол)
|
Outer Aspen Wood Stair=Внешние осиновые ступени
|
||||||
Aspen Wood Slab=Осиновая Деревянная Плита
|
Aspen Wood Slab=Осиновая плита
|
||||||
Stone Stair=Каменная Ступень
|
Stone Stair=Каменные ступени
|
||||||
Inner Stone Stair=Угловая Каменная Ступень (Внутренний Угол)
|
Inner Stone Stair=Внутренние каменные ступени
|
||||||
Outer Stone Stair=Угловая Каменная Ступень (Внешний Угол)
|
Outer Stone Stair=Внешние каменные ступени
|
||||||
Stone Slab=Каменная Плита
|
Stone Slab=Каменная плита
|
||||||
Cobblestone Stair=Булыжниковая Ступень
|
Cobblestone Stair=Булыжниковые ступени
|
||||||
Inner Cobblestone Stair=Угловая Булыжниковая Ступень (Внутренний Угол)
|
Inner Cobblestone Stair=Внутренние булыжниковые ступени
|
||||||
Outer Cobblestone Stair=Угловая Булыжниковая Ступень (Внешний Угол)
|
Outer Cobblestone Stair=Внешние булыжниковые ступени
|
||||||
Cobblestone Slab=Булыжниковая Плита
|
Cobblestone Slab=Булыжниковая плита
|
||||||
Mossy Cobblestone Stair=Мшистая Булыжниковая Ступень
|
Mossy Cobblestone Stair=Ступени из замшелого булыжника
|
||||||
Inner Mossy Cobblestone Stair=Угловая Мшистая Булыжниковая Ступень (Внутренний Угол)
|
Inner Mossy Cobblestone Stair=Внутренние ступени из замшелого булыжника
|
||||||
Outer Mossy Cobblestone Stair=Угловая Мшистая Булыжниковая Ступень (Внешний Угол)
|
Outer Mossy Cobblestone Stair=Внешние ступени из замшелого булыжника
|
||||||
Mossy Cobblestone Slab=Мшистая Булыжниковая Плита
|
Mossy Cobblestone Slab=Плита из замшелого булыжника
|
||||||
Stone Brick Stair=Cтупень Из Каменных Кирпичей
|
Stone Brick Stair=Cтупени из каменных кирпичей
|
||||||
Inner Stone Brick Stair=Угловая Ступень Из Каменных Кирпичей (Внутренний Угол)
|
Inner Stone Brick Stair=Внутренние ступени из каменных кирпичей
|
||||||
Outer Stone Brick Stair=Угловая Ступень Из Каменных Кирпичей (Внешний Угол)
|
Outer Stone Brick Stair=Внешние ступени из каменных кирпичей
|
||||||
Stone Brick Slab=Плита Из Каменных Кирпичей
|
Stone Brick Slab=Плита из каменных кирпичей
|
||||||
Stone Block Stair=Ступень Из Каменного Блока
|
Stone Block Stair=Ступени из камня
|
||||||
Inner Stone Block Stair=Угловая Ступень Из Каменного Блока (Внутренний Угол)
|
Inner Stone Block Stair=Внутренние ступени из камня
|
||||||
Outer Stone Block Stair=Угловая Ступень Из Каменного Блока (Внешний Угол)
|
Outer Stone Block Stair=Внешние ступени из камня
|
||||||
Stone Block Slab=Плита Из Каменного Блока
|
Stone Block Slab=Плита из камня
|
||||||
Desert Stone Stair=Ступень Из Пустынного Камня
|
Desert Stone Stair=Ступени из пустынного камня
|
||||||
Inner Desert Stone Stair=Угловая Ступень Из Пустынного Камня (Внутренний Угол)
|
Inner Desert Stone Stair=Внутренние ступени из пустынного камня
|
||||||
Outer Desert Stone Stair=Угловая Ступень Из Пустынного Камня (Внешний Угол)
|
Outer Desert Stone Stair=Внешние ступени из пустынного камня
|
||||||
Desert Stone Slab=Плита Из Пустынного Камня
|
Desert Stone Slab=Плита из пустынного камня
|
||||||
Desert Cobblestone Stair=Ступень Из Пустынного Булыжника
|
Desert Cobblestone Stair=Ступени из пустынного булыжника
|
||||||
Inner Desert Cobblestone Stair=Угловая Ступень Из Пустынного Булыжника (Внутренний Угол)
|
Inner Desert Cobblestone Stair=Внутренние ступени из пустынного булыжника
|
||||||
Outer Desert Cobblestone Stair=Угловая Ступень Из Пустынного Булыжника (Внешний Угол)
|
Outer Desert Cobblestone Stair=Внешние ступени из пустынного булыжника
|
||||||
Desert Cobblestone Slab=Плита Из Пустынного Камня
|
Desert Cobblestone Slab=Плита из пустынного булыжника
|
||||||
Desert Stone Brick Stair=Ступень Из Кирпичей Пустынного Камня
|
Desert Stone Brick Stair=Ступени из пустынных каменных кирпичей
|
||||||
Inner Desert Stone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Камня (Внутренний Угол)
|
Inner Desert Stone Brick Stair=Внутренние ступени из пустынных каменных кирпичей
|
||||||
Outer Desert Stone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Камня (Внешний Угол)
|
Outer Desert Stone Brick Stair=Внешние ступени из пустынных каменных кирпичей
|
||||||
Desert Stone Brick Slab=Плита Из Кирпичей Пустынного Камня
|
Desert Stone Brick Slab=Плита из пустынных каменных кирпичей
|
||||||
Desert Stone Block Stair=Ступень Из Пустынного Каменного Блока
|
Desert Stone Block Stair=Ступени из пустынного каменного блока
|
||||||
Inner Desert Stone Block Stair=Угловая Ступень Из Пустынного Каменного Блока (Внутренний Угол)
|
Inner Desert Stone Block Stair=Внутренние ступени из пустынного каменного блока
|
||||||
Outer Desert Stone Block Stair=Угловая Ступень Из Пустынного Каменного Блока (Внешний Угол)
|
Outer Desert Stone Block Stair=Внешние ступени из пустынного каменного блока
|
||||||
Desert Stone Block Slab=Плита Из Пустынного Каменного Блока
|
Desert Stone Block Slab=Плита из пустынного каменного блока
|
||||||
Sandstone Stair=Песчаниковая Ступень
|
Sandstone Stair=Песчаниковые ступени
|
||||||
Inner Sandstone Stair=Угловая Песчаниковая Ступень (Внутренний Угол)
|
Inner Sandstone Stair=Внутренние песчаниковые ступени
|
||||||
Outer Sandstone Stair=Угловая Песчаниковая Ступень (Внешний Угол)
|
Outer Sandstone Stair=Внешние песчаниковые ступени
|
||||||
Sandstone Slab=Песчаниковая Плита
|
Sandstone Slab=Песчаниковая плита
|
||||||
Sandstone Brick Stair=Ступень Из Песчаниковых Кирпичей
|
Sandstone Brick Stair=Ступени из песчаниковых кирпичей
|
||||||
Inner Sandstone Brick Stair=Угловая Ступень Из Песчаниковых Кирпичей (Внутренний Угол)
|
Inner Sandstone Brick Stair=Внутренние ступени из песчаниковых кирпичей
|
||||||
Outer Sandstone Brick Stair=Угловая Ступень Из Песчаниковых Кирпичей (Внешний Угол)
|
Outer Sandstone Brick Stair=Внешние ступени из песчаниковых кирпичей
|
||||||
Sandstone Brick Slab=Плита Из Песчаниковых Кирпичей
|
Sandstone Brick Slab=Плита из песчаниковых кирпичей
|
||||||
Sandstone Block Stair=Ступень Из Песчаникового Блока
|
Sandstone Block Stair=Ступени из песчаникового блока
|
||||||
Inner Sandstone Block Stair=Угловая Ступень Из Песчаникового Блока (Внутренний Угол)
|
Inner Sandstone Block Stair=Внутренние ступени из песчаникового блока
|
||||||
Outer Sandstone Block Stair=Угловая Ступень Из Песчаникового Блока (Внешний Угол)
|
Outer Sandstone Block Stair=Внешние ступени из песчаникового блока
|
||||||
Sandstone Block Slab=Плита Из Песчаникового Блока
|
Sandstone Block Slab=Плита из песчаникового блока
|
||||||
Desert Sandstone Stair=Ступень Из Пустынного Песчаника
|
Desert Sandstone Stair=Ступени из пустынного песчаника
|
||||||
Inner Desert Sandstone Stair=Угловая Ступень Из Пустынного Песчаника (Внутренний Угол)
|
Inner Desert Sandstone Stair=Внутренние ступени из пустынного песчаника
|
||||||
Outer Desert Sandstone Stair=Угловая Ступень Из Пустынного Песчаника (Внешний Угол)
|
Outer Desert Sandstone Stair=Внешние ступени из пустынного песчаника
|
||||||
Desert Sandstone Slab=Плита Из Пустынного Песчаника
|
Desert Sandstone Slab=Плита из пустынного песчаника
|
||||||
Desert Sandstone Brick Stair=Ступень Из Кирпичей Пустынного Песчаника
|
Desert Sandstone Brick Stair=Ступени из пустынных песчаниковых кирпичей
|
||||||
Inner Desert Sandstone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Песчаника (Внутренний Угол)
|
Inner Desert Sandstone Brick Stair=Внутренние ступени из пустынных песчаниковых кирпичей
|
||||||
Outer Desert Sandstone Brick Stair=Угловая Ступень Из Кирпичей Пустынного Песчаника (Внешний Угол)
|
Outer Desert Sandstone Brick Stair=Внешние ступени из пустынных песчаниковых кирпичей
|
||||||
Desert Sandstone Brick Slab=Плита Из Кирпичей Пустынного Песчаника
|
Desert Sandstone Brick Slab=Плита из пустынных песчаниковых кирпичей
|
||||||
Desert Sandstone Block Stair=Ступень Из Пустынного Песчаникового Блока
|
Desert Sandstone Block Stair=Ступени из пустынного песчаникового блока
|
||||||
Inner Desert Sandstone Block Stair=Угловая Ступень Из Пустынного Песчаникового Блока (Внутренний Угол)
|
Inner Desert Sandstone Block Stair=Внутренние ступени из пустынного песчаникового блока
|
||||||
Outer Desert Sandstone Block Stair=Угловая Ступень Из Пустынного Песчаникового Блока (Внешний Угол)
|
Outer Desert Sandstone Block Stair=Внешние ступени из пустынного песчаникового блока
|
||||||
Desert Sandstone Block Slab=Плита Из Пустынного Песчаникового Блока
|
Desert Sandstone Block Slab=Плита из пустынного песчаникового блока
|
||||||
Silver Sandstone Stair=Ступень Из Серебрянного Песчаника
|
Silver Sandstone Stair=Ступени из серебристого песчаника
|
||||||
Inner Silver Sandstone Stair=Угловая Ступень Из Серебряного Песчаника (Внутренний Угол)
|
Inner Silver Sandstone Stair=Внутренние ступени из серебристого песчаника
|
||||||
Outer Silver Sandstone Stair=Угловая Ступень Из Серебряного Песчаника (Внешний Угол)
|
Outer Silver Sandstone Stair=Внешние ступени из серебристого песчаника
|
||||||
Silver Sandstone Slab=Плита Из Серебряного Песчаника
|
Silver Sandstone Slab=Плита из серебристого песчаника
|
||||||
Silver Sandstone Brick Stair=Ступень Из Кирпичей Серебряного Песчаника
|
Silver Sandstone Brick Stair=Ступени из серебристых песчаниковых кирпичей
|
||||||
Inner Silver Sandstone Brick Stair=Угловая Ступень Из Кирпичей Серебряного Песчаника (Внутренний Угол)
|
Inner Silver Sandstone Brick Stair=Внутренние ступени из серебристых песчаниковых кирпичей
|
||||||
Outer Silver Sandstone Brick Stair=Угловая Ступень Из Кирпичей Серебряного Песчаника (Внешний Угол)
|
Outer Silver Sandstone Brick Stair=Внешние ступени из серебристых песчаниковых кирпичей
|
||||||
Silver Sandstone Brick Slab=Плита Из Кирпичей Серебряного Песчаника
|
Silver Sandstone Brick Slab=Плита из серебристых песчаниковых кирпичей
|
||||||
Silver Sandstone Block Stair=Ступень Из Серебряного Песчаникового Блока
|
Silver Sandstone Block Stair=Ступени из серебристого песчаникового блока
|
||||||
Inner Silver Sandstone Block Stair=Угловая Ступень Из Серебряного Песчаникового Блока (Внутренний Угол)
|
Inner Silver Sandstone Block Stair=Внутренние ступени из серебристого песчаникового блока
|
||||||
Outer Silver Sandstone Block Stair=Угловая Ступень Из Серебряного Песчаникового Блока (Внешний Угол)
|
Outer Silver Sandstone Block Stair=Внешние ступени из серебристого песчаникового блока
|
||||||
Silver Sandstone Block Slab=Плита Из Серебряного Песчаникового Блока
|
Silver Sandstone Block Slab=Плита из серебристого песчаникового блока
|
||||||
Obsidian Stair=Обсидиановая Ступень
|
Obsidian Stair=Обсидиановые ступени
|
||||||
Inner Obsidian Stair=Угловая Обсидиановая Ступень (Внутренний Угол)
|
Inner Obsidian Stair=Внутренние обсидиановые ступени
|
||||||
Outer Obsidian Stair=Угловая Обсидиановая Ступень (Внешний Угол)
|
Outer Obsidian Stair=Внешние обсидиановые ступени
|
||||||
Obsidian Slab=Обсидиановая Плита
|
Obsidian Slab=Обсидиановая плита
|
||||||
Obsidian Brick Stair=Ступень Из Обсидиановых Кирпичей
|
Obsidian Brick Stair=Ступени из обсидиановых кирпичей
|
||||||
Inner Obsidian Brick Stair=Угловая Ступень Из Обсидиановых Кирпичей (Внутренний Угол)
|
Inner Obsidian Brick Stair=Внутренние ступени из обсидиановых кирпичей
|
||||||
Outer Obsidian Brick Stair=Угловая Ступень Из Обсидиановых Кирпичей (Внешний Угол)
|
Outer Obsidian Brick Stair=Внешние ступени из обсидиановых кирпичей
|
||||||
Obsidian Brick Slab=Плита Из Обсидиановых Кирпичей
|
Obsidian Brick Slab=Плита из обсидиановых кирпичей
|
||||||
Obsidian Block Stair=Ступень Из Обсидианового Блока
|
Obsidian Block Stair=Ступени из обсидианового блока
|
||||||
Inner Obsidian Block Stair=Угловая Ступень Из Обсидианового Блока (Внутренний Угол)
|
Inner Obsidian Block Stair=Внутренние ступени из обсидианового блока
|
||||||
Outer Obsidian Block Stair=Угловая Ступень Из Обсидианового Блока (Внешний Угол)
|
Outer Obsidian Block Stair=Внешние ступени из обсидианового блока
|
||||||
Obsidian Block Slab=Плита Из Обсидианового Блока
|
Obsidian Block Slab=Плита из обсидианового блока
|
||||||
Brick Stair=Ступень Из Кирпичей
|
Brick Stair=Кирпичные ступени
|
||||||
Inner Brick Stair=Угловая Ступень Из Кирпичей (Внутренний Угол)
|
Inner Brick Stair=Внутренние кирпичные ступени
|
||||||
Outer Brick Stair=Угловая Ступень Из Кирпичей (Внешний Угол)
|
Outer Brick Stair=Внешние кирпичные ступени
|
||||||
Brick Slab=Плита Из Кирпичей
|
Brick Slab=Кирпичная плита
|
||||||
Steel Block Stair=Ступень Из Стального Блока
|
Steel Block Stair=Стальные ступени
|
||||||
Inner Steel Block Stair=Угловая Ступень Из Стального Блока (Внутренний Угол)
|
Inner Steel Block Stair=Внутренние стальные ступени
|
||||||
Outer Steel Block Stair=Угловая Ступень Из Стального Блока (Внешний Угол)
|
Outer Steel Block Stair=Внешние стальные ступени
|
||||||
Steel Block Slab=Плита Из Стального Блока
|
Steel Block Slab=Стальная плита
|
||||||
Tin Block Stair=Ступень Из Оловянного Блока
|
Tin Block Stair=Оловянные ступени
|
||||||
Inner Tin Block Stair=Угловая Ступень Из Оловянного Блока (Внутренний Угол)
|
Inner Tin Block Stair=Внутренние оловянные ступени
|
||||||
Outer Tin Block Stair=Угловая Ступень Из Оловянного Блока (Внешний Угол)
|
Outer Tin Block Stair=Внешние оловянные ступени
|
||||||
Tin Block Slab=Плита Из Оловянного Блока
|
Tin Block Slab=Оловянная плита
|
||||||
Copper Block Stair=Ступень Из Медного Блока
|
Copper Block Stair=Медные ступени
|
||||||
Inner Copper Block Stair=Угловая Ступень Из Медного Блока (Внутренний Угол)
|
Inner Copper Block Stair=Внутренние медные ступени
|
||||||
Outer Copper Block Stair=Угловая Ступень Из Медного Блока (Внешний Угол)
|
Outer Copper Block Stair=Внешние медные ступени
|
||||||
Copper Block Slab=Плита Из Медного Блока
|
Copper Block Slab=Медная плита
|
||||||
Bronze Block Stair=Ступень Из Бронзового Блока
|
Bronze Block Stair=Бронзовые ступени
|
||||||
Inner Bronze Block Stair=Угловая Ступень Из Бронзового Блока (Внутренний Угол)
|
Inner Bronze Block Stair=Внутренние бронзовые ступени
|
||||||
Outer Bronze Block Stair=Угловая Ступень Из Бронзового Блока (Внешний Угол)
|
Outer Bronze Block Stair=Внешние бронзовые ступени
|
||||||
Bronze Block Slab=Плита Из Бронзового Блока
|
Bronze Block Slab=Бронзовая плита
|
||||||
Gold Block Stair=Ступень Из Золотого Блока
|
Gold Block Stair=Золотые ступени
|
||||||
Inner Gold Block Stair=Угловая Ступень Из Золотого Блока (Внутренний Угол)
|
Inner Gold Block Stair=Внутренние золотые ступени
|
||||||
Outer Gold Block Stair=Угловая Ступень Из Золотого Блока (Внешний Угол)
|
Outer Gold Block Stair=Внешние золотые ступени
|
||||||
Gold Block Slab=Плита Из Золотого Блока
|
Gold Block Slab=Золотая плита
|
||||||
Ice Stair=Ледяная Ступень
|
Ice Stair=Ледяные ступени
|
||||||
Inner Ice Stair=Угловая Ледяная Ступень (Внутренний Угол)
|
Inner Ice Stair=Внутренние ледяные ступени
|
||||||
Outer Ice Stair=Угловая Ледяная Ступень (Внешний Угол)
|
Outer Ice Stair=Внешние ледяные ступени
|
||||||
Ice Slab=Ледяная Плита
|
Ice Slab=Ледяная плита
|
||||||
Snow Block Stair=Ступень Из Снежного Блока
|
Snow Block Stair=Снежные ступени
|
||||||
Inner Snow Block Stair=Угловая Ступень Из Снежного Блока (Внутренний Угол)
|
Inner Snow Block Stair=Внутренние снежные ступени
|
||||||
Outer Snow Block Stair=Угловая Ступень Из Снежного Блока (Внешний Угол)
|
Outer Snow Block Stair=Внешние снежные ступени
|
||||||
Snow Block Slab=Плита Из Снежного Блока
|
Snow Block Slab=Снежная плита
|
||||||
|
|
|
@ -159,6 +159,7 @@ local function entity_physics(pos, radius, drops)
|
||||||
local objs = minetest.get_objects_inside_radius(pos, radius)
|
local objs = minetest.get_objects_inside_radius(pos, radius)
|
||||||
for _, obj in pairs(objs) do
|
for _, obj in pairs(objs) do
|
||||||
local obj_pos = obj:get_pos()
|
local obj_pos = obj:get_pos()
|
||||||
|
if obj_pos then
|
||||||
local dist = math.max(1, vector.distance(pos, obj_pos))
|
local dist = math.max(1, vector.distance(pos, obj_pos))
|
||||||
|
|
||||||
local damage = (4 / dist) * radius
|
local damage = (4 / dist) * radius
|
||||||
|
@ -201,6 +202,7 @@ local function entity_physics(pos, radius, drops)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function add_effects(pos, radius, drops)
|
local function add_effects(pos, radius, drops)
|
||||||
|
@ -625,7 +627,7 @@ function tnt.register_tnt(def)
|
||||||
groups = {dig_immediate = 2, mesecon = 2, tnt = 1, flammable = 5},
|
groups = {dig_immediate = 2, mesecon = 2, tnt = 1, flammable = 5},
|
||||||
sounds = default.node_sound_wood_defaults(),
|
sounds = default.node_sound_wood_defaults(),
|
||||||
after_place_node = function(pos, placer)
|
after_place_node = function(pos, placer)
|
||||||
if placer:is_player() then
|
if placer and placer:is_player() then
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_string("owner", placer:get_player_name())
|
meta:set_string("owner", placer:get_player_name())
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: tnt
|
# textdomain: tnt
|
||||||
Gun Powder=Pulvo
|
Gun Powder=Pulvo
|
||||||
TNT Stick=Dinamita Bastono
|
TNT Stick=Dinamita bastono
|
||||||
TNT=Dinamito
|
TNT=Dinamito
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: tnt
|
# textdomain: tnt
|
||||||
Gun Powder=Порох
|
Gun Powder=Порох
|
||||||
TNT Stick=Тротиловая Палка
|
TNT Stick=Динамитная шашка
|
||||||
TNT=Тротил
|
TNT=Динамит
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# textdomain: vessels
|
# textdomain: vessels
|
||||||
Empty Vessels Shelf=Malplena Vaza Plataĵo
|
Empty Vessels Shelf=Malplena vaza plataĵo
|
||||||
Vessels Shelf (@1 items)=Vaza Plataĵo (@1 objektoj)
|
Vessels Shelf (@1 items)=Vaza plataĵo (@1 objektoj)
|
||||||
Vessels Shelf=Vaza Plataĵo
|
Vessels Shelf=Vaza plataĵo
|
||||||
Empty Glass Bottle=Malplena Vitra Botelo
|
Empty Glass Bottle=Malplena vitra botelo
|
||||||
Empty Drinking Glass=Malplena Glaso
|
Empty Drinking Glass=Malplena glaso
|
||||||
Empty Heavy Steel Bottle=Malplena Peza Ŝtala Botelo
|
Empty Heavy Steel Bottle=Malplena peza ŝtala botelo
|
||||||
Glass Fragments=Vitraj Eroj
|
Glass Fragments=Vitraj eroj
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
# textdomain: vessels
|
# textdomain: vessels
|
||||||
Empty Vessels Shelf=Полка с Пустыми Сосудами
|
Empty Vessels Shelf=Полка с пустыми сосудами
|
||||||
Vessels Shelf (@1 items)=Полка с Сосудами (@1 предметы)
|
Vessels Shelf (@1 items)=Полка с сосудами (@1 штук)
|
||||||
Vessels Shelf=Полка с Сосудами
|
Vessels Shelf=Полка с сосудами
|
||||||
Empty Glass Bottle=Пустая Стеклянная Бутылка
|
Empty Glass Bottle=Пустая стеклянная бутылка
|
||||||
Empty Drinking Glass=Пустой Стакан
|
Empty Drinking Glass=Пустой стакан
|
||||||
Empty Heavy Steel Bottle=Пустая Стальная Бутылка
|
Empty Heavy Steel Bottle=Пустая стальная бутылка
|
||||||
Glass Fragments=Стеклянные Осколки
|
Glass Fragments=Стеклянные осколки
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: walls
|
# textdomain: walls
|
||||||
Cobblestone Wall=Pavimŝtona Muro
|
Cobblestone Wall=Pavimŝtona muro
|
||||||
Mossy Cobblestone Wall=Muska Pavimŝtona Muro
|
Mossy Cobblestone Wall=Muska pavimŝtona muro
|
||||||
Desert Cobblestone Wall=Dezerta Pavimŝtona Muro
|
Desert Cobblestone Wall=Dezerta pavimŝtona muro
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# textdomain: walls
|
# textdomain: walls
|
||||||
Cobblestone Wall=Булыжниковая Ограда
|
Cobblestone Wall=Стена из булыжника
|
||||||
Mossy Cobblestone Wall=Мшистая Булыжниковая Ограда
|
Mossy Cobblestone Wall=Стена из замшелого булыжника
|
||||||
Desert Cobblestone Wall=Ограда Из Пустынного Булыжника
|
Desert Cobblestone Wall=Стена из пустынного булыжника
|
||||||
|
|
32
mods/weather/api.lua
Normal file
32
mods/weather/api.lua
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
local CYCLE = 8 -- Time period of cyclic clouds update in seconds
|
||||||
|
|
||||||
|
weather = {}
|
||||||
|
|
||||||
|
-- default implementation is empty
|
||||||
|
function weather.get(player)
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
|
||||||
|
local function do_update()
|
||||||
|
for _, player in ipairs(minetest.get_connected_players()) do
|
||||||
|
local params = weather.get(player)
|
||||||
|
assert(params ~= nil, "weather.get() must not return nil")
|
||||||
|
if params.clouds then
|
||||||
|
player:set_clouds(params.clouds)
|
||||||
|
end
|
||||||
|
if params.lighting then
|
||||||
|
player:set_lighting(params.lighting)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function cyclic_update()
|
||||||
|
do_update()
|
||||||
|
minetest.after(CYCLE, cyclic_update)
|
||||||
|
end
|
||||||
|
minetest.after(0, cyclic_update)
|
||||||
|
|
||||||
|
-- Update on player join to instantly alter clouds from the default
|
||||||
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
do_update()
|
||||||
|
end)
|
|
@ -1,10 +1,13 @@
|
||||||
|
-- Always load the API
|
||||||
|
dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/api.lua")
|
||||||
|
|
||||||
-- Disable by mapgen or setting
|
-- Disable by mapgen or setting
|
||||||
|
|
||||||
local mg_name = minetest.get_mapgen_setting("mg_name")
|
|
||||||
if minetest.settings:get_bool("enable_weather") == false then
|
if minetest.settings:get_bool("enable_weather") == false then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local mg_name = minetest.get_mapgen_setting("mg_name")
|
||||||
if mg_name == "v6" or mg_name == "singlenode" then
|
if mg_name == "v6" or mg_name == "singlenode" then
|
||||||
-- set a default shadow intensity for mgv6 and singlenode
|
-- set a default shadow intensity for mgv6 and singlenode
|
||||||
minetest.register_on_joinplayer(function(player)
|
minetest.register_on_joinplayer(function(player)
|
||||||
|
@ -14,10 +17,9 @@ if mg_name == "v6" or mg_name == "singlenode" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Parameters
|
-- Default implementation for noise based cloud appearance
|
||||||
|
|
||||||
local TSCALE = 600 -- Time scale of noise variation in seconds
|
local TSCALE = 600 -- Time scale of noise variation in seconds
|
||||||
local CYCLE = 8 -- Time period of cyclic clouds update in seconds
|
|
||||||
|
|
||||||
local np_density = {
|
local np_density = {
|
||||||
offset = 0.5,
|
offset = 0.5,
|
||||||
|
@ -59,30 +61,30 @@ local np_speedz = {
|
||||||
lacunarity = 2,
|
lacunarity = 2,
|
||||||
}
|
}
|
||||||
|
|
||||||
-- End parameters
|
|
||||||
|
|
||||||
|
|
||||||
-- Initialise noise objects to nil
|
|
||||||
|
|
||||||
local nobj_density = nil
|
local nobj_density = nil
|
||||||
local nobj_thickness = nil
|
local nobj_thickness = nil
|
||||||
local nobj_speedx = nil
|
local nobj_speedx = nil
|
||||||
local nobj_speedz = nil
|
local nobj_speedz = nil
|
||||||
|
|
||||||
|
|
||||||
-- Update clouds function
|
|
||||||
|
|
||||||
local function rangelim(value, lower, upper)
|
local function rangelim(value, lower, upper)
|
||||||
return math.min(math.max(value, lower), upper)
|
return math.min(math.max(value, lower), upper)
|
||||||
end
|
end
|
||||||
|
|
||||||
local os_time_0 = os.time()
|
local t_offset
|
||||||
local t_offset = math.random(0, 300000)
|
do
|
||||||
|
local meta = minetest.get_mod_storage()
|
||||||
|
if meta:contains("time_offset") then
|
||||||
|
t_offset = meta:get_int("time_offset")
|
||||||
|
else
|
||||||
|
-- Use random offset so not each new world behaves the same.
|
||||||
|
t_offset = math.random(0, 300000)
|
||||||
|
meta:set_int("time_offset", t_offset)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local function update_clouds()
|
function weather.get(player)
|
||||||
-- Time in seconds.
|
-- Adjusted time in seconds
|
||||||
-- Add random time offset to avoid identical behaviour each server session.
|
local time = math.floor(minetest.get_gametime() - t_offset)
|
||||||
local time = os.difftime(os.time(), os_time_0) - t_offset
|
|
||||||
|
|
||||||
nobj_density = nobj_density or minetest.get_perlin(np_density)
|
nobj_density = nobj_density or minetest.get_perlin(np_density)
|
||||||
nobj_thickness = nobj_thickness or minetest.get_perlin(np_thickness)
|
nobj_thickness = nobj_thickness or minetest.get_perlin(np_thickness)
|
||||||
|
@ -94,7 +96,6 @@ local function update_clouds()
|
||||||
local n_speedx = nobj_speedx:get_2d({x = time, y = 0}) -- -1 to 1
|
local n_speedx = nobj_speedx:get_2d({x = time, y = 0}) -- -1 to 1
|
||||||
local n_speedz = nobj_speedz:get_2d({x = time, y = 0}) -- -1 to 1
|
local n_speedz = nobj_speedz:get_2d({x = time, y = 0}) -- -1 to 1
|
||||||
|
|
||||||
for _, player in ipairs(minetest.get_connected_players()) do
|
|
||||||
-- Fallback to mid-value 50 for very old worlds
|
-- Fallback to mid-value 50 for very old worlds
|
||||||
local humid = minetest.get_humidity(player:get_pos()) or 50
|
local humid = minetest.get_humidity(player:get_pos()) or 50
|
||||||
-- Default and classic density value is 0.4, make this happen
|
-- Default and classic density value is 0.4, make this happen
|
||||||
|
@ -103,33 +104,20 @@ local function update_clouds()
|
||||||
-- density_max = 0.8 at humid = 50.
|
-- density_max = 0.8 at humid = 50.
|
||||||
-- density_max = 1.35 at humid = 100.
|
-- density_max = 1.35 at humid = 100.
|
||||||
local density_max = 0.8 + ((humid - 50) / 50) * 0.55
|
local density_max = 0.8 + ((humid - 50) / 50) * 0.55
|
||||||
local density = rangelim(density_max, 0.2, 1.0) * n_density
|
|
||||||
player:set_clouds({
|
|
||||||
-- Range limit density_max to always have occasional
|
-- Range limit density_max to always have occasional
|
||||||
-- small scattered clouds at extreme low humidity.
|
-- small scattered clouds at extreme low humidity.
|
||||||
|
local density = rangelim(density_max, 0.2, 1.0) * n_density
|
||||||
|
|
||||||
|
return {
|
||||||
|
clouds = {
|
||||||
density = density,
|
density = density,
|
||||||
thickness = math.max(math.floor(
|
thickness = math.max(math.floor(
|
||||||
rangelim(32 * humid / 100, 8, 32) * n_thickness
|
rangelim(32 * humid / 100, 8, 32) * n_thickness
|
||||||
), 2),
|
), 2),
|
||||||
speed = {x = n_speedx * 4, z = n_speedz * 4},
|
speed = {x = n_speedx * 4, z = n_speedz * 4},
|
||||||
})
|
},
|
||||||
-- now adjust the shadow intensity
|
lighting = {
|
||||||
player:set_lighting({ shadows = { intensity = 0.7 * (1 - density) } })
|
shadows = { intensity = 0.7 * (1 - density) }
|
||||||
end
|
}
|
||||||
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
local function cyclic_update()
|
|
||||||
update_clouds()
|
|
||||||
minetest.after(CYCLE, cyclic_update)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
minetest.after(0, cyclic_update)
|
|
||||||
|
|
||||||
|
|
||||||
-- Update on player join to instantly alter clouds from the default
|
|
||||||
|
|
||||||
minetest.register_on_joinplayer(function(player)
|
|
||||||
update_clouds()
|
|
||||||
end)
|
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# textdomain: wool
|
# textdomain: wool
|
||||||
White Wool=Blanka Lano
|
White Wool=Blanka lano
|
||||||
Grey Wool=Griza Lano
|
Grey Wool=Griza lano
|
||||||
Dark Grey Wool=Malhela Griza Lano
|
Dark Grey Wool=Malhela griza lano
|
||||||
Black Wool=Nigra Lano
|
Black Wool=Nigra lano
|
||||||
Violet Wool=Violkolora Lano
|
Violet Wool=Violkolora lano
|
||||||
Blue Wool=Blua Lano
|
Blue Wool=Blua lano
|
||||||
Cyan Wool=Bluverda Lano
|
Cyan Wool=Bluverda lano
|
||||||
Dark Green Wool=Malhela Verda Lano
|
Dark Green Wool=Malhela verda lano
|
||||||
Green Wool=Verda Lano
|
Green Wool=Verda lano
|
||||||
Yellow Wool=Flava Lano
|
Yellow Wool=Flava lano
|
||||||
Brown Wool=Bruna Lano
|
Brown Wool=Bruna lano
|
||||||
Orange Wool=Oranĝkolora Lano
|
Orange Wool=Oranĝkolora lano
|
||||||
Red Wool=Ruĝa Lano
|
Red Wool=Ruĝa lano
|
||||||
Magenta Wool=Fuksina Lano
|
Magenta Wool=Fuksina lano
|
||||||
Pink Wool=Rozkolora Lano
|
Pink Wool=Rozkolora lano
|
||||||
|
|
16
mods/wool/locale/wool.pt.tr
Normal file
16
mods/wool/locale/wool.pt.tr
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
# textdomain: wool
|
||||||
|
White Wool=Tecido Branco
|
||||||
|
Grey Wool=Tecido Cinza
|
||||||
|
Dark Grey Wool=Tecido Cinza-escuro
|
||||||
|
Black Wool=Tecido Preto
|
||||||
|
Violet Wool=Tecido Violeta
|
||||||
|
Blue Wool=Tecido Azul
|
||||||
|
Cyan Wool=Tecido Ciano
|
||||||
|
Dark Green Wool=Tecido Verde-escuro
|
||||||
|
Green Wool=Tecido Verde
|
||||||
|
Yellow Wool=Tecido Amarelo
|
||||||
|
Brown Wool=Tecido Marrom
|
||||||
|
Orange Wool=Tecido Laranja
|
||||||
|
Red Wool=Tecido Vermelho
|
||||||
|
Magenta Wool=Tecido Magenta
|
||||||
|
Pink Wool=Tecido Rosa
|
|
@ -1,16 +1,16 @@
|
||||||
# textdomain: wool
|
# textdomain: wool
|
||||||
White Wool=Lã Branca
|
White Wool=Tecido Branco
|
||||||
Grey Wool=Lã Cinza
|
Grey Wool=Tecido Cinza
|
||||||
Dark Grey Wool=Lã Cinza-escuro
|
Dark Grey Wool=Tecido Cinza-escuro
|
||||||
Black Wool=Lã Preta
|
Black Wool=Tecido Preto
|
||||||
Violet Wool=Lã Violeta
|
Violet Wool=Tecido Violeta
|
||||||
Blue Wool=Lã Azul
|
Blue Wool=Tecido Azul
|
||||||
Cyan Wool=Lã Ciano
|
Cyan Wool=Tecido Ciano
|
||||||
Dark Green Wool=Lã Verde-escuro
|
Dark Green Wool=Tecido Verde-escuro
|
||||||
Green Wool=Lã Verde
|
Green Wool=Tecido Verde
|
||||||
Yellow Wool=Lã Amarela
|
Yellow Wool=Tecido Amarelo
|
||||||
Brown Wool=Lã Marrom
|
Brown Wool=Tecido Marrom
|
||||||
Orange Wool=Lã Laranja
|
Orange Wool=Tecido Laranja
|
||||||
Red Wool=Lã Vermelha
|
Red Wool=Tecido Vermelho
|
||||||
Magenta Wool=Lã Magenta
|
Magenta Wool=Tecido Magenta
|
||||||
Pink Wool=Lã Rosa
|
Pink Wool=Tecido Rosa
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
# textdomain: wool
|
# textdomain: wool
|
||||||
White Wool=Белая Шерсть
|
White Wool=Белая шерсть
|
||||||
Grey Wool=Серая Шерсть
|
Grey Wool=Серая шерсть
|
||||||
Dark Grey Wool=Тёмно-Серая Шерсть
|
Dark Grey Wool=Тёмно-Серая шерсть
|
||||||
Black Wool=Чёрная Шерсть
|
Black Wool=Чёрная шерсть
|
||||||
Violet Wool=Фиолетовая Шерсть
|
Violet Wool=Фиолетовая шерсть
|
||||||
Blue Wool=Синяя Шерсть
|
Blue Wool=Синяя шерсть
|
||||||
Cyan Wool=Голубая Шерсть
|
Cyan Wool=Бирюзовая шерсть
|
||||||
Dark Green Wool=Тёмно-Зелёная Шерсть
|
Dark Green Wool=Тёмно-Зелёная шерсть
|
||||||
Green Wool=Зелёная Шерсть
|
Green Wool=Зелёная шерсть
|
||||||
Yellow Wool=Жёлтая Шерсть
|
Yellow Wool=Жёлтая шерсть
|
||||||
Brown Wool=Коричневая Шерсть
|
Brown Wool=Коричневая шерсть
|
||||||
Orange Wool=Оранжевая Шерсть
|
Orange Wool=Оранжевая шерсть
|
||||||
Red Wool=Красная Шерсть
|
Red Wool=Красная шерсть
|
||||||
Magenta Wool=Пурпурная Шерсть
|
Magenta Wool=Сиреневая шерсть
|
||||||
Pink Wool=Розовая Шерсть
|
Pink Wool=Розовая шерсть
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# textdomain: xpanes
|
# textdomain: xpanes
|
||||||
Glass Pane=Vitra Vitraĵo
|
Glass Pane=Vitra vitraĵo
|
||||||
Obsidian Glass Pane=Obsidiana Vitra Vitraĵo
|
Obsidian Glass Pane=Obsidiana vitra vitraĵo
|
||||||
Steel Bars=Ŝtalaj Baraĵoj
|
Steel Bars=Ŝtalaj baraĵoj
|
||||||
Steel Bar Door=Ŝtala Baraĵa Pordo
|
Steel Bar Door=Ŝtala baraĵa pordo
|
||||||
Steel Bar Trapdoor=Ŝtala Baraĵa Plankpordo
|
Steel Bar Trapdoor=Ŝtala baraĵa plankpordo
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# textdomain: xpanes
|
# textdomain: xpanes
|
||||||
Glass Pane=Стеклянная Панель
|
Glass Pane=Стеклянная панель
|
||||||
Obsidian Glass Pane=Стеклянная Панель Из Обсидиана
|
Obsidian Glass Pane=Панель из обсидианового стекла
|
||||||
Steel Bars=Стальная Решётка
|
Steel Bars=Стальная решетка
|
||||||
Steel Bar Door=Стальная Решётчатая Дверь
|
Steel Bar Door=Стальная решётчатая дверь
|
||||||
Steel Bar Trapdoor=Стальной Решётчатый Люк
|
Steel Bar Trapdoor=Стальной решётчатый люк
|
||||||
|
|
|
@ -2045,9 +2045,9 @@ mts_save("aspen_log", {
|
||||||
|
|
||||||
-- Large cactus
|
-- Large cactus
|
||||||
|
|
||||||
local C = {name = "default:cactus", prob = 255, param2 = 20}
|
local C = {name = "default:cactus", prob = 255}
|
||||||
local R = {name = "default:cactus", prob = 255, param2 = 20, force_place = true}
|
local R = {name = "default:cactus", prob = 255, force_place = true}
|
||||||
local E = {name = "default:cactus", prob = 127, param2 = 20}
|
local E = {name = "default:cactus", prob = 127}
|
||||||
|
|
||||||
mts_save("large_cactus", {
|
mts_save("large_cactus", {
|
||||||
size = {x = 5, y = 7, z = 5},
|
size = {x = 5, y = 7, z = 5},
|
||||||
|
|
2
utils/test/minetest.conf
Normal file
2
utils/test/minetest.conf
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
minetest_game_smoke_test = true
|
||||||
|
random_mod_load_order = true
|
19
utils/test/run.sh
Executable file
19
utils/test/run.sh
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/bin/bash -e
|
||||||
|
world=$(mktemp -d)
|
||||||
|
trap 'rm -rf "$world" || :' EXIT
|
||||||
|
|
||||||
|
[ -f game.conf ] || { echo "Must be run in game root folder." >&2; exit 1; }
|
||||||
|
|
||||||
|
chmod -R 777 "$world" # container uses unprivileged user inside
|
||||||
|
|
||||||
|
vol=(
|
||||||
|
-v "$PWD/utils/test/minetest.conf":/etc/minetest/minetest.conf
|
||||||
|
--tmpfs /var/lib/minetest/.minetest
|
||||||
|
-v "$PWD":/var/lib/minetest/.minetest/games/minetest_game
|
||||||
|
-v "$world":/var/lib/minetest/.minetest/world
|
||||||
|
)
|
||||||
|
[ -z "$DOCKER_IMAGE" ] && DOCKER_IMAGE="ghcr.io/minetest/minetest:master"
|
||||||
|
docker run --rm -i "${vol[@]}" "$DOCKER_IMAGE" --config /etc/minetest/minetest.conf --gameid minetest
|
||||||
|
|
||||||
|
test -f "$world/map.sqlite" || exit 1
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user