summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml4
-rw-r--r--builtin/item.lua3
-rw-r--r--po/de/minetest.po200
-rw-r--r--po/es/minetest.po669
-rw-r--r--po/pl/minetest.po669
-rw-r--r--po/ro/minetest.po669
-rw-r--r--po/ru/minetest.po669
-rw-r--r--src/game.cpp7
-rw-r--r--src/map.cpp35
-rw-r--r--src/map.h8
-rw-r--r--src/mapgen.cpp177
-rw-r--r--src/mapgen.h136
-rw-r--r--src/mapgen_v6.cpp22
-rw-r--r--src/mapgen_v6.h141
-rw-r--r--src/scriptapi.cpp4
-rw-r--r--src/server.cpp13
16 files changed, 3081 insertions, 345 deletions
diff --git a/.travis.yml b/.travis.yml
index b7f58cbe4..2cd867295 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,9 @@ language: cpp
compiler:
- gcc
- clang
-before_install: sudo apt-get install libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev
+before_install:
+ - if [ $CC = "clang" ]; then export PATH="/usr/bin/:$PATH"; sudo sh -c 'echo "deb http://ppa.launchpad.net/eudoxos/llvm-3.1/ubuntu precise main" >> /etc/apt/sources.list'; sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 92DE8183; sudo apt-get update; sudo apt-get install llvm-3.1; sudo apt-get install clang; fi
+ - sudo apt-get install libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev
script: cmake . && make
notifications:
email: false
diff --git a/builtin/item.lua b/builtin/item.lua
index d36e8a758..a28798d4d 100644
--- a/builtin/item.lua
+++ b/builtin/item.lua
@@ -232,7 +232,8 @@ end
function minetest.item_place(itemstack, placer, pointed_thing)
-- Call on_rightclick if the pointed node defines it
- if pointed_thing.type == "node" then
+ if pointed_thing.type == "node" and placer and
+ not placer:get_player_control().sneak then
local n = minetest.env:get_node(pointed_thing.under)
local nn = n.name
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
diff --git a/po/de/minetest.po b/po/de/minetest.po
index 020e170cf..a3d9684ad 100644
--- a/po/de/minetest.po
+++ b/po/de/minetest.po
@@ -8,47 +8,51 @@ msgstr ""
"Project-Id-Version: 0.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-01-23 18:24+0200\n"
-"PO-Revision-Date: 2011-08-02 11:54+0100\n"
-"Last-Translator: Constantin Wenger <constantin.wenger@googlemail.com>\n"
+"PO-Revision-Date: 2013-01-23 20:27+0200\n"
+"Last-Translator: Sfan5 . <sfan5@live.de>\n"
"Language-Team: Deutsch <>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Weblate 1.4-dev\n"
#: src/guiConfigureWorld.cpp:127
msgid ""
"Warning: Some mods are not configured yet.\n"
"They will be enabled by default when you save the configuration. "
msgstr ""
+"Warnung: Einige Mods sind noch nicht konfiguriert.\n"
+"Sie werden aktiviert wenn die Konfiguration gespeichert wird. "
#: src/guiConfigureWorld.cpp:146
msgid ""
"Warning: Some configured mods are missing.\n"
"Their setting will be removed when you save the configuration. "
msgstr ""
+"Warnung: Einige konfigurierte Mods fehlen.\n"
+"Mod Einstellungen werden gelöscht wenn die Konfiguration gespeichert wird. "
#: src/guiConfigureWorld.cpp:210
msgid "enabled"
-msgstr ""
+msgstr "Aktiviert"
#: src/guiConfigureWorld.cpp:217
-#, fuzzy
msgid "Enable All"
-msgstr "Schaden einschalten"
+msgstr "Alle einschalten"
#: src/guiConfigureWorld.cpp:224
msgid "Disable All"
-msgstr ""
+msgstr "Alle ausschalten"
#: src/guiConfigureWorld.cpp:230
msgid "depends on:"
-msgstr ""
+msgstr "abhängig von:"
#: src/guiConfigureWorld.cpp:242
msgid "is required by:"
-msgstr ""
+msgstr "wird benötigt von:"
#: src/guiConfigureWorld.cpp:262 src/guiCreateWorld.cpp:165
#: src/guiKeyChangeMenu.cpp:179 src/keycode.cpp:223
@@ -61,44 +65,43 @@ msgstr "Speichern"
#: src/guiConfigureWorld.cpp:394
msgid "Configuration saved. "
-msgstr ""
+msgstr "Konfiguration gespeichert. "
#: src/guiConfigureWorld.cpp:402
msgid "Warning: Configuration not consistent. "
-msgstr ""
+msgstr "Warnung: Konfiguration nicht konsistent. "
#: src/guiConfirmMenu.cpp:120
msgid "Yes"
-msgstr ""
+msgstr "Ja"
#: src/guiConfirmMenu.cpp:126
msgid "No"
-msgstr ""
+msgstr "Nein"
#: src/guiCreateWorld.cpp:116
msgid "World name"
-msgstr ""
+msgstr "Weltname"
#: src/guiCreateWorld.cpp:135
msgid "Game"
-msgstr ""
+msgstr "Spiel"
#: src/guiCreateWorld.cpp:159
-#, fuzzy
msgid "Create"
-msgstr "Kreativitätsmodus"
+msgstr "Erstellen"
#: src/guiDeathScreen.cpp:96
msgid "You died."
-msgstr ""
+msgstr "Sie sind gestorben."
#: src/guiDeathScreen.cpp:104
msgid "Respawn"
-msgstr ""
+msgstr "Wiederbeleben"
#: src/guiFormSpecMenu.cpp:572
msgid "Left click: Move all items, Right click: Move single item"
-msgstr ""
+msgstr "Linksklick: Alle Items bewegen, Rechtsklick: Einzelnes Item bewegen"
#: src/guiFormSpecMenu.cpp:597 src/guiMessageMenu.cpp:109
#: src/guiTextInputMenu.cpp:123
@@ -107,73 +110,71 @@ msgstr "Fortsetzen"
#: src/guiKeyChangeMenu.cpp:114
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
-msgstr ""
+msgstr "Steuerung"
#: src/guiKeyChangeMenu.cpp:151
msgid "\"Use\" = climb down"
-msgstr ""
+msgstr "\"Benutzen\" = herunterklettern"
#: src/guiKeyChangeMenu.cpp:164
msgid "Double tap \"jump\" to toggle fly"
-msgstr ""
+msgstr "Doppelt \"springen\" drücken, um fliegen umzuschalten"
#: src/guiKeyChangeMenu.cpp:269
msgid "Key already in use"
-msgstr ""
+msgstr "Taste bereits in Benutzung"
#: src/guiKeyChangeMenu.cpp:347
-#, fuzzy
msgid "press key"
msgstr "Taste drücken"
#: src/guiMainMenu.cpp:55
msgid "Cannot create world: Name contains invalid characters"
-msgstr ""
+msgstr "Kann Welt nicht erstellen: Name enthält ungülige Zeichen"
#: src/guiMainMenu.cpp:64
msgid "Cannot create world: A world by this name already exists"
-msgstr ""
+msgstr "Kann Welt nicht erstellen: Eine Welt mit diesem Namen existiert bereits"
#: src/guiMainMenu.cpp:245
msgid "Singleplayer"
-msgstr ""
+msgstr "Einzelspieler"
#: src/guiMainMenu.cpp:246
msgid "Multiplayer"
-msgstr ""
+msgstr "Mehrspieler"
#: src/guiMainMenu.cpp:247
msgid "Advanced"
-msgstr ""
+msgstr "Erweitert"
#: src/guiMainMenu.cpp:248
msgid "Settings"
-msgstr ""
+msgstr "Einstellungen"
#: src/guiMainMenu.cpp:249
msgid "Credits"
-msgstr ""
+msgstr "Credits"
#: src/guiMainMenu.cpp:280
-#, fuzzy
msgid "Select World:"
-msgstr "Select"
+msgstr "Welt wählen:"
#: src/guiMainMenu.cpp:302 src/guiMainMenu.cpp:449 src/keycode.cpp:229
msgid "Delete"
-msgstr "Entf"
+msgstr "Entfernen"
#: src/guiMainMenu.cpp:309
msgid "New"
-msgstr ""
+msgstr "Neu"
#: src/guiMainMenu.cpp:317
msgid "Configure"
-msgstr ""
+msgstr "Konfigurieren"
#: src/guiMainMenu.cpp:332 src/keycode.cpp:248
msgid "Play"
-msgstr "Play"
+msgstr "Spielen"
#: src/guiMainMenu.cpp:343 src/guiMainMenu.cpp:557
msgid "Creative Mode"
@@ -193,34 +194,31 @@ msgstr "Adresse / Port"
#: src/guiMainMenu.cpp:435 src/guiMainMenu.cpp:1075
msgid "Show Public"
-msgstr ""
+msgstr "Zeige öffentliche"
#: src/guiMainMenu.cpp:439 src/guiMainMenu.cpp:1083
msgid "Show Favorites"
-msgstr ""
+msgstr "Zeige Favoriten"
#: src/guiMainMenu.cpp:459
-#, fuzzy
msgid "Connect"
-msgstr "Verbindung trennen"
+msgstr "Verbinden"
#: src/guiMainMenu.cpp:529
msgid "Leave address blank to start a local server."
-msgstr "Lasse die Adresse frei um einen eigenen Server zu starten"
+msgstr "Lasse die Adresse frei um einen eigenen Server zu starten."
#: src/guiMainMenu.cpp:538
msgid "Start Game / Connect"
msgstr "Spiel starten / Verbinden"
#: src/guiMainMenu.cpp:570 src/guiMainMenu.cpp:1006
-#, fuzzy
msgid "Delete world"
-msgstr "Entf"
+msgstr "Welt löschen"
#: src/guiMainMenu.cpp:577
-#, fuzzy
msgid "Create world"
-msgstr "Kreativitätsmodus"
+msgstr "Welt erstellen"
#: src/guiMainMenu.cpp:611
msgid "Fancy trees"
@@ -232,40 +230,39 @@ msgstr "Besseres Licht"
#: src/guiMainMenu.cpp:623
msgid "3D Clouds"
-msgstr ""
+msgstr "3D Wolken"
#: src/guiMainMenu.cpp:629
msgid "Opaque water"
-msgstr ""
+msgstr "Undurchsichtiges Wasser"
#: src/guiMainMenu.cpp:639
msgid "Mip-Mapping"
-msgstr ""
+msgstr "Mip-Mapping"
#: src/guiMainMenu.cpp:646
msgid "Anisotropic Filtering"
-msgstr ""
+msgstr "Anisotroper Filter"
#: src/guiMainMenu.cpp:653
msgid "Bi-Linear Filtering"
-msgstr ""
+msgstr "Bi-Linearer Filter"
#: src/guiMainMenu.cpp:660
msgid "Tri-Linear Filtering"
-msgstr ""
+msgstr "Tri-Linearer Filter"
#: src/guiMainMenu.cpp:668
msgid "Shaders"
-msgstr ""
+msgstr "Shader"
#: src/guiMainMenu.cpp:675
msgid "Preload item visuals"
-msgstr ""
+msgstr "Lade Miniaturansichten vor"
#: src/guiMainMenu.cpp:682
-#, fuzzy
msgid "Enable Particles"
-msgstr "Schaden einschalten"
+msgstr "Aktiviere Partikel"
#: src/guiMainMenu.cpp:692
msgid "Change keys"
@@ -273,27 +270,27 @@ msgstr "Tasten ändern"
#: src/guiMainMenu.cpp:977
msgid "Address required."
-msgstr ""
+msgstr "Adresse benötigt."
#: src/guiMainMenu.cpp:995
msgid "Cannot delete world: Nothing selected"
-msgstr ""
+msgstr "Kann Welt nicht löschen: Nichts ausgewählt"
#: src/guiMainMenu.cpp:1010
msgid "Files to be deleted"
-msgstr ""
+msgstr "Zi löschende Dateien"
#: src/guiMainMenu.cpp:1026
msgid "Cannot create world: No games found"
-msgstr ""
+msgstr "Kann Welt nicht erstellen: Keine Spiele gefunden"
#: src/guiMainMenu.cpp:1042
msgid "Cannot configure world: Nothing selected"
-msgstr ""
+msgstr "Kann Welt nicht konfigurieren: Nichts ausgewählt"
#: src/guiMainMenu.cpp:1146
msgid "Failed to delete all world files"
-msgstr ""
+msgstr "Welt Dateien löschen gescheitert"
#: src/guiPasswordChange.cpp:108
msgid "Old Password"
@@ -313,7 +310,7 @@ msgstr "Ändern"
#: src/guiPasswordChange.cpp:167
msgid "Passwords do not match!"
-msgstr "Passwörter passen nicht zusammen"
+msgstr "Passwörter passen nicht zusammen!"
#: src/guiPauseMenu.cpp:118
msgid "Continue"
@@ -324,16 +321,14 @@ msgid "Change Password"
msgstr "Passwort ändern"
#: src/guiPauseMenu.cpp:135
-#, fuzzy
msgid "Exit to Menu"
-msgstr "Programm beenden"
+msgstr "Hauptmenü"
#: src/guiPauseMenu.cpp:142
msgid "Exit to OS"
msgstr "Programm beenden"
#: src/guiPauseMenu.cpp:149
-#, fuzzy
msgid ""
"Default Controls:\n"
"- WASD: Walk\n"
@@ -347,32 +342,32 @@ msgid ""
"- ESC: This menu\n"
"- T: Chat\n"
msgstr ""
-"Tastenkürzel:\n"
+"Steuerung:\n"
"- WASD: Gehen\n"
-"- linke Maustaste: Blöcke aufnehmen \n"
-"- rechte Maustaste: Blöche ablegen\n"
+"- Linksklick: Graben/Schlagen\n"
+"- Rechtsklick: Platzieren\n"
"- Mausrad: Item auswählen\n"
"- 0...9: Item auswählen\n"
-"- Shift: ducken\n"
+"- Shift: Schleichen\n"
"- R: alle geladenen Blöcke anzeigen (wechseln)\n"
-"- I: Inventarmenü\n"
+"- I: Inventar\n"
"- T: Chat\n"
#: src/keycode.cpp:223
msgid "Left Button"
-msgstr "linke Taste"
+msgstr "Linke Taste"
#: src/keycode.cpp:223
msgid "Middle Button"
-msgstr ""
+msgstr "Mittlere Taste"
#: src/keycode.cpp:223
msgid "Right Button"
-msgstr ""
+msgstr "Rechte Taste"
#: src/keycode.cpp:223
msgid "X Button 1"
-msgstr ""
+msgstr "X Knopf 1"
#: src/keycode.cpp:224
msgid "Back"
@@ -384,7 +379,7 @@ msgstr "löschen"
#: src/keycode.cpp:224
msgid "Return"
-msgstr "Return"
+msgstr "Enter"
#: src/keycode.cpp:224
msgid "Tab"
@@ -392,7 +387,7 @@ msgstr "Tab"
#: src/keycode.cpp:224
msgid "X Button 2"
-msgstr ""
+msgstr "X Knopf 2"
#: src/keycode.cpp:225
msgid "Capital"
@@ -404,7 +399,7 @@ msgstr "Strg"
#: src/keycode.cpp:225
msgid "Kana"
-msgstr ""
+msgstr "Kana"
#: src/keycode.cpp:225
msgid "Menu"
@@ -420,7 +415,7 @@ msgstr "Umsch."
#: src/keycode.cpp:226
msgid "Convert"
-msgstr ""
+msgstr "Konvertieren"
#: src/keycode.cpp:226
msgid "Escape"
@@ -428,19 +423,19 @@ msgstr "Escape"
#: src/keycode.cpp:226
msgid "Final"
-msgstr ""
+msgstr "Final"
#: src/keycode.cpp:226
msgid "Junja"
-msgstr ""
+msgstr "Junja"
#: src/keycode.cpp:226
msgid "Kanji"
-msgstr ""
+msgstr "Kanji"
#: src/keycode.cpp:226
msgid "Nonconvert"
-msgstr ""
+msgstr "nicht konvertieren"
#: src/keycode.cpp:227
msgid "Accept"
@@ -456,14 +451,13 @@ msgstr "Pos1"
#: src/keycode.cpp:227
msgid "Mode Change"
-msgstr ""
+msgstr "Modus-Änderung"
#: src/keycode.cpp:227
msgid "Next"
msgstr "Bild runter"
#: src/keycode.cpp:227
-#, fuzzy
msgid "Prior"
msgstr "Bild hoch"
@@ -493,7 +487,7 @@ msgstr "Rechts"
#: src/keycode.cpp:228
msgid "Select"
-msgstr "Select"
+msgstr "Selektiere"
#: src/keycode.cpp:228
msgid "Up"
@@ -509,7 +503,7 @@ msgstr "Einfg"
#: src/keycode.cpp:229
msgid "Snapshot"
-msgstr "Schnapschuss"
+msgstr "Druck"
#: src/keycode.cpp:232
msgid "Left Windows"
@@ -517,7 +511,7 @@ msgstr "Win links"
#: src/keycode.cpp:233
msgid "Apps"
-msgstr ""
+msgstr "Apps"
#: src/keycode.cpp:233
msgid "Numpad 0"
@@ -596,7 +590,6 @@ msgid "Left Shift"
msgstr "Umsch. links"
#: src/keycode.cpp:240
-#, fuzzy
msgid "Right Shift"
msgstr "Umsch. rechts"
@@ -634,62 +627,63 @@ msgstr "Plus"
#: src/keycode.cpp:247
msgid "Attn"
-msgstr ""
+msgstr "Attn."
#: src/keycode.cpp:247
msgid "CrSel"
-msgstr ""
+msgstr "CrSel"
#: src/keycode.cpp:248
msgid "Erase OEF"
-msgstr ""
+msgstr "Lösche OEF"
#: src/keycode.cpp:248
msgid "ExSel"
-msgstr ""
+msgstr "ExSel"
#: src/keycode.cpp:248
msgid "OEM Clear"
-msgstr ""
+msgstr "OEM Clear"
#: src/keycode.cpp:248
msgid "PA1"
-msgstr ""
+msgstr "PA1"
#: src/keycode.cpp:248
msgid "Zoom"
msgstr "Zoom"
#: src/main.cpp:1384
-#, fuzzy
msgid "Main Menu"
-msgstr "Alt Gr"
+msgstr "Hauptemnü"
#: src/main.cpp:1633
msgid "Failed to initialize world"
-msgstr ""
+msgstr "Kann Welt nicht initialisieren"
#: src/main.cpp:1645
msgid "No world selected and no address provided. Nothing to do."
-msgstr ""
+msgstr "Keine Welt ausgewählt und keine Adresse angegeben. Nichts zu tun."
#: src/main.cpp:1653
msgid "Could not find or load game \""
-msgstr ""
+msgstr "Kann Spiel nicht finden/laden\""
#: src/main.cpp:1667
msgid "Invalid gamespec."
-msgstr ""
+msgstr "Invalide Spielspezif."
#: src/main.cpp:1707
msgid "Connection error (timed out?)"
-msgstr ""
+msgstr "Verbindungsfehler (Zeitüberschreitung?)"
#: src/main.cpp:1718
msgid ""
"\n"
"Check debug.txt for details."
msgstr ""
+"\n"
+"Siehe debug.txt für Details."
#~ msgid "Delete map"
#~ msgstr "Karte löschen"
diff --git a/po/es/minetest.po b/po/es/minetest.po
new file mode 100644
index 000000000..400cb5a4e
--- /dev/null
+++ b/po/es/minetest.po
@@ -0,0 +1,669 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: minetest\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-01-23 18:24+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/guiConfigureWorld.cpp:127
+msgid ""
+"Warning: Some mods are not configured yet.\n"
+"They will be enabled by default when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:146
+msgid ""
+"Warning: Some configured mods are missing.\n"
+"Their setting will be removed when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:210
+msgid "enabled"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:217
+msgid "Enable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:224
+msgid "Disable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:230
+msgid "depends on:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:242
+msgid "is required by:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:262 src/guiCreateWorld.cpp:165
+#: src/guiKeyChangeMenu.cpp:179 src/keycode.cpp:223
+msgid "Cancel"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:268 src/guiKeyChangeMenu.cpp:173
+msgid "Save"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:394
+msgid "Configuration saved. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:402
+msgid "Warning: Configuration not consistent. "
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:120
+msgid "Yes"
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:126
+msgid "No"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:116
+msgid "World name"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:135
+msgid "Game"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:159
+msgid "Create"
+msgstr ""
+
+#: src/guiDeathScreen.cpp:96
+msgid "You died."
+msgstr ""
+
+#: src/guiDeathScreen.cpp:104
+msgid "Respawn"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:572
+msgid "Left click: Move all items, Right click: Move single item"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:597 src/guiMessageMenu.cpp:109
+#: src/guiTextInputMenu.cpp:123
+msgid "Proceed"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:114
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:151
+msgid "\"Use\" = climb down"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:164
+msgid "Double tap \"jump\" to toggle fly"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:269
+msgid "Key already in use"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:347
+msgid "press key"
+msgstr ""
+
+#: src/guiMainMenu.cpp:55
+msgid "Cannot create world: Name contains invalid characters"
+msgstr ""
+
+#: src/guiMainMenu.cpp:64
+msgid "Cannot create world: A world by this name already exists"
+msgstr ""
+
+#: src/guiMainMenu.cpp:245
+msgid "Singleplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:246
+msgid "Multiplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:247
+msgid "Advanced"
+msgstr ""
+
+#: src/guiMainMenu.cpp:248
+msgid "Settings"
+msgstr ""
+
+#: src/guiMainMenu.cpp:249
+msgid "Credits"
+msgstr ""
+
+#: src/guiMainMenu.cpp:280
+msgid "Select World:"
+msgstr ""
+
+#: src/guiMainMenu.cpp:302 src/guiMainMenu.cpp:449 src/keycode.cpp:229
+msgid "Delete"
+msgstr ""
+
+#: src/guiMainMenu.cpp:309
+msgid "New"
+msgstr ""
+
+#: src/guiMainMenu.cpp:317
+msgid "Configure"
+msgstr ""
+
+#: src/guiMainMenu.cpp:332 src/keycode.cpp:248
+msgid "Play"
+msgstr ""
+
+#: src/guiMainMenu.cpp:343 src/guiMainMenu.cpp:557
+msgid "Creative Mode"
+msgstr ""
+
+#: src/guiMainMenu.cpp:349 src/guiMainMenu.cpp:563
+msgid "Enable Damage"
+msgstr ""
+
+#: src/guiMainMenu.cpp:369 src/guiMainMenu.cpp:479
+msgid "Name/Password"
+msgstr ""
+
+#: src/guiMainMenu.cpp:408 src/guiMainMenu.cpp:506
+msgid "Address/Port"
+msgstr ""
+
+#: src/guiMainMenu.cpp:435 src/guiMainMenu.cpp:1075
+msgid "Show Public"
+msgstr ""
+
+#: src/guiMainMenu.cpp:439 src/guiMainMenu.cpp:1083
+msgid "Show Favorites"
+msgstr ""
+
+#: src/guiMainMenu.cpp:459
+msgid "Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:529
+msgid "Leave address blank to start a local server."
+msgstr ""
+
+#: src/guiMainMenu.cpp:538
+msgid "Start Game / Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:570 src/guiMainMenu.cpp:1006
+msgid "Delete world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:577
+msgid "Create world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:611
+msgid "Fancy trees"
+msgstr ""
+
+#: src/guiMainMenu.cpp:617
+msgid "Smooth Lighting"
+msgstr ""
+
+#: src/guiMainMenu.cpp:623
+msgid "3D Clouds"
+msgstr ""
+
+#: src/guiMainMenu.cpp:629
+msgid "Opaque water"
+msgstr ""
+
+#: src/guiMainMenu.cpp:639
+msgid "Mip-Mapping"
+msgstr ""
+
+#: src/guiMainMenu.cpp:646
+msgid "Anisotropic Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:653
+msgid "Bi-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:660
+msgid "Tri-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:668
+msgid "Shaders"
+msgstr ""
+
+#: src/guiMainMenu.cpp:675
+msgid "Preload item visuals"
+msgstr ""
+
+#: src/guiMainMenu.cpp:682
+msgid "Enable Particles"
+msgstr ""
+
+#: src/guiMainMenu.cpp:692
+msgid "Change keys"
+msgstr ""
+
+#: src/guiMainMenu.cpp:977
+msgid "Address required."
+msgstr ""
+
+#: src/guiMainMenu.cpp:995
+msgid "Cannot delete world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1010
+msgid "Files to be deleted"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1026
+msgid "Cannot create world: No games found"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1042
+msgid "Cannot configure world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1146
+msgid "Failed to delete all world files"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:108
+msgid "Old Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:125
+msgid "New Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:141
+msgid "Confirm Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:158
+msgid "Change"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:167
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:118
+msgid "Continue"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:127
+msgid "Change Password"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:135
+msgid "Exit to Menu"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:142
+msgid "Exit to OS"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:149
+msgid ""
+"Default Controls:\n"
+"- WASD: Walk\n"
+"- Mouse left: dig/hit\n"
+"- Mouse right: place/use\n"
+"- Mouse wheel: select item\n"
+"- 0...9: select item\n"
+"- Shift: sneak\n"
+"- R: Toggle viewing all loaded chunks\n"
+"- I: Inventory menu\n"
+"- ESC: This menu\n"
+"- T: Chat\n"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Left Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Middle Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Right Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "X Button 1"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Back"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Clear"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Return"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Tab"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "X Button 2"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Capital"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Control"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Kana"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Menu"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Pause"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Shift"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Convert"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Escape"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Final"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Junja"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Kanji"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Nonconvert"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Accept"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "End"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Home"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Mode Change"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Next"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Prior"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Space"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Down"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Execute"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Left"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Print"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Right"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Select"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Up"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Help"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Insert"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Snapshot"
+msgstr ""
+
+#: src/keycode.cpp:232
+msgid "Left Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Apps"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 0"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 1"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Right Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Sleep"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 2"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 3"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 4"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 5"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 6"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 7"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad *"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad +"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad -"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad /"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 8"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 9"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Num Lock"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Scroll Lock"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Left Shift"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Right Shift"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Menu"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Menu"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Comma"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Minus"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Period"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Plus"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "Attn"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "CrSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Erase OEF"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "ExSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "OEM Clear"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "PA1"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Zoom"
+msgstr ""
+
+#: src/main.cpp:1384
+msgid "Main Menu"
+msgstr ""
+
+#: src/main.cpp:1633
+msgid "Failed to initialize world"
+msgstr ""
+
+#: src/main.cpp:1645
+msgid "No world selected and no address provided. Nothing to do."
+msgstr ""
+
+#: src/main.cpp:1653
+msgid "Could not find or load game \""
+msgstr ""
+
+#: src/main.cpp:1667
+msgid "Invalid gamespec."
+msgstr ""
+
+#: src/main.cpp:1707
+msgid "Connection error (timed out?)"
+msgstr ""
+
+#: src/main.cpp:1718
+msgid ""
+"\n"
+"Check debug.txt for details."
+msgstr ""
diff --git a/po/pl/minetest.po b/po/pl/minetest.po
new file mode 100644
index 000000000..400cb5a4e
--- /dev/null
+++ b/po/pl/minetest.po
@@ -0,0 +1,669 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: minetest\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-01-23 18:24+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/guiConfigureWorld.cpp:127
+msgid ""
+"Warning: Some mods are not configured yet.\n"
+"They will be enabled by default when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:146
+msgid ""
+"Warning: Some configured mods are missing.\n"
+"Their setting will be removed when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:210
+msgid "enabled"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:217
+msgid "Enable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:224
+msgid "Disable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:230
+msgid "depends on:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:242
+msgid "is required by:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:262 src/guiCreateWorld.cpp:165
+#: src/guiKeyChangeMenu.cpp:179 src/keycode.cpp:223
+msgid "Cancel"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:268 src/guiKeyChangeMenu.cpp:173
+msgid "Save"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:394
+msgid "Configuration saved. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:402
+msgid "Warning: Configuration not consistent. "
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:120
+msgid "Yes"
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:126
+msgid "No"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:116
+msgid "World name"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:135
+msgid "Game"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:159
+msgid "Create"
+msgstr ""
+
+#: src/guiDeathScreen.cpp:96
+msgid "You died."
+msgstr ""
+
+#: src/guiDeathScreen.cpp:104
+msgid "Respawn"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:572
+msgid "Left click: Move all items, Right click: Move single item"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:597 src/guiMessageMenu.cpp:109
+#: src/guiTextInputMenu.cpp:123
+msgid "Proceed"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:114
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:151
+msgid "\"Use\" = climb down"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:164
+msgid "Double tap \"jump\" to toggle fly"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:269
+msgid "Key already in use"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:347
+msgid "press key"
+msgstr ""
+
+#: src/guiMainMenu.cpp:55
+msgid "Cannot create world: Name contains invalid characters"
+msgstr ""
+
+#: src/guiMainMenu.cpp:64
+msgid "Cannot create world: A world by this name already exists"
+msgstr ""
+
+#: src/guiMainMenu.cpp:245
+msgid "Singleplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:246
+msgid "Multiplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:247
+msgid "Advanced"
+msgstr ""
+
+#: src/guiMainMenu.cpp:248
+msgid "Settings"
+msgstr ""
+
+#: src/guiMainMenu.cpp:249
+msgid "Credits"
+msgstr ""
+
+#: src/guiMainMenu.cpp:280
+msgid "Select World:"
+msgstr ""
+
+#: src/guiMainMenu.cpp:302 src/guiMainMenu.cpp:449 src/keycode.cpp:229
+msgid "Delete"
+msgstr ""
+
+#: src/guiMainMenu.cpp:309
+msgid "New"
+msgstr ""
+
+#: src/guiMainMenu.cpp:317
+msgid "Configure"
+msgstr ""
+
+#: src/guiMainMenu.cpp:332 src/keycode.cpp:248
+msgid "Play"
+msgstr ""
+
+#: src/guiMainMenu.cpp:343 src/guiMainMenu.cpp:557
+msgid "Creative Mode"
+msgstr ""
+
+#: src/guiMainMenu.cpp:349 src/guiMainMenu.cpp:563
+msgid "Enable Damage"
+msgstr ""
+
+#: src/guiMainMenu.cpp:369 src/guiMainMenu.cpp:479
+msgid "Name/Password"
+msgstr ""
+
+#: src/guiMainMenu.cpp:408 src/guiMainMenu.cpp:506
+msgid "Address/Port"
+msgstr ""
+
+#: src/guiMainMenu.cpp:435 src/guiMainMenu.cpp:1075
+msgid "Show Public"
+msgstr ""
+
+#: src/guiMainMenu.cpp:439 src/guiMainMenu.cpp:1083
+msgid "Show Favorites"
+msgstr ""
+
+#: src/guiMainMenu.cpp:459
+msgid "Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:529
+msgid "Leave address blank to start a local server."
+msgstr ""
+
+#: src/guiMainMenu.cpp:538
+msgid "Start Game / Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:570 src/guiMainMenu.cpp:1006
+msgid "Delete world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:577
+msgid "Create world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:611
+msgid "Fancy trees"
+msgstr ""
+
+#: src/guiMainMenu.cpp:617
+msgid "Smooth Lighting"
+msgstr ""
+
+#: src/guiMainMenu.cpp:623
+msgid "3D Clouds"
+msgstr ""
+
+#: src/guiMainMenu.cpp:629
+msgid "Opaque water"
+msgstr ""
+
+#: src/guiMainMenu.cpp:639
+msgid "Mip-Mapping"
+msgstr ""
+
+#: src/guiMainMenu.cpp:646
+msgid "Anisotropic Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:653
+msgid "Bi-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:660
+msgid "Tri-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:668
+msgid "Shaders"
+msgstr ""
+
+#: src/guiMainMenu.cpp:675
+msgid "Preload item visuals"
+msgstr ""
+
+#: src/guiMainMenu.cpp:682
+msgid "Enable Particles"
+msgstr ""
+
+#: src/guiMainMenu.cpp:692
+msgid "Change keys"
+msgstr ""
+
+#: src/guiMainMenu.cpp:977
+msgid "Address required."
+msgstr ""
+
+#: src/guiMainMenu.cpp:995
+msgid "Cannot delete world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1010
+msgid "Files to be deleted"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1026
+msgid "Cannot create world: No games found"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1042
+msgid "Cannot configure world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1146
+msgid "Failed to delete all world files"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:108
+msgid "Old Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:125
+msgid "New Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:141
+msgid "Confirm Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:158
+msgid "Change"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:167
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:118
+msgid "Continue"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:127
+msgid "Change Password"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:135
+msgid "Exit to Menu"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:142
+msgid "Exit to OS"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:149
+msgid ""
+"Default Controls:\n"
+"- WASD: Walk\n"
+"- Mouse left: dig/hit\n"
+"- Mouse right: place/use\n"
+"- Mouse wheel: select item\n"
+"- 0...9: select item\n"
+"- Shift: sneak\n"
+"- R: Toggle viewing all loaded chunks\n"
+"- I: Inventory menu\n"
+"- ESC: This menu\n"
+"- T: Chat\n"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Left Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Middle Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Right Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "X Button 1"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Back"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Clear"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Return"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Tab"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "X Button 2"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Capital"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Control"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Kana"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Menu"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Pause"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Shift"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Convert"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Escape"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Final"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Junja"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Kanji"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Nonconvert"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Accept"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "End"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Home"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Mode Change"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Next"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Prior"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Space"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Down"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Execute"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Left"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Print"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Right"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Select"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Up"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Help"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Insert"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Snapshot"
+msgstr ""
+
+#: src/keycode.cpp:232
+msgid "Left Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Apps"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 0"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 1"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Right Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Sleep"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 2"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 3"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 4"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 5"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 6"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 7"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad *"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad +"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad -"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad /"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 8"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 9"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Num Lock"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Scroll Lock"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Left Shift"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Right Shift"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Menu"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Menu"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Comma"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Minus"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Period"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Plus"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "Attn"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "CrSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Erase OEF"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "ExSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "OEM Clear"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "PA1"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Zoom"
+msgstr ""
+
+#: src/main.cpp:1384
+msgid "Main Menu"
+msgstr ""
+
+#: src/main.cpp:1633
+msgid "Failed to initialize world"
+msgstr ""
+
+#: src/main.cpp:1645
+msgid "No world selected and no address provided. Nothing to do."
+msgstr ""
+
+#: src/main.cpp:1653
+msgid "Could not find or load game \""
+msgstr ""
+
+#: src/main.cpp:1667
+msgid "Invalid gamespec."
+msgstr ""
+
+#: src/main.cpp:1707
+msgid "Connection error (timed out?)"
+msgstr ""
+
+#: src/main.cpp:1718
+msgid ""
+"\n"
+"Check debug.txt for details."
+msgstr ""
diff --git a/po/ro/minetest.po b/po/ro/minetest.po
new file mode 100644
index 000000000..400cb5a4e
--- /dev/null
+++ b/po/ro/minetest.po
@@ -0,0 +1,669 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: minetest\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-01-23 18:24+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/guiConfigureWorld.cpp:127
+msgid ""
+"Warning: Some mods are not configured yet.\n"
+"They will be enabled by default when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:146
+msgid ""
+"Warning: Some configured mods are missing.\n"
+"Their setting will be removed when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:210
+msgid "enabled"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:217
+msgid "Enable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:224
+msgid "Disable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:230
+msgid "depends on:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:242
+msgid "is required by:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:262 src/guiCreateWorld.cpp:165
+#: src/guiKeyChangeMenu.cpp:179 src/keycode.cpp:223
+msgid "Cancel"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:268 src/guiKeyChangeMenu.cpp:173
+msgid "Save"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:394
+msgid "Configuration saved. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:402
+msgid "Warning: Configuration not consistent. "
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:120
+msgid "Yes"
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:126
+msgid "No"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:116
+msgid "World name"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:135
+msgid "Game"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:159
+msgid "Create"
+msgstr ""
+
+#: src/guiDeathScreen.cpp:96
+msgid "You died."
+msgstr ""
+
+#: src/guiDeathScreen.cpp:104
+msgid "Respawn"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:572
+msgid "Left click: Move all items, Right click: Move single item"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:597 src/guiMessageMenu.cpp:109
+#: src/guiTextInputMenu.cpp:123
+msgid "Proceed"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:114
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:151
+msgid "\"Use\" = climb down"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:164
+msgid "Double tap \"jump\" to toggle fly"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:269
+msgid "Key already in use"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:347
+msgid "press key"
+msgstr ""
+
+#: src/guiMainMenu.cpp:55
+msgid "Cannot create world: Name contains invalid characters"
+msgstr ""
+
+#: src/guiMainMenu.cpp:64
+msgid "Cannot create world: A world by this name already exists"
+msgstr ""
+
+#: src/guiMainMenu.cpp:245
+msgid "Singleplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:246
+msgid "Multiplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:247
+msgid "Advanced"
+msgstr ""
+
+#: src/guiMainMenu.cpp:248
+msgid "Settings"
+msgstr ""
+
+#: src/guiMainMenu.cpp:249
+msgid "Credits"
+msgstr ""
+
+#: src/guiMainMenu.cpp:280
+msgid "Select World:"
+msgstr ""
+
+#: src/guiMainMenu.cpp:302 src/guiMainMenu.cpp:449 src/keycode.cpp:229
+msgid "Delete"
+msgstr ""
+
+#: src/guiMainMenu.cpp:309
+msgid "New"
+msgstr ""
+
+#: src/guiMainMenu.cpp:317
+msgid "Configure"
+msgstr ""
+
+#: src/guiMainMenu.cpp:332 src/keycode.cpp:248
+msgid "Play"
+msgstr ""
+
+#: src/guiMainMenu.cpp:343 src/guiMainMenu.cpp:557
+msgid "Creative Mode"
+msgstr ""
+
+#: src/guiMainMenu.cpp:349 src/guiMainMenu.cpp:563
+msgid "Enable Damage"
+msgstr ""
+
+#: src/guiMainMenu.cpp:369 src/guiMainMenu.cpp:479
+msgid "Name/Password"
+msgstr ""
+
+#: src/guiMainMenu.cpp:408 src/guiMainMenu.cpp:506
+msgid "Address/Port"
+msgstr ""
+
+#: src/guiMainMenu.cpp:435 src/guiMainMenu.cpp:1075
+msgid "Show Public"
+msgstr ""
+
+#: src/guiMainMenu.cpp:439 src/guiMainMenu.cpp:1083
+msgid "Show Favorites"
+msgstr ""
+
+#: src/guiMainMenu.cpp:459
+msgid "Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:529
+msgid "Leave address blank to start a local server."
+msgstr ""
+
+#: src/guiMainMenu.cpp:538
+msgid "Start Game / Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:570 src/guiMainMenu.cpp:1006
+msgid "Delete world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:577
+msgid "Create world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:611
+msgid "Fancy trees"
+msgstr ""
+
+#: src/guiMainMenu.cpp:617
+msgid "Smooth Lighting"
+msgstr ""
+
+#: src/guiMainMenu.cpp:623
+msgid "3D Clouds"
+msgstr ""
+
+#: src/guiMainMenu.cpp:629
+msgid "Opaque water"
+msgstr ""
+
+#: src/guiMainMenu.cpp:639
+msgid "Mip-Mapping"
+msgstr ""
+
+#: src/guiMainMenu.cpp:646
+msgid "Anisotropic Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:653
+msgid "Bi-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:660
+msgid "Tri-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:668
+msgid "Shaders"
+msgstr ""
+
+#: src/guiMainMenu.cpp:675
+msgid "Preload item visuals"
+msgstr ""
+
+#: src/guiMainMenu.cpp:682
+msgid "Enable Particles"
+msgstr ""
+
+#: src/guiMainMenu.cpp:692
+msgid "Change keys"
+msgstr ""
+
+#: src/guiMainMenu.cpp:977
+msgid "Address required."
+msgstr ""
+
+#: src/guiMainMenu.cpp:995
+msgid "Cannot delete world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1010
+msgid "Files to be deleted"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1026
+msgid "Cannot create world: No games found"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1042
+msgid "Cannot configure world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1146
+msgid "Failed to delete all world files"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:108
+msgid "Old Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:125
+msgid "New Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:141
+msgid "Confirm Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:158
+msgid "Change"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:167
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:118
+msgid "Continue"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:127
+msgid "Change Password"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:135
+msgid "Exit to Menu"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:142
+msgid "Exit to OS"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:149
+msgid ""
+"Default Controls:\n"
+"- WASD: Walk\n"
+"- Mouse left: dig/hit\n"
+"- Mouse right: place/use\n"
+"- Mouse wheel: select item\n"
+"- 0...9: select item\n"
+"- Shift: sneak\n"
+"- R: Toggle viewing all loaded chunks\n"
+"- I: Inventory menu\n"
+"- ESC: This menu\n"
+"- T: Chat\n"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Left Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Middle Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Right Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "X Button 1"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Back"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Clear"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Return"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Tab"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "X Button 2"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Capital"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Control"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Kana"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Menu"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Pause"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Shift"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Convert"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Escape"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Final"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Junja"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Kanji"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Nonconvert"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Accept"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "End"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Home"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Mode Change"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Next"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Prior"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Space"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Down"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Execute"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Left"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Print"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Right"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Select"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Up"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Help"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Insert"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Snapshot"
+msgstr ""
+
+#: src/keycode.cpp:232
+msgid "Left Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Apps"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 0"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 1"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Right Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Sleep"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 2"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 3"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 4"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 5"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 6"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 7"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad *"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad +"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad -"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad /"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 8"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 9"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Num Lock"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Scroll Lock"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Left Shift"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Right Shift"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Menu"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Menu"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Comma"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Minus"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Period"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Plus"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "Attn"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "CrSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Erase OEF"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "ExSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "OEM Clear"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "PA1"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Zoom"
+msgstr ""
+
+#: src/main.cpp:1384
+msgid "Main Menu"
+msgstr ""
+
+#: src/main.cpp:1633
+msgid "Failed to initialize world"
+msgstr ""
+
+#: src/main.cpp:1645
+msgid "No world selected and no address provided. Nothing to do."
+msgstr ""
+
+#: src/main.cpp:1653
+msgid "Could not find or load game \""
+msgstr ""
+
+#: src/main.cpp:1667
+msgid "Invalid gamespec."
+msgstr ""
+
+#: src/main.cpp:1707
+msgid "Connection error (timed out?)"
+msgstr ""
+
+#: src/main.cpp:1718
+msgid ""
+"\n"
+"Check debug.txt for details."
+msgstr ""
diff --git a/po/ru/minetest.po b/po/ru/minetest.po
new file mode 100644
index 000000000..400cb5a4e
--- /dev/null
+++ b/po/ru/minetest.po
@@ -0,0 +1,669 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: minetest\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-01-23 18:24+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: src/guiConfigureWorld.cpp:127
+msgid ""
+"Warning: Some mods are not configured yet.\n"
+"They will be enabled by default when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:146
+msgid ""
+"Warning: Some configured mods are missing.\n"
+"Their setting will be removed when you save the configuration. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:210
+msgid "enabled"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:217
+msgid "Enable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:224
+msgid "Disable All"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:230
+msgid "depends on:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:242
+msgid "is required by:"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:262 src/guiCreateWorld.cpp:165
+#: src/guiKeyChangeMenu.cpp:179 src/keycode.cpp:223
+msgid "Cancel"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:268 src/guiKeyChangeMenu.cpp:173
+msgid "Save"
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:394
+msgid "Configuration saved. "
+msgstr ""
+
+#: src/guiConfigureWorld.cpp:402
+msgid "Warning: Configuration not consistent. "
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:120
+msgid "Yes"
+msgstr ""
+
+#: src/guiConfirmMenu.cpp:126
+msgid "No"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:116
+msgid "World name"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:135
+msgid "Game"
+msgstr ""
+
+#: src/guiCreateWorld.cpp:159
+msgid "Create"
+msgstr ""
+
+#: src/guiDeathScreen.cpp:96
+msgid "You died."
+msgstr ""
+
+#: src/guiDeathScreen.cpp:104
+msgid "Respawn"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:572
+msgid "Left click: Move all items, Right click: Move single item"
+msgstr ""
+
+#: src/guiFormSpecMenu.cpp:597 src/guiMessageMenu.cpp:109
+#: src/guiTextInputMenu.cpp:123
+msgid "Proceed"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:114
+msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:151
+msgid "\"Use\" = climb down"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:164
+msgid "Double tap \"jump\" to toggle fly"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:269
+msgid "Key already in use"
+msgstr ""
+
+#: src/guiKeyChangeMenu.cpp:347
+msgid "press key"
+msgstr ""
+
+#: src/guiMainMenu.cpp:55
+msgid "Cannot create world: Name contains invalid characters"
+msgstr ""
+
+#: src/guiMainMenu.cpp:64
+msgid "Cannot create world: A world by this name already exists"
+msgstr ""
+
+#: src/guiMainMenu.cpp:245
+msgid "Singleplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:246
+msgid "Multiplayer"
+msgstr ""
+
+#: src/guiMainMenu.cpp:247
+msgid "Advanced"
+msgstr ""
+
+#: src/guiMainMenu.cpp:248
+msgid "Settings"
+msgstr ""
+
+#: src/guiMainMenu.cpp:249
+msgid "Credits"
+msgstr ""
+
+#: src/guiMainMenu.cpp:280
+msgid "Select World:"
+msgstr ""
+
+#: src/guiMainMenu.cpp:302 src/guiMainMenu.cpp:449 src/keycode.cpp:229
+msgid "Delete"
+msgstr ""
+
+#: src/guiMainMenu.cpp:309
+msgid "New"
+msgstr ""
+
+#: src/guiMainMenu.cpp:317
+msgid "Configure"
+msgstr ""
+
+#: src/guiMainMenu.cpp:332 src/keycode.cpp:248
+msgid "Play"
+msgstr ""
+
+#: src/guiMainMenu.cpp:343 src/guiMainMenu.cpp:557
+msgid "Creative Mode"
+msgstr ""
+
+#: src/guiMainMenu.cpp:349 src/guiMainMenu.cpp:563
+msgid "Enable Damage"
+msgstr ""
+
+#: src/guiMainMenu.cpp:369 src/guiMainMenu.cpp:479
+msgid "Name/Password"
+msgstr ""
+
+#: src/guiMainMenu.cpp:408 src/guiMainMenu.cpp:506
+msgid "Address/Port"
+msgstr ""
+
+#: src/guiMainMenu.cpp:435 src/guiMainMenu.cpp:1075
+msgid "Show Public"
+msgstr ""
+
+#: src/guiMainMenu.cpp:439 src/guiMainMenu.cpp:1083
+msgid "Show Favorites"
+msgstr ""
+
+#: src/guiMainMenu.cpp:459
+msgid "Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:529
+msgid "Leave address blank to start a local server."
+msgstr ""
+
+#: src/guiMainMenu.cpp:538
+msgid "Start Game / Connect"
+msgstr ""
+
+#: src/guiMainMenu.cpp:570 src/guiMainMenu.cpp:1006
+msgid "Delete world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:577
+msgid "Create world"
+msgstr ""
+
+#: src/guiMainMenu.cpp:611
+msgid "Fancy trees"
+msgstr ""
+
+#: src/guiMainMenu.cpp:617
+msgid "Smooth Lighting"
+msgstr ""
+
+#: src/guiMainMenu.cpp:623
+msgid "3D Clouds"
+msgstr ""
+
+#: src/guiMainMenu.cpp:629
+msgid "Opaque water"
+msgstr ""
+
+#: src/guiMainMenu.cpp:639
+msgid "Mip-Mapping"
+msgstr ""
+
+#: src/guiMainMenu.cpp:646
+msgid "Anisotropic Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:653
+msgid "Bi-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:660
+msgid "Tri-Linear Filtering"
+msgstr ""
+
+#: src/guiMainMenu.cpp:668
+msgid "Shaders"
+msgstr ""
+
+#: src/guiMainMenu.cpp:675
+msgid "Preload item visuals"
+msgstr ""
+
+#: src/guiMainMenu.cpp:682
+msgid "Enable Particles"
+msgstr ""
+
+#: src/guiMainMenu.cpp:692
+msgid "Change keys"
+msgstr ""
+
+#: src/guiMainMenu.cpp:977
+msgid "Address required."
+msgstr ""
+
+#: src/guiMainMenu.cpp:995
+msgid "Cannot delete world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1010
+msgid "Files to be deleted"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1026
+msgid "Cannot create world: No games found"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1042
+msgid "Cannot configure world: Nothing selected"
+msgstr ""
+
+#: src/guiMainMenu.cpp:1146
+msgid "Failed to delete all world files"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:108
+msgid "Old Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:125
+msgid "New Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:141
+msgid "Confirm Password"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:158
+msgid "Change"
+msgstr ""
+
+#: src/guiPasswordChange.cpp:167
+msgid "Passwords do not match!"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:118
+msgid "Continue"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:127
+msgid "Change Password"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:135
+msgid "Exit to Menu"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:142
+msgid "Exit to OS"
+msgstr ""
+
+#: src/guiPauseMenu.cpp:149
+msgid ""
+"Default Controls:\n"
+"- WASD: Walk\n"
+"- Mouse left: dig/hit\n"
+"- Mouse right: place/use\n"
+"- Mouse wheel: select item\n"
+"- 0...9: select item\n"
+"- Shift: sneak\n"
+"- R: Toggle viewing all loaded chunks\n"
+"- I: Inventory menu\n"
+"- ESC: This menu\n"
+"- T: Chat\n"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Left Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Middle Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "Right Button"
+msgstr ""
+
+#: src/keycode.cpp:223
+msgid "X Button 1"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Back"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Clear"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Return"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "Tab"
+msgstr ""
+
+#: src/keycode.cpp:224
+msgid "X Button 2"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Capital"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Control"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Kana"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Menu"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Pause"
+msgstr ""
+
+#: src/keycode.cpp:225
+msgid "Shift"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Convert"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Escape"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Final"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Junja"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Kanji"
+msgstr ""
+
+#: src/keycode.cpp:226
+msgid "Nonconvert"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Accept"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "End"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Home"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Mode Change"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Next"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Prior"
+msgstr ""
+
+#: src/keycode.cpp:227
+msgid "Space"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Down"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Execute"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Left"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Print"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Right"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Select"
+msgstr ""
+
+#: src/keycode.cpp:228
+msgid "Up"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Help"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Insert"
+msgstr ""
+
+#: src/keycode.cpp:229
+msgid "Snapshot"
+msgstr ""
+
+#: src/keycode.cpp:232
+msgid "Left Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Apps"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 0"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Numpad 1"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Right Windows"
+msgstr ""
+
+#: src/keycode.cpp:233
+msgid "Sleep"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 2"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 3"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 4"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 5"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 6"
+msgstr ""
+
+#: src/keycode.cpp:234
+msgid "Numpad 7"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad *"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad +"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad -"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad /"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 8"
+msgstr ""
+
+#: src/keycode.cpp:235
+msgid "Numpad 9"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Num Lock"
+msgstr ""
+
+#: src/keycode.cpp:239
+msgid "Scroll Lock"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Left Shift"
+msgstr ""
+
+#: src/keycode.cpp:240
+msgid "Right Shift"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Left Menu"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Control"
+msgstr ""
+
+#: src/keycode.cpp:241
+msgid "Right Menu"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Comma"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Minus"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Period"
+msgstr ""
+
+#: src/keycode.cpp:243
+msgid "Plus"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "Attn"
+msgstr ""
+
+#: src/keycode.cpp:247
+msgid "CrSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Erase OEF"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "ExSel"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "OEM Clear"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "PA1"
+msgstr ""
+
+#: src/keycode.cpp:248
+msgid "Zoom"
+msgstr ""
+
+#: src/main.cpp:1384
+msgid "Main Menu"
+msgstr ""
+
+#: src/main.cpp:1633
+msgid "Failed to initialize world"
+msgstr ""
+
+#: src/main.cpp:1645
+msgid "No world selected and no address provided. Nothing to do."
+msgstr ""
+
+#: src/main.cpp:1653
+msgid "Could not find or load game \""
+msgstr ""
+
+#: src/main.cpp:1667
+msgid "Invalid gamespec."
+msgstr ""
+
+#: src/main.cpp:1707
+msgid "Connection error (timed out?)"
+msgstr ""
+
+#: src/main.cpp:1718
+msgid ""
+"\n"
+"Check debug.txt for details."
+msgstr ""
diff --git a/src/game.cpp b/src/game.cpp
index 588a0fef3..e923cbbb0 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -2482,7 +2482,9 @@ void the_game(
// Sign special case, at least until formspec is properly implemented.
// Deprecated?
- if(meta && meta->getString("formspec") == "hack:sign_text_input" && !random_input)
+ if(meta && meta->getString("formspec") == "hack:sign_text_input"
+ && !random_input
+ && !input->isKeyDown(getKeySetting("keymap_sneak")))
{
infostream<<"Launching metadata text input"<<std::endl;
@@ -2497,7 +2499,8 @@ void the_game(
wtext))->drop();
}
// If metadata provides an inventory view, activate it
- else if(meta && meta->getString("formspec") != "" && !random_input)
+ else if(meta && meta->getString("formspec") != "" && !random_input
+ && !input->isKeyDown(getKeySetting("keymap_sneak")))
{
infostream<<"Launching custom inventory view"<<std::endl;
diff --git a/src/map.cpp b/src/map.cpp
index 6a058bb51..ea82194b8 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -33,6 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "gamedef.h"
#include "util/directiontables.h"
#include "rollback_interface.h"
+#include "mapgen_v6.h"
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
@@ -1993,10 +1994,9 @@ void Map::removeNodeTimer(v3s16 p)
/*
ServerMap
*/
-ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
+ServerMap::ServerMap(std::string savedir, IGameDef *gamedef, EmergeManager *emerge):
Map(dout_server, gamedef),
m_seed(0),
- m_emerge(NULL),
m_map_metadata_changed(true),
m_database(NULL),
m_database_read(NULL),
@@ -2004,9 +2004,8 @@ ServerMap::ServerMap(std::string savedir, IGameDef *gamedef):
{
verbosestream<<__FUNCTION_NAME<<std::endl;
- //m_chunksize = 8; // Takes a few seconds
-
- m_mgparams = MapgenParams::getParamsFromSettings(g_settings);
+ m_emerge = emerge;
+ m_mgparams = m_emerge->getParamsFromSettings(g_settings);
if (!m_mgparams)
m_mgparams = new MapgenV6Params();
@@ -3080,32 +3079,12 @@ void ServerMap::saveMapMeta()
Settings params;
params.set("mg_name", m_emerge->params->mg_name);
-
params.setU64("seed", m_emerge->params->seed);
params.setS16("water_level", m_emerge->params->water_level);
params.setS16("chunksize", m_emerge->params->chunksize);
params.setS32("mg_flags", m_emerge->params->flags);
-/* switch (m_emerge->params->mg_version) {
- case 6:
- {*/
- MapgenV6Params *v6params = (MapgenV6Params *)m_emerge->params;
-
- params.setFloat("mgv6_freq_desert", v6params->freq_desert);
- params.setFloat("mgv6_freq_beach", v6params->freq_beach);
- params.setNoiseParams("mgv6_np_terrain_base", v6params->np_terrain_base);
- params.setNoiseParams("mgv6_np_terrain_higher", v6params->np_terrain_higher);
- params.setNoiseParams("mgv6_np_steepness", v6params->np_steepness);
- params.setNoiseParams("mgv6_np_height_select", v6params->np_height_select);
- params.setNoiseParams("mgv6_np_trees", v6params->np_trees);
- params.setNoiseParams("mgv6_np_mud", v6params->np_mud);
- params.setNoiseParams("mgv6_np_beach", v6params->np_beach);
- params.setNoiseParams("mgv6_np_biome", v6params->np_biome);
- params.setNoiseParams("mgv6_np_cave", v6params->np_cave);
- /* break;
- }
- default:
- ; //complain here
- }*/
+
+ m_emerge->params->writeParams(&params);
params.writeLines(os);
@@ -3145,7 +3124,7 @@ void ServerMap::loadMapMeta()
params.parseConfigLine(line);
}
- MapgenParams *mgparams = MapgenParams::getParamsFromSettings(&params);
+ MapgenParams *mgparams = m_emerge->getParamsFromSettings(&params);
if (mgparams) {
if (m_mgparams)
delete m_mgparams;
diff --git a/src/map.h b/src/map.h
index 760b23de5..420fc29ca 100644
--- a/src/map.h
+++ b/src/map.h
@@ -358,7 +358,7 @@ public:
/*
savedir: directory to which map data should be saved
*/
- ServerMap(std::string savedir, IGameDef *gamedef);
+ ServerMap(std::string savedir, IGameDef *gamedef, EmergeManager *emerge);
~ServerMap();
s32 mapType() const
@@ -480,16 +480,12 @@ public:
MapgenParams *getMapgenParams(){ return m_mgparams; }
- void setEmerge(EmergeManager *emerge){ m_emerge = emerge; }
-
// Parameters fed to the Mapgen
MapgenParams *m_mgparams;
private:
// Seed used for all kinds of randomness in generation
u64 m_seed;
-
-
-
+
// Emerge manager
EmergeManager *m_emerge;
diff --git a/src/mapgen.cpp b/src/mapgen.cpp
index c86743459..f2745bdb4 100644
--- a/src/mapgen.cpp
+++ b/src/mapgen.cpp
@@ -33,66 +33,53 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "settings.h" // For g_settings
#include "main.h" // For g_profiler
#include "treegen.h"
-
-/////////////////// Mapgen V6 perlin noise default values
-NoiseParams nparams_v6_def_terrain_base =
- {-AVERAGE_MUD_AMOUNT, 20.0, v3f(250.0, 250.0, 250.0), 82341, 5, 0.6};
-NoiseParams nparams_v6_def_terrain_higher =
- {20.0, 16.0, v3f(500.0, 500.0, 500.0), 85039, 5, 0.6};
-NoiseParams nparams_v6_def_steepness =
- {0.85, 0.5, v3f(125.0, 125.0, 125.0), -932, 5, 0.7};
-NoiseParams nparams_v6_def_height_select =
- {0.5, 1.0, v3f(250.0, 250.0, 250.0), 4213, 5, 0.69};
-NoiseParams nparams_v6_def_trees =
- {0.0, 1.0, v3f(125.0, 125.0, 125.0), 2, 4, 0.66};
-NoiseParams nparams_v6_def_mud =
- {AVERAGE_MUD_AMOUNT, 2.0, v3f(200.0, 200.0, 200.0), 91013, 3, 0.55};
-NoiseParams nparams_v6_def_beach =
- {0.0, 1.0, v3f(250.0, 250.0, 250.0), 59420, 3, 0.50};
-NoiseParams nparams_v6_def_biome =
- {0.0, 1.0, v3f(250.0, 250.0, 250.0), 9130, 3, 0.50};
-NoiseParams nparams_v6_def_cave =
- {6.0, 6.0, v3f(250.0, 250.0, 250.0), 34329, 3, 0.50};
+#include "mapgen_v6.h"
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////// Emerge Manager ////////////////////////////////
-
-EmergeManager::EmergeManager(IGameDef *gamedef, BiomeDefManager *bdef,
- MapgenParams *mgparams) {
+EmergeManager::EmergeManager(IGameDef *gamedef, BiomeDefManager *bdef) {
+ //register built-in mapgens
+ registerMapgen("v6", new MapgenFactoryV6());
+
//the order of these assignments is pretty important
this->biomedef = bdef ? bdef : new BiomeDefManager(gamedef);
- this->params = mgparams;
+ this->params = NULL;
this->mapgen = NULL;
- this->mapgen = getMapgen();
}
EmergeManager::~EmergeManager() {
delete biomedef;
+ delete mapgen;
delete params;
}
+void EmergeManager::initMapgens(MapgenParams *mgparams) {
+ if (mapgen)
+ return;
+
+ this->params = mgparams;
+ this->mapgen = getMapgen(); //only one mapgen for now!
+}
+
+
Mapgen *EmergeManager::getMapgen() {
if (!mapgen) {
- /*switch (params->mg_version) {
- case 6:*/
- mapgen = new MapgenV6(0, (MapgenV6Params *)params);
- /* break;
- default:
- errorstream << "EmergeManager: Unsupported mapgen version "
- << params->mg_version << ", falling back to V6" << std::endl;
- params->mg_version = 6;
- mapgen = new MapgenV6(0, (MapgenV6Params *)params);
- }*/
+ mapgen = createMapgen(params->mg_name, 0, params, this);
+ if (!mapgen) {
+ infostream << "EmergeManager: falling back to mapgen v6" << std::endl;
+ delete params;
+ params = createMapgenParams("v6");
+ mapgen = createMapgen("v6", 0, params, this);
+ }
}
return mapgen;
}
-
void EmergeManager::addBlockToQueue() {
//STUB
}
@@ -127,60 +114,94 @@ u32 EmergeManager::getBlockSeed(v3s16 p) {
}
-MapgenParams *MapgenParams::createMapgenParams(std::string &mgstr) {
- return new MapgenV6Params(); // this will be fixed later
- /*switch (mgver) {
- case 6:
- return new MapgenV6Params();
- default: //instead of complaining, default to 6
- return new MapgenV6Params();
- }*/
+Mapgen *EmergeManager::createMapgen(std::string mgname, int mgid,
+ MapgenParams *mgparams, EmergeManager *emerge) {
+ std::map<std::string, MapgenFactory *>::const_iterator iter = mglist.find(mgname);
+ if (iter == mglist.end()) {
+ errorstream << "EmergeManager; mapgen " << mgname <<
+ " not registered" << std::endl;
+ return NULL;
+ }
+
+ MapgenFactory *mgfactory = iter->second;
+ return mgfactory->createMapgen(mgid, mgparams, emerge);
+}
+
+
+MapgenParams *EmergeManager::createMapgenParams(std::string mgname) {
+ std::map<std::string, MapgenFactory *>::const_iterator iter = mglist.find(mgname);
+ if (iter == mglist.end()) {
+ errorstream << "EmergeManager: mapgen " << mgname <<
+ " not registered" << std::endl;
+ return NULL;
+ }
+
+ MapgenFactory *mgfactory = iter->second;
+ return mgfactory->createMapgenParams();
}
-MapgenParams *MapgenParams::getParamsFromSettings(Settings *settings) {
+MapgenParams *EmergeManager::getParamsFromSettings(Settings *settings) {
std::string mg_name = settings->get("mg_name");
- MapgenParams *mgparams = MapgenParams::createMapgenParams(mg_name);
+ MapgenParams *mgparams = createMapgenParams(mg_name);
+
mgparams->mg_name = mg_name;
mgparams->seed = settings->getU64(settings == g_settings ? "fixed_map_seed" : "seed");
mgparams->water_level = settings->getS16("water_level");
mgparams->chunksize = settings->getS16("chunksize");
mgparams->flags = settings->getS32("mg_flags");
-/* switch (mg_version) {
- case 6:
- {*/
- MapgenV6Params *v6params = (MapgenV6Params *)mgparams;
-
- v6params->freq_desert = settings->getFloat("mgv6_freq_desert");
- v6params->freq_beach = settings->getFloat("mgv6_freq_beach");
- v6params->np_terrain_base = settings->getNoiseParams("mgv6_np_terrain_base");
- v6params->np_terrain_higher = settings->getNoiseParams("mgv6_np_terrain_higher");
- v6params->np_steepness = settings->getNoiseParams("mgv6_np_steepness");
- v6params->np_height_select = settings->getNoiseParams("mgv6_np_height_select");
- v6params->np_trees = settings->getNoiseParams("mgv6_np_trees");
- v6params->np_mud = settings->getNoiseParams("mgv6_np_mud");
- v6params->np_beach = settings->getNoiseParams("mgv6_np_beach");
- v6params->np_biome = settings->getNoiseParams("mgv6_np_biome");
- v6params->np_cave = settings->getNoiseParams("mgv6_np_cave");
-
- if (!v6params->np_terrain_base || !v6params->np_terrain_higher ||
- !v6params->np_steepness || !v6params->np_height_select ||
- !v6params->np_trees || !v6params->np_mud ||
- !v6params->np_beach || !v6params->np_biome || !v6params->np_cave) {
- delete mgparams;
- return NULL;
- }
-/*
- break;
- }
- default:
- delete mgparams;
- return NULL;
- }*/
-
+ if (!mgparams->readParams(settings)) {
+ delete mgparams;
+ return NULL;
+ }
return mgparams;
+}
+
+
+bool EmergeManager::registerMapgen(std::string mgname, MapgenFactory *mgfactory) {
+ mglist.insert(std::make_pair(mgname, mgfactory));
+ infostream << "EmergeManager: registered mapgen " << mgname << std::endl;
+}
+
+
+/////////////////////
+
+bool MapgenV6Params::readParams(Settings *settings) {
+ freq_desert = settings->getFloat("mgv6_freq_desert");
+ freq_beach = settings->getFloat("mgv6_freq_beach");
+
+ np_terrain_base = settings->getNoiseParams("mgv6_np_terrain_base");
+ np_terrain_higher = settings->getNoiseParams("mgv6_np_terrain_higher");
+ np_steepness = settings->getNoiseParams("mgv6_np_steepness");
+ np_height_select = settings->getNoiseParams("mgv6_np_height_select");
+ np_trees = settings->getNoiseParams("mgv6_np_trees");
+ np_mud = settings->getNoiseParams("mgv6_np_mud");
+ np_beach = settings->getNoiseParams("mgv6_np_beach");
+ np_biome = settings->getNoiseParams("mgv6_np_biome");
+ np_cave = settings->getNoiseParams("mgv6_np_cave");
+
+ bool success =
+ np_terrain_base && np_terrain_higher && np_steepness &&
+ np_height_select && np_trees && np_mud &&
+ np_beach && np_biome && np_cave;
+ return success;
+}
+
+void MapgenV6Params::writeParams(Settings *settings) {
+ settings->setFloat("mgv6_freq_desert", freq_desert);
+ settings->setFloat("mgv6_freq_beach", freq_beach);
+
+ settings->setNoiseParams("mgv6_np_terrain_base", np_terrain_base);
+ settings->setNoiseParams("mgv6_np_terrain_higher", np_terrain_higher);
+ settings->setNoiseParams("mgv6_np_steepness", np_steepness);
+ settings->setNoiseParams("mgv6_np_height_select", np_height_select);
+ settings->setNoiseParams("mgv6_np_trees", np_trees);
+ settings->setNoiseParams("mgv6_np_mud", np_mud);
+ settings->setNoiseParams("mgv6_np_beach", np_beach);
+ settings->setNoiseParams("mgv6_np_biome", np_biome);
+ settings->setNoiseParams("mgv6_np_cave", np_cave);
}
diff --git a/src/mapgen.h b/src/mapgen.h
index d508d37a8..728290ffc 100644
--- a/src/mapgen.h
+++ b/src/mapgen.h
@@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "mapnode.h"
#include "noise.h"
#include "settings.h"
+#include <map>
/////////////////// Mapgen flags
#define MG_TREES 0x01
@@ -34,39 +35,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#define MGV6_FORESTS 0x08
#define MGV6_BIOME_BLEND 0x10
-#define AVERAGE_MUD_AMOUNT 4
-
class BiomeDefManager;
class Biome;
-
-//struct BlockMakeData;
+class EmergeManager;
class MapBlock;
class ManualMapVoxelManipulator;
class VoxelManipulator;
class INodeDefManager;
-extern NoiseParams nparams_v6_def_terrain_base;
-extern NoiseParams nparams_v6_def_terrain_higher;
-extern NoiseParams nparams_v6_def_steepness;
-extern NoiseParams nparams_v6_def_height_select;
-extern NoiseParams nparams_v6_def_trees;
-extern NoiseParams nparams_v6_def_mud;
-extern NoiseParams nparams_v6_def_beach;
-extern NoiseParams nparams_v6_def_biome;
-extern NoiseParams nparams_v6_def_cave;
-
-extern NoiseParams nparams_v7_def_terrain;
-extern NoiseParams nparams_v7_def_bgroup;
-extern NoiseParams nparams_v7_def_heat;
-extern NoiseParams nparams_v7_def_humidity;
-
-enum BiomeType
-{
- BT_NORMAL,
- BT_DESERT
-};
-
-
struct BlockMakeData {
bool no_op;
ManualMapVoxelManipulator *vmanip;
@@ -81,7 +57,6 @@ struct BlockMakeData {
~BlockMakeData();
};
-
struct MapgenParams {
std::string mg_name;
int chunksize;
@@ -96,41 +71,11 @@ struct MapgenParams {
chunksize = 5;
flags = MG_TREES | MG_CAVES | MGV6_BIOME_BLEND;
}
-
- static MapgenParams *createMapgenParams(std::string &mgname);
- static MapgenParams *getParamsFromSettings(Settings *settings);
-
-};
-
-struct MapgenV6Params : public MapgenParams {
- float freq_desert;
- float freq_beach;
- NoiseParams *np_terrain_base;
- NoiseParams *np_terrain_higher;
- NoiseParams *np_steepness;
- NoiseParams *np_height_select;
- NoiseParams *np_trees;
- NoiseParams *np_mud;
- NoiseParams *np_beach;
- NoiseParams *np_biome;
- NoiseParams *np_cave;
-
- MapgenV6Params() {
- freq_desert = 0.45;
- freq_beach = 0.15;
- np_terrain_base = &nparams_v6_def_terrain_base;
- np_terrain_higher = &nparams_v6_def_terrain_higher;
- np_steepness = &nparams_v6_def_steepness;
- np_height_select = &nparams_v6_def_height_select;
- np_trees = &nparams_v6_def_trees;
- np_mud = &nparams_v6_def_mud;
- np_beach = &nparams_v6_def_beach;
- np_biome = &nparams_v6_def_biome;
- np_cave = &nparams_v6_def_cave;
- }
+
+ virtual bool readParams(Settings *settings) = 0;
+ virtual void writeParams(Settings *settings) {};
};
-
class Mapgen {
public:
int seed;
@@ -147,64 +92,16 @@ public:
static s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision);
};
-
-class MapgenV6 : public Mapgen {
-public:
- //ManualMapVoxelManipulator &vmanip;
-
- int ystride;
- v3s16 csize;
-
- v3s16 node_min;
- v3s16 node_max;
-
- Noise *noise_terrain_base;
- Noise *noise_terrain_higher;
- Noise *noise_steepness;
- Noise *noise_height_select;
- Noise *noise_trees;
- Noise *noise_mud;
- Noise *noise_beach;
- Noise *noise_biome;
-
- float *map_terrain_base;
- float *map_terrain_higher;
- float *map_steepness;
- float *map_height_select;
- float *map_trees;
- float *map_mud;
- float *map_beach;
- float *map_biome;
-
- NoiseParams *np_cave;
-
- u32 flags;
- float freq_desert;
- float freq_beach;
-
- MapgenV6(int mapgenid, MapgenV6Params *params);
- ~MapgenV6();
-
- void makeChunk(BlockMakeData *data);
- int getGroundLevelAtPoint(v2s16 p);
-
- double baseRockLevelFromNoise(v2s16 p);
- static s16 find_ground_level(VoxelManipulator &vmanip, v2s16 p2d, INodeDefManager *ndef);
- static s16 find_stone_level(VoxelManipulator &vmanip, v2s16 p2d, INodeDefManager *ndef);
- void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0, bool is_apple_tree, INodeDefManager *ndef);
- double tree_amount_2d(u64 seed, v2s16 p);
- bool block_is_underground(u64 seed, v3s16 blockpos);
- double base_rock_level_2d(u64 seed, v2s16 p);
- s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision);
- double get_mud_add_amount(u64 seed, v2s16 p);
- bool get_have_beach(u64 seed, v2s16 p2d);
- BiomeType get_biome(u64 seed, v2s16 p2d);
- u32 get_blockseed(u64 seed, v3s16 p);
+struct MapgenFactory {
+ virtual Mapgen *createMapgen(int mgid, MapgenParams *params,
+ EmergeManager *emerge) = 0;
+ virtual MapgenParams *createMapgenParams() = 0;
};
-
class EmergeManager {
public:
+ std::map<std::string, MapgenFactory *> mglist;
+
//settings
MapgenParams *params;
@@ -214,12 +111,19 @@ public:
//biome manager
BiomeDefManager *biomedef;
- EmergeManager(IGameDef *gamedef, BiomeDefManager *bdef, MapgenParams *mgparams);
+ EmergeManager(IGameDef *gamedef, BiomeDefManager *bdef);
~EmergeManager();
+ void initMapgens(MapgenParams *mgparams);
+ Mapgen *createMapgen(std::string mgname, int mgid,
+ MapgenParams *mgparams, EmergeManager *emerge);
+ MapgenParams *createMapgenParams(std::string mgname);
Mapgen *getMapgen();
void addBlockToQueue();
-
+
+ bool registerMapgen(std::string name, MapgenFactory *mgfactory);
+ MapgenParams *getParamsFromSettings(Settings *settings);
+
//mapgen helper methods
Biome *getBiomeAtPoint(v3s16 p);
int getGroundLevelAtPoint(v2s16 p);
diff --git a/src/mapgen_v6.cpp b/src/mapgen_v6.cpp
index a86edcca9..30df1673c 100644
--- a/src/mapgen_v6.cpp
+++ b/src/mapgen_v6.cpp
@@ -31,6 +31,27 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "profiler.h"
#include "settings.h" // For g_settings
#include "main.h" // For g_profiler
+#include "mapgen_v6.h"
+
+/////////////////// Mapgen V6 perlin noise default values
+NoiseParams nparams_v6_def_terrain_base =
+ {-AVERAGE_MUD_AMOUNT, 20.0, v3f(250.0, 250.0, 250.0), 82341, 5, 0.6};
+NoiseParams nparams_v6_def_terrain_higher =
+ {20.0, 16.0, v3f(500.0, 500.0, 500.0), 85039, 5, 0.6};
+NoiseParams nparams_v6_def_steepness =
+ {0.85, 0.5, v3f(125.0, 125.0, 125.0), -932, 5, 0.7};
+NoiseParams nparams_v6_def_height_select =
+ {0.5, 1.0, v3f(250.0, 250.0, 250.0), 4213, 5, 0.69};
+NoiseParams nparams_v6_def_trees =
+ {0.0, 1.0, v3f(125.0, 125.0, 125.0), 2, 4, 0.66};
+NoiseParams nparams_v6_def_mud =
+ {AVERAGE_MUD_AMOUNT, 2.0, v3f(200.0, 200.0, 200.0), 91013, 3, 0.55};
+NoiseParams nparams_v6_def_beach =
+ {0.0, 1.0, v3f(250.0, 250.0, 250.0), 59420, 3, 0.50};
+NoiseParams nparams_v6_def_biome =
+ {0.0, 1.0, v3f(250.0, 250.0, 250.0), 9130, 3, 0.50};
+NoiseParams nparams_v6_def_cave =
+ {6.0, 6.0, v3f(250.0, 250.0, 250.0), 34329, 3, 0.50};
///////////////////////////////////////////////////////////////////////////////
@@ -397,7 +418,6 @@ int MapgenV6::getGroundLevelAtPoint(v2s16 p) {
return baseRockLevelFromNoise(p) + AVERAGE_MUD_AMOUNT;
}
-
#define VMANIP_FLAG_CAVE VOXELFLAG_CHECKED1
void MapgenV6::makeChunk(BlockMakeData *data)
diff --git a/src/mapgen_v6.h b/src/mapgen_v6.h
new file mode 100644
index 000000000..9a2a0287d
--- /dev/null
+++ b/src/mapgen_v6.h
@@ -0,0 +1,141 @@
+/*
+Minetest-c55
+Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+*/
+
+#ifndef MAPGENV6_HEADER
+#define MAPGENV6_HEADER
+
+#include "mapgen.h"
+
+#define AVERAGE_MUD_AMOUNT 4
+
+enum BiomeType
+{
+ BT_NORMAL,
+ BT_DESERT
+};
+
+extern NoiseParams nparams_v6_def_terrain_base;
+extern NoiseParams nparams_v6_def_terrain_higher;
+extern NoiseParams nparams_v6_def_steepness;
+extern NoiseParams nparams_v6_def_height_select;
+extern NoiseParams nparams_v6_def_trees;
+extern NoiseParams nparams_v6_def_mud;
+extern NoiseParams nparams_v6_def_beach;
+extern NoiseParams nparams_v6_def_biome;
+extern NoiseParams nparams_v6_def_cave;
+
+struct MapgenV6Params : public MapgenParams {
+ float freq_desert;
+ float freq_beach;
+ NoiseParams *np_terrain_base;
+ NoiseParams *np_terrain_higher;
+ NoiseParams *np_steepness;
+ NoiseParams *np_height_select;
+ NoiseParams *np_trees;
+ NoiseParams *np_mud;
+ NoiseParams *np_beach;
+ NoiseParams *np_biome;
+ NoiseParams *np_cave;
+
+ MapgenV6Params() {
+ freq_desert = 0.45;
+ freq_beach = 0.15;
+ np_terrain_base = &nparams_v6_def_terrain_base;
+ np_terrain_higher = &nparams_v6_def_terrain_higher;
+ np_steepness = &nparams_v6_def_steepness;
+ np_height_select = &nparams_v6_def_height_select;
+ np_trees = &nparams_v6_def_trees;
+ np_mud = &nparams_v6_def_mud;
+ np_beach = &nparams_v6_def_beach;
+ np_biome = &nparams_v6_def_biome;
+ np_cave = &nparams_v6_def_cave;
+ }
+
+ bool readParams(Settings *settings);
+ void writeParams(Settings *settings);
+};
+
+class MapgenV6 : public Mapgen {
+public:
+ //ManualMapVoxelManipulator &vmanip;
+
+ int ystride;
+ v3s16 csize;
+
+ v3s16 node_min;
+ v3s16 node_max;
+
+ Noise *noise_terrain_base;
+ Noise *noise_terrain_higher;
+ Noise *noise_steepness;
+ Noise *noise_height_select;
+ Noise *noise_trees;
+ Noise *noise_mud;
+ Noise *noise_beach;
+ Noise *noise_biome;
+
+ float *map_terrain_base;
+ float *map_terrain_higher;
+ float *map_steepness;
+ float *map_height_select;
+ float *map_trees;
+ float *map_mud;
+ float *map_beach;
+ float *map_biome;
+
+ NoiseParams *np_cave;
+
+ u32 flags;
+ float freq_desert;
+ float freq_beach;
+
+ MapgenV6(int mapgenid, MapgenV6Params *params);
+ ~MapgenV6();
+
+ void makeChunk(BlockMakeData *data);
+ int getGroundLevelAtPoint(v2s16 p);
+
+ double baseRockLevelFromNoise(v2s16 p);
+ static s16 find_ground_level(VoxelManipulator &vmanip,
+ v2s16 p2d, INodeDefManager *ndef);
+ static s16 find_stone_level(VoxelManipulator &vmanip,
+ v2s16 p2d, INodeDefManager *ndef);
+ void make_tree(ManualMapVoxelManipulator &vmanip, v3s16 p0,
+ bool is_apple_tree, INodeDefManager *ndef);
+ double tree_amount_2d(u64 seed, v2s16 p);
+ bool block_is_underground(u64 seed, v3s16 blockpos);
+ double base_rock_level_2d(u64 seed, v2s16 p);
+ s16 find_ground_level_from_noise(u64 seed, v2s16 p2d, s16 precision);
+ double get_mud_add_amount(u64 seed, v2s16 p);
+ bool get_have_beach(u64 seed, v2s16 p2d);
+ BiomeType get_biome(u64 seed, v2s16 p2d);
+ u32 get_blockseed(u64 seed, v3s16 p);
+};
+
+struct MapgenFactoryV6 : public MapgenFactory {
+ Mapgen *createMapgen(int mgid, MapgenParams *params, EmergeManager *emerge) {
+ return new MapgenV6(mgid, (MapgenV6Params *)params);
+ };
+
+ MapgenParams *createMapgenParams() {
+ return new MapgenV6Params();
+ };
+};
+
+#endif
diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp
index 13ba72056..6e2a0a314 100644
--- a/src/scriptapi.cpp
+++ b/src/scriptapi.cpp
@@ -4428,8 +4428,8 @@ static int l_log(lua_State *L)
}
else
{
- std::string levelname = lua_tostring(L, 1);
- text = lua_tostring(L, 2);
+ std::string levelname = luaL_checkstring(L, 1);
+ text = luaL_checkstring(L, 2);
if(levelname == "error")
level = LMT_ERROR;
else if(levelname == "action")
diff --git a/src/server.cpp b/src/server.cpp
index d227474aa..a8640ad10 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1097,15 +1097,14 @@ Server::Server(
// Add default biomes after nodedef had its aliases added
m_biomedef->addDefaultBiomes();
- // Initialize Environment
- ServerMap *servermap = new ServerMap(path_world, this);
- m_env = new ServerEnvironment(servermap, m_lua, this, this);
-
// Create emerge manager
- m_emerge = new EmergeManager(this, m_biomedef, servermap->getMapgenParams());
+ m_emerge = new EmergeManager(this, m_biomedef);
- // Give map pointer to the emerge manager
- servermap->setEmerge(m_emerge);
+ // Initialize Environment
+ ServerMap *servermap = new ServerMap(path_world, this, m_emerge);
+ m_env = new ServerEnvironment(servermap, m_lua, this, this);
+
+ m_emerge->initMapgens(servermap->getMapgenParams());
// Give environment reference to scripting api
scriptapi_add_environment(m_lua, m_env);