1
0
mirror of https://github.com/luanti-org/minetest_game.git synced 2025-10-28 22:35:22 +01:00

Compare commits

..

67 Commits

Author SHA1 Message Date
StoyanDimitrov
052ccb0928 Update Bulgarian translation (#3215)
Co-authored-by: Стоян Димитров <stoyan@easyads.bg>
2025-10-28 18:56:50 +01:00
jeppebundsgaard
ac2bc0f521 Translation into Danish (#3209) 2025-09-16 15:52:00 +02:00
tenplus1
66a211310c Fix replacement items being lost in furnace (#3208) 2025-09-14 22:34:18 +02:00
DS
aac492d9b0 Fix minus character (-) being stripped from signs (#3210) 2025-09-06 01:29:02 +02:00
kmarton815
c526be36ff Added Hungarian translation (#3205) 2025-08-22 18:57:20 +02:00
sfan5
8fbfc14c3f Avoid parsing mapgen 'chunksize' by hand 2025-07-01 18:39:36 +02:00
Josu Igoa
6ed522b5fc Added Basque translation (#3195)
Co-authored-by: bilbao_iban <bilbao_iban@eitb.eus>
2025-06-29 15:33:14 +02:00
Lars Müller
defa781d60 Fix registering buckets in foreign mod namespaces 2025-06-29 15:32:38 +02:00
sfan5
69b2fb7a32 Revert "Fix registering beds in other mods namespace"
This reverts commit 9321c265b6.
Note: the commit actually touched buckets, not beds
2025-06-20 11:23:02 +02:00
SmallJoker
407087977c Beds: Add support for pova and player_monoids (#3200) 2025-06-17 12:24:17 +02:00
sfan5
844216cbb8 Fix TileDef deprecation warning 2025-06-13 12:11:19 +02:00
sfan5
05d5461a41 Fix Docker CI test to run on new/old engine versions 2025-06-13 11:57:55 +02:00
Petras Jokubauskas
9321c265b6 Fix registering beds in other mods namespace 2025-06-13 11:26:05 +02:00
sfan5
0351c66915 Use new VoxelManip cleanup API 2025-05-31 10:00:04 +02:00
ZenonSeth
a6bf9dd526 Workaround for sign regression with 5.12.0
---------

Co-authored-by: sfan5 <sfan5@live.de>
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
2025-05-28 18:53:44 +02:00
Pedro Gimeno
838ad60ad0 Fix dry_grass_N on dirt producing dirt_with_grass
`dry_grass_N` has groups `grass` and `dry_grass`, so if the check for `grass` is done first, having dry_grass on it makes it turn into `dirt_with_grass` instead of `dirt_with_dry_grass`. Changing the order fixes this.
2025-04-19 19:19:12 +02:00
Maksym H.
c6fabe4734 Creative: release memory when player leaves 2025-04-12 12:35:21 +02:00
sfan5
5a4818a402 Set blend = "clip" on spawned particles 2025-03-01 15:35:11 +01:00
sfan5
692ac2d062 Generalize TNT item loss probability and apply it to more items 2025-03-01 15:35:11 +01:00
StoyanDimitrov
d38b8e6657 Add Bulgarian translation (#3178) 2025-02-15 14:52:26 +01:00
Lars Müller
672b63f9dc Fix TNT explosions not removing metadata (#3180)
Co-authored-by: sfan5 <sfan5@live.de>
2025-01-19 23:00:40 +01:00
SmallJoker
1f4291ff09 Beds: allow digging stray top nodes (#3173)
This may occur by rotating the bottom bed node without
calling the 'on_rotate' callback for various reasons.
2025-01-13 12:10:03 +01:00
sfan5
ee1f2b68df Add safety checks before overriding builtin item entity (#3177) 2025-01-13 12:09:45 +01:00
EGYT5453
6da5e947f0 Fix optimize_textures.sh 2025-01-06 01:42:57 +01:00
Lars Mueller
9bcf2d46d0 Fix book crash with malicious form data 2024-12-21 16:28:45 +01:00
tenplus1
f4f365970a Tweak beds moving check (#3170)
checking player movement is too sensitive with 0.001 as the value, changing to 0.05 works a lot better especially when 3rd party mods that change player physics are in use.
2024-12-12 16:36:46 +01:00
Wuzzy
312a67b40c Replace Minetest mentions with Luanti (#3169) 2024-12-04 18:01:28 +01:00
CowboyLv
c7be7c165f Latvian translation (#3160) 2024-11-16 16:32:35 +01:00
Alexander Chibrikin
92daf3e6f4 Make walls connect to nodes in a new wall_connected group (#3159) 2024-11-15 15:10:14 +01:00
grorp
093cd28a27 Set bloom intensity 2024-10-16 14:12:25 +02:00
grorp
df8159436c Set volumetric lighting strength 2024-10-01 17:29:41 +02:00
1F616EMO~nya
b23c44d980 Get rid of recursive call in default.dig_up (#3133) 2024-09-08 22:09:30 +02:00
sfan5
7967f77f3b Don't assert default biomes in spawn mod
fixes #3124
2024-09-08 22:07:20 +02:00
1F616EMO~nya
2ce8ff3306 Simplify Butterfly and Firefly code (#3125) 2024-08-31 11:43:07 +02:00
Gundul
4e402ec39f Fix crash if bones punched by non-player (#3146) 2024-08-18 19:40:14 +02:00
sfan5
d89170c129 Simplify and fix docker test 2024-08-18 19:35:43 +02:00
sfan5
9bd1f24d36 Update README for release model 2024-08-14 13:53:04 +02:00
Niklp
88ecab34d9 Replace deprecated get_metadata() calls (#3142) 2024-07-27 14:42:08 +02:00
1F616EMO~nya
9cb57ae5f2 Log furnace inventory actions (#3141) 2024-07-27 14:41:16 +02:00
1F616EMO~nya
77bbcee0cd Limit furnace sound volume on catch-up smelting (#3144) 2024-07-26 09:36:05 +02:00
Niklp
da0509c5bd Replace deprecated meta:set_string() call 2024-06-29 16:58:53 +02:00
Lunovox
599dedd927 translate to brazilian portuguese and portuguese of Portugal (#3104) 2024-06-24 12:23:50 +02:00
ssdaniel24
061f4e76dd Added can_grow function to plant definition (#3131) 2024-06-23 18:03:36 +02:00
Andrii Nemchenko
f03c992864 Fix the possibility to put fire in a protected area (#3129) 2024-06-22 12:54:57 +02:00
1F616EMO~nya
91f6e5faec Fix crafting for fences etc. starting with colon (#3132) 2024-06-22 12:54:27 +02:00
1F616EMO~nya
82b017af6b Avoid using the global 'table' as a function argument name
Co-authored-by: José Douglas da Silva Souza <44056294+JoseDouglas26@users.noreply.github.com>
2024-06-16 20:08:42 +02:00
mruncreative
511619253f Fix upside down nodes in large cactus schematic (#3123)
* Update schematic_tables.txt (large_cactus)
* Replace large_cactus with upside down nodes with fixed one
2024-06-02 19:38:35 +02:00
Lars
3ad8a6a473 Fix possible invalid object reference in TNT mod 2024-05-26 17:01:45 +02:00
sfan5
1ce48351ea Add random_mod_load_order to test config 2024-05-12 17:23:41 +02:00
sfan5
c60d8e4da0 Add API to control respawn logic and behavior 2024-05-12 14:46:12 +02:00
sfan5
d1ba7c3db3 Add API to weather mod
Co-authored-by: Till Affeldt <t.affeldt@tu-braunschweig.de>
2024-05-12 14:39:16 +02:00
sfan5
31133a371e Fix set_node(air) calls
In the fireflies case it can be replaced with remove_node.
In the beds case we fix the logic to do what it should. Coincidentally the end result was correct nonetheless.
2024-04-13 13:32:18 +02:00
1F616EMO~nya
0639681f9b Log bucket liquid placement (#3108) 2024-04-13 13:07:13 +02:00
tour
a43a6bcdef fix crash from default.chest.register_chest 2024-04-07 13:51:51 +02:00
ROllerozxa
16c663f87e Replace beds_transparent.png with blank.png 2024-03-29 11:35:05 +01:00
sfan5
316c0c7224 Add workflow that runs simple test with the engine present 2024-03-27 22:00:03 +01:00
cx384
ef788d0307 Make bugs only pointable with Bug Net (#3099) 2024-03-10 17:57:22 +01:00
Gregor Parzefall
5a80084800 Set field_enter_after_edit for search fields 2024-02-26 01:31:33 +01:00
Jaidyn Ann
10799db4cf Tweak capitalization in Esperanto translation 2024-01-28 11:42:02 +01:00
David Leal
222afb0cf0 Allow overriding the loop flag on player_api.set_animation (#3097)
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
2024-01-28 11:41:12 +01:00
sfan5
472997b4aa Fix detecting mgv6 temples as 'desert' dungeon type 2024-01-24 08:48:42 +01:00
sfan5
70cf7a26fd Fix some placer nil checks 2024-01-11 15:50:36 +01:00
Uwuewsky
a3b171e317 Update Russian translation (#3058) 2023-12-30 11:32:05 +01:00
sfan5
e9676fa632 Make cloud parameters deterministic across sessions 2023-12-30 11:30:46 +01:00
David Leal
c0200b0a01 Use a faster and newer LuaCheck (#3081) 2023-12-30 11:29:10 +01:00
Mantar
43185f19e3 Bed bugfix: Remove "reverse" toggle in favor of swap_node/set_node combo (#2976) 2023-12-24 13:41:26 +01:00
José Douglas da Silva Souza
ff755eed9c Add brazilian portuguese translation for butterflies (#3085) 2023-12-22 23:51:14 +01:00
285 changed files with 5174 additions and 1490 deletions

View File

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

19
.github/workflows/test.yml vendored Normal file
View File

@@ -0,0 +1,19 @@
name: Test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
matrix:
cfg:
- { image: 'ghcr.io/minetest/minetest:5.9.0' }
- { image: 'ghcr.io/minetest/minetest:5.10.0' }
- { image: 'ghcr.io/luanti-org/luanti:master' } # latest git
steps:
- uses: actions/checkout@v4
- run: ./utils/test/run.sh
env:
DOCKER_IMAGE: "${{ matrix.cfg.image }}"

View File

@@ -7,6 +7,7 @@ globals = {
read_globals = { read_globals = {
"DIR_DELIM", "DIR_DELIM",
"core",
"minetest", "minetest",
"dump", "dump",
"vector", "vector",
@@ -18,7 +19,10 @@ read_globals = {
-- Silence errors about custom table methods. -- Silence errors about custom table methods.
table = { fields = { "copy", "indexof" } }, table = { fields = { "copy", "indexof" } },
-- Silence warnings about accessing undefined fields of global 'math' -- Silence warnings about accessing undefined fields of global 'math'
math = { fields = { "sign" } } math = { fields = { "sign" } },
-- Mod support
"player_monoids",
"pova",
} }
-- Overwrites minetest.handle_node_drops -- Overwrites minetest.handle_node_drops

View File

@@ -1,6 +1,6 @@
# Minetest Game # Minetest Game
[![ContentDB](https://content.minetest.net/packages/Minetest/minetest_game/shields/title/)](https://content.minetest.net/packages/Minetest/minetest_game/) [![ContentDB](https://content.luanti.org/packages/Minetest/minetest_game/shields/title/)](https://content.luanti.org/packages/Minetest/minetest_game/)
Minetest Game (abbreviated MTG) is a simple and peaceful sandbox game, with no Minetest Game (abbreviated MTG) is a simple and peaceful sandbox game, with no
real goals or built-in enemy mobs. real goals or built-in enemy mobs.
@@ -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,30 +17,29 @@ 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.luanti.org/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/`.
The Minetest engine can be found at [GitHub](https://github.com/minetest/minetest). The Luanti engine can be found at [GitHub](https://github.com/minetest/minetest).
For further information or help, see: [Installing Mods](https://wiki.minetest.net/Installing_Mods). For further information or help, see: [Installing Mods](https://wiki.luanti.org/Installing_Mods).
## 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

View File

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

View File

@@ -6,12 +6,12 @@ GitHub Repo: https://github.com/minetest/minetest_game
Introduction Introduction
------------ ------------
The Minetest Game game offers multiple new possibilities in addition to the Minetest engine's built-in API, The Minetest Game game offers multiple new possibilities in addition to the Luanti engine's built-in API,
allowing you to add new plants to farming mod, buckets for new liquids, new stairs and custom panes. allowing you to add new plants to farming mod, buckets for new liquids, new stairs and custom panes.
For information on the Minetest API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt For information on the Luanti API, visit https://github.com/minetest/minetest/blob/master/doc/lua_api.txt
Please note: Please note:
* [XYZ] refers to a section the Minetest API * [XYZ] refers to a section the Luanti API
* [#ABC] refers to a section in this document * [#ABC] refers to a section in this document
* [pos] refers to a position table `{x = -5, y = 0, z = 200}` * [pos] refers to a position table `{x = -5, y = 0, z = 200}`
@@ -35,6 +35,7 @@ The bucket API allows registering new types of buckets for non-default liquids.
The filled bucket item is returned to the player that uses an empty bucket pointing to the given liquid source. The filled bucket item is returned to the player that uses an empty bucket pointing to the given liquid source.
When punching with an empty bucket pointing to an entity or a non-liquid node, the on_punch of the entity or node will be triggered. When punching with an empty bucket pointing to an entity or a non-liquid node, the on_punch of the entity or node will be triggered.
The bucket API also allows registering buckets in other namespace using colon-prefixed itemname (i.e. ":cows:bucket_milk").
Beds API Beds API
@@ -324,7 +325,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(),
@@ -341,6 +342,12 @@ walls.register(name, desc, texture, mat, sounds)
^ mat = "default:stone". Used to auto-generate crafting recipe. ^ mat = "default:stone". Used to auto-generate crafting recipe.
^ sounds = sounds: see [#Default sounds] ^ sounds = sounds: see [#Default sounds]
All walls will be connected to any nodes with one of the following groups:
* `wall`
* `stone`
* `fence`
* `wall_connected`
Farming API Farming API
----------- -----------
@@ -382,6 +389,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)
} }
@@ -591,6 +600,18 @@ Both nodedefs and entitydefs can provide an `on_blast()` callback
* `drops` - a list of drops, e.g. {"wool:red"} * `drops` - a list of drops, e.g. {"wool:red"}
Node drops:
When a node is detonated it is removed according to the following rules.
1. If `on_blast` is defined, that is called.
2. Else if the node has group `flammable` it is replaced with a fire node.
3. Else the dropped items are retrieved and it is replaced with air.
The parameter `_tnt_loss` in any item definition can be set to a number to
effect that "one in X" of these drops will be lost during an explosion.
For example `_tnt_loss = 2` would cause 50% of items to disappear.
The default is to not lose any items, which is equivalent to `_tnt_loss = 0`.
Screwdriver API Screwdriver API
--------------- ---------------
@@ -632,6 +653,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 +1218,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, shadow intensity, bloom and volumetric lighting).
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

View File

@@ -72,7 +72,8 @@ default:torch 99,default:cobble 99
# Helps rivers create more sound, especially on level sections. # Helps rivers create more sound, especially on level sections.
#river_source_sounds = false #river_source_sounds = false
# Enable cloud and shadow intensity variation by the 'weather' mod. # If enabled, the 'weather' mod will control cloud parameters, shadow intensity,
# bloom and volumetric lighting.
# Non-functional in V6 or Singlenode mapgens. # Non-functional in V6 or Singlenode mapgens.
#enable_weather = true #enable_weather = true

View File

@@ -5,7 +5,7 @@ See license.txt for license information.
Authors of source code Authors of source code
---------------------- ----------------------
Originally by BlockMen (MIT) Originally by BlockMen (MIT)
Various Minetest developers and contributors (MIT) Various Minetest Game developers and contributors (MIT)
Authors of media (textures) Authors of media (textures)
--------------------------- ---------------------------
@@ -15,7 +15,7 @@ BlockMen (CC BY-SA 3.0)
TumeniNodes (CC BY-SA 3.0) TumeniNodes (CC BY-SA 3.0)
beds_bed_under.png beds_bed_under.png
This mod adds a bed to Minetest which allows players to skip the night. This mod adds a bed which allows players to skip the night.
To sleep, right click on the bed. If playing in singleplayer mode the night gets skipped To sleep, right click on the bed. If playing in singleplayer mode the night gets skipped
immediately. If playing multiplayer you get shown how many other players are in bed too, immediately. If playing multiplayer you get shown how many other players are in bed too,
if all players are sleeping the night gets skipped. The night skip can be forced if more if all players are sleeping the night gets skipped. The night skip can be forced if more

View File

@@ -1,27 +1,41 @@
-- Removes a node without calling on on_destruct()
-- 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 reverse = true --- returns the position of the other bed half (or nil on failure)
local function get_other_bed_pos(pos, n)
local function destruct_bed(pos, n) local node = core.get_node(pos)
local node = minetest.get_node(pos) local dir = core.facedir_to_dir(node.param2)
if not dir then
return -- There are 255 possible param2 values. Ignore bad ones.
end
local other local other
if n == 2 then if n == 2 then
local dir = minetest.facedir_to_dir(node.param2)
other = vector.subtract(pos, dir) other = vector.subtract(pos, dir)
elseif n == 1 then elseif n == 1 then
local dir = minetest.facedir_to_dir(node.param2)
other = vector.add(pos, dir) other = vector.add(pos, dir)
else
return nil
end end
if reverse then local onode = core.get_node(other)
reverse = not reverse if onode.param2 == node.param2 and core.get_item_group(onode.name, "bed") ~= 0 then
minetest.remove_node(other) return other
minetest.check_for_falling(other)
beds.remove_spawns_at(pos)
beds.remove_spawns_at(other)
else
reverse = not reverse
end end
return nil
end
local function destruct_bed(pos, n)
local other = get_other_bed_pos(pos, n)
if other then
remove_no_destruct(other)
beds.remove_spawns_at(other)
end
beds.remove_spawns_at(pos)
end end
function beds.register_bed(name, def) function beds.register_bed(name, def)
@@ -113,6 +127,10 @@ 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)
if not dir then
return false
end
-- 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 +144,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 +156,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
@@ -155,23 +173,25 @@ function beds.register_bed(name, def)
paramtype = "light", paramtype = "light",
paramtype2 = "facedir", paramtype2 = "facedir",
is_ground_content = false, is_ground_content = false,
pointable = false,
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2, groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2,
not_in_creative_inventory = 1}, not_in_creative_inventory = 1},
sounds = def.sounds or default.node_sound_wood_defaults(), sounds = def.sounds or default.node_sound_wood_defaults(),
drop = name .. "_bottom", drop = "",
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = def.nodebox.top, fixed = def.nodebox.top,
}, },
selection_box = {
type = "fixed",
-- Small selection box to allow digging stray top nodes
fixed = {-0.3, -0.3, -0.3, 0.3, -0.1, 0.3},
},
on_destruct = function(pos) on_destruct = function(pos)
destruct_bed(pos, 2) destruct_bed(pos, 2)
end, end,
can_dig = function(pos, player) can_dig = function(pos, player)
local node = minetest.get_node(pos) local other = get_other_bed_pos(pos, 2)
local dir = minetest.facedir_to_dir(node.param2) return (not other) or beds.can_dig(other)
local p = vector.add(pos, dir)
return beds.can_dig(p)
end, end,
}) })

View File

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

View File

@@ -5,6 +5,16 @@ if enable_respawn == nil then
enable_respawn = true enable_respawn = true
end end
-- Physics override management mods (shadow the global variable)
local player_monoids = core.get_modpath("player_monoids") and player_monoids
local pova = core.get_modpath("pova") and pova
if player_monoids and not player_monoids.speed.checkout_branch then
-- This function exists since 2025-05-17
core.log("warning", "[beds] player_monoids is too old, thus not supported.")
player_monoids = nil
end
-- support for MT game translation. -- support for MT game translation.
local S = beds.get_translator local S = beds.get_translator
@@ -50,6 +60,51 @@ local function check_in_beds(players)
return #players > 0 return #players > 0
end end
local function set_physics_override(player, put_to_bed)
local IDENTIFIER = "beds:lie"
local OVERRIDES = {speed = 0, jump = 0, gravity = 0}
local name = player:get_player_name()
local pdata = beds.player[name]
if put_to_bed then -- Freeze player
if player_monoids then
for k, v in pairs(OVERRIDES) do
local monoid = player_monoids[k]
pdata["monoid_branch_" .. k] = monoid:get_active_branch(player)
-- Change the "context" of the physics overrides
local branch = monoid:checkout_branch(player, IDENTIFIER)
branch:add_change(player, v)
end
elseif pova then
pova.add_override(name, "force", OVERRIDES)
pova.do_override(player)
else
-- Directly use engine API. May conflict with other mods.
pdata.physics_override = player:get_physics_override()
player:set_physics_override(OVERRIDES)
end
else -- Unfreeze player
if player_monoids then
for k, _ in pairs(OVERRIDES) do
local monoid = player_monoids[k]
monoid:checkout_branch(player, pdata["monoid_branch_" .. k])
monoid:get_branch(IDENTIFIER):delete(player)
end
elseif pova then
pova.del_override(name, "force")
pova.do_override(player)
else
-- Restore the changed fields
player:set_physics_override({
speed = pdata.physics_override.speed,
jump = pdata.physics_override.jump,
gravity = pdata.physics_override.gravity
})
end
end
end
local function lay_down(player, pos, bed_pos, state, skip) local function lay_down(player, pos, bed_pos, state, skip)
local name = player:get_player_name() local name = player:get_player_name()
local hud_flags = player:hud_get_flags() local hud_flags = player:hud_get_flags()
@@ -72,13 +127,8 @@ local function lay_down(player, pos, bed_pos, state, skip)
player:set_pos(beds.pos[name]) player:set_pos(beds.pos[name])
-- physics, eye_offset, etc -- physics, eye_offset, etc
local physics_override = beds.player[name].physics_override set_physics_override(player, false)
beds.player[name] = nil beds.player[name] = nil
player:set_physics_override({
speed = physics_override.speed,
jump = physics_override.jump,
gravity = physics_override.gravity
})
player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0})
player:set_look_horizontal(math.random(1, 180) / 100) player:set_look_horizontal(math.random(1, 180) / 100)
player_api.player_attached[name] = false player_api.player_attached[name] = false
@@ -97,7 +147,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
end end
-- Check if player is moving -- Check if player is moving
if vector.length(player:get_velocity()) > 0.001 then if vector.length(player:get_velocity()) > 0.05 then
minetest.chat_send_player(name, S("You have to stop moving before going to bed!")) minetest.chat_send_player(name, S("You have to stop moving before going to bed!"))
return false return false
end end
@@ -112,9 +162,9 @@ local function lay_down(player, pos, bed_pos, state, skip)
return false return false
end end
beds.player[name] = {}
beds.pos[name] = pos beds.pos[name] = pos
beds.bed_position[name] = bed_pos beds.bed_position[name] = bed_pos
beds.player[name] = {physics_override = player:get_physics_override()}
local yaw, param2 = get_look_yaw(bed_pos) local yaw, param2 = get_look_yaw(bed_pos)
player:set_look_horizontal(yaw) player:set_look_horizontal(yaw)
@@ -126,7 +176,7 @@ local function lay_down(player, pos, bed_pos, state, skip)
y = bed_pos.y + 0.07, y = bed_pos.y + 0.07,
z = bed_pos.z + dir.z / 2 z = bed_pos.z + dir.z / 2
} }
player:set_physics_override({speed = 0, jump = 0, gravity = 0}) set_physics_override(player, true)
player:set_pos(p) player:set_pos(p)
player_api.player_attached[name] = true player_api.player_attached[name] = true
hud_flags.wielditem = false hud_flags.wielditem = false
@@ -244,10 +294,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

View File

@@ -3,7 +3,7 @@ License of source code
The MIT License (MIT) The MIT License (MIT)
Copyright (C) 2014-2016 BlockMen Copyright (C) 2014-2016 BlockMen
Copyright (C) 2014-2016 Various Minetest developers and contributors Copyright (C) 2014-2016 Various Minetest Game developers and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software software and associated documentation files (the "Software"), to deal in the Software

10
mods/beds/locale/beds.bg.tr Executable file
View File

@@ -0,0 +1,10 @@
# textdomain: beds
Fancy Bed=Модерно легло
Simple Bed=Обикновено легло
This bed is already occupied!=Това легло вече е заето!
You have to stop moving before going to bed!=За да легнете трябва да спрете да се движите!
Good morning.=Добро утро!
@1 of @2 players are in bed=@1 от @2 играчи са легнали
Force night skip=Прескачане на нощта
You can only sleep at night.=Може да спите само през нощта.
Leave Bed=Ставане от леглото

View File

@@ -0,0 +1,10 @@
# textdomain: beds
Fancy Bed=Luksuriøs seng
Simple Bed=Simpel seng
This bed is already occupied!=Denne seng er allerede taget!
You have to stop moving before going to bed!=Du skal stoppe med at bevæge dig før du går i seng!
Good morning.=God morgen.
@1 of @2 players are in bed=@1 af @2 spillere er i seng
Force night skip=Tvungen natte-overspring
You can only sleep at night.=Du kan kun sove om natten.
Leave Bed=Stå ud af sengen

View File

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

View File

@@ -0,0 +1,10 @@
# textdomain: beds
Fancy Bed=Luxuzko ohea
Simple Bed=Ohe arrunta
This bed is already occupied!=Ohe hau okupatuta dago
You have to stop moving before going to bed!=Utzi mugitzeari edo ezingo zara oheratu!
Good morning.=Egun on.
@1 of @2 players are in bed=@2 jokalaritik @1 lo daude
Force night skip=Behartu egunez egitera
You can only sleep at night.=Gauez bakarrik egin dezakezu lo.
Leave Bed=Jaiki

View File

@@ -0,0 +1,10 @@
# textdomain: beds
Fancy Bed=Szép ágy
Simple Bed=Egyszerű ágy
This bed is already occupied!=Ez az ágy már foglalt!
You have to stop moving before going to bed!=Meg kell állnod, mielőtt lefeküdhetnél!
Good morning.=Jó reggelt.
@1 of @2 players are in bed=@2 játékosból @1 van ágyban
Force night skip=Éjszaka átugrása
You can only sleep at night.=Csak éjszaka aludhatsz.
Leave Bed=Ágy elhagyása

View File

@@ -0,0 +1,10 @@
# textdomain: beds
Fancy Bed=Skaista gulta
Simple Bed=Gulta
This bed is already occupied!=Šī gulta jau ir aizņemta!
You have to stop moving before going to bed!=Jums jāapstājas lai gulētu!
Good morning.=Labrīt.
@1 of @2 players are in bed=@1 no @2 spēlētājiem guļ gultās
Force night skip=Izlaist nakti
You can only sleep at night.=Jūs variet gulēt tikai naktī.
Leave Bed=Celties no gultas

View File

@@ -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=Пропустить ночь

View File

@@ -1,3 +1,4 @@
name = beds name = beds
description = Minetest Game mod: beds description = Minetest Game mod: beds
depends = default, wool depends = default, wool, spawn
optional_depends = player_monoids, pova

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

View File

@@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Бинокъл
Use with 'Zoom' key=Използвайте с клавиша „Мащабиране“

View File

@@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Kikkert
Use with 'Zoom' key=Brug med 'zoom'-tasten

View File

@@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Prismatikoak
Use with 'Zoom' key='Zoom' teklarekin erabili

View File

@@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Távcső
Use with 'Zoom' key=Használat a "Nagyítás" gombbal

View File

@@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Binoklis
Use with 'Zoom' key=Lietojiet ar 'Pietuvināt' pogu

View File

@@ -1,3 +1,3 @@
# textdomain: binoculars # textdomain: binoculars
Binoculars=Бинокль Binoculars=Бинокль
Use with 'Zoom' key=Используется с привилегией 'Zoom' Use with 'Zoom' key=Используется клавишей 'Приближение'

View File

@@ -5,7 +5,7 @@ See license.txt for license information.
Authors of source code Authors of source code
---------------------- ----------------------
Originally by PilzAdam (MIT) Originally by PilzAdam (MIT)
Various Minetest developers and contributors (MIT) Various Minetest Game developers and contributors (MIT)
Authors of media (textures and model) Authors of media (textures and model)
------------------------------------- -------------------------------------

View File

@@ -3,7 +3,7 @@ License of source code
The MIT License (MIT) The MIT License (MIT)
Copyright (C) 2012-2016 PilzAdam Copyright (C) 2012-2016 PilzAdam
Copyright (C) 2012-2016 Various Minetest developers and contributors Copyright (C) 2012-2016 Various Minetest Game developers and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software software and associated documentation files (the "Software"), to deal in the Software

4
mods/boats/locale/boats.bg.tr Executable file
View File

@@ -0,0 +1,4 @@
# textdomain: boats
Boat cruise mode on=Круизен режим включен
Boat cruise mode off=Круизен режим изключен
Boat=Лотка

View File

@@ -0,0 +1,4 @@
# textdomain: boats
Boat cruise mode on=Bådrundfarttilstand til
Boat cruise mode off=Bådrundfarttilstand fra
Boat=Båd

View File

@@ -0,0 +1,4 @@
# textdomain: boats
Boat cruise mode on=Gurutzaldi-abiadura gaituta
Boat cruise mode off=Gurutzaldi-abiadura desgaituta
Boat=Ontzia

View File

@@ -0,0 +1,4 @@
# textdomain: boats
Boat cruise mode on=Csónak utazó mód be
Boat cruise mode off=Csónak utazó mód ki
Boat=Csónak

View File

@@ -0,0 +1,4 @@
# textdomain: boats
Boat cruise mode on=Autopilots ieslēgts
Boat cruise mode off=Autopilots izslēgts
Boat=Laiva

View File

@@ -5,7 +5,7 @@ See license.txt for license information.
Authors of source code Authors of source code
---------------------- ----------------------
Originally by PilzAdam (MIT) Originally by PilzAdam (MIT)
Various Minetest developers and contributors (MIT) Various Minetest Game developers and contributors (MIT)
Authors of media (textures) Authors of media (textures)
--------------------------- ---------------------------

View File

@@ -1,6 +1,6 @@
-- bones/init.lua -- bones/init.lua
-- Minetest 0.4 mod: bones -- Minetest Game mod: bones
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
-- Load support for MT game translation. -- Load support for MT game translation.
@@ -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

View File

@@ -3,7 +3,7 @@ License of source code
The MIT License (MIT) The MIT License (MIT)
Copyright (C) 2012-2016 PilzAdam Copyright (C) 2012-2016 PilzAdam
Copyright (C) 2012-2016 Various Minetest developers and contributors Copyright (C) 2012-2016 Various Minetest Game developers and contributors
Permission is hereby granted, free of charge, to any person obtaining a copy of this Permission is hereby granted, free of charge, to any person obtaining a copy of this
software and associated documentation files (the "Software"), to deal in the Software software and associated documentation files (the "Software"), to deal in the Software

8
mods/bones/locale/bones.bg.tr Executable file
View File

@@ -0,0 +1,8 @@
# textdomain: bones
Bones=Кости
@1's old bones=Старите кости на @1
@1 died at @2.=@1 са загинали в @2.
@1 died at @2, and dropped their inventory.=@1 са загинали в @2 и са хвърлили техния инвентар.
@1 died at @2, and bones were placed.=@1 са загинали в @2 и костите са погребани.
@1's fresh bones=Пресните кости на @1
@1's bones=Костите на @1

View File

@@ -0,0 +1,8 @@
# textdomain: bones
Bones=Ben
@1's old bones=@1's gamle ben
@1 died at @2.=@1 døde ved @2.
@1 died at @2, and dropped their inventory.=@1 døde ved @2 og kastede sin beholdning.
@1 died at @2, and bones were placed.=@1 døde ved @2 og knoglerne blev placeret.
@1's fresh bones=@1s friske knogler
@1's bones=@1s knogler

View File

@@ -0,0 +1,8 @@
# textdomain: bones
Bones=Hezurrak
@1's old bones=@1-en hezur zaharrak
@1 died at @2.=@1 @2-n hil da.
@1 died at @2, and dropped their inventory.=@1 @2-n hil da, inbentarioa bertan utziz.
@1 died at @2, and bones were placed.=@1 @2-n hil da, eta hezurrak bertan geratu dira.
@1's fresh bones= @1-en hezur freskoak
@1's bones=@1-en hezurrak

View File

@@ -0,0 +1,8 @@
# textdomain: bones
Bones=Csontok
@1's old bones=@1 régi csontjai
@1 died at @2.=@1 @2 helyen halt meg.
@1 died at @2, and dropped their inventory.=@1 @2 helyen halt meg, és elhagyta a dolgait.
@1 died at @2, and bones were placed.=@1 @2 helyen halt meg, és a csontok kihelyezésre kerültek.
@1's fresh bones=@1 friss csontjai
@1's bones=@1 csontjai

View File

@@ -0,0 +1,8 @@
# textdomain: bones
Bones=Kauli
@1's old bones=@1 vecie kauli
@1 died at @2.=@1 nomira @2.
@1 died at @2, and dropped their inventory.=@1 nomira @2 pazaudēja inventāru.
@1 died at @2, and bones were placed.=@1 nomira @2, un kauli nolikti.
@1's fresh bones=@1 jaunie kauli
@1's bones=@1 kauli

View File

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

View File

@@ -6,7 +6,7 @@ Authors of source code
---------------------- ----------------------
Kahrl <kahrl@gmx.net> (LGPLv2.1+) Kahrl <kahrl@gmx.net> (LGPLv2.1+)
celeron55, Perttu Ahola <celeron55@gmail.com> (LGPLv2.1+) celeron55, Perttu Ahola <celeron55@gmail.com> (LGPLv2.1+)
Various Minetest developers and contributors (LGPLv2.1+) Various Minetest Game developers and contributors (LGPLv2.1+)
Authors of media (textures) Authors of media (textures)
--------------------------- ---------------------------

View File

@@ -1,4 +1,4 @@
-- Minetest 0.4 mod: bucket -- Minetest Game mod: bucket
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
-- Load support for MT game translation. -- Load support for MT game translation.
@@ -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
@@ -46,6 +51,8 @@ end
-- This function can be called from any mod (that depends on bucket). -- This function can be called from any mod (that depends on bucket).
function bucket.register_liquid(source, flowing, itemname, inventory_image, name, function bucket.register_liquid(source, flowing, itemname, inventory_image, name,
groups, force_renew) groups, force_renew)
local itemname_raw = itemname
itemname = itemname and itemname:match("^:(.+)") or itemname
bucket.liquids[source] = { bucket.liquids[source] = {
source = source, source = source,
flowing = flowing, flowing = flowing,
@@ -55,7 +62,7 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name
bucket.liquids[flowing] = bucket.liquids[source] bucket.liquids[flowing] = bucket.liquids[source]
if itemname ~= nil then if itemname ~= nil then
minetest.register_craftitem(itemname, { minetest.register_craftitem(itemname_raw, {
description = name, description = name,
inventory_image = inventory_image, inventory_image = inventory_image,
stack_max = 1, stack_max = 1,
@@ -101,13 +108,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 +135,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 +159,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 +173,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 +187,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

View File

@@ -4,7 +4,7 @@ License of source code
GNU Lesser General Public License, version 2.1 GNU Lesser General Public License, version 2.1
Copyright (C) 2011-2016 Kahrl <kahrl@gmx.net> Copyright (C) 2011-2016 Kahrl <kahrl@gmx.net>
Copyright (C) 2011-2016 celeron55, Perttu Ahola <celeron55@gmail.com> Copyright (C) 2011-2016 celeron55, Perttu Ahola <celeron55@gmail.com>
Copyright (C) 2011-2016 Various Minetest developers and contributors Copyright (C) 2011-2016 Various Minetest Game developers and contributors
This program is free software; you can redistribute it and/or modify it under the terms This program is free software; you can redistribute it and/or modify it under the terms
of the GNU Lesser General Public License as published by the Free Software Foundation; of the GNU Lesser General Public License as published by the Free Software Foundation;

View File

@@ -0,0 +1,5 @@
# textdomain: bucket
Empty Bucket=Празна кофа
Water Bucket=Кофа с вода
River Water Bucket=Кофа с речна вода
Lava Bucket=Кофа с лава

View File

@@ -0,0 +1,5 @@
# textdomain: bucket
Empty Bucket=Tom spand
Water Bucket=Vandspand
River Water Bucket=Flodvandspand
Lava Bucket=Lavaspand

View File

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

View File

@@ -0,0 +1,5 @@
# textdomain: bucket
Empty Bucket=Ontzi hutsa
Water Bucket=Ura duen ontzia
River Water Bucket=Ibai-ura duen ontzia
Lava Bucket=Labadun ontzia

View File

@@ -0,0 +1,5 @@
# textdomain: bucket
Empty Bucket=Üres vödör
Water Bucket=Vizes vödör
River Water Bucket=Folyóvizes vödör
Lava Bucket=Láva vödör

View File

@@ -0,0 +1,5 @@
# textdomain: bucket
Empty Bucket=Tukšs spainis
Water Bucket=Spainis ar ūdeni
River Water Bucket=Spainis ar upes ūdeni
Lava Bucket=Spainis ar lavu

View File

@@ -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=Ведро с лавой

View File

@@ -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() minetest.get_node_timer(pos):start(1)
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)
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() minetest.get_node_timer(pos):start(1)
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)
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

View File

@@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Бяла пеперуда
Red Butterfly=Червена пеперуда
Violet Butterfly=Лилава пеперуда

View File

@@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Hvid sommerfugl
Red Butterfly=Rød sommerfugl
Violet Butterfly=Violet sommerfugl

View File

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

View File

@@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Tximeleta zuria
Red Butterfly=Tximeleta gorria
Violet Butterfly=Tximeleta morea

View File

@@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Fehér pillangó
Red Butterfly=Vörös pillangó
Violet Butterfly=Lila pillangó

View File

@@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Balts taurenis
Red Butterfly=Sarkans taurenis
Violet Butterfly=Violets taurenis

View File

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

View File

@@ -1,4 +1,4 @@
# textdomain: butterflies # textdomain: butterflies
White Butterfly=Белая Бабочка White Butterfly=Белая бабочка
Red Butterfly=Красная Бабочка Red Butterfly=Красная бабочка
Violet Butterfly=Фиолетовая Бабочка Violet Butterfly=Фиолетовая бабочка

View File

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

View File

@@ -41,15 +41,9 @@ end
function carts:is_rail(pos, railtype) function carts:is_rail(pos, railtype)
local node = minetest.get_node(pos).name local node = minetest.get_node(pos).name
if node == "ignore" then if node == "ignore" then
local vm = minetest.get_voxel_manip() -- we really need to know, so load it
local emin, emax = vm:read_from_map(pos, pos) minetest.load_area(pos)
local area = VoxelArea:new{ node = minetest.get_node(pos).name
MinEdge = emin,
MaxEdge = emax,
}
local data = vm:get_data()
local vi = area:indexp(pos)
node = minetest.get_name_from_content_id(data[vi])
end end
if minetest.get_item_group(node, "rail") == 0 then if minetest.get_item_group(node, "rail") == 0 then
return false return false

View File

@@ -5,7 +5,7 @@ License of source code
The MIT License (MIT) The MIT License (MIT)
Copyright (C) 2012-2016 PilzAdam Copyright (C) 2012-2016 PilzAdam
Copyright (C) 2014-2016 SmallJoker Copyright (C) 2014-2016 SmallJoker
Copyright (C) 2012-2016 Various Minetest developers and contributors Copyright (C) 2012-2016 Various Minetest Game developers and contributors
Permission is hereby granted, free of charge, to any person obtaining a Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), copy of this software and associated documentation files (the "Software"),

6
mods/carts/locale/carts.bg.tr Executable file
View File

@@ -0,0 +1,6 @@
# textdomain: carts
Cart=Вагон
(Sneak+Click to pick up)=(Промъкване+Click, за да вземете)
Rail=Релса
Powered Rail=Контактна релса
Brake Rail=Спирачна релса

View File

@@ -0,0 +1,6 @@
# textdomain: carts
Cart=Kort
(Sneak+Click to pick up)=(Bøj dig+klik for at samle op)
Rail=Skinne
Powered Rail=Strømskinne
Brake Rail=Bremseskinne

View File

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

View File

@@ -0,0 +1,6 @@
# textdomain: carts
Cart=Bagoneta
(Sneak+Click to pick up)=(Makurtzea + Klik jasotzeko)
Rail=Erraila
Powered Rail=Errail energizatua
Brake Rail=Balaztatze-erraila

View File

@@ -0,0 +1,6 @@
# textdomain: carts
Cart=Bányakocsi
(Sneak+Click to pick up)=(Lopakodás+klikk a felvételhez)
Rail=Sín
Powered Rail=Villamos sín
Brake Rail=Fékező sín

View File

@@ -0,0 +1,6 @@
# textdomain: carts
Cart=Vagons
(Sneak+Click to pick up)=(Lavieties un klikšķiniet, lai paceltu)
Rail=Sliedes
Powered Rail=Elektrizētas sliedes
Brake Rail=Bremžu sliedes

View File

@@ -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=Тормозящие рельсы

View File

@@ -124,6 +124,11 @@ function creative.update_creative_inventory(player_name, tab_content)
inv.size = #creative_list inv.size = #creative_list
end end
minetest.register_on_leaveplayer(function(player)
local name = player:get_player_name()
player_inventory[name] = nil
end)
-- Create the trash field -- Create the trash field
local trash = minetest.create_detached_inventory("trash", { local trash = minetest.create_detached_inventory("trash", {
-- Allow the stack to be placed and remove it in on_put() -- Allow the stack to be placed and remove it in on_put()
@@ -170,6 +175,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]" ..

View File

@@ -0,0 +1,11 @@
# textdomain: creative
Allow player to use creative inventory=Дава възможност на играча да използва творчески инвентар
No items to show.=Няма предмети.
Search=Търсене
Reset=Нулиране
Previous page=Предишна страница
Next page=Следваща страница
All=Всички
Nodes=Възли
Tools=Инструменти
Items=Предмети

View File

@@ -0,0 +1,11 @@
# textdomain: creative
Allow player to use creative inventory=Tillad spiller at bruge krativ beholdning
No items to show.=Ingen ting at vise.
Search=Søg
Reset=Nulstil
Previous page=Foregående side
Next page=Næste side
All=Alle
Nodes=Enheder
Tools=Værktøj
Items=Ting

View File

@@ -0,0 +1,11 @@
# textdomain: creative
Allow player to use creative inventory=Jokalariari sormen-inbentarioa erabiltzen utzi
No items to show.=Erakusteko objekturik ez.
Search=Bilatu
Reset=Berriz hasi
Previous page=Aurreko orria
Next page=Hurrengo orria
All=Guztiak
Nodes=Nodoak
Tools=Tresnak
Items=Objektuak

View File

@@ -0,0 +1,11 @@
# textdomain: creative
Allow player to use creative inventory=Engedélyezni a játékos számára a kreatív leltár használatát
No items to show.=Nincsenek megjelenítendő elemek.
Search=Keresés
Reset=Visszaállítás
Previous page=Előző oldal
Next page=Következő oldal
All=Összes
Nodes=Blokkok
Tools=Eszközök
Items=Tárgyak

View File

@@ -0,0 +1,11 @@
# textdomain: creative
Allow player to use creative inventory=Atļaut spēlētājam izmantot radošo inventāru
No items to show.=Nav priekšmetu ko paradīt.
Search=Meklēt
Reset=Nodzēst
Previous page=Iepriekšējā lappuse
Next page=Nākošā lappuse
All=Viss
Nodes=Bloki
Tools=Rīki
Items=Priekšmeti

View File

@@ -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=Предыдущая страница

View File

@@ -5,7 +5,7 @@ See license.txt for license information.
Authors of source code Authors of source code
---------------------- ----------------------
Originally by celeron55, Perttu Ahola <celeron55@gmail.com> (LGPLv2.1+) Originally by celeron55, Perttu Ahola <celeron55@gmail.com> (LGPLv2.1+)
Various Minetest developers and contributors (LGPLv2.1+) Various Minetest Game developers and contributors (LGPLv2.1+)
The torch code was derived by sofar from the 'torches' mod by The torch code was derived by sofar from the 'torches' mod by
BlockMen (LGPLv2.1+) BlockMen (LGPLv2.1+)

View File

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

View File

@@ -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
@@ -141,6 +141,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
string = formspec_string(lpp, data.page, lines, string) string = formspec_string(lpp, data.page, lines, string)
contents = formspec_read(player_name, title, string, contents = formspec_read(player_name, title, string,
text, data.page, data.page_max) text, data.page, data.page_max)
else
return -- malicious data
end end
tab_number = tab tab_number = tab
local formspec = formspec_size .. formspec_core(tab) .. contents local formspec = formspec_size .. formspec_core(tab) .. contents

View File

@@ -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
if not minetest.node_dig(up_pos, up_node, digger) then
break
end
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
-- --
@@ -616,10 +645,11 @@ minetest.register_abm({
-- Snow check is cheapest, so comes first -- Snow check is cheapest, so comes first
if name == "default:snow" then if name == "default:snow" then
minetest.set_node(pos, {name = "default:dirt_with_snow"}) minetest.set_node(pos, {name = "default:dirt_with_snow"})
elseif minetest.get_item_group(name, "grass") ~= 0 then -- The group grass is also present in dry grass, so check dry grass first
minetest.set_node(pos, {name = "default:dirt_with_grass"})
elseif minetest.get_item_group(name, "dry_grass") ~= 0 then elseif minetest.get_item_group(name, "dry_grass") ~= 0 then
minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) minetest.set_node(pos, {name = "default:dirt_with_dry_grass"})
elseif minetest.get_item_group(name, "grass") ~= 0 then
minetest.set_node(pos, {name = "default:dirt_with_grass"})
end end
end end
}) })
@@ -791,7 +821,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

View File

@@ -53,19 +53,19 @@ end
-- --
local function can_dig(pos, player) local function can_dig(pos, player)
local meta = minetest.get_meta(pos); local meta = core.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src")
end end
local function allow_metadata_inventory_put(pos, listname, index, stack, player) local function allow_metadata_inventory_put(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then if core.is_protected(pos, player:get_player_name()) then
return 0 return 0
end end
local meta = minetest.get_meta(pos) local meta = core.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
if listname == "fuel" then if listname == "fuel" then
if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then if core.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then
if inv:is_empty("src") then if inv:is_empty("src") then
meta:set_string("infotext", S("Furnace is empty")) meta:set_string("infotext", S("Furnace is empty"))
end end
@@ -81,44 +81,53 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player)
end end
local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player)
local meta = minetest.get_meta(pos) local meta = core.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local stack = inv:get_stack(from_list, from_index) local stack = inv:get_stack(from_list, from_index)
return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) return allow_metadata_inventory_put(pos, to_list, to_index, stack, player)
end end
local function allow_metadata_inventory_take(pos, listname, index, stack, player) local function allow_metadata_inventory_take(pos, listname, index, stack, player)
if minetest.is_protected(pos, player:get_player_name()) then if core.is_protected(pos, player:get_player_name()) then
return 0 return 0
end end
return stack:get_count() return stack:get_count()
end end
local function stop_furnace_sound(pos, fadeout_step) local function stop_furnace_sound(pos, fadeout_step)
local hash = minetest.hash_node_position(pos) local hash = core.hash_node_position(pos)
local sound_ids = furnace_fire_sounds[hash] local sound_ids = furnace_fire_sounds[hash]
if sound_ids then if sound_ids then
for _, sound_id in ipairs(sound_ids) do for _, sound_id in ipairs(sound_ids) do
minetest.sound_fade(sound_id, -1, 0) core.sound_fade(sound_id, -1, 0)
end end
furnace_fire_sounds[hash] = nil furnace_fire_sounds[hash] = nil
end end
end end
local function swap_node(pos, name) local function swap_node(pos, name)
local node = minetest.get_node(pos) local node = core.get_node(pos)
if node.name == name then if node.name == name then
return return
end end
node.name = name node.name = name
minetest.swap_node(pos, node) core.swap_node(pos, node)
end
local function add_item_or_drop(inv, pos, item)
local leftover = inv:add_item("dst", item)
if not leftover:is_empty() then
local above = vector.offset(pos, 0, 1, 0)
local drop_pos = core.find_node_near(pos, 1, {"air"}) or above
core.item_drop(leftover, nil, drop_pos)
end
end end
local function furnace_node_timer(pos, elapsed) local function furnace_node_timer(pos, elapsed)
-- --
-- Initialize metadata -- Initialize metadata
-- --
local meta = minetest.get_meta(pos) local meta = core.get_meta(pos)
local fuel_time = meta:get_float("fuel_time") or 0 local fuel_time = meta:get_float("fuel_time") or 0
local src_time = meta:get_float("src_time") or 0 local src_time = meta:get_float("src_time") or 0
local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 local fuel_totaltime = meta:get_float("fuel_totaltime") or 0
@@ -132,8 +141,8 @@ local function furnace_node_timer(pos, elapsed)
local cookable, cooked local cookable, cooked
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
@@ -146,7 +155,7 @@ local function furnace_node_timer(pos, elapsed)
-- Check if we have cookable content -- Check if we have cookable content
local aftercooked local aftercooked
cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) cooked, aftercooked = core.get_craft_result({method = "cooking", width = 1, items = srclist})
cookable = cooked.time ~= 0 cookable = cooked.time ~= 0
local el = math.min(elapsed, fuel_totaltime - fuel_time) local el = math.min(elapsed, fuel_totaltime - fuel_time)
@@ -165,15 +174,32 @@ local function furnace_node_timer(pos, elapsed)
-- Place result in dst list if possible -- Place result in dst list if possible
if inv:room_for_item("dst", cooked.item) then if inv:room_for_item("dst", cooked.item) then
inv:add_item("dst", cooked.item) inv:add_item("dst", cooked.item)
inv:set_stack("src", 1, aftercooked.items[1])
-- stop any final replacement from clogging "src"
local can_cook = core.get_craft_result({
method = "cooking", width = 1,
items = {aftercooked.items[1]:to_string()}})
can_cook = can_cook.time ~= 0 or not can_cook.item:is_empty()
if aftercooked.items[1]:is_empty() or can_cook then
-- cook the final "src" item in the next cycle
inv:set_stack("src", 1, aftercooked.items[1])
else
-- the final "src" item was replaced and is not cookable
inv:set_stack("src", 1, "")
add_item_or_drop(inv, pos, aftercooked.items[1])
end
src_time = src_time - cooked.time src_time = src_time - cooked.time
update = true update = true
-- add replacement item to dst so they arent lost
if cooked.replacements[1] then
add_item_or_drop(inv, pos, cooked.replacements[1])
end
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
@@ -184,7 +210,7 @@ local function furnace_node_timer(pos, elapsed)
if cookable then if cookable then
-- We need to get new fuel -- We need to get new fuel
local afterfuel local afterfuel
fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) fuel, afterfuel = core.get_craft_result({method = "fuel", width = 1, items = fuellist})
if fuel.time == 0 then if fuel.time == 0 then
-- No valid fuel in fuel list -- No valid fuel in fuel list
@@ -192,7 +218,7 @@ local function furnace_node_timer(pos, elapsed)
src_time = 0 src_time = 0
else else
-- prevent blocking of fuel inventory (for automatization mods) -- prevent blocking of fuel inventory (for automatization mods)
local is_fuel = minetest.get_craft_result({method = "fuel", width = 1, items = {afterfuel.items[1]:to_string()}}) local is_fuel = core.get_craft_result({method = "fuel", width = 1, items = {afterfuel.items[1]:to_string()}})
if is_fuel.time == 0 then if is_fuel.time == 0 then
table.insert(fuel.replacements, afterfuel.items[1]) table.insert(fuel.replacements, afterfuel.items[1])
inv:set_stack("fuel", 1, "") inv:set_stack("fuel", 1, "")
@@ -203,12 +229,7 @@ local function furnace_node_timer(pos, elapsed)
-- Put replacements in dst list or drop them on the furnace. -- Put replacements in dst list or drop them on the furnace.
local replacements = fuel.replacements local replacements = fuel.replacements
if replacements[1] then if replacements[1] then
local leftover = inv:add_item("dst", replacements[1]) add_item_or_drop(inv, pos, replacements[1])
if not leftover:is_empty() then
local above = vector.new(pos.x, pos.y + 1, pos.z)
local drop_pos = minetest.find_node_near(above, 1, {"air"}) or above
minetest.item_drop(replacements[1], nil, drop_pos)
end
end end
update = true update = true
fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time)
@@ -224,6 +245,11 @@ local function furnace_node_timer(pos, elapsed)
elapsed = elapsed - el elapsed = elapsed - el
end end
if items_smelt > 0 then
-- Play cooling sound
core.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
@@ -267,9 +293,9 @@ local function furnace_node_timer(pos, elapsed)
-- Play sound every 5 seconds while the furnace is active -- Play sound every 5 seconds while the furnace is active
if timer_elapsed == 0 or (timer_elapsed + 1) % 5 == 0 then if timer_elapsed == 0 or (timer_elapsed + 1) % 5 == 0 then
local sound_id = minetest.sound_play("default_furnace_active", local sound_id = core.sound_play("default_furnace_active",
{pos = pos, max_hear_distance = 16, gain = 0.25}) {pos = pos, max_hear_distance = 16, gain = 0.25})
local hash = minetest.hash_node_position(pos) local hash = core.hash_node_position(pos)
furnace_fire_sounds[hash] = furnace_fire_sounds[hash] or {} furnace_fire_sounds[hash] = furnace_fire_sounds[hash] or {}
table.insert(furnace_fire_sounds[hash], sound_id) table.insert(furnace_fire_sounds[hash], sound_id)
-- Only remember the 3 last sound handles -- Only remember the 3 last sound handles
@@ -277,7 +303,7 @@ local function furnace_node_timer(pos, elapsed)
table.remove(furnace_fire_sounds[hash], 1) table.remove(furnace_fire_sounds[hash], 1)
end end
-- Remove the sound ID automatically from table after 11 seconds -- Remove the sound ID automatically from table after 11 seconds
minetest.after(11, function() core.after(11, function()
if not furnace_fire_sounds[hash] then if not furnace_fire_sounds[hash] then
return return
end end
@@ -298,7 +324,7 @@ local function furnace_node_timer(pos, elapsed)
formspec = default.get_furnace_inactive_formspec() formspec = default.get_furnace_inactive_formspec()
swap_node(pos, "default:furnace") swap_node(pos, "default:furnace")
-- stop timer on the inactive furnace -- stop timer on the inactive furnace
minetest.get_node_timer(pos):stop() core.get_node_timer(pos):stop()
meta:set_int("timer_elapsed", 0) meta:set_int("timer_elapsed", 0)
stop_furnace_sound(pos) stop_furnace_sound(pos)
@@ -329,7 +355,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
core.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",
@@ -347,7 +378,7 @@ minetest.register_node("default:furnace", {
on_timer = furnace_node_timer, on_timer = furnace_node_timer,
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = core.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
inv:set_size('src', 1) inv:set_size('src', 1)
inv:set_size('fuel', 1) inv:set_size('fuel', 1)
@@ -356,15 +387,15 @@ minetest.register_node("default:furnace", {
end, end,
on_metadata_inventory_move = function(pos) on_metadata_inventory_move = function(pos)
minetest.get_node_timer(pos):start(1.0) core.get_node_timer(pos):start(1.0)
end, end,
on_metadata_inventory_put = function(pos) on_metadata_inventory_put = function(pos)
-- start timer function, it will sort out whether furnace can burn or not. -- start timer function, it will sort out whether furnace can burn or not.
minetest.get_node_timer(pos):start(1.0) core.get_node_timer(pos):start(1.0)
end, end,
on_metadata_inventory_take = function(pos) on_metadata_inventory_take = function(pos)
-- check whether the furnace is empty or not. -- check whether the furnace is empty or not.
minetest.get_node_timer(pos):start(1.0) core.get_node_timer(pos):start(1.0)
end, end,
on_blast = function(pos) on_blast = function(pos)
local drops = {} local drops = {}
@@ -372,23 +403,23 @@ minetest.register_node("default:furnace", {
default.get_inventory_drops(pos, "fuel", drops) default.get_inventory_drops(pos, "fuel", drops)
default.get_inventory_drops(pos, "dst", drops) default.get_inventory_drops(pos, "dst", drops)
drops[#drops+1] = "default:furnace" drops[#drops+1] = "default:furnace"
minetest.remove_node(pos) core.remove_node(pos)
return drops return drops
end, end,
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", { core.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",
"default_furnace_side.png", "default_furnace_side.png", "default_furnace_side.png", "default_furnace_side.png",
"default_furnace_side.png", "default_furnace_side.png",
{ {
image = "default_furnace_front_active.png", name = "default_furnace_front_active.png",
backface_culling = false, backface_culling = false,
animation = { animation = {
type = "vertical_frames", type = "vertical_frames",
@@ -415,9 +446,9 @@ 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({ core.register_craft({
output = "default:furnace", output = "default:furnace",
recipe = { recipe = {
{"group:stone", "group:stone", "group:stone"}, {"group:stone", "group:stone", "group:stone"},

View File

@@ -1,4 +1,4 @@
-- Minetest 0.4 mod: default -- Minetest Game mod: default
-- See README.txt for licensing and other information. -- See README.txt for licensing and other information.
-- The API documentation in here was moved into game_api.txt -- The API documentation in here was moved into game_api.txt
@@ -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

View File

@@ -2,9 +2,38 @@
local builtin_item = minetest.registered_entities["__builtin:item"] local builtin_item = minetest.registered_entities["__builtin:item"]
-- strictly speaking none of this is part of the API, so do some checks
-- and if it looks wrong skip the modifications
if not builtin_item or type(builtin_item.set_item) ~= "function" or type(builtin_item.on_step) ~= "function" then
minetest.log("warning", "Builtin item entity does not look as expected, skipping overrides.")
return
end
local smoke_particles = {
amount = 3,
time = 0.1,
minpos = vector.new(-0.1, -0.1, -0.1),
maxpos = vector.new(0.1, 0.1, 0.1),
minvel = vector.new(0, 2.5, 0),
maxvel = vector.new(0, 2.5, 0),
minacc = vector.new(-0.15, -0.02, -0.15),
maxacc = vector.new(0.15, -0.01, 0.15),
minexptime = 4,
maxexptime = 6,
minsize = 5,
maxsize = 5,
collisiondetection = true,
texture = {
name = "default_item_smoke.png"
}
}
if minetest.features.particle_blend_clip then
smoke_particles.texture.blend = "clip"
end
local item = { local item = {
set_item = function(self, itemstring) set_item = function(self, itemstring, ...)
builtin_item.set_item(self, itemstring) builtin_item.set_item(self, itemstring, ...)
local stack = ItemStack(itemstring) local stack = ItemStack(itemstring)
local itemdef = minetest.registered_items[stack:get_name()] local itemdef = minetest.registered_items[stack:get_name()]
@@ -22,22 +51,10 @@ local item = {
gain = 1.0, gain = 1.0,
max_hear_distance = 8, max_hear_distance = 8,
}, true) }, true)
minetest.add_particlespawner({ local ps = table.copy(smoke_particles)
amount = 3, ps.minpos = vector.add(ps.minpos, p)
time = 0.1, ps.maxpos = vector.add(ps.maxpos, p)
minpos = {x = p.x - 0.1, y = p.y + 0.1, z = p.z - 0.1 }, minetest.add_particlespawner(ps)
maxpos = {x = p.x + 0.1, y = p.y + 0.2, z = p.z + 0.1 },
minvel = {x = 0, y = 2.5, z = 0},
maxvel = {x = 0, y = 2.5, z = 0},
minacc = {x = -0.15, y = -0.02, z = -0.15},
maxacc = {x = 0.15, y = -0.01, z = 0.15},
minexptime = 4,
maxexptime = 6,
minsize = 5,
maxsize = 5,
collisiondetection = true,
texture = "default_item_smoke.png"
})
end, end,
on_step = function(self, dtime, ...) on_step = function(self, dtime, ...)

View File

@@ -3,7 +3,7 @@ License of source code
GNU Lesser General Public License, version 2.1 GNU Lesser General Public License, version 2.1
Copyright (C) 2011-2018 celeron55, Perttu Ahola <celeron55@gmail.com> Copyright (C) 2011-2018 celeron55, Perttu Ahola <celeron55@gmail.com>
Copyright (C) 2011-2018 Various Minetest developers and contributors Copyright (C) 2011-2018 Various Minetest Game developers and contributors
This program is free software; you can redistribute it and/or modify it under the terms This program is free software; you can redistribute it and/or modify it under the terms
of the GNU Lesser General Public License as published by the Free Software Foundation; of the GNU Lesser General Public License as published by the Free Software Foundation;

215
mods/default/locale/default.bg.tr Executable file
View File

@@ -0,0 +1,215 @@
# textdomain: default
Locked Chest=Заключен сандък
Locked Chest (owned by @1)=Заключен сандък (собственост на @1)
You do not own this chest.=Не притежавате този сандък.
a locked chest=заключен сандък
Chest=Сандък
Write=Четене
Read=Писане
Title:=Заглавие:
Contents:=Съдържание:
Save=Запазване
by @1=от @1
Page @1 of @2=Страница @1 от @2
The book you were writing to mysteriously disappeared.=Книгата, в която пишехте мистериозно изчезна.
"@1" by @2=„@1“ от @2
Blueberries=Боровинки
Book=Книга
Book with Text=Книга с текстове
Bronze Ingot=Бронзово кюлче
Clay Brick=Калена тухла
Clay Lump=Купчина глина
Coal Lump=Купчина въглища
Copper Ingot=Медно кюлче
Copper Lump=Купчина мед
Diamond=Диамант
Flint=Кремък
Gold Ingot=Златно кюлче
Gold Lump=Купчина злато
Iron Lump=Желязно кюлче
Mese Crystal=Кристал месе
Mese Crystal Fragment=Парче от кристал месе
Obsidian Shard=Късче обсидиан
Paper=Хартия
Steel Ingot=Стоманено кюлче
Stick=Пръчка
Tin Ingot=Калаено кюлче
Tin Lump=Купчина калай
Furnace is empty=Фурната е празна
100% (output full)=100% (изходът е пълен)
@1%=@1%
Not cookable=Това не се готви
Empty=Празно
Furnace active=Фурната работи
Furnace inactive=Фурната не работи
(Item: @1; Fuel: @2)=(Предмет: @1; гориво: @2)
Furnace=Фурна
Stone=Камък
Cobblestone=Паваж
Stone Brick=Каменна тухла
Stone Block=Каменно блокче
Mossy Cobblestone=Паваж покрит с мъх
Desert Stone=Пустинен камък
Desert Cobblestone=Пустинен паваж
Desert Stone Brick=Тухла от пустинен камък
Desert Stone Block=Блокче от пустинен камък
Sandstone=Пясъчник
Sandstone Brick=Тухла от пясъчник
Sandstone Block=Блокче от пясъчник
Desert Sandstone=Пустинен пясъчник
Desert Sandstone Brick=Тухла от пустинен пясъчник
Desert Sandstone Block=Блокче от пустинен пясъчник
Silver Sandstone=Сребърен пясъчник
Silver Sandstone Brick=Тухла от сребърен пясъчник
Silver Sandstone Block=Блокче от сребърен пясъчник
Obsidian=Обсидиан
Obsidian Brick=Тухла от обсидиан
Obsidian Block=Блокче от обсидиан
Dirt=Почва
Dirt with Grass=Почва с трева
Dirt with Grass and Footsteps=Почва с трева и стъпки
Dirt with Savanna Grass=Почва с трева от саваната
Dirt with Snow=Почва със сняг
Dirt with Rainforest Litter=Почва с растителна маса от тропическа гора
Dirt with Coniferous Litter=Почва с растителна маса от иглолистна гора
Savanna Dirt=Почва от саваната
Savanna Dirt with Savanna Grass=Почва от саваната с трева от саваната
Permafrost=Вечно замръзнала почва
Permafrost with Stones=Вечно замръзнала почва с камъни
Permafrost with Moss=Вечно замръзнала почва с мъх
Sand=Пясък
Desert Sand=Пустинен пясък
Silver Sand=Сребърен пясък
Gravel=Чакъл
Clay=Глина
Snow=Сняг
Snow Block=Блокче сняг
Ice=Лед
Cave Ice=Блокче лед
Apple Tree=Ябълково дърво
Apple Wood Planks=Дъски от ябълково дърво
Apple Tree Sapling=Фиданка от ябълково дърво
Apple Tree Leaves=Листа на ябълково дърво
Apple=Ябълка
Apple Marker=Маркер на ябълка
Jungle Tree=Джунглово дърво
Jungle Wood Planks=Дъски от джунглово дърво
Jungle Tree Leaves=Листа на джунглово дърво
Jungle Tree Sapling=Фиданка от джунглово дърво
Emergent Jungle Tree Sapling=Покълнала фиданка от джунглово дърво
Pine Tree=Борово дърво
Pine Wood Planks=Дъски от борово дърво
Pine Needles=Борови иглички
Pine Tree Sapling=Фиданка от борово дърво
Acacia Tree=Акациево дърво
Acacia Wood Planks=Дъски от акациево дърво
Acacia Tree Leaves=Листа на акациево дърво
Acacia Tree Sapling=Фиданка от акациево дърво
Aspen Tree=Трепетликово дърво
Aspen Wood Planks=Дъски от трепетликово дърво
Aspen Tree Leaves=Листа на трепетликово дърво
Aspen Tree Sapling=Фиданка от трепетликово дърво
Coal Ore=Въглищна руда
Coal Block=Блокче въглища
Iron Ore=Желязна руда
Steel Block=Стеманено блокче
Copper Ore=Медна руда
Copper Block=Медно блокче
Tin Ore=Калаена руда
Tin Block=Калаено блокче
Bronze Block=Бронзово блокче
Mese Ore=Руда за месе
Mese Block=Блокче от месе
Gold Ore=Златна руда
Gold Block=Златно блокче
Diamond Ore=Диамантена руда
Diamond Block=Диамантено блокче
Cactus=Кактус
Large Cactus Seedling=Семена на голям кактус
Papyrus=Папирус
Dry Shrub=Сух храст
Jungle Grass=Трева от джунглата
Grass=Трева
Savanna Grass=Трева от саваната
Fern=Папрат
Marram Grass=Пясъчна трева
Bush Stem=Ствол на храст
Bush Leaves=Листа на храст
Bush Sapling=Фиданка на храст
Blueberry Bush Leaves with Berries=Листа на боровинков храст с боровинки
Blueberry Bush Leaves=Листа на боровинков храст
Blueberry Bush Sapling=Фиданка на боровинков храст
Acacia Bush Stem=Ствол на акациев храст
Acacia Bush Leaves=Листа на акациев храст
Acacia Bush Sapling=Фиданка на акациев храст
Pine Bush Stem=Ствол на боров храст
Pine Bush Needles=Бодлички на боров храст
Pine Bush Sapling=Фиданка на борох храст
Kelp=Водорасли
Green Coral=Зелен корал
Pink Coral=Розов корал
Cyan Coral=Син корал
Brown Coral=Кафяв корал
Orange Coral=Оранжев корал
Coral Skeleton=Скелет на корал
Water Source=Източник на вода
Flowing Water=Течаща вода
River Water Source=Източник на речна вода
Flowing River Water=Течаща речна вода
Lava Source=Източник на лава
Flowing Lava=Течаща лава
Empty Bookshelf=Празна библиотека
Bookshelf (@1 written, @2 empty books)=Библиотека (@1 написани, @2 празни книги)
Bookshelf=Библиотека
Text too long=Текстът е двърде дълъг
"@1"=„@1“
Wooden Sign=Дървен знак
Steel Sign=Стоманен знак
Wooden Ladder=Дървена стълба
Steel Ladder=Стоманена стълба
Apple Wood Fence=Ограда от ябълково дърво
Acacia Wood Fence=Ограда от акациево дърво
Jungle Wood Fence=Ограда от джунглово дърво
Pine Wood Fence=Ограда от борово дърво
Aspen Wood Fence=Ограда от трепетликово дърво
Apple Wood Fence Rail=Парапет от ябълково дърво
Acacia Wood Fence Rail=Парапет от акациево дърво
Jungle Wood Fence Rail=Парапет от джунглово дърво
Pine Wood Fence Rail=Парапет от борово дърво
Aspen Wood Fence Rail=Парапет от трепетликово дърво
Glass=Стъкло
Obsidian Glass=Обсидианово стъкло
Brick Block=Блокче от тухли
Mese Lamp=Лампа от кристал месе
Apple Wood Mese Post Light=Поставка за лампа с месе от ябълково дърво
Acacia Wood Mese Post Light=Поставка за лампа с месе от акациево дърво
Jungle Wood Mese Post Light=Поставка за лампа с месе от джунглово дърво
Pine Wood Mese Post Light=Поставка за лампа с месе от борово дърво
Aspen Wood Mese Post Light=Поставка за лампа с месе от трепетликово дърво
Cloud=Облак
Wooden Pickaxe=Дървена кирка
Stone Pickaxe=Каменна кирка
Bronze Pickaxe=Бронзова кирка
Steel Pickaxe=Стоманена кирка
Mese Pickaxe=Кирка от кристала месе
Diamond Pickaxe=Диамантена кирка
Wooden Shovel=Дървена лопата
Stone Shovel=Каменна лопата
Bronze Shovel=Бронзова лопата
Steel Shovel=Стоманена лопата
Mese Shovel=Лопата от кристала месе
Diamond Shovel=Диамантена лопата
Wooden Axe=Дървена брадва
Stone Axe=Каменна брадва
Bronze Axe=Бронзова брадва
Steel Axe=Стоманена брадва
Mese Axe=Брадва от кристала месе
Diamond Axe=Диамантена брадва
Wooden Sword=Дървен меч
Stone Sword=Каменен меч
Bronze Sword=Бронзов меч
Steel Sword=Стоманен меч
Mese Sword=Меч от кристала месе
Diamond Sword=Диамантен меч
Torch=Факел
@1 will intersect protection on growth.=@1 ще наруши защитата при израстване.

View File

@@ -0,0 +1,215 @@
# textdomain: default
Locked Chest=Låst kiste
Locked Chest (owned by @1)=Låst kiste (ejet af @1)
You do not own this chest.=Du ejer ikke denne kiste.
a locked chest=en låst kiste
Chest=Kiste
Write=Skriv
Read=Læs
Title:=Titel:
Contents:=Indhold:
Save=Gem
by @1=af @1
Page @1 of @2=Side @1 af @2
The book you were writing to mysteriously disappeared.=Bogen som du skrev på er på mystisk vis forsvundet.
"@1" by @2="@1" af @2
Blueberries=Blåbær
Book=Bog
Book with Text=Bog med tekst
Bronze Ingot=Bronzebarre
Clay Brick=Lermursten
Clay Lump=Lerklump
Coal Lump=Kulklump
Copper Ingot=Kobberbarre
Copper Lump=Kobberklump
Diamond=Diamand
Flint=Flint
Gold Ingot=Guldbarre
Gold Lump=Guldklump
Iron Lump=Jernklump
Mese Crystal=Mesekrystal
Mese Crystal Fragment=Mesekrystalfragment
Obsidian Shard=Obsidianskår
Paper=Papir
Steel Ingot=Stålbarre
Stick=Pind
Tin Ingot=Tinbarre
Tin Lump=Tinklump
Furnace is empty=Ovnen er tom
100% (output full)=100% (output er fuld)
@1%=@1%
Not cookable=Ikke kogbar
Empty=Tom
Furnace active=Ovn aktiv
Furnace inactive=Ovn inaktiv
(Item: @1; Fuel: @2)=(Ting: @1; Brændstof: @2)
Furnace=Ovn
Stone=Sten
Cobblestone=Granitsten
Stone Brick=Stenmursten
Stone Block=Stenblok
Mossy Cobblestone=Mosbeklædt granitsten
Desert Stone=Ørkensten
Desert Cobblestone=Ørkengranitsten
Desert Stone Brick=Ørkenmursten
Desert Stone Block=Ørkenstenblok
Sandstone=Sandsten
Sandstone Brick=Sandstensmursten
Sandstone Block=Sandstensblok
Desert Sandstone=Ørkensandsten
Desert Sandstone Brick=Ørkensandstensmursten
Desert Sandstone Block=Ørkensandstensblok
Silver Sandstone=Sølvsandsten
Silver Sandstone Brick=Sølvsandstenmursten
Silver Sandstone Block=Sølvsandstenblok
Obsidian=Obsidian
Obsidian Brick=Obsidianmursten
Obsidian Block=Obsidianblok
Dirt=Jord
Dirt with Grass=Jord med græs
Dirt with Grass and Footsteps=Jord med græs og fodtrin
Dirt with Savanna Grass=Jord med savannegræs
Dirt with Snow=Jord med sne
Dirt with Rainforest Litter=Jord med regnskovstæppe
Dirt with Coniferous Litter=Jord med nåletræstæppe
Savanna Dirt=Savannejord
Savanna Dirt with Savanna Grass=Savannejord med savannegræs
Permafrost=Permafrost
Permafrost with Stones=Permafrost med sten
Permafrost with Moss=Permafrost med mos
Sand=Sand
Desert Sand=Ørkensand
Silver Sand=Sølvsand
Gravel=Grus
Clay=Ler
Snow=Sne
Snow Block=Sneblok
Ice=Is
Cave Ice=Huleis
Apple Tree=Æbletræ
Apple Wood Planks=Æbletræsplanker
Apple Tree Sapling=Æbletræsspire
Apple Tree Leaves=Æbletræsblade
Apple=Æble
Apple Marker=Æblemarkør
Jungle Tree=Jungletræ
Jungle Wood Planks=Jungletræsplanke
Jungle Tree Leaves=Jungletræsblade
Jungle Tree Sapling=Jungletræsspire
Emergent Jungle Tree Sapling=Fremvoksende jungletræsspire
Pine Tree=Fyrretræ
Pine Wood Planks=Fyrretræsplanker
Pine Needles=Fyrretræsnåle
Pine Tree Sapling=Fyrretræsspire
Acacia Tree=Arkasietræ
Acacia Wood Planks=Arkasietræsplanker
Acacia Tree Leaves=Arkasietræsblade
Acacia Tree Sapling=Arkasietræsspire
Aspen Tree=Aspetræ
Aspen Wood Planks=Aspetræsplanker
Aspen Tree Leaves=Aspetræsblade
Aspen Tree Sapling=Aspetræsspire
Coal Ore=Kulmalm
Coal Block=Kulblok
Iron Ore=Jernmalm
Steel Block=Stålblok
Copper Ore=Kobbermalm
Copper Block=Kobberblok
Tin Ore=Tinmalm
Tin Block=Tinblok
Bronze Block=Bronzeblok
Mese Ore=Mesemalm
Mese Block=Meseblok
Gold Ore=Guldmalm
Gold Block=Guldblok
Diamond Ore=Diamandmalm
Diamond Block=Diamandblok
Cactus=Kaktus
Large Cactus Seedling=Stor kaktusspire
Papyrus=Papyrus
Dry Shrub=Tør busk
Jungle Grass=Junglegræs
Grass=Græs
Savanna Grass=Savannegræs
Fern=Bregne
Marram Grass=Marramgræs
Bush Stem=Buskstamme
Bush Leaves=Buskblade
Bush Sapling=Buskspire
Blueberry Bush Leaves with Berries=Blåbærbuskblade med bær
Blueberry Bush Leaves=Blåbærbuskblade
Blueberry Bush Sapling=Blåbærbuskspire
Acacia Bush Stem=Akaciebuskstamme
Acacia Bush Leaves=Akaciebuskblade
Acacia Bush Sapling=Akaciebuskspire
Pine Bush Stem=Fyrretræsbuskstamme
Pine Bush Needles=Fyrretræsbusknåle
Pine Bush Sapling=Fyrretræsbuskspire
Kelp=Tang
Green Coral=Grøn koral
Pink Coral=Lyserød koral
Cyan Coral=Cyan koral
Brown Coral=Brun koral
Orange Coral=Orange koral
Coral Skeleton=Koralskelet
Water Source=Vandkilde
Flowing Water=Strømmende vand
River Water Source=Flodvandkilde
Flowing River Water=Strømmende flodvand
Lava Source=Lavakilde
Flowing Lava=Flydende lava
Empty Bookshelf=Tom boghylde
Bookshelf (@1 written, @2 empty books)=Boghylde (@1 skrevne, @2 tomme bøger)
Bookshelf=Boghylde
Text too long=Tekst for lang
"@1"="@1"
Wooden Sign=Trætegn
Steel Sign=Ståltegn
Wooden Ladder=Træstige
Steel Ladder=Stålstige
Apple Wood Fence=Æbletræshegn
Acacia Wood Fence=Akacietræshegn
Jungle Wood Fence=Jungletræhegn
Pine Wood Fence=Fyrretræshegn
Aspen Wood Fence=Aspetræhegn
Apple Wood Fence Rail=Æbletræhegnsskinne
Acacia Wood Fence Rail=Akacietræshegnsskinne
Jungle Wood Fence Rail=Jungletræshegnsskinne
Pine Wood Fence Rail=Fyrretræshegnsskinne
Aspen Wood Fence Rail=Aspetræshegnsskinne
Glass=Glas
Obsidian Glass=Obsidianglas
Brick Block=Murstensblok
Mese Lamp=Meselampe
Apple Wood Mese Post Light=Æbletræsmesepostlys
Acacia Wood Mese Post Light=Arkacietræsmesepostlys
Jungle Wood Mese Post Light=Jungletræsmesepostlys
Pine Wood Mese Post Light=Fyrretræsmesepostlys
Aspen Wood Mese Post Light=Aspetræsmesepostlys
Cloud=Sky
Wooden Pickaxe=Træskovhakke
Stone Pickaxe=Stenskovhakke
Bronze Pickaxe=Bronzeskovhakke
Steel Pickaxe=Stålskovhakke
Mese Pickaxe=Meseskovhakke
Diamond Pickaxe=Diamandskovhakke
Wooden Shovel=Træskovl
Stone Shovel=Stenskovl
Bronze Shovel=Bronzeskovl
Steel Shovel=Stålskovl
Mese Shovel=Meseskovl
Diamond Shovel=Diamandskovl
Wooden Axe=Træøkse
Stone Axe=Stenøkse
Bronze Axe=Bronzeøkse
Steel Axe=Ståløkse
Mese Axe=Meseøkse
Diamond Axe=Diamandøkse
Wooden Sword=Træsværd
Stone Sword=Stensværd
Bronze Sword=Bronzesværd
Steel Sword=Stålsværd
Mese Sword=Mesesværd
Diamond Sword=Diamandsværd
Torch=Fakkel
@1 will intersect protection on growth.=Ved vækst vil @1 overlappe beskyttelse.

View File

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

View File

@@ -0,0 +1,224 @@
# textdomain: default
Locked Chest=Itxitako kutxa
Locked Chest (owned by @1)=Itxitako kutxa (jabea: @1)
You do not own this chest.=Kutxa hau ez da zurea.
a locked chest=kutxa itxi bat
Chest=Kutxa
Write=Idatzi
Read=Irakurri
Title:=Izenburua:
Contents:=Edukiak:
Save=Gorde
by @1=@1 bidez
Page @1 of @2=@2 orritik @1a
The book you were writing to mysteriously disappeared.=Idazten ari zinen liburua modu misteriotsuan desagertu da.
"@1" by @2="@1" @2 bidez
Blueberries=Ahabiak
Book=Liburua
Book with Text=Liburu idatzia
Bronze Ingot=Brontzezko lingotea
Clay Brick=Buztinezko Adreilua
Clay Lump=Buztin zatia
Coal Lump=Ikatz zatia
Copper Ingot=Kobrezko lingotea
Copper Lump=Kobrezko zatia
Diamond=Diamantea
Flint=Suharria
Gold Ingot=Urrezko lingotea
Gold Lump=Urrezko zatia
Iron Lump=Burdinazko zatia
Mese Crystal=Mese kristala
Mese Crystal Fragment=Mese kristalaren zatia
Obsidian Shard=Obsidiana-eskirla
Paper=Papera
Steel Ingot=Altzairuzko lingotea
Stick=Makila
Tin Ingot=Eztainuzko lingotea
Tin Lump=Eztainuzko zatia
Furnace is empty=Labea hutsik dago
100% (output full)=% 100 (irteera osoa)
@1%=%@1
Not cookable=Ezin da kozinatu
Empty=Hutsa
Furnace active=Labea aktibatuta
Furnace inactive=Labea desaktibatuta
(Item: @1; Fuel: @2)=(Objektua: @1; Erregaia: @2)
Furnace=Labea
Stone=Harria
Cobblestone=Galtzada-harria
Stone Brick=Harrizko Adreilua
Stone Block=Harrizko Blokea
Mossy Cobblestone=Goroldiodun Galtzada-harria
Desert Stone=Basamortuko harria
Desert Cobblestone=Basamortuko galtzada-harria
Desert Stone Brick=Basamortuko harrizko Adreilua
Desert Stone Block=Basamortuko harrizko Blokea
Sandstone=Hareharria
Sandstone Brick=Hareharrizko Adreilua
Sandstone Block=Hareharrizko Blokea
Desert Sandstone=Basamortuko Hareharria
Desert Sandstone Brick=Basamortuko hareharrizko Adreilua
Desert Sandstone Block=Basamortuko hareharrizko Blokea
Silver Sandstone=Zilar-koloreko Hareharria
Silver Sandstone Brick=Zilar koloreko hareharrizko Adreilua
Silver Sandstone Block=Zilar koloreko hareharrizko Blokea
Obsidian=Obsidiana
Obsidian Brick=Obsidianazko Adreilua
Obsidian Block=Obsidiana-Blokea
Dirt=Lurra
Dirt with Grass=Lurra belarrarekin
Dirt with Grass and Footsteps=Lurra belar eta oinatzekin
Dirt with Savanna Grass=Lurra sabana-belarrarekin
Dirt with Snow=Lurra elurrarekin
Dirt with Rainforest Litter=Lurra oihan tropikaleko orbelarekin
Dirt with Coniferous Litter=Lurra koniferoen orbelarekin
Savanna Dirt=Sabana-lurra
Savanna Dirt with Savanna Grass=Sabana-lurra sabana-belarrarekin
Permafrost=Permafrost
Permafrost with Stones=Permafrost harritsua
Permafrost with Moss=Goroldioa duen Permafrosta
Sand=Harea
Desert Sand=Basamortuko harea
Silver Sand=Zilar koloreko harea
Gravel=Legarra
Clay=Buztina
Snow=Elurra
Snow Block=Elur-Blokea
Ice=Izotza
Cave Ice=Haitzuloko Izotza
Apple Tree=Sagarrondo-zura
Apple Wood Planks=Sagarrondo-oholak
Apple Tree Sapling=Sagarrondo-kimua
Apple Tree Leaves=Sagarrondo-hostoak
Apple=Sagarra
Apple Marker=Sagarrondo-markatzailea
Jungle Tree=Zuhaitz tropikaleko egurra
Jungle Wood Planks=Egur tropikaleko oholak
Jungle Tree Leaves=Zuhaitz tropikaleko hostoak
Jungle Tree Sapling=Zuhaitz tropikalaren kimua
Emergent Jungle Tree Sapling=Zuhaitz tropikalaren kimua
Pine Tree=Pinu-zura
Pine Wood Planks=Pinu taulak
Pine Needles=Pinu-orratzak
Pine Tree Sapling=Pinu-kimua
Acacia Tree=Akaziako zura
Acacia Wood Planks=Akazia-taulak
Acacia Tree Leaves=Akazia-hostoak
Acacia Tree Sapling=Akaziazko kimua
Aspen Tree=Makalaren zura
Aspen Wood Planks=Makalaren taulak
Aspen Tree Leaves=Makal-hostoak
Aspen Tree Sapling=Makalaren kimua
Coal Ore=Ikatz-minerala
Coal Block=Ikatz-Blokea
Iron Ore=Burdin minerala
Steel Block=Altzairuzko Blokea
Copper Ore=Kobre-minerala
Copper Block=Kobrezko Blokea
Tin Ore=Eztainuzko minerala
Tin Block=Eztainu-Blokea
Bronze Block=Brontzezko Blokea
Mese Ore=Mineral-minerala
Mese Block=Hileko Blokea
Gold Ore=Urrezko minerala
Gold Block=Urrezko Blokea
Diamond Ore=Diamantezko minerala
Diamond Block=Diamante-Blokea
Cactus=Kaktusa
Large Cactus Seedling=Kaktusen zurtoin handia
Papyrus=Papiroa
Dry Shrub=Zuhaixka lehorra
Jungle Grass=Oihan-belarra
Grass=Belarra
Savanna Grass=Sabana-belarra
Fern=Iratzea
Marram Grass=Lezka
Bush Stem=Zuhaixka-zurtoina
Bush Leaves=Zuhaixka-hostoak
Bush Sapling=Zuhaixka-kimua
Blueberry Bush Leaves with Berries=Ahabizko zuhaixka-hostoak baiekin
Blueberry Bush Leaves=Ahabi-zuhaixkaren hostoak
Blueberry Bush Sapling=Ahabi-zuhaixkaren kimua
Acacia Bush Stem=Akaziako zuhaixka-zurtoina
Acacia Bush Leaves=Akaziazko zuhaixka-hostoak
Acacia Bush Sapling=Akaziazko zuhaixka-kimua
Pine Bush Stem=Pinu-zuhaixkaren zurtoina
Pine Bush Needles=Pinu-zuhaixken orratzak
Pine Bush Sapling=Pinu-zuhaixkaren kimua
Kelp=Itsas alga
Green Coral=Koral berdea
Pink Coral=Koral arrosa
Cyan Coral=Koral ziana
Brown Coral=Kafe-korala
Orange Coral=Koral laranja
Coral Skeleton=Koralezko eskeletoa
Water Source=Ur-iturria
Flowing Water=Ur-fluidoa
River Water Source=Ibaiko ur-iturria
Flowing River Water=Ibai-uraren fluidoa
Lava Source=Laba-iturria
Flowing Lava=Laba-fluidoa
Empty Bookshelf=Liburu-denda hutsik
Bookshelf (@1 written, @2 empty books)=Apalategia(@1 idatziak, @2 liburu zurian)
Bookshelf=Liburutegia
Text too long=Testu luzeegia
"@1"="@1"
Wooden Sign=Egurrezko kartela
Steel Sign=Altzairuzko kartela
Wooden Ladder=Egurrezko eskailera
Steel Ladder=Altzairuzko eskailera
Apple Wood Fence=Sagarrondotik gertu
Acacia Wood Fence=Akaziatik gertu
Jungle Wood Fence=Zur tropikaleko hesia
Pine Wood Fence=Pinutik gertu
Aspen Wood Fence=Alamotik gertu
Apple Wood Fence Rail=Sagarrondo-listoiak hurbilerako
Acacia Wood Fence Rail=Akazia-listoiak hurbilerako
Jungle Wood Fence Rail=Zur tropikaleko listoiak hurbilerako
Pine Wood Fence Rail=Hurbileko pinu-listoiak
Aspen Wood Fence Rail=Alamo-listoiak hurbilerako
Glass=Beira
Obsidian Glass=Obsidianazko beira
Brick Block=Adreiluzko Blokea
Mese Lamp=Su-lanpara
Apple Wood Mese Post Light=Sagarrondo-egurrezko argi-zutoina
Acacia Wood Mese Post Light=Akaziaren egurrezko argi-zutoina
Jungle Wood Mese Post Light=Oihan-egurrezko argi-zutoina
Pine Wood Mese Post Light=Pinu-egurrezko argi-zutoina
Aspen Wood Mese Post Light=Makalaren egurrezko argi-zutoina
Cloud=Hodeia
Wooden Pickaxe=Egurrezko Pikotxa
Stone Pickaxe=Harrizko Pikotxa
Bronze Pickaxe=Brontzezko Pikotxa
Steel Pickaxe=Altzairuzko Pikotxa
Mese Pickaxe=Mese Pikotxa
Diamond Pickaxe=Diamantezko Pikotxa
Wooden Shovel=Egurrezko pala
Stone Shovel=Harrizko pala
Bronze Shovel=Brontzezko pala
Steel Shovel=Altzairuzko pala
Mese Shovel=Mese pala
Diamond Shovel=Diamantezko pala
Wooden Axe=Egurrezko aizkora
Stone Axe=Harrizko aizkora
Bronze Axe=Brontzezko aizkora
Steel Axe=Altzairuzko aizkora
Mese Axe=Mese aizkora
Diamond Axe=Diamantezko aizkora
Wooden Sword=Egurrezko ezpata
Stone Sword=Harrizko ezpata
Bronze Sword=Brontzezko ezpata
Steel Sword=Altzairuzko ezpata
Mese Sword=Hileko ezpata
Diamond Sword=Diamantezko ezpata
Torch=Lastargia
@1 will intersect protection on growth.=@1 hazkundearen babesa gurutzatuko du.
##### not used anymore #####
Dirt with Dry Grass=Lurra belar lehorrarekin
Dry Dirt=Lur lehorra
Dry Dirt with Dry Grass=Lur lehorra belar lehorrarekin
Dry Grass=Belar lehorra
Mese Post Light=Mese Argi-zutoia

View File

@@ -0,0 +1,215 @@
# textdomain: default
Locked Chest=Lezárt láda
Locked Chest (owned by @1)=Lezárt láda (@1 tulajdona)
You do not own this chest.=Nem a tiéd ez a láda.
a locked chest=egy lezárt láda
Chest=Láda
Write=Ír
Read=Olvas
Title:=Cím:
Contents:=Tartalom:
Save=Mentés
by @1=@1 által
Page @1 of @2=@1/@2 oldal
The book you were writing to mysteriously disappeared.=A könyv, amibe írtál, rejtélyes módon eltűnt.
"@1" by @2="@1" @2 által
Blueberries=Áfonya
Book=Könyv
Book with Text=Könyv szöveggel
Bronze Ingot=Bronz öntvény
Clay Brick=Agyag tégla
Clay Lump=Agyag rög
Coal Lump=Széndarab
Copper Ingot=Réz öntvény
Copper Lump=Réz rög
Diamond=Gyémánt
Flint=Kovakő
Gold Ingot=Arany öntvény
Gold Lump=Arany rög
Iron Lump=Vas rög
Mese Crystal=Mese kristály
Mese Crystal Fragment=Mese kristály töredék
Obsidian Shard=Obszidián szilánk
Paper=Papír
Steel Ingot=Acél öntvény
Stick=Bot
Tin Ingot=Ón öntvény
Tin Lump=Ón rög
Furnace is empty=A kemence üres
100% (output full)=100% (kimenet megtelt)
@1%=
Not cookable=Nem süthető
Empty=Üres
Furnace active=Kemence aktív
Furnace inactive=Kemence inaktív
(Item: @1; Fuel: @2)=(Tárgy: @1; Tüzelő: @2)
Furnace=Kemence
Stone=Kő
Cobblestone=Kőtörmelék
Stone Brick=Kőtégla
Stone Block=Kőtömb
Mossy Cobblestone=Mohás kőtörmelék
Desert Stone=Sivatagi kő
Desert Cobblestone=Sivatagi kőtörmelék
Desert Stone Brick=Sivatagi kőtégla
Desert Stone Block=Sivatagi kőtömb
Sandstone=Homokkő
Sandstone Brick=Homokkő tégla
Sandstone Block=Homokkő tömb
Desert Sandstone=Sivatagi homokkő
Desert Sandstone Brick=Sivatagi homokkő tégla
Desert Sandstone Block=Sivatagi homokkő tömb
Silver Sandstone=Ezüst homokkő
Silver Sandstone Brick=Ezüst homokkő tégla
Silver Sandstone Block=Ezüst homokkő tömb
Obsidian=Obszidián
Obsidian Brick=Obszidián tégla
Obsidian Block=Obszidián tömb
Dirt=Föld
Dirt with Grass=Füves föld
Dirt with Grass and Footsteps=Füves föld és lábnyomok
Dirt with Savanna Grass=Szavannafüves föld
Dirt with Snow=Havas föld
Dirt with Rainforest Litter=Föld esőerdő avarral
Dirt with Coniferous Litter=Föld fenyves avarral
Savanna Dirt=Szavanna föld
Savanna Dirt with Savanna Grass=Szavannafüves szavanna föld
Permafrost=Fagyott talaj
Permafrost with Stones=Köves fagyott talaj
Permafrost with Moss=Mohás fagyott talaj
Sand=Homok
Desert Sand=Sivatagi homok
Silver Sand=Ezüsthomok
Gravel=Sóder
Clay=Agyag
Snow=Hó
Snow Block=Hótömb
Ice=Jég
Cave Ice=Barlangi jég
Apple Tree=Almafa
Apple Wood Planks=Almafa deszkák
Apple Tree Sapling=Almafa csemete
Apple Tree Leaves=Almafa levelek
Apple=Alma
Apple Marker=Alma jelölő
Jungle Tree=Dzsungelfa
Jungle Wood Planks=Dzsungelfa deszkák
Jungle Tree Leaves=Dzsungelfa levelek
Jungle Tree Sapling=Dzsungelfa csemete
Emergent Jungle Tree Sapling=Kiemelkedő dzsungelfa csemete
Pine Tree=Fenyőfa
Pine Wood Planks=Fenyőfa deszkák
Pine Needles=Fenyő tűlevelek
Pine Tree Sapling=Fenyőfa csemete
Acacia Tree=Akáciafa
Acacia Wood Planks=Akáciafa deszkák
Acacia Tree Leaves=Akáciafa levelek
Acacia Tree Sapling=Akáciafa csemete
Aspen Tree=Nyárfa
Aspen Wood Planks=Nyárfa deszkák
Aspen Tree Leaves=Nyárfa levelek
Aspen Tree Sapling=Nyárfa csemete
Coal Ore=Szén érc
Coal Block=Szén tömb
Iron Ore=Vasérc
Steel Block=Acél tömb
Copper Ore=Rézérc
Copper Block=Réz tömb
Tin Ore=Ónérc
Tin Block=Ón tömb
Bronze Block=Bronz tömb
Mese Ore=Mese érc
Mese Block=Mese tömb
Gold Ore=Arany érc
Gold Block=Arany tömb
Diamond Ore=Gyémánt érc
Diamond Block=Gyémánt tömb
Cactus=Kaktusz
Large Cactus Seedling=Nagy kaktusz csemete
Papyrus=Papirusz
Dry Shrub=Száraz cserje
Jungle Grass=Dzsungel fű
Grass=Fű
Savanna Grass=Szavanna fű
Fern=Páfrány
Marram Grass=Buckafű
Bush Stem=Bokor szár
Bush Leaves=Bokor levelek
Bush Sapling=Bokor csemete
Blueberry Bush Leaves with Berries=Áfonya bokor bogyókkal
Blueberry Bush Leaves=Áfonya bokor levelek
Blueberry Bush Sapling=Áfonya bokor csemete
Acacia Bush Stem=Akácia bokor szár
Acacia Bush Leaves=Akácia bokor levelek
Acacia Bush Sapling=Akácia bokor csemete
Pine Bush Stem=Fenyő bokor szár
Pine Bush Needles=Fenyő bokor tűlevelek
Pine Bush Sapling=Fenyő bokor csemete
Kelp=Hínár
Green Coral=Zöld korall
Pink Coral=Rózsaszín korall
Cyan Coral=Cián korall
Brown Coral=Barna korall
Orange Coral=Narancssárga korall
Coral Skeleton=Korall csontváz
Water Source=Víz forrás
Flowing Water=Áramló víz
River Water Source=Folyóvíz forrás
Flowing River Water=Áramló folyóvíz
Lava Source=Láva forrás
Flowing Lava=Áramló láva
Empty Bookshelf=Üres könyvespolc
Bookshelf (@1 written, @2 empty books)=Könyvespolc (@1 írott, @2 üres könyv)
Bookshelf=Könyvespolc
Text too long=Túl hosszú szöveg
"@1"=
Wooden Sign=Fa tábla
Steel Sign=Acél tábla
Wooden Ladder=Fa létra
Steel Ladder=Acél létra
Apple Wood Fence=Almafa kerítés
Acacia Wood Fence=Akáciafa kerítés
Jungle Wood Fence=Dzsungelfa kerítés
Pine Wood Fence=Fenyőfa kerítés
Aspen Wood Fence=Nyárfa kerítés
Apple Wood Fence Rail=Almafa kerítés korlát
Acacia Wood Fence Rail=Akáciafa kerítés korlát
Jungle Wood Fence Rail=Dzsungelfa kerítés korlát
Pine Wood Fence Rail=Fenyőfa kerítés korlát
Aspen Wood Fence Rail=Nyárfa kerítés korlát
Glass=Üveg
Obsidian Glass=Obszidiánüveg
Brick Block=Tégla tömb
Mese Lamp=Mese lámpa
Apple Wood Mese Post Light=Almafa mese lámpaoszlop
Acacia Wood Mese Post Light=Akáciafa mese lámpaoszlop
Jungle Wood Mese Post Light=Dzsungelfa mese lámpaoszlop
Pine Wood Mese Post Light=Fenyőfa mese lámpaoszlop
Aspen Wood Mese Post Light=Nyárfa mese lámpaoszlop
Cloud=Felhő
Wooden Pickaxe=Fa csákány
Stone Pickaxe=Kő csákány
Bronze Pickaxe=Bronz csákány
Steel Pickaxe=Acél csákány
Mese Pickaxe=Mese csákány
Diamond Pickaxe=Gyémánt csákány
Wooden Shovel=Fa ásó
Stone Shovel=Kő ásó
Bronze Shovel=Bronz ásó
Steel Shovel=Acél ásó
Mese Shovel=Mese ásó
Diamond Shovel=Gyémánt ásó
Wooden Axe=Fa fejsze
Stone Axe=Kő fejsze
Bronze Axe=Bronz fejsze
Steel Axe=Acél fejsze
Mese Axe=Mese fejsze
Diamond Axe=Gyémánt fejsze
Wooden Sword=Fa kard
Stone Sword=Kő kard
Bronze Sword=Bronz kard
Steel Sword=Acél kard
Mese Sword=Mese kard
Diamond Sword=Gyémánt kard
Torch=Fáklya
@1 will intersect protection on growth.=@1 keresztezi a növekedési védelmet.

View File

@@ -0,0 +1,215 @@
# textdomain: default
Locked Chest=Aizslēgta lāde
Locked Chest (owned by @1)=Aizslēgta lāde (Saimnieks: @1)
You do not own this chest.=Jums nepieder šī lāde.
a locked chest=aizslēgta lāde
Chest=Lāde
Write=Rakstīt
Read=Lasīt
Title:=Virsraksts:
Contents:=Saturs:
Save=Saglabāt
by @1=autors @1
Page @1 of @2=@1 lappuse no @2
The book you were writing to mysteriously disappeared.=Grāmata, kuru rakstījāt, pēkšņi pazuda.
"@1" by @2="@1" @2
Blueberries=Mellenes
Book=Grāmata
Book with Text=Grāmata ar tekstu
Bronze Ingot=Bronzas stienis
Clay Brick=Māla ķieģelis
Clay Lump=Māla pika
Coal Lump=Ogle
Copper Ingot=Vara stienis
Copper Lump=Vara rūdas gabals
Diamond=Dimants
Flint=Krams
Gold Ingot=Zelta stienis
Gold Lump=Zelta rūdas gabals
Iron Lump=Dzelzs rūdas gabals
Mese Crystal=Mēzes kristāls
Mese Crystal Fragment=Mēzes kristāla fragments
Obsidian Shard=Obsidiāna skaida
Paper=Papīrs
Steel Ingot=Tērauda stienis
Stick=Puļķis
Tin Ingot=Alvas stienis
Tin Lump=Alvas rūdas gabals
Furnace is empty=Krāsns ir tukša
100% (output full)=100% (izeja pilna)
@1%=@1%
Not cookable=Nav gatavojams
Empty=Tukšs
Furnace active=Krāsns kurās
Furnace inactive=Krāsns nekurās
(Item: @1; Fuel: @2)=(Priekšmets: @1; Degviela: @2)
Furnace=Krāsns
Stone=Akmens
Cobblestone=Mūrakmens
Stone Brick=Akmens ķieģeļi
Stone Block=Akmens bloks
Mossy Cobblestone=Apsūnojis mūrakmens
Desert Stone=Tuksneša akmens
Desert Cobblestone=Tuksneša mūrakmens
Desert Stone Brick=Tuksneša akmens ķieģeļi
Desert Stone Block=Tuksneša akmens bloks
Sandstone=Smilšakmens
Sandstone Brick=Smilšakmens ķieģeļi
Sandstone Block=Smilšakmens bloks
Desert Sandstone=Tuksnesa smilšakmens
Desert Sandstone Brick=Tuksneša smilšakmens ķieģeļi
Desert Sandstone Block=Tuksneša smilšakmens bloks
Silver Sandstone=Baltais smilšakmens
Silver Sandstone Brick=Baltā smilšakmens ķieģeļi
Silver Sandstone Block=Baltā smilšakmens bloks
Obsidian=Obsidiāns
Obsidian Brick=Obsidiāna ķieģeļi
Obsidian Block=Obsidiāna bloks
Dirt=Zeme
Dirt with Grass=Zeme ar zāli
Dirt with Grass and Footsteps=Pēdaina zeme ar zāli
Dirt with Savanna Grass=Zeme ar savannas zāli
Dirt with Snow=Zeme ar sniegu
Dirt with Rainforest Litter=Zeme ar lietusmeža zemsedzi
Dirt with Coniferous Litter=Zeme ar skujām
Savanna Dirt=Savannas zeme
Savanna Dirt with Savanna Grass=Savannas zeme ar savannas zāli
Permafrost=Mūžīgais sasalums
Permafrost with Stones=Mūžīgais sasalums ar akmentiņiem
Permafrost with Moss=Mūžīgais sasalums ar sūnām
Sand=Smilts
Desert Sand=Tuksneša smilts
Silver Sand=Baltā smilts
Gravel=Grants
Clay=Māla bloks
Snow=Sniegs
Snow Block=Sniega bloks
Ice=Ledus
Cave Ice=Alu ledus
Apple Tree=Ābele
Apple Wood Planks=Ābolkoka dēļi
Apple Tree Sapling=Ābeles dzinums
Apple Tree Leaves=Ābeles lapas
Apple=Ābols
Apple Marker=Ābola marķieris
Jungle Tree=Džungļu koks
Jungle Wood Planks=Džungļu koka dēļi
Jungle Tree Leaves=Džungļu koka lapas
Jungle Tree Sapling=Džungļu koka dzinums
Emergent Jungle Tree Sapling=Augsta džungļu koka dzinums
Pine Tree=Skujkoks
Pine Wood Planks=Skujkoka dēļi
Pine Needles=Skujas
Pine Tree Sapling=Skujkoka dzinums
Acacia Tree=Akācija
Acacia Wood Planks=Akācijas dēļi
Acacia Tree Leaves=Akācijas lapas
Acacia Tree Sapling=Akācijas dzinums
Aspen Tree=Apse
Aspen Wood Planks=Apses koka dēļi
Aspen Tree Leaves=Apses lapas
Aspen Tree Sapling=Apses dzinums
Coal Ore=Akmeņogļu rūda
Coal Block=Akmeņogļu bloks
Iron Ore=Dzelzs rūda
Steel Block=Tērauda bloks
Copper Ore=Vara rūda
Copper Block=Vara bloks
Tin Ore=Alvas rūda
Tin Block=Alvas bloks
Bronze Block=Bronzas bloks
Mese Ore=Mēzes rūda
Mese Block=Mēzes bloks
Gold Ore=Zelta rūda
Gold Block=Zelta bloks
Diamond Ore=Dimanta rūda
Diamond Block=Dimanta bloks
Cactus=Kaktuss
Large Cactus Seedling=Liela kaktusa dzinums
Papyrus=Papiruss
Dry Shrub=Izžuvis krūmiņš
Jungle Grass=Džungļu zāle
Grass=Zāle
Savanna Grass=Savannas zāle
Fern=Paparde
Marram Grass=Kāpu niedre
Bush Stem=Krūma stumbrājs
Bush Leaves=Krūma lapas
Bush Sapling=Krūma dzinums
Blueberry Bush Leaves with Berries=Melleņu krūms ar ogām
Blueberry Bush Leaves=Melleņu krūms
Blueberry Bush Sapling=Melleņu krūma dzinums
Acacia Bush Stem=Akācijas krūma stumbrājs
Acacia Bush Leaves=Akācijas krūma lapas
Acacia Bush Sapling=Akācijas krūma dzinums
Pine Bush Stem=Skujaina krūma stumbrājs
Pine Bush Needles=Skujaina krūma lapas
Pine Bush Sapling=Skujaina krūma dzinums
Kelp=Brūnaļģes
Green Coral=Zaļš korallis
Pink Coral=Rozā korallis
Cyan Coral=Ciānkrāsas korallis
Brown Coral=Brūns korallis
Orange Coral=Oranžs korallis
Coral Skeleton=Koraļļa skelets
Water Source=Ūdens avots
Flowing Water=Plūstošs ūdens
River Water Source=Upes ūdens avots
Flowing River Water=Tekošs upes ūdens
Lava Source=Lavas avots
Flowing Lava=Plūstoša lava
Empty Bookshelf=Tukss grāmatplaukts
Bookshelf (@1 written, @2 empty books)=Grāmatplauktā (@1 rakstītas, @2 tukšas grāmatas)
Bookshelf=Grāmatplaukts
Text too long=Teksts par garu
"@1"="@1"
Wooden Sign=Koka zīme
Steel Sign=Tērauda zīme
Wooden Ladder=Koka kāpnes
Steel Ladder=Tērauda kāpnes
Apple Wood Fence=Ābolkoka žogs
Acacia Wood Fence=Akācijas žogs
Jungle Wood Fence=Džungļu koka žogs
Pine Wood Fence=Skujkoka žogs
Aspen Wood Fence=Apses koka žogs
Apple Wood Fence Rail=Ābolkoka žoga margas
Acacia Wood Fence Rail=Akācijas žoga margas
Jungle Wood Fence Rail=Džungļu koka žoga margas
Pine Wood Fence Rail=Skujkoka žoga margas
Aspen Wood Fence Rail=Apses žoga margas
Glass=Stikls
Obsidian Glass=Obsidiāna stikls
Brick Block=Ķieģeļu bloks
Mese Lamp=Mēzes lampa
Apple Wood Mese Post Light=Ābolkoka mēzes lampa
Acacia Wood Mese Post Light=Akācijas mēzes lampa
Jungle Wood Mese Post Light=Džungļu koka mēzes lampa
Pine Wood Mese Post Light=Skujkoka mēzes lampa
Aspen Wood Mese Post Light=Apses koka mēzes lampa
Cloud=Mākonis
Wooden Pickaxe=Koka cērte
Stone Pickaxe=Akmens cērte
Bronze Pickaxe=Bronzas cērte
Steel Pickaxe=Tērauda cērte
Mese Pickaxe=Mēzes cērte
Diamond Pickaxe=Dimanta cērte
Wooden Shovel=Koka lāpsta
Stone Shovel=Akmens lāpsta
Bronze Shovel=Bronzas lāpsta
Steel Shovel=Tērauda lāpsta
Mese Shovel=Mēzes lāpsta
Diamond Shovel=Dimanta lāpsta
Wooden Axe=Koka cirvis
Stone Axe=Akmens cirvis
Bronze Axe=Bronzas cirvis
Steel Axe=Tērauda cirvis
Mese Axe=Mēzes cirvis
Diamond Axe=Dimanta cirvis
Wooden Sword=Koka zobens
Stone Sword=Akmens zobens
Bronze Sword=Bronzas zobens
Steel Sword=Tērauda zobens
Mese Sword=Mēzes zobens
Diamond Sword=Dimanta zobens
Torch=Lāpa
@1 will intersect protection on growth.=@1 augot krustos aisargājamo zonu.

View 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.

View File

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

View File

@@ -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=Столб с Месе Фонарем

View File

@@ -1860,7 +1860,13 @@ function default.register_decorations()
-- Emergent jungle tree -- Emergent jungle tree
-- Due to 32 node height, altitude is limited and prescence depends on chunksize -- Due to 32 node height, altitude is limited and prescence depends on chunksize
local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) local chunksize
if core.get_mapgen_chunksize then
local v = core.get_mapgen_chunksize()
chunksize = math.max(v.x, v.y, v.z)
else
chunksize = tonumber(core.get_mapgen_setting("chunksize"))
end
if chunksize >= 5 then if chunksize >= 5 then
minetest.register_decoration({ minetest.register_decoration({
name = "default:emergent_jungle_tree", name = "default:emergent_jungle_tree",

View File

@@ -271,6 +271,7 @@ minetest.register_node("default:cobble", {
is_ground_content = false, is_ground_content = false,
groups = {cracky = 3, stone = 2}, groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
_tnt_loss = 4,
}) })
minetest.register_node("default:stonebrick", { minetest.register_node("default:stonebrick", {
@@ -297,9 +298,9 @@ minetest.register_node("default:mossycobble", {
is_ground_content = false, is_ground_content = false,
groups = {cracky = 3, stone = 1}, groups = {cracky = 3, stone = 1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
_tnt_loss = 4,
}) })
minetest.register_node("default:desert_stone", { minetest.register_node("default:desert_stone", {
description = S("Desert Stone"), description = S("Desert Stone"),
tiles = {"default_desert_stone.png"}, tiles = {"default_desert_stone.png"},
@@ -315,6 +316,7 @@ minetest.register_node("default:desert_cobble", {
is_ground_content = false, is_ground_content = false,
groups = {cracky = 3, stone = 2}, groups = {cracky = 3, stone = 2},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
_tnt_loss = 4,
}) })
minetest.register_node("default:desert_stonebrick", { minetest.register_node("default:desert_stonebrick", {
@@ -444,6 +446,7 @@ minetest.register_node("default:dirt", {
tiles = {"default_dirt.png"}, tiles = {"default_dirt.png"},
groups = {crumbly = 3, soil = 1}, groups = {crumbly = 3, soil = 1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
_tnt_loss = 3,
}) })
minetest.register_node("default:dirt_with_grass", { minetest.register_node("default:dirt_with_grass", {
@@ -530,6 +533,7 @@ minetest.register_node("default:dry_dirt", {
tiles = {"default_dry_dirt.png"}, tiles = {"default_dry_dirt.png"},
groups = {crumbly = 3, soil = 1}, groups = {crumbly = 3, soil = 1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_dirt_defaults(),
_tnt_loss = 3,
}) })
minetest.register_node("default:dry_dirt_with_dry_grass", { minetest.register_node("default:dry_dirt_with_dry_grass", {
@@ -576,6 +580,7 @@ minetest.register_node("default:sand", {
tiles = {"default_sand.png"}, tiles = {"default_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1}, groups = {crumbly = 3, falling_node = 1, sand = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
_tnt_loss = 2,
}) })
minetest.register_node("default:desert_sand", { minetest.register_node("default:desert_sand", {
@@ -583,6 +588,7 @@ minetest.register_node("default:desert_sand", {
tiles = {"default_desert_sand.png"}, tiles = {"default_desert_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1}, groups = {crumbly = 3, falling_node = 1, sand = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
_tnt_loss = 2,
}) })
minetest.register_node("default:silver_sand", { minetest.register_node("default:silver_sand", {
@@ -590,6 +596,7 @@ minetest.register_node("default:silver_sand", {
tiles = {"default_silver_sand.png"}, tiles = {"default_silver_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1}, groups = {crumbly = 3, falling_node = 1, sand = 1},
sounds = default.node_sound_sand_defaults(), sounds = default.node_sound_sand_defaults(),
_tnt_loss = 2,
}) })
@@ -604,7 +611,8 @@ minetest.register_node("default:gravel", {
{items = {"default:flint"}, rarity = 16}, {items = {"default:flint"}, rarity = 16},
{items = {"default:gravel"}} {items = {"default:gravel"}}
} }
} },
_tnt_loss = 3,
}) })
minetest.register_node("default:clay", { minetest.register_node("default:clay", {
@@ -639,6 +647,7 @@ minetest.register_node("default:snow", {
}, },
groups = {crumbly = 3, falling_node = 1, snowy = 1}, groups = {crumbly = 3, falling_node = 1, snowy = 1},
sounds = default.node_sound_snow_defaults(), sounds = default.node_sound_snow_defaults(),
_tnt_loss = 1, -- means it will disappear entirely
on_construct = function(pos) on_construct = function(pos)
pos.y = pos.y - 1 pos.y = pos.y - 1
@@ -1985,8 +1994,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 +2044,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 +2067,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
@@ -2597,6 +2604,9 @@ local function register_sign(material, desc, def)
meta:set_string("formspec", "field[text;;${text}]") meta:set_string("formspec", "field[text;;${text}]")
end, end,
on_receive_fields = function(pos, formname, fields, sender) on_receive_fields = function(pos, formname, fields, sender)
if not fields.quit then
return -- workaround for https://github.com/luanti-org/luanti/issues/16187
end
local player_name = sender:get_player_name() local player_name = sender:get_player_name()
if minetest.is_protected(pos, player_name) then if minetest.is_protected(pos, player_name) then
minetest.record_protection_violation(pos, player_name) minetest.record_protection_violation(pos, player_name)
@@ -2610,7 +2620,7 @@ local function register_sign(material, desc, def)
minetest.chat_send_player(player_name, S("Text too long")) minetest.chat_send_player(player_name, S("Text too long"))
return return
end end
text = text:gsub("[%z-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n) text = text:gsub("[%z\1-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n)
default.log_player_action(sender, ("wrote %q to the sign at"):format(text), pos) default.log_player_action(sender, ("wrote %q to the sign at"):format(text), pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
meta:set_string("text", text) meta:set_string("text", text)
@@ -2809,6 +2819,7 @@ minetest.register_node("default:glass", {
is_ground_content = false, is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3}, groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
_tnt_loss = 2,
}) })
minetest.register_node("default:obsidian_glass", { minetest.register_node("default:obsidian_glass", {

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