Compare commits

...

99 Commits

Author SHA1 Message Date
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
rubenwardy b9c089474c Update README.md for 5.8 2023-12-17 16:57:57 +01:00
Lars Mueller 05367552d1 Mapgen: Don't clear biomes, decorations and ores 2023-12-10 22:49:51 +01:00
rubenwardy 33d90c2c45
Add min_minetest_version to game.conf
This is used by ContentDB to install the right version of a package for a given client version
2023-12-04 17:51:38 +00:00
Yaya - Nurul Azeera Hidayah @ Muhammad Nur Hidayat Yasuyoshi 4bb4a2a818 Update Malay translations
1. Added missing translation to the following files:
  beds.ms.tr, creative.ms.tr, default.ms.tr, farming.ms.tr,
  fire.ms.tr, sethome.ms.tr
2. Changes some translation as per following:
  a. beds.ms.tr
    - Leave Bed changed from Bangun (wake up) to Tinggalkan Katil
      (leave bed, in literal sense) just because the button would
      be interpreted by some people as 'wake up on next morning'
      (ie. skipping night) instead of 'wake up interrupting current
      sleep progress' which is the intended meaning.
  b. boats.ms.tr
    - Boat cruise mode changed from Mod bot layar makan angin to
      Mod jelajah bot, the original translation is more like direct
      translation, and this has been changed to more natural one
      to make sure player know that the mode is a cruise control.
    - Reset changed from Set semula to Tetap semula, this is for
      standardizing with existing term used in various places.
  c. default.ms.tr
    - Page \@1 of \@2 changed from the short form to the long form.
    - Mese Crystal Fragment had missing word 'Kristal' re-added.
  d. dye.ms.tr
    - Dark Grey changed from Kelabu Gelap to Kelabu Tua to make it
      standardized with the colour name elsewhere.
    - Dark Green changed from Hijau Gelap to Hijau Tua to make it
      standardized with the colour name elsewhere.
    - Magenta changed from Merah Lembayung to Magenta, because the
      colour Merah Lembayung is now used to refer to purplish red
      and no longer equal to magenta, the loanword is used instead.
  e. game_commands.ms.tr
    - respawn changed from lahir semula (reborn) to jelma semula
      (reappear), this is to make it consistent with the language
      used in multiple other games that had similar respawning
      system, and avoiding the religious context of life that is
      implied by the use of previous translation.
    - spawnpoint changed from titik permulaan (starting point) to
      titik jelma ((re)appear point), see previous point.
  f. tnt.ms.tr
    - Gun Powder changed from Serbuk Senjata Api (firearms powder)
      to Serbuk Letupan (explosion powder) because that is the
      proper translation, the latter is still the term used even
      when talking about actual firearm, the former didn't exist
  g. vessels.ms.tr
    - item changed from barang (thing) to item, this is mainly
      because some of the 'item' that could be stored are not
      some solid 'thing' where the word barang could be used for,
      so using the word item here keep it neutral.
  h. wool.ms.tr
    - Dark Grey changed from Kelabu Gelap to Kelabu Tua to make it
      standardized with the colour name elsewhere.
    - Dark Green changed from Hijau Gelap to Hijau Tua to make it
      standardized with the colour name elsewhere.
    - Magenta changed from Merah Lembayung to Magenta, because the
      colour Merah Lembayung is now used to refer to purplish red
      and no longer equal to magenta, the loanword is used instead.
2023-12-01 03:46:21 +01:00
Muhammad Rifqi Priyo Susanto 829eb92ccf
Update Indonesian translations (#3077) 2023-11-24 18:48:38 +01:00
Andriy bff7596364
Update Ukrainian translation (#3070) 2023-11-04 16:40:07 +01:00
Niklp 601ec6cd94
Fix not updating vessel shelf infotext 2023-11-03 10:03:39 +01:00
sfan5 b58991d4f3 Fix typo in German translation 2023-10-08 18:11:44 +02:00
Lars Müller 34942339c7
Fix bed night skip race condition (#3067) 2023-09-29 22:31:13 +02:00
Zemtzov7 eba9012d05
Fix coral and kelp duping with mesecons' sticky piston (#3062) 2023-09-16 14:52:07 +02:00
Lorenzo 59da46c80b
Add sapling growth APIs (#3053)
---------
Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
Co-authored-by: sfan5 <sfan5@live.de>
2023-09-12 15:43:41 +02:00
tenplus1 03177f1584
Stairs: Add helper function for textures and simplify code (#3060) 2023-09-11 19:14:16 +02:00
David Leal a132872ad8 Update creative Spanish translation 2023-09-04 18:01:14 +02:00
Lopano bbc70c95ef Replace nonfree water textures
Reduced image size.

Ran `optipng -strip all FILENAME` on files and reduced file size.

Transparent(er) River water

Made the `default_river_water.png` and it's relatives more transparent.

Added my name to license.txt

Bump year to 2023

Corrected Hue.

Corrected a miss-alignment in hue between running and still non-river water.
2023-09-04 13:34:39 +02:00
Wuzzy 9e77e00c65 Update German translation 2023-08-17 18:54:20 +02:00
Wuzzy b26a787eb3 Update locale template files 2023-08-17 18:54:20 +02:00
fluxionary 08e057bf1c
Don't remove node above door if it's not a doors:hidden node (#3045) 2023-08-11 13:12:39 +02:00
fluxionary 83c10f59e1
chest_lid_close: don't replace a node if it's not the expected open chest 2023-08-11 13:00:22 +02:00
Wuzzy 960aff2f63
Improve opaque leaves textures (#3013) 2023-07-18 22:28:01 +02:00
OgelGames 110c23560e
Don't check protection of air when placing bones (#2964) 2023-07-06 10:17:35 +02:00
imre84 d86435d86c
Extend inventory action logging to include bones (#3040) 2023-07-05 23:14:02 +02:00
Montandalar 16bf166902
Update bookshelf on inventory move (#3039)
Otherwise the empty book slot icon does not get replaced
2023-06-07 16:20:47 +02:00
Lars Mueller cd6ea53a52 Update bookshelf infotext on put and take inv actions 2023-06-06 18:07:37 +02:00
Lars Mueller 16b6bdde0a `default.set_inventory_action_loggers`: Hook (instead of replace) callbacks 2023-06-06 18:07:37 +02:00
Lars Mueller 996fea7cd0 Fix texture modifiers relying on undocumented behavior 2023-05-27 22:11:45 +02:00
fluxionary 9a9df3a42e
Fix logic error in bed rotation 2023-05-20 12:17:43 +02:00
xin 1e237b8d18
Minor improvements to the French translation (#3027) 2023-04-20 17:28:50 +02:00
Lars Müller 833ed77620
Validate & sanitize formspec fields (#3022) 2023-04-08 18:13:45 +02:00
Lars Müller 4c6e19968a Fix typo in german translation 2023-04-08 18:11:37 +02:00
Wuzzy 446e56a879 Update German translation 2023-04-08 18:11:37 +02:00
Wuzzy 34c1d3242d Update locale files 2023-04-08 18:11:37 +02:00
Lars Müller f49707c973
Minor creative UI fixes (#3023) 2023-04-04 11:43:59 +02:00
Wuzzy 8dee348d97 Fix syntax errors in bones.sv.tr 2023-03-14 10:25:37 +01:00
Richard Try aeb27c4db6
Fix 'boats' russian translation (#2974) 2023-03-10 20:27:15 +01:00
Richard Try 6921c9bbd1
Tweak MTG craftguide Russian translation (#2975) 2023-03-10 20:26:30 +01:00
Lars Mueller 8d60e85dfc Fix `player_api.set_model` not updating the animation 2023-01-31 15:31:52 +01:00
CrackedMatter 2c1d9e1330
Flip item textures of glass doors (#3009) 2023-01-26 17:32:03 +01:00
fluxionary ec2f57db0e
Ensure chests close properly (#2965)
Co-authored-by: sfan5 <sfan5@live.de>
2023-01-25 19:10:32 +01:00
Jordan Irwin fdcf458b56
creative: Override hand after mods loaded... (#2984)
Prevents other mods from overwriting changes
& removes dependence on default.
2023-01-21 09:44:47 +01:00
97130f4c1c
Update Chinese translation (#3008)
+ template update
2023-01-21 09:44:35 +01:00
Riu Sakura 26b2da2c08
Update Japanese translation (#3007)
Add missing translations
 Corrected mistranslations
 Revised translation to match Mineclone2
2023-01-21 09:43:53 +01:00
Zemtzov7 8eb4437ac8 Fix crash if `/home` is executed with an invalid name (#3000) 2022-12-20 18:42:48 +01:00
Alexander Chibrikin 792bc6f6e5
Fix wall craft registrations (#3004) 2022-12-02 19:54:46 +01:00
Muhammad Rifqi Priyo Susanto c4cf1a6004
Update Indonesian translation (#3003)
- Add missing translations
- Fix wrong terms/spellings
2022-11-27 21:24:35 +01:00
Wuzzy 99a7193095
Teach screwdriver to rotate 4dir nodes (#2992) 2022-10-01 21:19:42 +02:00
ssdaniel24 2e8ac46120
Beds: Replace hardcoded values of day interval with constants (#2990) 2022-09-28 11:07:50 +02:00
Lars Mueller 508a9070a0 Add color_* groups to wool 2022-09-21 18:23:55 +02:00
VitaliyShar aff9c28eed
Improve stair placement rotation for bridging (#2979)
Co-authored-by: sfan5 <sfan5@live.de>
2022-08-18 11:02:24 +02:00
ROllerozxa e903b1f6d0 Make default an optional dependency for the creative mod 2022-08-18 10:16:22 +02:00
Richard Try 2bdc7c8c7d Update Russian translation 2022-07-29 22:03:06 +02:00
Richard Try c744829ce5
Update Russian translation for mtg_craftguide (#2873) 2022-07-29 15:10:24 +02:00
Romain 06daee4c6d
Correct some Esperanto translations (#2910) 2022-07-25 13:26:49 +02:00
Wuzzy 697b028e43 Update Lojban translation 2022-07-22 21:28:31 +02:00
Wuzzy e229236bc2 Update German translation 2022-07-22 16:19:31 +02:00
Wuzzy 350c52319e Update translation templates 2022-07-22 16:19:31 +02:00
Wuzzy b64868ef92 Move Japanese key translations to keys mod 2022-07-22 16:19:31 +02:00
fluxionary 79d38078a5
Remove paramtype2="glasslikeliquidlevel" from glass nodes (#2963) 2022-07-02 11:58:01 +02:00
sfan5 986b65775f Update engine feature checks 2022-06-13 20:02:08 +02:00
Wuzzy d7dd15782c
Use add_wear_by_uses to fix incorrect uses counts (#2959) 2022-06-04 18:43:21 +02:00
Lars Müller b4392aeb1f
Fix book duplication: Remember wield index (#2957) 2022-06-01 20:54:16 +02:00
Wuzzy 54dc58ef1f
Fix furnace fire sound stopping too late (#2955)
Cleans fire sound IDs after a few seconds
2022-05-29 21:16:23 +02:00
mrkubax10 b57700a75b
Add polish translation (#2926) 2022-05-29 16:20:42 +02:00
Wuzzy b0cf061360 Fix TNT blowing up ignore nodes 2022-05-24 17:57:37 +02:00
Lars Müller 33650c8c2e
`game.conf`: Use title instead of deprecated name 2022-05-24 14:55:10 +02:00
SmallJoker 38307da22a
Carts: Improve movement behaviour (#2951)
Backported various changes from boost_cart
Improved direction handling and code cleanup
Smoothed-out 'end of rail' animation
2022-05-09 20:44:06 +02:00
nixnoxus 0c2ee1e41d
Deduplicate player action logging, silence fake player actions (#2941) 2022-05-06 20:04:55 +02:00
Lars Mueller edd033b708 TNT node drop particles: Only pick string tiles as fallback 2022-04-24 13:29:29 +02:00
lhofhansl 9528c0f8b9
Adjust shadow intensity based on cloud density (#2938) 2022-04-02 09:35:36 +02:00
Lars Mueller 638099c999 Fix incorrectly negated comparisons 2022-03-26 19:58:07 +01:00
LoneWolfHT 659895c3ed Update game_api.txt 2022-03-23 11:36:46 +01:00
LoneWolfHT ce82241ab2 Undo globalization 2022-03-23 11:36:46 +01:00
LoneWolfHT 0110e01826 Fix bug and globalize `players` table 2022-03-23 11:36:46 +01:00
LoneWolfHT 268a8844b6 Use a local for the globalstep function 2022-03-23 11:36:46 +01:00
LoneWolfHT f665382017 Allow mods to override animation globalstep 2022-03-23 11:36:46 +01:00
Lars Mueller a6f3b89596 player_api: Fix crash for players without model 2022-03-13 00:02:40 +01:00
baytuch 240f9a6a85
Fix translation of "cotton" for UK and RU locales 2022-02-15 20:29:34 +01:00
Lars Müller a840ac0a4d
player_api - fix compatibility code 2022-02-03 09:15:14 +01:00
bell07 584a6a2102
player_api - fix compatibility code
get_animation does not return the data if called from outside without this change
2022-02-03 09:10:53 +01:00
baytuch e02e55fafd
Minor translation refinement for UK and RU langs (Drinking Glass) (#2925) 2022-02-01 11:09:21 +01:00
255 changed files with 3503 additions and 2376 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

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

@ -0,0 +1,11 @@
name: test
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- run: ./utils/test/run.sh

View File

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

View File

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

View File

@ -1,3 +1,4 @@
name = 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 Minetest Engine core developers.
min_minetest_version = 5.8

View File

@ -49,6 +49,8 @@ Beds API
* `beds.read_spawns() ` Returns a table containing players respawn positions
* `beds.kick_players()` Forces all players to leave bed
* `beds.skip_night()` Sets world time to morning and saves respawn position of all players currently sleeping
* `beds.day_interval` Is a table with keys "start" and "finish". Allows you
to set the period of the day (timeofday format). Default: `{ start = 0.2, finish = 0.805 }`.
### Bed definition
@ -440,11 +442,16 @@ Player API
The player API can register player models and update the player's appearance.
* `player_api.globalstep(dtime, ...)`
* The function called by the globalstep that controls player animations.
You can override this to replace the globalstep with your own implementation.
* Receives all args that minetest.register_globalstep() passes
* `player_api.register_model(name, def)`
* Register a new model to be used by players
* `name`: model filename such as "character.x", "foo.b3d", etc.
* `def`: see [#Model definition]
* Saved to player_api.registered_models
* Saved to player_api.registered_models
* `player_api.registered_models[name]`
* Get a model's definition
@ -625,6 +632,34 @@ set a players home position and teleport a player to home position.
* `name` Player you wish to teleport to their home position
* 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
---------
@ -1021,6 +1056,27 @@ Trees
* `default.grow_blueberry_bush(pos)`
* Grows a blueberry bush at pos
* `default.on_grow_failed(pos)`
* Reset the node timer to 300 seconds, used as default callback when the growth of a sapling fails
* `default.sapling_growth_defs`
* Table that contains all the definitions for the growable saplings, see `default.register_sapling_growth`
* `default.register_sapling_growth(name, def)`
* Register a new sapling growth configuration. Useful to add custom sapling and trees to the game in a compact way.
default.register_sapling_growth(
"default:sapling", -- Name of the sapling
{
can_grow = default.can_grow, -- Function called to determine whether the sapling can grow, should return a boolean
on_grow_failed = default.on_grow_failed, -- Function called when the growth fails
grow = function(pos) -- Function called when the growth has success. This should replace the sapling with a tree.
}
)
* `default.grow_sapling(pos)`
* Attempt to grow a sapling at the given position. Useful as on_timer callback.
Carts
-----
@ -1110,3 +1166,52 @@ This function registers a shapeless recipe that takes `ingredient`
and `result` as input and outputs `result`.
The metadata of the input `result` is copied to the output `result`.
Log API
-------
Logs action of the player with a node at a certain position.
By default only actions of real players are logged.
Actions of non-players (usually machines) are logged only when
setting `log_non_player_actions` is enabled.
A player is considered non-player if `player:is_player()` returns
`false` or `player.is_fake_player` is truthy. The use of
`is_fake_player` is an unofficial standard between mods.
These non-players are marked by the content of `is_fake_player`
(if it is a string) or a "*" in brackets after the player name in
the log.
`default.log_player_action(player, ...)`
* `player` The player who performed the action
* `message_parts` Any mumber of message parts describing the action
in 3rd person singular present tense. It can also
contain a `pos` which is logged as "(X,Y,Z)"
`default.set_inventory_action_loggers(def, name)`
* hooks the callbacks `on_metadata_inventory_move`,
`on_metadata_inventory_put` and `on_metadata_inventory_take`
that log corresponding actions
* after logging the action, the original callback (if any) is called
* `def` See [Node definition]
* `name` Description of the node in the log message
Weather API
-----------
The weather mod will constantly adjust weather effects seen by the player
(that is: cloud parameters and shadow intensity).
These can be influenced using this API.
#### `weather.get = function(player)`
* Returns the current weather effects seen by the player.
It returns a table with two keys:
* `clouds`: A table (or `nil`) with cloud data following the same format as used for `player:set_clouds()`.
* `lighting`: A table (or `nil`) with lighting data following the same format as used for `player:set_lighting()`.
* `player`: ObjectRef of the relevant player
* You can override this function to change the weather effects by simply returning different values.
Setting `clouds` or `lighting` in the result table to `nil` will *prevent* those from changing.

View File

@ -72,6 +72,9 @@ default:torch 99,default:cobble 99
# Helps rivers create more sound, especially on level sections.
#river_source_sounds = false
# Enable cloud variation by the 'weather' mod.
# Enable cloud and shadow intensity variation by the 'weather' mod.
# Non-functional in V6 or Singlenode mapgens.
#enable_weather = true
# If enabled, non-player actions are logged
#log_non_player_actions = false

View File

@ -1,5 +1,10 @@
local reverse = true
-- 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 function destruct_bed(pos, n)
local node = minetest.get_node(pos)
@ -12,15 +17,11 @@ local function destruct_bed(pos, n)
local dir = minetest.facedir_to_dir(node.param2)
other = vector.add(pos, dir)
end
if reverse then
reverse = not reverse
minetest.remove_node(other)
minetest.check_for_falling(other)
beds.remove_spawns_at(pos)
beds.remove_spawns_at(other)
else
reverse = not reverse
local oname = minetest.get_node(other).name
if minetest.get_item_group(oname, "bed") ~= 0 then
remove_no_destruct(other)
beds.remove_spawns_at(pos)
beds.remove_spawns_at(other)
end
end
@ -113,10 +114,11 @@ function beds.register_bed(name, def)
on_rotate = function(pos, node, user, _, new_param2)
local dir = minetest.facedir_to_dir(node.param2)
-- old position of the top node
local p = vector.add(pos, dir)
local node2 = minetest.get_node_or_nil(p)
if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or
not node.param2 == node2.param2 then
if not node2 or minetest.get_item_group(node2.name, "bed") ~= 2 or
node.param2 ~= node2.param2 then
return false
end
if minetest.is_protected(p, user:get_player_name()) then
@ -126,6 +128,7 @@ function beds.register_bed(name, def)
if new_param2 % 32 > 3 then
return false
end
-- new position of the top node
local newp = vector.add(pos, minetest.facedir_to_dir(new_param2))
local node3 = minetest.get_node_or_nil(newp)
local node_def = node3 and minetest.registered_nodes[node3.name]
@ -137,8 +140,7 @@ function beds.register_bed(name, def)
return false
end
node.param2 = new_param2
-- do not remove_node here - it will trigger destroy_bed()
minetest.set_node(p, {name = "air"})
remove_no_destruct(p)
minetest.set_node(pos, node)
minetest.set_node(newp, {name = name .. "_top", param2 = new_param2})
return true

View File

@ -65,17 +65,17 @@ beds.register_bed("beds:bed", {
"beds_bed_top_bottom.png^[transformR90",
"beds_bed_under.png",
"beds_bed_side_bottom_r.png",
"beds_bed_side_bottom_r.png^[transformfx",
"beds_transparent.png",
"beds_bed_side_bottom_r.png^[transformFX",
"blank.png",
"beds_bed_side_bottom.png"
},
top = {
"beds_bed_top_top.png^[transformR90",
"beds_bed_under.png",
"beds_bed_side_top_r.png",
"beds_bed_side_top_r.png^[transformfx",
"beds_bed_side_top_r.png^[transformFX",
"beds_bed_side_top.png",
"beds_transparent.png",
"blank.png",
}
},
nodebox = {

View File

@ -181,12 +181,32 @@ function beds.skip_night()
minetest.set_timeofday(0.23)
end
local update_scheduled = false
local function schedule_update()
if update_scheduled then
-- there already is an update scheduled; don't schedule more to prevent races
return
end
update_scheduled = true
minetest.after(2, function()
update_scheduled = false
if not is_sp then
update_formspecs(is_night_skip_enabled())
end
if is_night_skip_enabled() then
-- skip the night and let all players stand up
beds.skip_night()
beds.kick_players()
end
end)
end
function beds.on_rightclick(pos, player)
local name = player:get_player_name()
local ppos = player:get_pos()
local tod = minetest.get_timeofday()
if tod > 0.2 and tod < 0.805 then
if tod > beds.day_interval.start and tod < beds.day_interval.finish then
if beds.player[name] then
lay_down(player, nil, nil, false)
end
@ -206,17 +226,8 @@ function beds.on_rightclick(pos, player)
update_formspecs(false)
end
-- skip the night and let all players stand up
if check_in_beds() then
minetest.after(2, function()
if not is_sp then
update_formspecs(is_night_skip_enabled())
end
if is_night_skip_enabled() then
beds.skip_night()
beds.kick_players()
end
end)
schedule_update()
end
end
@ -233,10 +244,9 @@ end
-- Callbacks
-- Only register respawn callback if respawn enabled
if enable_respawn then
-- respawn player at bed if enabled and valid position is found
minetest.register_on_respawnplayer(function(player)
local name = player:get_player_name()
local pos = beds.spawn[name]
-- Respawn player at bed if valid position is found
spawn.register_on_spawn(function(player, is_new)
local pos = beds.spawn[player:get_player_name()]
if pos then
player:set_pos(pos)
return true
@ -249,13 +259,7 @@ minetest.register_on_leaveplayer(function(player)
lay_down(player, nil, nil, false, true)
beds.player[name] = nil
if check_in_beds() then
minetest.after(2, function()
update_formspecs(is_night_skip_enabled())
if is_night_skip_enabled() then
beds.skip_night()
beds.kick_players()
end
end)
schedule_update()
end
end)

View File

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

View File

@ -1,10 +1,10 @@
# textdomain: beds
Fancy Bed=Luksa Lito
Simple Bed=Simpla Lito
This bed is already occupied!=
You have to stop moving before going to bed!=
Fancy Bed=Luksa lito
Simple Bed=Simpla lito
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!
Good morning.=Bonan matenon.
@1 of @2 players are in bed=@1 el @2 ludantoj estas en lito.
Force night skip=Devigu nokta salton
You can only sleep at night.=Vi povas nur dormi en la nokto.
Leave Bed=Ellitiĝu
@1 of @2 players are in bed=@1 el @2 ludantoj estas en lito
Force night skip=Devigi noktan salton
You can only sleep at night.=Vi povas dormi nur nokte.
Leave Bed=Ellitiĝi

View File

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

View File

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

View File

@ -0,0 +1,10 @@
# textdomain: beds
Fancy Bed=Fantazyjne łóżko
Simple Bed=Proste łóżko
This bed is already occupied!=To łóżko jest już zajęte!
You have to stop moving before going to bed!=Musisz się zatrzymać aby wejść do łóżka
Good morning.=Dzień dobry.
@1 of @2 players are in bed=@1 z @2 graczy śpią
Force night skip=Wymuś pominięcie nocy
You can only sleep at night.=Możesz spać tylko w nocy.
Leave Bed=Opuść łóżko

View File

@ -1,8 +1,8 @@
# textdomain: beds
Fancy Bed=Детализированная Кровать
Simple Bed=Обычная Кровать
Fancy Bed=Красивая кровать
Simple Bed=Простая кровать
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.=Доброе утро.
@1 of @2 players are in bed=@1 из @2 игроков в кровати
Force night skip=Пропустить ночь

View File

@ -1,10 +1,10 @@
# textdomain: beds
Fancy Bed=Деталізована Постіль
Simple Bed=Звичайна Постіль
This bed is already occupied!=Ця постіль вже зайнята!
You have to stop moving before going to bed!=Не можна скористатись постіллю на ходу!
Fancy Bed=Гарне ліжко
Simple Bed=Просте ліжко
This bed is already occupied!=Це ліжко вже зайняте!
You have to stop moving before going to bed!=Зупиніться перед тим як лягти!
Good morning.=Доброго ранку.
@1 of @2 players are in bed=@1 з @2 гравців в ліжку
@1 of @2 players are in bed=@1 з @2 гравців(-я) у ліжку
Force night skip=Пропустити ніч
You can only sleep at night.=Ви можете спати тільки вночі.
You can only sleep at night.=Ви можете спати лише вночі.
Leave Bed=Встати з ліжка

View File

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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 B

View File

@ -1,3 +1,3 @@
# textdomain: binoculars
Binoculars=Binokolo
Use with 'Zoom' key=Uzu per 'Zomo' klavo
Binoculars=Binoklo
Use with 'Zoom' key=Uzi per 'Zomo' klavo

View File

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

View File

@ -0,0 +1,3 @@
# textdomain: binoculars
Binoculars=Lornetka
Use with 'Zoom' key=Aby użyć naciśnij 'Zoom'

View File

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

View File

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

View File

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

View File

@ -0,0 +1,4 @@
# textdomain: boats
Boat cruise mode on=Tryb rejsu łodką włączony
Boat cruise mode off=Tryb rejsu łodką wyłączony
Boat=Łódka

View File

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

View File

@ -28,7 +28,7 @@ local bones_formspec =
local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200
local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4
minetest.register_node("bones:bones", {
local bones_def = {
description = S("Bones"),
tiles = {
"bones_top.png^[transform2",
@ -130,7 +130,11 @@ minetest.register_node("bones:bones", {
end,
on_blast = function(pos)
end,
})
}
default.set_inventory_action_loggers(bones_def, "bones")
minetest.register_node("bones:bones", bones_def)
local function may_replace(pos, player)
local node_name = minetest.get_node(pos).name
@ -224,7 +228,7 @@ minetest.register_on_dieplayer(function(player)
-- check if it's possible to place bones, if not find space near player
if bones_mode == "bones" and not may_replace(pos, player) then
local air = minetest.find_node_near(pos, 1, {"air"})
if air and not minetest.is_protected(air, player_name) then
if air then
pos = air
else
bones_mode = "drop"

View File

@ -1,8 +1,8 @@
# textdomain: bones
Bones=Ostoj
@1's old bones=La malnova ostoj de @1
@1's old bones=La malfreŝaj ostoj de @1
@1 died at @2.=@1 mortis ĉe @2
@1 died at @2, and dropped their inventory.=@1 mortis ĉe @2, kaj ri delasis riaj objektoj.
@1 died at @2, and bones were placed.=@1 mortis ĉe @2, kaj ostoj metis.
@1's fresh bones=La nova ostoj de @1
@1 died at @2, and dropped their inventory.=@1 mortis ĉe @2, kaj delasis sian stokon.
@1 died at @2, and bones were placed.=@1 mortis ĉe @2, kaj ostoj estas demetitaj.
@1's fresh bones=La freŝaj ostoj de @1
@1's bones=La ostoj de @1

View File

@ -0,0 +1,8 @@
# textdomain: bones
Bones=Kości
@1's old bones=Stare kości @1
@1 died at @2.=@1 umarł w @2.
@1 died at @2, and dropped their inventory.=@1 umarł w @2, i upuścił swój ekwipunek.
@1 died at @2, and bones were placed.=@1 umarł w @2, kości zostały położone.
@1's fresh bones=Świeże kości @1
@1's bones=Kości @1

View File

@ -1,8 +1,8 @@
# textdomain: bones
Bones=Кости
@1's old bones=Старые кости @1
@1 died at @2.=@1 умер в @2.
@1 died at @2, and dropped their inventory.=@1 умер в @2 и потерял содержимое своего инвентаря.
@1 died at @2, and bones were placed.=@1 умер в @2, помещены кости.
@1's fresh bones=новые кости @1
@1's bones=кости @1
@1 died at @2.=Игрок @1 умер в @2.
@1 died at @2, and dropped their inventory.=Игрок @1 умер в @2 и потерял содержимое своего инвентаря.
@1 died at @2, and bones were placed.=Игрок @1 умер в @2, кости размещены.
@1's fresh bones=Новые кости @1
@1's bones=Кости @1

View File

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

View File

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

View File

@ -33,6 +33,11 @@ local function check_protection(pos, name, text)
return false
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
-- source = name of the source node
-- flowing = name of the flowing node
@ -101,13 +106,13 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name
end
end
if check_protection(lpos, user
and user:get_player_name()
or "", "place "..source) then
local pname = user and user:get_player_name() or ""
if check_protection(lpos, pname, "place "..source) then
return
end
minetest.set_node(lpos, {name = source})
log_action(lpos, pname, "placed " .. source)
return ItemStack("bucket:bucket_empty")
end
})
@ -128,16 +133,16 @@ minetest.register_craftitem("bucket:bucket_empty", {
return
end
-- 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 item_count = user:get_wielded_item():get_count()
if liquiddef ~= nil
and liquiddef.itemname ~= nil
and node.name == liquiddef.source then
if check_protection(pointed_thing.under,
user:get_player_name(),
"take ".. node.name) then
local pname = user:get_player_name()
if check_protection(pos, pname, "take ".. node.name) then
return
end
@ -152,9 +157,9 @@ minetest.register_craftitem("bucket:bucket_empty", {
if inv:room_for_item("main", {name=liquiddef.itemname}) then
inv:add_item("main", liquiddef.itemname)
else
local pos = user:get_pos()
pos.y = math.floor(pos.y + 0.5)
minetest.add_item(pos, liquiddef.itemname)
local upos = user:get_pos()
upos.y = math.floor(upos.y + 0.5)
minetest.add_item(upos, liquiddef.itemname)
end
-- set to return empty buckets minus 1
@ -166,10 +171,13 @@ minetest.register_craftitem("bucket:bucket_empty", {
local source_neighbor = false
if liquiddef.force_renew then
source_neighbor =
minetest.find_node_near(pointed_thing.under, 1, liquiddef.source)
minetest.find_node_near(pos, 1, liquiddef.source)
end
if not (source_neighbor and liquiddef.force_renew) then
minetest.add_node(pointed_thing.under, {name = "air"})
if source_neighbor and liquiddef.force_renew then
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
return ItemStack(giving_back)
@ -177,7 +185,7 @@ minetest.register_craftitem("bucket:bucket_empty", {
-- non-liquid nodes will have their on_punch triggered
local node_def = minetest.registered_nodes[node.name]
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
return user:get_wielded_item()
end

View File

@ -1,5 +1,5 @@
# textdomain: bucket
Empty Bucket=Malplena Sitelo
Water Bucket=Sitelo da Akvo
River Water Bucket=Sitelo da Rivera Akvo
Lava Bucket=Sitelo da Lafo
Empty Bucket=Malplena sitelo
Water Bucket=Sitelo da akvo
River Water Bucket=Sitelo da rivera akvo
Lava Bucket=Sitelo da lafo

View File

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

View File

@ -0,0 +1,5 @@
# textdomain: bucket
Empty Bucket=Puste wiadro
Water Bucket=Wiadro z wodą
River Water Bucket=Wiadro z rzeczną wodą
Lava Bucket=Wiadro z lawą

View File

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

View File

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

View File

@ -3,6 +3,9 @@
-- Load support for MT game translation.
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
local butter_list = {
{"white", S("White Butterfly")},
@ -33,6 +36,7 @@ for i in ipairs (butter_list) do
sunlight_propagates = true,
buildable_to = true,
walkable = false,
pointable = pointable_compat,
groups = {catchable = 1},
selection_box = {
type = "fixed",
@ -40,7 +44,7 @@ for i in ipairs (butter_list) do
},
floodable = true,
on_place = function(itemstack, placer, pointed_thing)
local player_name = placer:get_player_name()
local player_name = placer and placer:get_player_name() or ""
local pos = pointed_thing.above
if not minetest.is_protected(pos, player_name) and
@ -73,7 +77,7 @@ for i in ipairs (butter_list) do
groups = {not_in_creative_inventory = 1},
floodable = true,
on_place = function(itemstack, placer, pointed_thing)
local player_name = placer:get_player_name()
local player_name = placer and placer:get_player_name() or ""
local pos = pointed_thing.above
if not minetest.is_protected(pos, player_name) and

View File

@ -1,4 +1,4 @@
# textdomain: butterflies
White Butterfly=Blanka Papilio
Red Butterfly=Ruĝa Papilio
Violet Butterfly=Viola Papilio
White Butterfly=Blanka papilio
Red Butterfly=Ruĝa papilio
Violet Butterfly=Violkolora papilio

View File

@ -0,0 +1,4 @@
# textdomain: butterflies
White Butterfly=Biały motyl
Red Butterfly=Czerwony motyl
Violet Butterfly=Fioletowy motyl

View File

@ -1,4 +1,4 @@
# textdomain: butterflies
White Butterfly=
Red Butterfly=
Violet Butterfly=
White Butterfly=Borboleta Branca
Red Butterfly=Borboleta Vermelha
Violet Butterfly=Borboleta Violeta

View File

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

View File

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

View File

@ -46,9 +46,7 @@ function cart_entity:on_activate(staticdata, dtime_s)
return
end
self.railtype = data.railtype
if data.old_dir then
self.old_dir = data.old_dir
end
self.old_dir = data.old_dir or self.old_dir
end
function cart_entity:get_staticdata()
@ -192,11 +190,11 @@ local function rail_on_step(self, dtime)
end
local pos = self.object:get_pos()
local cart_dir = carts:velocity_to_dir(vel)
local same_dir = vector.equals(cart_dir, self.old_dir)
local dir = carts:velocity_to_dir(vel)
local dir_changed = not vector.equals(dir, self.old_dir)
local update = {}
if self.old_pos and not self.punched and same_dir then
if self.old_pos and not self.punched and not dir_changed then
local flo_pos = vector.round(pos)
local flo_old = vector.round(self.old_pos)
if vector.equals(flo_pos, flo_old) then
@ -216,7 +214,7 @@ local function rail_on_step(self, dtime)
end
local stop_wiggle = false
if self.old_pos and same_dir then
if self.old_pos and not dir_changed then
-- Detection for "skipping" nodes (perhaps use average dtime?)
-- It's sophisticated enough to take the acceleration in account
local acc = self.object:get_acceleration()
@ -231,7 +229,7 @@ local function rail_on_step(self, dtime)
-- No rail found: set to the expected position
pos = new_pos
update.pos = true
cart_dir = new_dir
dir = new_dir
end
elseif self.old_pos and self.old_dir.y ~= 1 and not self.punched then
-- Stop wiggle
@ -241,21 +239,27 @@ local function rail_on_step(self, dtime)
local railparams
-- dir: New moving direction of the cart
-- switch_keys: Currently pressed L/R key, used to ignore the key on the next rail node
local dir, switch_keys = carts:get_rail_direction(
pos, cart_dir, ctrl, self.old_switch, self.railtype
-- switch_keys: Currently pressed L(1) or R(2) key,
-- used to ignore the key on the next rail node
local switch_keys
dir, switch_keys = carts:get_rail_direction(
pos, dir, ctrl, self.old_switch, self.railtype
)
local dir_changed = not vector.equals(dir, self.old_dir)
dir_changed = not vector.equals(dir, self.old_dir)
local new_acc = {x=0, y=0, z=0}
local acc = 0
if stop_wiggle or vector.equals(dir, {x=0, y=0, z=0}) then
dir = vector.new(self.old_dir)
vel = {x = 0, y = 0, z = 0}
local pos_r = vector.round(pos)
if not carts:is_rail(pos_r, self.railtype)
and self.old_pos then
pos = self.old_pos
elseif not stop_wiggle then
-- End of rail: Smooth out.
pos = pos_r
dir_changed = false
dir.y = 0
else
pos.y = math.floor(pos.y + 0.5)
end
@ -282,7 +286,7 @@ local function rail_on_step(self, dtime)
end
-- Slow down or speed up..
local acc = dir.y * -4.0
acc = dir.y * -4.0
-- Get rail for corrected position
railparams = get_railparams(pos)
@ -300,25 +304,22 @@ local function rail_on_step(self, dtime)
acc = acc - 0.4
end
end
new_acc = vector.multiply(dir, acc)
end
-- Limits
local max_vel = carts.speed_max
for _, v in pairs({"x","y","z"}) do
if math.abs(vel[v]) > max_vel then
vel[v] = carts:get_sign(vel[v]) * max_vel
new_acc[v] = 0
update.vel = true
end
-- Limit cart speed
local vel_len = vector.length(vel)
if vel_len > carts.speed_max then
vel = vector.multiply(vel, carts.speed_max / vel_len)
update.vel = true
end
if vel_len >= carts.speed_max and acc > 0 then
acc = 0
end
self.object:set_acceleration(new_acc)
self.object:set_acceleration(vector.multiply(dir, acc))
self.old_pos = vector.round(pos)
if not vector.equals(dir, {x=0, y=0, z=0}) and not stop_wiggle then
self.old_dir = vector.new(dir)
end
self.old_dir = vector.new(dir)
self.old_switch = switch_keys
if self.punched then
@ -344,11 +345,11 @@ local function rail_on_step(self, dtime)
end
local yaw = 0
if self.old_dir.x < 0 then
if dir.x < 0 then
yaw = 0.5
elseif self.old_dir.x > 0 then
elseif dir.x > 0 then
yaw = 1.5
elseif self.old_dir.z < 0 then
elseif dir.z < 0 then
yaw = 1
end
self.object:set_yaw(yaw * math.pi)
@ -398,7 +399,7 @@ minetest.register_craftitem("carts:cart", {
pointed_thing) or itemstack
end
if not pointed_thing.type == "node" then
if pointed_thing.type ~= "node" then
return
end
if carts:is_rail(pointed_thing.under) then
@ -412,7 +413,8 @@ minetest.register_craftitem("carts:cart", {
minetest.sound_play({name = "default_place_node_metal", gain = 0.5},
{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()
end
return itemstack

View File

@ -1,6 +1,6 @@
# textdomain: carts
Cart=Ĉaro
(Sneak+Click to pick up)=(Ŝteliru+Alklaku por reprini)
(Sneak+Click to pick up)=(Ŝteliri+Alklaki por reprini)
Rail=Relo
Powered Rail=Elektra Relo
Brake Rail=Bremsa Relo
Powered Rail=Elektra relo
Brake Rail=Bremsa relo

View File

@ -0,0 +1,6 @@
# textdomain: carts
Cart=Wagonik
(Sneak+Click to pick up)=(Skradanie+Naciśnij aby zebrać)
Rail=Tory
Powered Rail=Napędzane tory
Brake Rail=Hamujące tory

View File

@ -2,5 +2,5 @@
Cart=Вагонетка
(Sneak+Click to pick up)=(Пригнитесь и кликните по вагонетке, чтобы забрать)
Rail=Рельсы
Powered Rail=Запитанные рельсы
Powered Rail=Ускоряющие рельсы
Brake Rail=Тормозящие рельсы

View File

@ -1,6 +1,6 @@
# textdomain: carts
Cart=Вагонетка
(Sneak+Click to pick up)=(Пригніться та клікніть по вагонетці, щоб забрати)
(Sneak+Click to pick up)=(Пригніться та натисніть, щоби підібрати)
Rail=Рейки
Powered Rail=Задіяні Рейки
Brake Rail=Гальмівні Рейки
Powered Rail=Електричні рейки
Brake Rail=Гальмівні рейки

View File

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

View File

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

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=Spieler erlauben, das Kreativinventar zu benutzen
No items to show.=Keine Gegenstände vorhanden.
Search=Suchen
Reset=Zurücksetzen
Previous page=Vorherige Seite

View File

@ -1,9 +1,10 @@
# textdomain: creative
Allow player to use creative inventory=Permesu la ludanto uzi la krea stoko
Search=Serĉu
Reset=Rekomencigu
Previous page=Pasinta paĝo
Next page=Sekvinta paĝo
Allow player to use creative inventory=Permesi ke la ludanto uzu la kreeman stokon
No items to show.=
Search=Serĉi
Reset=Rekomencigi
Previous page=Antaŭa paĝo
Next page=Sekva paĝo
All=Ĉio
Nodes=Nodoj
Tools=Iloj

View File

@ -1,7 +1,8 @@
# textdomain: creative
Allow player to use creative inventory=Permitir al jugador usar el inventario creativo
No items to show.=Sin artículos que mostrar.
Search=Buscar
Reset=Resetear
Reset=Reiniciar
Previous page=Pág. siguiente
Next page=Pág. anterior
All=Todos

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=Permettre aux joueurs d'utiliser l'inventaire du mode créatif
No items to show.=
Search=Rechercher
Reset=Réinitialiser
Previous page=Page précédente

View File

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

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=Permette al giocatore di usare l'inventario creativo
No items to show.=
Search=Cerca
Reset=Azzera
Previous page=Pagina precedente

View File

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

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=zifre le ka pilno le finti ke dacti liste
No items to show.=
Search=sisku
Reset=kraga'igau
Previous page=lidne

View File

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

View File

@ -0,0 +1,11 @@
# textdomain: creative
Allow player to use creative inventory=Zezwól graczom na używanie kreatywnego ekwipunku
No items to show.=
Search=Wyszukaj
Reset=Zresetuj
Previous page=Poprzednia strona
Next page=Następna strona
All=Wszystko
Nodes=Bloki
Tools=Narzędzia
Items=Przedmioty

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=Permitir o jogador usar o inventário criativo
No items to show.=
Search=Pesquisar
Reset=Redefinir
Previous page=Página anterior

View File

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

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=Povolí hráčovi použivať kreatívny inventár
No items to show.=
Search=Hľadaj
Reset=Vrátiť späť
Previous page=Predchádzajúca stránka

View File

@ -1,5 +1,6 @@
# textdomain: creative
Allow player to use creative inventory=Tillåt spelare att använda kreativa saker
No items to show.=
Search=Sök
Reset=Återställ
Previous page=Förra sida

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -38,34 +38,44 @@ function default.chest.chest_lid_close(pn)
default.chest.open_chests[pn] = nil
for k, v in pairs(default.chest.open_chests) do
if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then
if vector.equals(v.pos, pos) then
-- another player is also looking at the chest
return true
end
end
local node = minetest.get_node(pos)
minetest.after(0.2, minetest.swap_node, pos, { name = swap,
param2 = node.param2 })
minetest.sound_play(sound, {gain = 0.3, pos = pos,
max_hear_distance = 10}, true)
minetest.after(0.2, function()
local current_node = minetest.get_node(pos)
if current_node.name ~= swap .. "_open" then
-- the chest has already been replaced, don't try to replace what's there.
return
end
minetest.swap_node(pos, {name = swap, param2 = node.param2})
minetest.sound_play(sound, {gain = 0.3, pos = pos,
max_hear_distance = 10}, true)
end)
end
default.chest.open_chests = {}
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= "default:chest" then
return
end
if not player or not fields.quit then
return
end
local pn = player:get_player_name()
if not default.chest.open_chests[pn] then
if formname ~= "default:chest" then
if default.chest.open_chests[pn] then
default.chest.chest_lid_close(pn)
end
return
end
if not (fields.quit and default.chest.open_chests[pn]) then
return
end
default.chest.chest_lid_close(pn)
return true
end)
@ -129,6 +139,12 @@ function default.chest.register_chest(prefixed_name, d)
return itemstack
end
local cn = clicker:get_player_name()
if default.chest.open_chests[cn] then
default.chest.chest_lid_close(cn)
end
minetest.sound_play(def.sound_open, {gain = 0.3,
pos = pos, max_hear_distance = 10}, true)
if not default.chest.chest_lid_obstructed(pos) then
@ -136,10 +152,9 @@ function default.chest.register_chest(prefixed_name, d)
{ name = name .. "_open",
param2 = node.param2 })
end
minetest.after(0.2, minetest.show_formspec,
clicker:get_player_name(),
minetest.after(0.2, minetest.show_formspec, cn,
"default:chest", default.chest.get_chest_formspec(pos))
default.chest.open_chests[clicker:get_player_name()] = { pos = pos,
default.chest.open_chests[cn] = { pos = pos,
sound = def.sound_close, swap = name }
end
def.on_blast = function() end
@ -200,6 +215,12 @@ function default.chest.register_chest(prefixed_name, d)
return inv:is_empty("main")
end
def.on_rightclick = function(pos, node, clicker)
local cn = clicker:get_player_name()
if default.chest.open_chests[cn] then
default.chest.chest_lid_close(cn)
end
minetest.sound_play(def.sound_open, {gain = 0.3, pos = pos,
max_hear_distance = 10}, true)
if not default.chest.chest_lid_obstructed(pos) then
@ -208,9 +229,9 @@ function default.chest.register_chest(prefixed_name, d)
param2 = node.param2 })
end
minetest.after(0.2, minetest.show_formspec,
clicker:get_player_name(),
cn,
"default:chest", default.chest.get_chest_formspec(pos))
default.chest.open_chests[clicker:get_player_name()] = { pos = pos,
default.chest.open_chests[cn] = { pos = pos,
sound = def.sound_close, swap = name }
end
def.on_blast = function(pos)
@ -222,21 +243,7 @@ function default.chest.register_chest(prefixed_name, d)
end
end
def.on_metadata_inventory_move = function(pos, from_list, from_index,
to_list, to_index, count, player)
minetest.log("action", player:get_player_name() ..
" moves stuff in chest at " .. minetest.pos_to_string(pos))
end
def.on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" moves " .. stack:get_name() ..
" to chest at " .. minetest.pos_to_string(pos))
end
def.on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" takes " .. stack:get_name() ..
" from chest at " .. minetest.pos_to_string(pos))
end
default.set_inventory_action_loggers(def, "chest")
local def_opened = table.copy(def)
local def_closed = table.copy(def)
@ -288,6 +295,19 @@ function default.chest.register_chest(prefixed_name, d)
end
})
end
-- close opened chests on load
local modname, chestname = prefixed_name:match("^(:?.-):(.*)$")
minetest.register_lbm({
label = "close opened chests on load",
name = modname .. ":close_" .. chestname .. "_open",
nodenames = {prefixed_name .. "_open"},
run_at_every_load = true,
action = function(pos, node)
node.name = prefixed_name
minetest.swap_node(pos, node)
end
})
end
default.chest.register_chest("default:chest", {

View File

@ -42,6 +42,12 @@ local function formspec_string(lpp, page, lines, string)
return string
end
local book_writers = {}
minetest.register_on_leaveplayer(function(player)
book_writers[player:get_player_name()] = nil
end)
local tab_number
local lpp = 14 -- Lines per book's page
local function book_on_use(itemstack, user)
@ -90,6 +96,8 @@ local function book_on_use(itemstack, user)
end
minetest.show_formspec(player_name, "default:book", formspec_size .. formspec)
-- Store the wield index in case the user accidentally switches before the formspec is shown
book_writers[player_name] = {wield_index = user:get_wield_index()}
return itemstack
end
@ -97,10 +105,23 @@ local max_text_size = 10000
local max_title_size = 80
local short_title_size = 35
minetest.register_on_player_receive_fields(function(player, formname, fields)
if formname ~= "default:book" then return end
if formname ~= "default:book" then
return
end
local player_name = player:get_player_name()
local inv = player:get_inventory()
local stack = player:get_wielded_item()
if not book_writers[player_name] then
return
end
local wield_index = book_writers[player_name].wield_index
local wield_list = player:get_wield_list()
local stack = inv:get_stack(wield_list, wield_index)
local written = stack:get_name() == "default:book_written"
if stack:get_name() ~= "default:book" and not written then
-- No book in the wield slot, abort & inform the player
minetest.chat_send_player(player_name, S("The book you were writing to mysteriously disappeared."))
return
end
local data = stack:get_meta():to_table().fields
local title = data.title or ""
@ -127,9 +148,13 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
return
end
if fields.quit then
book_writers[player_name] = nil
end
if fields.save and fields.title and fields.text then
local new_stack
if stack:get_name() ~= "default:book_written" then
if not written then
local count = stack:get_count()
if count == 1 then
stack:set_name("default:book_written")
@ -154,6 +179,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
data.description = S("\"@1\" by @2", short_title, data.owner)
data.text = fields.text:sub(1, max_text_size)
data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n")
data.text = data.text:gsub("[%z\1-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n)
data.page = 1
data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp)
@ -193,7 +219,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
end
-- Update stack
player:set_wielded_item(stack)
inv:set_stack(wield_list, wield_index, stack)
end)

View File

@ -715,6 +715,54 @@ function default.register_craft_metadata_copy(ingredient, result)
end)
end
--
-- Log API / helpers
--
local log_non_player_actions = minetest.settings:get_bool("log_non_player_actions", false)
local is_pos = function(v)
return type(v) == "table" and
type(v.x) == "number" and type(v.y) == "number" and type(v.z) == "number"
end
function default.log_player_action(player, ...)
local msg = player:get_player_name()
if player.is_fake_player or not player:is_player() then
if not log_non_player_actions then
return
end
msg = msg .. "(" .. (type(player.is_fake_player) == "string"
and player.is_fake_player or "*") .. ")"
end
for _, v in ipairs({...}) do
-- translate pos
local part = is_pos(v) and minetest.pos_to_string(v) or v
-- no leading spaces before punctuation marks
msg = msg .. (string.match(part, "^[;,.]") and "" or " ") .. part
end
minetest.log("action", msg)
end
local nop = function() end
function default.set_inventory_action_loggers(def, name)
local on_move = def.on_metadata_inventory_move or nop
def.on_metadata_inventory_move = function(pos, from_list, from_index,
to_list, to_index, count, player)
default.log_player_action(player, "moves stuff in", name, "at", pos)
return on_move(pos, from_list, from_index, to_list, to_index, count, player)
end
local on_put = def.on_metadata_inventory_put or nop
def.on_metadata_inventory_put = function(pos, listname, index, stack, player)
default.log_player_action(player, "moves", stack:get_name(), stack:get_count(), "to", name, "at", pos)
return on_put(pos, listname, index, stack, player)
end
local on_take = def.on_metadata_inventory_take or nop
def.on_metadata_inventory_take = function(pos, listname, index, stack, player)
default.log_player_action(player, "takes", stack:get_name(), stack:get_count(), "from", name, "at", pos)
return on_take(pos, listname, index, stack, player)
end
end
--
-- NOTICE: This method is not an official part of the API yet.

View File

@ -3,6 +3,9 @@
-- support for MT game translation.
local S = default.get_translator
-- List of sound handles for active furnace
local furnace_fire_sounds = {}
--
-- Formspecs
--
@ -91,6 +94,17 @@ local function allow_metadata_inventory_take(pos, listname, index, stack, player
return stack:get_count()
end
local function stop_furnace_sound(pos, fadeout_step)
local hash = minetest.hash_node_position(pos)
local sound_ids = furnace_fire_sounds[hash]
if sound_ids then
for _, sound_id in ipairs(sound_ids) do
minetest.sound_fade(sound_id, -1, 0)
end
furnace_fire_sounds[hash] = nil
end
end
local function swap_node(pos, name)
local node = minetest.get_node(pos)
if node.name == name then
@ -253,8 +267,29 @@ local function furnace_node_timer(pos, elapsed)
-- Play sound every 5 seconds while the furnace is active
if timer_elapsed == 0 or (timer_elapsed + 1) % 5 == 0 then
minetest.sound_play("default_furnace_active",
{pos = pos, max_hear_distance = 16, gain = 0.25}, true)
local sound_id = minetest.sound_play("default_furnace_active",
{pos = pos, max_hear_distance = 16, gain = 0.25})
local hash = minetest.hash_node_position(pos)
furnace_fire_sounds[hash] = furnace_fire_sounds[hash] or {}
table.insert(furnace_fire_sounds[hash], sound_id)
-- Only remember the 3 last sound handles
if #furnace_fire_sounds[hash] > 3 then
table.remove(furnace_fire_sounds[hash], 1)
end
-- Remove the sound ID automatically from table after 11 seconds
minetest.after(11, function()
if not furnace_fire_sounds[hash] then
return
end
for f=#furnace_fire_sounds[hash], 1, -1 do
if furnace_fire_sounds[hash][f] == sound_id then
table.remove(furnace_fire_sounds[hash], f)
end
end
if #furnace_fire_sounds[hash] == 0 then
furnace_fire_sounds[hash] = nil
end
end)
end
else
if fuellist and not fuellist[1]:is_empty() then
@ -265,6 +300,8 @@ local function furnace_node_timer(pos, elapsed)
-- stop timer on the inactive furnace
minetest.get_node_timer(pos):stop()
meta:set_int("timer_elapsed", 0)
stop_furnace_sound(pos)
end
@ -369,6 +406,9 @@ minetest.register_node("default:furnace_active", {
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
on_timer = furnace_node_timer,
on_destruct = function(pos)
stop_furnace_sound(pos)
end,
can_dig = can_dig,

View File

@ -17,10 +17,7 @@ default.get_translator = S
-- and avoids obscure, hard to debug runtime errors.
-- This section should be updated before release and older checks can be dropped
-- when newer ones are introduced.
if not minetest.is_creative_enabled or not minetest.has_feature({
direct_velocity_on_players = true,
use_texture_alpha_string_modes = true,
}) then
if ItemStack("").add_wear_by_uses == nil then
error("\nThis version of Minetest Game is incompatible with your engine version "..
"(which is too old). You should download a version of Minetest Game that "..
"matches the installed engine version.\n")
@ -80,3 +77,19 @@ dofile(default_path.."/crafting.lua")
dofile(default_path.."/mapgen.lua")
dofile(default_path.."/aliases.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

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

View File

@ -11,6 +11,7 @@ Contents:=Inhalt:
Save=Speichern
by @1=von @1
Page @1 of @2=Seite @1 von @2
The book you were writing to mysteriously disappeared.=Das Buch, an dem Sie geschrieben haben, ist auf mysteriöse Weise verschwunden.
"@1" by @2=„@1“ von @2
Blueberries=Blaubeeren
Book=Buch
@ -107,7 +108,7 @@ Acacia Tree Sapling=Akazienbaumsetzling
Aspen Tree=Espenbaum
Aspen Wood Planks=Espenholzplanken
Aspen Tree Leaves=Espenbaumblätter
Aspen Tree Sapling=Esepenbaumsetzling
Aspen Tree Sapling=Espenbaumsetzling
Coal Ore=Kohleerz
Coal Block=Kohleblock
Iron Ore=Eisenerz

View File

@ -1,43 +1,44 @@
# textdomain: default
Locked Chest=Ŝlosita Kesto
Locked Chest (owned by @1)=Ŝlosita Kesto (de @1)
You do not own this chest.=Vi ne posedas ĉi tiu keston.
Locked Chest=Ŝlosita kesto
Locked Chest (owned by @1)=Ŝlosita kesto (de @1)
You do not own this chest.=Vi ne posedas ĉi tiun keston.
a locked chest=ŝlosita kesto
Chest=Kesto
Write=
Read=
Title:=Titolo
Contents:=Entenaĵo
Save=Konservu
Write=Skribi
Read=Legi
Title:=Titolo:
Contents:=Enhavo:
Save=Konservi
by @1=per @1
Page @1 of @2=Paĝo @1 el @2
The book you were writing to mysteriously disappeared.=La libro, kiun vi skribis, mistere malaperis.
"@1" by @2="@1" per @2
Blueberries=Mirteloj
Book=Libro
Book with Text=Libro kun Teksto
Bronze Ingot=Bronza Ingoto
Clay Brick=Argila Briko
Clay Lump=Argila Bulo
Coal Lump=Karba Bulo
Copper Ingot=Kupra Ingoto
Copper Lump=Kupra Bulo
Book with Text=Libro kun teksto
Bronze Ingot=Bronza ingoto
Clay Brick=Argila briko
Clay Lump=Argila bulo
Coal Lump=Karba bulo
Copper Ingot=Kupra ingoto
Copper Lump=Kupra bulo
Diamond=Diamanto
Flint=Siliko
Gold Ingot=Ora Ingoto
Gold Lump=Ora Bulo
Iron Lump=Fera Bulo
Mese Crystal=Mesea Kristalo
Mese Crystal Fragment=Mesea Kristala Ero
Obsidian Shard=Obsidiana Peceto
Gold Ingot=Ora ingoto
Gold Lump=Ora bulo
Iron Lump=Fera bulo
Mese Crystal=Mesea kristalo
Mese Crystal Fragment=Mesea kristala ero
Obsidian Shard=Obsidiana peceto
Paper=Papero
Steel Ingot=Ŝtala Ingoto
Steel Ingot=Ŝtala ingoto
Stick=Bastono
Tin Ingot=Stana Ingoto
Tin Lump=Stana Bulo
Tin Ingot=Stana ingoto
Tin Lump=Stana bulo
Furnace is empty=Forno estas malplena
100% (output full)=100% (eligo estas plena)
100% (output full)=100% (plena eligo)
@1%=@1%
Not cookable=Ne povas kuiri
Not cookable=Nekuirebla
Empty=Malplena
Furnace active=Forno laboras
Furnace inactive=Forno ne laboras
@ -45,175 +46,175 @@ Furnace inactive=Forno ne laboras
Furnace=Forno
Stone=Ŝtono
Cobblestone=Pavimŝtono
Stone Brick=Ŝtona Briko
Stone Block=Ŝtona Ŝtipo
Mossy Cobblestone=Muska Pavimŝtono
Desert Stone=Dezerta Ŝtono
Desert Cobblestone=Dezerta Pavimŝtono
Desert Stone Brick=Dezerta Ŝtona Briko
Desert Stone Block=Dezerta Ŝtona Ŝtipo
Stone Brick=Ŝtona briko
Stone Block=Ŝtona bloko
Mossy Cobblestone=Muska pavimŝtono
Desert Stone=Dezerta ŝtono
Desert Cobblestone=Dezerta pavimŝtono
Desert Stone Brick=Dezerta ŝtona briko
Desert Stone Block=Dezerta ŝtona bloko
Sandstone=Sablaŝtono
Sandstone Brick=Sablaŝtono Briko
Sandstone Block=Sablaŝtono Ŝtipo
Desert Sandstone=Dezerta Sablaŝtono
Desert Sandstone Brick=Dezerta Sablaŝtono Briko
Desert Sandstone Block=Dezerta Sablaŝtono Ŝtipo
Silver Sandstone=Arĝenta Sablaŝtono
Silver Sandstone Brick=Arĝenta Sablaŝtono Briko
Silver Sandstone Block=Arĝenta Sablaŝtono Ŝtipo
Sandstone Brick=Sablaŝtono briko
Sandstone Block=Sablaŝtono bloko
Desert Sandstone=Dezerta sablaŝtono
Desert Sandstone Brick=Dezerta sablaŝtono briko
Desert Sandstone Block=Dezerta sablaŝtono bloko
Silver Sandstone=Arĝenta sablaŝtono
Silver Sandstone Brick=Arĝenta sablaŝtono briko
Silver Sandstone Block=Arĝenta sablaŝtono bloko
Obsidian=Obsidiano
Obsidian Brick=Obsidiana Briko
Obsidian Block=Obsidiana Ŝtipo
Obsidian Brick=Obsidiana briko
Obsidian Block=Obsidiana bloko
Dirt=Tero
Dirt with Grass=Tero kun Herbo
Dirt with Grass and Footsteps=Tero kun Herbo kaj Piedpaŝoj
Dirt with Savanna Grass=Tero kun Savana Herbo
Dirt with Snow=Tero kun Neĝo
Dirt with Rainforest Litter=Tero kun Pluvarbara Folioj
Dirt with Coniferous Litter=Tero kun Konifera Folioj
Savanna Dirt=Savana Tero
Savanna Dirt with Savanna Grass=Savana Tero kun Savana Herbo
Dirt with Grass=Tero kun herbo
Dirt with Grass and Footsteps=Tero kun herbo kaj piedpaŝoj
Dirt with Savanna Grass=Tero kun savana herbo
Dirt with Snow=Tero kun neĝo
Dirt with Rainforest Litter=Tero kun pluvarbara folioj
Dirt with Coniferous Litter=Tero kun koniferaj folioj
Savanna Dirt=Savana tero
Savanna Dirt with Savanna Grass=Savana tero kun savana herbo
Permafrost=Ĉiamfrosto
Permafrost with Stones=Ĉiamfrosto kun Ŝtonoj
Permafrost with Moss=Ĉiamfrosto kun Musko
Permafrost with Stones=Ĉiamfrosto kun ŝtonoj
Permafrost with Moss=Ĉiamfrosto kun musko
Sand=Sablo
Desert Sand=Dezerta Sablo
Silver Sand=Arĝenta Sablo
Desert Sand=Dezerta sablo
Silver Sand=Arĝenta sablo
Gravel=Gruzo
Clay=Argilo
Snow=Neĝo
Snow Block=Neĝa Ŝtipo
Snow Block=Neĝa bloko
Ice=Glacio
Cave Ice=Kaverna Glacio
Apple Tree=Poma Arbo
Apple Wood Planks=Poma Ligna Tabuloj
Apple Tree Sapling=Poma Arba Arbido
Apple Tree Leaves=Poma Arba Folioj
Cave Ice=Kaverna glacio
Apple Tree=Pomarbo
Apple Wood Planks=Pomarbaj lignaj tabuloj
Apple Tree Sapling=Pomarba arbido
Apple Tree Leaves=Pomarbaj folioj
Apple=Pomo
Apple Marker=Poma Marko
Jungle Tree=Ĝangala Arbo
Jungle Wood Planks=Ĝangala Ligna Tabuloj
Jungle Tree Leaves=Ĝangala Arba Folioj
Jungle Tree Sapling=Ĝangala Arba Arbido
Emergent Jungle Tree Sapling=Nova Ĝangala Arba Arbido
Pine Tree=Pina Arbo
Pine Wood Planks=Pina Ligna Tabuloj
Apple Marker=Poma marko
Jungle Tree=Ĝangala arbo
Jungle Wood Planks=Ĝangalaj lignaj tabuloj
Jungle Tree Leaves=Ĝangalaj arbaj folioj
Jungle Tree Sapling=Ĝangala arba arbido
Emergent Jungle Tree Sapling=Nova ĝangala arba arbido
Pine Tree=Pino
Pine Wood Planks=Pinaj lignaj tabuloj
Pine Needles=Pinpingloj
Pine Tree Sapling=Pina Arba Arbido
Acacia Tree=Akacia Arbo
Acacia Wood Planks=Akacia Ligna Tabuloj
Acacia Tree Leaves=Akacia Arba Folioj
Acacia Tree Sapling=Akacia Arba Arbido
Aspen Tree=Tremola Arba
Aspen Wood Planks=Tremola Ligna Tabuloj
Aspen Tree Leaves=Tremola Arbo Folioj
Aspen Tree Sapling=Tremola Arba Arbido
Coal Ore=Karba Minaĵo
Coal Block=Karba Ŝtipo
Iron Ore=Fera Minaĵo
Steel Block=Ŝtala Ŝtipo
Copper Ore=Kupra Minaĵo
Copper Block=Kupra Ŝtipo
Tin Ore=Stana Minaĵo
Tin Block=Stana Ŝtipo
Bronze Block=Bronza Ŝtipo
Mese Ore=Mesea Minaĵo
Mese Block=Mesea Ŝtipo
Gold Ore=Ora Minaĵo
Gold Block=Ora Ŝtipo
Diamond Ore=Diamanta Minaĵo
Diamond Block=Diamanta Ŝtipo
Pine Tree Sapling=Pina arbido
Acacia Tree=Akacio
Acacia Wood Planks=Akaciaj lignaj tabuloj
Acacia Tree Leaves=Akaciaj folioj
Acacia Tree Sapling=Akacia arbido
Aspen Tree=Tremolo
Aspen Wood Planks=Tremolaj lignaj tabuloj
Aspen Tree Leaves=Tremolaj folioj
Aspen Tree Sapling=Tremola arbido
Coal Ore=Karba minaĵo
Coal Block=Karba bloko
Iron Ore=Fera minaĵo
Steel Block=Ŝtala bloko
Copper Ore=Kupra minaĵo
Copper Block=Kupra bloko
Tin Ore=Stana minaĵo
Tin Block=Stana bloko
Bronze Block=Bronza bloko
Mese Ore=Mesea minaĵo
Mese Block=Mesea bloko
Gold Ore=Ora minaĵo
Gold Block=Ora bloko
Diamond Ore=Diamanta minaĵo
Diamond Block=Diamanta bloko
Cactus=Kakto
Large Cactus Seedling=Granda Kakta Kreskaĵo
Large Cactus Seedling=Granda kakta kreskaĵo
Papyrus=Papiruso
Dry Shrub=Seka Arbetaĵo
Jungle Grass=Ĝangala Herbo
Dry Shrub=Seka arbetaĵo
Jungle Grass=Ĝangala herbo
Grass=Herbo
Savanna Grass=Savana Herbo
Savanna Grass=Savana herbo
Fern=Filiko
Marram Grass=Amofilo
Bush Stem=Arbateĵa Tubo
Bush Leaves=Arbateĵa Folioj
Bush Sapling=Arbateĵa Arbido
Blueberry Bush Leaves with Berries=Mirtela Arbateĵa Folioj kaj Beroj
Blueberry Bush Leaves=Mirtela Arbateĵa Folioj
Blueberry Bush Sapling=Mirtela Arbateĵa Arbido
Acacia Bush Stem=Akacia Arbateĵa Tubo
Acacia Bush Leaves=Akacia Arbateĵa Folioj
Acacia Bush Sapling=Akacia Arbateĵa Arbido
Pine Bush Stem=Pina Arbateĵa Tubo
Pine Bush Needles=Pina Arbateĵa Pingloj
Pine Bush Sapling=Pina Arbateĵa Arbido
Bush Stem=Arbateĵa tubo
Bush Leaves=Arbateĵaj folioj
Bush Sapling=Arbateĵa arbido
Blueberry Bush Leaves with Berries=Mirtelaj arbateĵaj folioj kaj beroj
Blueberry Bush Leaves=Mirtelaj arbateĵaj folioj
Blueberry Bush Sapling=Mirtela arbateĵa arbido
Acacia Bush Stem=Akacia arbateĵa tubo
Acacia Bush Leaves=Akaciaj arbateĵaj folioj
Acacia Bush Sapling=Akacia arbateĵa arbido
Pine Bush Stem=Pina arbateĵa tubo
Pine Bush Needles=Pinaj arbateĵaj pingloj
Pine Bush Sapling=Pina arbateĵa arbido
Kelp=Fuko
Green Coral=Verda Koralo
Pink Coral=Rozkolora Koralo
Cyan Coral=Bluverda Koralo
Brown Coral=Bruna Koralo
Orange Coral=Oranĝa Koralo
Coral Skeleton=Korala Framo
Water Source=Akva Fonto
Flowing Water=Flua Akvo
River Water Source=Rivera Akva Fonto
Flowing River Water=Flua Rivera Akvo
Lava Source=Lafa Fonto
Flowing Lava=Flua Lafa
Empty Bookshelf=Malplena Librobreto
Bookshelf (@1 written, @2 empty books)=Librobreto (@1 skriba, @2 malplena libroj)
Green Coral=Verda koralo
Pink Coral=Rozkolora koralo
Cyan Coral=Bluverda koralo
Brown Coral=Bruna koralo
Orange Coral=Oranĝkolora koralo
Coral Skeleton=Korala framo
Water Source=Akva fonto
Flowing Water=Flua akvo
River Water Source=Rivera akva fonto
Flowing River Water=Flua rivera akvo
Lava Source=Lafa fonto
Flowing Lava=Flua lafa
Empty Bookshelf=Malplena librobreto
Bookshelf (@1 written, @2 empty books)=Librobreto (@1 skriba(j), @2 malplena(j) libro(j))
Bookshelf=Librobreto
Text too long=Teksto estas ekscesa longo
"@1"="@1"
Wooden Sign=Ligna Signo
Steel Sign=Ŝtala Signo
Wooden Ladder=Ligna Ŝtupetaro
Steel Ladder=Ŝtala Ŝtupetaro
Apple Wood Fence=Poma Ligna Barilo
Acacia Wood Fence=Akacia Ligna Barilo
Jungle Wood Fence=Ĝangala Ligna Barilo
Pine Wood Fence=Pina Ligna Barilo
Aspen Wood Fence=Tremola Ligna Barilo
Apple Wood Fence Rail=Poma Ligna Barila Relo
Acacia Wood Fence Rail=Akacia Ligna Barila Relo
Jungle Wood Fence Rail=Ĝangala Ligna Barila Relo
Pine Wood Fence Rail=Pina Ligna Barila Relo
Aspen Wood Fence Rail=Tremola Ligna Barila Relo
Text too long=Tro longa teksto
"@1"=
Wooden Sign=Ligna signo
Steel Sign=Ŝtala signo
Wooden Ladder=Ligna ŝtupetaro
Steel Ladder=Ŝtala ŝtupetaro
Apple Wood Fence=Poma ligna barilo
Acacia Wood Fence=Akacia ligna barilo
Jungle Wood Fence=Ĝangala ligna barilo
Pine Wood Fence=Pina ligna barilo
Aspen Wood Fence=Tremola ligna barilo
Apple Wood Fence Rail=Poma ligna barila relo
Acacia Wood Fence Rail=Akacia ligna barila relo
Jungle Wood Fence Rail=Ĝangala ligna barila relo
Pine Wood Fence Rail=Pina ligna barila relo
Aspen Wood Fence Rail=Tremola ligna barila relo
Glass=Vitro
Obsidian Glass=Obsidiana Vitro
Brick Block=Brika Ŝtipo
Mese Lamp=Mesea Lampo
Apple Wood Mese Post Light=
Acacia Wood Mese Post Light=
Jungle Wood Mese Post Light=
Pine Wood Mese Post Light=
Aspen Wood Mese Post Light=
Obsidian Glass=Obsidiana vitro
Brick Block=Brika bloko
Mese Lamp=Mesea lampo
Apple Wood Mese Post Light=Poma ligna mesea fosta lampo
Acacia Wood Mese Post Light=Akacia ligna mesea fosta lampo
Jungle Wood Mese Post Light=Ĝangala ligna mesea fosta lampo
Pine Wood Mese Post Light=Pina ligna mesea fosta lampo
Aspen Wood Mese Post Light=Tremola ligna mesea fosta lampo
Cloud=Nubo
Wooden Pickaxe=Ligna Pioĉo
Stone Pickaxe=Ŝtona Pioĉo
Bronze Pickaxe=Bronza Pioĉo
Steel Pickaxe=Ŝtala Pioĉo
Mese Pickaxe=Mesea Pioĉo
Diamond Pickaxe=Diamanta Pioĉo
Wooden Shovel=Ligna Fosilo
Stone Shovel=Ŝtona Fosilo
Bronze Shovel=Bronza Fosilo
Steel Shovel=Ŝtala Fosilo
Mese Shovel=Mesea Fosilo
Diamond Shovel=Diamanta Fosilo
Wooden Axe=Ligna Hakilo
Stone Axe=Ŝtona Hakilo
Bronze Axe=Bronza Hakilo
Steel Axe=Ŝtala Hakilo
Mese Axe=Mesea Hakilo
Diamond Axe=Diamanta Hakilo
Wooden Sword=Ligna Glavo
Stone Sword=Ŝtona Glavo
Bronze Sword=Bronza Glavo
Steel Sword=Ŝtala Glavo
Mese Sword=Mesea Glavo
Diamond Sword=Diamanta Glavo
Wooden Pickaxe=Ligna pioĉo
Stone Pickaxe=Ŝtona pioĉo
Bronze Pickaxe=Bronza pioĉo
Steel Pickaxe=Ŝtala pioĉo
Mese Pickaxe=Mesea pioĉo
Diamond Pickaxe=Diamanta pioĉo
Wooden Shovel=Ligna fosilo
Stone Shovel=Ŝtona fosilo
Bronze Shovel=Bronza fosilo
Steel Shovel=Ŝtala fosilo
Mese Shovel=Mesea fosilo
Diamond Shovel=Diamanta fosilo
Wooden Axe=Ligna hakilo
Stone Axe=Ŝtona hakilo
Bronze Axe=Bronza hakilo
Steel Axe=Ŝtala hakilo
Mese Axe=Mesea hakilo
Diamond Axe=Diamanta hakilo
Wooden Sword=Ligna glavo
Stone Sword=Ŝtona glavo
Bronze Sword=Bronza glavo
Steel Sword=Ŝtala glavo
Mese Sword=Mesea glavo
Diamond Sword=Diamanta glavo
Torch=Torĉo
@1 will intersect protection on growth.=@1 sekcos protekto ĉe vegeto.
@1 will intersect protection on growth.=@1 sekcos protekton dum kresko.
##### not used anymore #####
Mese Post Light=Mesea Fosta Lampo
Mese Post Light=Mesea fosta lampo

View File

@ -11,6 +11,7 @@ Contents:=Contenidos:
Save=Guardar
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=Arándanos
Book=Libro

View File

@ -11,6 +11,7 @@ Contents:=Contenu :
Save=Sauvegarder
by @1=de @1
Page @1 of @2=Page @1 sur @2
The book you were writing to mysteriously disappeared.=
"@1" by @2=« @1 » de @2
Blueberries=Myrtille
Book=Livre
@ -110,7 +111,7 @@ Aspen Tree Leaves=Feuilles de tremble
Aspen Tree Sapling=Pousse de tremble
Coal Ore=Minerai de charbon
Coal Block=Bloc de charbon
Iron Ore=Bloc de fer
Iron Ore=Minerai de fer
Steel Block=Bloc d'acier
Copper Ore=Minerai de cuivre
Copper Block=Bloc de cuivre

View File

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

View File

@ -11,6 +11,7 @@ Contents:=
Save=
by @1=
Page @1 of @2=
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" di @2
Blueberries=Mirtilli
Book=Libro

View File

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

View File

@ -4,13 +4,14 @@ Locked Chest (owned by @1)=.i ti selstela gairvau po la'o zo'i.@1.zo'i
You do not own this chest.=.i do na ponse lo ti gairvau
a locked chest=lo selstela gairvau
Chest=lo gairvau
Write=
Read=
Write=ciska
Read=tcidu
Title:=cmene
Contents:=se cukta
Save=rejgau
by @1=la'o zo'i.@1.zo'i te cukta
Page @1 of @2=meirmoi fe li @1 li @2 le'i papri
Page @1 of @2=meirmoi fe li @1 li @2
The book you were writing to mysteriously disappeared.=lo cukta poi do ciska ke'a cu cizra canci
"@1" by @2=lo cukta be la'o gy.@1.gy. bei la'o zo'i.@2.zo'i
Blueberries=lo blajba
Book=lo cukta
@ -58,7 +59,7 @@ Sandstone Block=lo canro'i bliku
Desert Sandstone=lo cantu'a canro'i
Desert Sandstone Brick=lo morna ke cantu'a canro'i
Desert Sandstone Block=lo cantu'a canro'i bliku
Silver Sandstone=lo rijyska sanro'i
Silver Sandstone=lo rijyska canro'i
Silver Sandstone Brick=lo morna ke rijyska canro'i
Silver Sandstone Block=lo rijyska canro'i bliku
Obsidian=lo je'erma'ablaci
@ -73,9 +74,9 @@ Dirt with Rainforest Litter=lo dertu joi glatimdemricfoi bo festi
Dirt with Coniferous Litter=lo dertu joi ckunu bo festi
Savanna Dirt=lo sudytu'a dertu
Savanna Dirt with Savanna Grass=lo sudysu'a bo dertu joi sudytu'a bo srasu
Permafrost=le bislunsa dertu
Permafrost with Stones=le bislunsa bo dertu joi rokci
Permafrost with Moss=le bislunsa bo dertu joi clika
Permafrost=lo vi'orbisloi
Permafrost with Stones=lo vi'orbisloi joi rokci
Permafrost with Moss=lo vi'orbisloi joi clika
Sand=lo canre
Desert Sand=lo cantu'a canre
Silver Sand=lo rijyska canre
@ -86,7 +87,7 @@ Snow Block=lo snime bliku
Ice=lo bisli
Cave Ice=lo kevzda bisli
Apple Tree=lo plisytricu ricystani
Apple Wood Planks=lo plise mudri tanbo
Apple Wood Planks=lo plisymudri tanbo
Apple Tree Sapling=lo plisytricu ciftricu
Apple Tree Leaves=lo plisytricu pezli
Apple=lo plise
@ -97,7 +98,7 @@ Jungle Tree Leaves=lo glatimdemricfoi pezli
Jungle Tree Sapling=lo glatimdemricfoi ciftricu
Emergent Jungle Tree Sapling=lo barda ke glatimdemricfoi ciftricu
Pine Tree=lo ckunu ricystani
Pine Wood Planks=lo ckunu mudri tanbo
Pine Wood Planks=lo ku'urmudri tanbo
Pine Needles=lo ckunu jezpezli
Pine Tree Sapling=lo ckunu ciftricu
Acacia Tree=lo atkaci,ia ricystani
@ -166,25 +167,25 @@ Wooden Sign=lo mudri sinxa
Steel Sign=lo gasta sinxa
Wooden Ladder=lo mudri rajyserti
Steel Ladder=lo gasta rajyserti
Apple Wood Fence=lo plise mudri garbi'u
Apple Wood Fence=lo plisymudri garbi'u
Acacia Wood Fence=lo atkaci,ia mudri garbi'u
Jungle Wood Fence=lo glatimdemricfoi mudri garbi'u
Pine Wood Fence=lo ckunu mudri garbi'u
Pine Wood Fence=lo ku'urmudri garbi'u
Aspen Wood Fence=lo mudrpopulu garbi'u
Apple Wood Fence Rail=lo plise mudri garbi'u garna
Apple Wood Fence Rail=lo plisymudri garbi'u garna
Acacia Wood Fence Rail=lo atkaci,ia mudri garbi'u garna
Jungle Wood Fence Rail=lo glatimdemricfoi mudri garbi'u garna
Pine Wood Fence Rail=lo ckunu mudri garbi'u garna
Pine Wood Fence Rail=lo ku'urmudri garbi'u garna
Aspen Wood Fence Rail=lo mudrpopulu garbi'u garna
Glass=lo blaci
Obsidian Glass=lo je'erma'ablaci blaci
Brick Block=lo kitybli bliku
Mese Lamp=lo za'e kunrmese tergu'i
Apple Wood Mese Post Light=lo plise mudri za'e kunrmese ke kamju tergu'i
Acacia Wood Mese Post Light=lo atkaci,ia mudri za'e kunrmese ke kamju tergu'i
Jungle Wood Mese Post Light=lo glatimdemricfoi mudri za'e kunrmese ke kamju tergu'i
Pine Wood Mese Post Light=lo ckunu mudri za'e kunrmese ke kamju tergu'i
Aspen Wood Mese Post Light=lo mudrpopulu za'e kunrmese ke kamju tergu'i
Mese Lamp=lo za'e gusrmese
Apple Wood Mese Post Light=lo plisymudri ke kamju za'e gusrmese
Acacia Wood Mese Post Light=lo atkaci,ia mudri ke kamju za'e gusrmese
Jungle Wood Mese Post Light=lo glatimdemricfoi mudri ke kamju za'e gusrmese
Pine Wood Mese Post Light=lo ku'urmudri ke kamju za'e gusrmese
Aspen Wood Mese Post Light=lo mudrpopulu ke kamju za'e gusrmese
Cloud=lo dilnu
Wooden Pickaxe=lo mudri velkakpymru
Stone Pickaxe=lo rokci velkakpymru

View File

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

View File

@ -0,0 +1,215 @@
# textdomain: default
Locked Chest=Zablokowana skrzynia
Locked Chest (owned by @1)=Zablokowana skrzynia (właściciel: @1)
You do not own this chest.=Nie jesteś właścicielem tej skrzyni.
a locked chest=zablokowana skrzynia
Chest=Skrzynia
Write=Zapis
Read=Odczyt
Title:=Tytuł:
Contents:=Zawartość:
Save=Zapisz
by @1=autor: @1
Page @1 of @2=Strona @1 z @2
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" przez @2
Blueberries=Jagody
Book=Książka
Book with Text=Zapisana książka
Bronze Ingot=Sztabka brązu
Clay Brick=Gliniana cegła
Clay Lump=Glina
Coal Lump=Węgiel
Copper Ingot=Sztabka miedzi
Copper Lump=Bryłka miedzi
Diamond=Diament
Flint=Krzemień
Gold Ingot=Sztabka złota
Gold Lump=Bryłka złota
Iron Lump=Bryłka żelaza
Mese Crystal=Kryształ Mese
Mese Crystal Fragment=Fragment kryształu Mese
Obsidian Shard=Odłamek obsydianu
Paper=Papier
Steel Ingot=Sztabka stali
Stick=Patyk
Tin Ingot=Sztabka cyny
Tin Lump=Bryłka cyny
Furnace is empty=Piec jest pusty
100% (output full)=100% (zapełnione)
@1%=@1%
Not cookable=Nie nadaje się do przepalania
Empty=Puste
Furnace active=Piec aktywny
Furnace inactive=Piec nieaktywny
(Item: @1; Fuel: @2)=(Przedmiot: @1; Paliwo: @2)
Furnace=Piec
Stone=Kamień
Cobblestone=Bruk
Stone Brick=Kamienne cegły
Stone Block=Blok kamienia
Mossy Cobblestone=Bruk z mchem
Desert Stone=Pustynny kamień
Desert Cobblestone=Pustynny bruk
Desert Stone Brick=Pustynne kamienne cegły
Desert Stone Block=Blok pustynnego kamienia
Sandstone=Piaskowiec
Sandstone Brick=Cegły z piaskowca
Sandstone Block=Blok piaskowca
Desert Sandstone=Pustynny piaskowiec
Desert Sandstone Brick=Cegły z pustynnego piaskowca
Desert Sandstone Block=Blok pustynnego piaskowca
Silver Sandstone=Srebrny piaskowiec
Silver Sandstone Brick=Cegły z srebrnego piaskowca
Silver Sandstone Block=Blok srebrnego piaskowca
Obsidian=Obsydian
Obsidian Brick=Obsydianowe cegły
Obsidian Block=Blok obsydianu
Dirt=Ziemia
Dirt with Grass=Ziemia z trawą
Dirt with Grass and Footsteps=Ziemia z trawą i śladami
Dirt with Savanna Grass=Ziemia z sawannową trawą
Dirt with Snow=Ziemia ze śniegiem
Dirt with Rainforest Litter=Ziemia ze ściółką lasu deszczowego
Dirt with Coniferous Litter=Ziemia ze ściółką lasu iglastego
Savanna Dirt=Sawannowa ziemia
Savanna Dirt with Savanna Grass=Sawannowa ziemia z sawannową trawą
Permafrost=Zmarzlina
Permafrost with Stones=Zmarzlina z kamieniami
Permafrost with Moss=Zmarzlina z mchem
Sand=Piasek
Desert Sand=Pustynny piasek
Silver Sand=Srebrny piasek
Gravel=Żwir
Clay=Glina
Snow=Śnieg
Snow Block=Blok śniegu
Ice=Lód
Cave Ice=Jaskiniowy lód
Apple Tree=Jabłkowe drewno
Apple Wood Planks=Deski z drzewa jabłkowego
Apple Tree Sapling=Sadzonka drzewa jabłkowego
Apple Tree Leaves=Liście drzewa jabłkowego
Apple=Jabłko
Apple Marker=Znacznik jabłka
Jungle Tree=Dżunglowe drewno
Jungle Wood Planks=Deski z dżunglowego drzewa
Jungle Tree Leaves=Liście dżunglowego drzewa
Jungle Tree Sapling=Sadzonka dżunglowego drzewa
Emergent Jungle Tree Sapling=Wyłaniająca się sadzonka dżunglowego drzewa
Pine Tree=Sosnowe drewno
Pine Wood Planks=Deski z sosnowego drzewa
Pine Needles=Sosnowe igły
Pine Tree Sapling=Sadzonka sosnowego drzewa
Acacia Tree=Akacjowe drewno
Acacia Wood Planks=Deski z akacjowego drzewa
Acacia Tree Leaves=Liście akacjowego drzewa
Acacia Tree Sapling=Sadzonka akacjowego drzewa
Aspen Tree=Brzozowe drzewo
Aspen Wood Planks=Deski z brzozowego drzewa
Aspen Tree Leaves=Liście brzozowego drzewa
Aspen Tree Sapling=Sadzonka brzozowego drzewa
Coal Ore=Ruda węgla
Coal Block=Blok węgla
Iron Ore=Ruda żelaza
Steel Block=Blok stali
Copper Ore=Ruda miedzi
Copper Block=Blok miedzi
Tin Ore=Ruda cyny
Tin Block=Blok cyny
Bronze Block=Blok brązu
Mese Ore=Ruda Mese
Mese Block=Blok Mese
Gold Ore=Ruda złota
Gold Block=Blok złota
Diamond Ore=Ruda diamentu
Diamond Block=Blok diamentu
Cactus=Kaktus
Large Cactus Seedling=Sadzonka dużego kaktusa
Papyrus=Papirus
Dry Shrub=Uschnięty krzak
Jungle Grass=Dżunglowa trawa
Grass=Trawa
Savanna Grass=Sawannowa trawa
Fern=Paproć
Marram Grass=Trzcinnik leśny
Bush Stem=Korzeń krzaku
Bush Leaves=Liście krzaku
Bush Sapling=Sadzonka krzaku
Blueberry Bush Leaves with Berries=Liście jagodowego krzaku z jagodami
Blueberry Bush Leaves=Liście jagodowego krzaku
Blueberry Bush Sapling=Sadzonka jagodowego krzaku
Acacia Bush Stem=Korzeń akacjowego krzaku
Acacia Bush Leaves=Liście akacjowego krzaku
Acacia Bush Sapling=Sadzonka akacjowego krzaku
Pine Bush Stem=Korzeń sosnowego krzaku
Pine Bush Needles=Igły sosnowego krzaku
Pine Bush Sapling=Sadzonka sosnowego krzaku
Kelp=Wodorost
Green Coral=Zielony koralowiec
Pink Coral=Różowy koralowiec
Cyan Coral=Cyjanowy koralowiec
Brown Coral=Brązowy koralowiec
Orange Coral=Pomarańczowy koralowiec
Coral Skeleton=Szkielet koralowca
Water Source=Źródło wody
Flowing Water=Płynąca woda
River Water Source=Źródło wody rzecznej
Flowing River Water=Płynąca woda rzeczna
Lava Source=Źródło lawy
Flowing Lava=Płynąca lawa
Empty Bookshelf=Pusta półka na książki
Bookshelf (@1 written, @2 empty books)=Półka na książki (@1 zapisanych, @2 pustych książek)
Bookshelf=Półka na książki
Text too long=Tekst jest zbyt długi
"@1"="@1"
Wooden Sign=Drewniana tabliczka
Steel Sign=Stalowa tabliczka
Wooden Ladder=Drewniana drabina
Steel Ladder=Stalowa drabina
Apple Wood Fence=Płot z jabłkowego drzewa
Acacia Wood Fence=Płot z akacjowego drzewa
Jungle Wood Fence=Płot z dżunglowego drzewa
Pine Wood Fence=Płot z sosnowego drzewa
Aspen Wood Fence=Płot z brzozowego drzewa
Apple Wood Fence Rail=Szyna ogrodzeniowa z jabłkowego drzewa
Acacia Wood Fence Rail=Szyna ogrodzeniowa z akacjowego drzewa
Jungle Wood Fence Rail=Szyna ogrodzeniowa z dżunglowego drzewa
Pine Wood Fence Rail=Szyna ogrodzeniowa z sosnowego drzewa
Aspen Wood Fence Rail=Szyna ogrodzeniowa z brzozowego drzewa
Glass=Szkło
Obsidian Glass=Obsydianowe szkło
Brick Block=Blok cegieł
Mese Lamp=Lampa Mese
Apple Wood Mese Post Light=Lampa Mese z obramowaniem z jabłkowego drzewa
Acacia Wood Mese Post Light=Lampa Mese z obramowaniem z akacjowego drzewa
Jungle Wood Mese Post Light=Lampa Mese z obramowaniem z dżunglowego drzewa
Pine Wood Mese Post Light=Lampa Mese z obramowaniem z sosnowego drzewa
Aspen Wood Mese Post Light=Lampa Mese z obramowaniem z brzozowego drzewa
Cloud=Chmura
Wooden Pickaxe=Drewniany kilof
Stone Pickaxe=Kamienny kilof
Bronze Pickaxe=Brązowy kilof
Steel Pickaxe=Stalowy kilof
Mese Pickaxe=Mesowy kilof
Diamond Pickaxe=Diamentowy kilof
Wooden Shovel=Drewniana łopata
Stone Shovel=Kamienna łopata
Bronze Shovel=Brązowa łopata
Steel Shovel=Stalowa łopata
Mese Shovel=Mesowa łopata
Diamond Shovel=Diamentowa łopata
Wooden Axe=Drewniana siekiera
Stone Axe=Kamienna siekiera
Bronze Axe=Brązowa siekiera
Steel Axe=Stalowa siekiera
Mese Axe=Mesowa siekiera
Diamond Axe=Diamentowa siekiera
Wooden Sword=Drewniany miecz
Stone Sword=Kamienny miecz
Bronze Sword=Brązowy miecz
Steel Sword=Stalowy miecz
Mese Sword=Mesowy miecz
Diamond Sword=Diamentowy miecz
Torch=Pochodnia
@1 will intersect protection on growth.=@1 będzie kolidować z ochroną terenu podczas rośnięcia.

View File

@ -11,6 +11,7 @@ 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

View File

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

View File

@ -11,6 +11,7 @@ Contents:=Obsah:
Save=Uložiť
by @1=od @1
Page @1 of @2=Strana @1 z @2
The book you were writing to mysteriously disappeared.=
"@1" by @2=„@1“ z @2
Blueberries=Čučoriedky
Book=Kniha

View File

@ -11,9 +11,8 @@ Contents:=Innehåll:
Save=Spara
by @1=av @1
Page @1 of @2=Sida @1 av @2
The book you were writing to mysteriously disappeared.=
"@1" by @2="@1" av @2
Skeleton Key=Skelettnyckel
Key to @1's @2=Nyckel till @1s @2
Blueberries=Blåbär
Book=Bok
Book with Text=Bok med text
@ -212,6 +211,5 @@ Bronze Sword=Bronssvärd
Steel Sword=Stålsvärd
Mese Sword=Mesesvärd
Diamond Sword=Diamantsvärd
Key=Nyckel
Torch=Fackla
@1 will intersect protection on growth.=@1 kommer korsa skyddet mot tillväxt.

View File

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

View File

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

View File

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

View File

@ -11,6 +11,7 @@ Contents:=
Save=
by @1=
Page @1 of @2=
The book you were writing to mysteriously disappeared.=
"@1" by @2=
Blueberries=
Book=

View File

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

View File

@ -1985,8 +1985,8 @@ minetest.register_node("default:sand_with_kelp", {
on_place = function(itemstack, placer, pointed_thing)
-- Call on_rightclick if the pointed node defines it
if pointed_thing.type == "node" and placer and
not placer:get_player_control().sneak then
if pointed_thing.type == "node" and not (placer and placer:is_player()
and placer:get_player_control().sneak) then
local node_ptu = minetest.get_node(pointed_thing.under)
local def_ptu = minetest.registered_nodes[node_ptu.name]
if def_ptu and def_ptu.on_rightclick then
@ -2024,7 +2024,7 @@ minetest.register_node("default:sand_with_kelp", {
return itemstack
end,
after_destruct = function(pos, oldnode)
after_dig_node = function(pos, oldnode, oldmetadata, digger)
minetest.set_node(pos, {name = "default:sand"})
end
})
@ -2035,19 +2035,20 @@ minetest.register_node("default:sand_with_kelp", {
--
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
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_above = pointed_thing.above
local node_under = minetest.get_node(pos_under)
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,
placer, itemstack, pointed_thing) or itemstack
placer, itemstack, pointed_thing)
end
if node_under.name ~= "default:coral_skeleton" or
@ -2057,10 +2058,6 @@ local function coral_on_place(itemstack, placer, pointed_thing)
if minetest.is_protected(pos_under, player_name) or
minetest.is_protected(pos_above, player_name) then
minetest.log("action", player_name
.. " tried to place " .. itemstack:get_name()
.. " at protected position "
.. minetest.pos_to_string(pos_under))
minetest.record_protection_violation(pos_under, player_name)
return itemstack
end
@ -2100,7 +2097,7 @@ minetest.register_node("default:coral_green", {
on_place = coral_on_place,
after_destruct = function(pos, oldnode)
after_dig_node = function(pos, oldnode, oldmetadata, digger)
minetest.set_node(pos, {name = "default:coral_skeleton"})
end,
})
@ -2131,7 +2128,7 @@ minetest.register_node("default:coral_pink", {
on_place = coral_on_place,
after_destruct = function(pos, oldnode)
after_dig_node = function(pos, oldnode, oldmetadata, digger)
minetest.set_node(pos, {name = "default:coral_skeleton"})
end,
})
@ -2162,7 +2159,7 @@ minetest.register_node("default:coral_cyan", {
on_place = coral_on_place,
after_destruct = function(pos, oldnode)
after_dig_node = function(pos, oldnode, oldmetadata, digger)
minetest.set_node(pos, {name = "default:coral_skeleton"})
end,
})
@ -2525,7 +2522,7 @@ local function update_bookshelf(pos)
end
end
minetest.register_node("default:bookshelf", {
local default_bookshelf_def = {
description = S("Bookshelf"),
tiles = {"default_wood.png", "default_wood.png", "default_wood.png",
"default_wood.png", "default_bookshelf.png", "default_bookshelf.png"},
@ -2550,19 +2547,13 @@ minetest.register_node("default:bookshelf", {
end
return 0
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name() ..
" moves stuff in bookshelf at " .. minetest.pos_to_string(pos))
on_metadata_inventory_put = function(pos)
update_bookshelf(pos)
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" puts stuff to bookshelf at " .. minetest.pos_to_string(pos))
on_metadata_inventory_take = function(pos)
update_bookshelf(pos)
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" takes stuff from bookshelf at " .. minetest.pos_to_string(pos))
on_metadata_inventory_move = function(pos)
update_bookshelf(pos)
end,
on_blast = function(pos)
@ -2572,7 +2563,9 @@ minetest.register_node("default:bookshelf", {
minetest.remove_node(pos)
return drops
end,
})
}
default.set_inventory_action_loggers(default_bookshelf_def, "bookshelf")
minetest.register_node("default:bookshelf", default_bookshelf_def)
local function register_sign(material, desc, def)
minetest.register_node("default:sign_wall_" .. material, {
@ -2611,12 +2604,12 @@ local function register_sign(material, desc, def)
if not text then
return
end
if string.len(text) > 512 then
if #text > 512 then
minetest.chat_send_player(player_name, S("Text too long"))
return
end
minetest.log("action", player_name .. " wrote \"" .. text ..
"\" to the sign at " .. minetest.pos_to_string(pos))
text = text:gsub("[%z-\8\11-\31\127]", "") -- strip naughty control characters (keeps \t and \n)
default.log_player_action(sender, ("wrote %q to the sign at"):format(text), pos)
local meta = minetest.get_meta(pos)
meta:set_string("text", text)
@ -2810,7 +2803,6 @@ minetest.register_node("default:glass", {
tiles = {"default_glass.png", "default_glass_detail.png"},
use_texture_alpha = "clip", -- only needed for stairs API
paramtype = "light",
paramtype2 = "glasslikeliquidlevel",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
@ -2823,7 +2815,6 @@ minetest.register_node("default:obsidian_glass", {
tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"},
use_texture_alpha = "clip", -- only needed for stairs API
paramtype = "light",
paramtype2 = "glasslikeliquidlevel",
is_ground_content = false,
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 B

After

Width:  |  Height:  |  Size: 312 B

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