aboutsummaryrefslogtreecommitdiff
path: root/src/mapgen.h
blob: 5be004e9f720cdc09ad299496d193eebaf44e25d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
/*
Minetest
Copyright (C) 2010-2013 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 MAPGEN_HEADER
#define MAPGEN_HEADER

#include "noise.h"
#include "nodedef.h"
#include "mapnode.h"
#include "util/string.h"
#include "util/container.h"

#define DEFAULT_MAPGEN "v6"

/////////////////// Mapgen flags
#define MG_TREES         0x01
#define MG_CAVES         0x02
#define MG_DUNGEONS      0x04
#define MG_FLAT          0x08
#define MG_LIGHT         0x10

class Settings;
class MMVManip;
class INodeDefManager;

extern FlagDesc flagdesc_mapgen[];
extern FlagDesc flagdesc_gennotify[];

class Biome;
class EmergeManager;
class MapBlock;
class VoxelManipulator;
struct BlockMakeData;
class VoxelArea;
class Map;

enum MapgenObject {
	MGOBJ_VMANIP,
	MGOBJ_HEIGHTMAP,
	MGOBJ_BIOMEMAP,
	MGOBJ_HEATMAP,
	MGOBJ_HUMIDMAP,
	MGOBJ_GENNOTIFY
};

enum GenNotifyType {
	GENNOTIFY_DUNGEON,
	GENNOTIFY_TEMPLE,
	GENNOTIFY_CAVE_BEGIN,
	GENNOTIFY_CAVE_END,
	GENNOTIFY_LARGECAVE_BEGIN,
	GENNOTIFY_LARGECAVE_END,
	GENNOTIFY_DECORATION,
	NUM_GENNOTIFY_TYPES
};

struct GenNotifyEvent {
	GenNotifyType type;
	v3s16 pos;
	u32 id;
};

class GenerateNotifier {
public:
	GenerateNotifier();
	GenerateNotifier(u32 notify_on, std::set<u32> *notify_on_deco_ids);

	void setNotifyOn(u32 notify_on);
	void setNotifyOnDecoIds(std::set<u32> *notify_on_deco_ids);

	bool addEvent(GenNotifyType type, v3s16 pos, u32 id=0);
	void getEvents(std::map<std::string, std::vector<v3s16> > &event_map,
		bool peek_events=false);

private:
	u32 m_notify_on;
	std::set<u32> *m_notify_on_deco_ids;
	std::list<GenNotifyEvent> m_notify_events;
};

struct MapgenSpecificParams {
	virtual void readParams(const Settings *settings) = 0;
	virtual void writeParams(Settings *settings) const = 0;
	virtual ~MapgenSpecificParams() {}
};

struct MapgenParams {
	std::string mg_name;
	s16 chunksize;
	u64 seed;
	s16 water_level;
	u32 flags;

	NoiseParams np_biome_heat;
	NoiseParams np_biome_humidity;

	MapgenSpecificParams *sparams;

	MapgenParams() :
		mg_name(DEFAULT_MAPGEN),
		chunksize(5),
		seed(0),
		water_level(1),
		flags(MG_TREES | MG_CAVES | MG_LIGHT),
		np_biome_heat(NoiseParams(50, 50, v3f(500.0, 500.0, 500.0), 5349, 3, 0.5, 2.0)),
		np_biome_humidity(NoiseParams(50, 50, v3f(500.0, 500.0, 500.0), 842, 3, 0.5, 2.0)),
		sparams(NULL)
	{}

	void load(const Settings &settings);
	void save(Settings &settings) const;
};

class Mapgen {
public:
	int seed;
	int water_level;
	u32 flags;
	bool generating;
	int id;

	MMVManip *vm;
	INodeDefManager *ndef;

	u32 blockseed;
	s16 *heightmap;
	u8 *biomemap;
	v3s16 csize;

	GenerateNotifier gennotify;

	Mapgen();
	Mapgen(int mapgenid, MapgenParams *params, EmergeManager *emerge);
	virtual ~Mapgen();

	static u32 getBlockSeed(v3s16 p, int seed);
	static u32 getBlockSeed2(v3s16 p, int seed);
	s16 findGroundLevelFull(v2s16 p2d);
	s16 findGroundLevel(v2s16 p2d, s16 ymin, s16 ymax);
	void updateHeightmap(v3s16 nmin, v3s16 nmax);
	void updateLiquid(UniqueQueue<v3s16> *trans_liquid, v3s16 nmin, v3s16 nmax);

	void setLighting(u8 light, v3s16 nmin, v3s16 nmax);
	void lightSpread(VoxelArea &a, v3s16 p, u8 light);

	void calcLighting(v3s16 nmin, v3s16 nmax);
	void calcLighting(v3s16 nmin, v3s16 nmax,
		v3s16 full_nmin, v3s16 full_nmax);

	void propagateSunlight(v3s16 nmin, v3s16 nmax);
	void spreadLight(v3s16 nmin, v3s16 nmax);

	void calcLightingOld(v3s16 nmin, v3s16 nmax);

	virtual void makeChunk(BlockMakeData *data) {}
	virtual int getGroundLevelAtPoint(v2s16 p) { return 0; }
};

struct MapgenFactory {
	virtual Mapgen *createMapgen(int mgid, MapgenParams *params,
		EmergeManager *emerge) = 0;
	virtual MapgenSpecificParams *createMapgenParams() = 0;
	virtual ~MapgenFactory() {}
};

typedef std::map<std::string, std::string> StringMap;
typedef u32 ObjDefHandle;

#define OBJDEF_INVALID_INDEX ((u32)(-1))
#define OBJDEF_INVALID_HANDLE 0
#define OBJDEF_HANDLE_SALT 0x00585e6fu
#define OBJDEF_MAX_ITEMS (1 << 18)
#define OBJDEF_UID_MASK ((1 << 7) - 1)

enum ObjDefType {
	OBJDEF_GENERIC,
	OBJDEF_BIOME,
	OBJDEF_ORE,
	OBJDEF_DECORATION,
	OBJDEF_SCHEMATIC,
};

class ObjDef {
public:
	virtual ~ObjDef() {}

	u32 index;
	u32 uid;
	ObjDefHandle handle;
	std::string name;
};

// WARNING: Ownership of ObjDefs is transferred to the ObjDefManager it is
// added/set to.  Note that ObjDefs managed by ObjDefManager are NOT refcounted,
// so the same ObjDef instance must not be referenced multiple
class ObjDefManager {
public:
	ObjDefManager(IGameDef *gamedef, ObjDefType type);
	virtual ~ObjDefManager();

	virtual const char *getObjectTitle() const { return "ObjDef"; }

	virtual void clear();
	virtual ObjDef *getByName(const std::string &name) const;

	//// Add new/get/set object definitions by handle
	virtual ObjDefHandle add(ObjDef *obj);
	virtual ObjDef *get(ObjDefHandle handle) const;
	virtual ObjDef *set(ObjDefHandle handle, ObjDef *obj);

	//// Raw variants that work on indexes
	virtual u32 addRaw(ObjDef *obj);

	// It is generally assumed that getRaw() will always return a valid object
	// This won't be true if people do odd things such as call setRaw() with NULL
	virtual ObjDef *getRaw(u32 index) const;
	virtual ObjDef *setRaw(u32 index, ObjDef *obj);

	size_t getNumObjects() const { return m_objects.size(); }
	ObjDefType getType() const { return m_objtype; }
	INodeDefManager *getNodeDef() const { return m_ndef; }

	u32 validateHandle(ObjDefHandle handle) const;
	static ObjDefHandle createHandle(u32 index, ObjDefType type, u32 uid);
	static bool decodeHandle(ObjDefHandle handle, u32 *index,
		ObjDefType *type, u32 *uid);

protected:
	INodeDefManager *m_ndef;
	std::vector<ObjDef *> m_objects;
	ObjDefType m_objtype;
};

#endif
952'>952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974
# Belarusian translation for Minetest.
# Copyright (C) 2010 celeron55, Pertu Ahola <celeron55@gmail.com>
# This file is distributed under the same license as the Minetest package.
# Selat <LongExampleTestName@gmail.com>, 2014.
msgid ""
msgstr ""
"Project-Id-Version: minetest\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2014-12-13 15:24+0100\n"
"PO-Revision-Date: 2013-11-23 17:37+0100\n"
"Last-Translator: Selat <LongExampleTestName@gmail.com>\n"
"Language-Team: Belarusian\n"
"Language: be\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#: builtin/fstk/ui.lua:67
msgid "Ok"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:26
msgid "World:"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:30
#: builtin/mainmenu/dlg_config_world.lua:32
msgid "Hide Game"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:36
#: builtin/mainmenu/dlg_config_world.lua:38
msgid "Hide mp content"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:46
msgid "Mod:"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:48
msgid "Depends:"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:51 src/guiKeyChangeMenu.cpp:191
msgid "Save"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:52
#: builtin/mainmenu/dlg_create_world.lua:64
#: builtin/mainmenu/dlg_rename_modpack.lua:33 src/guiKeyChangeMenu.cpp:199
#: src/keycode.cpp:224
msgid "Cancel"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:68
msgid "Enable MP"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:70
msgid "Disable MP"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:74
#: builtin/mainmenu/dlg_config_world.lua:76
msgid "enabled"
msgstr ""

#: builtin/mainmenu/dlg_config_world.lua:82
msgid "Enable all"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:50
msgid "World name"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:53
msgid "Seed"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:56
msgid "Mapgen"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:59
msgid "Game"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:63
msgid "Create"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:68
msgid "You have no subgames installed."
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:69
msgid "Download one from minetest.net"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:72
msgid "Warning: The minimal development test is meant for developers."
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:73
msgid "Download a subgame, such as minetest_game, from minetest.net"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:97
msgid "A world named \"$1\" already exists"
msgstr ""

#: builtin/mainmenu/dlg_create_world.lua:116
msgid "No worldname given or no game selected"
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua:26
msgid "Are you sure you want to delete \"$1\"?"
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua:27
#: builtin/mainmenu/dlg_delete_world.lua:25
#: builtin/mainmenu/tab_settings.lua:25
msgid "Yes"
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua:28
msgid "No of course not!"
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua:41
msgid "Modmgr: failed to delete \"$1\""
msgstr ""

#: builtin/mainmenu/dlg_delete_mod.lua:45
msgid "Modmgr: invalid modpath \"$1\""
msgstr ""

#: builtin/mainmenu/dlg_delete_world.lua:24
msgid "Delete World \"$1\"?"
msgstr ""

#: builtin/mainmenu/dlg_delete_world.lua:26
msgid "No"
msgstr ""

#: builtin/mainmenu/dlg_rename_modpack.lua:26
msgid "Rename Modpack:"
msgstr ""

#: builtin/mainmenu/dlg_rename_modpack.lua:31 src/keycode.cpp:228
msgid "Accept"
msgstr ""

#: builtin/mainmenu/modmgr.lua:342
msgid "Install Mod: file: \"$1\""
msgstr ""

#: builtin/mainmenu/modmgr.lua:343
msgid ""
"\n"
"Install Mod: unsupported filetype \"$1\" or broken archive"
msgstr ""

#: builtin/mainmenu/modmgr.lua:363
msgid "Failed to install $1 to $2"
msgstr ""

#: builtin/mainmenu/modmgr.lua:366
msgid "Install Mod: unable to find suitable foldername for modpack $1"
msgstr ""

#: builtin/mainmenu/modmgr.lua:386
msgid "Install Mod: unable to find real modname for: $1"
msgstr ""

#: builtin/mainmenu/store.lua:88
msgid "Unsorted"
msgstr ""

#: builtin/mainmenu/store.lua:99 builtin/mainmenu/store.lua:584
msgid "Search"
msgstr ""

#: builtin/mainmenu/store.lua:125
msgid "Downloading"
msgstr ""

#: builtin/mainmenu/store.lua:127
msgid "please wait..."
msgstr ""

#: builtin/mainmenu/store.lua:159
msgid "Successfully installed:"
msgstr ""

#: builtin/mainmenu/store.lua:163
msgid "Shortname:"
msgstr ""

#: builtin/mainmenu/store.lua:167 src/guiFormSpecMenu.cpp:2866
msgid "ok"
msgstr ""

#: builtin/mainmenu/store.lua:476
msgid "Rating"
msgstr ""

#: builtin/mainmenu/store.lua:501
msgid "re-Install"
msgstr ""

#: builtin/mainmenu/store.lua:503
msgid "Install"
msgstr ""

#: builtin/mainmenu/store.lua:522
msgid "Close store"
msgstr ""

#: builtin/mainmenu/store.lua:530
msgid "Page $1 of $2"
msgstr ""

#: builtin/mainmenu/tab_credits.lua:22
msgid "Credits"
msgstr ""

#: builtin/mainmenu/tab_credits.lua:29
msgid "Core Developers"
msgstr ""

#: builtin/mainmenu/tab_credits.lua:43
msgid "Active Contributors"
msgstr ""

#: builtin/mainmenu/tab_credits.lua:48
msgid "Previous Contributors"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:30
msgid "Installed Mods:"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:39
msgid "Online mod repository"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:78
msgid "No mod description available"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:82
msgid "Mod information:"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:93
msgid "Rename"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:95
msgid "Uninstall selected modpack"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:106
msgid "Uninstall selected mod"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:121
msgid "Select Mod File:"
msgstr ""

#: builtin/mainmenu/tab_mods.lua:165
msgid "Mods"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua:23
msgid "Address/Port"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua:24 builtin/mainmenu/tab_server.lua:37
#: builtin/mainmenu/tab_simple_main.lua:25
msgid "Name/Password"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua:29
#: builtin/mainmenu/tab_simple_main.lua:30
msgid "Public Serverlist"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua:34 builtin/mainmenu/tab_server.lua:26
#: builtin/mainmenu/tab_singleplayer.lua:85 src/keycode.cpp:230
msgid "Delete"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua:38
#: builtin/mainmenu/tab_simple_main.lua:34
msgid "Connect"
msgstr ""

#: builtin/mainmenu/tab_multiplayer.lua:252
msgid "Client"
msgstr ""

#: builtin/mainmenu/tab_server.lua:27 builtin/mainmenu/tab_singleplayer.lua:86
msgid "New"
msgstr ""

#: builtin/mainmenu/tab_server.lua:28 builtin/mainmenu/tab_singleplayer.lua:87
msgid "Configure"
msgstr ""

#: builtin/mainmenu/tab_server.lua:29
msgid "Start Game"
msgstr ""

#: builtin/mainmenu/tab_server.lua:30 builtin/mainmenu/tab_singleplayer.lua:89
msgid "Select World:"
msgstr ""

#: builtin/mainmenu/tab_server.lua:31 builtin/mainmenu/tab_simple_main.lua:63
#: builtin/mainmenu/tab_singleplayer.lua:90
msgid "Creative Mode"
msgstr ""

#: builtin/mainmenu/tab_server.lua:33 builtin/mainmenu/tab_simple_main.lua:65
#: builtin/mainmenu/tab_singleplayer.lua:92
msgid "Enable Damage"
msgstr ""

#: builtin/mainmenu/tab_server.lua:35
msgid "Public"
msgstr ""

#: builtin/mainmenu/tab_server.lua:45
msgid "Bind Address"
msgstr ""

#: builtin/mainmenu/tab_server.lua:47
msgid "Port"
msgstr ""

#: builtin/mainmenu/tab_server.lua:51
msgid "Server Port"
msgstr ""

#: builtin/mainmenu/tab_server.lua:174
msgid "Server"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:23
msgid "Are you sure to reset your singleplayer world?"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:27
msgid "No!!!"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:134
msgid "Smooth Lighting"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:136
msgid "Enable Particles"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:138
msgid "3D Clouds"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:140
msgid "Fancy Trees"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:142
msgid "Opaque Water"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:144
msgid "Connected Glass"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:149
msgid "Restart minetest for driver change to take effect"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:151
msgid "Mip-Mapping"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:153
msgid "Anisotropic Filtering"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:155
msgid "Bi-Linear Filtering"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:157
msgid "Tri-Linear Filtering"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:160
msgid "Shaders"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:164
msgid "Change keys"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:167
msgid "Reset singleplayer world"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:171
msgid "GUI scale factor"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:175
msgid "Scaling factor applied to menu elements: "
msgstr ""

#: builtin/mainmenu/tab_settings.lua:181
msgid "Touch free target"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:187
msgid "Touchthreshold (px)"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:194 builtin/mainmenu/tab_settings.lua:208
msgid "Bumpmapping"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:196 builtin/mainmenu/tab_settings.lua:209
msgid "Generate Normalmaps"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:198 builtin/mainmenu/tab_settings.lua:210
msgid "Parallax Occlusion"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:200 builtin/mainmenu/tab_settings.lua:211
msgid "Waving Water"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:202 builtin/mainmenu/tab_settings.lua:212
msgid "Waving Leaves"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:204 builtin/mainmenu/tab_settings.lua:213
msgid "Waving Plants"
msgstr ""

#: builtin/mainmenu/tab_settings.lua:255
msgid "To enable shaders the OpenGL driver needs to be used."
msgstr ""

#: builtin/mainmenu/tab_settings.lua:330
msgid "Settings"
msgstr ""

#: builtin/mainmenu/tab_simple_main.lua:67
msgid "Fly mode"
msgstr ""

#: builtin/mainmenu/tab_simple_main.lua:71
msgid "Start Singleplayer"
msgstr ""

#: builtin/mainmenu/tab_simple_main.lua:72
msgid "Config mods"
msgstr ""

#: builtin/mainmenu/tab_simple_main.lua:191
msgid "Main"
msgstr ""

#: builtin/mainmenu/tab_singleplayer.lua:88 src/keycode.cpp:249
msgid "Play"
msgstr ""

#: builtin/mainmenu/tab_singleplayer.lua:224
msgid "Singleplayer"
msgstr ""

#: builtin/mainmenu/tab_texturepacks.lua:49
msgid "Select texture pack:"
msgstr ""

#: builtin/mainmenu/tab_texturepacks.lua:69
msgid "No information available"
msgstr ""

#: builtin/mainmenu/tab_texturepacks.lua:114
msgid "Texturepacks"
msgstr ""

#: src/client.cpp:2726
msgid "Item textures..."
msgstr ""

#: src/fontengine.cpp:70 src/fontengine.cpp:226
msgid "needs_fallback_font"
msgstr ""

#: src/game.cpp:1063
msgid "Respawn"
msgstr ""

#: src/game.cpp:2250
msgid "Item definitions..."
msgstr ""

#: src/game.cpp:2255
msgid "Node definitions..."
msgstr ""

#: src/game.cpp:2262
msgid "Media..."
msgstr ""

#: src/game.cpp:2267
msgid " KB/s"
msgstr ""

#: src/game.cpp:2271
msgid " MB/s"
msgstr ""

#: src/game.cpp:4220
msgid ""
"\n"
"Check debug.txt for details."
msgstr ""

#: src/guiFormSpecMenu.cpp:2055
msgid "Proceed"
msgstr ""

#: src/guiFormSpecMenu.cpp:2846
msgid "Enter "
msgstr ""

#: src/guiKeyChangeMenu.cpp:125
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
msgstr ""

#: src/guiKeyChangeMenu.cpp:165
msgid "\"Use\" = climb down"
msgstr ""

#: src/guiKeyChangeMenu.cpp:180
msgid "Double tap \"jump\" to toggle fly"
msgstr ""

#: src/guiKeyChangeMenu.cpp:296
msgid "Key already in use"
msgstr ""

#: src/guiKeyChangeMenu.cpp:371
msgid "press key"
msgstr ""

#: src/guiKeyChangeMenu.cpp:397
msgid "Forward"
msgstr ""

#: src/guiKeyChangeMenu.cpp:398
msgid "Backward"
msgstr ""

#: src/guiKeyChangeMenu.cpp:399 src/keycode.cpp:229
msgid "Left"
msgstr ""

#: src/guiKeyChangeMenu.cpp:400 src/keycode.cpp:229
msgid "Right"
msgstr ""

#: src/guiKeyChangeMenu.cpp:401
msgid "Use"
msgstr ""

#: src/guiKeyChangeMenu.cpp:402
msgid "Jump"
msgstr ""

#: src/guiKeyChangeMenu.cpp:403
msgid "Sneak"
msgstr ""

#: src/guiKeyChangeMenu.cpp:404
msgid "Drop"
msgstr ""

#: src/guiKeyChangeMenu.cpp:405
msgid "Inventory"
msgstr ""

#: src/guiKeyChangeMenu.cpp:406
msgid "Chat"
msgstr ""

#: src/guiKeyChangeMenu.cpp:407
msgid "Command"
msgstr ""

#: src/guiKeyChangeMenu.cpp:408
msgid "Console"
msgstr ""

#: src/guiKeyChangeMenu.cpp:409
msgid "Toggle fly"
msgstr ""

#: src/guiKeyChangeMenu.cpp:410
msgid "Toggle fast"
msgstr ""

#: src/guiKeyChangeMenu.cpp:411
msgid "Toggle noclip"
msgstr ""

#: src/guiKeyChangeMenu.cpp:412
msgid "Range select"
msgstr ""

#: src/guiKeyChangeMenu.cpp:413
msgid "Print stacks"
msgstr ""

#: src/guiPasswordChange.cpp:106
msgid "Old Password"
msgstr ""

#: src/guiPasswordChange.cpp:122
msgid "New Password"
msgstr ""

#: src/guiPasswordChange.cpp:137
msgid "Confirm Password"
msgstr ""

#: src/guiPasswordChange.cpp:153
msgid "Change"
msgstr ""

#: src/guiPasswordChange.cpp:162
msgid "Passwords do not match!"
msgstr ""

#: src/guiVolumeChange.cpp:106
msgid "Sound Volume: "
msgstr ""

#: src/guiVolumeChange.cpp:120
msgid "Exit"
msgstr ""

#: src/keycode.cpp:224
msgid "Left Button"
msgstr ""

#: src/keycode.cpp:224
msgid "Middle Button"
msgstr ""

#: src/keycode.cpp:224
msgid "Right Button"
msgstr ""

#: src/keycode.cpp:224
msgid "X Button 1"
msgstr ""

#: src/keycode.cpp:225
msgid "Back"
msgstr ""

#: src/keycode.cpp:225
msgid "Clear"
msgstr ""

#: src/keycode.cpp:225
msgid "Return"
msgstr ""

#: src/keycode.cpp:225
msgid "Tab"
msgstr ""

#: src/keycode.cpp:225
msgid "X Button 2"
msgstr ""

#: src/keycode.cpp:226
msgid "Capital"
msgstr ""

#: src/keycode.cpp:226
msgid "Control"
msgstr ""

#: src/keycode.cpp:226
msgid "Kana"
msgstr ""

#: src/keycode.cpp:226
msgid "Menu"
msgstr ""

#: src/keycode.cpp:226
msgid "Pause"
msgstr ""

#: src/keycode.cpp:226
msgid "Shift"
msgstr ""

#: src/keycode.cpp:227
msgid "Convert"
msgstr ""

#: src/keycode.cpp:227
msgid "Escape"
msgstr ""

#: src/keycode.cpp:227
msgid "Final"
msgstr ""

#: src/keycode.cpp:227
msgid "Junja"
msgstr ""

#: src/keycode.cpp:227
msgid "Kanji"
msgstr ""

#: src/keycode.cpp:227
msgid "Nonconvert"
msgstr ""

#: src/keycode.cpp:228
msgid "End"
msgstr ""

#: src/keycode.cpp:228
msgid "Home"
msgstr ""

#: src/keycode.cpp:228
msgid "Mode Change"
msgstr ""

#: src/keycode.cpp:228
msgid "Next"
msgstr ""

#: src/keycode.cpp:228
msgid "Prior"
msgstr ""

#: src/keycode.cpp:228
msgid "Space"
msgstr ""

#: src/keycode.cpp:229
msgid "Down"
msgstr ""

#: src/keycode.cpp:229
msgid "Execute"
msgstr ""

#: src/keycode.cpp:229
msgid "Print"
msgstr ""

#: src/keycode.cpp:229
msgid "Select"
msgstr ""

#: src/keycode.cpp:229
msgid "Up"
msgstr ""

#: src/keycode.cpp:230
msgid "Help"
msgstr ""

#: src/keycode.cpp:230
msgid "Insert"
msgstr ""

#: src/keycode.cpp:230
msgid "Snapshot"
msgstr ""

#: src/keycode.cpp:233
msgid "Left Windows"
msgstr ""