Compare commits
557 Commits
0.4.4
...
0.4.7-MSVC
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
773471750d | ||
|
|
6b3e553dd5 | ||
|
|
bfa608b85e | ||
|
|
7cb5217255 | ||
|
|
4f6bec19bc | ||
|
|
649dca4d16 | ||
|
|
601ab85226 | ||
|
|
e988df0fbd | ||
|
|
b89c79e905 | ||
|
|
9fe74a34ea | ||
|
|
64befefcfc | ||
|
|
6f9d384311 | ||
|
|
c25102a4f7 | ||
|
|
c893958bb1 | ||
|
|
db9c86d6c1 | ||
|
|
1dfc2e02b3 | ||
|
|
ec039a3d12 | ||
|
|
77acdfed43 | ||
|
|
926a47f35b | ||
|
|
df2f4168e5 | ||
|
|
fe560d81e7 | ||
|
|
64627817fc | ||
|
|
a61aa6690b | ||
|
|
7721948a2f | ||
|
|
6b2c46c431 | ||
|
|
83f1d7cd9e | ||
|
|
13f7049d84 | ||
|
|
503e61cf2b | ||
|
|
efc75db764 | ||
|
|
f62ddf9022 | ||
|
|
96fe1de832 | ||
|
|
730d316efe | ||
|
|
e464f19356 | ||
|
|
ab43377577 | ||
|
|
865f380c91 | ||
|
|
3abbe7efd1 | ||
|
|
7f6e9e9540 | ||
|
|
4a9fe1a1d5 | ||
|
|
e57dc4ef18 | ||
|
|
c67f72890c | ||
|
|
5e80df46b8 | ||
|
|
c135e9c7d4 | ||
|
|
1ba1fb42a4 | ||
|
|
127c488355 | ||
|
|
981c6c9bf2 | ||
|
|
d00e8bd31a | ||
|
|
55a97f4605 | ||
|
|
3e2efdf18a | ||
|
|
bc66f46323 | ||
|
|
cc92e45b78 | ||
|
|
b2253e5b42 | ||
|
|
dcd0b63f64 | ||
|
|
b2577b1f27 | ||
|
|
93474c4218 | ||
|
|
f577facf79 | ||
|
|
45fcc9de29 | ||
|
|
b24f7a4d13 | ||
|
|
6074163bf3 | ||
|
|
b76ec317c9 | ||
|
|
714ecc5e27 | ||
|
|
9397b5de08 | ||
|
|
1369503aba | ||
|
|
fedf644635 | ||
|
|
f9b5771274 | ||
|
|
8512cd967d | ||
|
|
94eb370710 | ||
|
|
587e7b299b | ||
|
|
d5ca3b721e | ||
|
|
27f5ff950e | ||
|
|
4a95c37e14 | ||
|
|
5d9ab86adf | ||
|
|
e0564d5de0 | ||
|
|
be96fa2fb8 | ||
|
|
726dcaacb6 | ||
|
|
70190624c6 | ||
|
|
71e5a466a6 | ||
|
|
822723c246 | ||
|
|
bda62bd3bf | ||
|
|
efc9329033 | ||
|
|
2c09e8a84c | ||
|
|
9575b0a2a8 | ||
|
|
6911a7d279 | ||
|
|
5068cb40ce | ||
|
|
e5781b5e34 | ||
|
|
782d06be46 | ||
|
|
81c863ac4d | ||
|
|
d859ad7ed7 | ||
|
|
ee1155fe6d | ||
|
|
3b1c3ac678 | ||
|
|
3332f606ed | ||
|
|
f00cee75c1 | ||
|
|
0913287578 | ||
|
|
7b41f54411 | ||
|
|
03ab6aa24c | ||
|
|
9a559eb8cf | ||
|
|
58f036ad1d | ||
|
|
098692ef26 | ||
|
|
a888b232fe | ||
|
|
b88aa81da7 | ||
|
|
8d5b400d09 | ||
|
|
969d2b3eb1 | ||
|
|
a031a15487 | ||
|
|
777ac58f85 | ||
|
|
be4cc306a5 | ||
|
|
0deb68d81c | ||
|
|
b75505e6b2 | ||
|
|
ee8067f7cf | ||
|
|
2cf76f6f1b | ||
|
|
80874391b8 | ||
|
|
2708482f1b | ||
|
|
084be3599a | ||
|
|
b28734c82c | ||
|
|
d07000ed1d | ||
|
|
647f1cbfe5 | ||
|
|
2b0d1710a5 | ||
|
|
97cddd1b96 | ||
|
|
f1f2004cb9 | ||
|
|
289c4a7776 | ||
|
|
97790c7711 | ||
|
|
149b51967d | ||
|
|
898a4e441f | ||
|
|
a4183994a4 | ||
|
|
c824abd7b2 | ||
|
|
d7395cd2ab | ||
|
|
8767c78169 | ||
|
|
0fb9567f13 | ||
|
|
43a388ec53 | ||
|
|
d3f0ce6224 | ||
|
|
d83602d98e | ||
|
|
c33b993397 | ||
|
|
88ffb3f73b | ||
|
|
386108f982 | ||
|
|
ddd2b18321 | ||
|
|
bc3072b35e | ||
|
|
e9a4e98cb9 | ||
|
|
53da8bd1c8 | ||
|
|
625a4c2e66 | ||
|
|
e703c5b81f | ||
|
|
33dd267fd9 | ||
|
|
a699bdb7a1 | ||
|
|
770305e28d | ||
|
|
36747794ab | ||
|
|
c03c296dc7 | ||
|
|
4a9b8aae5e | ||
|
|
3d4d0cb574 | ||
|
|
9894167bbf | ||
|
|
7c37b1891a | ||
|
|
418c2e7a44 | ||
|
|
4117ab473b | ||
|
|
93d36e88f9 | ||
|
|
b11834605b | ||
|
|
58ded5cd27 | ||
|
|
bc6f3e4e00 | ||
|
|
37e6d1356b | ||
|
|
daddd37706 | ||
|
|
14ba94ad6a | ||
|
|
03868ff8e1 | ||
|
|
527deb947c | ||
|
|
c45c530f74 | ||
|
|
47f60aebcd | ||
|
|
852f768a75 | ||
|
|
9e6376bd95 | ||
|
|
e385af7cc0 | ||
|
|
220c4f1142 | ||
|
|
0a376c1d50 | ||
|
|
b83e9225b7 | ||
|
|
ca8c1b6134 | ||
|
|
a71bfb4b60 | ||
|
|
e60eb32050 | ||
|
|
666aae3593 | ||
|
|
49f6e347f0 | ||
|
|
1f42479e0c | ||
|
|
9e0bb94460 | ||
|
|
ce901f4c4c | ||
|
|
7cd5eb4c77 | ||
|
|
17cfb1850d | ||
|
|
e7f5cdf9d4 | ||
|
|
dda2071cc0 | ||
|
|
6e4fdf37ba | ||
|
|
7d002b60ff | ||
|
|
04c3b17c78 | ||
|
|
58fd39de35 | ||
|
|
9449026839 | ||
|
|
e7247c1a66 | ||
|
|
0d26bb36af | ||
|
|
10502b59bc | ||
|
|
abe74ea5ea | ||
|
|
98182f6097 | ||
|
|
cd27c8ef5d | ||
|
|
2bdff11d54 | ||
|
|
7a32698312 | ||
|
|
5743ef4e64 | ||
|
|
3b684d306c | ||
|
|
e1146396bc | ||
|
|
7c0e707cf1 | ||
|
|
feb7de91ec | ||
|
|
4468ea84e6 | ||
|
|
96e2931c5c | ||
|
|
5961106f9f | ||
|
|
fbf76184f0 | ||
|
|
8ec3fc35c6 | ||
|
|
d50b2ede92 | ||
|
|
453d79e3a2 | ||
|
|
046534e14b | ||
|
|
120f02e20b | ||
|
|
becd8c03fd | ||
|
|
69367aa799 | ||
|
|
97f0bb0342 | ||
|
|
1586cdac53 | ||
|
|
1bae82e6c4 | ||
|
|
2fb0e547a0 | ||
|
|
1a5dcfd0c8 | ||
|
|
e38d65f8d1 | ||
|
|
33052abf42 | ||
|
|
b0e6806077 | ||
|
|
76b86c0368 | ||
|
|
c5a8448c41 | ||
|
|
2a0badf2d5 | ||
|
|
6b8435cf8c | ||
|
|
c1bf6f9f7a | ||
|
|
f85c1165c2 | ||
|
|
37acadc2af | ||
|
|
82709549ff | ||
|
|
6e96bc98de | ||
|
|
60aaf65b10 | ||
|
|
7d83fefd7f | ||
|
|
2bb559be82 | ||
|
|
d27f57e48f | ||
|
|
e59d971e7b | ||
|
|
025f4d28c1 | ||
|
|
0ed34e6780 | ||
|
|
9ff8012655 | ||
|
|
7d036e3ab2 | ||
|
|
8f57246620 | ||
|
|
2985dc4fc8 | ||
|
|
dd0b8c3de5 | ||
|
|
7dd07cc7c5 | ||
|
|
8d4b768297 | ||
|
|
35ed5198fe | ||
|
|
624461c6c6 | ||
|
|
319662c0ed | ||
|
|
5b597a6bfa | ||
|
|
68fb68a83b | ||
|
|
a2e5706661 | ||
|
|
7d3b3890b5 | ||
|
|
96387ee88a | ||
|
|
23590a8383 | ||
|
|
923a97b108 | ||
|
|
c517215bcf | ||
|
|
414f0275cf | ||
|
|
04414a963c | ||
|
|
02d8df94a8 | ||
|
|
a0566270d9 | ||
|
|
0d83bdc3aa | ||
|
|
062a140b9c | ||
|
|
3e9ed6c1c7 | ||
|
|
3983019fd8 | ||
|
|
3ec3aca78d | ||
|
|
1aa50b1362 | ||
|
|
e17ae475cf | ||
|
|
6cf581e360 | ||
|
|
177ca4f4d5 | ||
|
|
16c11eb4a3 | ||
|
|
df49b93877 | ||
|
|
5e7e0347cd | ||
|
|
7d9329ecfe | ||
|
|
3640c8c051 | ||
|
|
02cbb58107 | ||
|
|
5b854f95d2 | ||
|
|
b0f39da131 | ||
|
|
dc54af7a89 | ||
|
|
d01b74d00a | ||
|
|
a782a88913 | ||
|
|
8800896824 | ||
|
|
880d9e53c3 | ||
|
|
26cad481d0 | ||
|
|
8d13967aa3 | ||
|
|
650d706d35 | ||
|
|
0e07a7157f | ||
|
|
423d69bd40 | ||
|
|
6767ed74f8 | ||
|
|
57cbb8bfd8 | ||
|
|
f70378f7f5 | ||
|
|
e1ff5b1361 | ||
|
|
ab57fdac44 | ||
|
|
dacc8cdb3a | ||
|
|
ca7043e52d | ||
|
|
6f8d40ef5d | ||
|
|
2318d19bb4 | ||
|
|
f98d0433f9 | ||
|
|
34b185e955 | ||
|
|
b6dcadeb79 | ||
|
|
c2250d95c4 | ||
|
|
adc52f3f3c | ||
|
|
0a568a6037 | ||
|
|
0747c285cd | ||
|
|
306d1ab866 | ||
|
|
9b5bb5c755 | ||
|
|
450e7ef0c5 | ||
|
|
8f0d29f931 | ||
|
|
d6026a5fee | ||
|
|
939397dd6e | ||
|
|
d207d359d1 | ||
|
|
5f88cd98ad | ||
|
|
7f51b2da28 | ||
|
|
c00c8832c6 | ||
|
|
5a9fd8f433 | ||
|
|
fc5d2074b9 | ||
|
|
10c03e1a9d | ||
|
|
67228160ae | ||
|
|
165498cecf | ||
|
|
e3badd7062 | ||
|
|
6823ce99a7 | ||
|
|
1f1ad9fd23 | ||
|
|
f5ab056b38 | ||
|
|
16c031be77 | ||
|
|
350596b94f | ||
|
|
66750dc88e | ||
|
|
d10223254a | ||
|
|
eb90c3d92d | ||
|
|
6a1670dbc3 | ||
|
|
e204bedf1d | ||
|
|
650e932ddf | ||
|
|
b7def0fcf4 | ||
|
|
e6bf6950eb | ||
|
|
17bbf4d3f6 | ||
|
|
57f5dc5dcf | ||
|
|
aa77ee66c5 | ||
|
|
b9512cab1b | ||
|
|
dd8593f2d6 | ||
|
|
5af8acfa6e | ||
|
|
ba78194636 | ||
|
|
bdbdeab005 | ||
|
|
038529c763 | ||
|
|
55097e1985 | ||
|
|
c61a2ef44f | ||
|
|
5917e86297 | ||
|
|
75a8312f4e | ||
|
|
48b999a8dd | ||
|
|
3823878305 | ||
|
|
fceb465fc9 | ||
|
|
72abd5a88e | ||
|
|
066b0314b1 | ||
|
|
22e186b4aa | ||
|
|
372acf7b8e | ||
|
|
5b16271bd6 | ||
|
|
8de315738b | ||
|
|
13504b6adc | ||
|
|
f43b90da38 | ||
|
|
1f11cd09d5 | ||
|
|
82e9faf2a9 | ||
|
|
7caa28a6aa | ||
|
|
0183bdad04 | ||
|
|
d31f07bd4b | ||
|
|
979ca23f1e | ||
|
|
9b5f182642 | ||
|
|
f00d136ab1 | ||
|
|
28c50c16cd | ||
|
|
5bd50a2d90 | ||
|
|
60e6284f30 | ||
|
|
67c59645ec | ||
|
|
5ec5b1cbd6 | ||
|
|
76217939e0 | ||
|
|
206ec36c8e | ||
|
|
3b7a445cd7 | ||
|
|
b9d8e59bbf | ||
|
|
6d0ea26c2d | ||
|
|
92c7bd02fb | ||
|
|
497ff1ecd6 | ||
|
|
22b0039ad4 | ||
|
|
b90e431fc7 | ||
|
|
9bd76f2972 | ||
|
|
f0d70d4e86 | ||
|
|
6b9906687b | ||
|
|
bc2e9dbaf2 | ||
|
|
4d73d99ebc | ||
|
|
a3ad84feef | ||
|
|
f9a8efb992 | ||
|
|
42eb8c8e3b | ||
|
|
7f240aea1e | ||
|
|
c19fc00b04 | ||
|
|
ee07c3f7cf | ||
|
|
724b0a0162 | ||
|
|
ef6b8bee07 | ||
|
|
b29834ab02 | ||
|
|
89b88917a8 | ||
|
|
93fc957036 | ||
|
|
164318bd97 | ||
|
|
fc61c8809b | ||
|
|
365c169b43 | ||
|
|
214a8b4597 | ||
|
|
d2ff536a3b | ||
|
|
8d920dd09b | ||
|
|
c88d89d26e | ||
|
|
4035bf3259 | ||
|
|
65cb318cd9 | ||
|
|
30b9a4d6b4 | ||
|
|
df3c925b3c | ||
|
|
86b906d015 | ||
|
|
b1019a88ba | ||
|
|
8e69b9cb26 | ||
|
|
9f1ae4084d | ||
|
|
2c362badd4 | ||
|
|
6b1420a58a | ||
|
|
1cda39d5bb | ||
|
|
32552fede5 | ||
|
|
6c3829c2b5 | ||
|
|
ea044adf1a | ||
|
|
47f38d2316 | ||
|
|
f944ff233d | ||
|
|
a27857e938 | ||
|
|
0cda2d5193 | ||
|
|
65fa26e93e | ||
|
|
5d4f2f1528 | ||
|
|
f8d0b7d651 | ||
|
|
7895376821 | ||
|
|
aca501df8c | ||
|
|
06ec9e2e1a | ||
|
|
f9e28285ac | ||
|
|
90a8aa1444 | ||
|
|
9a39548367 | ||
|
|
db5df028b3 | ||
|
|
7a8094a9c0 | ||
|
|
10b12cc86e | ||
|
|
9b2044351f | ||
|
|
86b33c4922 | ||
|
|
97260d09a8 | ||
|
|
c4e1a01349 | ||
|
|
f148ae58c3 | ||
|
|
bd55b9cc0f | ||
|
|
77dbad72f7 | ||
|
|
75fe948bf7 | ||
|
|
a73905401a | ||
|
|
8e5b33d359 | ||
|
|
4ba6387980 | ||
|
|
b19726db6c | ||
|
|
c48c6d188c | ||
|
|
f6e0e1f5d7 | ||
|
|
20031a1008 | ||
|
|
a933cb31d4 | ||
|
|
2868676693 | ||
|
|
366724f6bf | ||
|
|
c59a9720fd | ||
|
|
2dde1d70ec | ||
|
|
1d248cce30 | ||
|
|
c33654c21a | ||
|
|
5721ff3837 | ||
|
|
e215c9a84f | ||
|
|
e5cdf486aa | ||
|
|
820d8a920b | ||
|
|
0f6af98d09 | ||
|
|
6424c5b698 | ||
|
|
eed6e04ed1 | ||
|
|
9ebf1fd3b7 | ||
|
|
fb12a82d65 | ||
|
|
c8cdc80fd6 | ||
|
|
33cb3d713c | ||
|
|
0addefad05 | ||
|
|
3bb89bb155 | ||
|
|
9d6caa4e5f | ||
|
|
12472a44d4 | ||
|
|
cbbb6447bf | ||
|
|
154a8bb466 | ||
|
|
d1be82d97c | ||
|
|
8e2a3c7279 | ||
|
|
ebe2f704d1 | ||
|
|
63c27766ef | ||
|
|
6912f65cd7 | ||
|
|
28f5b55643 | ||
|
|
c1fee78e85 | ||
|
|
d6f0bf9eef | ||
|
|
bcc0ca93d4 | ||
|
|
eb2a8fe8b8 | ||
|
|
13358c29b8 | ||
|
|
aaee2786a7 | ||
|
|
9d69b38583 | ||
|
|
69ba485415 | ||
|
|
91e88196c7 | ||
|
|
035933f806 | ||
|
|
1163fdfa11 | ||
|
|
0a27e81704 | ||
|
|
c4af909ac8 | ||
|
|
f099861245 | ||
|
|
f214940c96 | ||
|
|
26a0efae23 | ||
|
|
e237c1d07d | ||
|
|
33be32f278 | ||
|
|
297186b834 | ||
|
|
5696ee8421 | ||
|
|
d8a0efa6af | ||
|
|
b52dfbe510 | ||
|
|
b87cd8c58b | ||
|
|
318669327e | ||
|
|
278d93a3ee | ||
|
|
b55fb4f2f6 | ||
|
|
1cd8351054 | ||
|
|
631a835e07 | ||
|
|
45cf32afc5 | ||
|
|
cde3d38766 | ||
|
|
d5029958b9 | ||
|
|
bddd5f2b98 | ||
|
|
96898c1794 | ||
|
|
11afcbff69 | ||
|
|
736b386554 | ||
|
|
a785522194 | ||
|
|
8e50e256e6 | ||
|
|
9b3287b865 | ||
|
|
14657bd29a | ||
|
|
6af8a34d91 | ||
|
|
6f93c01af9 | ||
|
|
12e9f3d010 | ||
|
|
c691d619c2 | ||
|
|
61f5ca6b16 | ||
|
|
443bbe6a78 | ||
|
|
183c81b5ec | ||
|
|
076f13cc01 | ||
|
|
8eb717d4d0 | ||
|
|
8aa190606e | ||
|
|
0437abbffb | ||
|
|
0b1d09ff4f | ||
|
|
8b75736c6f | ||
|
|
099d7ff2ad | ||
|
|
46d431e7c3 | ||
|
|
615fd498bc | ||
|
|
bc879a1453 | ||
|
|
82fd83fd12 | ||
|
|
b50da63852 | ||
|
|
5bc14e2fe4 | ||
|
|
d2b1210376 | ||
|
|
a27cdf16f4 | ||
|
|
5a13c49492 | ||
|
|
8493979d86 | ||
|
|
2c472a66d1 | ||
|
|
69bd803a32 | ||
|
|
b7de864f2e | ||
|
|
da9707950e | ||
|
|
36f03a7f4a | ||
|
|
5d18dc358b | ||
|
|
b40e599866 | ||
|
|
45029117f5 | ||
|
|
578ece8dd0 | ||
|
|
896e1a30b0 | ||
|
|
0f1d2c127c | ||
|
|
d880a5ec0c | ||
|
|
145e301269 | ||
|
|
c4172934e5 | ||
|
|
40dac4cde4 | ||
|
|
05b58501f2 | ||
|
|
29c17c14f1 | ||
|
|
f4ed37ec6f | ||
|
|
e9006f904c | ||
|
|
e301bc2d77 | ||
|
|
3578e1d4a7 | ||
|
|
aa46e5c5e7 | ||
|
|
9786202b08 | ||
|
|
52ba413185 | ||
|
|
1d13d106dd |
22
.gitignore
vendored
22
.gitignore
vendored
@@ -4,13 +4,16 @@
|
||||
*bak*
|
||||
tags
|
||||
*.vim
|
||||
*.orig
|
||||
*.rej
|
||||
|
||||
## Non-static Minetest directories
|
||||
/bin/
|
||||
/games/*
|
||||
!/games/minimal/
|
||||
/cache/
|
||||
/textures/
|
||||
/textures/*
|
||||
!/textures/base/
|
||||
/sounds/
|
||||
/mods/*
|
||||
!/mods/minetest/
|
||||
@@ -29,17 +32,34 @@ src/CMakeFiles/*
|
||||
src/Makefile
|
||||
src/cmake_config.h
|
||||
src/cmake_install.cmake
|
||||
src/script/CMakeFiles/*
|
||||
src/script/common/CMakeFiles/*
|
||||
src/script/cpp_api/CMakeFiles/*
|
||||
src/script/lua_api/CMakeFiles/*
|
||||
src/util/CMakeFiles/*
|
||||
src/jthread/CMakeFiles/*
|
||||
src/jthread/Makefile
|
||||
src/jthread/cmake_config.h
|
||||
src/jthread/cmake_install.cmake
|
||||
src/jthread/libjthread.a
|
||||
src/json/libjson.a
|
||||
src/lua/build/
|
||||
src/lua/CMakeFiles/
|
||||
src/cguittfont/CMakeFiles/
|
||||
src/cguittfont/libcguittfont.a
|
||||
src/cguittfont/cmake_install.cmake
|
||||
src/cguittfont/Makefile
|
||||
src/json/CMakeFiles/
|
||||
src/json/libjsoncpp.a
|
||||
src/sqlite/CMakeFiles/*
|
||||
src/sqlite/libsqlite3.a
|
||||
CMakeCache.txt
|
||||
CPackConfig.cmake
|
||||
CPackSourceConfig.cmake
|
||||
Makefile
|
||||
cmake_install.cmake
|
||||
locale/
|
||||
*.cbp
|
||||
*.layout
|
||||
*.o
|
||||
|
||||
|
||||
10
.travis.yml
Normal file
10
.travis.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
language: cpp
|
||||
compiler:
|
||||
- gcc
|
||||
- clang
|
||||
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
|
||||
@@ -12,7 +12,7 @@ set(VERSION_EXTRA "" CACHE STRING "Stuff to append to version string")
|
||||
# Also remember to set PROTOCOL_VERSION in clientserver.h when releasing
|
||||
set(VERSION_MAJOR 0)
|
||||
set(VERSION_MINOR 4)
|
||||
set(VERSION_PATCH 4)
|
||||
set(VERSION_PATCH 7)
|
||||
if(VERSION_EXTRA)
|
||||
set(VERSION_PATCH ${VERSION_PATCH}-${VERSION_EXTRA})
|
||||
endif()
|
||||
@@ -85,7 +85,7 @@ elseif(UNIX) # Linux, BSD etc
|
||||
set(EXAMPLE_CONF_DIR ${DOCDIR})
|
||||
set(XDG_APPS_DIR "${CMAKE_INSTALL_PREFIX}/share/applications")
|
||||
set(ICONDIR "${CMAKE_INSTALL_PREFIX}/share/icons")
|
||||
set(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale")
|
||||
set(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/locale")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -138,16 +138,19 @@ if(EXISTS ${MINETEST_GAME_SOURCE} AND IS_DIRECTORY ${MINETEST_GAME_SOURCE})
|
||||
install(FILES ${MINETEST_GAME_SOURCE}/game.conf DESTINATION "${SHAREDIR}/games/minetest_game/")
|
||||
install(FILES ${MINETEST_GAME_SOURCE}/README.txt DESTINATION "${SHAREDIR}/games/minetest_game/")
|
||||
install(DIRECTORY ${MINETEST_GAME_SOURCE}/mods DESTINATION "${SHAREDIR}/games/minetest_game")
|
||||
install(DIRECTORY ${MINETEST_GAME_SOURCE}/menu DESTINATION "${SHAREDIR}/games/minetest_game")
|
||||
endif()
|
||||
if(BUILD_CLIENT)
|
||||
#install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/sounds/base/pack" DESTINATION "${SHAREDIR}/sounds/base")
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/textures/base/pack" DESTINATION "${SHAREDIR}/textures/base")
|
||||
endif()
|
||||
if(RUN_IN_PLACE)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/mods/minetest/mods_here.txt" DESTINATION "${SHAREDIR}/mods/minetest")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/mods/mods_here.txt" DESTINATION "${SHAREDIR}/mods")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/all/textures_here.txt" DESTINATION "${SHAREDIR}/textures/all")
|
||||
endif()
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/fonts" DESTINATION "${SHAREDIR}")
|
||||
|
||||
install(FILES "README.txt" DESTINATION "${DOCDIR}")
|
||||
install(FILES "doc/lua_api.txt" DESTINATION "${DOCDIR}")
|
||||
install(FILES "doc/mapformat.txt" DESTINATION "${DOCDIR}")
|
||||
|
||||
90
README.txt
90
README.txt
@@ -1,24 +1,25 @@
|
||||
Minetest-c55
|
||||
Minetest
|
||||
============
|
||||
|
||||
An InfiniMiner/Minecraft inspired game.
|
||||
|
||||
Copyright (c) 2010-2012 Perttu Ahola <celeron55@gmail.com>
|
||||
and ther contributors (see source file comments and the version control log)
|
||||
Copyright (c) 2010-2013 Perttu Ahola <celeron55@gmail.com>
|
||||
and contributors (see source file comments and the version control log)
|
||||
|
||||
In case you downloaded the source code:
|
||||
---------------------------------------
|
||||
If you downloaded the Minetest Engine source code in which this file is
|
||||
contained, you probably want to download the minetest_game project too:
|
||||
https://github.com/celeron55/minetest_game/
|
||||
https://github.com/minetest/minetest_game/
|
||||
See the README.txt in it.
|
||||
|
||||
Further documentation
|
||||
----------------------
|
||||
- Website: http://c55.me/minetest/
|
||||
- Wiki: http://c55.me/minetest/wiki/
|
||||
- Forum: http://c55.me/minetest/forum/
|
||||
- Github: https://github.com/celeron55/minetest/
|
||||
- Website: http://minetest.net/
|
||||
- Wiki: http://wiki.minetest.com/
|
||||
- Developer wiki: http://dev.minetest.net/
|
||||
- Forum: http://forum.minetest.net/
|
||||
- Github: https://github.com/minetest/minetest/
|
||||
- doc/ directory of source distribution
|
||||
|
||||
This game is not finished
|
||||
@@ -28,19 +29,23 @@ This game is not finished
|
||||
|
||||
Default Controls
|
||||
-----------------
|
||||
- WASD: Move
|
||||
- Space: Jump
|
||||
- E: Go down
|
||||
- Shift: Sneak
|
||||
- Q: Drop item
|
||||
- I: Open inventory
|
||||
- Mouse: Turn/look
|
||||
- WASD: move
|
||||
- Space: jump/climb
|
||||
- Shift: sneak/go down
|
||||
- Q: drop item
|
||||
- I: inventory
|
||||
- Mouse: turn/look
|
||||
- Mouse left: dig/punch
|
||||
- Mouse right: place/use
|
||||
- Mouse wheel: select item
|
||||
- Esc: pause menu
|
||||
- T: chat
|
||||
- Settable in the configuration file, see the section below.
|
||||
|
||||
Paths
|
||||
------
|
||||
$bin - Compiled binaries
|
||||
$share - Cistributed read-only data
|
||||
$share - Distributed read-only data
|
||||
$user - User-created modifiable data
|
||||
|
||||
Windows .zip / RUN_IN_PLACE source:
|
||||
@@ -79,18 +84,18 @@ Compiling on GNU/Linux:
|
||||
-----------------------
|
||||
|
||||
Install dependencies. Here's an example for Debian/Ubuntu:
|
||||
$ apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev
|
||||
$ apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev
|
||||
|
||||
Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
|
||||
$ wget https://github.com/celeron55/minetest/tarball/master -O master.tar.gz
|
||||
$ wget https://github.com/minetest/minetest/tarball/master -O master.tar.gz
|
||||
$ tar xf master.tar.gz
|
||||
$ cd celeron55-minetest-286edd4 (or similar)
|
||||
$ cd minetest-minetest-286edd4 (or similar)
|
||||
|
||||
Download minetest_game (otherwise only the "Minimal development test" game is available)
|
||||
$ cd games/
|
||||
$ wget https://github.com/celeron55/minetest_game/tarball/master -O master.tar.gz
|
||||
$ tar xf master.tar.gz
|
||||
$ mv celeron55-minetest_game-* minetest_game
|
||||
$ wget https://github.com/minetest/minetest_game/tarball/master -O minetest_game.tar.gz
|
||||
$ tar xf minetest_game.tar.gz
|
||||
$ mv minetest-minetest_game-* minetest_game
|
||||
$ cd ..
|
||||
|
||||
Build a version that runs directly from the source directory:
|
||||
@@ -106,6 +111,7 @@ $ ./minetest
|
||||
- You can build a bare server or a bare client by specifying -DBUILD_CLIENT=0 or -DBUILD_SERVER=0
|
||||
- You can select between Release and Debug build by -DCMAKE_BUILD_TYPE=<Debug or Release>
|
||||
- Debug build is slower, but gives much more useful output in a debugger
|
||||
- If you build a bare server, you don't need to have Irrlicht installed. In that case use -DIRRLICHT_SOURCE_DIR=/the/irrlicht/source
|
||||
|
||||
Compiling on Windows:
|
||||
---------------------
|
||||
@@ -125,11 +131,11 @@ Compiling on Windows:
|
||||
http://www.winimage.com/zLibDll/index.html
|
||||
* Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
|
||||
http://www.winimage.com/zLibDll/index.html
|
||||
* Optional: gettext bibrary and tools:
|
||||
* Optional: gettext library and tools:
|
||||
http://gnuwin32.sourceforge.net/downlinks/gettext.php
|
||||
- This is used for other UI languages. Feel free to leave it out.
|
||||
* And, of course, Minetest-c55:
|
||||
http://c55.me/minetest/download
|
||||
* And, of course, Minetest:
|
||||
http://minetest.net/download.php
|
||||
- Steps:
|
||||
- Select a directory called DIR hereafter in which you will operate.
|
||||
- Make sure you have CMake and a compiler installed.
|
||||
@@ -244,20 +250,34 @@ popd
|
||||
echo Failed.
|
||||
exit /b 1
|
||||
|
||||
License of Minetest-c55 textures and sounds
|
||||
-------------------------------------------
|
||||
License of Minetest textures and sounds
|
||||
---------------------------------------
|
||||
|
||||
This applies to textures and sounds contained in the main Minetest
|
||||
distribution.
|
||||
|
||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
License of Minetest-c55 source code
|
||||
-----------------------------------
|
||||
Authors of media files
|
||||
-----------------------
|
||||
Everything not listed in here:
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
BlockMen:
|
||||
textures/base/pack/menuheader.png
|
||||
|
||||
erlehmann:
|
||||
misc/minetest-icon-24x24.png
|
||||
misc/minetest-icon.ico
|
||||
misc/minetest-icon.svg
|
||||
textures/base/pack/logo.png
|
||||
|
||||
License of Minetest source code
|
||||
-------------------------------
|
||||
|
||||
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
|
||||
@@ -267,7 +287,7 @@ the Free Software Foundation; either version 2.1 of the License, or
|
||||
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 General Public License for more details.
|
||||
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.,
|
||||
@@ -371,4 +391,8 @@ DejaVu Sans Mono:
|
||||
|
||||
Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
|
||||
|
||||
Liberation Fonts Copyright:
|
||||
|
||||
Copyright (c) 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.
|
||||
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
-- Initialize some very basic things
|
||||
print = minetest.debug
|
||||
math.randomseed(os.time())
|
||||
os.setlocale("C", "numeric")
|
||||
|
||||
-- Load other files
|
||||
dofile(minetest.get_modpath("__builtin").."/serialize.lua")
|
||||
@@ -23,4 +24,5 @@ dofile(minetest.get_modpath("__builtin").."/chatcommands.lua")
|
||||
dofile(minetest.get_modpath("__builtin").."/static_spawn.lua")
|
||||
dofile(minetest.get_modpath("__builtin").."/detached_inventory.lua")
|
||||
dofile(minetest.get_modpath("__builtin").."/falling.lua")
|
||||
dofile(minetest.get_modpath("__builtin").."/features.lua")
|
||||
|
||||
|
||||
@@ -116,6 +116,9 @@ minetest.register_chatcommand("grant", {
|
||||
if not grantname or not grantprivstr then
|
||||
minetest.chat_send_player(name, "Invalid parameters (see /help grant)")
|
||||
return
|
||||
elseif not minetest.auth_table[grantname] then
|
||||
minetest.chat_send_player(name, "Player "..grantname.." does not exist.")
|
||||
return
|
||||
end
|
||||
local grantprivs = minetest.string_to_privs(grantprivstr)
|
||||
if grantprivstr == "all" then
|
||||
@@ -159,6 +162,9 @@ minetest.register_chatcommand("revoke", {
|
||||
if not revokename or not revokeprivstr then
|
||||
minetest.chat_send_player(name, "Invalid parameters (see /help revoke)")
|
||||
return
|
||||
elseif not minetest.auth_table[revokename] then
|
||||
minetest.chat_send_player(name, "Player "..revokename.." does not exist.")
|
||||
return
|
||||
end
|
||||
local revokeprivs = minetest.string_to_privs(revokeprivstr)
|
||||
local privs = minetest.get_player_privs(revokename)
|
||||
@@ -255,7 +261,7 @@ minetest.register_chatcommand("teleport", {
|
||||
}
|
||||
for _, d in ipairs(tries) do
|
||||
local p = {x = pos.x+d.x, y = pos.y+d.y, z = pos.z+d.z}
|
||||
local n = minetest.env:get_node(p)
|
||||
local n = minetest.get_node(p)
|
||||
if not minetest.registered_nodes[n.name].walkable then
|
||||
return p, true
|
||||
end
|
||||
@@ -266,7 +272,7 @@ minetest.register_chatcommand("teleport", {
|
||||
local teleportee = nil
|
||||
local p = {}
|
||||
p.x, p.y, p.z = string.match(param, "^([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$")
|
||||
teleportee = minetest.env:get_player_by_name(name)
|
||||
teleportee = minetest.get_player_by_name(name)
|
||||
if teleportee and p.x and p.y and p.z then
|
||||
minetest.chat_send_player(name, "Teleporting to ("..p.x..", "..p.y..", "..p.z..")")
|
||||
teleportee:setpos(p)
|
||||
@@ -277,9 +283,9 @@ minetest.register_chatcommand("teleport", {
|
||||
local p = nil
|
||||
local target_name = nil
|
||||
target_name = string.match(param, "^([^ ]+)$")
|
||||
teleportee = minetest.env:get_player_by_name(name)
|
||||
teleportee = minetest.get_player_by_name(name)
|
||||
if target_name then
|
||||
local target = minetest.env:get_player_by_name(target_name)
|
||||
local target = minetest.get_player_by_name(target_name)
|
||||
if target then
|
||||
p = target:getpos()
|
||||
end
|
||||
@@ -297,7 +303,7 @@ minetest.register_chatcommand("teleport", {
|
||||
local teleportee_name = nil
|
||||
teleportee_name, p.x, p.y, p.z = string.match(param, "^([^ ]+) +([%d.-]+)[, ] *([%d.-]+)[, ] *([%d.-]+)$")
|
||||
if teleportee_name then
|
||||
teleportee = minetest.env:get_player_by_name(teleportee_name)
|
||||
teleportee = minetest.get_player_by_name(teleportee_name)
|
||||
end
|
||||
if teleportee and p.x and p.y and p.z then
|
||||
minetest.chat_send_player(name, "Teleporting "..teleportee_name.." to ("..p.x..", "..p.y..", "..p.z..")")
|
||||
@@ -311,10 +317,10 @@ minetest.register_chatcommand("teleport", {
|
||||
local target_name = nil
|
||||
teleportee_name, target_name = string.match(param, "^([^ ]+) +([^ ]+)$")
|
||||
if teleportee_name then
|
||||
teleportee = minetest.env:get_player_by_name(teleportee_name)
|
||||
teleportee = minetest.get_player_by_name(teleportee_name)
|
||||
end
|
||||
if target_name then
|
||||
local target = minetest.env:get_player_by_name(target_name)
|
||||
local target = minetest.get_player_by_name(target_name)
|
||||
if target then
|
||||
p = target:getpos()
|
||||
end
|
||||
@@ -396,7 +402,7 @@ local function handle_give_command(cmd, giver, receiver, stackstring)
|
||||
minetest.chat_send_player(giver, 'error: cannot give an unknown item')
|
||||
return
|
||||
end
|
||||
local receiverref = minetest.env:get_player_by_name(receiver)
|
||||
local receiverref = minetest.get_player_by_name(receiver)
|
||||
if receiverref == nil then
|
||||
minetest.chat_send_player(giver, receiver..' is not a known player')
|
||||
return
|
||||
@@ -460,14 +466,14 @@ minetest.register_chatcommand("spawnentity", {
|
||||
return
|
||||
end
|
||||
print('/spawnentity invoked, entityname="'..entityname..'"')
|
||||
local player = minetest.env:get_player_by_name(name)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if player == nil then
|
||||
print("Unable to spawn entity, player is nil")
|
||||
return true -- Handled chat message
|
||||
end
|
||||
local p = player:getpos()
|
||||
p.y = p.y + 1
|
||||
minetest.env:add_entity(p, entityname)
|
||||
minetest.add_entity(p, entityname)
|
||||
minetest.chat_send_player(name, '"'..entityname
|
||||
..'" spawned.');
|
||||
end,
|
||||
@@ -477,7 +483,7 @@ minetest.register_chatcommand("pulverize", {
|
||||
description = "delete item in hand",
|
||||
privs = {},
|
||||
func = function(name, param)
|
||||
local player = minetest.env:get_player_by_name(name)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if player == nil then
|
||||
print("Unable to pulverize, player is nil")
|
||||
return true -- Handled chat message
|
||||
@@ -527,7 +533,7 @@ minetest.register_chatcommand("rollback_check", {
|
||||
if act_p.x ~= pos.x or act_p.y ~= pos.y or act_p.z ~= pos.z then
|
||||
nodedesc = minetest.pos_to_string(act_p)
|
||||
end
|
||||
local nodename = minetest.env:get_node(act_p).name
|
||||
local nodename = minetest.get_node(act_p).name
|
||||
minetest.chat_send_player(name, "Last actor on "..nodedesc..
|
||||
" was "..actor..", "..dump(act_seconds)..
|
||||
"s ago (node is now "..nodename..")")
|
||||
@@ -592,7 +598,7 @@ minetest.register_chatcommand("time", {
|
||||
if newtime == nil then
|
||||
minetest.chat_send_player(name, "Invalid time")
|
||||
else
|
||||
minetest.env:set_timeofday((newtime % 24000) / 24000)
|
||||
minetest.set_timeofday((newtime % 24000) / 24000)
|
||||
minetest.chat_send_player(name, "Time of day changed.")
|
||||
minetest.log("action", name .. " sets time " .. newtime)
|
||||
end
|
||||
@@ -619,7 +625,7 @@ minetest.register_chatcommand("ban", {
|
||||
minetest.chat_send_player(name, "Ban list: " .. minetest.get_ban_list())
|
||||
return
|
||||
end
|
||||
if not minetest.env:get_player_by_name(param) then
|
||||
if not minetest.get_player_by_name(param) then
|
||||
minetest.chat_send_player(name, "No such player")
|
||||
return
|
||||
end
|
||||
@@ -654,8 +660,28 @@ minetest.register_chatcommand("clearobjects", {
|
||||
func = function(name, param)
|
||||
minetest.log("action", name .. " clears all objects")
|
||||
minetest.chat_send_all("Clearing all objects. This may take long. You may experience a timeout. (by " .. name .. ")")
|
||||
minetest.env:clear_objects()
|
||||
minetest.clear_objects()
|
||||
minetest.log("action", "object clearing done")
|
||||
minetest.chat_send_all("*** Cleared all objects.")
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_chatcommand("msg", {
|
||||
params = "<name> <message>",
|
||||
description = "Send a private message",
|
||||
privs = {shout=true},
|
||||
func = function(name, param)
|
||||
local found, _, sendto, message = param:find("^([^%s]+)%s(.+)$")
|
||||
if found then
|
||||
if minetest.get_player_by_name(sendto) then
|
||||
minetest.log("action", "PM from "..name.." to "..sendto..": "..message)
|
||||
minetest.chat_send_player(sendto, "PM from "..name..": "..message, false)
|
||||
minetest.chat_send_player(name, "Message sent")
|
||||
else
|
||||
minetest.chat_send_player(name, "The player "..sendto.." is not online")
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(name, "Invalid usage, see /help msg")
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
@@ -24,3 +24,25 @@ minetest.add_to_creative_inventory = function(itemstring)
|
||||
minetest.log('info', "WARNING: minetest.add_to_creative_inventory: This function is deprecated and does nothing.")
|
||||
end
|
||||
|
||||
--
|
||||
-- EnvRef
|
||||
--
|
||||
minetest.env = {}
|
||||
local envref_deprecation_message_printed = false
|
||||
setmetatable(minetest.env, {
|
||||
__index = function(table, key)
|
||||
if not envref_deprecation_message_printed then
|
||||
minetest.log("info", "WARNING: minetest.env:[...] is deprecated and should be replaced with minetest.[...]")
|
||||
envref_deprecation_message_printed = true
|
||||
end
|
||||
local func = minetest[key]
|
||||
if type(func) == "function" then
|
||||
rawset(table, key, function(self, ...)
|
||||
return func(unpack({...}))
|
||||
end)
|
||||
else
|
||||
rawset(table, key, nil)
|
||||
end
|
||||
return rawget(table, key)
|
||||
end
|
||||
})
|
||||
|
||||
@@ -53,23 +53,27 @@ minetest.register_entity("__builtin:falling_node", {
|
||||
-- Turn to actual sand when collides to ground or just move
|
||||
local pos = self.object:getpos()
|
||||
local bcp = {x=pos.x, y=pos.y-0.7, z=pos.z} -- Position of bottom center point
|
||||
local bcn = minetest.env:get_node(bcp)
|
||||
local bcn = minetest.get_node(bcp)
|
||||
-- Note: walkable is in the node definition, not in item groups
|
||||
if minetest.registered_nodes[bcn.name] and
|
||||
minetest.registered_nodes[bcn.name].walkable then
|
||||
if minetest.registered_nodes[bcn.name].buildable_to then
|
||||
minetest.remove_node(bcp)
|
||||
return
|
||||
end
|
||||
local np = {x=bcp.x, y=bcp.y+1, z=bcp.z}
|
||||
-- Check what's here
|
||||
local n2 = minetest.env:get_node(np)
|
||||
local n2 = minetest.get_node(np)
|
||||
-- If it's not air or liquid, remove node and replace it with
|
||||
-- it's drops
|
||||
if n2.name ~= "air" and (not minetest.registered_nodes[n2.name] or
|
||||
minetest.registered_nodes[n2.name].liquidtype == "none") then
|
||||
local drops = minetest.get_node_drops(n2.name, "")
|
||||
minetest.env:remove_node(np)
|
||||
minetest.remove_node(np)
|
||||
-- Add dropped items
|
||||
local _, dropped_item
|
||||
for _, dropped_item in ipairs(drops) do
|
||||
minetest.env:add_item(np, dropped_item)
|
||||
minetest.add_item(np, dropped_item)
|
||||
end
|
||||
-- Run script hook
|
||||
local _, callback
|
||||
@@ -78,8 +82,9 @@ minetest.register_entity("__builtin:falling_node", {
|
||||
end
|
||||
end
|
||||
-- Create node and remove entity
|
||||
minetest.env:add_node(np, {name=self.nodename})
|
||||
minetest.add_node(np, {name=self.nodename})
|
||||
self.object:remove()
|
||||
nodeupdate(np)
|
||||
else
|
||||
-- Do nothing
|
||||
end
|
||||
@@ -87,20 +92,20 @@ minetest.register_entity("__builtin:falling_node", {
|
||||
})
|
||||
|
||||
function spawn_falling_node(p, nodename)
|
||||
obj = minetest.env:add_entity(p, "__builtin:falling_node")
|
||||
obj = minetest.add_entity(p, "__builtin:falling_node")
|
||||
obj:get_luaentity():set_node(nodename)
|
||||
end
|
||||
|
||||
function drop_attached_node(p)
|
||||
local nn = minetest.env:get_node(p).name
|
||||
minetest.env:remove_node(p)
|
||||
local nn = minetest.get_node(p).name
|
||||
minetest.remove_node(p)
|
||||
for _,item in ipairs(minetest.get_node_drops(nn, "")) do
|
||||
local pos = {
|
||||
x = p.x + math.random(60)/60-0.3,
|
||||
y = p.y + math.random(60)/60-0.3,
|
||||
z = p.z + math.random(60)/60-0.3,
|
||||
x = p.x + math.random()/2 - 0.25,
|
||||
y = p.y + math.random()/2 - 0.25,
|
||||
z = p.z + math.random()/2 - 0.25,
|
||||
}
|
||||
minetest.env:add_item(pos, item)
|
||||
minetest.add_item(pos, item)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -125,7 +130,7 @@ function check_attached_node(p, n)
|
||||
d.y = -1
|
||||
end
|
||||
local p2 = {x=p.x+d.x, y=p.y+d.y, z=p.z+d.z}
|
||||
local nn = minetest.env:get_node(p2).name
|
||||
local nn = minetest.get_node(p2).name
|
||||
local def2 = minetest.registered_nodes[nn]
|
||||
if def2 and not def2.walkable then
|
||||
return false
|
||||
@@ -137,17 +142,22 @@ end
|
||||
-- Some common functions
|
||||
--
|
||||
|
||||
function nodeupdate_single(p)
|
||||
n = minetest.env:get_node(p)
|
||||
function nodeupdate_single(p, delay)
|
||||
n = minetest.get_node(p)
|
||||
if minetest.get_node_group(n.name, "falling_node") ~= 0 then
|
||||
p_bottom = {x=p.x, y=p.y-1, z=p.z}
|
||||
n_bottom = minetest.env:get_node(p_bottom)
|
||||
n_bottom = minetest.get_node(p_bottom)
|
||||
-- Note: walkable is in the node definition, not in item groups
|
||||
if minetest.registered_nodes[n_bottom.name] and
|
||||
not minetest.registered_nodes[n_bottom.name].walkable then
|
||||
minetest.env:remove_node(p)
|
||||
spawn_falling_node(p, n.name)
|
||||
nodeupdate(p)
|
||||
(not minetest.registered_nodes[n_bottom.name].walkable or
|
||||
minetest.registered_nodes[n_bottom.name].buildable_to) then
|
||||
if delay then
|
||||
minetest.after(0.1, nodeupdate_single, {x=p.x, y=p.y, z=p.z}, false)
|
||||
else
|
||||
minetest.remove_node(p)
|
||||
spawn_falling_node(p, n.name)
|
||||
nodeupdate(p)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -168,8 +178,7 @@ function nodeupdate(p)
|
||||
for x = -1,1 do
|
||||
for y = -1,1 do
|
||||
for z = -1,1 do
|
||||
p2 = {x=p.x+x, y=p.y+y, z=p.z+z}
|
||||
nodeupdate_single(p2)
|
||||
nodeupdate_single({x=p.x+x, y=p.y+y, z=p.z+z}, not (x==0 and y==0 and z==0))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
28
builtin/features.lua
Normal file
28
builtin/features.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
-- Minetest: builtin/features.lua
|
||||
|
||||
minetest.features = {
|
||||
glasslike_framed = true,
|
||||
nodebox_as_selectionbox = true,
|
||||
chat_send_player_param3 = true,
|
||||
get_all_craft_recipes_works = true,
|
||||
use_texture_alpha = true,
|
||||
}
|
||||
|
||||
function minetest.has_feature(arg)
|
||||
if type(arg) == "table" then
|
||||
missing_features = {}
|
||||
result = true
|
||||
for ft, _ in pairs(arg) do
|
||||
if not minetest.features[ftr] then
|
||||
missing_features[ftr] = true
|
||||
result = false
|
||||
end
|
||||
end
|
||||
return result, missing_features
|
||||
elseif type(arg) == "string" then
|
||||
if not minetest.features[arg] then
|
||||
return false, {[arg]=true}
|
||||
end
|
||||
return true, {}
|
||||
end
|
||||
end
|
||||
@@ -129,11 +129,18 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
end
|
||||
|
||||
local under = pointed_thing.under
|
||||
local oldnode_under = minetest.env:get_node(under)
|
||||
local oldnode_under = minetest.get_node_or_nil(under)
|
||||
local above = pointed_thing.above
|
||||
local oldnode_above = minetest.get_node_or_nil(above)
|
||||
|
||||
if not oldnode_under or not oldnode_above then
|
||||
minetest.log("info", placer:get_player_name() .. " tried to place"
|
||||
.. " node in unloaded position " .. minetest.pos_to_string(above))
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local olddef_under = ItemStack({name=oldnode_under.name}):get_definition()
|
||||
olddef_under = olddef_under or minetest.nodedef_default
|
||||
local above = pointed_thing.above
|
||||
local oldnode_above = minetest.env:get_node(above)
|
||||
local olddef_above = ItemStack({name=oldnode_above.name}):get_definition()
|
||||
olddef_above = olddef_above or minetest.nodedef_default
|
||||
|
||||
@@ -141,7 +148,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
minetest.log("info", placer:get_player_name() .. " tried to place"
|
||||
.. " node in invalid position " .. minetest.pos_to_string(above)
|
||||
.. ", replacing " .. oldnode_above.name)
|
||||
return
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- Place above pointed node
|
||||
@@ -156,7 +163,7 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
minetest.log("action", placer:get_player_name() .. " places node "
|
||||
.. def.name .. " at " .. minetest.pos_to_string(place_to))
|
||||
|
||||
local oldnode = minetest.env:get_node(place_to)
|
||||
local oldnode = minetest.get_node(place_to)
|
||||
local newnode = {name = def.name, param1 = 0, param2 = 0}
|
||||
|
||||
-- Calculate direction for wall mounted stuff like torches and signs
|
||||
@@ -186,17 +193,21 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
not check_attached_node(place_to, newnode) then
|
||||
minetest.log("action", "attached node " .. def.name ..
|
||||
" can not be placed at " .. minetest.pos_to_string(place_to))
|
||||
return
|
||||
return itemstack
|
||||
end
|
||||
|
||||
-- Add node and update
|
||||
minetest.env:add_node(place_to, newnode)
|
||||
minetest.add_node(place_to, newnode)
|
||||
|
||||
local take_item = true
|
||||
|
||||
-- Run callback
|
||||
if def.after_place_node then
|
||||
-- Copy place_to because callback can modify it
|
||||
local place_to_copy = {x=place_to.x, y=place_to.y, z=place_to.z}
|
||||
def.after_place_node(place_to_copy, placer)
|
||||
if def.after_place_node(place_to_copy, placer, itemstack) then
|
||||
take_item = false
|
||||
end
|
||||
end
|
||||
|
||||
-- Run script hook
|
||||
@@ -206,10 +217,14 @@ function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
local place_to_copy = {x=place_to.x, y=place_to.y, z=place_to.z}
|
||||
local newnode_copy = {name=newnode.name, param1=newnode.param1, param2=newnode.param2}
|
||||
local oldnode_copy = {name=oldnode.name, param1=oldnode.param1, param2=oldnode.param2}
|
||||
callback(place_to_copy, newnode_copy, placer, oldnode_copy)
|
||||
if callback(place_to_copy, newnode_copy, placer, oldnode_copy, itemstack) then
|
||||
take_item = false
|
||||
end
|
||||
end
|
||||
|
||||
itemstack:take_item()
|
||||
if take_item then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
@@ -217,24 +232,33 @@ function minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||
local pos = minetest.get_pointed_thing_position(pointed_thing, true)
|
||||
if pos ~= nil then
|
||||
local item = itemstack:take_item()
|
||||
minetest.env:add_item(pos, item)
|
||||
minetest.add_item(pos, item)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
function minetest.item_place(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local n = minetest.get_node(pointed_thing.under)
|
||||
local nn = n.name
|
||||
if minetest.registered_nodes[nn] and minetest.registered_nodes[nn].on_rightclick then
|
||||
return minetest.registered_nodes[nn].on_rightclick(pointed_thing.under, n, placer, itemstack) or itemstack
|
||||
end
|
||||
end
|
||||
|
||||
if itemstack:get_definition().type == "node" then
|
||||
return minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
else
|
||||
return minetest.item_place_object(itemstack, placer, pointed_thing)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
function minetest.item_drop(itemstack, dropper, pos)
|
||||
if dropper.get_player_name then
|
||||
local v = dropper:get_look_dir()
|
||||
local p = {x=pos.x+v.x, y=pos.y+1.5+v.y, z=pos.z+v.z}
|
||||
local obj = minetest.env:add_item(p, itemstack)
|
||||
local obj = minetest.add_item(p, itemstack)
|
||||
if obj then
|
||||
v.x = v.x*2
|
||||
v.y = v.y*2 + 1
|
||||
@@ -242,9 +266,9 @@ function minetest.item_drop(itemstack, dropper, pos)
|
||||
obj:setvelocity(v)
|
||||
end
|
||||
else
|
||||
minetest.env:add_item(pos, itemstack)
|
||||
minetest.add_item(pos, itemstack)
|
||||
end
|
||||
return ""
|
||||
return ItemStack("")
|
||||
end
|
||||
|
||||
function minetest.item_eat(hp_change, replace_with_item)
|
||||
@@ -273,7 +297,15 @@ function minetest.handle_node_drops(pos, drops, digger)
|
||||
if digger:get_inventory() then
|
||||
local _, dropped_item
|
||||
for _, dropped_item in ipairs(drops) do
|
||||
digger:get_inventory():add_item("main", dropped_item)
|
||||
local left = digger:get_inventory():add_item("main", dropped_item)
|
||||
if not left:is_empty() then
|
||||
local p = {
|
||||
x = pos.x + math.random()/2-0.25,
|
||||
y = pos.y + math.random()/2-0.25,
|
||||
z = pos.z + math.random()/2-0.25,
|
||||
}
|
||||
minetest.add_item(p, left)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -308,11 +340,11 @@ function minetest.node_dig(pos, node, digger)
|
||||
|
||||
local oldmetadata = nil
|
||||
if def.after_dig_node then
|
||||
oldmetadata = minetest.env:get_meta(pos):to_table()
|
||||
oldmetadata = minetest.get_meta(pos):to_table()
|
||||
end
|
||||
|
||||
-- Remove node and update
|
||||
minetest.env:remove_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
|
||||
-- Run callback
|
||||
if def.after_dig_node then
|
||||
@@ -367,6 +399,7 @@ minetest.nodedef_default = {
|
||||
can_dig = nil,
|
||||
|
||||
on_punch = redef_wrapper(minetest, 'node_punch'), -- minetest.node_punch
|
||||
on_rightclick = nil,
|
||||
on_dig = redef_wrapper(minetest, 'node_dig'), -- minetest.node_dig
|
||||
|
||||
on_receive_fields = nil,
|
||||
@@ -456,7 +489,7 @@ minetest.noneitemdef_default = { -- This is used for the hand and unknown items
|
||||
tool_capabilities = nil,
|
||||
|
||||
-- Interaction callbacks
|
||||
on_place = nil,
|
||||
on_place = redef_wrapper(minetest, 'item_place'),
|
||||
on_drop = nil,
|
||||
on_use = nil,
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
function minetest.spawn_item(pos, item)
|
||||
-- Take item in any format
|
||||
local stack = ItemStack(item)
|
||||
local obj = minetest.env:add_entity(pos, "__builtin:item")
|
||||
local obj = minetest.add_entity(pos, "__builtin:item")
|
||||
obj:get_luaentity():set_item(stack:to_string())
|
||||
return obj
|
||||
end
|
||||
@@ -83,9 +83,10 @@ minetest.register_entity("__builtin:item", {
|
||||
on_step = function(self, dtime)
|
||||
local p = self.object:getpos()
|
||||
p.y = p.y - 0.3
|
||||
local nn = minetest.env:get_node(p).name
|
||||
-- If node is not registered or node is walkably solid
|
||||
if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable then
|
||||
local nn = minetest.get_node(p).name
|
||||
-- If node is not registered or node is walkably solid and resting on nodebox
|
||||
local v = self.object:getvelocity()
|
||||
if not minetest.registered_nodes[nn] or minetest.registered_nodes[nn].walkable and v.y == 0 then
|
||||
if self.physical_state then
|
||||
self.object:setvelocity({x=0,y=0,z=0})
|
||||
self.object:setacceleration({x=0, y=0, z=0})
|
||||
@@ -108,7 +109,11 @@ minetest.register_entity("__builtin:item", {
|
||||
|
||||
on_punch = function(self, hitter)
|
||||
if self.itemstring ~= '' then
|
||||
hitter:get_inventory():add_item("main", self.itemstring)
|
||||
local left = hitter:get_inventory():add_item("main", self.itemstring)
|
||||
if not left:is_empty() then
|
||||
self.itemstring = left:to_string()
|
||||
return
|
||||
end
|
||||
end
|
||||
self.object:remove()
|
||||
end,
|
||||
|
||||
@@ -14,14 +14,14 @@ minetest.register_globalstep(function(dtime)
|
||||
for index, timer in ipairs(minetest.timers) do
|
||||
timer.time = timer.time - dtime
|
||||
if timer.time <= 0 then
|
||||
timer.func(timer.param)
|
||||
timer.func(unpack(timer.args or {}))
|
||||
table.remove(minetest.timers,index)
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
function minetest.after(time, func, param)
|
||||
table.insert(minetest.timers_to_add, {time=time, func=func, param=param})
|
||||
function minetest.after(time, func, ...)
|
||||
table.insert(minetest.timers_to_add, {time=time, func=func, args={...}})
|
||||
end
|
||||
|
||||
function minetest.check_player_privs(name, privs)
|
||||
@@ -43,7 +43,7 @@ end
|
||||
function minetest.get_connected_players()
|
||||
-- This could be optimized a bit, but leave that for later
|
||||
local list = {}
|
||||
for _, obj in pairs(minetest.env:get_objects_inside_radius({x=0,y=0,z=0}, 1000000)) do
|
||||
for _, obj in pairs(minetest.get_objects_inside_radius({x=0,y=0,z=0}, 1000000)) do
|
||||
if obj:is_player() then
|
||||
table.insert(list, obj)
|
||||
end
|
||||
@@ -99,3 +99,10 @@ function minetest.setting_get_pos(name)
|
||||
return minetest.string_to_pos(value)
|
||||
end
|
||||
|
||||
function minetest.formspec_escape(str)
|
||||
str = string.gsub(str, "\\", "\\\\")
|
||||
str = string.gsub(str, "%[", "\\[")
|
||||
str = string.gsub(str, "%]", "\\]")
|
||||
return str
|
||||
end
|
||||
|
||||
|
||||
@@ -103,6 +103,10 @@ function minetest.register_item(name, itemdef)
|
||||
|
||||
-- Apply defaults and add to registered_* table
|
||||
if itemdef.type == "node" then
|
||||
-- Use the nodebox as selection box if it's not set manually
|
||||
if itemdef.drawtype == "nodebox" and not itemdef.selection_box then
|
||||
itemdef.selection_box = itemdef.node_box
|
||||
end
|
||||
setmetatable(itemdef, {__index = minetest.nodedef_default})
|
||||
minetest.registered_nodes[itemdef.name] = itemdef
|
||||
elseif itemdef.type == "craft" then
|
||||
@@ -249,8 +253,8 @@ minetest.register_item(":unknown", {
|
||||
|
||||
minetest.register_node(":air", {
|
||||
description = "Air (you hacker you!)",
|
||||
inventory_image = "unknown_block.png",
|
||||
wield_image = "unknown_block.png",
|
||||
inventory_image = "unknown_node.png",
|
||||
wield_image = "unknown_node.png",
|
||||
drawtype = "airlike",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
@@ -265,8 +269,8 @@ minetest.register_node(":air", {
|
||||
|
||||
minetest.register_node(":ignore", {
|
||||
description = "Ignore (you hacker you!)",
|
||||
inventory_image = "unknown_block.png",
|
||||
wield_image = "unknown_block.png",
|
||||
inventory_image = "unknown_node.png",
|
||||
wield_image = "unknown_node.png",
|
||||
drawtype = "airlike",
|
||||
paramtype = "none",
|
||||
sunlight_propagates = false,
|
||||
|
||||
@@ -44,5 +44,9 @@ minetest.register_privilege("fast", {
|
||||
description = "Can walk fast using the fast_move mode",
|
||||
give_to_singleplayer = false,
|
||||
})
|
||||
minetest.register_privilege("noclip", {
|
||||
description = "Can fly through walls",
|
||||
give_to_singleplayer = false,
|
||||
})
|
||||
minetest.register_privilege("rollback", "Can use the rollback functionality")
|
||||
|
||||
|
||||
@@ -197,7 +197,7 @@ local function unit_test()
|
||||
unitTest("test 1b", unittest_input.cat.speed == unittest_output.cat.speed)
|
||||
unitTest("test 1c", unittest_input.dog.sound == unittest_output.dog.sound)
|
||||
|
||||
unittest_input = {escapechars="\n\r\t\v\\\"\'\[\]", noneuropean="θשׁ٩∂"}
|
||||
unittest_input = {escapechars="\n\r\t\v\\\"\'", noneuropean="θשׁ٩∂"}
|
||||
unittest_output = minetest.deserialize(minetest.serialize(unittest_input))
|
||||
unitTest("test 3a", unittest_input.escapechars == unittest_output.escapechars)
|
||||
unitTest("test 3b", unittest_input.noneuropean == unittest_output.noneuropean)
|
||||
|
||||
2
client/serverlist/.gitignore
vendored
Normal file
2
client/serverlist/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*
|
||||
!.gitignore
|
||||
@@ -8,9 +8,7 @@ varying vec3 vPosition;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
vec4 pos = gl_Vertex;
|
||||
pos.y -= 2.0;
|
||||
gl_Position = mWorldViewProj * pos;
|
||||
gl_Position = mWorldViewProj * gl_Vertex;
|
||||
|
||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||
|
||||
|
||||
1
client/shaders/test_shader_3/base.txt
Normal file
1
client/shaders/test_shader_3/base.txt
Normal file
@@ -0,0 +1 @@
|
||||
trans_alphach
|
||||
25
client/shaders/test_shader_3/opengl_fragment.glsl
Normal file
25
client/shaders/test_shader_3/opengl_fragment.glsl
Normal file
@@ -0,0 +1,25 @@
|
||||
|
||||
uniform sampler2D myTexture;
|
||||
uniform float fogDistance;
|
||||
|
||||
varying vec3 vPosition;
|
||||
|
||||
void main (void)
|
||||
{
|
||||
vec4 col = texture2D(myTexture, vec2(gl_TexCoord[0]));
|
||||
col *= gl_Color;
|
||||
float a = col.a;
|
||||
col = col * col; // SRGB -> Linear
|
||||
col *= 1.8;
|
||||
col.r = 1.0 - exp(1.0 - col.r) / exp(1.0);
|
||||
col.g = 1.0 - exp(1.0 - col.g) / exp(1.0);
|
||||
col.b = 1.0 - exp(1.0 - col.b) / exp(1.0);
|
||||
col = sqrt(col); // Linear -> SRGB
|
||||
|
||||
if(fogDistance != 0.0){
|
||||
float d = max(0.0, min(vPosition.z / fogDistance * 1.5 - 0.6, 1.0));
|
||||
a = mix(a, 0.0, d);
|
||||
}
|
||||
|
||||
gl_FragColor = vec4(col.r, col.g, col.b, a);
|
||||
}
|
||||
51
client/shaders/test_shader_3/opengl_vertex.glsl
Normal file
51
client/shaders/test_shader_3/opengl_vertex.glsl
Normal file
@@ -0,0 +1,51 @@
|
||||
|
||||
uniform mat4 mWorldViewProj;
|
||||
uniform mat4 mInvWorld;
|
||||
uniform mat4 mTransWorld;
|
||||
uniform float dayNightRatio;
|
||||
|
||||
varying vec3 vPosition;
|
||||
|
||||
void main(void)
|
||||
{
|
||||
gl_Position = mWorldViewProj * gl_Vertex;
|
||||
|
||||
vPosition = (mWorldViewProj * gl_Vertex).xyz;
|
||||
|
||||
vec4 color;
|
||||
//color = vec4(1.0, 1.0, 1.0, 1.0);
|
||||
|
||||
float day = gl_Color.r;
|
||||
float night = gl_Color.g;
|
||||
float light_source = gl_Color.b;
|
||||
|
||||
/*color.r = mix(night, day, dayNightRatio);
|
||||
color.g = color.r;
|
||||
color.b = color.r;*/
|
||||
|
||||
float rg = mix(night, day, dayNightRatio);
|
||||
rg += light_source * 1.0; // Make light sources brighter
|
||||
float b = rg;
|
||||
|
||||
// Moonlight is blue
|
||||
b += (day - night) / 13.0;
|
||||
rg -= (day - night) / 13.0;
|
||||
|
||||
// Emphase blue a bit in darker places
|
||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);
|
||||
|
||||
// Artificial light is yellow-ish
|
||||
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
|
||||
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);
|
||||
|
||||
color.r = rg;
|
||||
color.g = rg;
|
||||
color.b = b;
|
||||
|
||||
color.a = gl_Color.a;
|
||||
|
||||
gl_FrontColor = gl_BackColor = color;
|
||||
|
||||
gl_TexCoord[0] = gl_MultiTexCoord0;
|
||||
}
|
||||
42
cmake/Modules/FindCURL.cmake
Normal file
42
cmake/Modules/FindCURL.cmake
Normal file
@@ -0,0 +1,42 @@
|
||||
# - Find curl
|
||||
# Find the native CURL headers and libraries.
|
||||
#
|
||||
# CURL_INCLUDE_DIR - where to find curl/curl.h, etc.
|
||||
# CURL_LIBRARY - List of libraries when using curl.
|
||||
# CURL_FOUND - True if curl found.
|
||||
|
||||
if( UNIX )
|
||||
FIND_PATH(CURL_INCLUDE_DIR NAMES curl.h
|
||||
PATHS
|
||||
/usr/local/include/curl
|
||||
/usr/include/curl
|
||||
)
|
||||
|
||||
FIND_LIBRARY(CURL_LIBRARY NAMES curl
|
||||
PATHS
|
||||
/usr/local/lib
|
||||
/usr/lib
|
||||
)
|
||||
else( UNIX )
|
||||
FIND_PATH(CURL_INCLUDE_DIR NAMES curl/curl.h) # Look for the header file.
|
||||
FIND_LIBRARY(CURL_LIBRARY NAMES curl) # Look for the library.
|
||||
INCLUDE(FindPackageHandleStandardArgs) # handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CURL DEFAULT_MSG CURL_LIBRARY CURL_INCLUDE_DIR) # all listed variables are TRUE
|
||||
endif( UNIX )
|
||||
|
||||
if( WIN32 )
|
||||
if( CURL_LIBRARY AND CURL_INCLUDE_DIR AND CURL_DLL ) # libcurl.dll is required on Windows
|
||||
SET(CURL_FOUND TRUE)
|
||||
else( CURL_LIBRARY AND CURL_INCLUDE_DIR AND CURL_DLL )
|
||||
SET(CURL_FOUND FALSE)
|
||||
endif( CURL_LIBRARY AND CURL_INCLUDE_DIR AND CURL_DLL )
|
||||
else ( WIN32 )
|
||||
if( CURL_LIBRARY AND CURL_INCLUDE_DIR )
|
||||
SET(CURL_FOUND TRUE)
|
||||
else( CURL_LIBRARY AND CURL_INCLUDE_DIR )
|
||||
SET(CURL_FOUND FALSE)
|
||||
endif( CURL_LIBRARY AND CURL_INCLUDE_DIR )
|
||||
endif ( WIN32 )
|
||||
|
||||
MESSAGE(STATUS "CURL_INCLUDE_DIR = ${CURL_INCLUDE_DIR}")
|
||||
MESSAGE(STATUS "CURL_LIBRARY = ${CURL_LIBRARY}")
|
||||
18
cmake/Modules/FindJson.cmake
Normal file
18
cmake/Modules/FindJson.cmake
Normal file
@@ -0,0 +1,18 @@
|
||||
# Look for json, use our own if not found
|
||||
|
||||
#FIND_PATH(JSON_INCLUDE_DIR json.h)
|
||||
|
||||
#FIND_LIBRARY(JSON_LIBRARY NAMES jsoncpp)
|
||||
|
||||
#IF(JSON_LIBRARY AND JSON_INCLUDE_DIR)
|
||||
# SET( JSON_FOUND TRUE )
|
||||
#ENDIF(JSON_LIBRARY AND JSON_INCLUDE_DIR)
|
||||
|
||||
#IF(JSON_FOUND)
|
||||
# MESSAGE(STATUS "Found system jsoncpp header file in ${JSON_INCLUDE_DIR}")
|
||||
# MESSAGE(STATUS "Found system jsoncpp library ${JSON_LIBRARY}")
|
||||
#ELSE(JSON_FOUND)
|
||||
SET(JSON_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/json)
|
||||
SET(JSON_LIBRARY jsoncpp)
|
||||
MESSAGE(STATUS "Using project jsoncpp library")
|
||||
#ENDIF(JSON_FOUND)
|
||||
130
cmake/Modules/FindOpenGLES2.cmake
Normal file
130
cmake/Modules/FindOpenGLES2.cmake
Normal file
@@ -0,0 +1,130 @@
|
||||
#-------------------------------------------------------------------
|
||||
# This file is stolen from part of the CMake build system for OGRE (Object-oriented Graphics Rendering Engine) http://www.ogre3d.org/
|
||||
#
|
||||
# The contents of this file are placed in the public domain. Feel
|
||||
# free to make use of it in any way you like.
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
# - Try to find OpenGLES and EGL
|
||||
# Once done this will define
|
||||
#
|
||||
# OPENGLES2_FOUND - system has OpenGLES
|
||||
# OPENGLES2_INCLUDE_DIR - the GL include directory
|
||||
# OPENGLES2_LIBRARIES - Link these to use OpenGLES
|
||||
#
|
||||
# EGL_FOUND - system has EGL
|
||||
# EGL_INCLUDE_DIR - the EGL include directory
|
||||
# EGL_LIBRARIES - Link these to use EGL
|
||||
|
||||
# win32, apple, android NOT TESED
|
||||
# linux tested and works
|
||||
|
||||
IF (WIN32)
|
||||
IF (CYGWIN)
|
||||
|
||||
FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h )
|
||||
|
||||
FIND_LIBRARY(OPENGLES2_gl_LIBRARY libGLESv2 )
|
||||
|
||||
ELSE (CYGWIN)
|
||||
|
||||
IF(BORLAND)
|
||||
SET (OPENGLES2_gl_LIBRARY import32 CACHE STRING "OpenGL ES 2.x library for win32")
|
||||
ELSE(BORLAND)
|
||||
# todo
|
||||
# SET (OPENGLES_gl_LIBRARY ${SOURCE_DIR}/Dependencies/lib/release/libGLESv2.lib CACHE STRING "OpenGL ES 2.x library for win32"
|
||||
ENDIF(BORLAND)
|
||||
|
||||
ENDIF (CYGWIN)
|
||||
|
||||
ELSE (WIN32)
|
||||
|
||||
IF (APPLE)
|
||||
|
||||
create_search_paths(/Developer/Platforms)
|
||||
findpkg_framework(OpenGLES2)
|
||||
set(OPENGLES2_gl_LIBRARY "-framework OpenGLES")
|
||||
|
||||
ELSE(APPLE)
|
||||
|
||||
FIND_PATH(OPENGLES2_INCLUDE_DIR GLES2/gl2.h
|
||||
/usr/openwin/share/include
|
||||
/opt/graphics/OpenGL/include /usr/X11R6/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(OPENGLES2_gl_LIBRARY
|
||||
NAMES GLESv2
|
||||
PATHS /opt/graphics/OpenGL/lib
|
||||
/usr/openwin/lib
|
||||
/usr/shlib /usr/X11R6/lib
|
||||
/usr/lib
|
||||
)
|
||||
|
||||
IF (NOT BUILD_ANDROID)
|
||||
FIND_PATH(EGL_INCLUDE_DIR EGL/egl.h
|
||||
/usr/openwin/share/include
|
||||
/opt/graphics/OpenGL/include /usr/X11R6/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
FIND_LIBRARY(EGL_egl_LIBRARY
|
||||
NAMES EGL
|
||||
PATHS /opt/graphics/OpenGL/lib
|
||||
/usr/openwin/lib
|
||||
/usr/shlib /usr/X11R6/lib
|
||||
/usr/lib
|
||||
)
|
||||
|
||||
# On Unix OpenGL most certainly always requires X11.
|
||||
# Feel free to tighten up these conditions if you don't
|
||||
# think this is always true.
|
||||
# It's not true on OSX.
|
||||
|
||||
IF (OPENGLES2_gl_LIBRARY)
|
||||
IF(NOT X11_FOUND)
|
||||
INCLUDE(FindX11)
|
||||
ENDIF(NOT X11_FOUND)
|
||||
IF (X11_FOUND)
|
||||
IF (NOT APPLE)
|
||||
SET (OPENGLES2_LIBRARIES ${X11_LIBRARIES})
|
||||
ENDIF (NOT APPLE)
|
||||
ENDIF (X11_FOUND)
|
||||
ENDIF (OPENGLES2_gl_LIBRARY)
|
||||
ENDIF ()
|
||||
|
||||
ENDIF(APPLE)
|
||||
ENDIF (WIN32)
|
||||
|
||||
#SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
|
||||
|
||||
IF (BUILD_ANDROID)
|
||||
IF(OPENGLES2_gl_LIBRARY)
|
||||
SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
|
||||
SET( EGL_LIBRARIES)
|
||||
SET( OPENGLES2_FOUND "YES" )
|
||||
ENDIF(OPENGLES2_gl_LIBRARY)
|
||||
ELSE ()
|
||||
|
||||
SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
|
||||
|
||||
IF(OPENGLES2_gl_LIBRARY AND EGL_egl_LIBRARY)
|
||||
SET( OPENGLES2_LIBRARIES ${OPENGLES2_gl_LIBRARY} ${OPENGLES2_LIBRARIES})
|
||||
SET( EGL_LIBRARIES ${EGL_egl_LIBRARY} ${EGL_LIBRARIES})
|
||||
SET( OPENGLES2_FOUND "YES" )
|
||||
ENDIF(OPENGLES2_gl_LIBRARY AND EGL_egl_LIBRARY)
|
||||
|
||||
ENDIF ()
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
OPENGLES2_INCLUDE_DIR
|
||||
OPENGLES2_gl_LIBRARY
|
||||
EGL_INCLUDE_DIR
|
||||
EGL_egl_LIBRARY
|
||||
)
|
||||
|
||||
IF(OPENGLES2_FOUND)
|
||||
MESSAGE(STATUS "Found system opengles2 library ${OPENGLES2_LIBRARIES}")
|
||||
ELSE ()
|
||||
SET(OPENGLES2_LIBRARIES "")
|
||||
ENDIF ()
|
||||
648
doc/lua_api.txt
648
doc/lua_api.txt
File diff suppressed because it is too large
Load Diff
@@ -41,7 +41,7 @@ Show allowed options
|
||||
Set logfile path (debug.txt)
|
||||
.TP
|
||||
\-\-map\-dir <value>
|
||||
Same as --world (deprecated)
|
||||
Same as \-\-world (deprecated)
|
||||
.TP
|
||||
\-\-name <value>
|
||||
Set player name
|
||||
@@ -61,6 +61,9 @@ Run dedicated server
|
||||
\-\-speedtests
|
||||
Run speed tests
|
||||
.TP
|
||||
\-\-videomodes
|
||||
List available video modes
|
||||
.TP
|
||||
\-\-info
|
||||
Print more information to console
|
||||
.TP
|
||||
@@ -85,7 +88,7 @@ This man page was originally written by
|
||||
Juhani Numminen <juhaninumminen0@gmail.com>.
|
||||
|
||||
.SH WWW
|
||||
http://c55.me/minetest/
|
||||
http://www.minetest.net/
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR minetestserver(6)
|
||||
|
||||
@@ -35,7 +35,7 @@ Show allowed options
|
||||
Set logfile path (debug.txt)
|
||||
.TP
|
||||
\-\-map\-dir <value>
|
||||
Same as --world (deprecated)
|
||||
Same as \-\-world (deprecated)
|
||||
.TP
|
||||
\-\-port <value>
|
||||
Set network port (UDP) to use
|
||||
@@ -64,7 +64,7 @@ This man page was originally written by
|
||||
Juhani Numminen <juhaninumminen0@gmail.com>.
|
||||
|
||||
.SH WWW
|
||||
http://c55.me/minetest/
|
||||
http://www.minetest.net/
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR minetest(6)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Minetest-c55 protocol (incomplete, early draft):
|
||||
Minetest protocol (incomplete, early draft):
|
||||
Updated 2011-06-18
|
||||
|
||||
A custom protocol over UDP.
|
||||
@@ -70,3 +70,39 @@ function check_if_minetestserver_up($host, $port)
|
||||
return false;
|
||||
}
|
||||
|
||||
- Here's a Python script for checking if a minetest server is up, confirmed working
|
||||
#!/usr/bin/env python
|
||||
import sys, time, socket
|
||||
address = ""
|
||||
port = 30000
|
||||
if len(sys.argv) <= 1:
|
||||
print("Usage: %s <address>" % sys.argv[0])
|
||||
exit()
|
||||
if ':' in sys.argv[1]:
|
||||
address = sys.argv[1].split(':')[0]
|
||||
try:
|
||||
port = int(sys.argv[1].split(':')[1])
|
||||
except ValueError:
|
||||
print("Please specify a valid port")
|
||||
exit()
|
||||
else:
|
||||
address = sys.argv[1]
|
||||
|
||||
try:
|
||||
start = time.time()
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
sock.settimeout(2.0)
|
||||
buf = "\x4f\x45\x74\x03\x00\x00\x00\x01"
|
||||
sock.sendto(buf, (address, port))
|
||||
data, addr = sock.recvfrom(1000)
|
||||
if data:
|
||||
peer_id = data[12:14]
|
||||
buf = "\x4f\x45\x74\x03" + peer_id + "\x00\x00\x03"
|
||||
sock.sendto(buf, (address, port))
|
||||
sock.close()
|
||||
end = time.time()
|
||||
print("%s is up (%0.5fms)" % (sys.argv[1],end-start))
|
||||
else:
|
||||
print("%s seems to be down " % sys.argv[1])
|
||||
except:
|
||||
print("%s seems to be down " % sys.argv[1])
|
||||
|
||||
BIN
fonts/liberationmono.ttf
Normal file
BIN
fonts/liberationmono.ttf
Normal file
Binary file not shown.
BIN
fonts/liberationsans.ttf
Normal file
BIN
fonts/liberationsans.ttf
Normal file
Binary file not shown.
BIN
games/minimal/menu/background.png
Normal file
BIN
games/minimal/menu/background.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
games/minimal/menu/icon.png
Normal file
BIN
games/minimal/menu/icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 397 B |
@@ -41,13 +41,13 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image)
|
||||
return
|
||||
end
|
||||
-- Check if pointing to a liquid
|
||||
n = minetest.env:get_node(pointed_thing.under)
|
||||
n = minetest.get_node(pointed_thing.under)
|
||||
if bucket.liquids[n.name] == nil then
|
||||
-- Not a liquid
|
||||
minetest.env:add_node(pointed_thing.above, {name=source})
|
||||
minetest.add_node(pointed_thing.above, {name=source})
|
||||
elseif n.name ~= source then
|
||||
-- It's a liquid
|
||||
minetest.env:add_node(pointed_thing.under, {name=source})
|
||||
minetest.add_node(pointed_thing.under, {name=source})
|
||||
end
|
||||
return {name="bucket:bucket_empty"}
|
||||
end
|
||||
@@ -65,10 +65,10 @@ minetest.register_craftitem("bucket:bucket_empty", {
|
||||
return
|
||||
end
|
||||
-- Check if pointing to a liquid source
|
||||
n = minetest.env:get_node(pointed_thing.under)
|
||||
n = minetest.get_node(pointed_thing.under)
|
||||
liquiddef = bucket.liquids[n.name]
|
||||
if liquiddef ~= nil and liquiddef.source == n.name and liquiddef.itemname ~= nil then
|
||||
minetest.env:add_node(pointed_thing.under, {name="air"})
|
||||
minetest.add_node(pointed_thing.under, {name="air"})
|
||||
return {name=liquiddef.itemname}
|
||||
end
|
||||
end,
|
||||
|
||||
@@ -659,6 +659,8 @@ function default.node_sound_dirt_defaults(table)
|
||||
{name="", gain=0.5}
|
||||
--table.dug = table.dug or
|
||||
-- {name="default_dirt_break", gain=0.5}
|
||||
table.place = table.place or
|
||||
{name="default_grass_footstep", gain=0.5}
|
||||
default.node_sound_defaults(table)
|
||||
return table
|
||||
end
|
||||
@@ -739,7 +741,7 @@ minetest.register_node("default:dirt_with_grass", {
|
||||
description = "Dirt with grass",
|
||||
tiles ={"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3},
|
||||
groups = {crumbly=3, soil=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name="default_grass_footstep", gain=0.4},
|
||||
@@ -750,7 +752,7 @@ minetest.register_node("default:dirt_with_grass_footsteps", {
|
||||
description = "Dirt with grass and footsteps",
|
||||
tiles ={"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3},
|
||||
groups = {crumbly=3, soil=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name="default_grass_footstep", gain=0.4},
|
||||
@@ -761,7 +763,7 @@ minetest.register_node("default:dirt", {
|
||||
description = "Dirt",
|
||||
tiles ={"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3},
|
||||
groups = {crumbly=3, soil=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
@@ -1131,14 +1133,14 @@ minetest.register_node("default:sign_wall", {
|
||||
legacy_wallmounted = true,
|
||||
sounds = default.node_sound_defaults(),
|
||||
on_construct = function(pos)
|
||||
--local n = minetest.env:get_node(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
--local n = minetest.get_node(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", "field[text;;${text}]")
|
||||
meta:set_string("infotext", "\"\"")
|
||||
end,
|
||||
on_receive_fields = function(pos, formname, fields, sender)
|
||||
--print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields))
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
fields.text = fields.text or ""
|
||||
print((sender:get_player_name() or "").." wrote \""..fields.text..
|
||||
"\" to sign at "..minetest.pos_to_string(pos))
|
||||
@@ -1156,7 +1158,7 @@ minetest.register_node("default:chest", {
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]"..
|
||||
"list[current_name;main;0,0;8,4;]"..
|
||||
@@ -1166,7 +1168,7 @@ minetest.register_node("default:chest", {
|
||||
inv:set_size("main", 8*4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
@@ -1188,13 +1190,13 @@ minetest.register_node("default:chest_locked", {
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
after_place_node = function(pos, placer)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("owner", placer:get_player_name() or "")
|
||||
meta:set_string("infotext", "Locked Chest (owned by "..
|
||||
meta:get_string("owner")..")")
|
||||
end,
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec",
|
||||
"size[8,9]"..
|
||||
"list[current_name;main;0,0;8,4;]"..
|
||||
@@ -1205,12 +1207,12 @@ minetest.register_node("default:chest_locked", {
|
||||
inv:set_size("main", 8*4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
return inv:is_empty("main")
|
||||
end,
|
||||
allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
@@ -1221,7 +1223,7 @@ minetest.register_node("default:chest_locked", {
|
||||
return count
|
||||
end,
|
||||
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
@@ -1232,7 +1234,7 @@ minetest.register_node("default:chest_locked", {
|
||||
return stack:get_count()
|
||||
end,
|
||||
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if not has_locked_chest_privilege(meta, player) then
|
||||
minetest.log("action", player:get_player_name()..
|
||||
" tried to access a locked chest belonging to "..
|
||||
@@ -1273,7 +1275,7 @@ minetest.register_node("default:furnace", {
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", default.furnace_inactive_formspec)
|
||||
meta:set_string("infotext", "Furnace")
|
||||
local inv = meta:get_inventory()
|
||||
@@ -1282,7 +1284,7 @@ minetest.register_node("default:furnace", {
|
||||
inv:set_size("dst", 4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
if not inv:is_empty("fuel") then
|
||||
return false
|
||||
@@ -1306,7 +1308,7 @@ minetest.register_node("default:furnace_active", {
|
||||
legacy_facedir_simple = true,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
on_construct = function(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("formspec", default.furnace_inactive_formspec)
|
||||
meta:set_string("infotext", "Furnace");
|
||||
local inv = meta:get_inventory()
|
||||
@@ -1315,7 +1317,7 @@ minetest.register_node("default:furnace_active", {
|
||||
inv:set_size("dst", 4)
|
||||
end,
|
||||
can_dig = function(pos,player)
|
||||
local meta = minetest.env:get_meta(pos);
|
||||
local meta = minetest.get_meta(pos);
|
||||
local inv = meta:get_inventory()
|
||||
if not inv:is_empty("fuel") then
|
||||
return false
|
||||
@@ -1329,16 +1331,16 @@ minetest.register_node("default:furnace_active", {
|
||||
})
|
||||
|
||||
function hacky_swap_node(pos,name)
|
||||
local node = minetest.env:get_node(pos)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local node = minetest.get_node(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
local meta0 = meta:to_table()
|
||||
if node.name == name then
|
||||
return
|
||||
end
|
||||
node.name = name
|
||||
local meta0 = meta:to_table()
|
||||
minetest.env:set_node(pos,node)
|
||||
meta = minetest.env:get_meta(pos)
|
||||
minetest.set_node(pos,node)
|
||||
meta = minetest.get_meta(pos)
|
||||
meta:from_table(meta0)
|
||||
end
|
||||
|
||||
@@ -1347,7 +1349,7 @@ minetest.register_abm({
|
||||
interval = 1.0,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
for i, name in ipairs({
|
||||
"fuel_totaltime",
|
||||
"fuel_time",
|
||||
|
||||
@@ -27,52 +27,74 @@ minetest.register_alias("mapgen_mese", "default:mese")
|
||||
-- Ore generation
|
||||
--
|
||||
|
||||
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, ore_per_chunk, height_min, height_max)
|
||||
if maxp.y < height_min or minp.y > height_max then
|
||||
return
|
||||
end
|
||||
local y_min = math.max(minp.y, height_min)
|
||||
local y_max = math.min(maxp.y, height_max)
|
||||
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
|
||||
local pr = PseudoRandom(seed)
|
||||
local num_chunks = math.floor(chunks_per_volume * volume)
|
||||
local chunk_size = 3
|
||||
if ore_per_chunk <= 4 then
|
||||
chunk_size = 2
|
||||
end
|
||||
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
|
||||
--print("generate_ore num_chunks: "..dump(num_chunks))
|
||||
for i=1,num_chunks do
|
||||
local y0 = pr:next(y_min, y_max-chunk_size+1)
|
||||
if y0 >= height_min and y0 <= height_max then
|
||||
local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
|
||||
local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
|
||||
local p0 = {x=x0, y=y0, z=z0}
|
||||
for x1=0,chunk_size-1 do
|
||||
for y1=0,chunk_size-1 do
|
||||
for z1=0,chunk_size-1 do
|
||||
if pr:next(1,inverse_chance) == 1 then
|
||||
local x2 = x0+x1
|
||||
local y2 = y0+y1
|
||||
local z2 = z0+z1
|
||||
local p2 = {x=x2, y=y2, z=z2}
|
||||
if minetest.env:get_node(p2).name == wherein then
|
||||
minetest.env:set_node(p2, {name=name})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
--print("generate_ore done")
|
||||
end
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 8*8*8,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
height_min = -31000,
|
||||
height_max = 64,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 16*16*16,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
height_min = -5,
|
||||
height_max = 7,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 12*12*12,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
height_min = -16,
|
||||
height_max = -5,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 9*9*9,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
height_min = -31000,
|
||||
height_max = -17,
|
||||
})
|
||||
|
||||
-- for float islands and far scaled
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_coal",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 8*8*8,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
height_min = 200,
|
||||
height_max = 31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "default:stone_with_iron",
|
||||
wherein = "default:stone",
|
||||
clust_scarcity = 9*9*9,
|
||||
clust_num_ores = 5,
|
||||
clust_size = 3,
|
||||
height_min = 200,
|
||||
height_max = 31000,
|
||||
})
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, seed)
|
||||
generate_ore("default:stone_with_coal", "default:stone", minp, maxp, seed, 1/8/8/8, 5, -31000, 64)
|
||||
generate_ore("default:stone_with_iron", "default:stone", minp, maxp, seed+1, 1/16/16/16, 5, -5, 7)
|
||||
generate_ore("default:stone_with_iron", "default:stone", minp, maxp, seed+2, 1/12/12/12, 5, -16, -5)
|
||||
generate_ore("default:stone_with_iron", "default:stone", minp, maxp, seed+3, 1/9/9/9, 5, -31000, -17)
|
||||
-- Generate clay
|
||||
if maxp.y >= 2 and minp.y <= 0 then
|
||||
-- Assume X and Z lengths are equal
|
||||
@@ -82,17 +104,17 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
for divz=0+1,divs-1-1 do
|
||||
local cx = minp.x + math.floor((divx+0.5)*divlen)
|
||||
local cz = minp.z + math.floor((divz+0.5)*divlen)
|
||||
if minetest.env:get_node({x=cx,y=1,z=cz}).name == "default:water_source" and
|
||||
minetest.env:get_node({x=cx,y=0,z=cz}).name == "default:sand" then
|
||||
if minetest.get_node({x=cx,y=1,z=cz}).name == "default:water_source" and
|
||||
minetest.get_node({x=cx,y=0,z=cz}).name == "default:sand" then
|
||||
local is_shallow = true
|
||||
local num_water_around = 0
|
||||
if minetest.env:get_node({x=cx-divlen*2,y=1,z=cz+0}).name == "default:water_source" then
|
||||
if minetest.get_node({x=cx-divlen*2,y=1,z=cz+0}).name == "default:water_source" then
|
||||
num_water_around = num_water_around + 1 end
|
||||
if minetest.env:get_node({x=cx+divlen*2,y=1,z=cz+0}).name == "default:water_source" then
|
||||
if minetest.get_node({x=cx+divlen*2,y=1,z=cz+0}).name == "default:water_source" then
|
||||
num_water_around = num_water_around + 1 end
|
||||
if minetest.env:get_node({x=cx+0,y=1,z=cz-divlen*2}).name == "default:water_source" then
|
||||
if minetest.get_node({x=cx+0,y=1,z=cz-divlen*2}).name == "default:water_source" then
|
||||
num_water_around = num_water_around + 1 end
|
||||
if minetest.env:get_node({x=cx+0,y=1,z=cz+divlen*2}).name == "default:water_source" then
|
||||
if minetest.get_node({x=cx+0,y=1,z=cz+divlen*2}).name == "default:water_source" then
|
||||
num_water_around = num_water_around + 1 end
|
||||
if num_water_around >= 2 then
|
||||
is_shallow = false
|
||||
@@ -100,8 +122,8 @@ minetest.register_on_generated(function(minp, maxp, seed)
|
||||
if is_shallow then
|
||||
for x1=-divlen,divlen do
|
||||
for z1=-divlen,divlen do
|
||||
if minetest.env:get_node({x=cx+x1,y=0,z=cz+z1}).name == "default:sand" then
|
||||
minetest.env:set_node({x=cx+x1,y=0,z=cz+z1}, {name="default:clay"})
|
||||
if minetest.get_node({x=cx+x1,y=0,z=cz+z1}).name == "default:sand" then
|
||||
minetest.set_node({x=cx+x1,y=0,z=cz+z1}, {name="default:clay"})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -28,10 +28,10 @@ minetest.after(1.0, switch_player_visual)
|
||||
]]
|
||||
|
||||
minetest.register_node("experimental:soundblock", {
|
||||
tile_images = {"unknown_block.png", "default_tnt_bottom.png",
|
||||
tile_images = {"unknown_node.png", "default_tnt_bottom.png",
|
||||
"default_tnt_side.png", "default_tnt_side.png",
|
||||
"default_tnt_side.png", "default_tnt_side.png"},
|
||||
inventory_image = minetest.inventorycube("unknown_block.png",
|
||||
inventory_image = minetest.inventorycube("unknown_node.png",
|
||||
"default_tnt_side.png", "default_tnt_side.png"),
|
||||
groups = {dig_immediate=3},
|
||||
})
|
||||
@@ -66,7 +66,7 @@ test_sound()
|
||||
function on_step(dtime)
|
||||
-- print("experimental on_step")
|
||||
--[[
|
||||
objs = minetest.env:get_objects_inside_radius({x=0,y=0,z=0}, 10)
|
||||
objs = minetest.get_objects_inside_radius({x=0,y=0,z=0}, 10)
|
||||
for k, obj in pairs(objs) do
|
||||
name = obj:get_player_name()
|
||||
if name then
|
||||
@@ -86,17 +86,17 @@ function on_step(dtime)
|
||||
experimental.t1 = experimental.t1 + dtime
|
||||
if experimental.t1 >= 2 then
|
||||
experimental.t1 = experimental.t1 - 2
|
||||
minetest.log("time of day is "..minetest.env:get_timeofday())
|
||||
minetest.log("time of day is "..minetest.get_timeofday())
|
||||
if experimental.day then
|
||||
minetest.log("forcing day->night")
|
||||
experimental.day = false
|
||||
minetest.env:set_timeofday(0.0)
|
||||
minetest.set_timeofday(0.0)
|
||||
else
|
||||
minetest.log("forcing night->day")
|
||||
experimental.day = true
|
||||
minetest.env:set_timeofday(0.5)
|
||||
minetest.set_timeofday(0.5)
|
||||
end
|
||||
minetest.log("time of day is "..minetest.env:get_timeofday())
|
||||
minetest.log("time of day is "..minetest.get_timeofday())
|
||||
end
|
||||
--]]
|
||||
end
|
||||
@@ -133,8 +133,8 @@ minetest.register_node("experimental:tnt", {
|
||||
|
||||
minetest.register_on_punchnode(function(p, node)
|
||||
if node.name == "experimental:tnt" then
|
||||
minetest.env:remove_node(p)
|
||||
minetest.env:add_entity(p, "experimental:tnt")
|
||||
minetest.remove_node(p)
|
||||
minetest.add_entity(p, "experimental:tnt")
|
||||
nodeupdate(p)
|
||||
end
|
||||
end)
|
||||
@@ -262,7 +262,7 @@ minetest.register_on_chat_message(function(name, message)
|
||||
minetest.chat_send_player(name, "you don't have permission to interact")
|
||||
return true -- Handled chat message
|
||||
end
|
||||
local player = minetest.env:get_player_by_name(name)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if player == nil then
|
||||
print("Unable to spawn entity, player is nil")
|
||||
return true -- Handled chat message
|
||||
@@ -270,7 +270,7 @@ minetest.register_on_chat_message(function(name, message)
|
||||
local entityname = "experimental:dummyball"
|
||||
local p = player:getpos()
|
||||
p.y = p.y + 1
|
||||
minetest.env:add_entity(p, entityname)
|
||||
minetest.add_entity(p, entityname)
|
||||
minetest.chat_send_player(name, '"'..entityname
|
||||
..'" spawned.');
|
||||
return true -- Handled chat message
|
||||
@@ -323,7 +323,7 @@ end)
|
||||
minetest.register_on_generated(function(minp, maxp)
|
||||
--print("on_generated: minp="..dump(minp).." maxp="..dump(maxp))
|
||||
--cp = {x=(minp.x+maxp.x)/2, y=(minp.y+maxp.y)/2, z=(minp.z+maxp.z)/2}
|
||||
--minetest.env:add_node(cp, {name="sand"})
|
||||
--minetest.add_node(cp, {name="sand"})
|
||||
end)
|
||||
|
||||
-- Example setting get
|
||||
@@ -353,7 +353,7 @@ end)
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
print("TNT ABM action")
|
||||
pos.y = pos.y + 1
|
||||
minetest.env:add_node(pos, {name="papyrus"})
|
||||
minetest.add_node(pos, {name="papyrus"})
|
||||
end,
|
||||
})]]
|
||||
|
||||
@@ -364,7 +364,7 @@ end)
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
print("ABM: Sign text changed")
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_text("foo")
|
||||
end,
|
||||
})]]
|
||||
@@ -395,7 +395,7 @@ minetest.register_abm({
|
||||
end
|
||||
|
||||
pos.y = pos.y + 1
|
||||
n = minetest.env:get_node(pos)
|
||||
n = minetest.get_node(pos)
|
||||
print(dump(n))
|
||||
if n.name ~= "air" then
|
||||
return
|
||||
@@ -404,7 +404,7 @@ minetest.register_abm({
|
||||
pos.y = pos.y + 2
|
||||
ncpos = pos
|
||||
nctime = os.clock()
|
||||
minetest.env:add_node(ncpos, {name="nyancat"})
|
||||
minetest.add_node(ncpos, {name="nyancat"})
|
||||
end
|
||||
})
|
||||
|
||||
@@ -431,12 +431,12 @@ minetest.register_abm({
|
||||
p2 = {x = p1.x + s1[2], y = p1.y, z = p1.z + s1[3]}
|
||||
table.insert(ncold, 1, p0)
|
||||
while #ncold >= 10 do
|
||||
minetest.env:add_node(ncold[#ncold], {name="air"})
|
||||
minetest.add_node(ncold[#ncold], {name="air"})
|
||||
table.remove(ncold, #ncold)
|
||||
end
|
||||
minetest.env:add_node(p0, {name="nyancat_rainbow"})
|
||||
minetest.env:add_node(p1, {name="nyancat", param1=s0[4]})
|
||||
minetest.env:add_node(p2, {name="air"})
|
||||
minetest.add_node(p0, {name="nyancat_rainbow"})
|
||||
minetest.add_node(p1, {name="nyancat", param1=s0[4]})
|
||||
minetest.add_node(p2, {name="air"})
|
||||
ncpos = p1
|
||||
end
|
||||
end,
|
||||
@@ -448,20 +448,20 @@ minetest.register_node("experimental:tester_node_1", {
|
||||
groups = {oddly_breakable_by_hand=2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
-- This was known to cause a bug in minetest.item_place_node() when used
|
||||
-- via minetest.env:place_node(), causing a placer with no position
|
||||
-- via minetest.place_node(), causing a placer with no position
|
||||
paramtype2 = "facedir",
|
||||
|
||||
on_construct = function(pos)
|
||||
experimental.print_to_everything("experimental:tester_node_1:on_construct("..minetest.pos_to_string(pos)..")")
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("mine", "test")
|
||||
local timer = minetest.env:get_node_timer(pos)
|
||||
local timer = minetest.get_node_timer(pos)
|
||||
timer:start(4, 3)
|
||||
end,
|
||||
|
||||
after_place_node = function(pos, placer)
|
||||
experimental.print_to_everything("experimental:tester_node_1:after_place_node("..minetest.pos_to_string(pos)..")")
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
local meta = minetest.get_meta(pos)
|
||||
if meta:get_string("mine") == "test" then
|
||||
experimental.print_to_everything("correct metadata found")
|
||||
else
|
||||
@@ -493,14 +493,14 @@ minetest.register_craftitem("experimental:tester_tool_1", {
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
--print(dump(pointed_thing))
|
||||
if pointed_thing.type == "node" then
|
||||
if minetest.env:get_node(pointed_thing.under).name == "experimental:tester_node_1" then
|
||||
if minetest.get_node(pointed_thing.under).name == "experimental:tester_node_1" then
|
||||
local p = pointed_thing.under
|
||||
minetest.log("action", "Tester tool used at "..minetest.pos_to_string(p))
|
||||
minetest.env:dig_node(p)
|
||||
minetest.dig_node(p)
|
||||
else
|
||||
local p = pointed_thing.above
|
||||
minetest.log("action", "Tester tool used at "..minetest.pos_to_string(p))
|
||||
minetest.env:place_node(p, {name="experimental:tester_node_1"})
|
||||
minetest.place_node(p, {name="experimental:tester_node_1"})
|
||||
end
|
||||
end
|
||||
end,
|
||||
@@ -556,7 +556,7 @@ minetest.register_chatcommand("test1", {
|
||||
params = "",
|
||||
description = "Test 1: Modify player's inventory view",
|
||||
func = function(name, param)
|
||||
local player = minetest.env:get_player_by_name(name)
|
||||
local player = minetest.get_player_by_name(name)
|
||||
if not player then
|
||||
return
|
||||
end
|
||||
|
||||
@@ -79,14 +79,12 @@ minetest.register_craftitem(":rat", {
|
||||
description = "Rat",
|
||||
inventory_image = "rat.png",
|
||||
on_drop = function(item, dropper, pos)
|
||||
minetest.env:add_rat(pos)
|
||||
item:take_item()
|
||||
return item
|
||||
end,
|
||||
on_place = function(item, dropped, pointed)
|
||||
pos = minetest.get_pointed_thing_position(pointed, true)
|
||||
if pos ~= nil then
|
||||
minetest.env:add_rat(pos)
|
||||
item:take_item()
|
||||
return item
|
||||
end
|
||||
@@ -103,14 +101,12 @@ minetest.register_craftitem(":firefly", {
|
||||
description = "Firefly",
|
||||
inventory_image = "firefly.png",
|
||||
on_drop = function(item, dropper, pos)
|
||||
minetest.env:add_firefly(pos)
|
||||
item:take_item()
|
||||
return item
|
||||
end,
|
||||
on_place = function(item, dropped, pointed)
|
||||
pos = minetest.get_pointed_thing_position(pointed, true)
|
||||
if pos ~= nil then
|
||||
minetest.env:add_firefly(pos)
|
||||
item:take_item()
|
||||
return item
|
||||
end
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
# Uncomment settings by removing the preceding #.
|
||||
#
|
||||
# Further documentation:
|
||||
# http://c55.me/minetest/wiki/doku.php
|
||||
# http://wiki.minetest.com/
|
||||
#
|
||||
# NOTE: This file might not be up-to-date, refer to the
|
||||
# defaultsettings.cpp file for an up-to-date list:
|
||||
# https://bitbucket.org/celeron55/minetest/src/tip/src/defaultsettings.cpp
|
||||
# https://github.com/minetest/minetest/blob/master/src/defaultsettings.cpp
|
||||
#
|
||||
# A vim command to convert most of defaultsettings.cpp to conf file format:
|
||||
# :'<,'>s/\tsettings->setDefault("\([^"]*\)", "\([^"]*\)");.*/#\1 = \2/g
|
||||
@@ -51,6 +51,10 @@
|
||||
#keymap_screenshot = KEY_F12
|
||||
# If true, keymap_special1 instead of keymap_sneak is used for climbing down and descending
|
||||
#aux1_descends = false
|
||||
# Doubletaping the jump key toogles fly mode
|
||||
#doubletap_jump = false
|
||||
# If false aux1 is used to fly fast
|
||||
#always_fly_fast = true
|
||||
# Some (temporary) keys for debugging
|
||||
#keymap_print_debug_stacks = KEY_KEY_P
|
||||
#keymap_quicktune_prev = KEY_HOME
|
||||
@@ -76,6 +80,7 @@
|
||||
# when set to higher number than 0
|
||||
#fsaa = 0
|
||||
#vsync = false
|
||||
#fov = 72
|
||||
# Address to connect to (#blank = start local server)
|
||||
#address =
|
||||
# Enable random user input, for testing
|
||||
@@ -86,6 +91,16 @@
|
||||
#enable_fog = true
|
||||
# Enable a bit lower water surface; disable for speed (not quite optimized)
|
||||
#new_style_water = false
|
||||
# Constant volume liquids
|
||||
#liquid_finite = false
|
||||
# Update liquids every .. recommend for finite: 0.2
|
||||
#liquid_update = 1.0
|
||||
# When finite liquid: relax flowing blocks to source if level near max and N nearby source blocks, more realistic, but not true constant. values: 0,1,2,3,4 : 0 - disable, 1 - most aggresive
|
||||
#liquid_relax = 2
|
||||
# Optimization: faster cave flood (and not true constant)
|
||||
#liquid_fast_flood = 1
|
||||
# Underground water and lava springs, its infnity sources if liquid_finite enabled
|
||||
#underground_springs = 1
|
||||
# Enable nice leaves; disable for speed
|
||||
#new_style_leaves = true
|
||||
# Enable smooth lighting with simple ambient occlusion;
|
||||
@@ -93,7 +108,7 @@
|
||||
#smooth_lighting = true
|
||||
# Enable combining mainly used textures to a bigger one for improved speed
|
||||
# disable if it causes graphics glitches.
|
||||
#enable_texture_atlas = true
|
||||
#enable_texture_atlas = false
|
||||
# Path to texture directory. All textures are first searched from here.
|
||||
#texture_path =
|
||||
# Video back-end.
|
||||
@@ -113,10 +128,16 @@
|
||||
#farmesh_distance = 40
|
||||
# Enable/disable clouds
|
||||
#enable_clouds = true
|
||||
#cloud_height = 120
|
||||
#enable_3d_clouds = true
|
||||
# Use a cloud animation for the main menu background
|
||||
#menu_clouds = true
|
||||
# Path for screenshots
|
||||
#screenshot_path = .
|
||||
# Amount of view bobbing (0 = no view bobbing, 1.0 = normal, 2.0 = double)
|
||||
#view_bobbing_amount = 1.0
|
||||
# Amount of fall bobbing (0 = no fall bobbing, 1.0 = normal, 2.0 = double)
|
||||
#fall_bobbing_amount = 0.0
|
||||
# Anaglyph stereo
|
||||
#anaglyph = false
|
||||
#anaglyph_strength = 0.1
|
||||
@@ -124,6 +145,14 @@
|
||||
#console_color = (0,0,0)
|
||||
# In-game chat console background alpha (opaqueness, between 0 and 255)
|
||||
#console_alpha = 200
|
||||
# Selection box border color (R,G,B)
|
||||
#selectionbox_color = (0,0,0)
|
||||
# Crosshair color (R,G,B)
|
||||
#crosshair_color = (255,255,255)
|
||||
# Cross alpha (opaqueness, between 0 and 255)
|
||||
#crosshair_alpha = 255
|
||||
# Sensitivity multiplier
|
||||
#mouse_sensitivity = 0.2
|
||||
# Sound settings
|
||||
#enable_sound = true
|
||||
#sound_volume = 0.7
|
||||
@@ -140,11 +169,38 @@
|
||||
# (1: low level shaders; not implemented)
|
||||
# 2: enable high level shaders
|
||||
#enable_shaders = 2
|
||||
# The time in seconds it takes between repeated
|
||||
# right clicks when holding the right mouse button
|
||||
#repeat_rightclick_time = 0.25
|
||||
|
||||
# will only work for servers which use remote_media setting
|
||||
# and only for clients compiled with cURL
|
||||
#media_fetch_threads = 8
|
||||
|
||||
# Url to the server list displayed in the Multiplayer Tab
|
||||
#serverlist_url = servers.minetest.net
|
||||
# File in client/serverlist/ that contains your favorite servers displayed in the Multiplayer Tab
|
||||
#serverlist_file = favoriteservers.txt
|
||||
|
||||
#font_path = fonts/liberationsans.ttf
|
||||
#font_size = 13
|
||||
#mono_font_path = fonts/liberationmono.ttf
|
||||
#mono_font_size = 13
|
||||
|
||||
#
|
||||
# Server stuff
|
||||
#
|
||||
|
||||
# Name of server
|
||||
#server_name = Minetest server
|
||||
# Description of server
|
||||
#server_description = mine here
|
||||
# Domain name of server
|
||||
#server_address = game.minetest.net
|
||||
# Homepage of server
|
||||
#server_url = http://minetest.net
|
||||
# Automaticaly report to masterserver
|
||||
#server_announce = 0
|
||||
# Default game (default when creating a new world)
|
||||
#default_game = minetest
|
||||
# World directory (everything in the world is stored here)
|
||||
@@ -198,6 +254,10 @@
|
||||
#max_block_send_distance = 10
|
||||
# From how far blocks are generated for clients (value * 16 nodes)
|
||||
#max_block_generate_distance = 6
|
||||
# Number of extra blocks that can be loaded by /clearobjects at once
|
||||
# This is a trade-off between sqlite transaction overhead and
|
||||
# memory consumption (4096=100MB, as a rule of thumb)
|
||||
#max_clearobjects_extra_loaded_blocks = 4096
|
||||
# Interval of sending time of day to clients
|
||||
#time_send_interval = 5
|
||||
# Length of day/night cycle. 72=20min, 360=4min, 1=24hour, 0=day/night/whatever stays unchanged
|
||||
@@ -217,3 +277,87 @@
|
||||
#congestion_control_aim_rtt = 0.2
|
||||
#congestion_control_max_rate = 400
|
||||
#congestion_control_min_rate = 10
|
||||
# Specifies URL from which client fetches media instead of using UDP
|
||||
# $filename should be accessible from $remote_media$filename via cURL
|
||||
# (obviously, remote_media should end with a slash)
|
||||
# Files that are not present would be fetched the usual way
|
||||
#remote_media =
|
||||
# Level of logging to be written to debug.txt.
|
||||
# 0 = none, 1 = errors and debug, 2 = action, 3 = info, 4 = verbose
|
||||
#debug_log_level = 2
|
||||
# Maximum number of blocks that can be queued for loading.
|
||||
#emergequeue_limit_total = 256
|
||||
# Maximum number of blocks to be queued that are to be loaded from file.
|
||||
# Leave blank for an appropriate amount to be chosen automatically.
|
||||
#emergequeue_limit_diskonly =
|
||||
# Maximum number of blocks to be queued that are to be generated.
|
||||
# Leave blank for an appropriate amount to be chosen automatically.
|
||||
#emergequeue_limit_generate =
|
||||
# Number of emerge threads to use. Make this field blank, or increase this number, to use multiple threads.
|
||||
# On multiprocessor systems, this will improve mapgen speed greatly, at the cost of slightly buggy caves.
|
||||
#num_emerge_threads = 1
|
||||
|
||||
#
|
||||
# Physics stuff
|
||||
#
|
||||
|
||||
#movement_acceleration_default = 3
|
||||
#movement_acceleration_air = 2
|
||||
#movement_acceleration_fast = 10
|
||||
#movement_speed_walk = 4
|
||||
#movement_speed_crouch = 1.35
|
||||
#movement_speed_fast = 20
|
||||
#movement_speed_climb = 2
|
||||
#movement_speed_jump = 6.5
|
||||
#movement_speed_descend = 6
|
||||
#movement_liquid_fluidity = 1
|
||||
#movement_liquid_fluidity_smooth = 0.5
|
||||
#movement_liquid_sink = 10
|
||||
#movement_gravity = 9.81
|
||||
|
||||
#
|
||||
# Mapgen stuff
|
||||
#
|
||||
|
||||
# Name of map generator to be used. Currently v6, indev and singlenode are supported.
|
||||
#mg_name = v6
|
||||
# Water level of map.
|
||||
#water_level = 1
|
||||
# Size of chunks to be generated.
|
||||
#chunksize = 5
|
||||
# Map generation attributes. Currently supported: trees, caves, flat, v6_biome_blend, v6_jungles, dungeons
|
||||
#mg_flags = trees, caves, v6_biome_blend
|
||||
# How large deserts and beaches are
|
||||
#mgv6_freq_desert = 0.45
|
||||
#mgv6_freq_beach = 0.15
|
||||
# Perlin noise attributes for different map generation parameters
|
||||
# Offset, scale, spread factor, seed offset, number of octaves, persistence
|
||||
#mgv6_np_terrain_base = -4, 20, (250, 250, 250), 82341, 5, 0.6
|
||||
#mgv6_np_terrain_higher = 20, 16, (500, 500, 500), 85039, 5, 0.6
|
||||
#mgv6_np_steepness = 0.85, 0.5, (125, 125, 125), -932, 5, 0.7
|
||||
#mgv6_np_height_select = 0.5, 1, (250, 250, 250), 4213, 5, 0.69
|
||||
#mgv6_np_mud = 4, 2, (200, 200, 200), 91013, 3, 0.55
|
||||
#mgv6_np_beach = 0, 1, (250, 250, 250), 59420, 3, 0.50
|
||||
#mgv6_np_biome = 0, 1, (250, 250, 250), 9130, 3, 0.50
|
||||
#mgv6_np_cave = 6, 6, (250, 250, 250), 34329, 3, 0.50
|
||||
#mgv6_np_humidity = 0.5, 0.5, (500, 500, 500), 72384, 4, 0.66
|
||||
#mgv6_np_trees = 0, 1, (125, 125, 125), 2, 4, 0.66
|
||||
#mgv6_np_apple_trees = 0, 1, (100, 100, 100), 342902, 3, 0.45
|
||||
|
||||
#mgv7_np_terrain = 10, 12, (350, 350, 350), 82341, 5, 0.6
|
||||
#mgv7_np_bgroup = 0.5, 0.3125, (350, 350, 350), 5923, 2, 0.6
|
||||
#mgv7_np_heat = 25, 50, (500, 500, 500), 35293, 1, 0
|
||||
#mgv7_np_humidity = 50, 31.25, (750, 750, 750), 12094, 2, 0.6
|
||||
|
||||
# Offset, scale, spread factor, seed offset, number of octaves, persistence, farscale, farspread
|
||||
#mgindev_np_terrain_base = -4, 20, (250, 250, 250), 82341, 5, 0.6, 10, 10
|
||||
#mgindev_np_terrain_higher = 20, 16, (500, 500, 500), 85039, 5, 0.6, 10, 10
|
||||
#mgindev_np_steepness = 0.85, 0.5, (125, 125, 125), -932, 5, 0.7, 2, 10
|
||||
#mgindev_np_mud = 4, 2, (200, 200, 200), 91013, 3, 0.55, 1, 1
|
||||
#mgindev_np_float_islands1 = 0, 1, (64, 64, 64 ), 3683, 5, 0.5, 1, 1.5
|
||||
#mgindev_np_float_islands2 = 0, 1, (8, 8, 8 ), 9292, 2, 0.5, 1, 1.5
|
||||
#mgindev_np_float_islands3 = 0, 1, (256, 256, 256), 6412, 2, 0.5, 1, 0.5
|
||||
#mgindev_np_biome = 0, 1, (250, 250, 250), 9130, 3, 0.50, 1, 10
|
||||
|
||||
# Float islands starts from height, 0 to disable
|
||||
#mgindev_float_islands = 500
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
You can install Minetest mods by copying (and extracting) them into this folder.
|
||||
4
mods/mods_here.txt
Normal file
4
mods/mods_here.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
You can install Minetest mods by copying (and extracting) them into this folder.
|
||||
To enable them, go to the configure world window in the main menu or write
|
||||
load_mod_<modname> = true
|
||||
in world.mt in the world directory.
|
||||
@@ -1,90 +0,0 @@
|
||||
# Makefile for Irrlicht Examples
|
||||
# It's usually sufficient to change just the target name and source file list
|
||||
# and be sure that CXX is set to a valid compiler
|
||||
SOURCE_FILES = porting.cpp guiMessageMenu.cpp materials.cpp guiTextInputMenu.cpp guiInventoryMenu.cpp irrlichtwrapper.cpp guiPauseMenu.cpp defaultsettings.cpp mapnode.cpp tile.cpp voxel.cpp mapblockobject.cpp inventory.cpp debug.cpp serialization.cpp light.cpp filesys.cpp connection.cpp environment.cpp client.cpp server.cpp socket.cpp mapblock.cpp mapsector.cpp heightmap.cpp map.cpp player.cpp utility.cpp main.cpp test.cpp
|
||||
|
||||
DEBUG_TARGET = debugtest
|
||||
DEBUG_SOURCES = $(addprefix src/, $(SOURCE_FILES))
|
||||
DEBUG_BUILD_DIR = debugbuild
|
||||
DEBUG_OBJECTS = $(addprefix $(DEBUG_BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))
|
||||
|
||||
FAST_TARGET = fasttest
|
||||
FAST_SOURCES = $(addprefix src/, $(SOURCE_FILES))
|
||||
FAST_BUILD_DIR = fastbuild
|
||||
FAST_OBJECTS = $(addprefix $(FAST_BUILD_DIR)/, $(SOURCE_FILES:.cpp=.o))
|
||||
|
||||
SERVER_TARGET = server
|
||||
SERVER_SOURCE_FILES = porting.cpp materials.cpp defaultsettings.cpp mapnode.cpp voxel.cpp mapblockobject.cpp inventory.cpp debug.cpp serialization.cpp light.cpp filesys.cpp connection.cpp environment.cpp server.cpp socket.cpp mapblock.cpp mapsector.cpp heightmap.cpp map.cpp player.cpp utility.cpp servermain.cpp test.cpp
|
||||
SERVER_SOURCES = $(addprefix src/, $(SERVER_SOURCE_FILES))
|
||||
SERVER_BUILD_DIR = serverbuild
|
||||
SERVER_OBJECTS = $(addprefix $(SERVER_BUILD_DIR)/, $(SERVER_SOURCE_FILES:.cpp=.o))
|
||||
|
||||
IRRLICHTPATH = ../irrlicht/irrlicht-1.7.1
|
||||
JTHREADPATH = ../jthread/jthread-1.2.1
|
||||
|
||||
|
||||
all: fast
|
||||
|
||||
ifeq ($(HOSTTYPE), x86_64)
|
||||
LIBSELECT=64
|
||||
endif
|
||||
|
||||
debug: CXXFLAGS = -Wall -g -O1
|
||||
debug: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DDEBUG -DRUN_IN_PLACE
|
||||
debug: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread -lz
|
||||
|
||||
fast: CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686
|
||||
fast: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DUNITTEST_DISABLE -DRUN_IN_PLACE
|
||||
fast: LDFLAGS = -L/usr/X11R6/lib$(LIBSELECT) -L$(IRRLICHTPATH)/lib/Linux -L$(JTHREADPATH)/src/.libs -lIrrlicht -lGL -lXxf86vm -lXext -lX11 -ljthread -lz
|
||||
|
||||
server: CXXFLAGS = -O3 -ffast-math -Wall -fomit-frame-pointer -pipe -funroll-loops -mtune=i686
|
||||
server: CPPFLAGS = -I$(IRRLICHTPATH)/include -I/usr/X11R6/include -I$(JTHREADPATH)/src -DSERVER -DUNITTEST_DISABLE -DRUN_IN_PLACE
|
||||
server: LDFLAGS = -L$(JTHREADPATH)/src/.libs -ljthread -lz -lpthread
|
||||
|
||||
DEBUG_DESTPATH = bin/$(DEBUG_TARGET)
|
||||
FAST_DESTPATH = bin/$(FAST_TARGET)
|
||||
SERVER_DESTPATH = bin/$(SERVER_TARGET)
|
||||
|
||||
# Build commands
|
||||
|
||||
debug: $(DEBUG_BUILD_DIR) $(DEBUG_DESTPATH)
|
||||
fast: $(FAST_BUILD_DIR) $(FAST_DESTPATH)
|
||||
server: $(SERVER_BUILD_DIR) $(SERVER_DESTPATH)
|
||||
|
||||
$(DEBUG_BUILD_DIR):
|
||||
mkdir -p $(DEBUG_BUILD_DIR)
|
||||
$(FAST_BUILD_DIR):
|
||||
mkdir -p $(FAST_BUILD_DIR)
|
||||
$(SERVER_BUILD_DIR):
|
||||
mkdir -p $(SERVER_BUILD_DIR)
|
||||
|
||||
$(DEBUG_DESTPATH): $(DEBUG_OBJECTS)
|
||||
$(CXX) -o $@ $(DEBUG_OBJECTS) $(LDFLAGS)
|
||||
|
||||
$(FAST_DESTPATH): $(FAST_OBJECTS)
|
||||
$(CXX) -o $@ $(FAST_OBJECTS) $(LDFLAGS)
|
||||
|
||||
$(SERVER_DESTPATH): $(SERVER_OBJECTS)
|
||||
$(CXX) -o $@ $(SERVER_OBJECTS) $(LDFLAGS)
|
||||
|
||||
$(DEBUG_BUILD_DIR)/%.o: src/%.cpp
|
||||
$(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
$(FAST_BUILD_DIR)/%.o: src/%.cpp
|
||||
$(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
$(SERVER_BUILD_DIR)/%.o: src/%.cpp
|
||||
$(CXX) -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
|
||||
|
||||
clean: clean_debug clean_fast clean_server
|
||||
|
||||
clean_debug:
|
||||
@$(RM) $(DEBUG_OBJECTS) $(DEBUG_DESTPATH)
|
||||
|
||||
clean_fast:
|
||||
@$(RM) $(FAST_OBJECTS) $(FAST_DESTPATH)
|
||||
|
||||
clean_server:
|
||||
@$(RM) $(SERVER_OBJECTS) $(SERVER_DESTPATH)
|
||||
|
||||
.PHONY: all all_win32 clean clean_debug clean_win32 clean_fast clean_server
|
||||
@@ -1,4 +1,4 @@
|
||||
Minetest-c55 changelog
|
||||
Minetest changelog
|
||||
----------------------
|
||||
This should contain all the major changes.
|
||||
For minor stuff, refer to the commit log of the repository.
|
||||
|
||||
1171
po/da/minetest.po
1171
po/da/minetest.po
File diff suppressed because it is too large
Load Diff
1176
po/de/minetest.po
1176
po/de/minetest.po
File diff suppressed because it is too large
Load Diff
818
po/du/minetest.po
Normal file
818
po/du/minetest.po
Normal file
@@ -0,0 +1,818 @@
|
||||
# SOME DESCRIPTIVE TITLE. DUTCH TRANSLATION
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-04-18 15:28+0100\n"
|
||||
"Last-Translator: LS-Steeef \n"
|
||||
"Language-Team: \n"
|
||||
"Language: dutch\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.5.5\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Let op: Nog niet alle mods zijn geconfigueerd. \n"
|
||||
"De mods zullen automatisch worden ingeschakeld als je de configuratie "
|
||||
"bewaard."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"LEt op: Sommige ingestelde mods zijn vermist.\n"
|
||||
"Hun instellingen worden verwijderd als je de configuratie opslaat."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "ingeschakeld"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Allen inschakelen"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Allen uitschakelen"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "heeft nodig:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "is benodigd voor:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleer"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Bewaar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Instellingen bewaard."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Waarschuwing: Instellingen niet consistent."
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Nee"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Naam wereld"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Spel"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Maak aan"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Je bent gestorven."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Respawn"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
"Linkermuisknop: Verplaats alle items. Rechtermuisknop: Verplaats één item."
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr "Sneltoetsen."
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Use\" = Omlaag klimmen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Dubbelklik op \"jump\" om te vliegen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Toets is al in gebruik"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "druk op"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Vooruit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Achteruit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Gebruikwn"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Springen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Kruipen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Weggooien"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Rugzak"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Opdracht"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Console"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Vliegen aan/uit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Snel bewegen aan/uit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Noclip aan/uit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Range instellen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Print stacks"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Kan geen nieuwe wereld aanmaken: de naam bevat onjuiste tekens."
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Kan geen nieuwe wereld aanmaken: De naam bestaat al."
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Singleplayer"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Multiplayer"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Geavanceerd"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Instellingen"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Credits"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Selecteer Wereld:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Nieuw"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Instellingen"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Speel!"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Creative Modus"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Schade inschakelen"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Naam/Wachtwoord"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Favourieten:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Publieke Server lijst:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "IP-Adres/Poort"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Publieke server"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Favourieten"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Laat het adres leeg om een lokale server te starten."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Start het spel / Verbind"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Publiek"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Verwijder wereld"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Maak wereld aan"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Mooie bomen"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Mooie verlichting"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3D wolken"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Doorzichtig water"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-Mapping"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Bi-Linear Filtering"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Bi-Linear Filtering"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Tri-Linear Filtering"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Shaders"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Preload item visuals"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Enable Particles"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Finite liquid"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Sneltoetsen veranderen"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "IP-adres nodig."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Kan niets verwijderen: Geen wereld geselecteerd."
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Deze bestanden worden verwijderd"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Kan geen wereld aanmaken: Geen games gevonden"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Kan instellingen niet aanpassen: Niets geselecteerd"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Niet alle bestanden zijn verwijderd"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Huidig wachtwoord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Nieuw wachtwoord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Herhaal wachtwoord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Veranderen"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Wachtwoorden zijn niet gelijk!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Verander wachtwoord"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Exit naar menu"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Afsluiten"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Volume:"
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Exit"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Linkermuisknop"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Muiswielknop"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Rechtmuisknop"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "X knop 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Terug"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Wissen"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Return"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "X knop 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Kapitaal"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Control"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pauze"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Converteren"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Escape"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "Nonconvert"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Accepteren"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Modus veranderen"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Eerste"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Spatie"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Omlaag"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Uitvoeren"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Print"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Selecteren"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Omhoog"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Help"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Screenshot"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Linker Windowstoets"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Numpad 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Numpad 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Rechter Windowstoets"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Slaapknop"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Numpad 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Numpad 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Numpad 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Numpad 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Numpad 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Numpad 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Numpad *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Numpad +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Numpad -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Numpad /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Numpad 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Numpad 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Linker Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Rechter Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Linker Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Linker Menu"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Rechter Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Rechter Menu"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Komma"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Min"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Punt"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Plus"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Erase OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Clear"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Hoofdmenu"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Laden van wereld is mislukt"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "Geen wereld en adres geselecteerd. Niks te doen."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Kan niet de game laden of vinden."
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Onjuiste gamespec."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Connection error (timed out?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Default Besturing:\n"
|
||||
#~ "- WASD: Lopen\n"
|
||||
#~ "- Linkermuisknop: Graaf/Sla\n"
|
||||
#~ "- Rechtmuisknop: Plaats/Gebruik\n"
|
||||
#~ "- Muiswiel: selecteer item\n"
|
||||
#~ "- 0...9: selecteer item\n"
|
||||
#~ "- Shift: kruipen\n"
|
||||
#~ "- R: Toggle viewing all loaded chunks\n"
|
||||
#~ "- I: Rugzak\n"
|
||||
#~ "- ESC: Menu\n"
|
||||
#~ "- T: Chat\n"
|
||||
832
po/es/minetest.po
Normal file
832
po/es/minetest.po
Normal file
@@ -0,0 +1,832 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-16 14:51+0200\n"
|
||||
"Last-Translator: Diego Martínez <lkaezadl3@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: es\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"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr "Texturas de objetos..."
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr "Cargando..."
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr "Creando servidor..."
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr "Creando cliente..."
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr "Resolviendo dirección..."
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr "Conectando al servidor..."
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr "Apagando cosas..."
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Consulta debug.txt para obtener más detalles."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"ADVERTENCIA: Algunos mods no están aún configurados.\n"
|
||||
"Se habilitarán de forma predeterminada al guardar la configuración. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"ADVERTENCIA: Algunos mods configurados faltan.\n"
|
||||
"Su ajuste se quitará al guardar la configuración. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "Activado"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Activar todos"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Desactivar todos"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "Dependencias:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "es requerido por:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Configuración guardada. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "ADVERTENCIA: La configuración no corresponde. "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Sí"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "No"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Nombre del mundo"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Juego"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Crear"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Has muerto."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Revivir"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
"Click izquierdo: Mover todos los objetos. Click derecho: Mover un objeto."
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
"Combinaciones de teclas.(Si este menú da error, cambiar configuración en "
|
||||
"minetest.conf)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Usar\" = Descender"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Dos veces \"saltar\" para volar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "La tecla se está utilizando"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "Pulsa una tecla"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Adelante"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Atrás"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Izquierda"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Derecha"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Usar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Saltar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Caminar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Tirar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Inventario"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Comando"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Consola"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Activar Volar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Activar Modo Rápido"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Activar noclip"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Seleccionar distancia"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Imprimir Pilas"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "No se puede crear el mundo: El nombre contiene caracteres no válidos"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "No se puede crear el mundo: Hay un mundo con este nombre"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Un jugador"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Multijugador"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Avanzado"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Configuración"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Créditos"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Selecciona un mundo:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Borrar"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Nuevo"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Configurar"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Jugar"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Modo creativo"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Permitir daños"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Nombre/Clave"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Favoritos:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Lista de Servidores Públicos:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "Dirección/Puerto"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Servidores Públicos"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Mostrar Favoritos"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Conectar"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Dejar la dirección en blanco para iniciar un servidor local."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Iniciar juego/Conectar"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Público"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Eliminar Mundo"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Crear Mundo"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Árboles detallados"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Iluminación Suave"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "Nubes 3D"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Agua Opaca"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-Mapping"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Filtrado Anisotrópico"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Filtrado Bi-Lineal"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Filtrado Tri-Lineal"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Sombreadores"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Precarga elementos visuales"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Habilitar partículas"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Líquidos Finitos"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Configurar Teclas"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "Requiere una dirección."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "No se puede eliminar el mundo: ninguno ha sido seleccionado"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Archivos que se eliminarán"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "No se puede crear el mundo: No se encontraron juegos"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "No se puede configurar el mundo: Ninguno seleccionado"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "No se pudo eliminar todos los archivos del mundo"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Contraseña anterior"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Nueva contraseña"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Confirmar contraseña"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Cambiar"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "¡Las contraseñas no coinciden!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Modificar contraseña"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Volúmen del Sonido"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Salir al menú"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Salir al S.O."
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
"Controles Pred.:\n"
|
||||
"- WASD: moverse\n"
|
||||
"- Espacio: saltar/subir\n"
|
||||
"- Mayús.: puntillas/bajar\n"
|
||||
"- Q: soltar objeto\n"
|
||||
"- I: inventario\n"
|
||||
"- Ratón: girar/mirar\n"
|
||||
"- Ratón izq.: cavar/golpear\n"
|
||||
"- Ratón der.: colocar/usar\n"
|
||||
"- Rueda ratón: elegir objeto\n"
|
||||
"- T: conversar\n"
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Volúmen del Sonido: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Salir"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Click Izquierdo"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Click Centro"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Click Derecho"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "X Button 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Atras"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Limpiar"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Intro"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tabulador"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "X Button 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Bloq mayús"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Control"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menú"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pausa"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Mayús"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Convertir"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Escape"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "No convertir"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Aceptar"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "Fin"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Inicio"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Cambio de modo"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Siguiente"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Anterior"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Espacio"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Abajo"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Ejecutar"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Captura"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Seleccionar"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Arriba"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Ayuda"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Introducir"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Captura de pantalla"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Win Izquierdo"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Aplicaciones"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Teclado numérico 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Teclado Numérico 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Win Derecho"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Teclado numérico 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Teclado Numérico 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Teclado numérico 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Teclado Numérico 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Teclado Numérico 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Teclado numérico 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Teclado numérico *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Teclado Numérico +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Teclado Numérico -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Teclado Numérico /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Teclado Numérico 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Teclado Numérico 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Bloq Núm"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Bloq Despl"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Mayús Izqda"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Mayús Dcha"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Control Izqdo"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Menú Izquierdo"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Control Dcho"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Menú Derecho"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Coma"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Menos"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Punto"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Más"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Borrar OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Limpiar"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Menú Principal"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Fallo al iniciar el mundo"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
"No se seleccionó mundo y no se ha especificado una dirección. Nada que hacer."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "No se puede encontrar o cargar el juego \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Juego especificado no válido."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Error de conexión (¿tiempo agotado?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Controles predeterminados:\n"
|
||||
#~ "- WASD: Caminar \n"
|
||||
#~ "- Ratón, izquierdo: Cavar/Golpear\n"
|
||||
#~ "- Ratón, derecho: Poner bloque/Usar\n"
|
||||
#~ "- Ratón, rueda: seleccionar objecto\n"
|
||||
#~ "- 0... 9: Seleccionar objecto\n"
|
||||
#~ "- Mayúscula: caminar despacio\n"
|
||||
#~ "- R: Ajustar distancia de los pedazos cargados\n"
|
||||
#~ "- I: Inventario \n"
|
||||
#~ "- ESC: Este Menu\n"
|
||||
#~ "- T: Conversar\n"
|
||||
820
po/et/minetest.po
Normal file
820
po/et/minetest.po
Normal file
@@ -0,0 +1,820 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-04-03 17:02+0200\n"
|
||||
"Last-Translator: Pilz Adam <PilzAdam@gmx.de>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: et\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"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Vaata debug.txt info jaoks."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Hoiatus: Mõned modifikatsioonid pole sätitud veel.\n"
|
||||
"Need lülitatakse sisse kohe pärast sätete salvestamist."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"Hoiatus: Mõned konfigureeritud modifikatsioonid on kaotsi läinud.\n"
|
||||
"Nende sätted kustutatakse kui salvestada konfiguratsioon."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "Sisse lülitatud"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Lülita kõik sisse"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Lülita kõik välja"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "Vajab:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "Seda vajavad:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Tühista"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Salvesta"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Konfiguratsioon salvestatud. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Hoiatus: Konfiguratsioon pole kindel."
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Jah"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Ei"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Maailma nimi"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Mäng"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Loo"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Sa surid."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Ärka ellu"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
"Vasak hiireklõps: Liiguta kõiki asju, Parem hiireklõps: Liiguta üksikut asja"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Jätka"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
"Nupusätted. (Kui see menüü sassi läheb, siis kustuta asju failist minetest."
|
||||
"conf)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Tegevus\" = Roni alla"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Topeltklõpsa \"Hüppamist\" et sisse lülitada lendamine"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Nupp juba kasutuses"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "Vajuta nuppu"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Edasi"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Tagasi"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Vasakule"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Paremale"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Tegevus"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Hüppamine"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Hiilimine"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Viska maha"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Seljakott"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Jututuba"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Käsklus"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Konsool"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Lülita lendamine sisse"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Lülita kiirus sisse"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Lülita läbi seinte minek sisse"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Kauguse valik"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Prindi kogused"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Maailma loomine ebaõnnestus: Nimes esineb keelatud tähti"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Maailma loomine ebaõnnestus: Samanimeline maailm on juba olemas"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Üksikmäng"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Mitmikmäng"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Arenenud sätted"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Sätted"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Tänuavaldused"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Vali maailm:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Kustuta"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Uus"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Konfigureeri"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Mängi"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Kujunduslik mängumood"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Lülita valu sisse"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Nimi/Parool"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Lemmikud:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Avatud serverite nimekiri:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "IP/Port"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Näita avalikke"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Näita lemmikuid"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Liitu"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Jäta IP lahter tühjaks et alustada LAN serverit."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Alusta mängu / Liitu"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Avalik"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Kustuta maailm"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Loo maailm"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Uhked puud"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Ilus valgustus"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3D pilved"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Läbipaistmatu vesi"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Väga hea kvaliteet"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Anisotroopne Filtreerimine"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Bi-lineaarsed Filtreerimine"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Tri-Linear Filtreerimine"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Varjutajad"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Lae asjade visuaale"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Lülita osakesed sisse"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Löppev vedelik"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Vaheta nuppe"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "IP on vajalkik."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Maailma kustutamine ebaõnnestus: Maailma pole valitud"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Failid mida kustutada"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Maailma loomine ebaõnnestus: Mängu ei leitud"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Maailma konfigureerimine ebaõnnestus: Pole midagi valitud"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Kõigi maailma failide kustutamine ebaõnnestus"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Vana parool"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Uus parool"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Kinnita parooli"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Muuda"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Paroolid ei ole samad!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Jätka"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Vaheta parooli"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Hääle volüüm"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Välju menüüsse"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Välju mängust"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Hääle Volüüm: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Välju"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Vasak nupp"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Keskmine nupp"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Parem nupp"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "X Nuppp 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Tagasi"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Tühjenda"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Enter"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Reavahetus"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "X Nupp 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Caps Lock"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "CTRL"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menüü"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Paus"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift,"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Konverteeri"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Põgene"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Viimane"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "Konverteerimatta"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Nõustu"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "Lõpeta"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Kodu"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Moodi vahetamine"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Järgmine"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Eelnev"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Tühik"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Alla"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Soorita"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Prindi"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Vali"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Üles"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Abi"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Sisesta"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Mängupilt"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Vasak Windowsi nupp"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Aplikatsioonid"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Numbrilaual 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Numbrilaual 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Parem Windowsi nupp"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Maga"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Numbrilaual 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Numbrilaual 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Numbrilaual 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Numbrilaual 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Numbrilaual 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Numbrilaual 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Numbrilaual *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Numbrilaual +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Numbrilaual -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Numbrilaual /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Numbrilaual 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Numbrilaual 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Numbrilaual Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll lukk"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Vasak Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Parem Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Vasak CTRL"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Vasak Menüü"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Parem CTRL"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Parem Menüü"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Koma"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Miinus"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Punkt"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Pluss"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Kustuta OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Tühi"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Suumi"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Menüü"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Maailma initsialiseerimine ebaõnnestus"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "Pole valitud ei maailma ega IP aadressi. Pole midagi teha."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Ei leia ega suuda jätkata mängu."
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Vale mängu ID."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Ühenduse viga (Aeg otsas?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Algsed nupusätted:\n"
|
||||
#~ "- WASD: Kõnni\n"
|
||||
#~ "- Vasak hiireklõps: Kaeva/löö\n"
|
||||
#~ "- Parem hiireklõps: Aseta/kasuta\n"
|
||||
#~ "- Hiireratas: Vali asi\n"
|
||||
#~ "- 0...9: Vali asi\n"
|
||||
#~ "- Shift: Hiili\n"
|
||||
#~ "- R: Vaheta nägemiskaugust\n"
|
||||
#~ "- I: Seljakott\n"
|
||||
#~ "- ESC: Menüü\n"
|
||||
#~ "- T: Jututupa\n"
|
||||
1189
po/fr/minetest.po
1189
po/fr/minetest.po
File diff suppressed because it is too large
Load Diff
1172
po/it/minetest.po
1172
po/it/minetest.po
File diff suppressed because it is too large
Load Diff
829
po/ja/minetest.po
Normal file
829
po/ja/minetest.po
Normal file
@@ -0,0 +1,829 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-03-07 23:06+0200\n"
|
||||
"Last-Translator: Mitori Itoshiki <mito551@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ja\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"警告: マインテストの改造がいくつか設定されていません。\n"
|
||||
"これらを設定を保存すると自動で有効化されます。 "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"警告: いくつかの設定みの改造ファイルが見つかりません.\n"
|
||||
"これらの情報は設定を保存すると削除されます. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "有効にしました"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "全部を有効にしました"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "全部を無効にしました"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "この改造ファイルが必要です:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "この改造に必要されます:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "キャンセル"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "保存"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "設定を保存しました. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "注意:設定が一定でわありません。"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "はい"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "いいえ"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "ワールド名"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "ゲーム"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "作成"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "死亡しました。"
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "リスポーン"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr "左クリックは全部のアイテムを動かす,右クリックは一つのアイテムを動かす"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "続く"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr "キーバインド"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "「使う」は下りる"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "「ジャンプ」を二回押すと飛べる"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "既に使われているキーです"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "キー入力待ち"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "前進"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "後退"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "左へ進む"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "右へ進む"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "使う"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "ジャンプ"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "こっそり進む"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "落とす"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "インベントリ"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "チャット"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "コマンド"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "コンソール"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "飛べるモードをトグル"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "ファストモードをトグル"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "ノクリップモードをトグル"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "範囲選択"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "スタックの表示"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "ワールドを作成できません: 名前に無効な文字が含まれています"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "ワールドを作成できません: 同名のワールドが既に存在しています"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "シングルプレイヤー"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "マルチプレイヤー"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "高度"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "設定"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "クレジット"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "ワールド選択:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "削除"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "新規作成"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "設定"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "選択した世界に入る"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "クリエイティブモード"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "ダメージ有効"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "名前/パスワード"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
#, fuzzy
|
||||
msgid "Favorites:"
|
||||
msgstr "お気に入りを見せる"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "アドレス/ポート"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "公共を見せる"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "お気に入りを見せる"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "接続"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "アドレスを入力しないかぎりロカルサーバーを開始。"
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "ゲーム開始 / 接続"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
#, fuzzy
|
||||
msgid "Public"
|
||||
msgstr "公共を見せる"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "ワールド削除"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "ワールド作成"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "きれいな木"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
#, fuzzy
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "自然な光表現"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3Dの雲"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "不透明な水面"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "ミップマップ"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "異方性フィルタリング"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "バイリニアフィルタリング"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "トリリニアフィルタリング"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "シェーダー"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "アイテム外観のプリロード"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "破片表現の有効化"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "キー割当て変更"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "アドレスが必要です."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "ワールドを削除できません: 何も選択されていません"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "削除されるファイル"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "ワールドを作成できません: ゲームが見つかりませんでした"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "ワールドの設定ができません: 何も選択されていません"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "ワールドファイルの全ての削除に失敗"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "古いパスワード"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "新しいパスワード"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "パスワードの確認"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "変更"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "新しいパスワードが一致しません!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "続ける"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "パスワードの変更"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "メニューへ戻る"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "終了"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Back Space"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "消す"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Enter"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Caps Lock"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Ctrl"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "カタカナ/ひらがな"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "メニュー"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "変換"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Esc"
|
||||
|
||||
#: 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
|
||||
#, fuzzy
|
||||
msgid "Accept"
|
||||
msgstr "Accept"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "モードを変更"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Page Down"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Page Up"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
#, fuzzy
|
||||
msgid "Space"
|
||||
msgstr "Space"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
#, fuzzy
|
||||
msgid "Down"
|
||||
msgstr "Down"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
#, fuzzy
|
||||
msgid "Execute"
|
||||
msgstr "Execute"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
#, fuzzy
|
||||
msgid "Print"
|
||||
msgstr "Print"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
#, fuzzy
|
||||
msgid "Select"
|
||||
msgstr "Select"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
#, fuzzy
|
||||
msgid "Up"
|
||||
msgstr "Up"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
#, fuzzy
|
||||
msgid "Help"
|
||||
msgstr "Help"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
#, fuzzy
|
||||
msgid "Snapshot"
|
||||
msgstr "Snapshot"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#, fuzzy
|
||||
msgid "Left Windows"
|
||||
msgstr "Left Windows"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#, fuzzy
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#, fuzzy
|
||||
msgid "Numpad 0"
|
||||
msgstr "Numpad 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#, fuzzy
|
||||
msgid "Numpad 1"
|
||||
msgstr "Numpad 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#, fuzzy
|
||||
msgid "Right Windows"
|
||||
msgstr "Right Windows"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#, fuzzy
|
||||
msgid "Sleep"
|
||||
msgstr "Sleep"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
#, fuzzy
|
||||
msgid "Numpad 2"
|
||||
msgstr "Numpad 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
#, fuzzy
|
||||
msgid "Numpad 3"
|
||||
msgstr "Numpad 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
#, fuzzy
|
||||
msgid "Numpad 4"
|
||||
msgstr "Numpad 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
#, fuzzy
|
||||
msgid "Numpad 5"
|
||||
msgstr "Numpad 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
#, fuzzy
|
||||
msgid "Numpad 6"
|
||||
msgstr "Numpad 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
#, fuzzy
|
||||
msgid "Numpad 7"
|
||||
msgstr "Numpad 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
#, fuzzy
|
||||
msgid "Numpad *"
|
||||
msgstr "Numpad *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
#, fuzzy
|
||||
msgid "Numpad +"
|
||||
msgstr "Numpad +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
#, fuzzy
|
||||
msgid "Numpad -"
|
||||
msgstr "Numpad -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
#, fuzzy
|
||||
msgid "Numpad /"
|
||||
msgstr "Numpad /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
#, fuzzy
|
||||
msgid "Numpad 8"
|
||||
msgstr "Numpad 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
#, fuzzy
|
||||
msgid "Numpad 9"
|
||||
msgstr "Numpad 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "左Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "右Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "左Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "左メニュー"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "右Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "右メニュー"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "読点"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
#, fuzzy
|
||||
msgid "Minus"
|
||||
msgstr "Minus"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
#, fuzzy
|
||||
msgid "Period"
|
||||
msgstr "Period"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
#, fuzzy
|
||||
msgid "Plus"
|
||||
msgstr "Plus"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
#, fuzzy
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
#, fuzzy
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "Erase OEF"
|
||||
msgstr "Erase OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Clear"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "ズーム"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "メインメニュー"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "ワールドの初期化に失敗"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "ゲームをロードか見つかるのに失敗"
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "接続エラー (タイムアウトか?)"
|
||||
785
po/ko/minetest.po
Normal file
785
po/ko/minetest.po
Normal file
@@ -0,0 +1,785 @@
|
||||
# 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-05-13 18:26+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/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Print"
|
||||
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:1680
|
||||
msgid "Main Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr ""
|
||||
824
po/ky/minetest.po
Normal file
824
po/ky/minetest.po
Normal file
@@ -0,0 +1,824 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-18 14:59+0200\n"
|
||||
"Last-Translator: Chynggyz Jumaliev <translatorky@lavabit.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: ky\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr "Буюм текстуралары..."
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr "Жүктөлүүдө..."
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr "Сервер жаратылууда...."
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr "Клиент жаратылууда..."
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr "Дареги чечилүүдө..."
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr "Серверге туташтырылууда..."
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr "Оюн өчүрүлүүдө..."
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Толугураак маалымат үчүн debug.txt файлын текшериңиз."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "күйгүзүлгөн"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Баарын күйгүзүү"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Баарын өчүрүү"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "көз карандылыктары:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "талап кылынганы:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Жокко чыгаруу"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Сактоо"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Конфигурация сакталды. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Эскертүү: Туура эмес конфигурация. "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Ооба"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Жок"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Дүйнө аты"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Оюн"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Жаратуу"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Сиз өлдүңүз."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Кайтадан жаралуу"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr "Сол баскычы: Бардык буюмдарды ташуу, Оң баскычы: Бир буюмду ташуу"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Улантуу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "баскычты басыңыз"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Алга"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Артка"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Солго"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Оңго"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Колдонуу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Секирүү"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Уурданып басуу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Ыргытуу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Мүлк-шайман"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Маек"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Команда"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Консоль"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Учууга которуу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Тез басууга которуу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Бир кишилик"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Көп кишилик"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Кошумча"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Ырастоолор"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Алкыштар"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Дүйнөнү тандаңыз:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Өчүрүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Жаңы"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Ырастоо"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Ойноо"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Жаратуу режими"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Убалды күйгүзүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Аты/сырсөзү"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Тандалмалар:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Жалпылык серверлердин тизмеси:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "Дареги/порту"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Жалпылыкты көрсөтүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Тандалмаларды көрсөтүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Туташуу"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Жергиликтүү серверди жүргүзүү үчүн даректи бош калтырыңыз."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Оюнду баштоо/туташуу"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Жалпылык"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Дүйнөнү өчүрүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Дүйнөнү жаратуу"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Кооз бактар"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Тегиз жарык"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3D-булуттар"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Күңүрт суу"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-текстуралоо"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Анизатропия чыпкалоосу"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Экисызык чыпкалоосу"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Үчсызык чыпкалоосу"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Көлөкөлөгүчтөр"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Бөлүкчөлөрдү күйгүзүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Чектүү суюктук"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Баскычтарды өзгөртүү"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "Дареги талап кылынат."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Дүнөнү жаратуу мүмкүн эмес: Эч нерсе тандалган жок"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Өчүрүлө турган файлдар"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Дүйнөнү жаратуу мүмкүн эмес: Оюндар табылган жок"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Дүйнөнү ырастоо мүмкүн эмес: Эч нерсе тандалган жок"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Бардык дүйнө файлдарын өчүрүү оңунан чыккан жок"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Эски сырсөз"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Жаңы сырсөз"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Сырсөздү аныктоо"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Өзгөртүү"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Сырсөздөр дал келген жок!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Улантуу"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Сырсөздү өзгөртүү"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Үн көлөмү"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Менюга чыгуу"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Оюндан чыгуу"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
"Жарыяланбас башкаруу:\n"
|
||||
"- WASD: басуу\n"
|
||||
"- Боштугу: секирүү/өйдө чыгуу\n"
|
||||
"- Shift: уурданып басуу/ылдый түшүү\n"
|
||||
"- Q: буюмду таштоо\n"
|
||||
"- I: мүлк-шайман\n"
|
||||
"- Чычканы: бурулуу/кароо\n"
|
||||
"- Сол чычкан баскычы: казуу/согуу\n"
|
||||
"- Оң чычкан баскычы: коюу/колдонуу\n"
|
||||
"- Чычкан дөңгөлөгү: буюмду тандоо\n"
|
||||
"- T: маек\n"
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Үн көлөмү: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Caps Lock"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Ctrl"
|
||||
|
||||
#: 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 "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Esc"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: 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 "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: 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 "Print"
|
||||
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 "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Тез сүрөт"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Сол Windows"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Тиркемелер"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Кош. клав. 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Кош. клав. 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Оң Windows"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Уйку"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Кош. клав. 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Кош. клав. 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Кош. клав. 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Кош. клав. 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Кош. клав. 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Кош. клав. 7"
|
||||
|
||||
#: 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 "Кош. клав. 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Кош. клав. 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Сол Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Оң Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Сол Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Сол меню"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Оң Ctrl"
|
||||
|
||||
#: 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:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Башкы меню"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "Дүйнө тандалган жок жана дареги киргизилген жок. Кылууга эч нерсе жок."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Оюнду табуу же жүктөө мүмкүн эмес \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Туташтыруу катасы (убактыңыз өтүп кеттиби?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Жарыяланбас башкаруу:\n"
|
||||
#~ "- WASD: Басуу\n"
|
||||
#~ "- Сол кнопкасы: казуу/согуу\n"
|
||||
#~ "- Оң кнопкасы: коюу/колдонуу\n"
|
||||
#~ "- Чычкан дөңгөлөгү: буюмду тандоо\n"
|
||||
#~ "- 0...9: буюмду тандоо\n"
|
||||
#~ "- Shift: уурданып басуу\n"
|
||||
#~ "- R: алыс кароо\n"
|
||||
#~ "- I: мүлк-шайман\n"
|
||||
#~ "- ESC: бул меню\n"
|
||||
#~ "- T: маек\n"
|
||||
561
po/minetest.pot
561
po/minetest.pot
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-06-04 23:25+0300\n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+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"
|
||||
@@ -17,30 +17,109 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:120
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:126
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:116
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:135
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:159
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:165 src/guiKeyChangeMenu.cpp:374 src/keycode.cpp:221
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr ""
|
||||
@@ -49,578 +128,658 @@ msgstr ""
|
||||
msgid "Respawn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:111
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Forward"
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:138
|
||||
msgid "Backward"
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:154 src/keycode.cpp:226
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:169 src/keycode.cpp:226
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:185
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:200
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:216
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:231
|
||||
msgid "Drop"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:246
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:262
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:276
|
||||
msgid "Command"
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:306
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:321
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:336
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:353
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:368
|
||||
msgid "Save"
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:626 src/guiKeyChangeMenu.cpp:631
|
||||
#: src/guiKeyChangeMenu.cpp:636 src/guiKeyChangeMenu.cpp:641
|
||||
#: src/guiKeyChangeMenu.cpp:646 src/guiKeyChangeMenu.cpp:651
|
||||
#: src/guiKeyChangeMenu.cpp:656 src/guiKeyChangeMenu.cpp:661
|
||||
#: src/guiKeyChangeMenu.cpp:666 src/guiKeyChangeMenu.cpp:671
|
||||
#: src/guiKeyChangeMenu.cpp:676 src/guiKeyChangeMenu.cpp:681
|
||||
#: src/guiKeyChangeMenu.cpp:686 src/guiKeyChangeMenu.cpp:691
|
||||
#: src/guiKeyChangeMenu.cpp:696 src/guiKeyChangeMenu.cpp:701
|
||||
msgid "press Key"
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:217
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:218
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:219
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:220
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:221
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:252
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:274 src/keycode.cpp:227
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:281
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:289
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:304 src/keycode.cpp:246
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:315 src/guiMainMenu.cpp:492
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:321 src/guiMainMenu.cpp:498
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:341 src/guiMainMenu.cpp:414
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:368 src/guiMainMenu.cpp:441
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:394 src/guiMainMenu.cpp:473
|
||||
msgid "Start Game / Connect"
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:464
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:505 src/guiMainMenu.cpp:833
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:512
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:546
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:552
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:558
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:564
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:573
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:804
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:822
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:837
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:853
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:866
|
||||
msgid "Nothing here"
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:915
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMessageMenu.cpp:109 src/guiTextInputMenu.cpp:123
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:125
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:141
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:158
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:167
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:118
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:127
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:135
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:142
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:149
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: Walk\n"
|
||||
"- Mouse left: dig/hit\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\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"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:221
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:221
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:221
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:221
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:222
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:222
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:222
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:222
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:222
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:230
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:231
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:231
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:231
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:231
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:231
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:237
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:237
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:238
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:238
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:245
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:245
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:246
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:246
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:246
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:246
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr ""
|
||||
|
||||
#: src/keycode.cpp:246
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1379
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1601
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1613
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1621
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1635
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1675
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:1686
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
|
||||
790
po/nb/minetest.po
Normal file
790
po/nb/minetest.po
Normal file
@@ -0,0 +1,790 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-02 08:17+0200\n"
|
||||
"Last-Translator: Sindre Tellevik <graknol@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: nb\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"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Advarsel: Noen modifikasjoner er ikke konfigurert enda. \n"
|
||||
"De vil bli aktivert som standard når du lagrer konfigurasjonen."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"Advarsel: Noen konfigurerte modifikasjoner mangler. \n"
|
||||
"Instillingene deres vil bli fjernet når du lagrer konfigurasjonen."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "aktivert"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Aktiver Alle"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Deaktiver Alle"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "Avhenger av:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "trengs av:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Avbryt"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Lagre"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Konfigurasjon lagret.…"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Nei"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Navnet på verdenen"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Spill"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Opprett"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Du døde."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Print"
|
||||
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:1680
|
||||
msgid "Main Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr ""
|
||||
819
po/nl/minetest.po
Normal file
819
po/nl/minetest.po
Normal file
@@ -0,0 +1,819 @@
|
||||
# SOME DESCRIPTIVE TITLE. DUTCH TRANSLATION
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-01 22:18+0200\n"
|
||||
"Last-Translator: Sfan5 . <sfan5@live.de>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: nl\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"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Let op: Nog niet alle mods zijn geconfigueerd. \n"
|
||||
"De mods zullen automatisch worden ingeschakeld als je de configuratie "
|
||||
"bewaard. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"LEt op: Sommige ingestelde mods zijn vermist.\n"
|
||||
"Hun instellingen worden verwijderd als je de configuratie opslaat. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "ingeschakeld"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Allen inschakelen"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Allen uitschakelen"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "heeft nodig:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "is benodigd voor:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleer"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Bewaar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Instellingen bewaard. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Waarschuwing: Instellingen niet consistent. "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Nee"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Naam wereld"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Spel"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Maak aan"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Je bent gestorven."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Respawn"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
"Linkermuisknop: Verplaats alle items. Rechtermuisknop: Verplaats één item"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr "Sneltoetsen."
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Use\" = Omlaag klimmen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Dubbelklik op \"jump\" om te vliegen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Toets is al in gebruik"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "druk op"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Vooruit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Achteruit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Gebruikwn"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Springen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Kruipen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Weggooien"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Rugzak"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Opdracht"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Console"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Vliegen aan/uit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Snel bewegen aan/uit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Noclip aan/uit"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Range instellen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Print stacks"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Kan geen nieuwe wereld aanmaken: de naam bevat onjuiste tekens"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Kan geen nieuwe wereld aanmaken: De naam bestaat al"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Singleplayer"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Multiplayer"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Geavanceerd"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Instellingen"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Credits"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Selecteer Wereld:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Verwijderen"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Nieuw"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Instellingen"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Speel"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Creative Modus"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Schade inschakelen"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Naam/Wachtwoord"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Favourieten:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Publieke Server lijst:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "IP-Adres/Poort"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Publieke server"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Favourieten"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Verbinden"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Laat het adres leeg om een lokale server te starten."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Start het spel / Verbind"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Publiek"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Verwijder wereld"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Maak wereld aan"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Mooie bomen"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Mooie verlichting"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3D wolken"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Doorzichtig water"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-Mapping"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Bi-Linear Filtering"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Bi-Linear Filtering"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Tri-Linear Filtering"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Shaders"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Preload item visuals"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Enable Particles"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Finite liquid"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Sneltoetsen veranderen"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "IP-adres nodig."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Kan niets verwijderen: Geen wereld geselecteerd"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Deze bestanden worden verwijderd"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Kan geen wereld aanmaken: Geen games gevonden"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Kan instellingen niet aanpassen: Niets geselecteerd"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Niet alle bestanden zijn verwijderd"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Huidig wachtwoord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Nieuw wachtwoord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Herhaal wachtwoord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Veranderen"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Wachtwoorden zijn niet gelijk!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Verander wachtwoord"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Volume"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Exit naar menu"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Afsluiten"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Volume: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Exit"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Linkermuisknop"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Muiswielknop"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Rechtmuisknop"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "X knop 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Terug"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Wissen"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Return"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "X knop 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Kapitaal"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Control"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pauze"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Converteren"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Escape"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "Nonconvert"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Accepteren"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Modus veranderen"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Volgende"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Eerste"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Spatie"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Omlaag"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Uitvoeren"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Print"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Selecteren"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Omhoog"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Help"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Screenshot"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Linker Windowstoets"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Numpad 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Numpad 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Rechter Windowstoets"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Slaapknop"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Numpad 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Numpad 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Numpad 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Numpad 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Numpad 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Numpad 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Numpad *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Numpad +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Numpad -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Numpad /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Numpad 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Numpad 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Linker Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Rechter Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Linker Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Linker Menu"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Rechter Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Rechter Menu"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Komma"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Min"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Punt"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Plus"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Erase OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Clear"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Hoofdmenu"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Laden van wereld is mislukt"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "Geen wereld en adres geselecteerd. Niks te doen."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Kan niet de game laden of vinden \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Onjuiste gamespec."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Connection error (timed out?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Default Besturing:\n"
|
||||
#~ "- WASD: Lopen\n"
|
||||
#~ "- Linkermuisknop: Graaf/Sla\n"
|
||||
#~ "- Rechtmuisknop: Plaats/Gebruik\n"
|
||||
#~ "- Muiswiel: selecteer item\n"
|
||||
#~ "- 0...9: selecteer item\n"
|
||||
#~ "- Shift: kruipen\n"
|
||||
#~ "- R: Toggle viewing all loaded chunks\n"
|
||||
#~ "- I: Rugzak\n"
|
||||
#~ "- ESC: Menu\n"
|
||||
#~ "- T: Chat\n"
|
||||
822
po/pl/minetest.po
Normal file
822
po/pl/minetest.po
Normal file
@@ -0,0 +1,822 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-04-21 23:38+0200\n"
|
||||
"Last-Translator: Daniel \"Tracerneo\" Ziółkowski <ziolkoneo@gmail.com>\n"
|
||||
"Language-Team: Polish <>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Sprawdź plik debug.txt by uzyskać więcej informacji."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Uwaga: Niektóre z modyfikacji nie zostały jeszcze skonfigurowane.\n"
|
||||
"Zostaną domyślnie włączone gdy zapiszesz konfigurację. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"Ostrzeżenie: Niektóre z modyfikacji nie zostały znalezione.\n"
|
||||
"Ich ustawienia zostaną usunięte gdy zapiszesz konfigurację. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "włączone"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Włącz wszystkie"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Wyłącz wszystkie"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "zależne od:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "wymagane przez:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Zapisz"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Konfiguracja zapisana. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Ostrzeżenie: Plik konfiguracyjny niespójny. "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Tak"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Nie"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Nazwa świata"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Gra"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Utwórz"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Zginąłeś."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Wróć do gry"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
"Lewy przycisk myszy: przenieś wszystkie przedmioty, Prawy przycisk myszy: "
|
||||
"przenieś pojedynczy przedmiot"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Kontynuuj"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
"Zdefiniowane klawisze. (Jeżeli to menu nie działa, usuń skonfigurowane "
|
||||
"klawisze z pliku minetest.conf)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Użyj\" = wspinaj się"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Wciśnij dwukrotnie \"Skok\" by włączyć tryb latania"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Klawisz już zdefiniowany"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "naciśnij klawisz"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Przód"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Tył"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Lewo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Prawo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Użyj"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Skok"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Skradanie"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Upuść"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Ekwipunek"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Czat"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Komenda"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Konsola"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Przełącz tryb latania"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Przełącz tryb szybki"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Przełącz tryb noclip"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Zasięg widzenia"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Drukuj stosy"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Nie można stworzyć świata: Nazwa zawiera niedozwolone znaki"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Nie można stworzyć świata: Istnieje już świat o takiej nazwie"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Pojedynczy gracz"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Gra wieloosobowa"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Zaawansowane"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Ustawienia"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Autorzy"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Wybierz świat:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Usuń"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Nowy"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Ustaw"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Graj"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Tryb kreatywny"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Włącz obrażenia"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Nazwa gracza/Hasło"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Ulubione:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Lista publicznych serwerów:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "Adres/Port"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Pokaż publiczne"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Pokaż ulubione"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Połącz"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Pozostaw pole adresu puste, by uruchomić serwer lokalny."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Rozpocznij grę/Połącz"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Publiczne"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Usuń świat"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Stwórz świat"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Ozdobne drzewa"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Płynne oświetlenie"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "Chmury 3D"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Nieprzeźroczysta woda"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-Mappowanie"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Filtrowanie anizotropowe"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Dwuliniowe filtrowanie"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Trójliniowe filtrowanie"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Shadery"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Ładuj obrazy przedmiotów"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Włącz cząstki"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Realistyczne ciecze"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Zmień klawisze"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "Wymagany adres."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Nie można skasować świata: nic nie zaznaczono"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Pliki do skasowania"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Nie można utworzyć świata: Nie znaleziono żadnego trybu gry"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Nie można skonfigurować świata: Nic nie zaznaczono"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Nie udało się skasować wszystkich plików świata"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Stare hasło"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Nowe hasło"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Potwierdź hasło"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Zmień"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Hasła nie są jednakowe!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Dalej"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Zmień hasło"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Głośność"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Wyjście do menu"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Wyjście z gry"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Głośność: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Wyjście"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Lewy przycisk myszy"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Środkowy przycisk myszy"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Prawy przycisk myszy"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "X Button 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Backspace"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Delete"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Enter"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "X Button 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Caps Lock"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Control"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Convert"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Escape"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "Nonconvert"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Accept"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Mode Change"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Next"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Prior"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Spacja"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Dół"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Execute"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Print"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Select"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Góra"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Pomoc"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Snapshot"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Lewy Windows"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Numpad 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Numpad 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Prawy Windows"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Sleep"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Numpad 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Numpad 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Numpad 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Numpad 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Numpad 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Numpad 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Numpad *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Numpad +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Numpad -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Numpad /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Numpad 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Numpad 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Lewy Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Prawy Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Lewy Control"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Lewy Menu"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Prawy Control"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Prawy Menu"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Przecinek"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Minus"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Kropka"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Plus"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Erase OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Clear"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Menu główne"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Inicjalizacja świata nie powiodła się"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "Nie wybrano świata ani adresu."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Nie można znaleźć lub wczytać trybu gry \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Nieprawidłowa specyfikacja trybu gry."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Błąd połączenia (brak odpowiedzi?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Domyślne ustawienia:\n"
|
||||
#~ "- WASD: poruszanie\n"
|
||||
#~ "- Lewy przycisk myszki: kop/uderz\n"
|
||||
#~ "- Prawy przycisk myszki: połóż/użyj\n"
|
||||
#~ "- Kółko myszy: wybieranie przedmiotu\n"
|
||||
#~ "- 0...9: wybieranie przedmiotu\n"
|
||||
#~ "- Shift: skradanie\n"
|
||||
#~ "- R: przełączanie trybu widoczności\n"
|
||||
#~ "- I: menu ekwipunku\n"
|
||||
#~ "- ESC: to menu\n"
|
||||
#~ "- T: czat\n"
|
||||
829
po/pt/minetest.po
Normal file
829
po/pt/minetest.po
Normal file
@@ -0,0 +1,829 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-30 00:13+0200\n"
|
||||
"Last-Translator: v c <vicente.camolas@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: pt\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"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr "Texturas dos items..."
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr "A carregar..."
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr "A criar servidor..."
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr "A criar cliente..."
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr "A resolver endereço..."
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr "A conectar ao servidor..."
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr "A desligar..."
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Consulte debug.txt para mais detalhes."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Atenção: Alguns mods ainda não estão configurados.\n"
|
||||
"Eles vão ser ativados por predefinição quando guardar a configuração. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"Atenção: Alguns mods configurados estão em falta.\n"
|
||||
"As suas definições vão ser removidas quando gravar a configuração. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "ativo"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Ativar Tudo"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Desativar Tudo"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "depende de:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "é necessário pelo:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Guardar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Configuração gravada. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Atenção: Configuração não compatível. "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Sim"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Não"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Nome do Mundo"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Jogo"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Criar"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Morreste."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Reaparecer"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr "Botão esq: Mover todos os itens Botão dir: Mover um item"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr "Teclas. (Se este menu se estragar, remova as linhas do minetest.conf)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Use\" = descer"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Carregue duas vezes em \"saltar\" para ativar o vôo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Tecla já em uso"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "pressione a tecla"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Avançar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Recuar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Esquerda"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Direita"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Usar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Saltar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Agachar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Largar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Inventário"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Conversa"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Comando"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Consola"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Ativar/Desativar vôo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Ativar/Desativar correr"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Ativar/Desativar noclip"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Seleccionar Distância"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Imprimir stacks"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Não foi possível criar mundo: Nome com caracteres inválidos"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Não foi possível criar mundo: Já existe um mundo com este nome"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Um Jogador"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Vários jogadores"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Avançado"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Definições"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Créditos"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Seleccionar Mundo:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Novo"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Configurar"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Jogar"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Modo Criativo"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Ativar Dano"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Nome/Senha"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Favoritos:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Lista de servidores públicos:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "Endereço/Porta"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Mostrar Públicos"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Mostrar Favoritos"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Ligar"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Deixe endereço em branco para iniciar servidor local."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Iniciar Jogo / Conectar"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Público"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Eliminar mundo"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Criar mundo"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Árvores Melhoradas"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Iluminação Suave"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "Nuvens 3D"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Água Opaca"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-Mapping"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Filtro Anisotrópico"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Filtro Bi-Linear"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Filtro Tri-Linear"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Sombras"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Pré-carregamento dos itens"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Ativar Partículas"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Líquido finito"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Mudar teclas"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "Endereço necessário."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Não foi possível eliminar mundo: Nada seleccionado"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Ficheiros para eliminar"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Não foi possível criar mundo: Não foram detectados jogos"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Não foi possível configurar mundo: Nada seleccionado"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Falhou a remoção de todos os ficheiros dos mundos"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Senha antiga"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Senha Nova"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Confirmar Senha"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Mudar"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Senhas não correspondem!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Mudar Senha"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Volume do som"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Sair para Menu"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Sair para o sistema"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
"Teclas por defeito:\n"
|
||||
"- WASD: mover\n"
|
||||
"- Barra de espaço: saltar/subir\n"
|
||||
"- Shift: andar cuidadosamente/descer\n"
|
||||
"- Q: Largar item\n"
|
||||
"- I: Inventário\n"
|
||||
"- Rato: virar/olhar\n"
|
||||
"- Clique esquerdo: cavar/bater\n"
|
||||
"- Clique direito: colocar/utilizar\n"
|
||||
"- Roda do rato: seleccionar item\n"
|
||||
"- T: conversação\n"
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Volume do som: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Sair"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Botão Esquerdo"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Roda do Rato"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Botão Direito"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "Botão X 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Limpar"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Enter"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tabulação"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "Botão X 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Capital"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Control"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pausa"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Converter"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "ESC"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "Nãoconverter"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Aceitar"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Mode Change"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Próximo"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Prévio"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Espaço"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Baixo"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Executar"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Print"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Seleccionar"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Cima"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Ajuda"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Screenshot"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "WINDOWS Esq."
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "App"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Numpad 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Numpad 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "WINDOWS Dir."
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Numpad 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Numpad 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Numpad 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Numpad 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Numpad 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Numpad 7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Numpad *"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Numpad +"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Numpad -"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Numpad /"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Numpad 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Numpad 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Shift Esquerdo"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Shift Direito"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Control Esq"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Menu Esquerdo"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Control Direito"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Menu Direito"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Virgula"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Menos"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Período"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Mais"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attm"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Apagar OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "Limpar OEM"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PAL"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Menu Principal"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Falha ao iniciar mundo"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
"Nenhum mundo seleccionado e nenhum endereço providenciado. Nada para fazer."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Não foi possível encontrar ou carregar jogo \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "gamespec inválido."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Erro de conexão (excedeu tempo?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Controlos Normais:\n"
|
||||
#~ "- WASD: Andar\n"
|
||||
#~ "- Botão esq.: partir/atacar\n"
|
||||
#~ "- Botão dir.: colocar/usar\n"
|
||||
#~ "- Roda do Rato: seleccionar item\n"
|
||||
#~ "- 0...9: seleccionar item\n"
|
||||
#~ "- Shift: agachar\n"
|
||||
#~ "- R: Mudar visualização de todos os chunks\n"
|
||||
#~ "- I: Inventário\n"
|
||||
#~ "- ESC: Este menu\n"
|
||||
#~ "- T: Chat\n"
|
||||
831
po/pt_BR/minetest.po
Normal file
831
po/pt_BR/minetest.po
Normal file
@@ -0,0 +1,831 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-15 18:58+0200\n"
|
||||
"Last-Translator: Frederico Guimarães <frederico@teia.bio.br>\n"
|
||||
"Language-Team: LANGUAGE <contato@ejweb.com.br>\n"
|
||||
"Language: pt_BR\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"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr "Texturas dos itens..."
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr "Carregando..."
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr "Criando o servidor..."
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr "Criando o cliente..."
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr "Resolvendo os endereços..."
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr "Conectando ao servidor..."
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr "Desligando tudo..."
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Verifique o debug.txt para mais detalhes."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Atenção: Alguns mods ainda não foram configurados.\n"
|
||||
"E eles serão ativados por padrão, quando você salvar a configuração."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"Atenção: Alguns mods configurados não foram encontrados.\n"
|
||||
"Suas definições serão removidas quando você salvar a configuração."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "habilitado"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Habilitar tudo"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Desabilitar tudo"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "depende de:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "é necessário para:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Salvar"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "A configuração foi salva. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Atenção: A configuração não está consistente."
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Sim"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Não"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Nome do mundo"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Jogo"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Criar"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Você morreu."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Reviver"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr "Botão esq.: Move todos os itens, Botão dir.: Move um item"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
"Teclas. (Se este menu estiver com problema, remova itens do minetest.conf)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Usar\" = desce"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Aperte duas vezes \"saltar\" para ativar o voo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Essa tecla já está em uso"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "pressione uma tecla"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Avançar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Voltar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Esquerda"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Direita"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Usar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Saltar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Esgueirar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Soltar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Inventário"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Bate-papo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Comando"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Console"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Alternar voo"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Alternar corrida"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Alternar mov.livre"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Selecionar distância"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Imprimir pilha (log)"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Não foi possível criar o mundo: O nome contém caracteres inválidos"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Não foi possivel criar o mundo: Já existe um mundo com esse nome"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Um jogador"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Vários jogadores"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Avançado"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Configurações"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Créditos"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Selecione um mundo:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Excluir"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Novo"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Configurar"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Jogar"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Modo criativo"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Habilitar dano"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Nome/Senha"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Favoritos:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Lista de servidores públicos:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "Endereço/Porta"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Exibir públicos"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Exibir favoritos"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Conectar"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Deixe o endereço em branco para iniciar um servidor local."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Iniciar o jogo/Conectar"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Público"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Excluir o mundo"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Criar o mundo"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Árvores mais detalhadas"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Iluminação suave"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "Nuvens 3D"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Água opaca"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-Mapping"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Filtragem anisotrópica"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Filtragem bi-linear"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Filtragem tri-linear"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Sombreadores"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Precarga dos elementos visuais"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Habilitar partículas"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Líquido finito"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Mudar teclas"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "É necessário um endereço."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Não foi possível excluir o mundo: Nenhum foi selecionado"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Arquivos a serem excluídos"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Não foi possivel criar o mundo: Não foi encontrado nenhum jogo"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Não foi possível configurar o mundo: Nada foi selecionado"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Não foi possível excluir todos os arquivos do mundo"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Senha antiga"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Nova senha"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Confirmar a senha"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Alterar"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "As senhas não correspondem!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Continuar"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Alterar a senha"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Volume do som"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Sair para o menu"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Sair do Minetest"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
"Controles padrão:\n"
|
||||
"- WASD: mover\n"
|
||||
"- Espaço: pular/escalar\n"
|
||||
"- Shift: esgueirar/descer\n"
|
||||
"- Q: descartar o item\n"
|
||||
"- I: inventário\n"
|
||||
"- Mouse: virar/olhar\n"
|
||||
"- Botão esq. do mouse: cavar/atingir\n"
|
||||
"- Botão dir. do mouse: colocar/usar\n"
|
||||
"- Roda do mouse: selecionar item\n"
|
||||
"- T: bate-papo\n"
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Volume do som: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
msgstr "Sair"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Left Button"
|
||||
msgstr "Botão esquerdo"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Middle Button"
|
||||
msgstr "Roda do mouse"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "Right Button"
|
||||
msgstr "Botão direito"
|
||||
|
||||
#: src/keycode.cpp:223
|
||||
msgid "X Button 1"
|
||||
msgstr "Botão X 1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "Backspace"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Limpar"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "Enter"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "Botão X 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Caps Lock"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Ctrl"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Kana"
|
||||
msgstr "Kana"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Menu"
|
||||
msgstr "Menu"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Shift"
|
||||
msgstr "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Convert"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Esc"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "Nonconvert"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "Aceitar"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Mode Change"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "Page Down"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Page Up"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Space"
|
||||
msgstr "Espaço"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Down"
|
||||
msgstr "Abaixo"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Execute"
|
||||
msgstr "Executar"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Print"
|
||||
msgstr "Print Screen"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Select"
|
||||
msgstr "Select"
|
||||
|
||||
#: src/keycode.cpp:228
|
||||
msgid "Up"
|
||||
msgstr "Acima"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Help"
|
||||
msgstr "Ajuda"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Insert"
|
||||
msgstr "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Captura de tela"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Windows esq."
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Tecl.num.0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Tecl.num.1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Windows dir."
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Sleep"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Tecl.num.2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Tecl.num.3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Tecl.num.4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Tecl.num.5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Tecl.num.6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Tecl.num.7"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad *"
|
||||
msgstr "Tecl.num.*"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad +"
|
||||
msgstr "Tecl.num.+"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad -"
|
||||
msgstr "Tecl.num.-"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad /"
|
||||
msgstr "Tecl.num./"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 8"
|
||||
msgstr "Tecl.num.8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Tecl.num.9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Shift esq."
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Shift dir."
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Ctrl esq."
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Menu esq."
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Ctrl dir."
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Menu"
|
||||
msgstr "Menu dir."
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Comma"
|
||||
msgstr "Vírgula"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Minus"
|
||||
msgstr "Menos"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Period"
|
||||
msgstr "Ponto"
|
||||
|
||||
#: src/keycode.cpp:243
|
||||
msgid "Plus"
|
||||
msgstr "Mais"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "Attn"
|
||||
msgstr "Attn"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Apagar OEF"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "Limpar OEM"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Menu principal"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Não foi possível iniciar o mundo"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
"Nenhum mundo foi selecionado e nenhum endereço fornecido. Não existe nada a "
|
||||
"ser feito."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Não foi possível localizar ou carregar jogo \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Especificação do jogo inválida."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Erro de conexão (tempo excedido?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Controles padrão:\n"
|
||||
#~ "- WASD: andar\n"
|
||||
#~ "- Botão esquerdo: cavar/golpear\n"
|
||||
#~ "- Botão direito: colocar/usar\n"
|
||||
#~ "- Roda do mouse: selecionar item\n"
|
||||
#~ "- 0...9: selecionar item\n"
|
||||
#~ "- Shift: esgueirar\n"
|
||||
#~ "- R: alternar a distância de visualização\n"
|
||||
#~ "- I: inventário\n"
|
||||
#~ "- ESC: este menu\n"
|
||||
#~ "- T: bate-papo\n"
|
||||
785
po/ro/minetest.po
Normal file
785
po/ro/minetest.po
Normal file
@@ -0,0 +1,785 @@
|
||||
# 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-05-13 18:26+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/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Print"
|
||||
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:1680
|
||||
msgid "Main Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr ""
|
||||
830
po/ru/minetest.po
Normal file
830
po/ru/minetest.po
Normal file
@@ -0,0 +1,830 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-08 11:06+0200\n"
|
||||
"Last-Translator: Anton Tsyganenko <anton-tsyganenko@yandex.ru>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Подробная информация в debug.txt."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"Предупреждение: Некоторые моды еще не настроены.\n"
|
||||
"Их стандартные настройки будут установлены, когда вы сохраните "
|
||||
"конфигурацию. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"Предупреждение: Некоторые моды не найдены.\n"
|
||||
"Их настройки будут удалены, когда вы сохраните конфигурацию. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "включено"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Включить Всё"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Отключить Всё"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "зависит от:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "требуется для:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "Отменить"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Сохранить"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Настройки сохранены. "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Предупреждение: Неверная конфигурация. "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "Да"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "Нет"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "Название мира"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "Игра"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "Создать"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "Вы умерли."
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "Возродиться"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr "ЛКМ: Переместить все предметы, ПКМ: Переместить один предмет"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "Продолжить"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
"Сочетания клавиш. (Если это меню сломалось, удалите настройки из minetest."
|
||||
"conf)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "\"Использовать\" = вниз"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "Двойной прыжок = летать"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "Клавиша уже используется"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "нажмите клавишу"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Вперед"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Назад"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Влево"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "Вправо"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Использовать"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "Прыжок"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Красться"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Бросить"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "Инвентарь"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "Чат"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "Команда"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "Консоль"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "Полёт"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "Ускорение"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "Включить noclip"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "Зона видимости"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "Печать стеков"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "Невозможно создать мир: Имя содержит недопустимые символы"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "Невозможно создать мир: Мир под таким названием уже существует"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "Одиночная игра"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "Сетевая игра"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "Дополнительно"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "Настройки"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "Благодарности"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "Выберите Мир:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "Удалить"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "Новый"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "Настроить"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "Играть"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "Режим Создания"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "Включить урон"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "Имя/Пароль"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "Избранное:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "Список Публичных Серверов:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "Адрес/Порт"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "Публичные"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "Избранные"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "Подключиться"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Оставьте адрес пустым для запуска локального сервера."
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Начать игру/Подключиться"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "Публичные"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "Удалить мир"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "Создать мир"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "Красивые деревья"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Мягкое Освещение"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3D Облака"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "Непрозрачная вода"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "Mip-текстурирование"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "Анизотропная Фильтрация"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "Билинейная Фильтрация"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "Трилинейная Фильтрация"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "Шейдеры"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
#, fuzzy
|
||||
msgid "Preload item visuals"
|
||||
msgstr "Кэшировать предметы"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "Включить Частицы"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "Конечные жидкости"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "Смена управления"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "Нужно ввести адрес."
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "Невозможно удалить мир: Ничего не выбрано"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "Следующие файлы будут удалены"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "Невозможно создать мир: Ни одной игры не найдено"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "Невозможно настроить мир: ничего не выбрано"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "Ошибка при удалении файлов мира"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "Старый Пароль"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "Новый Пароль"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "Подтверждение Пароля"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "Изменить"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Пароли не совпадают!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "Продолжить"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "Изменить Пароль"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "Громкость Звука"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "Выход в Меню"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "Выход в ОС"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "Громкость Звука: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Доп. кнопка 1"
|
||||
|
||||
#: 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 "Tab"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "Доп. кнопка 2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "Caps Lock"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Ctrl"
|
||||
|
||||
#: 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 "Shift"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "Преобразовать"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Escape"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Конец"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
#, fuzzy
|
||||
msgid "Junja"
|
||||
msgstr "Junja"
|
||||
|
||||
#: 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 "End"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "Смена Режима"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "След."
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
#, fuzzy
|
||||
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
|
||||
#, fuzzy
|
||||
msgid "Print"
|
||||
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 "Insert"
|
||||
|
||||
#: src/keycode.cpp:229
|
||||
msgid "Snapshot"
|
||||
msgstr "Cнимок"
|
||||
|
||||
#: src/keycode.cpp:232
|
||||
msgid "Left Windows"
|
||||
msgstr "Левая кл. Win"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Apps"
|
||||
msgstr "Приложения"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 0"
|
||||
msgstr "Доп. клав. 0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "Доп. клав. 1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "Прав. кл. Win"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "Сон"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "Доп. клав. 2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "Доп. клав. 3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "Доп. клав. 4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "Доп. клав. 5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "Доп. клав. 6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "Доп. клав. 7"
|
||||
|
||||
#: 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 "Доп. клав. 8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "Доп. клав. 9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "Num Lock"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "Левый Shift"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "Правый Shift"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "Левый Ctrl"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "Левая клавиша меню"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "Правый Ctrl"
|
||||
|
||||
#: 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
|
||||
#, fuzzy
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "Erase OEF"
|
||||
msgstr "Стереть ОНС"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "ExSel"
|
||||
msgstr "Exsel"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "Очистить OEM"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
#, fuzzy
|
||||
msgid "PA1"
|
||||
msgstr "PA1"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "Масштаб"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "Главное Меню"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "Ошибка при инициализации мира"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "Не выбран мир и не введен адрес."
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "Невозможно найти или загрузить игру \""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
#, fuzzy
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "Неправильная конфигурация игры."
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "Ошибка соединения (таймаут пинга?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Управление по умолчанию:\n"
|
||||
#~ "- WASD: перемещение\n"
|
||||
#~ "- ЛКМ: копать/ударить\n"
|
||||
#~ "- ПКМ: поставить/использовать\n"
|
||||
#~ "- Колесо мыши: выбор предмета\n"
|
||||
#~ "- 0...9: выбор предмета\n"
|
||||
#~ "- Shift: красться\n"
|
||||
#~ "- R: смотреть далеко\n"
|
||||
#~ "- I: инвентарь\n"
|
||||
#~ "- ESC: это меню\n"
|
||||
#~ "- T: чат\n"
|
||||
787
po/uk/minetest.po
Normal file
787
po/uk/minetest.po
Normal file
@@ -0,0 +1,787 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-04-23 17:00+0200\n"
|
||||
"Last-Translator: ?????? ???????? <Martin_Devil@mail.ru>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr ""
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr "\nДеталі у файлі debug.txt."
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "Увімкнути Все"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "Вимкнути Усе"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "залежить від:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "Зберегти"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "Налаштування Збережено!"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "Попередження: Помилкова конфігурація."
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "Уперед"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "Назад"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "Уліво"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "Використовувата"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "Крастися"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "Викинути"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr ""
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "Print"
|
||||
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:1680
|
||||
msgid "Main Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr ""
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr ""
|
||||
829
po/zh_CN/minetest.po
Normal file
829
po/zh_CN/minetest.po
Normal file
@@ -0,0 +1,829 @@
|
||||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2013-05-13 18:26+0200\n"
|
||||
"PO-Revision-Date: 2013-05-18 16:23+0200\n"
|
||||
"Last-Translator: Shen Zheyu <arsdragonfly@gmail.com>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"Language: zh_CN\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 1.4-dev\n"
|
||||
|
||||
#: src/client.cpp:2846
|
||||
msgid "Item textures..."
|
||||
msgstr "物品材质..."
|
||||
|
||||
#: src/game.cpp:912
|
||||
msgid "Loading..."
|
||||
msgstr "载入中..."
|
||||
|
||||
#: src/game.cpp:972
|
||||
msgid "Creating server...."
|
||||
msgstr "正在建立服务器...."
|
||||
|
||||
#: src/game.cpp:988
|
||||
msgid "Creating client..."
|
||||
msgstr "正在建立客户端..."
|
||||
|
||||
#: src/game.cpp:1003
|
||||
msgid "Resolving address..."
|
||||
msgstr "正在解析地址..."
|
||||
|
||||
#: src/game.cpp:1079
|
||||
msgid "Connecting to server..."
|
||||
msgstr "正在连接服务器..."
|
||||
|
||||
#: src/game.cpp:3348
|
||||
msgid "Shutting down stuff..."
|
||||
msgstr "关闭中......"
|
||||
|
||||
#: src/game.cpp:3378 src/guiConfigureWorld.cpp:426
|
||||
msgid ""
|
||||
"\n"
|
||||
"Check debug.txt for details."
|
||||
msgstr ""
|
||||
"\n"
|
||||
"查看 debug.txt 以获得详细信息。"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:123
|
||||
msgid ""
|
||||
"Warning: Some mods are not configured yet.\n"
|
||||
"They will be enabled by default when you save the configuration. "
|
||||
msgstr ""
|
||||
"警告:一些MOD仍未设定。\n"
|
||||
"它们会在你保存配置的时候自动启用。 "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:143
|
||||
msgid ""
|
||||
"Warning: Some configured mods are missing.\n"
|
||||
"Their setting will be removed when you save the configuration. "
|
||||
msgstr ""
|
||||
"警告:缺少一些设定了的MOD。\n"
|
||||
"它们的设置会在你保存配置的时候被移除。 "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:208
|
||||
msgid "enabled"
|
||||
msgstr "启用"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:218
|
||||
msgid "Enable All"
|
||||
msgstr "全部启用"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:227
|
||||
msgid "Disable All"
|
||||
msgstr "全部禁用"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:235
|
||||
msgid "depends on:"
|
||||
msgstr "依赖于:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:248
|
||||
msgid "is required by:"
|
||||
msgstr "被需要:"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:270 src/guiCreateWorld.cpp:177
|
||||
#: src/guiKeyChangeMenu.cpp:195 src/keycode.cpp:223
|
||||
msgid "Cancel"
|
||||
msgstr "取消"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:277 src/guiKeyChangeMenu.cpp:187
|
||||
msgid "Save"
|
||||
msgstr "保存"
|
||||
|
||||
#: src/guiConfigureWorld.cpp:403
|
||||
msgid "Configuration saved. "
|
||||
msgstr "配置已保存。 "
|
||||
|
||||
#: src/guiConfigureWorld.cpp:415
|
||||
msgid "Warning: Configuration not consistent. "
|
||||
msgstr "警告:配置不一致。 "
|
||||
|
||||
#: src/guiConfirmMenu.cpp:119
|
||||
msgid "Yes"
|
||||
msgstr "是"
|
||||
|
||||
#: src/guiConfirmMenu.cpp:127
|
||||
msgid "No"
|
||||
msgstr "否"
|
||||
|
||||
#: src/guiCreateWorld.cpp:125
|
||||
msgid "World name"
|
||||
msgstr "世界名称"
|
||||
|
||||
#: src/guiCreateWorld.cpp:145
|
||||
msgid "Game"
|
||||
msgstr "游戏"
|
||||
|
||||
#: src/guiCreateWorld.cpp:169
|
||||
msgid "Create"
|
||||
msgstr "创建"
|
||||
|
||||
#: src/guiDeathScreen.cpp:96
|
||||
msgid "You died."
|
||||
msgstr "你死了。"
|
||||
|
||||
#: src/guiDeathScreen.cpp:104
|
||||
msgid "Respawn"
|
||||
msgstr "重生"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:582
|
||||
msgid "Left click: Move all items, Right click: Move single item"
|
||||
msgstr "左键:移动所有物品,右键:移动单个物品"
|
||||
|
||||
#: src/guiFormSpecMenu.cpp:608 src/guiMessageMenu.cpp:107
|
||||
#: src/guiTextInputMenu.cpp:130
|
||||
msgid "Proceed"
|
||||
msgstr "继续游戏"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:121
|
||||
msgid "Keybindings. (If this menu screws up, remove stuff from minetest.conf)"
|
||||
msgstr "键位配置。(如果这个菜单被弄乱,从minetest.conf中删掉点东西)"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:161
|
||||
msgid "\"Use\" = climb down"
|
||||
msgstr "“使用” = 向下爬"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:176
|
||||
msgid "Double tap \"jump\" to toggle fly"
|
||||
msgstr "连按两次“跳”切换飞行状态"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:290
|
||||
msgid "Key already in use"
|
||||
msgstr "按键已被占用"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:372
|
||||
msgid "press key"
|
||||
msgstr "按键"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:400
|
||||
msgid "Forward"
|
||||
msgstr "向前"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:401
|
||||
msgid "Backward"
|
||||
msgstr "向后"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:402 src/keycode.cpp:228
|
||||
msgid "Left"
|
||||
msgstr "向左"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:403 src/keycode.cpp:228
|
||||
msgid "Right"
|
||||
msgstr "向右"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:404
|
||||
msgid "Use"
|
||||
msgstr "使用"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:405
|
||||
msgid "Jump"
|
||||
msgstr "跳"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:406
|
||||
msgid "Sneak"
|
||||
msgstr "潜行"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:407
|
||||
msgid "Drop"
|
||||
msgstr "丢出"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:408
|
||||
msgid "Inventory"
|
||||
msgstr "物品栏"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:409
|
||||
msgid "Chat"
|
||||
msgstr "聊天"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:410
|
||||
msgid "Command"
|
||||
msgstr "命令"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:411
|
||||
msgid "Console"
|
||||
msgstr "控制台"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:412
|
||||
msgid "Toggle fly"
|
||||
msgstr "切换飞行状态"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:413
|
||||
msgid "Toggle fast"
|
||||
msgstr "切换快速移动状态"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:414
|
||||
msgid "Toggle noclip"
|
||||
msgstr "切换穿墙模式"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:415
|
||||
msgid "Range select"
|
||||
msgstr "选择范围"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:416
|
||||
msgid "Print stacks"
|
||||
msgstr "打印栈"
|
||||
|
||||
#: src/guiMainMenu.cpp:92
|
||||
msgid "Cannot create world: Name contains invalid characters"
|
||||
msgstr "无法创建世界:名字包含非法字符"
|
||||
|
||||
#: src/guiMainMenu.cpp:103
|
||||
msgid "Cannot create world: A world by this name already exists"
|
||||
msgstr "无法创建世界:同名世界已经存在"
|
||||
|
||||
#: src/guiMainMenu.cpp:285
|
||||
msgid "Singleplayer"
|
||||
msgstr "单人游戏"
|
||||
|
||||
#: src/guiMainMenu.cpp:288
|
||||
msgid "Multiplayer"
|
||||
msgstr "多人游戏"
|
||||
|
||||
#: src/guiMainMenu.cpp:291
|
||||
msgid "Advanced"
|
||||
msgstr "高级联机设置"
|
||||
|
||||
#: src/guiMainMenu.cpp:294
|
||||
msgid "Settings"
|
||||
msgstr "设置"
|
||||
|
||||
#: src/guiMainMenu.cpp:297
|
||||
msgid "Credits"
|
||||
msgstr "关于"
|
||||
|
||||
#: src/guiMainMenu.cpp:330
|
||||
msgid "Select World:"
|
||||
msgstr "选择世界:"
|
||||
|
||||
#: src/guiMainMenu.cpp:360 src/guiMainMenu.cpp:578 src/keycode.cpp:229
|
||||
msgid "Delete"
|
||||
msgstr "删除"
|
||||
|
||||
#: src/guiMainMenu.cpp:369
|
||||
msgid "New"
|
||||
msgstr "新建"
|
||||
|
||||
#: src/guiMainMenu.cpp:379
|
||||
msgid "Configure"
|
||||
msgstr "配置"
|
||||
|
||||
#: src/guiMainMenu.cpp:396 src/keycode.cpp:248
|
||||
msgid "Play"
|
||||
msgstr "开始游戏"
|
||||
|
||||
#: src/guiMainMenu.cpp:409 src/guiMainMenu.cpp:699
|
||||
msgid "Creative Mode"
|
||||
msgstr "创造模式"
|
||||
|
||||
#: src/guiMainMenu.cpp:417 src/guiMainMenu.cpp:707
|
||||
msgid "Enable Damage"
|
||||
msgstr "开启伤害"
|
||||
|
||||
#: src/guiMainMenu.cpp:459 src/guiMainMenu.cpp:614
|
||||
msgid "Name/Password"
|
||||
msgstr "名字/密码"
|
||||
|
||||
#: src/guiMainMenu.cpp:498 src/guiMainMenu.cpp:519 src/guiMainMenu.cpp:1324
|
||||
msgid "Favorites:"
|
||||
msgstr "最爱的服务器:"
|
||||
|
||||
#: src/guiMainMenu.cpp:508 src/guiMainMenu.cpp:1338
|
||||
msgid "Public Server List:"
|
||||
msgstr "公共服务器列表:"
|
||||
|
||||
#: src/guiMainMenu.cpp:532 src/guiMainMenu.cpp:643
|
||||
msgid "Address/Port"
|
||||
msgstr "地址/端口"
|
||||
|
||||
#: src/guiMainMenu.cpp:560 src/guiMainMenu.cpp:1323
|
||||
msgid "Show Public"
|
||||
msgstr "显示公共"
|
||||
|
||||
#: src/guiMainMenu.cpp:567 src/guiMainMenu.cpp:1337
|
||||
msgid "Show Favorites"
|
||||
msgstr "显示最爱"
|
||||
|
||||
#: src/guiMainMenu.cpp:591
|
||||
msgid "Connect"
|
||||
msgstr "连接"
|
||||
|
||||
#: src/guiMainMenu.cpp:668
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "地址栏留空可启动本地服务器。"
|
||||
|
||||
#: src/guiMainMenu.cpp:678
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "启动游戏/连接"
|
||||
|
||||
#: src/guiMainMenu.cpp:716
|
||||
msgid "Public"
|
||||
msgstr "公共服务器"
|
||||
|
||||
#: src/guiMainMenu.cpp:726 src/guiMainMenu.cpp:1245
|
||||
msgid "Delete world"
|
||||
msgstr "删除世界"
|
||||
|
||||
#: src/guiMainMenu.cpp:735
|
||||
msgid "Create world"
|
||||
msgstr "创造世界"
|
||||
|
||||
#: src/guiMainMenu.cpp:773
|
||||
msgid "Fancy trees"
|
||||
msgstr "更漂亮的树"
|
||||
|
||||
#: src/guiMainMenu.cpp:781
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "平滑光照"
|
||||
|
||||
#: src/guiMainMenu.cpp:789
|
||||
msgid "3D Clouds"
|
||||
msgstr "3D云彩"
|
||||
|
||||
#: src/guiMainMenu.cpp:797
|
||||
msgid "Opaque water"
|
||||
msgstr "不透明的水"
|
||||
|
||||
#: src/guiMainMenu.cpp:809
|
||||
msgid "Mip-Mapping"
|
||||
msgstr "贴图处理"
|
||||
|
||||
#: src/guiMainMenu.cpp:818
|
||||
msgid "Anisotropic Filtering"
|
||||
msgstr "各向异性过滤"
|
||||
|
||||
#: src/guiMainMenu.cpp:827
|
||||
msgid "Bi-Linear Filtering"
|
||||
msgstr "双线性过滤"
|
||||
|
||||
#: src/guiMainMenu.cpp:836
|
||||
msgid "Tri-Linear Filtering"
|
||||
msgstr "三线性过滤"
|
||||
|
||||
#: src/guiMainMenu.cpp:846
|
||||
msgid "Shaders"
|
||||
msgstr "着色器"
|
||||
|
||||
#: src/guiMainMenu.cpp:855
|
||||
msgid "Preload item visuals"
|
||||
msgstr "预先加载物品图像"
|
||||
|
||||
#: src/guiMainMenu.cpp:864
|
||||
msgid "Enable Particles"
|
||||
msgstr "启用粒子效果"
|
||||
|
||||
#: src/guiMainMenu.cpp:873
|
||||
msgid "Finite liquid"
|
||||
msgstr "液体有限延伸"
|
||||
|
||||
#: src/guiMainMenu.cpp:885
|
||||
msgid "Change keys"
|
||||
msgstr "改变键位设置"
|
||||
|
||||
#: src/guiMainMenu.cpp:1211 src/guiMainMenu.cpp:1372
|
||||
msgid "Address required."
|
||||
msgstr "需要地址。"
|
||||
|
||||
#: src/guiMainMenu.cpp:1231
|
||||
msgid "Cannot delete world: Nothing selected"
|
||||
msgstr "无法删除世界:没有选择世界"
|
||||
|
||||
#: src/guiMainMenu.cpp:1246
|
||||
msgid "Files to be deleted"
|
||||
msgstr "将被删除的文件"
|
||||
|
||||
#: src/guiMainMenu.cpp:1267
|
||||
msgid "Cannot create world: No games found"
|
||||
msgstr "无法创造世界:未找到游戏模式"
|
||||
|
||||
#: src/guiMainMenu.cpp:1286
|
||||
msgid "Cannot configure world: Nothing selected"
|
||||
msgstr "无法配置世界:没有选择世界"
|
||||
|
||||
#: src/guiMainMenu.cpp:1428
|
||||
msgid "Failed to delete all world files"
|
||||
msgstr "无法删除所有该世界的文件"
|
||||
|
||||
#: src/guiPasswordChange.cpp:108
|
||||
msgid "Old Password"
|
||||
msgstr "旧密码"
|
||||
|
||||
#: src/guiPasswordChange.cpp:126
|
||||
msgid "New Password"
|
||||
msgstr "新密码"
|
||||
|
||||
#: src/guiPasswordChange.cpp:143
|
||||
msgid "Confirm Password"
|
||||
msgstr "确认密码"
|
||||
|
||||
#: src/guiPasswordChange.cpp:161
|
||||
msgid "Change"
|
||||
msgstr "更改"
|
||||
|
||||
#: src/guiPasswordChange.cpp:170
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "密码不匹配!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:122
|
||||
msgid "Continue"
|
||||
msgstr "继续"
|
||||
|
||||
#: src/guiPauseMenu.cpp:133
|
||||
msgid "Change Password"
|
||||
msgstr "更改密码"
|
||||
|
||||
#: src/guiPauseMenu.cpp:143
|
||||
msgid "Sound Volume"
|
||||
msgstr "音量"
|
||||
|
||||
#: src/guiPauseMenu.cpp:152
|
||||
msgid "Exit to Menu"
|
||||
msgstr "退出至菜单"
|
||||
|
||||
#: src/guiPauseMenu.cpp:161
|
||||
msgid "Exit to OS"
|
||||
msgstr "退出至操作系统"
|
||||
|
||||
#: src/guiPauseMenu.cpp:170
|
||||
msgid ""
|
||||
"Default Controls:\n"
|
||||
"- WASD: move\n"
|
||||
"- Space: jump/climb\n"
|
||||
"- Shift: sneak/go down\n"
|
||||
"- Q: drop item\n"
|
||||
"- I: inventory\n"
|
||||
"- Mouse: turn/look\n"
|
||||
"- Mouse left: dig/punch\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- T: chat\n"
|
||||
msgstr ""
|
||||
"默认控制:\n"
|
||||
"W/A/S/D: 移动\n"
|
||||
"空格: 跳/爬\n"
|
||||
"Shift: 潜行/向下\n"
|
||||
"Q: 丢物品\n"
|
||||
"I: 物品栏\n"
|
||||
"鼠标:转身/环顾\n"
|
||||
"鼠标左键: 挖\n"
|
||||
"鼠标右键: 放/使用\n"
|
||||
"鼠标滚轮: 选择物品\n"
|
||||
"T: 聊天\n"
|
||||
|
||||
#: src/guiVolumeChange.cpp:108
|
||||
msgid "Sound Volume: "
|
||||
msgstr "音量: "
|
||||
|
||||
#: src/guiVolumeChange.cpp:122
|
||||
msgid "Exit"
|
||||
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 "X键1"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Back"
|
||||
msgstr "退格"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Clear"
|
||||
msgstr "Clear键"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Return"
|
||||
msgstr "回车"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "Tab"
|
||||
msgstr "Tab键"
|
||||
|
||||
#: src/keycode.cpp:224
|
||||
msgid "X Button 2"
|
||||
msgstr "X键2"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Capital"
|
||||
msgstr "大写"
|
||||
|
||||
#: src/keycode.cpp:225
|
||||
msgid "Control"
|
||||
msgstr "Ctrl"
|
||||
|
||||
#: 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 "Shift键"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Convert"
|
||||
msgstr "转换"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Escape"
|
||||
msgstr "Escape键"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Final"
|
||||
msgstr "Final键"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Junja"
|
||||
msgstr "Junja键"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Kanji"
|
||||
msgstr "Kanji键"
|
||||
|
||||
#: src/keycode.cpp:226
|
||||
msgid "Nonconvert"
|
||||
msgstr "无变换"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Accept"
|
||||
msgstr "接受"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "End"
|
||||
msgstr "End键"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Home"
|
||||
msgstr "Home键"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Mode Change"
|
||||
msgstr "改变模式"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Next"
|
||||
msgstr "下一个"
|
||||
|
||||
#: src/keycode.cpp:227
|
||||
msgid "Prior"
|
||||
msgstr "Prior键"
|
||||
|
||||
#: 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 "Print"
|
||||
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 "小键盘0"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Numpad 1"
|
||||
msgstr "小键盘1"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Right Windows"
|
||||
msgstr "右窗口"
|
||||
|
||||
#: src/keycode.cpp:233
|
||||
msgid "Sleep"
|
||||
msgstr "睡眠"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 2"
|
||||
msgstr "小键盘2"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 3"
|
||||
msgstr "小键盘3"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 4"
|
||||
msgstr "小键盘4"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 5"
|
||||
msgstr "小键盘5"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 6"
|
||||
msgstr "小键盘6"
|
||||
|
||||
#: src/keycode.cpp:234
|
||||
msgid "Numpad 7"
|
||||
msgstr "小键盘7"
|
||||
|
||||
#: 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 "小键盘8"
|
||||
|
||||
#: src/keycode.cpp:235
|
||||
msgid "Numpad 9"
|
||||
msgstr "小键盘9"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Num Lock"
|
||||
msgstr "小键盘锁"
|
||||
|
||||
#: src/keycode.cpp:239
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Scroll Lock键"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Left Shift"
|
||||
msgstr "左Shift键"
|
||||
|
||||
#: src/keycode.cpp:240
|
||||
msgid "Right Shift"
|
||||
msgstr "右Shift键"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Control"
|
||||
msgstr "左Control键"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Left Menu"
|
||||
msgstr "左菜单"
|
||||
|
||||
#: src/keycode.cpp:241
|
||||
msgid "Right Control"
|
||||
msgstr "右Control键"
|
||||
|
||||
#: 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 "Attn键"
|
||||
|
||||
#: src/keycode.cpp:247
|
||||
msgid "CrSel"
|
||||
msgstr "CrSel键"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Erase OEF"
|
||||
msgstr "Erase OEF键"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "ExSel"
|
||||
msgstr "ExSel键"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "OEM Clear"
|
||||
msgstr "OEM Clear键"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "PA1"
|
||||
msgstr "PA1键"
|
||||
|
||||
#: src/keycode.cpp:248
|
||||
msgid "Zoom"
|
||||
msgstr "缩放"
|
||||
|
||||
#: src/main.cpp:1680
|
||||
msgid "Main Menu"
|
||||
msgstr "主菜单"
|
||||
|
||||
#: src/main.cpp:2035
|
||||
msgid "Failed to initialize world"
|
||||
msgstr "无法初始化世界"
|
||||
|
||||
#: src/main.cpp:2048
|
||||
msgid "No world selected and no address provided. Nothing to do."
|
||||
msgstr "没有选择世界或提供地址。未执行操作。"
|
||||
|
||||
#: src/main.cpp:2056
|
||||
msgid "Could not find or load game \""
|
||||
msgstr "无法找到或载入游戏模式“"
|
||||
|
||||
#: src/main.cpp:2070
|
||||
msgid "Invalid gamespec."
|
||||
msgstr "非法游戏模式规格。"
|
||||
|
||||
#: src/main.cpp:2111
|
||||
msgid "Connection error (timed out?)"
|
||||
msgstr "连接出错(超时?)"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "默认控制:\n"
|
||||
#~ "W/A/S/D: 走\n"
|
||||
#~ "空格: 跳\n"
|
||||
#~ "鼠标左键: 挖方块/攻击\n"
|
||||
#~ "鼠标右键: 放置/使用\n"
|
||||
#~ "鼠标滚轮: 选择物品\n"
|
||||
#~ "0-9: 选择物品\n"
|
||||
#~ "Shift: 潜行\n"
|
||||
#~ "R:切换查看所有已载入区块\n"
|
||||
#~ "I:物品栏\n"
|
||||
#~ "ESC:菜单\n"
|
||||
#~ "T:聊天\n"
|
||||
@@ -5,6 +5,22 @@ cmake_minimum_required( VERSION 2.6 )
|
||||
mark_as_advanced(EXECUTABLE_OUTPUT_PATH LIBRARY_OUTPUT_PATH)
|
||||
mark_as_advanced(JTHREAD_INCLUDE_DIR JTHREAD_LIBRARY)
|
||||
mark_as_advanced(SQLITE3_INCLUDE_DIR SQLITE3_LIBRARY)
|
||||
mark_as_advanced(JSON_INCLUDE_DIR JSON_LIBRARY)
|
||||
|
||||
option(ENABLE_CURL "Enable cURL support for fetching media" 1)
|
||||
|
||||
if (NOT ENABLE_CURL)
|
||||
mark_as_advanced(CLEAR CURL_LIBRARY CURL_INCLUDE_DIR)
|
||||
endif(NOT ENABLE_CURL)
|
||||
|
||||
if( ENABLE_CURL )
|
||||
find_package(CURL)
|
||||
endif( ENABLE_CURL )
|
||||
set(USE_CURL 0)
|
||||
if (CURL_FOUND AND ENABLE_CURL)
|
||||
message(STATUS "cURL support enabled")
|
||||
set(USE_CURL 1)
|
||||
endif(CURL_FOUND AND ENABLE_CURL)
|
||||
|
||||
# user-visible option to enable/disable gettext usage
|
||||
OPTION(ENABLE_GETTEXT "Use GetText for internationalization" 0)
|
||||
@@ -78,6 +94,12 @@ if(USE_SOUND)
|
||||
)
|
||||
endif()
|
||||
|
||||
option(ENABLE_FREETYPE "Enable freetype2 (truetype fonts and basic unicode support)" OFF)
|
||||
set(USE_FREETYPE 0)
|
||||
if(ENABLE_FREETYPE)
|
||||
set(USE_FREETYPE 1)
|
||||
endif(ENABLE_FREETYPE)
|
||||
|
||||
if(NOT MSVC)
|
||||
set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
|
||||
endif()
|
||||
@@ -102,6 +124,14 @@ if(WIN32)
|
||||
CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
|
||||
set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
|
||||
CACHE PATH "irrlicht dir")
|
||||
if(USE_FREETYPE)
|
||||
set(FREETYPE_INCLUDE_DIR_ft2build "${PROJECT_SOURCE_DIR}/../../freetype2/include/"
|
||||
CACHE PATH "freetype include dir")
|
||||
set(FREETYPE_INCLUDE_DIR_freetype2 "${PROJECT_SOURCE_DIR}/../../freetype2/include/freetype"
|
||||
CACHE PATH "freetype include dir")
|
||||
set(FREETYPE_LIBRARY "${PROJECT_SOURCE_DIR}/../../freetype2/objs/win32/vc2005/freetype247.lib"
|
||||
CACHE FILEPATH "Path to freetype247.lib")
|
||||
endif(USE_FREETYPE)
|
||||
set(MINGWM10_DLL ""
|
||||
CACHE FILEPATH "Path to mingwm10.dll (for installation)")
|
||||
if(ENABLE_SOUND)
|
||||
@@ -131,7 +161,7 @@ else()
|
||||
endif(APPLE)
|
||||
endif(BUILD_CLIENT)
|
||||
find_package(ZLIB REQUIRED)
|
||||
set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS})
|
||||
set(PLATFORM_LIBS -lpthread -lrt ${CMAKE_DL_LIBS})
|
||||
#set(CLIENT_PLATFORM_LIBS -lXxf86vm)
|
||||
# This way Xxf86vm is found on OpenBSD too
|
||||
find_library(XXF86VM_LIBRARY Xxf86vm)
|
||||
@@ -141,17 +171,44 @@ endif()
|
||||
|
||||
find_package(Jthread REQUIRED)
|
||||
find_package(Sqlite3 REQUIRED)
|
||||
find_package(Json REQUIRED)
|
||||
find_package(OpenGLES2)
|
||||
|
||||
# Do not use system-wide installation of Lua, because it'll likely be a
|
||||
# different version and/or has different build options.
|
||||
set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
|
||||
set(LUA_LIBRARY "lua")
|
||||
if(USE_FREETYPE)
|
||||
find_package(Freetype REQUIRED)
|
||||
set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
|
||||
set(CGUITTFONT_LIBRARY cguittfont)
|
||||
endif(USE_FREETYPE)
|
||||
|
||||
|
||||
find_library(LUA_LIBRARY luajit
|
||||
NAMES luajit-5.1)
|
||||
find_path(LUA_INCLUDE_DIR luajit.h
|
||||
NAMES luajit.h
|
||||
PATH_SUFFIXES luajit-2.0)
|
||||
message (STATUS "LuaJIT library: ${LUA_LIBRARY}")
|
||||
message (STATUS "LuaJIT headers: ${LUA_INCLUDE_DIR}")
|
||||
|
||||
if(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
||||
message (STATUS "LuaJIT found.")
|
||||
else(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
||||
message (STATUS "LuaJIT not found, using bundled Lua.")
|
||||
set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
|
||||
set(LUA_LIBRARY "lua")
|
||||
add_subdirectory(lua)
|
||||
endif(LUA_LIBRARY AND LUA_INCLUDE_DIR)
|
||||
|
||||
mark_as_advanced(LUA_LIBRARY)
|
||||
mark_as_advanced(LUA_INCLUDE_DIR)
|
||||
|
||||
configure_file(
|
||||
"${PROJECT_SOURCE_DIR}/cmake_config.h.in"
|
||||
"${PROJECT_BINARY_DIR}/cmake_config.h"
|
||||
)
|
||||
|
||||
add_subdirectory(script)
|
||||
add_subdirectory(util)
|
||||
|
||||
set(common_SRCS
|
||||
rollback_interface.cpp
|
||||
rollback.cpp
|
||||
@@ -168,11 +225,17 @@ set(common_SRCS
|
||||
itemdef.cpp
|
||||
nodedef.cpp
|
||||
object_properties.cpp
|
||||
scriptapi.cpp
|
||||
script.cpp
|
||||
log.cpp
|
||||
content_sao.cpp
|
||||
emerge.cpp
|
||||
mapgen.cpp
|
||||
mapgen_v6.cpp
|
||||
mapgen_v7.cpp
|
||||
mapgen_indev.cpp
|
||||
mapgen_singlenode.cpp
|
||||
treegen.cpp
|
||||
dungeongen.cpp
|
||||
cavegen.cpp
|
||||
content_nodemeta.cpp
|
||||
content_mapnode.cpp
|
||||
collision.cpp
|
||||
@@ -202,14 +265,13 @@ set(common_SRCS
|
||||
sha1.cpp
|
||||
base64.cpp
|
||||
ban.cpp
|
||||
biome.cpp
|
||||
clientserver.cpp
|
||||
staticobject.cpp
|
||||
util/serialize.cpp
|
||||
util/directiontables.cpp
|
||||
util/numeric.cpp
|
||||
util/pointedthing.cpp
|
||||
util/string.cpp
|
||||
util/timetaker.cpp
|
||||
serverlist.cpp
|
||||
pathfinder.cpp
|
||||
${SCRIPT_SRCS}
|
||||
${UTIL_SRCS}
|
||||
)
|
||||
|
||||
# This gives us the icon
|
||||
@@ -246,8 +308,10 @@ set(minetest_SRCS
|
||||
keycode.cpp
|
||||
camera.cpp
|
||||
clouds.cpp
|
||||
particles.cpp
|
||||
clientobject.cpp
|
||||
chat.cpp
|
||||
hud.cpp
|
||||
guiMainMenu.cpp
|
||||
guiKeyChangeMenu.cpp
|
||||
guiMessageMenu.cpp
|
||||
@@ -255,9 +319,11 @@ set(minetest_SRCS
|
||||
guiFormSpecMenu.cpp
|
||||
guiPauseMenu.cpp
|
||||
guiPasswordChange.cpp
|
||||
guiVolumeChange.cpp
|
||||
guiDeathScreen.cpp
|
||||
guiChatConsole.cpp
|
||||
guiCreateWorld.cpp
|
||||
guiConfigureWorld.cpp
|
||||
guiConfirmMenu.cpp
|
||||
client.cpp
|
||||
filecache.cpp
|
||||
@@ -267,6 +333,13 @@ set(minetest_SRCS
|
||||
main.cpp
|
||||
)
|
||||
|
||||
if(USE_FREETYPE)
|
||||
set(minetest_SRCS
|
||||
${minetest_SRCS}
|
||||
intlGUIEditBox.cpp
|
||||
)
|
||||
endif(USE_FREETYPE)
|
||||
|
||||
# Server sources
|
||||
set(minetestserver_SRCS
|
||||
${common_SRCS}
|
||||
@@ -275,6 +348,7 @@ set(minetestserver_SRCS
|
||||
|
||||
include_directories(
|
||||
${PROJECT_BINARY_DIR}
|
||||
${PROJECT_SOURCE_DIR}
|
||||
${IRRLICHT_INCLUDE_DIR}
|
||||
${ZLIB_INCLUDE_DIR}
|
||||
${CMAKE_BUILD_TYPE}
|
||||
@@ -284,8 +358,23 @@ include_directories(
|
||||
${JTHREAD_INCLUDE_DIR}
|
||||
${SQLITE3_INCLUDE_DIR}
|
||||
${LUA_INCLUDE_DIR}
|
||||
${JSON_INCLUDE_DIR}
|
||||
${PROJECT_SOURCE_DIR}/script
|
||||
)
|
||||
|
||||
if(USE_FREETYPE)
|
||||
include_directories(
|
||||
${FREETYPE_INCLUDE_DIRS}
|
||||
${CGUITTFONT_INCLUDE_DIR}
|
||||
)
|
||||
endif(USE_FREETYPE)
|
||||
|
||||
if(USE_CURL)
|
||||
include_directories(
|
||||
${CURL_INCLUDE_DIR}
|
||||
)
|
||||
endif(USE_CURL)
|
||||
|
||||
set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
|
||||
|
||||
if(BUILD_CLIENT)
|
||||
@@ -304,9 +393,24 @@ if(BUILD_CLIENT)
|
||||
${JTHREAD_LIBRARY}
|
||||
${SQLITE3_LIBRARY}
|
||||
${LUA_LIBRARY}
|
||||
${JSON_LIBRARY}
|
||||
${OPENGLES2_LIBRARIES}
|
||||
${PLATFORM_LIBS}
|
||||
${CLIENT_PLATFORM_LIBS}
|
||||
)
|
||||
if(USE_CURL)
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
${CURL_LIBRARY}
|
||||
)
|
||||
endif(USE_CURL)
|
||||
if(USE_FREETYPE)
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}
|
||||
${FREETYPE_LIBRARY}
|
||||
${CGUITTFONT_LIBRARY}
|
||||
)
|
||||
endif(USE_FREETYPE)
|
||||
endif(BUILD_CLIENT)
|
||||
|
||||
if(BUILD_SERVER)
|
||||
@@ -316,11 +420,20 @@ if(BUILD_SERVER)
|
||||
${ZLIB_LIBRARIES}
|
||||
${JTHREAD_LIBRARY}
|
||||
${SQLITE3_LIBRARY}
|
||||
${JSON_LIBRARY}
|
||||
${GETTEXT_LIBRARY}
|
||||
${LUA_LIBRARY}
|
||||
${PLATFORM_LIBS}
|
||||
)
|
||||
if(USE_CURL)
|
||||
target_link_libraries(
|
||||
${PROJECT_NAME}server
|
||||
${CURL_LIBRARY}
|
||||
)
|
||||
endif(USE_CURL)
|
||||
endif(BUILD_SERVER)
|
||||
|
||||
|
||||
#
|
||||
# Set some optimizations and tweaks
|
||||
#
|
||||
@@ -413,6 +526,9 @@ if(WIN32)
|
||||
if(VORBISFILE_DLL)
|
||||
install(FILES ${VORBISFILE_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
if(CURL_DLL)
|
||||
install(FILES ${CURL_DLL} DESTINATION ${BINDIR})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -484,9 +600,13 @@ else (SQLITE3_FOUND)
|
||||
add_subdirectory(sqlite)
|
||||
endif (SQLITE3_FOUND)
|
||||
|
||||
if (LUA_FOUND)
|
||||
else (LUA_FOUND)
|
||||
add_subdirectory(lua)
|
||||
endif (LUA_FOUND)
|
||||
if (BUILD_CLIENT AND USE_FREETYPE)
|
||||
add_subdirectory(cguittfont)
|
||||
endif (BUILD_CLIENT AND USE_FREETYPE)
|
||||
|
||||
if (JSON_FOUND)
|
||||
else (JSON_FOUND)
|
||||
add_subdirectory(json)
|
||||
endif (JSON_FOUND)
|
||||
|
||||
#end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -61,7 +61,7 @@ class ActiveObject
|
||||
}
|
||||
|
||||
virtual u8 getType() const = 0;
|
||||
|
||||
virtual bool getCollisionBox(aabb3f *toset) = 0;
|
||||
protected:
|
||||
u16 m_id; // 0 is invalid, "no id"
|
||||
};
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
|
||||
@@ -7,4 +7,4 @@ bool base64_is_valid(std::string const& s);
|
||||
std::string base64_encode(unsigned char const* , unsigned int len);
|
||||
std::string base64_decode(std::string const& s);
|
||||
|
||||
#endif // BASE64_HEADER
|
||||
#endif // BASE64_HEADER
|
||||
|
||||
170
src/biome.cpp
Normal file
170
src/biome.cpp
Normal file
@@ -0,0 +1,170 @@
|
||||
/*
|
||||
Minetest
|
||||
Copyright (C) 2010-2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
|
||||
|
||||
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.
|
||||
*/
|
||||
|
||||
#include "biome.h"
|
||||
#include "nodedef.h"
|
||||
#include "map.h" //for ManualMapVoxelManipulator
|
||||
#include "log.h"
|
||||
#include "main.h"
|
||||
|
||||
|
||||
NoiseParams nparams_biome_def_heat =
|
||||
{50, 50, v3f(500.0, 500.0, 500.0), 5349, 3, 0.70};
|
||||
NoiseParams nparams_biome_def_humidity =
|
||||
{50, 50, v3f(500.0, 500.0, 500.0), 842, 3, 0.55};
|
||||
|
||||
|
||||
BiomeDefManager::BiomeDefManager() {
|
||||
biome_registration_finished = false;
|
||||
np_heat = &nparams_biome_def_heat;
|
||||
np_humidity = &nparams_biome_def_humidity;
|
||||
|
||||
// Create default biome to be used in case none exist
|
||||
Biome *b = new Biome;
|
||||
|
||||
b->id = 0;
|
||||
b->name = "Default";
|
||||
b->flags = 0;
|
||||
|
||||
b->c_top = CONTENT_AIR;
|
||||
b->top_depth = 0;
|
||||
b->c_filler = b->c_top;
|
||||
b->filler_height = MAP_GENERATION_LIMIT;
|
||||
|
||||
b->height_min = -MAP_GENERATION_LIMIT;
|
||||
b->height_max = MAP_GENERATION_LIMIT;
|
||||
b->heat_point = 0.0;
|
||||
b->humidity_point = 0.0;
|
||||
|
||||
biomes.push_back(b);
|
||||
}
|
||||
|
||||
|
||||
BiomeDefManager::~BiomeDefManager() {
|
||||
//if (biomecache)
|
||||
// delete[] biomecache;
|
||||
|
||||
for (size_t i = 0; i != biomes.size(); i++)
|
||||
delete biomes[i];
|
||||
}
|
||||
|
||||
|
||||
Biome *BiomeDefManager::createBiome(BiomeTerrainType btt) {
|
||||
/*switch (btt) {
|
||||
case BIOME_TERRAIN_NORMAL:
|
||||
return new Biome;
|
||||
case BIOME_TERRAIN_LIQUID:
|
||||
return new BiomeLiquid;
|
||||
case BIOME_TERRAIN_NETHER:
|
||||
return new BiomeHell;
|
||||
case BIOME_TERRAIN_AETHER:
|
||||
return new BiomeSky;
|
||||
case BIOME_TERRAIN_FLAT:
|
||||
return new BiomeSuperflat;
|
||||
}
|
||||
return NULL;*/
|
||||
return new Biome;
|
||||
}
|
||||
|
||||
|
||||
// just a PoC, obviously needs optimization later on (precalculate this)
|
||||
void BiomeDefManager::calcBiomes(BiomeNoiseInput *input, u8 *biomeid_map) {
|
||||
int i = 0;
|
||||
for (int y = 0; y != input->mapsize.Y; y++) {
|
||||
for (int x = 0; x != input->mapsize.X; x++, i++) {
|
||||
float heat = (input->heat_map[i] + 1) * 50;
|
||||
float humidity = (input->humidity_map[i] + 1) * 50;
|
||||
biomeid_map[i] = getBiome(heat, humidity, input->height_map[i])->id;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BiomeDefManager::resolveNodeNames(INodeDefManager *ndef) {
|
||||
Biome *b;
|
||||
|
||||
biome_registration_finished = true;
|
||||
|
||||
for (size_t i = 0; i != biomes.size(); i++) {
|
||||
b = biomes[i];
|
||||
|
||||
if (b->c_top == CONTENT_IGNORE) {
|
||||
b->c_top = ndef->getId(b->top_nodename);
|
||||
if (b->c_top == CONTENT_IGNORE) {
|
||||
errorstream << "BiomeDefManager::resolveNodeNames: node '"
|
||||
<< b->top_nodename << "' not defined" << std::endl;
|
||||
b->c_top = CONTENT_AIR;
|
||||
b->top_depth = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (b->c_filler == CONTENT_IGNORE) {
|
||||
b->c_filler = ndef->getId(b->filler_nodename);
|
||||
if (b->c_filler == CONTENT_IGNORE) {
|
||||
errorstream << "BiomeDefManager::resolveNodeNames: node '"
|
||||
<< b->filler_nodename << "' not defined" << std::endl;
|
||||
b->c_filler = CONTENT_AIR;
|
||||
b->filler_height = MAP_GENERATION_LIMIT;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void BiomeDefManager::addBiome(Biome *b) {
|
||||
if (biome_registration_finished) {
|
||||
errorstream << "BIomeDefManager: biome registration already finished, dropping " << b->name <<std::endl;
|
||||
delete b;
|
||||
return;
|
||||
}
|
||||
|
||||
size_t nbiomes = biomes.size();
|
||||
if (nbiomes >= 0xFF) {
|
||||
errorstream << "BiomeDefManager: too many biomes, dropping " << b->name << std::endl;
|
||||
delete b;
|
||||
return;
|
||||
}
|
||||
|
||||
b->id = (u8)nbiomes;
|
||||
biomes.push_back(b);
|
||||
verbosestream << "BiomeDefManager: added biome " << b->name << std::endl;
|
||||
}
|
||||
|
||||
|
||||
Biome *BiomeDefManager::getBiome(float heat, float humidity, s16 y) {
|
||||
Biome *b, *biome_closest = NULL;
|
||||
float dist_min = FLT_MAX;
|
||||
|
||||
for (size_t i = 1; i < biomes.size(); i++) {
|
||||
b = biomes[i];
|
||||
if (y > b->height_max || y < b->height_min)
|
||||
continue;
|
||||
|
||||
float d_heat = heat - b->heat_point;
|
||||
float d_humidity = humidity - b->humidity_point;
|
||||
float dist = (d_heat * d_heat) +
|
||||
(d_humidity * d_humidity);
|
||||
if (dist < dist_min) {
|
||||
dist_min = dist;
|
||||
biome_closest = b;
|
||||
}
|
||||
}
|
||||
|
||||
return biome_closest ? biome_closest : biomes[0];
|
||||
}
|
||||
89
src/biome.h
Normal file
89
src/biome.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
Minetest
|
||||
Copyright (C) 2010-2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
|
||||
|
||||
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 BIOME_HEADER
|
||||
#define BIOME_HEADER
|
||||
|
||||
#include <string>
|
||||
#include "nodedef.h"
|
||||
#include "gamedef.h"
|
||||
#include "mapnode.h"
|
||||
#include "noise.h"
|
||||
#include "mapgen.h"
|
||||
|
||||
enum BiomeTerrainType
|
||||
{
|
||||
BIOME_TERRAIN_NORMAL,
|
||||
BIOME_TERRAIN_LIQUID,
|
||||
BIOME_TERRAIN_NETHER,
|
||||
BIOME_TERRAIN_AETHER,
|
||||
BIOME_TERRAIN_FLAT
|
||||
};
|
||||
|
||||
extern NoiseParams nparams_biome_def_heat;
|
||||
extern NoiseParams nparams_biome_def_humidity;
|
||||
|
||||
class Biome {
|
||||
public:
|
||||
u8 id;
|
||||
std::string name;
|
||||
u32 flags;
|
||||
|
||||
std::string top_nodename;
|
||||
std::string filler_nodename;
|
||||
|
||||
content_t c_top;
|
||||
s16 top_depth;
|
||||
|
||||
content_t c_filler;
|
||||
s16 filler_height;
|
||||
|
||||
s16 height_min;
|
||||
s16 height_max;
|
||||
float heat_point;
|
||||
float humidity_point;
|
||||
};
|
||||
|
||||
struct BiomeNoiseInput {
|
||||
v2s16 mapsize;
|
||||
float *heat_map;
|
||||
float *humidity_map;
|
||||
s16 *height_map;
|
||||
};
|
||||
|
||||
class BiomeDefManager {
|
||||
public:
|
||||
std::vector<Biome *> biomes;
|
||||
|
||||
bool biome_registration_finished;
|
||||
NoiseParams *np_heat;
|
||||
NoiseParams *np_humidity;
|
||||
|
||||
BiomeDefManager();
|
||||
~BiomeDefManager();
|
||||
|
||||
Biome *createBiome(BiomeTerrainType btt);
|
||||
void calcBiomes(BiomeNoiseInput *input, u8 *biomeid_map);
|
||||
Biome *getBiome(float heat, float humidity, s16 y);
|
||||
|
||||
void addBiome(Biome *b);
|
||||
void resolveNodeNames(INodeDefManager *ndef);
|
||||
};
|
||||
|
||||
#endif
|
||||
112
src/camera.cpp
112
src/camera.cpp
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -67,9 +67,16 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
|
||||
m_view_bobbing_anim(0),
|
||||
m_view_bobbing_state(0),
|
||||
m_view_bobbing_speed(0),
|
||||
m_view_bobbing_fall(0),
|
||||
|
||||
m_digging_anim(0),
|
||||
m_digging_button(-1)
|
||||
m_digging_button(-1),
|
||||
m_dummymesh(createCubeMesh(v3f(1,1,1))),
|
||||
|
||||
m_wield_change_timer(0.125),
|
||||
m_wield_mesh_next(NULL),
|
||||
m_previous_playeritem(-1),
|
||||
m_previous_itemname("")
|
||||
{
|
||||
//dstream<<__FUNCTION_NAME<<std::endl;
|
||||
|
||||
@@ -84,13 +91,14 @@ Camera::Camera(scene::ISceneManager* smgr, MapDrawControl& draw_control,
|
||||
// all other 3D scene nodes and before the GUI.
|
||||
m_wieldmgr = smgr->createNewSceneManager();
|
||||
m_wieldmgr->addCameraSceneNode();
|
||||
m_wieldnode = m_wieldmgr->addMeshSceneNode(createCubeMesh(v3f(1,1,1)), NULL); // need a dummy mesh
|
||||
m_wieldnode = m_wieldmgr->addMeshSceneNode(m_dummymesh, NULL); // need a dummy mesh
|
||||
}
|
||||
|
||||
Camera::~Camera()
|
||||
{
|
||||
m_wieldnode->setMesh(NULL);
|
||||
m_wieldmgr->drop();
|
||||
|
||||
delete m_dummymesh;
|
||||
}
|
||||
|
||||
bool Camera::successfullyCreated(std::wstring& error_message)
|
||||
@@ -132,6 +140,29 @@ inline f32 my_modf(f32 x)
|
||||
|
||||
void Camera::step(f32 dtime)
|
||||
{
|
||||
if(m_view_bobbing_fall > 0)
|
||||
{
|
||||
m_view_bobbing_fall -= 3 * dtime;
|
||||
if(m_view_bobbing_fall <= 0)
|
||||
m_view_bobbing_fall = -1; // Mark the effect as finished
|
||||
}
|
||||
|
||||
bool was_under_zero = m_wield_change_timer < 0;
|
||||
if(m_wield_change_timer < 0.125)
|
||||
m_wield_change_timer += dtime;
|
||||
if(m_wield_change_timer > 0.125)
|
||||
m_wield_change_timer = 0.125;
|
||||
|
||||
if(m_wield_change_timer >= 0 && was_under_zero) {
|
||||
if(m_wield_mesh_next) {
|
||||
m_wieldnode->setMesh(m_wield_mesh_next);
|
||||
m_wieldnode->setVisible(true);
|
||||
} else {
|
||||
m_wieldnode->setVisible(false);
|
||||
}
|
||||
m_wield_mesh_next = NULL;
|
||||
}
|
||||
|
||||
if (m_view_bobbing_state != 0)
|
||||
{
|
||||
//f32 offset = dtime * m_view_bobbing_speed * 0.035;
|
||||
@@ -218,6 +249,8 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize,
|
||||
// Smooth the movement when walking up stairs
|
||||
v3f old_player_position = m_playernode->getPosition();
|
||||
v3f player_position = player->getPosition();
|
||||
if (player->isAttached && player->parent)
|
||||
player_position = player->parent->getPosition();
|
||||
//if(player->touching_ground && player_position.Y > old_player_position.Y)
|
||||
if(player->touching_ground &&
|
||||
player_position.Y > old_player_position.Y)
|
||||
@@ -233,9 +266,31 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize,
|
||||
m_playernode->setRotation(v3f(0, -1 * player->getYaw(), 0));
|
||||
m_playernode->updateAbsolutePosition();
|
||||
|
||||
// Get camera tilt timer (hurt animation)
|
||||
float cameratilt = fabs(fabs(player->hurt_tilt_timer-0.75)-0.75);
|
||||
|
||||
// Fall bobbing animation
|
||||
float fall_bobbing = 0;
|
||||
if(player->camera_impact >= 1)
|
||||
{
|
||||
if(m_view_bobbing_fall == -1) // Effect took place and has finished
|
||||
player->camera_impact = m_view_bobbing_fall = 0;
|
||||
else if(m_view_bobbing_fall == 0) // Initialize effect
|
||||
m_view_bobbing_fall = 1;
|
||||
|
||||
// Convert 0 -> 1 to 0 -> 1 -> 0
|
||||
fall_bobbing = m_view_bobbing_fall < 0.5 ? m_view_bobbing_fall * 2 : -(m_view_bobbing_fall - 0.5) * 2 + 1;
|
||||
// Smoothen and invert the above
|
||||
fall_bobbing = sin(fall_bobbing * 0.5 * M_PI) * -1;
|
||||
// Amplify according to the intensity of the impact
|
||||
fall_bobbing *= (1 - rangelim(50 / player->camera_impact, 0, 1)) * 5;
|
||||
|
||||
fall_bobbing *= g_settings->getFloat("fall_bobbing_amount");
|
||||
}
|
||||
|
||||
// Set head node transformation
|
||||
m_headnode->setPosition(player->getEyeOffset());
|
||||
m_headnode->setRotation(v3f(player->getPitch(), 0, 0));
|
||||
m_headnode->setPosition(player->getEyeOffset()+v3f(0,cameratilt*-player->hurt_tilt_strength+fall_bobbing,0));
|
||||
m_headnode->setRotation(v3f(player->getPitch(), 0, cameratilt*player->hurt_tilt_strength));
|
||||
m_headnode->updateAbsolutePosition();
|
||||
|
||||
// Compute relative camera position and target
|
||||
@@ -308,8 +363,7 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize,
|
||||
m_fov_y = fov_degrees * M_PI / 180.0;
|
||||
// Increase vertical FOV on lower aspect ratios (<16:10)
|
||||
m_fov_y *= MYMAX(1.0, MYMIN(1.4, sqrt(16./10. / m_aspect)));
|
||||
// WTF is this? It can't be right
|
||||
m_fov_x = 2 * atan(0.5 * m_aspect * tan(m_fov_y));
|
||||
m_fov_x = 2 * atan(m_aspect * tan(0.5 * m_fov_y));
|
||||
m_cameranode->setAspectRatio(m_aspect);
|
||||
m_cameranode->setFOV(m_fov_y);
|
||||
|
||||
@@ -318,6 +372,10 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize,
|
||||
v3f wield_position = v3f(55, -35, 65);
|
||||
//v3f wield_rotation = v3f(-100, 120, -100);
|
||||
v3f wield_rotation = v3f(-100, 120, -100);
|
||||
if(m_wield_change_timer < 0)
|
||||
wield_position.Y -= 40 + m_wield_change_timer*320;
|
||||
else
|
||||
wield_position.Y -= 40 - m_wield_change_timer*320;
|
||||
if(m_digging_anim < 0.05 || m_digging_anim > 0.5){
|
||||
f32 frac = 1.0;
|
||||
if(m_digging_anim > 0.5)
|
||||
@@ -526,18 +584,34 @@ void Camera::setDigging(s32 button)
|
||||
m_digging_button = button;
|
||||
}
|
||||
|
||||
void Camera::wield(const ItemStack &item)
|
||||
void Camera::wield(const ItemStack &item, u16 playeritem)
|
||||
{
|
||||
IItemDefManager *idef = m_gamedef->idef();
|
||||
scene::IMesh *wield_mesh = idef->getWieldMesh(item.getDefinition(idef).name, m_gamedef);
|
||||
if(wield_mesh)
|
||||
{
|
||||
m_wieldnode->setMesh(wield_mesh);
|
||||
m_wieldnode->setVisible(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_wieldnode->setVisible(false);
|
||||
std::string itemname = item.getDefinition(idef).name;
|
||||
m_wield_mesh_next = idef->getWieldMesh(itemname, m_gamedef);
|
||||
if(playeritem != m_previous_playeritem &&
|
||||
!(m_previous_itemname == "" && itemname == "")) {
|
||||
m_previous_playeritem = playeritem;
|
||||
m_previous_itemname = itemname;
|
||||
if(m_wield_change_timer >= 0.125)
|
||||
m_wield_change_timer = -0.125;
|
||||
else if(m_wield_change_timer > 0) {
|
||||
m_wield_change_timer = -m_wield_change_timer;
|
||||
}
|
||||
} else {
|
||||
if(m_wield_mesh_next) {
|
||||
m_wieldnode->setMesh(m_wield_mesh_next);
|
||||
m_wieldnode->setVisible(true);
|
||||
} else {
|
||||
m_wieldnode->setVisible(false);
|
||||
}
|
||||
m_wield_mesh_next = NULL;
|
||||
if(m_previous_itemname != itemname) {
|
||||
m_previous_itemname = itemname;
|
||||
m_wield_change_timer = 0;
|
||||
}
|
||||
else
|
||||
m_wield_change_timer = 0.125;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
17
src/camera.h
17
src/camera.h
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -117,7 +117,7 @@ class Camera
|
||||
void setDigging(s32 button);
|
||||
|
||||
// Replace the wielded item mesh
|
||||
void wield(const ItemStack &item);
|
||||
void wield(const ItemStack &item, u16 playeritem);
|
||||
|
||||
// Draw the wielded tool.
|
||||
// This has to happen *after* the main scene is drawn.
|
||||
@@ -166,6 +166,8 @@ class Camera
|
||||
s32 m_view_bobbing_state;
|
||||
// Speed of view bobbing animation
|
||||
f32 m_view_bobbing_speed;
|
||||
// Fall view bobbing
|
||||
f32 m_view_bobbing_fall;
|
||||
|
||||
// Digging animation frame (0 <= m_digging_anim < 1)
|
||||
f32 m_digging_anim;
|
||||
@@ -173,6 +175,15 @@ class Camera
|
||||
// If 0, left-click digging animation
|
||||
// If 1, right-click digging animation
|
||||
s32 m_digging_button;
|
||||
|
||||
//dummymesh for camera
|
||||
irr::scene::IAnimatedMesh* m_dummymesh;
|
||||
|
||||
// Animation when changing wielded item
|
||||
f32 m_wield_change_timer;
|
||||
scene::IMesh *m_wield_mesh_next;
|
||||
u16 m_previous_playeritem;
|
||||
std::string m_previous_itemname;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
533
src/cavegen.cpp
Normal file
533
src/cavegen.cpp
Normal file
@@ -0,0 +1,533 @@
|
||||
/*
|
||||
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.
|
||||
*/
|
||||
|
||||
#include "util/numeric.h"
|
||||
#include "map.h"
|
||||
#include "mapgen.h"
|
||||
#include "mapgen_v6.h"
|
||||
#include "mapgen_v7.h"
|
||||
#include "cavegen.h"
|
||||
|
||||
|
||||
CaveV6::CaveV6(MapgenV6 *mg, PseudoRandom *ps, PseudoRandom *ps2, bool is_large_cave) {
|
||||
this->mg = mg;
|
||||
this->vm = mg->vm;
|
||||
this->ndef = mg->ndef;
|
||||
this->water_level = mg->water_level;
|
||||
this->large_cave = is_large_cave;
|
||||
this->ps = ps;
|
||||
this->ps2 = ps2;
|
||||
this->c_water_source = mg->c_water_source;
|
||||
this->c_lava_source = mg->c_lava_source;
|
||||
|
||||
min_tunnel_diameter = 2;
|
||||
max_tunnel_diameter = ps->range(2, 6);
|
||||
dswitchint = ps->range(1, 14);
|
||||
flooded = true;
|
||||
|
||||
if (large_cave) {
|
||||
part_max_length_rs = ps->range(2,4);
|
||||
tunnel_routepoints = ps->range(5, ps->range(15,30));
|
||||
min_tunnel_diameter = 5;
|
||||
max_tunnel_diameter = ps->range(7, ps->range(8,24));
|
||||
} else {
|
||||
part_max_length_rs = ps->range(2,9);
|
||||
tunnel_routepoints = ps->range(10, ps->range(15,30));
|
||||
}
|
||||
|
||||
large_cave_is_flat = (ps->range(0,1) == 0);
|
||||
}
|
||||
|
||||
|
||||
void CaveV6::makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height) {
|
||||
node_min = nmin;
|
||||
node_max = nmax;
|
||||
max_stone_y = max_stone_height;
|
||||
main_direction = v3f(0, 0, 0);
|
||||
|
||||
// Allowed route area size in nodes
|
||||
ar = node_max - node_min + v3s16(1, 1, 1);
|
||||
// Area starting point in nodes
|
||||
of = node_min;
|
||||
|
||||
// Allow a bit more
|
||||
//(this should be more than the maximum radius of the tunnel)
|
||||
const s16 max_spread_amount = MAP_BLOCKSIZE;
|
||||
s16 insure = 10;
|
||||
s16 more = max_spread_amount - max_tunnel_diameter / 2 - insure;
|
||||
ar += v3s16(1,0,1) * more * 2;
|
||||
of -= v3s16(1,0,1) * more;
|
||||
|
||||
route_y_min = 0;
|
||||
// Allow half a diameter + 7 over stone surface
|
||||
route_y_max = -of.Y + max_stone_y + max_tunnel_diameter / 2 + 7;
|
||||
|
||||
// Limit maximum to area
|
||||
route_y_max = rangelim(route_y_max, 0, ar.Y - 1);
|
||||
|
||||
if (large_cave) {
|
||||
s16 min = 0;
|
||||
if (node_min.Y < water_level && node_max.Y > water_level) {
|
||||
min = water_level - max_tunnel_diameter/3 - of.Y;
|
||||
route_y_max = water_level + max_tunnel_diameter/3 - of.Y;
|
||||
}
|
||||
route_y_min = ps->range(min, min + max_tunnel_diameter);
|
||||
route_y_min = rangelim(route_y_min, 0, route_y_max);
|
||||
}
|
||||
|
||||
s16 route_start_y_min = route_y_min;
|
||||
s16 route_start_y_max = route_y_max;
|
||||
|
||||
route_start_y_min = rangelim(route_start_y_min, 0, ar.Y-1);
|
||||
route_start_y_max = rangelim(route_start_y_max, route_start_y_min, ar.Y-1);
|
||||
|
||||
// Randomize starting position
|
||||
orp = v3f(
|
||||
(float)(ps->next() % ar.X) + 0.5,
|
||||
(float)(ps->range(route_start_y_min, route_start_y_max)) + 0.5,
|
||||
(float)(ps->next() % ar.Z) + 0.5
|
||||
);
|
||||
|
||||
// Generate some tunnel starting from orp
|
||||
for (u16 j = 0; j < tunnel_routepoints; j++)
|
||||
makeTunnel(j % dswitchint == 0);
|
||||
}
|
||||
|
||||
|
||||
void CaveV6::makeTunnel(bool dirswitch) {
|
||||
if (dirswitch && !large_cave) {
|
||||
main_direction = v3f(
|
||||
((float)(ps->next() % 20) - (float)10) / 10,
|
||||
((float)(ps->next() % 20) - (float)10) / 30,
|
||||
((float)(ps->next() % 20) - (float)10) / 10
|
||||
);
|
||||
main_direction *= (float)ps->range(0, 10) / 10;
|
||||
}
|
||||
|
||||
// Randomize size
|
||||
s16 min_d = min_tunnel_diameter;
|
||||
s16 max_d = max_tunnel_diameter;
|
||||
rs = ps->range(min_d, max_d);
|
||||
|
||||
v3s16 maxlen;
|
||||
if (large_cave) {
|
||||
maxlen = v3s16(
|
||||
rs * part_max_length_rs,
|
||||
rs * part_max_length_rs / 2,
|
||||
rs * part_max_length_rs
|
||||
);
|
||||
} else {
|
||||
maxlen = v3s16(
|
||||
rs * part_max_length_rs,
|
||||
ps->range(1, rs * part_max_length_rs),
|
||||
rs * part_max_length_rs
|
||||
);
|
||||
}
|
||||
|
||||
v3f vec(
|
||||
(float)(ps->next() % (maxlen.X * 1)) - (float)maxlen.X / 2,
|
||||
(float)(ps->next() % (maxlen.Y * 1)) - (float)maxlen.Y / 2,
|
||||
(float)(ps->next() % (maxlen.Z * 1)) - (float)maxlen.Z / 2
|
||||
);
|
||||
|
||||
// Jump downward sometimes
|
||||
if (!large_cave && ps->range(0, 12) == 0) {
|
||||
vec = v3f(
|
||||
(float)(ps->next() % (maxlen.X * 1)) - (float)maxlen.X / 2,
|
||||
(float)(ps->next() % (maxlen.Y * 2)) - (float)maxlen.Y,
|
||||
(float)(ps->next() % (maxlen.Z * 1)) - (float)maxlen.Z / 2
|
||||
);
|
||||
}
|
||||
|
||||
vec += main_direction;
|
||||
|
||||
v3f rp = orp + vec;
|
||||
if (rp.X < 0)
|
||||
rp.X = 0;
|
||||
else if (rp.X >= ar.X)
|
||||
rp.X = ar.X - 1;
|
||||
|
||||
if (rp.Y < route_y_min)
|
||||
rp.Y = route_y_min;
|
||||
else if (rp.Y >= route_y_max)
|
||||
rp.Y = route_y_max - 1;
|
||||
|
||||
if (rp.Z < 0)
|
||||
rp.Z = 0;
|
||||
else if (rp.Z >= ar.Z)
|
||||
rp.Z = ar.Z - 1;
|
||||
|
||||
vec = rp - orp;
|
||||
|
||||
float veclen = vec.getLength();
|
||||
// As odd as it sounds, veclen is *exactly* 0.0 sometimes, causing a FPE
|
||||
if (veclen < 0.05)
|
||||
veclen = 1.0;
|
||||
|
||||
// Every second section is rough
|
||||
bool randomize_xz = (ps2->range(1, 2) == 1);
|
||||
|
||||
// Carve routes
|
||||
for (float f = 0; f < 1.0; f += 1.0 / veclen)
|
||||
carveRoute(vec, f, randomize_xz);
|
||||
|
||||
orp = rp;
|
||||
}
|
||||
|
||||
|
||||
void CaveV6::carveRoute(v3f vec, float f, bool randomize_xz) {
|
||||
MapNode airnode(CONTENT_AIR);
|
||||
MapNode waternode(c_water_source);
|
||||
MapNode lavanode(c_lava_source);
|
||||
|
||||
v3s16 startp(orp.X, orp.Y, orp.Z);
|
||||
startp += of;
|
||||
|
||||
v3f fp = orp + vec * f;
|
||||
fp.X += 0.1 * ps->range(-10, 10);
|
||||
fp.Z += 0.1 * ps->range(-10, 10);
|
||||
v3s16 cp(fp.X, fp.Y, fp.Z);
|
||||
|
||||
s16 d0 = -rs/2;
|
||||
s16 d1 = d0 + rs;
|
||||
if (randomize_xz) {
|
||||
d0 += ps->range(-1, 1);
|
||||
d1 += ps->range(-1, 1);
|
||||
}
|
||||
|
||||
for (s16 z0 = d0; z0 <= d1; z0++) {
|
||||
s16 si = rs / 2 - MYMAX(0, abs(z0) - rs / 7 - 1);
|
||||
for (s16 x0 = -si - ps->range(0,1); x0 <= si - 1 + ps->range(0,1); x0++) {
|
||||
s16 maxabsxz = MYMAX(abs(x0), abs(z0));
|
||||
s16 si2 = rs / 2 - MYMAX(0, maxabsxz - rs / 7 - 1);
|
||||
for (s16 y0 = -si2; y0 <= si2; y0++) {
|
||||
if (large_cave_is_flat) {
|
||||
// Make large caves not so tall
|
||||
if (rs > 7 && abs(y0) >= rs / 3)
|
||||
continue;
|
||||
}
|
||||
|
||||
v3s16 p(cp.X + x0, cp.Y + y0, cp.Z + z0);
|
||||
p += of;
|
||||
|
||||
if (vm->m_area.contains(p) == false)
|
||||
continue;
|
||||
|
||||
u32 i = vm->m_area.index(p);
|
||||
|
||||
if (large_cave) {
|
||||
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
|
||||
int full_ymax = node_max.Y + MAP_BLOCKSIZE;
|
||||
|
||||
if (flooded && full_ymin < water_level && full_ymax > water_level) {
|
||||
vm->m_data[i] = (p.Y <= water_level) ? waternode : airnode;
|
||||
} else if (flooded && full_ymax < water_level) {
|
||||
vm->m_data[i] = (p.Y < startp.Y - 2) ? lavanode : airnode;
|
||||
} else {
|
||||
vm->m_data[i] = airnode;
|
||||
}
|
||||
} else {
|
||||
// Don't replace air or water or lava or ignore
|
||||
content_t c = vm->m_data[i].getContent();
|
||||
if (c == CONTENT_IGNORE || c == CONTENT_AIR ||
|
||||
c == c_water_source || c == c_lava_source)
|
||||
continue;
|
||||
|
||||
vm->m_data[i] = airnode;
|
||||
vm->m_flags[i] |= VMANIP_FLAG_CAVE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////// Caves V7
|
||||
|
||||
CaveV7::CaveV7(MapgenV7 *mg, PseudoRandom *ps, bool is_large_cave) {
|
||||
this->mg = mg;
|
||||
this->vm = mg->vm;
|
||||
this->ndef = mg->ndef;
|
||||
this->water_level = mg->water_level;
|
||||
this->large_cave = is_large_cave;
|
||||
this->ps = ps;
|
||||
this->c_water_source = mg->c_water_source;
|
||||
this->c_lava_source = mg->c_lava_source;
|
||||
|
||||
dswitchint = ps->range(1, 14);
|
||||
flooded = ps->range(1, 2) == 2;
|
||||
|
||||
if (large_cave) {
|
||||
part_max_length_rs = ps->range(2, 4);
|
||||
tunnel_routepoints = ps->range(5, ps->range(15, 30));
|
||||
min_tunnel_diameter = 5;
|
||||
max_tunnel_diameter = ps->range(7, ps->range(8, 24));
|
||||
} else {
|
||||
part_max_length_rs = ps->range(2, 9);
|
||||
tunnel_routepoints = ps->range(10, ps->range(15, 30));
|
||||
min_tunnel_diameter = 2;
|
||||
max_tunnel_diameter = ps->range(2, 6);
|
||||
}
|
||||
|
||||
large_cave_is_flat = (ps->range(0, 1) == 0);
|
||||
}
|
||||
|
||||
|
||||
void CaveV7::makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height) {
|
||||
node_min = nmin;
|
||||
node_max = nmax;
|
||||
max_stone_y = max_stone_height;
|
||||
main_direction = v3f(0, 0, 0);
|
||||
|
||||
// Allowed route area size in nodes
|
||||
ar = node_max - node_min + v3s16(1, 1, 1);
|
||||
// Area starting point in nodes
|
||||
of = node_min;
|
||||
|
||||
// Allow a bit more
|
||||
//(this should be more than the maximum radius of the tunnel)
|
||||
s16 insure = 10;
|
||||
s16 more = MAP_BLOCKSIZE - max_tunnel_diameter / 2 - insure;
|
||||
ar += v3s16(1,0,1) * more * 2;
|
||||
of -= v3s16(1,0,1) * more;
|
||||
|
||||
route_y_min = 0;
|
||||
// Allow half a diameter + 7 over stone surface
|
||||
route_y_max = -of.Y + max_stone_y + max_tunnel_diameter / 2 + 7;
|
||||
|
||||
// Limit maximum to area
|
||||
route_y_max = rangelim(route_y_max, 0, ar.Y - 1);
|
||||
|
||||
if (large_cave) {
|
||||
s16 min = 0;
|
||||
if (node_min.Y < water_level && node_max.Y > water_level) {
|
||||
min = water_level - max_tunnel_diameter/3 - of.Y;
|
||||
route_y_max = water_level + max_tunnel_diameter/3 - of.Y;
|
||||
}
|
||||
route_y_min = ps->range(min, min + max_tunnel_diameter);
|
||||
route_y_min = rangelim(route_y_min, 0, route_y_max);
|
||||
}
|
||||
|
||||
s16 route_start_y_min = route_y_min;
|
||||
s16 route_start_y_max = route_y_max;
|
||||
|
||||
route_start_y_min = rangelim(route_start_y_min, 0, ar.Y - 1);
|
||||
route_start_y_max = rangelim(route_start_y_max, route_start_y_min, ar.Y - 1);
|
||||
|
||||
// Randomize starting position
|
||||
orp = v3f(
|
||||
(float)(ps->next() % ar.X) + 0.5,
|
||||
(float)(ps->range(route_start_y_min, route_start_y_max)) + 0.5,
|
||||
(float)(ps->next() % ar.Z) + 0.5
|
||||
);
|
||||
|
||||
// Generate some tunnel starting from orp
|
||||
for (u16 j = 0; j < tunnel_routepoints; j++)
|
||||
makeTunnel(j % dswitchint == 0);
|
||||
}
|
||||
|
||||
|
||||
void CaveV7::makeTunnel(bool dirswitch) {
|
||||
if (dirswitch && !large_cave) {
|
||||
main_direction = v3f(
|
||||
((float)(ps->next() % 20) - (float)10) / 10,
|
||||
((float)(ps->next() % 20) - (float)10) / 30,
|
||||
((float)(ps->next() % 20) - (float)10) / 10
|
||||
);
|
||||
main_direction *= (float)ps->range(0, 10) / 10;
|
||||
}
|
||||
|
||||
// Randomize size
|
||||
s16 min_d = min_tunnel_diameter;
|
||||
s16 max_d = max_tunnel_diameter;
|
||||
rs = ps->range(min_d, max_d);
|
||||
|
||||
v3s16 maxlen;
|
||||
if (large_cave) {
|
||||
maxlen = v3s16(
|
||||
rs * part_max_length_rs,
|
||||
rs * part_max_length_rs / 2,
|
||||
rs * part_max_length_rs
|
||||
);
|
||||
} else {
|
||||
maxlen = v3s16(
|
||||
rs * part_max_length_rs,
|
||||
ps->range(1, rs * part_max_length_rs),
|
||||
rs * part_max_length_rs
|
||||
);
|
||||
}
|
||||
|
||||
v3f vec;
|
||||
// Jump downward sometimes
|
||||
if (!large_cave && ps->range(0, 12) == 0) {
|
||||
vec = v3f(
|
||||
(float)(ps->next() % (maxlen.X * 1)) - (float)maxlen.X / 2,
|
||||
(float)(ps->next() % (maxlen.Y * 2)) - (float)maxlen.Y,
|
||||
(float)(ps->next() % (maxlen.Z * 1)) - (float)maxlen.Z / 2
|
||||
);
|
||||
} else {
|
||||
vec = v3f(
|
||||
(float)(ps->next() % (maxlen.X * 1)) - (float)maxlen.X / 2,
|
||||
(float)(ps->next() % (maxlen.Y * 1)) - (float)maxlen.Y / 2,
|
||||
(float)(ps->next() % (maxlen.Z * 1)) - (float)maxlen.Z / 2
|
||||
);
|
||||
}
|
||||
|
||||
// Do not make large caves that are above ground.
|
||||
// It is only necessary to check the startpoint and endpoint.
|
||||
if (large_cave) {
|
||||
v3s16 orpi(orp.X, orp.Y, orp.Z);
|
||||
v3s16 veci(vec.X, vec.Y, vec.Z);
|
||||
v3s16 p;
|
||||
|
||||
p = orpi + veci + of + rs / 2;
|
||||
if (p.Z >= node_min.Z && p.Z <= node_max.Z &&
|
||||
p.X >= node_min.X && p.X <= node_max.X) {
|
||||
u32 index = (p.Z - node_min.Z) * mg->ystride + (p.X - node_min.X);
|
||||
s16 h = mg->ridge_heightmap[index];
|
||||
if (h < p.Y)
|
||||
return;
|
||||
} else if (p.Y > water_level) {
|
||||
return; // If it's not in our heightmap, use a simple heuristic
|
||||
}
|
||||
|
||||
p = orpi + of + rs / 2;
|
||||
if (p.Z >= node_min.Z && p.Z <= node_max.Z &&
|
||||
p.X >= node_min.X && p.X <= node_max.X) {
|
||||
u32 index = (p.Z - node_min.Z) * mg->ystride + (p.X - node_min.X);
|
||||
s16 h = mg->ridge_heightmap[index];
|
||||
if (h < p.Y)
|
||||
return;
|
||||
} else if (p.Y > water_level) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
vec += main_direction;
|
||||
|
||||
v3f rp = orp + vec;
|
||||
if (rp.X < 0)
|
||||
rp.X = 0;
|
||||
else if (rp.X >= ar.X)
|
||||
rp.X = ar.X - 1;
|
||||
|
||||
if (rp.Y < route_y_min)
|
||||
rp.Y = route_y_min;
|
||||
else if (rp.Y >= route_y_max)
|
||||
rp.Y = route_y_max - 1;
|
||||
|
||||
if (rp.Z < 0)
|
||||
rp.Z = 0;
|
||||
else if (rp.Z >= ar.Z)
|
||||
rp.Z = ar.Z - 1;
|
||||
|
||||
vec = rp - orp;
|
||||
|
||||
float veclen = vec.getLength();
|
||||
if (veclen < 0.05)
|
||||
veclen = 1.0;
|
||||
|
||||
// Every second section is rough
|
||||
bool randomize_xz = (ps->range(1, 2) == 1);
|
||||
|
||||
// Make a ravine every once in a while if it's long enough
|
||||
float xylen = vec.X * vec.X + vec.Z * vec.Z;
|
||||
bool is_ravine = (xylen > 500.0) && !large_cave && (ps->range(1, 8) == 1);
|
||||
|
||||
// Carve routes
|
||||
for (float f = 0; f < 1.0; f += 1.0 / veclen)
|
||||
carveRoute(vec, f, randomize_xz, is_ravine);
|
||||
|
||||
orp = rp;
|
||||
}
|
||||
|
||||
|
||||
void CaveV7::carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine) {
|
||||
MapNode airnode(CONTENT_AIR);
|
||||
MapNode waternode(c_water_source);
|
||||
MapNode lavanode(c_lava_source);
|
||||
MapNode liquidnode = ps->range(0, 4) ? lavanode : waternode;
|
||||
|
||||
v3s16 startp(orp.X, orp.Y, orp.Z);
|
||||
startp += of;
|
||||
|
||||
v3f fp = orp + vec * f;
|
||||
fp.X += 0.1 * ps->range(-10, 10);
|
||||
fp.Z += 0.1 * ps->range(-10, 10);
|
||||
v3s16 cp(fp.X, fp.Y, fp.Z);
|
||||
|
||||
s16 d0 = -rs/2;
|
||||
s16 d1 = d0 + rs;
|
||||
if (randomize_xz) {
|
||||
d0 += ps->range(-1, 1);
|
||||
d1 += ps->range(-1, 1);
|
||||
}
|
||||
|
||||
bool flat_cave_floor = !large_cave && ps->range(0, 2) == 2;
|
||||
|
||||
for (s16 z0 = d0; z0 <= d1; z0++) {
|
||||
s16 si = rs / 2 - MYMAX(0, abs(z0) - rs / 7 - 1);
|
||||
for (s16 x0 = -si - ps->range(0,1); x0 <= si - 1 + ps->range(0,1); x0++) {
|
||||
s16 maxabsxz = MYMAX(abs(x0), abs(z0));
|
||||
|
||||
s16 si2 = is_ravine ? MYMIN(ps->range(25, 26), ar.Y) :
|
||||
rs / 2 - MYMAX(0, maxabsxz - rs / 7 - 1);
|
||||
|
||||
for (s16 y0 = -si2; y0 <= si2; y0++) {
|
||||
// Make better floors in small caves
|
||||
if(flat_cave_floor && y0 <= -rs/2 && rs<=7)
|
||||
continue;
|
||||
|
||||
if (large_cave_is_flat) {
|
||||
// Make large caves not so tall
|
||||
if (rs > 7 && abs(y0) >= rs / 3)
|
||||
continue;
|
||||
}
|
||||
|
||||
v3s16 p(cp.X + x0, cp.Y + y0, cp.Z + z0);
|
||||
p += of;
|
||||
|
||||
if (vm->m_area.contains(p) == false)
|
||||
continue;
|
||||
|
||||
u32 i = vm->m_area.index(p);
|
||||
|
||||
// Don't replace air or water or lava
|
||||
content_t c = vm->m_data[i].getContent();
|
||||
if (c == CONTENT_AIR || c == c_water_source || c == c_lava_source)
|
||||
continue;
|
||||
|
||||
if (large_cave) {
|
||||
int full_ymin = node_min.Y - MAP_BLOCKSIZE;
|
||||
int full_ymax = node_max.Y + MAP_BLOCKSIZE;
|
||||
|
||||
if (flooded && full_ymin < water_level && full_ymax > water_level)
|
||||
vm->m_data[i] = (p.Y <= water_level) ? waternode : airnode;
|
||||
else if (flooded && full_ymax < water_level)
|
||||
vm->m_data[i] = (p.Y < startp.Y - 4) ? liquidnode : airnode;
|
||||
else
|
||||
vm->m_data[i] = airnode;
|
||||
} else {
|
||||
vm->m_data[i] = airnode;
|
||||
vm->m_flags[i] |= VMANIP_FLAG_CAVE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
115
src/cavegen.h
Normal file
115
src/cavegen.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
Minetest
|
||||
Copyright (C) 2010-2013 kwolekr, Ryan Kwolek <kwolekr@minetest.net>
|
||||
|
||||
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 CAVEGEN_HEADER
|
||||
#define CAVEGEN_HEADER
|
||||
|
||||
#define VMANIP_FLAG_CAVE VOXELFLAG_CHECKED1
|
||||
|
||||
class MapgenV6;
|
||||
class MapgenV7;
|
||||
|
||||
class CaveV6 {
|
||||
public:
|
||||
MapgenV6 *mg;
|
||||
ManualMapVoxelManipulator *vm;
|
||||
INodeDefManager *ndef;
|
||||
|
||||
s16 min_tunnel_diameter;
|
||||
s16 max_tunnel_diameter;
|
||||
u16 tunnel_routepoints;
|
||||
int dswitchint;
|
||||
int part_max_length_rs;
|
||||
|
||||
bool large_cave;
|
||||
bool large_cave_is_flat;
|
||||
bool flooded;
|
||||
|
||||
s16 max_stone_y;
|
||||
v3s16 node_min;
|
||||
v3s16 node_max;
|
||||
|
||||
v3f orp; // starting point, relative to caved space
|
||||
v3s16 of; // absolute coordinates of caved space
|
||||
v3s16 ar; // allowed route area
|
||||
s16 rs; // tunnel radius size
|
||||
v3f main_direction;
|
||||
|
||||
s16 route_y_min;
|
||||
s16 route_y_max;
|
||||
|
||||
PseudoRandom *ps;
|
||||
PseudoRandom *ps2;
|
||||
|
||||
content_t c_water_source;
|
||||
content_t c_lava_source;
|
||||
|
||||
int water_level;
|
||||
|
||||
CaveV6() {}
|
||||
CaveV6(MapgenV6 *mg, PseudoRandom *ps, PseudoRandom *ps2, bool large_cave);
|
||||
void makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height);
|
||||
void makeTunnel(bool dirswitch);
|
||||
void carveRoute(v3f vec, float f, bool randomize_xz);
|
||||
};
|
||||
|
||||
class CaveV7 {
|
||||
public:
|
||||
MapgenV7 *mg;
|
||||
ManualMapVoxelManipulator *vm;
|
||||
INodeDefManager *ndef;
|
||||
|
||||
s16 min_tunnel_diameter;
|
||||
s16 max_tunnel_diameter;
|
||||
u16 tunnel_routepoints;
|
||||
int dswitchint;
|
||||
int part_max_length_rs;
|
||||
|
||||
bool large_cave;
|
||||
bool large_cave_is_flat;
|
||||
bool flooded;
|
||||
|
||||
s16 max_stone_y;
|
||||
v3s16 node_min;
|
||||
v3s16 node_max;
|
||||
|
||||
v3f orp; // starting point, relative to caved space
|
||||
v3s16 of; // absolute coordinates of caved space
|
||||
v3s16 ar; // allowed route area
|
||||
s16 rs; // tunnel radius size
|
||||
v3f main_direction;
|
||||
|
||||
s16 route_y_min;
|
||||
s16 route_y_max;
|
||||
|
||||
PseudoRandom *ps;
|
||||
|
||||
content_t c_water_source;
|
||||
content_t c_lava_source;
|
||||
|
||||
int water_level;
|
||||
|
||||
CaveV7() {}
|
||||
CaveV7(MapgenV7 *mg, PseudoRandom *ps, bool large_cave);
|
||||
void makeCave(v3s16 nmin, v3s16 nmax, int max_stone_height);
|
||||
void makeTunnel(bool dirswitch);
|
||||
void carveRoute(v3f vec, float f, bool randomize_xz, bool is_ravine);
|
||||
};
|
||||
|
||||
#endif
|
||||
1146
src/cguittfont/CGUITTFont.cpp
Normal file
1146
src/cguittfont/CGUITTFont.cpp
Normal file
File diff suppressed because it is too large
Load Diff
377
src/cguittfont/CGUITTFont.h
Normal file
377
src/cguittfont/CGUITTFont.h
Normal file
@@ -0,0 +1,377 @@
|
||||
/*
|
||||
CGUITTFont FreeType class for Irrlicht
|
||||
Copyright (c) 2009-2010 John Norman
|
||||
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the authors be held liable for any
|
||||
damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any
|
||||
purpose, including commercial applications, and to alter it and
|
||||
redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you
|
||||
must not claim that you wrote the original software. If you use
|
||||
this software in a product, an acknowledgment in the product
|
||||
documentation would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and
|
||||
must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
|
||||
The original version of this class can be located at:
|
||||
http://irrlicht.suckerfreegames.com/
|
||||
|
||||
John Norman
|
||||
john@suckerfreegames.com
|
||||
*/
|
||||
|
||||
#ifndef __C_GUI_TTFONT_H_INCLUDED__
|
||||
#define __C_GUI_TTFONT_H_INCLUDED__
|
||||
|
||||
#include <irrlicht.h>
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
namespace irr
|
||||
{
|
||||
namespace gui
|
||||
{
|
||||
struct SGUITTFace;
|
||||
class CGUITTFont;
|
||||
|
||||
//! Class to assist in deleting glyphs.
|
||||
class CGUITTAssistDelete
|
||||
{
|
||||
public:
|
||||
template <class T, typename TAlloc>
|
||||
static void Delete(core::array<T, TAlloc>& a)
|
||||
{
|
||||
TAlloc allocator;
|
||||
allocator.deallocate(a.pointer());
|
||||
}
|
||||
};
|
||||
|
||||
//! Structure representing a single TrueType glyph.
|
||||
struct SGUITTGlyph
|
||||
{
|
||||
//! Constructor.
|
||||
SGUITTGlyph() : isLoaded(false), glyph_page(0), surface(0), parent(0) {}
|
||||
|
||||
//! Destructor.
|
||||
~SGUITTGlyph() { unload(); }
|
||||
|
||||
//! Preload the glyph.
|
||||
//! The preload process occurs when the program tries to cache the glyph from FT_Library.
|
||||
//! However, it simply defines the SGUITTGlyph's properties and will only create the page
|
||||
//! textures if necessary. The actual creation of the textures should only occur right
|
||||
//! before the batch draw call.
|
||||
void preload(u32 char_index, FT_Face face, video::IVideoDriver* driver, u32 font_size, const FT_Int32 loadFlags);
|
||||
|
||||
//! Unloads the glyph.
|
||||
void unload();
|
||||
|
||||
//! Creates the IImage object from the FT_Bitmap.
|
||||
video::IImage* createGlyphImage(const FT_Bitmap& bits, video::IVideoDriver* driver) const;
|
||||
|
||||
//! If true, the glyph has been loaded.
|
||||
bool isLoaded;
|
||||
|
||||
//! The page the glyph is on.
|
||||
u32 glyph_page;
|
||||
|
||||
//! The source rectangle for the glyph.
|
||||
core::recti source_rect;
|
||||
|
||||
//! The offset of glyph when drawn.
|
||||
core::vector2di offset;
|
||||
|
||||
//! Glyph advance information.
|
||||
FT_Vector advance;
|
||||
|
||||
//! This is just the temporary image holder. After this glyph is paged,
|
||||
//! it will be dropped.
|
||||
mutable video::IImage* surface;
|
||||
|
||||
//! The pointer pointing to the parent (CGUITTFont)
|
||||
CGUITTFont* parent;
|
||||
};
|
||||
|
||||
//! Holds a sheet of glyphs.
|
||||
class CGUITTGlyphPage
|
||||
{
|
||||
public:
|
||||
CGUITTGlyphPage(video::IVideoDriver* Driver, const io::path& texture_name) :texture(0), available_slots(0), used_slots(0), dirty(false), driver(Driver), name(texture_name) {}
|
||||
~CGUITTGlyphPage()
|
||||
{
|
||||
if (texture)
|
||||
{
|
||||
if (driver)
|
||||
driver->removeTexture(texture);
|
||||
else texture->drop();
|
||||
}
|
||||
}
|
||||
|
||||
//! Create the actual page texture,
|
||||
bool createPageTexture(const u8& pixel_mode, const core::dimension2du& texture_size)
|
||||
{
|
||||
if( texture )
|
||||
return false;
|
||||
|
||||
bool flgmip = driver->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS);
|
||||
driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false);
|
||||
|
||||
// Set the texture color format.
|
||||
switch (pixel_mode)
|
||||
{
|
||||
case FT_PIXEL_MODE_MONO:
|
||||
texture = driver->addTexture(texture_size, name, video::ECF_A1R5G5B5);
|
||||
break;
|
||||
case FT_PIXEL_MODE_GRAY:
|
||||
default:
|
||||
texture = driver->addTexture(texture_size, name, video::ECF_A8R8G8B8);
|
||||
break;
|
||||
}
|
||||
|
||||
// Restore our texture creation flags.
|
||||
driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, flgmip);
|
||||
return texture ? true : false;
|
||||
}
|
||||
|
||||
//! Add the glyph to a list of glyphs to be paged.
|
||||
//! This collection will be cleared after updateTexture is called.
|
||||
void pushGlyphToBePaged(const SGUITTGlyph* glyph)
|
||||
{
|
||||
glyph_to_be_paged.push_back(glyph);
|
||||
}
|
||||
|
||||
//! Updates the texture atlas with new glyphs.
|
||||
void updateTexture()
|
||||
{
|
||||
if (!dirty) return;
|
||||
|
||||
void* ptr = texture->lock();
|
||||
video::ECOLOR_FORMAT format = texture->getColorFormat();
|
||||
core::dimension2du size = texture->getOriginalSize();
|
||||
video::IImage* pageholder = driver->createImageFromData(format, size, ptr, true, false);
|
||||
|
||||
for (u32 i = 0; i < glyph_to_be_paged.size(); ++i)
|
||||
{
|
||||
const SGUITTGlyph* glyph = glyph_to_be_paged[i];
|
||||
if (glyph && glyph->isLoaded)
|
||||
{
|
||||
if (glyph->surface)
|
||||
{
|
||||
glyph->surface->copyTo(pageholder, glyph->source_rect.UpperLeftCorner);
|
||||
glyph->surface->drop();
|
||||
glyph->surface = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
; // TODO: add error message?
|
||||
//currently, if we failed to create the image, just ignore this operation.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pageholder->drop();
|
||||
texture->unlock();
|
||||
glyph_to_be_paged.clear();
|
||||
dirty = false;
|
||||
}
|
||||
|
||||
video::ITexture* texture;
|
||||
u32 available_slots;
|
||||
u32 used_slots;
|
||||
bool dirty;
|
||||
|
||||
core::array<core::vector2di> render_positions;
|
||||
core::array<core::recti> render_source_rects;
|
||||
|
||||
private:
|
||||
core::array<const SGUITTGlyph*> glyph_to_be_paged;
|
||||
video::IVideoDriver* driver;
|
||||
io::path name;
|
||||
};
|
||||
|
||||
//! Class representing a TrueType font.
|
||||
class CGUITTFont : public IGUIFont
|
||||
{
|
||||
public:
|
||||
//! Creates a new TrueType font and returns a pointer to it. The pointer must be drop()'ed when finished.
|
||||
//! \param env The IGUIEnvironment the font loads out of.
|
||||
//! \param filename The filename of the font.
|
||||
//! \param size The size of the font glyphs in pixels. Since this is the size of the individual glyphs, the true height of the font may change depending on the characters used.
|
||||
//! \param antialias set the use_monochrome (opposite to antialias) flag
|
||||
//! \param transparency set the use_transparency flag
|
||||
//! \return Returns a pointer to a CGUITTFont. Will return 0 if the font failed to load.
|
||||
static CGUITTFont* createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||
static CGUITTFont* createTTFont(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||
static CGUITTFont* create(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||
static CGUITTFont* create(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
|
||||
|
||||
//! Destructor
|
||||
virtual ~CGUITTFont();
|
||||
|
||||
//! Sets the amount of glyphs to batch load.
|
||||
virtual void setBatchLoadSize(u32 batch_size) { batch_load_size = batch_size; }
|
||||
|
||||
//! Sets the maximum texture size for a page of glyphs.
|
||||
virtual void setMaxPageTextureSize(const core::dimension2du& texture_size) { max_page_texture_size = texture_size; }
|
||||
|
||||
//! Get the font size.
|
||||
virtual u32 getFontSize() const { return size; }
|
||||
|
||||
//! Check the font's transparency.
|
||||
virtual bool isTransparent() const { return use_transparency; }
|
||||
|
||||
//! Check if the font auto-hinting is enabled.
|
||||
//! Auto-hinting is FreeType's built-in font hinting engine.
|
||||
virtual bool useAutoHinting() const { return use_auto_hinting; }
|
||||
|
||||
//! Check if the font hinting is enabled.
|
||||
virtual bool useHinting() const { return use_hinting; }
|
||||
|
||||
//! Check if the font is being loaded as a monochrome font.
|
||||
//! The font can either be a 256 color grayscale font, or a 2 color monochrome font.
|
||||
virtual bool useMonochrome() const { return use_monochrome; }
|
||||
|
||||
//! Tells the font to allow transparency when rendering.
|
||||
//! Default: true.
|
||||
//! \param flag If true, the font draws using transparency.
|
||||
virtual void setTransparency(const bool flag);
|
||||
|
||||
//! Tells the font to use monochrome rendering.
|
||||
//! Default: false.
|
||||
//! \param flag If true, the font draws using a monochrome image. If false, the font uses a grayscale image.
|
||||
virtual void setMonochrome(const bool flag);
|
||||
|
||||
//! Enables or disables font hinting.
|
||||
//! Default: Hinting and auto-hinting true.
|
||||
//! \param enable If false, font hinting is turned off. If true, font hinting is turned on.
|
||||
//! \param enable_auto_hinting If true, FreeType uses its own auto-hinting algorithm. If false, it tries to use the algorithm specified by the font.
|
||||
virtual void setFontHinting(const bool enable, const bool enable_auto_hinting = true);
|
||||
|
||||
//! Draws some text and clips it to the specified rectangle if wanted.
|
||||
virtual void draw(const core::stringw& text, const core::rect<s32>& position,
|
||||
video::SColor color, bool hcenter=false, bool vcenter=false,
|
||||
const core::rect<s32>* clip=0);
|
||||
|
||||
//! Returns the dimension of a character produced by this font.
|
||||
virtual core::dimension2d<u32> getCharDimension(const wchar_t ch) const;
|
||||
|
||||
//! Returns the dimension of a text string.
|
||||
virtual core::dimension2d<u32> getDimension(const wchar_t* text) const;
|
||||
virtual core::dimension2d<u32> getDimension(const core::ustring& text) const;
|
||||
|
||||
//! Calculates the index of the character in the text which is on a specific position.
|
||||
virtual s32 getCharacterFromPos(const wchar_t* text, s32 pixel_x) const;
|
||||
virtual s32 getCharacterFromPos(const core::ustring& text, s32 pixel_x) const;
|
||||
|
||||
//! Sets global kerning width for the font.
|
||||
virtual void setKerningWidth(s32 kerning);
|
||||
|
||||
//! Sets global kerning height for the font.
|
||||
virtual void setKerningHeight(s32 kerning);
|
||||
|
||||
//! Gets kerning values (distance between letters) for the font. If no parameters are provided,
|
||||
virtual s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const;
|
||||
virtual s32 getKerningWidth(const uchar32_t thisLetter=0, const uchar32_t previousLetter=0) const;
|
||||
|
||||
//! Returns the distance between letters
|
||||
virtual s32 getKerningHeight() const;
|
||||
|
||||
//! Define which characters should not be drawn by the font.
|
||||
virtual void setInvisibleCharacters(const wchar_t *s);
|
||||
virtual void setInvisibleCharacters(const core::ustring& s);
|
||||
|
||||
//! Get the last glyph page if there's still available slots.
|
||||
//! If not, it will return zero.
|
||||
CGUITTGlyphPage* getLastGlyphPage() const;
|
||||
|
||||
//! Create a new glyph page texture.
|
||||
//! \param pixel_mode the pixel mode defined by FT_Pixel_Mode
|
||||
//should be better typed. fix later.
|
||||
CGUITTGlyphPage* createGlyphPage(const u8& pixel_mode);
|
||||
|
||||
//! Get the last glyph page's index.
|
||||
u32 getLastGlyphPageIndex() const { return Glyph_Pages.size() - 1; }
|
||||
|
||||
//! Create corresponding character's software image copy from the font,
|
||||
//! so you can use this data just like any ordinary video::IImage.
|
||||
//! \param ch The character you need
|
||||
virtual video::IImage* createTextureFromChar(const uchar32_t& ch);
|
||||
|
||||
//! This function is for debugging mostly. If the page doesn't exist it returns zero.
|
||||
//! \param page_index Simply return the texture handle of a given page index.
|
||||
virtual video::ITexture* getPageTextureByIndex(const u32& page_index) const;
|
||||
|
||||
//! Add a list of scene nodes generated by putting font textures on the 3D planes.
|
||||
virtual core::array<scene::ISceneNode*> addTextSceneNode
|
||||
(const wchar_t* text, scene::ISceneManager* smgr, scene::ISceneNode* parent = 0,
|
||||
const video::SColor& color = video::SColor(255, 0, 0, 0), bool center = false );
|
||||
|
||||
protected:
|
||||
bool use_monochrome;
|
||||
bool use_transparency;
|
||||
bool use_hinting;
|
||||
bool use_auto_hinting;
|
||||
u32 size;
|
||||
u32 batch_load_size;
|
||||
core::dimension2du max_page_texture_size;
|
||||
|
||||
private:
|
||||
// Manages the FreeType library.
|
||||
static FT_Library c_library;
|
||||
static core::map<io::path, SGUITTFace*> c_faces;
|
||||
static bool c_libraryLoaded;
|
||||
static scene::IMesh* shared_plane_ptr_;
|
||||
static scene::SMesh shared_plane_;
|
||||
|
||||
CGUITTFont(IGUIEnvironment *env);
|
||||
bool load(const io::path& filename, const u32 size, const bool antialias, const bool transparency);
|
||||
void reset_images();
|
||||
void update_glyph_pages() const;
|
||||
void update_load_flags()
|
||||
{
|
||||
// Set up our loading flags.
|
||||
load_flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER;
|
||||
if (!useHinting()) load_flags |= FT_LOAD_NO_HINTING;
|
||||
if (!useAutoHinting()) load_flags |= FT_LOAD_NO_AUTOHINT;
|
||||
if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO | FT_RENDER_MODE_MONO;
|
||||
else load_flags |= FT_LOAD_TARGET_NORMAL;
|
||||
}
|
||||
u32 getWidthFromCharacter(wchar_t c) const;
|
||||
u32 getWidthFromCharacter(uchar32_t c) const;
|
||||
u32 getHeightFromCharacter(wchar_t c) const;
|
||||
u32 getHeightFromCharacter(uchar32_t c) const;
|
||||
u32 getGlyphIndexByChar(wchar_t c) const;
|
||||
u32 getGlyphIndexByChar(uchar32_t c) const;
|
||||
core::vector2di getKerning(const wchar_t thisLetter, const wchar_t previousLetter) const;
|
||||
core::vector2di getKerning(const uchar32_t thisLetter, const uchar32_t previousLetter) const;
|
||||
core::dimension2d<u32> getDimensionUntilEndOfLine(const wchar_t* p) const;
|
||||
|
||||
void createSharedPlane();
|
||||
|
||||
irr::IrrlichtDevice* Device;
|
||||
gui::IGUIEnvironment* Environment;
|
||||
video::IVideoDriver* Driver;
|
||||
io::path filename;
|
||||
FT_Face tt_face;
|
||||
FT_Size_Metrics font_metrics;
|
||||
FT_Int32 load_flags;
|
||||
|
||||
mutable core::array<CGUITTGlyphPage*> Glyph_Pages;
|
||||
mutable core::array<SGUITTGlyph> Glyphs;
|
||||
|
||||
s32 GlobalKerningWidth;
|
||||
s32 GlobalKerningHeight;
|
||||
core::ustring Invisible;
|
||||
};
|
||||
|
||||
} // end namespace gui
|
||||
} // end namespace irr
|
||||
|
||||
#endif // __C_GUI_TTFONT_H_INCLUDED__
|
||||
17
src/cguittfont/CMakeLists.txt
Normal file
17
src/cguittfont/CMakeLists.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
include_directories(
|
||||
${IRRLICHT_INCLUDE_DIR}
|
||||
${FREETYPE_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
# CGUITTFont authors, y u no include headers you use?
|
||||
# Do not add CGUITTFont.cpp to the line below.
|
||||
# xCGUITTFont.cpp is a wrapper file that includes
|
||||
# additional required headers.
|
||||
add_library(cguittfont xCGUITTFont.cpp)
|
||||
|
||||
target_link_libraries(
|
||||
cguittfont
|
||||
${IRRLICHT_LIBRARY}
|
||||
${FREETYPE_LIBRARY}
|
||||
${ZLIB_LIBRARIES} # needed by freetype, repeated here for safety
|
||||
)
|
||||
3877
src/cguittfont/irrUString.h
Normal file
3877
src/cguittfont/irrUString.h
Normal file
File diff suppressed because it is too large
Load Diff
5
src/cguittfont/xCGUITTFont.cpp
Normal file
5
src/cguittfont/xCGUITTFont.cpp
Normal file
@@ -0,0 +1,5 @@
|
||||
// A wrapper source file to avoid hack with gcc and modifying
|
||||
// the CGUITTFont files.
|
||||
|
||||
#include "xCGUITTFont.h"
|
||||
#include "CGUITTFont.cpp"
|
||||
7
src/cguittfont/xCGUITTFont.h
Normal file
7
src/cguittfont/xCGUITTFont.h
Normal file
@@ -0,0 +1,7 @@
|
||||
// A wrapper header to avoid hack with gcc and modifying
|
||||
// the CGUITTFont files.
|
||||
|
||||
#include <algorithm>
|
||||
#include <stddef.h>
|
||||
#include "irrUString.h"
|
||||
#include "CGUITTFont.h"
|
||||
28
src/chat.cpp
28
src/chat.cpp
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -117,8 +117,8 @@ void ChatBuffer::deleteOldest(u32 count)
|
||||
--count;
|
||||
}
|
||||
|
||||
m_unformatted.erase(0, del_unformatted);
|
||||
m_formatted.erase(0, del_formatted);
|
||||
m_unformatted.erase(m_unformatted.begin(), m_unformatted.begin() + del_unformatted);
|
||||
m_formatted.erase(m_formatted.begin(), m_formatted.begin() + del_formatted);
|
||||
}
|
||||
|
||||
void ChatBuffer::deleteByAge(f32 maxAge)
|
||||
@@ -232,10 +232,10 @@ void ChatBuffer::scrollTop()
|
||||
}
|
||||
|
||||
u32 ChatBuffer::formatChatLine(const ChatLine& line, u32 cols,
|
||||
core::array<ChatFormattedLine>& destination) const
|
||||
std::vector<ChatFormattedLine>& destination) const
|
||||
{
|
||||
u32 num_added = 0;
|
||||
core::array<ChatFormattedFragment> next_frags;
|
||||
std::vector<ChatFormattedFragment> next_frags;
|
||||
ChatFormattedLine next_line;
|
||||
ChatFormattedFragment temp_frag;
|
||||
u32 out_column = 0;
|
||||
@@ -292,7 +292,7 @@ u32 ChatBuffer::formatChatLine(const ChatLine& line, u32 cols,
|
||||
frag.column = out_column;
|
||||
next_line.fragments.push_back(frag);
|
||||
out_column += frag.text.size();
|
||||
next_frags.erase(0, 1);
|
||||
next_frags.erase(next_frags.begin());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -414,7 +414,7 @@ std::wstring ChatPrompt::submit()
|
||||
if (!line.empty())
|
||||
m_history.push_back(line);
|
||||
if (m_history.size() > m_history_limit)
|
||||
m_history.erase(0);
|
||||
m_history.erase(m_history.begin());
|
||||
m_history_index = m_history.size();
|
||||
m_view = 0;
|
||||
m_cursor = 0;
|
||||
@@ -464,7 +464,7 @@ void ChatPrompt::historyNext()
|
||||
}
|
||||
}
|
||||
|
||||
void ChatPrompt::nickCompletion(const core::list<std::wstring>& names, bool backwards)
|
||||
void ChatPrompt::nickCompletion(const std::list<std::string>& names, bool backwards)
|
||||
{
|
||||
// Two cases:
|
||||
// (a) m_nick_completion_start == m_nick_completion_end == 0
|
||||
@@ -492,14 +492,14 @@ void ChatPrompt::nickCompletion(const core::list<std::wstring>& names, bool back
|
||||
std::wstring prefix = m_line.substr(prefix_start, prefix_end - prefix_start);
|
||||
|
||||
// find all names that start with the selected prefix
|
||||
core::array<std::wstring> completions;
|
||||
for (core::list<std::wstring>::ConstIterator
|
||||
std::vector<std::wstring> completions;
|
||||
for (std::list<std::string>::const_iterator
|
||||
i = names.begin();
|
||||
i != names.end(); i++)
|
||||
i != names.end(); ++i)
|
||||
{
|
||||
if (str_starts_with(*i, prefix, true))
|
||||
if (str_starts_with(narrow_to_wide(*i), prefix, true))
|
||||
{
|
||||
std::wstring completion = *i;
|
||||
std::wstring completion = narrow_to_wide(*i);
|
||||
if (prefix_start == 0)
|
||||
completion += L":";
|
||||
completions.push_back(completion);
|
||||
|
||||
18
src/chat.h
18
src/chat.h
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -22,6 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
#include "irrlichttypes_bloated.h"
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <list>
|
||||
|
||||
// Chat console related classes, only used by the client
|
||||
|
||||
@@ -55,7 +57,7 @@ struct ChatFormattedFragment
|
||||
struct ChatFormattedLine
|
||||
{
|
||||
// Array of text fragments
|
||||
core::array<ChatFormattedFragment> fragments;
|
||||
std::vector<ChatFormattedFragment> fragments;
|
||||
// true if first line of one formatted ChatLine
|
||||
bool first;
|
||||
};
|
||||
@@ -110,7 +112,7 @@ class ChatBuffer
|
||||
// Appends the formatted lines to the destination array and
|
||||
// returns the number of formatted lines.
|
||||
u32 formatChatLine(const ChatLine& line, u32 cols,
|
||||
core::array<ChatFormattedLine>& destination) const;
|
||||
std::vector<ChatFormattedLine>& destination) const;
|
||||
|
||||
protected:
|
||||
s32 getTopScrollPos() const;
|
||||
@@ -120,7 +122,7 @@ class ChatBuffer
|
||||
// Scrollback size
|
||||
u32 m_scrollback;
|
||||
// Array of unformatted chat lines
|
||||
core::array<ChatLine> m_unformatted;
|
||||
std::vector<ChatLine> m_unformatted;
|
||||
|
||||
// Number of character columns in console
|
||||
u32 m_cols;
|
||||
@@ -129,7 +131,7 @@ class ChatBuffer
|
||||
// Scroll position (console's top line index into m_formatted)
|
||||
s32 m_scroll;
|
||||
// Array of formatted lines
|
||||
core::array<ChatFormattedLine> m_formatted;
|
||||
std::vector<ChatFormattedLine> m_formatted;
|
||||
// Empty formatted line, for error returns
|
||||
ChatFormattedLine m_empty_formatted_line;
|
||||
};
|
||||
@@ -158,7 +160,7 @@ class ChatPrompt
|
||||
void historyNext();
|
||||
|
||||
// Nick completion
|
||||
void nickCompletion(const core::list<std::wstring>& names, bool backwards);
|
||||
void nickCompletion(const std::list<std::string>& names, bool backwards);
|
||||
|
||||
// Update console size and reformat the visible portion of the prompt
|
||||
void reformat(u32 cols);
|
||||
@@ -209,7 +211,7 @@ class ChatPrompt
|
||||
// Currently edited line
|
||||
std::wstring m_line;
|
||||
// History buffer
|
||||
core::array<std::wstring> m_history;
|
||||
std::vector<std::wstring> m_history;
|
||||
// History index (0 <= m_history_index <= m_history.size())
|
||||
u32 m_history_index;
|
||||
// Maximum number of history entries
|
||||
|
||||
587
src/client.cpp
587
src/client.cpp
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -29,6 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "mapblock.h"
|
||||
#include "settings.h"
|
||||
#include "profiler.h"
|
||||
#include "gettext.h"
|
||||
#include "log.h"
|
||||
#include "nodemetadata.h"
|
||||
#include "nodedef.h"
|
||||
@@ -44,21 +45,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "hex.h"
|
||||
#include "IMeshCache.h"
|
||||
#include "util/serialize.h"
|
||||
#include "config.h"
|
||||
#include "util/directiontables.h"
|
||||
|
||||
#if USE_CURL
|
||||
#include <curl/curl.h>
|
||||
#endif
|
||||
|
||||
static std::string getMediaCacheDir()
|
||||
{
|
||||
return porting::path_user + DIR_DELIM + "cache" + DIR_DELIM + "media";
|
||||
}
|
||||
|
||||
struct MediaRequest
|
||||
{
|
||||
std::string name;
|
||||
|
||||
MediaRequest(const std::string &name_=""):
|
||||
name(name_)
|
||||
{}
|
||||
};
|
||||
|
||||
/*
|
||||
QueuedMeshUpdate
|
||||
*/
|
||||
@@ -223,6 +221,46 @@ void * MeshUpdateThread::Thread()
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void * MediaFetchThread::Thread()
|
||||
{
|
||||
ThreadStarted();
|
||||
|
||||
log_register_thread("MediaFetchThread");
|
||||
|
||||
DSTACK(__FUNCTION_NAME);
|
||||
|
||||
BEGIN_DEBUG_EXCEPTION_HANDLER
|
||||
|
||||
#if USE_CURL
|
||||
CURL *curl;
|
||||
CURLcode res;
|
||||
for (std::list<MediaRequest>::iterator i = m_file_requests.begin();
|
||||
i != m_file_requests.end(); ++i) {
|
||||
curl = curl_easy_init();
|
||||
assert(curl);
|
||||
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
|
||||
curl_easy_setopt(curl, CURLOPT_URL, (m_remote_url + i->name).c_str());
|
||||
curl_easy_setopt(curl, CURLOPT_FAILONERROR, true);
|
||||
std::ostringstream stream;
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write_data);
|
||||
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &stream);
|
||||
res = curl_easy_perform(curl);
|
||||
if (res == CURLE_OK) {
|
||||
std::string data = stream.str();
|
||||
m_file_data.push_back(make_pair(i->name, data));
|
||||
} else {
|
||||
m_failed.push_back(*i);
|
||||
infostream << "cURL request failed for " << i->name << std::endl;
|
||||
}
|
||||
curl_easy_cleanup(curl);
|
||||
}
|
||||
#endif
|
||||
|
||||
END_DEBUG_EXCEPTION_HANDLER(errorstream)
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Client::Client(
|
||||
IrrlichtDevice *device,
|
||||
const char *playername,
|
||||
@@ -263,8 +301,9 @@ Client::Client(
|
||||
m_password(password),
|
||||
m_access_denied(false),
|
||||
m_media_cache(getMediaCacheDir()),
|
||||
m_media_receive_progress(0),
|
||||
m_media_received(false),
|
||||
m_media_receive_started(false),
|
||||
m_media_count(0),
|
||||
m_media_received_count(0),
|
||||
m_itemdef_received(false),
|
||||
m_nodedef_received(false),
|
||||
m_time_of_day_set(false),
|
||||
@@ -296,6 +335,9 @@ Client::Client(
|
||||
|
||||
m_env.addPlayer(player);
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < g_settings->getU16("media_fetch_threads"); ++i)
|
||||
m_media_fetch_threads.push_back(new MediaFetchThread(this));
|
||||
}
|
||||
|
||||
Client::~Client()
|
||||
@@ -308,6 +350,11 @@ Client::~Client()
|
||||
m_mesh_update_thread.setRun(false);
|
||||
while(m_mesh_update_thread.IsRunning())
|
||||
sleep_ms(100);
|
||||
while(!m_mesh_update_thread.m_queue_out.empty()) {
|
||||
MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front();
|
||||
delete r.mesh;
|
||||
}
|
||||
|
||||
|
||||
delete m_inventory_from_server;
|
||||
|
||||
@@ -319,6 +366,19 @@ Client::~Client()
|
||||
delete i->second;
|
||||
}
|
||||
}
|
||||
|
||||
for (std::list<MediaFetchThread*>::iterator i = m_media_fetch_threads.begin();
|
||||
i != m_media_fetch_threads.end(); ++i)
|
||||
delete *i;
|
||||
|
||||
// cleanup 3d model meshes on client shutdown
|
||||
while (m_device->getSceneManager()->getMeshCache()->getMeshCount() != 0) {
|
||||
scene::IAnimatedMesh * mesh =
|
||||
m_device->getSceneManager()->getMeshCache()->getMeshByIndex(0);
|
||||
|
||||
if (mesh != NULL)
|
||||
m_device->getSceneManager()->getMeshCache()->removeMesh(mesh);
|
||||
}
|
||||
}
|
||||
|
||||
void Client::connect(Address address)
|
||||
@@ -541,7 +601,7 @@ void Client::step(float dtime)
|
||||
if(m_map_timer_and_unload_interval.step(dtime, map_timer_and_unload_dtime))
|
||||
{
|
||||
ScopeProfiler sp(g_profiler, "Client: map timer and unload");
|
||||
core::list<v3s16> deleted_blocks;
|
||||
std::list<v3s16> deleted_blocks;
|
||||
m_env.getMap().timerUpdate(map_timer_and_unload_dtime,
|
||||
g_settings->getFloat("client_unload_unused_data_timeout"),
|
||||
&deleted_blocks);
|
||||
@@ -555,8 +615,8 @@ void Client::step(float dtime)
|
||||
NOTE: This loop is intentionally iterated the way it is.
|
||||
*/
|
||||
|
||||
core::list<v3s16>::Iterator i = deleted_blocks.begin();
|
||||
core::list<v3s16> sendlist;
|
||||
std::list<v3s16>::iterator i = deleted_blocks.begin();
|
||||
std::list<v3s16> sendlist;
|
||||
for(;;)
|
||||
{
|
||||
if(sendlist.size() == 255 || i == deleted_blocks.end())
|
||||
@@ -575,9 +635,9 @@ void Client::step(float dtime)
|
||||
writeU16(&reply[0], TOSERVER_DELETEDBLOCKS);
|
||||
reply[2] = sendlist.size();
|
||||
u32 k = 0;
|
||||
for(core::list<v3s16>::Iterator
|
||||
for(std::list<v3s16>::iterator
|
||||
j = sendlist.begin();
|
||||
j != sendlist.end(); j++)
|
||||
j != sendlist.end(); ++j)
|
||||
{
|
||||
writeV3S16(&reply[2+1+6*k], *j);
|
||||
k++;
|
||||
@@ -591,7 +651,7 @@ void Client::step(float dtime)
|
||||
}
|
||||
|
||||
sendlist.push_back(*i);
|
||||
i++;
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -683,7 +743,7 @@ void Client::step(float dtime)
|
||||
<<std::endl;*/
|
||||
|
||||
int num_processed_meshes = 0;
|
||||
while(m_mesh_update_thread.m_queue_out.size() > 0)
|
||||
while(!m_mesh_update_thread.m_queue_out.empty())
|
||||
{
|
||||
num_processed_meshes++;
|
||||
MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front();
|
||||
@@ -702,6 +762,8 @@ void Client::step(float dtime)
|
||||
|
||||
// Replace with the new mesh
|
||||
block->mesh = r.mesh;
|
||||
} else {
|
||||
delete r.mesh;
|
||||
}
|
||||
if(r.ack_block_to_server)
|
||||
{
|
||||
@@ -730,6 +792,62 @@ void Client::step(float dtime)
|
||||
g_profiler->graphAdd("num_processed_meshes", num_processed_meshes);
|
||||
}
|
||||
|
||||
/*
|
||||
Load fetched media
|
||||
*/
|
||||
if (m_media_receive_started) {
|
||||
bool all_stopped = true;
|
||||
for (std::list<MediaFetchThread*>::iterator thread = m_media_fetch_threads.begin();
|
||||
thread != m_media_fetch_threads.end(); ++thread) {
|
||||
all_stopped &= !(*thread)->IsRunning();
|
||||
while (!(*thread)->m_file_data.empty()) {
|
||||
std::pair <std::string, std::string> out = (*thread)->m_file_data.pop_front();
|
||||
++m_media_received_count;
|
||||
|
||||
bool success = loadMedia(out.second, out.first);
|
||||
if(success){
|
||||
verbosestream<<"Client: Loaded received media: "
|
||||
<<"\""<<out.first<<"\". Caching."<<std::endl;
|
||||
} else{
|
||||
infostream<<"Client: Failed to load received media: "
|
||||
<<"\""<<out.first<<"\". Not caching."<<std::endl;
|
||||
continue;
|
||||
}
|
||||
|
||||
bool did = fs::CreateAllDirs(getMediaCacheDir());
|
||||
if(!did){
|
||||
errorstream<<"Could not create media cache directory"
|
||||
<<std::endl;
|
||||
}
|
||||
|
||||
{
|
||||
std::map<std::string, std::string>::iterator n;
|
||||
n = m_media_name_sha1_map.find(out.first);
|
||||
if(n == m_media_name_sha1_map.end())
|
||||
errorstream<<"The server sent a file that has not "
|
||||
<<"been announced."<<std::endl;
|
||||
else
|
||||
m_media_cache.update_sha1(out.second);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (all_stopped) {
|
||||
std::list<MediaRequest> fetch_failed;
|
||||
for (std::list<MediaFetchThread*>::iterator thread = m_media_fetch_threads.begin();
|
||||
thread != m_media_fetch_threads.end(); ++thread) {
|
||||
for (std::list<MediaRequest>::iterator request = (*thread)->m_failed.begin();
|
||||
request != (*thread)->m_failed.end(); ++request)
|
||||
fetch_failed.push_back(*request);
|
||||
(*thread)->m_failed.clear();
|
||||
}
|
||||
if (fetch_failed.size() > 0) {
|
||||
infostream << "Failed to remote-fetch " << fetch_failed.size() << " files. "
|
||||
<< "Requesting them the usual way." << std::endl;
|
||||
request_media(fetch_failed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
If the server didn't update the inventory in a while, revert
|
||||
the local inventory (so the player notices the lag problem
|
||||
@@ -876,16 +994,28 @@ bool Client::loadMedia(const std::string &data, const std::string &filename)
|
||||
{
|
||||
verbosestream<<"Client: Storing model into Irrlicht: "
|
||||
<<"\""<<filename<<"\""<<std::endl;
|
||||
scene::ISceneManager *smgr = m_device->getSceneManager();
|
||||
|
||||
//check if mesh was already cached
|
||||
scene::IAnimatedMesh *mesh =
|
||||
smgr->getMeshCache()->getMeshByName(filename.c_str());
|
||||
|
||||
if (mesh != NULL) {
|
||||
errorstream << "Multiple models with name: " << filename.c_str() <<
|
||||
" found replacing previous model!" << std::endl;
|
||||
|
||||
smgr->getMeshCache()->removeMesh(mesh);
|
||||
mesh = 0;
|
||||
}
|
||||
|
||||
io::IFileSystem *irrfs = m_device->getFileSystem();
|
||||
io::IReadFile *rfile = irrfs->createMemoryReadFile(
|
||||
*data_rw, data_rw.getSize(), filename.c_str());
|
||||
assert(rfile);
|
||||
|
||||
scene::ISceneManager *smgr = m_device->getSceneManager();
|
||||
scene::IAnimatedMesh *mesh = smgr->getMesh(rfile);
|
||||
mesh = smgr->getMesh(rfile);
|
||||
smgr->getMeshCache()->addMesh(filename.c_str(), mesh);
|
||||
|
||||
rfile->drop();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -907,6 +1037,34 @@ void Client::deletingPeer(con::Peer *peer, bool timeout)
|
||||
<<"(timeout="<<timeout<<")"<<std::endl;
|
||||
}
|
||||
|
||||
/*
|
||||
u16 command
|
||||
u16 number of files requested
|
||||
for each file {
|
||||
u16 length of name
|
||||
string name
|
||||
}
|
||||
*/
|
||||
void Client::request_media(const std::list<MediaRequest> &file_requests)
|
||||
{
|
||||
std::ostringstream os(std::ios_base::binary);
|
||||
writeU16(os, TOSERVER_REQUEST_MEDIA);
|
||||
writeU16(os, file_requests.size());
|
||||
|
||||
for(std::list<MediaRequest>::const_iterator i = file_requests.begin();
|
||||
i != file_requests.end(); ++i) {
|
||||
os<<serializeString(i->name);
|
||||
}
|
||||
|
||||
// Make data buffer
|
||||
std::string s = os.str();
|
||||
SharedBuffer<u8> data((u8*)s.c_str(), s.size());
|
||||
// Send as reliable
|
||||
Send(0, data, true);
|
||||
infostream<<"Client: Sending media request list to server ("
|
||||
<<file_requests.size()<<" files)"<<std::endl;
|
||||
}
|
||||
|
||||
void Client::ReceiveAll()
|
||||
{
|
||||
DSTACK(__FUNCTION_NAME);
|
||||
@@ -1386,6 +1544,26 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(command == TOCLIENT_MOVEMENT)
|
||||
{
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
Player *player = m_env.getLocalPlayer();
|
||||
assert(player != NULL);
|
||||
|
||||
player->movement_acceleration_default = readF1000(is) * BS;
|
||||
player->movement_acceleration_air = readF1000(is) * BS;
|
||||
player->movement_acceleration_fast = readF1000(is) * BS;
|
||||
player->movement_speed_walk = readF1000(is) * BS;
|
||||
player->movement_speed_crouch = readF1000(is) * BS;
|
||||
player->movement_speed_fast = readF1000(is) * BS;
|
||||
player->movement_speed_climb = readF1000(is) * BS;
|
||||
player->movement_speed_jump = readF1000(is) * BS;
|
||||
player->movement_liquid_fluidity = readF1000(is) * BS;
|
||||
player->movement_liquid_fluidity_smooth = readF1000(is) * BS;
|
||||
player->movement_liquid_sink = readF1000(is) * BS;
|
||||
player->movement_gravity = readF1000(is) * BS;
|
||||
}
|
||||
else if(command == TOCLIENT_HP)
|
||||
{
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
@@ -1474,7 +1652,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
infostream<<"Client: Received media announcement: packet size: "
|
||||
<<datasize<<std::endl;
|
||||
|
||||
core::list<MediaRequest> file_requests;
|
||||
std::list<MediaRequest> file_requests;
|
||||
|
||||
for(int i=0; i<num_files; i++)
|
||||
{
|
||||
@@ -1493,7 +1671,7 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
std::string sha1_hex = hex_encode(sha1_raw);
|
||||
std::ostringstream tmp_os(std::ios_base::binary);
|
||||
bool found_in_cache = m_media_cache.load_sha1(sha1_raw, tmp_os);
|
||||
m_media_name_sha1_map.set(name, sha1_raw);
|
||||
m_media_name_sha1_map[name] = sha1_raw;
|
||||
|
||||
// If found in cache, try to load it from there
|
||||
if(found_in_cache)
|
||||
@@ -1514,37 +1692,52 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
file_requests.push_back(MediaRequest(name));
|
||||
}
|
||||
|
||||
std::string remote_media = "";
|
||||
try {
|
||||
remote_media = deSerializeString(is);
|
||||
}
|
||||
catch(SerializationError) {
|
||||
// not supported by server or turned off
|
||||
}
|
||||
|
||||
m_media_count = file_requests.size();
|
||||
m_media_receive_started = true;
|
||||
|
||||
if (remote_media == "" || !USE_CURL) {
|
||||
request_media(file_requests);
|
||||
} else {
|
||||
#if USE_CURL
|
||||
std::list<MediaFetchThread*>::iterator cur = m_media_fetch_threads.begin();
|
||||
for(std::list<MediaRequest>::iterator i = file_requests.begin();
|
||||
i != file_requests.end(); ++i) {
|
||||
(*cur)->m_file_requests.push_back(*i);
|
||||
cur++;
|
||||
if (cur == m_media_fetch_threads.end())
|
||||
cur = m_media_fetch_threads.begin();
|
||||
}
|
||||
for (std::list<MediaFetchThread*>::iterator i = m_media_fetch_threads.begin();
|
||||
i != m_media_fetch_threads.end(); ++i) {
|
||||
(*i)->m_remote_url = remote_media;
|
||||
(*i)->Start();
|
||||
}
|
||||
#endif
|
||||
|
||||
// notify server we received everything
|
||||
std::ostringstream os(std::ios_base::binary);
|
||||
writeU16(os, TOSERVER_RECEIVED_MEDIA);
|
||||
std::string s = os.str();
|
||||
SharedBuffer<u8> data((u8*)s.c_str(), s.size());
|
||||
// Send as reliable
|
||||
Send(0, data, true);
|
||||
}
|
||||
ClientEvent event;
|
||||
event.type = CE_TEXTURES_UPDATED;
|
||||
m_client_event_queue.push_back(event);
|
||||
|
||||
/*
|
||||
u16 command
|
||||
u16 number of files requested
|
||||
for each file {
|
||||
u16 length of name
|
||||
string name
|
||||
}
|
||||
*/
|
||||
std::ostringstream os(std::ios_base::binary);
|
||||
writeU16(os, TOSERVER_REQUEST_MEDIA);
|
||||
writeU16(os, file_requests.size());
|
||||
|
||||
for(core::list<MediaRequest>::Iterator i = file_requests.begin();
|
||||
i != file_requests.end(); i++) {
|
||||
os<<serializeString(i->name);
|
||||
}
|
||||
|
||||
// Make data buffer
|
||||
std::string s = os.str();
|
||||
SharedBuffer<u8> data((u8*)s.c_str(), s.size());
|
||||
// Send as reliable
|
||||
Send(0, data, true);
|
||||
infostream<<"Client: Sending media request list to server ("
|
||||
<<file_requests.size()<<" files)"<<std::endl;
|
||||
}
|
||||
else if(command == TOCLIENT_MEDIA)
|
||||
{
|
||||
if (m_media_count == 0)
|
||||
return;
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
@@ -1566,17 +1759,12 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
*/
|
||||
int num_bunches = readU16(is);
|
||||
int bunch_i = readU16(is);
|
||||
if(num_bunches >= 2)
|
||||
m_media_receive_progress = (float)bunch_i / (float)(num_bunches - 1);
|
||||
else
|
||||
m_media_receive_progress = 1.0;
|
||||
if(bunch_i == num_bunches - 1)
|
||||
m_media_received = true;
|
||||
int num_files = readU32(is);
|
||||
infostream<<"Client: Received files: bunch "<<bunch_i<<"/"
|
||||
<<num_bunches<<" files="<<num_files
|
||||
<<" size="<<datasize<<std::endl;
|
||||
for(int i=0; i<num_files; i++){
|
||||
m_media_received_count++;
|
||||
std::string name = deSerializeString(is);
|
||||
std::string data = deSerializeLongString(is);
|
||||
|
||||
@@ -1604,9 +1792,9 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
}
|
||||
|
||||
{
|
||||
core::map<std::string, std::string>::Node *n;
|
||||
std::map<std::string, std::string>::iterator n;
|
||||
n = m_media_name_sha1_map.find(name);
|
||||
if(n == NULL)
|
||||
if(n == m_media_name_sha1_map.end())
|
||||
errorstream<<"The server sent a file that has not "
|
||||
<<"been announced."<<std::endl;
|
||||
else
|
||||
@@ -1762,6 +1950,209 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id)
|
||||
}
|
||||
inv->deSerialize(is);
|
||||
}
|
||||
else if(command == TOCLIENT_SHOW_FORMSPEC)
|
||||
{
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
std::string formspec = deSerializeLongString(is);
|
||||
std::string formname = deSerializeString(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_SHOW_FORMSPEC;
|
||||
// pointer is required as event is a struct only!
|
||||
// adding a std:string to a struct isn't possible
|
||||
event.show_formspec.formspec = new std::string(formspec);
|
||||
event.show_formspec.formname = new std::string(formname);
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_SPAWN_PARTICLE)
|
||||
{
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
v3f pos = readV3F1000(is);
|
||||
v3f vel = readV3F1000(is);
|
||||
v3f acc = readV3F1000(is);
|
||||
float expirationtime = readF1000(is);
|
||||
float size = readF1000(is);
|
||||
bool collisiondetection = readU8(is);
|
||||
std::string texture = deSerializeLongString(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_SPAWN_PARTICLE;
|
||||
event.spawn_particle.pos = new v3f (pos);
|
||||
event.spawn_particle.vel = new v3f (vel);
|
||||
event.spawn_particle.acc = new v3f (acc);
|
||||
|
||||
event.spawn_particle.expirationtime = expirationtime;
|
||||
event.spawn_particle.size = size;
|
||||
event.spawn_particle.collisiondetection =
|
||||
collisiondetection;
|
||||
event.spawn_particle.texture = new std::string(texture);
|
||||
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_ADD_PARTICLESPAWNER)
|
||||
{
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
u16 amount = readU16(is);
|
||||
float spawntime = readF1000(is);
|
||||
v3f minpos = readV3F1000(is);
|
||||
v3f maxpos = readV3F1000(is);
|
||||
v3f minvel = readV3F1000(is);
|
||||
v3f maxvel = readV3F1000(is);
|
||||
v3f minacc = readV3F1000(is);
|
||||
v3f maxacc = readV3F1000(is);
|
||||
float minexptime = readF1000(is);
|
||||
float maxexptime = readF1000(is);
|
||||
float minsize = readF1000(is);
|
||||
float maxsize = readF1000(is);
|
||||
bool collisiondetection = readU8(is);
|
||||
std::string texture = deSerializeLongString(is);
|
||||
u32 id = readU32(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_ADD_PARTICLESPAWNER;
|
||||
event.add_particlespawner.amount = amount;
|
||||
event.add_particlespawner.spawntime = spawntime;
|
||||
|
||||
event.add_particlespawner.minpos = new v3f (minpos);
|
||||
event.add_particlespawner.maxpos = new v3f (maxpos);
|
||||
event.add_particlespawner.minvel = new v3f (minvel);
|
||||
event.add_particlespawner.maxvel = new v3f (maxvel);
|
||||
event.add_particlespawner.minacc = new v3f (minacc);
|
||||
event.add_particlespawner.maxacc = new v3f (maxacc);
|
||||
|
||||
event.add_particlespawner.minexptime = minexptime;
|
||||
event.add_particlespawner.maxexptime = maxexptime;
|
||||
event.add_particlespawner.minsize = minsize;
|
||||
event.add_particlespawner.maxsize = maxsize;
|
||||
event.add_particlespawner.collisiondetection = collisiondetection;
|
||||
event.add_particlespawner.texture = new std::string(texture);
|
||||
event.add_particlespawner.id = id;
|
||||
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_DELETE_PARTICLESPAWNER)
|
||||
{
|
||||
std::string datastring((char*)&data[2], datasize-2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
u32 id = readU16(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_DELETE_PARTICLESPAWNER;
|
||||
event.delete_particlespawner.id = id;
|
||||
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_HUDADD)
|
||||
{
|
||||
std::string datastring((char *)&data[2], datasize - 2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
u32 id = readU32(is);
|
||||
u8 type = readU8(is);
|
||||
v2f pos = readV2F1000(is);
|
||||
std::string name = deSerializeString(is);
|
||||
v2f scale = readV2F1000(is);
|
||||
std::string text = deSerializeString(is);
|
||||
u32 number = readU32(is);
|
||||
u32 item = readU32(is);
|
||||
u32 dir = readU32(is);
|
||||
v2f align = readV2F1000(is);
|
||||
v2f offset = readV2F1000(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_HUDADD;
|
||||
event.hudadd.id = id;
|
||||
event.hudadd.type = type;
|
||||
event.hudadd.pos = new v2f(pos);
|
||||
event.hudadd.name = new std::string(name);
|
||||
event.hudadd.scale = new v2f(scale);
|
||||
event.hudadd.text = new std::string(text);
|
||||
event.hudadd.number = number;
|
||||
event.hudadd.item = item;
|
||||
event.hudadd.dir = dir;
|
||||
event.hudadd.align = new v2f(align);
|
||||
event.hudadd.offset = new v2f(offset);
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_HUDRM)
|
||||
{
|
||||
std::string datastring((char *)&data[2], datasize - 2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
u32 id = readU32(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_HUDRM;
|
||||
event.hudrm.id = id;
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_HUDCHANGE)
|
||||
{
|
||||
std::string sdata;
|
||||
v2f v2fdata;
|
||||
u32 intdata = 0;
|
||||
|
||||
std::string datastring((char *)&data[2], datasize - 2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
u32 id = readU32(is);
|
||||
u8 stat = (HudElementStat)readU8(is);
|
||||
|
||||
if (stat == HUD_STAT_POS || stat == HUD_STAT_SCALE ||
|
||||
stat == HUD_STAT_ALIGN || stat == HUD_STAT_OFFSET)
|
||||
v2fdata = readV2F1000(is);
|
||||
else if (stat == HUD_STAT_NAME || stat == HUD_STAT_TEXT)
|
||||
sdata = deSerializeString(is);
|
||||
else
|
||||
intdata = readU32(is);
|
||||
|
||||
ClientEvent event;
|
||||
event.type = CE_HUDCHANGE;
|
||||
event.hudchange.id = id;
|
||||
event.hudchange.stat = (HudElementStat)stat;
|
||||
event.hudchange.v2fdata = new v2f(v2fdata);
|
||||
event.hudchange.sdata = new std::string(sdata);
|
||||
event.hudchange.data = intdata;
|
||||
m_client_event_queue.push_back(event);
|
||||
}
|
||||
else if(command == TOCLIENT_HUD_SET_FLAGS)
|
||||
{
|
||||
std::string datastring((char *)&data[2], datasize - 2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
Player *player = m_env.getLocalPlayer();
|
||||
assert(player != NULL);
|
||||
|
||||
u32 flags = readU32(is);
|
||||
u32 mask = readU32(is);
|
||||
|
||||
player->hud_flags &= ~mask;
|
||||
player->hud_flags |= flags;
|
||||
}
|
||||
else if(command == TOCLIENT_HUD_SET_PARAM)
|
||||
{
|
||||
std::string datastring((char *)&data[2], datasize - 2);
|
||||
std::istringstream is(datastring, std::ios_base::binary);
|
||||
|
||||
Player *player = m_env.getLocalPlayer();
|
||||
assert(player != NULL);
|
||||
|
||||
u16 param = readU16(is);
|
||||
std::string value = deSerializeString(is);
|
||||
|
||||
if(param == HUD_PARAM_HOTBAR_ITEMCOUNT && value.size() == 4){
|
||||
s32 hotbar_itemcount = readS32((u8*) value.c_str());
|
||||
if(hotbar_itemcount > 0 && hotbar_itemcount <= HUD_HOTBAR_ITEMCOUNT_MAX)
|
||||
player->hud_hotbar_itemcount = hotbar_itemcount;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
infostream<<"Client: Ignoring unknown command "
|
||||
@@ -2057,7 +2448,7 @@ void Client::sendPlayerItem(u16 item)
|
||||
|
||||
void Client::removeNode(v3s16 p)
|
||||
{
|
||||
core::map<v3s16, MapBlock*> modified_blocks;
|
||||
std::map<v3s16, MapBlock*> modified_blocks;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -2071,12 +2462,11 @@ void Client::removeNode(v3s16 p)
|
||||
// add urgent task to update the modified node
|
||||
addUpdateMeshTaskForNode(p, false, true);
|
||||
|
||||
for(core::map<v3s16, MapBlock * >::Iterator
|
||||
i = modified_blocks.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
for(std::map<v3s16, MapBlock * >::iterator
|
||||
i = modified_blocks.begin();
|
||||
i != modified_blocks.end(); ++i)
|
||||
{
|
||||
v3s16 p = i.getNode()->getKey();
|
||||
addUpdateMeshTaskWithEdge(p);
|
||||
addUpdateMeshTaskWithEdge(i->first);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2084,7 +2474,7 @@ void Client::addNode(v3s16 p, MapNode n)
|
||||
{
|
||||
TimeTaker timer1("Client::addNode()");
|
||||
|
||||
core::map<v3s16, MapBlock*> modified_blocks;
|
||||
std::map<v3s16, MapBlock*> modified_blocks;
|
||||
|
||||
try
|
||||
{
|
||||
@@ -2094,12 +2484,11 @@ void Client::addNode(v3s16 p, MapNode n)
|
||||
catch(InvalidPositionException &e)
|
||||
{}
|
||||
|
||||
for(core::map<v3s16, MapBlock * >::Iterator
|
||||
i = modified_blocks.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
for(std::map<v3s16, MapBlock * >::iterator
|
||||
i = modified_blocks.begin();
|
||||
i != modified_blocks.end(); ++i)
|
||||
{
|
||||
v3s16 p = i.getNode()->getKey();
|
||||
addUpdateMeshTaskWithEdge(p);
|
||||
addUpdateMeshTaskWithEdge(i->first);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2191,6 +2580,9 @@ void Client::inventoryAction(InventoryAction *a)
|
||||
Predict some local inventory changes
|
||||
*/
|
||||
a->clientApply(this, this);
|
||||
|
||||
// Remove it
|
||||
delete a;
|
||||
}
|
||||
|
||||
ClientActiveObject * Client::getSelectedActiveObject(
|
||||
@@ -2199,7 +2591,7 @@ ClientActiveObject * Client::getSelectedActiveObject(
|
||||
core::line3d<f32> shootline_on_map
|
||||
)
|
||||
{
|
||||
core::array<DistanceSortedActiveObject> objects;
|
||||
std::vector<DistanceSortedActiveObject> objects;
|
||||
|
||||
m_env.getActiveObjects(from_pos_f_on_map, max_d, objects);
|
||||
|
||||
@@ -2207,7 +2599,7 @@ ClientActiveObject * Client::getSelectedActiveObject(
|
||||
|
||||
// Sort them.
|
||||
// After this, the closest object is the first in the array.
|
||||
objects.sort();
|
||||
std::sort(objects.begin(), objects.end());
|
||||
|
||||
for(u32 i=0; i<objects.size(); i++)
|
||||
{
|
||||
@@ -2246,18 +2638,9 @@ void Client::printDebugInfo(std::ostream &os)
|
||||
<<std::endl;*/
|
||||
}
|
||||
|
||||
core::list<std::wstring> Client::getConnectedPlayerNames()
|
||||
std::list<std::string> Client::getConnectedPlayerNames()
|
||||
{
|
||||
core::list<Player*> players = m_env.getPlayers(true);
|
||||
core::list<std::wstring> playerNames;
|
||||
for(core::list<Player*>::Iterator
|
||||
i = players.begin();
|
||||
i != players.end(); i++)
|
||||
{
|
||||
Player *player = *i;
|
||||
playerNames.push_back(narrow_to_wide(player->getName()));
|
||||
}
|
||||
return playerNames;
|
||||
return m_env.getPlayerNames();
|
||||
}
|
||||
|
||||
float Client::getAnimationTime()
|
||||
@@ -2384,21 +2767,14 @@ void Client::addUpdateMeshTaskWithEdge(v3s16 blockpos, bool ack_to_server, bool
|
||||
}
|
||||
catch(InvalidPositionException &e){}
|
||||
// Leading edge
|
||||
try{
|
||||
v3s16 p = blockpos + v3s16(-1,0,0);
|
||||
addUpdateMeshTask(p, false, urgent);
|
||||
for (int i=0;i<6;i++)
|
||||
{
|
||||
try{
|
||||
v3s16 p = blockpos + g_6dirs[i];
|
||||
addUpdateMeshTask(p, false, urgent);
|
||||
}
|
||||
catch(InvalidPositionException &e){}
|
||||
}
|
||||
catch(InvalidPositionException &e){}
|
||||
try{
|
||||
v3s16 p = blockpos + v3s16(0,-1,0);
|
||||
addUpdateMeshTask(p, false, urgent);
|
||||
}
|
||||
catch(InvalidPositionException &e){}
|
||||
try{
|
||||
v3s16 p = blockpos + v3s16(0,0,-1);
|
||||
addUpdateMeshTask(p, false, urgent);
|
||||
}
|
||||
catch(InvalidPositionException &e){}
|
||||
}
|
||||
|
||||
void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool urgent)
|
||||
@@ -2453,12 +2829,15 @@ ClientEvent Client::getClientEvent()
|
||||
return m_client_event_queue.pop_front();
|
||||
}
|
||||
|
||||
void Client::afterContentReceived()
|
||||
void draw_load_screen(const std::wstring &text,
|
||||
IrrlichtDevice* device, gui::IGUIFont* font,
|
||||
float dtime=0 ,int percent=0, bool clouds=true);
|
||||
void Client::afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font)
|
||||
{
|
||||
infostream<<"Client::afterContentReceived() started"<<std::endl;
|
||||
assert(m_itemdef_received);
|
||||
assert(m_nodedef_received);
|
||||
assert(m_media_received);
|
||||
assert(texturesReceived());
|
||||
|
||||
// remove the information about which checksum each texture
|
||||
// ought to have
|
||||
@@ -2488,13 +2867,23 @@ void Client::afterContentReceived()
|
||||
if(g_settings->getBool("preload_item_visuals"))
|
||||
{
|
||||
verbosestream<<"Updating item textures and meshes"<<std::endl;
|
||||
wchar_t* text = wgettext("Item textures...");
|
||||
draw_load_screen(text,device,font,0,0);
|
||||
std::set<std::string> names = m_itemdef->getAll();
|
||||
size_t size = names.size();
|
||||
size_t count = 0;
|
||||
int percent = 0;
|
||||
for(std::set<std::string>::const_iterator
|
||||
i = names.begin(); i != names.end(); ++i){
|
||||
// Asking for these caches the result
|
||||
m_itemdef->getInventoryTexture(*i, this);
|
||||
m_itemdef->getWieldMesh(*i, this);
|
||||
count++;
|
||||
percent = count*100/size;
|
||||
if (count%50 == 0) // only update every 50 item
|
||||
draw_load_screen(text,device,font,0,percent);
|
||||
}
|
||||
delete[] text;
|
||||
}
|
||||
|
||||
// Start mesh update thread after setting up content definitions
|
||||
|
||||
115
src/client.h
115
src/client.h
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -33,7 +33,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "filesys.h"
|
||||
#include "filecache.h"
|
||||
#include "localplayer.h"
|
||||
#include "server.h"
|
||||
#include "particles.h"
|
||||
#include "util/pointedthing.h"
|
||||
#include <algorithm>
|
||||
|
||||
struct MeshMakeData;
|
||||
class MapBlockMesh;
|
||||
@@ -129,13 +132,38 @@ class MeshUpdateThread : public SimpleThread
|
||||
IGameDef *m_gamedef;
|
||||
};
|
||||
|
||||
class MediaFetchThread : public SimpleThread
|
||||
{
|
||||
public:
|
||||
|
||||
MediaFetchThread(IGameDef *gamedef):
|
||||
m_gamedef(gamedef)
|
||||
{
|
||||
}
|
||||
|
||||
void * Thread();
|
||||
|
||||
std::list<MediaRequest> m_file_requests;
|
||||
MutexedQueue<std::pair<std::string, std::string> > m_file_data;
|
||||
std::list<MediaRequest> m_failed;
|
||||
std::string m_remote_url;
|
||||
IGameDef *m_gamedef;
|
||||
};
|
||||
|
||||
enum ClientEventType
|
||||
{
|
||||
CE_NONE,
|
||||
CE_PLAYER_DAMAGE,
|
||||
CE_PLAYER_FORCE_MOVE,
|
||||
CE_DEATHSCREEN,
|
||||
CE_TEXTURES_UPDATED
|
||||
CE_TEXTURES_UPDATED,
|
||||
CE_SHOW_FORMSPEC,
|
||||
CE_SPAWN_PARTICLE,
|
||||
CE_ADD_PARTICLESPAWNER,
|
||||
CE_DELETE_PARTICLESPAWNER,
|
||||
CE_HUDADD,
|
||||
CE_HUDRM,
|
||||
CE_HUDCHANGE
|
||||
};
|
||||
|
||||
struct ClientEvent
|
||||
@@ -157,8 +185,64 @@ struct ClientEvent
|
||||
f32 camera_point_target_y;
|
||||
f32 camera_point_target_z;
|
||||
} deathscreen;
|
||||
struct{
|
||||
std::string *formspec;
|
||||
std::string *formname;
|
||||
} show_formspec;
|
||||
struct{
|
||||
} textures_updated;
|
||||
struct{
|
||||
v3f *pos;
|
||||
v3f *vel;
|
||||
v3f *acc;
|
||||
f32 expirationtime;
|
||||
f32 size;
|
||||
bool collisiondetection;
|
||||
std::string *texture;
|
||||
} spawn_particle;
|
||||
struct{
|
||||
u16 amount;
|
||||
f32 spawntime;
|
||||
v3f *minpos;
|
||||
v3f *maxpos;
|
||||
v3f *minvel;
|
||||
v3f *maxvel;
|
||||
v3f *minacc;
|
||||
v3f *maxacc;
|
||||
f32 minexptime;
|
||||
f32 maxexptime;
|
||||
f32 minsize;
|
||||
f32 maxsize;
|
||||
bool collisiondetection;
|
||||
std::string *texture;
|
||||
u32 id;
|
||||
} add_particlespawner;
|
||||
struct{
|
||||
u32 id;
|
||||
} delete_particlespawner;
|
||||
struct{
|
||||
u32 id;
|
||||
u8 type;
|
||||
v2f *pos;
|
||||
std::string *name;
|
||||
v2f *scale;
|
||||
std::string *text;
|
||||
u32 number;
|
||||
u32 item;
|
||||
u32 dir;
|
||||
v2f *align;
|
||||
v2f *offset;
|
||||
} hudadd;
|
||||
struct{
|
||||
u32 id;
|
||||
} hudrm;
|
||||
struct{
|
||||
u32 id;
|
||||
HudElementStat stat;
|
||||
v2f *v2fdata;
|
||||
std::string *sdata;
|
||||
u32 data;
|
||||
} hudchange;
|
||||
};
|
||||
};
|
||||
|
||||
@@ -257,7 +341,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
// Prints a line or two of info
|
||||
void printDebugInfo(std::ostream &os);
|
||||
|
||||
core::list<std::wstring> getConnectedPlayerNames();
|
||||
std::list<std::string> getConnectedPlayerNames();
|
||||
|
||||
float getAnimationTime();
|
||||
|
||||
@@ -289,16 +373,19 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
{ return m_access_denied_reason; }
|
||||
|
||||
float mediaReceiveProgress()
|
||||
{ return m_media_receive_progress; }
|
||||
{
|
||||
if (!m_media_receive_started) return 0;
|
||||
return 1.0 * m_media_received_count / m_media_count;
|
||||
}
|
||||
|
||||
bool texturesReceived()
|
||||
{ return m_media_received; }
|
||||
{ return m_media_receive_started && m_media_received_count == m_media_count; }
|
||||
bool itemdefReceived()
|
||||
{ return m_itemdef_received; }
|
||||
bool nodedefReceived()
|
||||
{ return m_nodedef_received; }
|
||||
|
||||
void afterContentReceived();
|
||||
void afterContentReceived(IrrlichtDevice *device, gui::IGUIFont* font);
|
||||
|
||||
float getRTT(void);
|
||||
|
||||
@@ -318,7 +405,9 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
|
||||
// Insert a media file appropriately into the appropriate manager
|
||||
bool loadMedia(const std::string &data, const std::string &filename);
|
||||
|
||||
|
||||
void request_media(const std::list<MediaRequest> &file_requests);
|
||||
|
||||
// Virtual methods from con::PeerHandler
|
||||
void peerAdded(con::Peer *peer);
|
||||
void deletingPeer(con::Peer *peer, bool timeout);
|
||||
@@ -347,6 +436,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
MtEventManager *m_event;
|
||||
|
||||
MeshUpdateThread m_mesh_update_thread;
|
||||
std::list<MediaFetchThread*> m_media_fetch_threads;
|
||||
ClientEnvironment m_env;
|
||||
con::Connection m_con;
|
||||
IrrlichtDevice *m_device;
|
||||
@@ -356,7 +446,7 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
bool m_inventory_updated;
|
||||
Inventory *m_inventory_from_server;
|
||||
float m_inventory_from_server_age;
|
||||
core::map<v3s16, bool> m_active_blocks;
|
||||
std::set<v3s16> m_active_blocks;
|
||||
PacketCounter m_packetcounter;
|
||||
// Block mesh animation parameters
|
||||
float m_animation_time;
|
||||
@@ -374,9 +464,10 @@ class Client : public con::PeerHandler, public InventoryManager, public IGameDef
|
||||
Queue<ClientEvent> m_client_event_queue;
|
||||
FileCache m_media_cache;
|
||||
// Mapping from media file name to SHA1 checksum
|
||||
core::map<std::string, std::string> m_media_name_sha1_map;
|
||||
float m_media_receive_progress;
|
||||
bool m_media_received;
|
||||
std::map<std::string, std::string> m_media_name_sha1_map;
|
||||
bool m_media_receive_started;
|
||||
u32 m_media_count;
|
||||
u32 m_media_received_count;
|
||||
bool m_itemdef_received;
|
||||
bool m_nodedef_received;
|
||||
friend class FarMesh;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "profiler.h"
|
||||
#include "settings.h"
|
||||
#include "util/mathconstants.h"
|
||||
#include <algorithm>
|
||||
|
||||
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
|
||||
|
||||
@@ -83,7 +84,7 @@ MapSector * ClientMap::emergeSector(v2s16 p2d)
|
||||
|
||||
{
|
||||
//JMutexAutoLock lock(m_sector_mutex); // Bulk comment-out
|
||||
m_sectors.insert(p2d, sector);
|
||||
m_sectors[p2d] = sector;
|
||||
}
|
||||
|
||||
return sector;
|
||||
@@ -164,11 +165,11 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
|
||||
|
||||
INodeDefManager *nodemgr = m_gamedef->ndef();
|
||||
|
||||
for(core::map<v3s16, MapBlock*>::Iterator
|
||||
i = m_drawlist.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
for(std::map<v3s16, MapBlock*>::iterator
|
||||
i = m_drawlist.begin();
|
||||
i != m_drawlist.end(); ++i)
|
||||
{
|
||||
MapBlock *block = i.getNode()->getValue();
|
||||
MapBlock *block = i->second;
|
||||
block->refDrop();
|
||||
}
|
||||
m_drawlist.clear();
|
||||
@@ -215,11 +216,11 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
|
||||
// Blocks from which stuff was actually drawn
|
||||
//u32 blocks_without_stuff = 0;
|
||||
|
||||
for(core::map<v2s16, MapSector*>::Iterator
|
||||
si = m_sectors.getIterator();
|
||||
si.atEnd() == false; si++)
|
||||
for(std::map<v2s16, MapSector*>::iterator
|
||||
si = m_sectors.begin();
|
||||
si != m_sectors.end(); ++si)
|
||||
{
|
||||
MapSector *sector = si.getNode()->getValue();
|
||||
MapSector *sector = si->second;
|
||||
v2s16 sp = sector->getPos();
|
||||
|
||||
if(m_control.range_all == false)
|
||||
@@ -231,7 +232,7 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
|
||||
continue;
|
||||
}
|
||||
|
||||
core::list< MapBlock * > sectorblocks;
|
||||
std::list< MapBlock * > sectorblocks;
|
||||
sector->getBlocks(sectorblocks);
|
||||
|
||||
/*
|
||||
@@ -240,7 +241,7 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
|
||||
|
||||
u32 sector_blocks_drawn = 0;
|
||||
|
||||
core::list< MapBlock * >::Iterator i;
|
||||
std::list< MapBlock * >::iterator i;
|
||||
for(i=sectorblocks.begin(); i!=sectorblocks.end(); i++)
|
||||
{
|
||||
MapBlock *block = *i;
|
||||
@@ -350,7 +351,7 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
|
||||
} // foreach sectorblocks
|
||||
|
||||
if(sector_blocks_drawn != 0)
|
||||
m_last_drawn_sectors[sp] = true;
|
||||
m_last_drawn_sectors.insert(sp);
|
||||
}
|
||||
|
||||
m_control.blocks_would_have_drawn = blocks_would_have_drawn;
|
||||
@@ -368,12 +369,12 @@ void ClientMap::updateDrawList(video::IVideoDriver* driver)
|
||||
struct MeshBufList
|
||||
{
|
||||
video::SMaterial m;
|
||||
core::list<scene::IMeshBuffer*> bufs;
|
||||
std::list<scene::IMeshBuffer*> bufs;
|
||||
};
|
||||
|
||||
struct MeshBufListList
|
||||
{
|
||||
core::list<MeshBufList> lists;
|
||||
std::list<MeshBufList> lists;
|
||||
|
||||
void clear()
|
||||
{
|
||||
@@ -382,8 +383,8 @@ struct MeshBufListList
|
||||
|
||||
void add(scene::IMeshBuffer *buf)
|
||||
{
|
||||
for(core::list<MeshBufList>::Iterator i = lists.begin();
|
||||
i != lists.end(); i++){
|
||||
for(std::list<MeshBufList>::iterator i = lists.begin();
|
||||
i != lists.end(); ++i){
|
||||
MeshBufList &l = *i;
|
||||
if(l.m == buf->getMaterial()){
|
||||
l.bufs.push_back(buf);
|
||||
@@ -487,11 +488,11 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
|
||||
|
||||
MeshBufListList drawbufs;
|
||||
|
||||
for(core::map<v3s16, MapBlock*>::Iterator
|
||||
i = m_drawlist.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
for(std::map<v3s16, MapBlock*>::iterator
|
||||
i = m_drawlist.begin();
|
||||
i != m_drawlist.end(); ++i)
|
||||
{
|
||||
MapBlock *block = i.getNode()->getValue();
|
||||
MapBlock *block = i->second;
|
||||
|
||||
// If the mesh of the block happened to get deleted, ignore it
|
||||
if(block->mesh == NULL)
|
||||
@@ -569,11 +570,11 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
|
||||
}
|
||||
}
|
||||
|
||||
core::list<MeshBufList> &lists = drawbufs.lists;
|
||||
std::list<MeshBufList> &lists = drawbufs.lists;
|
||||
|
||||
int timecheck_counter = 0;
|
||||
for(core::list<MeshBufList>::Iterator i = lists.begin();
|
||||
i != lists.end(); i++)
|
||||
for(std::list<MeshBufList>::iterator i = lists.begin();
|
||||
i != lists.end(); ++i)
|
||||
{
|
||||
{
|
||||
timecheck_counter++;
|
||||
@@ -595,8 +596,8 @@ void ClientMap::renderMap(video::IVideoDriver* driver, s32 pass)
|
||||
|
||||
driver->setMaterial(list.m);
|
||||
|
||||
for(core::list<scene::IMeshBuffer*>::Iterator j = list.bufs.begin();
|
||||
j != list.bufs.end(); j++)
|
||||
for(std::list<scene::IMeshBuffer*>::iterator j = list.bufs.begin();
|
||||
j != list.bufs.end(); ++j)
|
||||
{
|
||||
scene::IMeshBuffer *buf = *j;
|
||||
driver->drawMeshBuffer(buf);
|
||||
@@ -769,7 +770,7 @@ int ClientMap::getBackgroundBrightness(float max_d, u32 daylight_factor,
|
||||
float sunlight_min_d = max_d*0.8;
|
||||
if(sunlight_min_d > 35*BS)
|
||||
sunlight_min_d = 35*BS;
|
||||
core::array<int> values;
|
||||
std::vector<int> values;
|
||||
for(u32 i=0; i<sizeof(z_directions)/sizeof(*z_directions); i++){
|
||||
v3f z_dir = z_directions[i];
|
||||
z_dir.normalize();
|
||||
@@ -798,7 +799,7 @@ int ClientMap::getBackgroundBrightness(float max_d, u32 daylight_factor,
|
||||
}
|
||||
int brightness_sum = 0;
|
||||
int brightness_count = 0;
|
||||
values.sort();
|
||||
std::sort(values.begin(), values.end());
|
||||
u32 num_values_to_use = values.size();
|
||||
if(num_values_to_use >= 10)
|
||||
num_values_to_use -= num_values_to_use/2;
|
||||
@@ -864,7 +865,7 @@ void ClientMap::renderPostFx()
|
||||
// - If the player is in liquid, draw a semi-transparent overlay.
|
||||
const ContentFeatures& features = nodemgr->get(n);
|
||||
video::SColor post_effect_color = features.post_effect_color;
|
||||
if(features.solidness == 2 && g_settings->getBool("free_move") == false)
|
||||
if(features.solidness == 2 && !(g_settings->getBool("noclip") && m_gamedef->checkLocalPrivilege("noclip")))
|
||||
{
|
||||
post_effect_color = video::SColor(255, 0, 0, 0);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -22,6 +22,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
#include "irrlichttypes_extrabloated.h"
|
||||
#include "map.h"
|
||||
#include <set>
|
||||
#include <map>
|
||||
|
||||
struct MapDrawControl
|
||||
{
|
||||
@@ -128,7 +130,7 @@ class ClientMap : public Map, public scene::ISceneNode
|
||||
// Check if sector was drawn on last render()
|
||||
bool sectorWasDrawn(v2s16 p)
|
||||
{
|
||||
return (m_last_drawn_sectors.find(p) != NULL);
|
||||
return (m_last_drawn_sectors.find(p) != m_last_drawn_sectors.end());
|
||||
}
|
||||
|
||||
private:
|
||||
@@ -143,9 +145,9 @@ class ClientMap : public Map, public scene::ISceneNode
|
||||
f32 m_camera_fov;
|
||||
JMutex m_camera_mutex;
|
||||
|
||||
core::map<v3s16, MapBlock*> m_drawlist;
|
||||
std::map<v3s16, MapBlock*> m_drawlist;
|
||||
|
||||
core::map<v2s16, bool> m_last_drawn_sectors;
|
||||
std::set<v2s16> m_last_drawn_sectors;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -43,9 +43,9 @@ ClientActiveObject* ClientActiveObject::create(u8 type, IGameDef *gamedef,
|
||||
ClientEnvironment *env)
|
||||
{
|
||||
// Find factory function
|
||||
core::map<u16, Factory>::Node *n;
|
||||
std::map<u16, Factory>::iterator n;
|
||||
n = m_types.find(type);
|
||||
if(n == NULL)
|
||||
if(n == m_types.end())
|
||||
{
|
||||
// If factory is not found, just return.
|
||||
dstream<<"WARNING: ClientActiveObject: No factory for type="
|
||||
@@ -53,18 +53,18 @@ ClientActiveObject* ClientActiveObject::create(u8 type, IGameDef *gamedef,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Factory f = n->getValue();
|
||||
Factory f = n->second;
|
||||
ClientActiveObject *object = (*f)(gamedef, env);
|
||||
return object;
|
||||
}
|
||||
|
||||
void ClientActiveObject::registerType(u16 type, Factory f)
|
||||
{
|
||||
core::map<u16, Factory>::Node *n;
|
||||
std::map<u16, Factory>::iterator n;
|
||||
n = m_types.find(type);
|
||||
if(n)
|
||||
if(n != m_types.end())
|
||||
return;
|
||||
m_types.insert(type, f);
|
||||
m_types[type] = f;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -22,6 +22,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
#include "irrlichttypes_extrabloated.h"
|
||||
#include "activeobject.h"
|
||||
#include <map>
|
||||
|
||||
/*
|
||||
|
||||
@@ -96,7 +97,7 @@ class ClientActiveObject : public ActiveObject
|
||||
ClientEnvironment *m_env;
|
||||
private:
|
||||
// Used for creating objects based on type
|
||||
static core::map<u16, Factory> m_types;
|
||||
static std::map<u16, Factory> m_types;
|
||||
};
|
||||
|
||||
struct DistanceSortedActiveObject
|
||||
@@ -110,7 +111,7 @@ struct DistanceSortedActiveObject
|
||||
d = a_d;
|
||||
}
|
||||
|
||||
bool operator < (DistanceSortedActiveObject &other)
|
||||
bool operator < (const DistanceSortedActiveObject &other) const
|
||||
{
|
||||
return d < other.d;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -77,9 +77,27 @@ SharedBuffer<u8> makePacket_TOCLIENT_TIME_OF_DAY(u16 time, float time_speed);
|
||||
GENERIC_CMD_SET_ATTACHMENT
|
||||
PROTOCOL_VERSION 15:
|
||||
Serialization format changes
|
||||
PROTOCOL_VERSION 16:
|
||||
TOCLIENT_SHOW_FORMSPEC
|
||||
PROTOCOL_VERSION 17:
|
||||
Serialization format change: include backface_culling flag in TileDef
|
||||
Added rightclickable field in nodedef
|
||||
TOCLIENT_SPAWN_PARTICLE
|
||||
TOCLIENT_ADD_PARTICLESPAWNER
|
||||
TOCLIENT_DELETE_PARTICLESPAWNER
|
||||
PROTOCOL_VERSION 18:
|
||||
damageGroups added to ToolCapabilities
|
||||
sound_place added to ItemDefinition
|
||||
PROTOCOL_VERSION 19:
|
||||
GENERIC_CMD_SET_PHYSICS_OVERRIDE
|
||||
PROTOCOL_VERSION 20:
|
||||
TOCLIENT_HUDADD
|
||||
TOCLIENT_HUDRM
|
||||
TOCLIENT_HUDCHANGE
|
||||
TOCLIENT_HUD_SET_FLAGS
|
||||
*/
|
||||
|
||||
#define LATEST_PROTOCOL_VERSION 15
|
||||
#define LATEST_PROTOCOL_VERSION 20
|
||||
|
||||
// Server's supported network protocol range
|
||||
#define SERVER_PROTOCOL_VERSION_MIN 13
|
||||
@@ -267,6 +285,8 @@ enum ToClientCommand
|
||||
u32 length of data
|
||||
data
|
||||
}
|
||||
u16 length of remote media server url (if applicable)
|
||||
string url
|
||||
*/
|
||||
|
||||
TOCLIENT_TOOLDEF = 0x39,
|
||||
@@ -352,6 +372,122 @@ enum ToClientCommand
|
||||
u8[len] name
|
||||
[2] serialized inventory
|
||||
*/
|
||||
|
||||
TOCLIENT_SHOW_FORMSPEC = 0x44,
|
||||
/*
|
||||
[0] u16 command
|
||||
u32 len
|
||||
u8[len] formspec
|
||||
u16 len
|
||||
u8[len] formname
|
||||
*/
|
||||
|
||||
TOCLIENT_MOVEMENT = 0x45,
|
||||
/*
|
||||
u16 command
|
||||
f1000 movement_acceleration_default
|
||||
f1000 movement_acceleration_air
|
||||
f1000 movement_acceleration_fast
|
||||
f1000 movement_speed_walk
|
||||
f1000 movement_speed_crouch
|
||||
f1000 movement_speed_fast
|
||||
f1000 movement_speed_climb
|
||||
f1000 movement_speed_jump
|
||||
f1000 movement_liquid_fluidity
|
||||
f1000 movement_liquid_fluidity_smooth
|
||||
f1000 movement_liquid_sink
|
||||
f1000 movement_gravity
|
||||
*/
|
||||
|
||||
TOCLIENT_SPAWN_PARTICLE = 0x46,
|
||||
/*
|
||||
u16 command
|
||||
v3f1000 pos
|
||||
v3f1000 velocity
|
||||
v3f1000 acceleration
|
||||
f1000 expirationtime
|
||||
f1000 size
|
||||
u8 bool collisiondetection
|
||||
u32 len
|
||||
u8[len] texture
|
||||
*/
|
||||
|
||||
TOCLIENT_ADD_PARTICLESPAWNER = 0x47,
|
||||
/*
|
||||
u16 command
|
||||
u16 amount
|
||||
f1000 spawntime
|
||||
v3f1000 minpos
|
||||
v3f1000 maxpos
|
||||
v3f1000 minvel
|
||||
v3f1000 maxvel
|
||||
v3f1000 minacc
|
||||
v3f1000 maxacc
|
||||
f1000 minexptime
|
||||
f1000 maxexptime
|
||||
f1000 minsize
|
||||
f1000 maxsize
|
||||
u8 bool collisiondetection
|
||||
u32 len
|
||||
u8[len] texture
|
||||
u32 id
|
||||
*/
|
||||
|
||||
TOCLIENT_DELETE_PARTICLESPAWNER = 0x48,
|
||||
/*
|
||||
u16 command
|
||||
u32 id
|
||||
*/
|
||||
|
||||
TOCLIENT_HUDADD = 0x49,
|
||||
/*
|
||||
u16 command
|
||||
u32 id
|
||||
u8 type
|
||||
v2f1000 pos
|
||||
u32 len
|
||||
u8[len] name
|
||||
v2f1000 scale
|
||||
u32 len2
|
||||
u8[len2] text
|
||||
u32 number
|
||||
u32 item
|
||||
u32 dir
|
||||
v2f1000 align
|
||||
v2f1000 offset
|
||||
*/
|
||||
|
||||
TOCLIENT_HUDRM = 0x4a,
|
||||
/*
|
||||
u16 command
|
||||
u32 id
|
||||
*/
|
||||
|
||||
TOCLIENT_HUDCHANGE = 0x4b,
|
||||
/*
|
||||
u16 command
|
||||
u32 id
|
||||
u8 stat
|
||||
[v2f1000 data |
|
||||
u32 len
|
||||
u8[len] data |
|
||||
u32 data]
|
||||
*/
|
||||
|
||||
TOCLIENT_HUD_SET_FLAGS = 0x4c,
|
||||
/*
|
||||
u16 command
|
||||
u32 flags
|
||||
u32 mask
|
||||
*/
|
||||
|
||||
TOCLIENT_HUD_SET_PARAM = 0x4d,
|
||||
/*
|
||||
u16 command
|
||||
u16 param
|
||||
u16 len
|
||||
u8[len] value
|
||||
*/
|
||||
};
|
||||
|
||||
enum ToServerCommand
|
||||
@@ -571,6 +707,10 @@ enum ToServerCommand
|
||||
}
|
||||
*/
|
||||
|
||||
TOSERVER_RECEIVED_MEDIA = 0x41,
|
||||
/*
|
||||
u16 command
|
||||
*/
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2012 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -29,7 +29,8 @@ Clouds::Clouds(
|
||||
scene::ISceneNode* parent,
|
||||
scene::ISceneManager* mgr,
|
||||
s32 id,
|
||||
u32 seed
|
||||
u32 seed,
|
||||
s16 cloudheight
|
||||
):
|
||||
scene::ISceneNode(parent, mgr, id),
|
||||
m_seed(seed),
|
||||
@@ -45,8 +46,8 @@ Clouds::Clouds(
|
||||
//m_material.MaterialType = video::EMT_TRANSPARENT_VERTEX_ALPHA;
|
||||
m_material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL;
|
||||
|
||||
m_cloud_y = BS*100;
|
||||
//m_cloud_y = BS*50;
|
||||
m_cloud_y = BS * (cloudheight ? cloudheight :
|
||||
g_settings->getS16("cloud_height"));
|
||||
|
||||
m_box = core::aabbox3d<f32>(-BS*1000000,m_cloud_y-BS,-BS*1000000,
|
||||
BS*1000000,m_cloud_y+BS,BS*1000000);
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
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
|
||||
@@ -30,7 +30,8 @@ class Clouds : public scene::ISceneNode
|
||||
scene::ISceneNode* parent,
|
||||
scene::ISceneManager* mgr,
|
||||
s32 id,
|
||||
u32 seed
|
||||
u32 seed,
|
||||
s16 cloudheight=0
|
||||
);
|
||||
|
||||
~Clouds();
|
||||
|
||||
@@ -7,7 +7,9 @@
|
||||
#define CMAKE_VERSION_STRING "@VERSION_STRING@"
|
||||
#define CMAKE_RUN_IN_PLACE @RUN_IN_PLACE@
|
||||
#define CMAKE_USE_GETTEXT @USE_GETTEXT@
|
||||
#define CMAKE_USE_CURL @USE_CURL@
|
||||
#define CMAKE_USE_SOUND @USE_SOUND@
|
||||
#define CMAKE_USE_FREETYPE @USE_FREETYPE@
|
||||
#define CMAKE_STATIC_SHAREDIR "@SHAREDIR@"
|
||||
|
||||
#ifdef NDEBUG
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -23,7 +23,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "nodedef.h"
|
||||
#include "gamedef.h"
|
||||
#include "log.h"
|
||||
#include "environment.h"
|
||||
#include "serverobject.h"
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include "util/timetaker.h"
|
||||
#include "main.h" // g_profiler
|
||||
#include "profiler.h"
|
||||
@@ -186,11 +189,12 @@ bool wouldCollideWithCeiling(
|
||||
}
|
||||
|
||||
|
||||
collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
|
||||
collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
|
||||
f32 pos_max_d, const aabb3f &box_0,
|
||||
f32 stepheight, f32 dtime,
|
||||
v3f &pos_f, v3f &speed_f, v3f &accel_f)
|
||||
v3f &pos_f, v3f &speed_f, v3f &accel_f,ActiveObject* self)
|
||||
{
|
||||
Map *map = &env->getMap();
|
||||
//TimeTaker tt("collisionMoveSimple");
|
||||
ScopeProfiler sp(g_profiler, "collisionMoveSimple avg", SPT_AVG);
|
||||
|
||||
@@ -199,18 +203,28 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
|
||||
/*
|
||||
Calculate new velocity
|
||||
*/
|
||||
if( dtime > 0.5 ) {
|
||||
infostream<<"collisionMoveSimple: WARNING: maximum step interval exceeded, lost movement details!"<<std::endl;
|
||||
dtime = 0.5;
|
||||
}
|
||||
speed_f += accel_f * dtime;
|
||||
|
||||
// If there is no speed, there are no collisions
|
||||
// If there is no speed, there are no collisions
|
||||
if(speed_f.getLength() == 0)
|
||||
return result;
|
||||
|
||||
// Limit speed for avoiding hangs
|
||||
speed_f.Y=rangelim(speed_f.Y,-5000,5000);
|
||||
speed_f.X=rangelim(speed_f.X,-5000,5000);
|
||||
speed_f.Z=rangelim(speed_f.Z,-5000,5000);
|
||||
|
||||
/*
|
||||
Collect node boxes in movement range
|
||||
*/
|
||||
std::vector<aabb3f> cboxes;
|
||||
std::vector<bool> is_unloaded;
|
||||
std::vector<bool> is_step_up;
|
||||
std::vector<bool> is_object;
|
||||
std::vector<int> bouncy_values;
|
||||
std::vector<v3s16> node_positions;
|
||||
{
|
||||
@@ -252,6 +266,7 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
|
||||
is_step_up.push_back(false);
|
||||
bouncy_values.push_back(n_bouncy_value);
|
||||
node_positions.push_back(p);
|
||||
is_object.push_back(false);
|
||||
}
|
||||
}
|
||||
catch(InvalidPositionException &e)
|
||||
@@ -263,14 +278,76 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
|
||||
is_step_up.push_back(false);
|
||||
bouncy_values.push_back(0);
|
||||
node_positions.push_back(p);
|
||||
is_object.push_back(false);
|
||||
}
|
||||
}
|
||||
} // tt2
|
||||
|
||||
{
|
||||
ScopeProfiler sp(g_profiler, "collisionMoveSimple objects avg", SPT_AVG);
|
||||
//TimeTaker tt3("collisionMoveSimple collect object boxes");
|
||||
|
||||
/* add object boxes to cboxes */
|
||||
|
||||
|
||||
std::list<ActiveObject*> objects;
|
||||
#ifndef SERVER
|
||||
ClientEnvironment *c_env = dynamic_cast<ClientEnvironment*>(env);
|
||||
if (c_env != 0)
|
||||
{
|
||||
f32 distance = speed_f.getLength();
|
||||
std::vector<DistanceSortedActiveObject> clientobjects;
|
||||
c_env->getActiveObjects(pos_f,distance * 1.5,clientobjects);
|
||||
for (size_t i=0; i < clientobjects.size(); i++)
|
||||
{
|
||||
if ((self == 0) || (self != clientobjects[i].obj)) {
|
||||
objects.push_back((ActiveObject*)clientobjects[i].obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
ServerEnvironment *s_env = dynamic_cast<ServerEnvironment*>(env);
|
||||
if (s_env != 0)
|
||||
{
|
||||
f32 distance = speed_f.getLength();
|
||||
std::set<u16> s_objects = s_env->getObjectsInsideRadius(pos_f,distance * 1.5);
|
||||
for (std::set<u16>::iterator iter = s_objects.begin(); iter != s_objects.end(); iter++)
|
||||
{
|
||||
ServerActiveObject *current = s_env->getActiveObject(*iter);
|
||||
if ((self == 0) || (self != current)) {
|
||||
objects.push_back((ActiveObject*)current);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (std::list<ActiveObject*>::const_iterator iter = objects.begin();iter != objects.end(); ++iter)
|
||||
{
|
||||
ActiveObject *object = *iter;
|
||||
|
||||
if (object != NULL)
|
||||
{
|
||||
aabb3f object_collisionbox;
|
||||
if (object->getCollisionBox(&object_collisionbox))
|
||||
{
|
||||
cboxes.push_back(object_collisionbox);
|
||||
is_unloaded.push_back(false);
|
||||
is_step_up.push_back(false);
|
||||
bouncy_values.push_back(0);
|
||||
node_positions.push_back(v3s16(0,0,0));
|
||||
is_object.push_back(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
} //tt3
|
||||
|
||||
assert(cboxes.size() == is_unloaded.size());
|
||||
assert(cboxes.size() == is_step_up.size());
|
||||
assert(cboxes.size() == bouncy_values.size());
|
||||
assert(cboxes.size() == node_positions.size());
|
||||
assert(cboxes.size() == is_object.size());
|
||||
|
||||
/*
|
||||
Collision detection
|
||||
@@ -382,7 +459,12 @@ collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
|
||||
is_collision = false;
|
||||
|
||||
CollisionInfo info;
|
||||
info.type = COLLISION_NODE;
|
||||
if (is_object[nearest_boxindex]) {
|
||||
info.type = COLLISION_OBJECT;
|
||||
}
|
||||
else {
|
||||
info.type = COLLISION_NODE;
|
||||
}
|
||||
info.node_p = node_positions[nearest_boxindex];
|
||||
info.bouncy = bouncy;
|
||||
info.old_speed = speed_f;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -25,10 +25,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
|
||||
class Map;
|
||||
class IGameDef;
|
||||
class Environment;
|
||||
class ActiveObject;
|
||||
|
||||
enum CollisionType
|
||||
{
|
||||
COLLISION_NODE
|
||||
COLLISION_NODE,
|
||||
COLLISION_OBJECT,
|
||||
};
|
||||
|
||||
struct CollisionInfo
|
||||
@@ -65,10 +68,10 @@ struct collisionMoveResult
|
||||
};
|
||||
|
||||
// Moves using a single iteration; speed should not exceed pos_max_d/dtime
|
||||
collisionMoveResult collisionMoveSimple(Map *map, IGameDef *gamedef,
|
||||
collisionMoveResult collisionMoveSimple(Environment *env,IGameDef *gamedef,
|
||||
f32 pos_max_d, const aabb3f &box_0,
|
||||
f32 stepheight, f32 dtime,
|
||||
v3f &pos_f, v3f &speed_f, v3f &accel_f);
|
||||
v3f &pos_f, v3f &speed_f, v3f &accel_f,ActiveObject* self=0);
|
||||
|
||||
#if 0
|
||||
// This doesn't seem to work and isn't used
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
#define RUN_IN_PLACE 0
|
||||
#define USE_GETTEXT 0
|
||||
#define USE_SOUND 0
|
||||
#define USE_CURL 0
|
||||
#define USE_FREETYPE 0
|
||||
#define STATIC_SHAREDIR ""
|
||||
#define BUILD_INFO "non-cmake"
|
||||
|
||||
@@ -26,6 +28,10 @@
|
||||
#define USE_GETTEXT CMAKE_USE_GETTEXT
|
||||
#undef USE_SOUND
|
||||
#define USE_SOUND CMAKE_USE_SOUND
|
||||
#undef USE_CURL
|
||||
#define USE_CURL CMAKE_USE_CURL
|
||||
#undef USE_FREETYPE
|
||||
#define USE_FREETYPE CMAKE_USE_FREETYPE
|
||||
#undef STATIC_SHAREDIR
|
||||
#define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR
|
||||
#undef BUILD_INFO
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -76,19 +76,20 @@ SharedBuffer<u8> makeOriginalPacket(
|
||||
return b;
|
||||
}
|
||||
|
||||
core::list<SharedBuffer<u8> > makeSplitPacket(
|
||||
std::list<SharedBuffer<u8> > makeSplitPacket(
|
||||
SharedBuffer<u8> data,
|
||||
u32 chunksize_max,
|
||||
u16 seqnum)
|
||||
{
|
||||
// Chunk packets, containing the TYPE_SPLIT header
|
||||
core::list<SharedBuffer<u8> > chunks;
|
||||
std::list<SharedBuffer<u8> > chunks;
|
||||
|
||||
u32 chunk_header_size = 7;
|
||||
u32 maximum_data_size = chunksize_max - chunk_header_size;
|
||||
u32 start = 0;
|
||||
u32 end = 0;
|
||||
u32 chunk_num = 0;
|
||||
u16 chunk_count = 0;
|
||||
do{
|
||||
end = start + maximum_data_size - 1;
|
||||
if(end > data.getSize() - 1)
|
||||
@@ -106,16 +107,15 @@ core::list<SharedBuffer<u8> > makeSplitPacket(
|
||||
memcpy(&chunk[chunk_header_size], &data[start], payload_size);
|
||||
|
||||
chunks.push_back(chunk);
|
||||
chunk_count++;
|
||||
|
||||
start = end + 1;
|
||||
chunk_num++;
|
||||
}
|
||||
while(end != data.getSize() - 1);
|
||||
|
||||
u16 chunk_count = chunks.getSize();
|
||||
|
||||
core::list<SharedBuffer<u8> >::Iterator i = chunks.begin();
|
||||
for(; i != chunks.end(); i++)
|
||||
for(std::list<SharedBuffer<u8> >::iterator i = chunks.begin();
|
||||
i != chunks.end(); ++i)
|
||||
{
|
||||
// Write chunk_count
|
||||
writeU16(&((*i)[3]), chunk_count);
|
||||
@@ -124,13 +124,13 @@ core::list<SharedBuffer<u8> > makeSplitPacket(
|
||||
return chunks;
|
||||
}
|
||||
|
||||
core::list<SharedBuffer<u8> > makeAutoSplitPacket(
|
||||
std::list<SharedBuffer<u8> > makeAutoSplitPacket(
|
||||
SharedBuffer<u8> data,
|
||||
u32 chunksize_max,
|
||||
u16 &split_seqnum)
|
||||
{
|
||||
u32 original_header_size = 1;
|
||||
core::list<SharedBuffer<u8> > list;
|
||||
std::list<SharedBuffer<u8> > list;
|
||||
if(data.getSize() + original_header_size > chunksize_max)
|
||||
{
|
||||
list = makeSplitPacket(data, chunksize_max, split_seqnum);
|
||||
@@ -170,11 +170,13 @@ SharedBuffer<u8> makeReliablePacket(
|
||||
ReliablePacketBuffer
|
||||
*/
|
||||
|
||||
ReliablePacketBuffer::ReliablePacketBuffer(): m_list_size(0) {}
|
||||
|
||||
void ReliablePacketBuffer::print()
|
||||
{
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
for(; i != m_list.end(); i++)
|
||||
for(std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
i != m_list.end();
|
||||
++i)
|
||||
{
|
||||
u16 s = readU16(&(i->data[BASE_HEADER_SIZE+1]));
|
||||
dout_con<<s<<" ";
|
||||
@@ -186,13 +188,12 @@ bool ReliablePacketBuffer::empty()
|
||||
}
|
||||
u32 ReliablePacketBuffer::size()
|
||||
{
|
||||
return m_list.getSize();
|
||||
return m_list_size;
|
||||
}
|
||||
RPBSearchResult ReliablePacketBuffer::findPacket(u16 seqnum)
|
||||
{
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
for(; i != m_list.end(); i++)
|
||||
std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
for(; i != m_list.end(); ++i)
|
||||
{
|
||||
u16 s = readU16(&(i->data[BASE_HEADER_SIZE+1]));
|
||||
/*dout_con<<"findPacket(): finding seqnum="<<seqnum
|
||||
@@ -218,8 +219,8 @@ BufferedPacket ReliablePacketBuffer::popFirst()
|
||||
if(empty())
|
||||
throw NotFoundException("Buffer is empty");
|
||||
BufferedPacket p = *m_list.begin();
|
||||
core::list<BufferedPacket>::Iterator i = m_list.begin();
|
||||
m_list.erase(i);
|
||||
m_list.erase(m_list.begin());
|
||||
--m_list_size;
|
||||
return p;
|
||||
}
|
||||
BufferedPacket ReliablePacketBuffer::popSeqnum(u16 seqnum)
|
||||
@@ -231,6 +232,7 @@ BufferedPacket ReliablePacketBuffer::popSeqnum(u16 seqnum)
|
||||
}
|
||||
BufferedPacket p = *r;
|
||||
m_list.erase(r);
|
||||
--m_list_size;
|
||||
return p;
|
||||
}
|
||||
void ReliablePacketBuffer::insert(BufferedPacket &p)
|
||||
@@ -240,6 +242,7 @@ void ReliablePacketBuffer::insert(BufferedPacket &p)
|
||||
assert(type == TYPE_RELIABLE);
|
||||
u16 seqnum = readU16(&p.data[BASE_HEADER_SIZE+1]);
|
||||
|
||||
++m_list_size;
|
||||
// Find the right place for the packet and insert it there
|
||||
|
||||
// If list is empty, just add it
|
||||
@@ -250,12 +253,12 @@ void ReliablePacketBuffer::insert(BufferedPacket &p)
|
||||
return;
|
||||
}
|
||||
// Otherwise find the right place
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
// Find the first packet in the list which has a higher seqnum
|
||||
for(; i != m_list.end(); i++){
|
||||
for(; i != m_list.end(); ++i){
|
||||
u16 s = readU16(&(i->data[BASE_HEADER_SIZE+1]));
|
||||
if(s == seqnum){
|
||||
--m_list_size;
|
||||
throw AlreadyExistsException("Same seqnum in list");
|
||||
}
|
||||
if(seqnum_higher(s, seqnum)){
|
||||
@@ -271,14 +274,14 @@ void ReliablePacketBuffer::insert(BufferedPacket &p)
|
||||
return;
|
||||
}
|
||||
// Insert before i
|
||||
m_list.insert_before(i, p);
|
||||
m_list.insert(i, p);
|
||||
}
|
||||
|
||||
void ReliablePacketBuffer::incrementTimeouts(float dtime)
|
||||
{
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
for(; i != m_list.end(); i++){
|
||||
for(std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
i != m_list.end(); ++i)
|
||||
{
|
||||
i->time += dtime;
|
||||
i->totaltime += dtime;
|
||||
}
|
||||
@@ -286,9 +289,9 @@ void ReliablePacketBuffer::incrementTimeouts(float dtime)
|
||||
|
||||
void ReliablePacketBuffer::resetTimedOuts(float timeout)
|
||||
{
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
for(; i != m_list.end(); i++){
|
||||
for(std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
i != m_list.end(); ++i)
|
||||
{
|
||||
if(i->time >= timeout)
|
||||
i->time = 0.0;
|
||||
}
|
||||
@@ -296,21 +299,20 @@ void ReliablePacketBuffer::resetTimedOuts(float timeout)
|
||||
|
||||
bool ReliablePacketBuffer::anyTotaltimeReached(float timeout)
|
||||
{
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
for(; i != m_list.end(); i++){
|
||||
for(std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
i != m_list.end(); ++i)
|
||||
{
|
||||
if(i->totaltime >= timeout)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
core::list<BufferedPacket> ReliablePacketBuffer::getTimedOuts(float timeout)
|
||||
std::list<BufferedPacket> ReliablePacketBuffer::getTimedOuts(float timeout)
|
||||
{
|
||||
core::list<BufferedPacket> timed_outs;
|
||||
core::list<BufferedPacket>::Iterator i;
|
||||
i = m_list.begin();
|
||||
for(; i != m_list.end(); i++)
|
||||
std::list<BufferedPacket> timed_outs;
|
||||
for(std::list<BufferedPacket>::iterator i = m_list.begin();
|
||||
i != m_list.end(); ++i)
|
||||
{
|
||||
if(i->time >= timeout)
|
||||
timed_outs.push_back(*i);
|
||||
@@ -324,11 +326,10 @@ core::list<BufferedPacket> ReliablePacketBuffer::getTimedOuts(float timeout)
|
||||
|
||||
IncomingSplitBuffer::~IncomingSplitBuffer()
|
||||
{
|
||||
core::map<u16, IncomingSplitPacket*>::Iterator i;
|
||||
i = m_buf.getIterator();
|
||||
for(; i.atEnd() == false; i++)
|
||||
for(std::map<u16, IncomingSplitPacket*>::iterator i = m_buf.begin();
|
||||
i != m_buf.end(); ++i)
|
||||
{
|
||||
delete i.getNode()->getValue();
|
||||
delete i->second;
|
||||
}
|
||||
}
|
||||
/*
|
||||
@@ -346,7 +347,7 @@ SharedBuffer<u8> IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable)
|
||||
u16 chunk_num = readU16(&p.data[BASE_HEADER_SIZE+5]);
|
||||
|
||||
// Add if doesn't exist
|
||||
if(m_buf.find(seqnum) == NULL)
|
||||
if(m_buf.find(seqnum) == m_buf.end())
|
||||
{
|
||||
IncomingSplitPacket *sp = new IncomingSplitPacket();
|
||||
sp->chunk_count = chunk_count;
|
||||
@@ -369,7 +370,7 @@ SharedBuffer<u8> IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable)
|
||||
// If chunk already exists, ignore it.
|
||||
// Sometimes two identical packets may arrive when there is network
|
||||
// lag and the server re-sends stuff.
|
||||
if(sp->chunks.find(chunk_num) != NULL)
|
||||
if(sp->chunks.find(chunk_num) != sp->chunks.end())
|
||||
return SharedBuffer<u8>();
|
||||
|
||||
// Cut chunk data out of packet
|
||||
@@ -386,11 +387,10 @@ SharedBuffer<u8> IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable)
|
||||
|
||||
// Calculate total size
|
||||
u32 totalsize = 0;
|
||||
core::map<u16, SharedBuffer<u8> >::Iterator i;
|
||||
i = sp->chunks.getIterator();
|
||||
for(; i.atEnd() == false; i++)
|
||||
for(std::map<u16, SharedBuffer<u8> >::iterator i = sp->chunks.begin();
|
||||
i != sp->chunks.end(); ++i)
|
||||
{
|
||||
totalsize += i.getNode()->getValue().getSize();
|
||||
totalsize += i->second.getSize();
|
||||
}
|
||||
|
||||
SharedBuffer<u8> fulldata(totalsize);
|
||||
@@ -407,34 +407,32 @@ SharedBuffer<u8> IncomingSplitBuffer::insert(BufferedPacket &p, bool reliable)
|
||||
}
|
||||
|
||||
// Remove sp from buffer
|
||||
m_buf.remove(seqnum);
|
||||
m_buf.erase(seqnum);
|
||||
delete sp;
|
||||
|
||||
return fulldata;
|
||||
}
|
||||
void IncomingSplitBuffer::removeUnreliableTimedOuts(float dtime, float timeout)
|
||||
{
|
||||
core::list<u16> remove_queue;
|
||||
core::map<u16, IncomingSplitPacket*>::Iterator i;
|
||||
i = m_buf.getIterator();
|
||||
for(; i.atEnd() == false; i++)
|
||||
std::list<u16> remove_queue;
|
||||
for(std::map<u16, IncomingSplitPacket*>::iterator i = m_buf.begin();
|
||||
i != m_buf.end(); ++i)
|
||||
{
|
||||
IncomingSplitPacket *p = i.getNode()->getValue();
|
||||
IncomingSplitPacket *p = i->second;
|
||||
// Reliable ones are not removed by timeout
|
||||
if(p->reliable == true)
|
||||
continue;
|
||||
p->time += dtime;
|
||||
if(p->time >= timeout)
|
||||
remove_queue.push_back(i.getNode()->getKey());
|
||||
remove_queue.push_back(i->first);
|
||||
}
|
||||
core::list<u16>::Iterator j;
|
||||
j = remove_queue.begin();
|
||||
for(; j != remove_queue.end(); j++)
|
||||
for(std::list<u16>::iterator j = remove_queue.begin();
|
||||
j != remove_queue.end(); ++j)
|
||||
{
|
||||
dout_con<<"NOTE: Removing timed out unreliable split packet"
|
||||
<<std::endl;
|
||||
delete m_buf[*j];
|
||||
m_buf.remove(*j);
|
||||
m_buf.erase(*j);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -556,12 +554,11 @@ Connection::~Connection()
|
||||
{
|
||||
stop();
|
||||
// Delete peers
|
||||
for(core::map<u16, Peer*>::Iterator
|
||||
j = m_peers.getIterator();
|
||||
j.atEnd() == false; j++)
|
||||
for(std::map<u16, Peer*>::iterator
|
||||
j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
delete peer;
|
||||
delete j->second;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -591,7 +588,7 @@ void * Connection::Thread()
|
||||
|
||||
runTimeouts(dtime);
|
||||
|
||||
while(m_command_queue.size() != 0){
|
||||
while(!m_command_queue.empty()){
|
||||
ConnectionCommand c = m_command_queue.pop_front();
|
||||
processCommand(c);
|
||||
}
|
||||
@@ -648,18 +645,18 @@ void Connection::processCommand(ConnectionCommand &c)
|
||||
|
||||
void Connection::send(float dtime)
|
||||
{
|
||||
for(core::map<u16, Peer*>::Iterator
|
||||
j = m_peers.getIterator();
|
||||
j.atEnd() == false; j++)
|
||||
for(std::map<u16, Peer*>::iterator
|
||||
j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
peer->m_sendtime_accu += dtime;
|
||||
peer->m_num_sent = 0;
|
||||
peer->m_max_num_sent = peer->m_sendtime_accu *
|
||||
peer->m_max_packets_per_second;
|
||||
}
|
||||
Queue<OutgoingPacket> postponed_packets;
|
||||
while(m_outgoing_queue.size() != 0){
|
||||
while(!m_outgoing_queue.empty()){
|
||||
OutgoingPacket packet = m_outgoing_queue.pop_front();
|
||||
Peer *peer = getPeerNoEx(packet.peer_id);
|
||||
if(!peer)
|
||||
@@ -674,14 +671,14 @@ void Connection::send(float dtime)
|
||||
postponed_packets.push_back(packet);
|
||||
}
|
||||
}
|
||||
while(postponed_packets.size() != 0){
|
||||
while(!postponed_packets.empty()){
|
||||
m_outgoing_queue.push_back(postponed_packets.pop_front());
|
||||
}
|
||||
for(core::map<u16, Peer*>::Iterator
|
||||
j = m_peers.getIterator();
|
||||
j.atEnd() == false; j++)
|
||||
for(std::map<u16, Peer*>::iterator
|
||||
j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
peer->m_sendtime_accu -= (float)peer->m_num_sent /
|
||||
peer->m_max_packets_per_second;
|
||||
if(peer->m_sendtime_accu > 10. / peer->m_max_packets_per_second)
|
||||
@@ -751,11 +748,11 @@ void Connection::receive()
|
||||
Allow only entries that have has_sent_with_id==false.
|
||||
*/
|
||||
|
||||
core::map<u16, Peer*>::Iterator j;
|
||||
j = m_peers.getIterator();
|
||||
for(; j.atEnd() == false; j++)
|
||||
std::map<u16, Peer*>::iterator j;
|
||||
j = m_peers.begin();
|
||||
for(; j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
if(peer->has_sent_with_id)
|
||||
continue;
|
||||
if(peer->address == sender)
|
||||
@@ -766,14 +763,14 @@ void Connection::receive()
|
||||
If no peer was found with the same address and port,
|
||||
we shall assume it is a new peer and create an entry.
|
||||
*/
|
||||
if(j.atEnd())
|
||||
if(j == m_peers.end())
|
||||
{
|
||||
// Pass on to adding the peer
|
||||
}
|
||||
// Else: A peer was found.
|
||||
else
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
peer_id = peer->id;
|
||||
PrintInfo(derr_con);
|
||||
derr_con<<"WARNING: Assuming unknown peer to be "
|
||||
@@ -797,7 +794,7 @@ void Connection::receive()
|
||||
for(;;)
|
||||
{
|
||||
// Check if exists
|
||||
if(m_peers.find(peer_id_new) == NULL)
|
||||
if(m_peers.find(peer_id_new) == m_peers.end())
|
||||
break;
|
||||
// Check for overflow
|
||||
if(peer_id_new == 65535){
|
||||
@@ -817,7 +814,7 @@ void Connection::receive()
|
||||
|
||||
// Create a peer
|
||||
Peer *peer = new Peer(peer_id_new, sender);
|
||||
m_peers.insert(peer->id, peer);
|
||||
m_peers[peer->id] = peer;
|
||||
|
||||
// Create peer addition event
|
||||
ConnectionEvent e;
|
||||
@@ -837,9 +834,9 @@ void Connection::receive()
|
||||
// Go on and process whatever it sent
|
||||
}
|
||||
|
||||
core::map<u16, Peer*>::Node *node = m_peers.find(peer_id);
|
||||
std::map<u16, Peer*>::iterator node = m_peers.find(peer_id);
|
||||
|
||||
if(node == NULL)
|
||||
if(node == m_peers.end())
|
||||
{
|
||||
// Peer not found
|
||||
// This means that the peer id of the sender is not PEER_ID_INEXISTENT
|
||||
@@ -849,7 +846,7 @@ void Connection::receive()
|
||||
throw InvalidIncomingDataException("Peer not found (possible timeout)");
|
||||
}
|
||||
|
||||
Peer *peer = node->getValue();
|
||||
Peer *peer = node->second;
|
||||
|
||||
// Validate peer address
|
||||
if(peer->address != sender)
|
||||
@@ -902,12 +899,11 @@ void Connection::runTimeouts(float dtime)
|
||||
float congestion_control_min_rate
|
||||
= g_settings->getFloat("congestion_control_min_rate");
|
||||
|
||||
core::list<u16> timeouted_peers;
|
||||
core::map<u16, Peer*>::Iterator j;
|
||||
j = m_peers.getIterator();
|
||||
for(; j.atEnd() == false; j++)
|
||||
std::list<u16> timeouted_peers;
|
||||
for(std::map<u16, Peer*>::iterator j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
|
||||
// Update congestion control values
|
||||
peer->congestion_control_aim_rtt = congestion_control_aim_rtt;
|
||||
@@ -934,8 +930,7 @@ void Connection::runTimeouts(float dtime)
|
||||
float resend_timeout = peer->resend_timeout;
|
||||
for(u16 i=0; i<CHANNEL_COUNT; i++)
|
||||
{
|
||||
core::list<BufferedPacket> timed_outs;
|
||||
core::list<BufferedPacket>::Iterator j;
|
||||
std::list<BufferedPacket> timed_outs;
|
||||
|
||||
Channel *channel = &peer->channels[i];
|
||||
|
||||
@@ -966,8 +961,8 @@ void Connection::runTimeouts(float dtime)
|
||||
|
||||
channel->outgoing_reliables.resetTimedOuts(resend_timeout);
|
||||
|
||||
j = timed_outs.begin();
|
||||
for(; j != timed_outs.end(); j++)
|
||||
for(std::list<BufferedPacket>::iterator j = timed_outs.begin();
|
||||
j != timed_outs.end(); ++j)
|
||||
{
|
||||
u16 peer_id = readPeerId(*(j->data));
|
||||
u8 channel = readChannel(*(j->data));
|
||||
@@ -1012,8 +1007,8 @@ void Connection::runTimeouts(float dtime)
|
||||
}
|
||||
|
||||
// Remove timed out peers
|
||||
core::list<u16>::Iterator i = timeouted_peers.begin();
|
||||
for(; i != timeouted_peers.end(); i++)
|
||||
for(std::list<u16>::iterator i = timeouted_peers.begin();
|
||||
i != timeouted_peers.end(); ++i)
|
||||
{
|
||||
PrintInfo(derr_con);
|
||||
derr_con<<"RunTimeouts(): Removing peer "<<(*i)<<std::endl;
|
||||
@@ -1041,13 +1036,13 @@ void Connection::connect(Address address)
|
||||
dout_con<<getDesc()<<" connecting to "<<address.serializeString()
|
||||
<<":"<<address.getPort()<<std::endl;
|
||||
|
||||
core::map<u16, Peer*>::Node *node = m_peers.find(PEER_ID_SERVER);
|
||||
if(node != NULL){
|
||||
std::map<u16, Peer*>::iterator node = m_peers.find(PEER_ID_SERVER);
|
||||
if(node != m_peers.end()){
|
||||
throw ConnectionException("Already connected to a server");
|
||||
}
|
||||
|
||||
Peer *peer = new Peer(PEER_ID_SERVER, address);
|
||||
m_peers.insert(peer->id, peer);
|
||||
m_peers[peer->id] = peer;
|
||||
|
||||
// Create event
|
||||
ConnectionEvent e;
|
||||
@@ -1072,22 +1067,20 @@ void Connection::disconnect()
|
||||
writeU8(&data[1], CONTROLTYPE_DISCO);
|
||||
|
||||
// Send to all
|
||||
core::map<u16, Peer*>::Iterator j;
|
||||
j = m_peers.getIterator();
|
||||
for(; j.atEnd() == false; j++)
|
||||
for(std::map<u16, Peer*>::iterator j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
rawSendAsPacket(peer->id, 0, data, false);
|
||||
}
|
||||
}
|
||||
|
||||
void Connection::sendToAll(u8 channelnum, SharedBuffer<u8> data, bool reliable)
|
||||
{
|
||||
core::map<u16, Peer*>::Iterator j;
|
||||
j = m_peers.getIterator();
|
||||
for(; j.atEnd() == false; j++)
|
||||
for(std::map<u16, Peer*>::iterator j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
send(peer->id, channelnum, data, reliable);
|
||||
}
|
||||
}
|
||||
@@ -1108,13 +1101,12 @@ void Connection::send(u16 peer_id, u8 channelnum,
|
||||
if(reliable)
|
||||
chunksize_max -= RELIABLE_HEADER_SIZE;
|
||||
|
||||
core::list<SharedBuffer<u8> > originals;
|
||||
std::list<SharedBuffer<u8> > originals;
|
||||
originals = makeAutoSplitPacket(data, chunksize_max,
|
||||
channel->next_outgoing_split_seqnum);
|
||||
|
||||
core::list<SharedBuffer<u8> >::Iterator i;
|
||||
i = originals.begin();
|
||||
for(; i != originals.end(); i++)
|
||||
for(std::list<SharedBuffer<u8> >::iterator i = originals.begin();
|
||||
i != originals.end(); ++i)
|
||||
{
|
||||
SharedBuffer<u8> original = *i;
|
||||
|
||||
@@ -1187,40 +1179,39 @@ void Connection::rawSend(const BufferedPacket &packet)
|
||||
|
||||
Peer* Connection::getPeer(u16 peer_id)
|
||||
{
|
||||
core::map<u16, Peer*>::Node *node = m_peers.find(peer_id);
|
||||
std::map<u16, Peer*>::iterator node = m_peers.find(peer_id);
|
||||
|
||||
if(node == NULL){
|
||||
if(node == m_peers.end()){
|
||||
throw PeerNotFoundException("GetPeer: Peer not found (possible timeout)");
|
||||
}
|
||||
|
||||
// Error checking
|
||||
assert(node->getValue()->id == peer_id);
|
||||
assert(node->second->id == peer_id);
|
||||
|
||||
return node->getValue();
|
||||
return node->second;
|
||||
}
|
||||
|
||||
Peer* Connection::getPeerNoEx(u16 peer_id)
|
||||
{
|
||||
core::map<u16, Peer*>::Node *node = m_peers.find(peer_id);
|
||||
std::map<u16, Peer*>::iterator node = m_peers.find(peer_id);
|
||||
|
||||
if(node == NULL){
|
||||
if(node == m_peers.end()){
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// Error checking
|
||||
assert(node->getValue()->id == peer_id);
|
||||
assert(node->second->id == peer_id);
|
||||
|
||||
return node->getValue();
|
||||
return node->second;
|
||||
}
|
||||
|
||||
core::list<Peer*> Connection::getPeers()
|
||||
std::list<Peer*> Connection::getPeers()
|
||||
{
|
||||
core::list<Peer*> list;
|
||||
core::map<u16, Peer*>::Iterator j;
|
||||
j = m_peers.getIterator();
|
||||
for(; j.atEnd() == false; j++)
|
||||
std::list<Peer*> list;
|
||||
for(std::map<u16, Peer*>::iterator j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
list.push_back(peer);
|
||||
}
|
||||
return list;
|
||||
@@ -1228,11 +1219,10 @@ core::list<Peer*> Connection::getPeers()
|
||||
|
||||
bool Connection::getFromBuffers(u16 &peer_id, SharedBuffer<u8> &dst)
|
||||
{
|
||||
core::map<u16, Peer*>::Iterator j;
|
||||
j = m_peers.getIterator();
|
||||
for(; j.atEnd() == false; j++)
|
||||
for(std::map<u16, Peer*>::iterator j = m_peers.begin();
|
||||
j != m_peers.end(); ++j)
|
||||
{
|
||||
Peer *peer = j.getNode()->getValue();
|
||||
Peer *peer = j->second;
|
||||
for(u16 i=0; i<CHANNEL_COUNT; i++)
|
||||
{
|
||||
Channel *channel = &peer->channels[i];
|
||||
@@ -1538,7 +1528,7 @@ SharedBuffer<u8> Connection::processPacket(Channel *channel,
|
||||
|
||||
bool Connection::deletePeer(u16 peer_id, bool timeout)
|
||||
{
|
||||
if(m_peers.find(peer_id) == NULL)
|
||||
if(m_peers.find(peer_id) == m_peers.end())
|
||||
return false;
|
||||
|
||||
Peer *peer = m_peers[peer_id];
|
||||
@@ -1549,7 +1539,7 @@ bool Connection::deletePeer(u16 peer_id, bool timeout)
|
||||
putEvent(e);
|
||||
|
||||
delete m_peers[peer_id];
|
||||
m_peers.remove(peer_id);
|
||||
m_peers.erase(peer_id);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1557,7 +1547,7 @@ bool Connection::deletePeer(u16 peer_id, bool timeout)
|
||||
|
||||
ConnectionEvent Connection::getEvent()
|
||||
{
|
||||
if(m_event_queue.size() == 0){
|
||||
if(m_event_queue.empty()){
|
||||
ConnectionEvent e;
|
||||
e.type = CONNEVENT_NONE;
|
||||
return e;
|
||||
@@ -1602,8 +1592,8 @@ bool Connection::Connected()
|
||||
if(m_peers.size() != 1)
|
||||
return false;
|
||||
|
||||
core::map<u16, Peer*>::Node *node = m_peers.find(PEER_ID_SERVER);
|
||||
if(node == NULL)
|
||||
std::map<u16, Peer*>::iterator node = m_peers.find(PEER_ID_SERVER);
|
||||
if(node == m_peers.end())
|
||||
return false;
|
||||
|
||||
if(m_peer_id == PEER_ID_INEXISTENT)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -29,6 +29,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "util/thread.h"
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <list>
|
||||
#include <map>
|
||||
|
||||
namespace con
|
||||
{
|
||||
@@ -142,14 +144,14 @@ SharedBuffer<u8> makeOriginalPacket(
|
||||
SharedBuffer<u8> data);
|
||||
|
||||
// Split data in chunks and add TYPE_SPLIT headers to them
|
||||
core::list<SharedBuffer<u8> > makeSplitPacket(
|
||||
std::list<SharedBuffer<u8> > makeSplitPacket(
|
||||
SharedBuffer<u8> data,
|
||||
u32 chunksize_max,
|
||||
u16 seqnum);
|
||||
|
||||
// Depending on size, make a TYPE_ORIGINAL or TYPE_SPLIT packet
|
||||
// Increments split_seqnum if a split packet is made
|
||||
core::list<SharedBuffer<u8> > makeAutoSplitPacket(
|
||||
std::list<SharedBuffer<u8> > makeAutoSplitPacket(
|
||||
SharedBuffer<u8> data,
|
||||
u32 chunksize_max,
|
||||
u16 &split_seqnum);
|
||||
@@ -167,7 +169,7 @@ struct IncomingSplitPacket
|
||||
reliable = false;
|
||||
}
|
||||
// Key is chunk number, value is data without headers
|
||||
core::map<u16, SharedBuffer<u8> > chunks;
|
||||
std::map<u16, SharedBuffer<u8> > chunks;
|
||||
u32 chunk_count;
|
||||
float time; // Seconds from adding
|
||||
bool reliable; // If true, isn't deleted on timeout
|
||||
@@ -268,12 +270,12 @@ with a buffer in the receiving and transmitting end.
|
||||
for fast access to the smallest one.
|
||||
*/
|
||||
|
||||
typedef core::list<BufferedPacket>::Iterator RPBSearchResult;
|
||||
typedef std::list<BufferedPacket>::iterator RPBSearchResult;
|
||||
|
||||
class ReliablePacketBuffer
|
||||
{
|
||||
public:
|
||||
|
||||
ReliablePacketBuffer();
|
||||
void print();
|
||||
bool empty();
|
||||
u32 size();
|
||||
@@ -286,10 +288,11 @@ class ReliablePacketBuffer
|
||||
void incrementTimeouts(float dtime);
|
||||
void resetTimedOuts(float timeout);
|
||||
bool anyTotaltimeReached(float timeout);
|
||||
core::list<BufferedPacket> getTimedOuts(float timeout);
|
||||
std::list<BufferedPacket> getTimedOuts(float timeout);
|
||||
|
||||
private:
|
||||
core::list<BufferedPacket> m_list;
|
||||
std::list<BufferedPacket> m_list;
|
||||
u16 m_list_size;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -310,7 +313,7 @@ class IncomingSplitBuffer
|
||||
|
||||
private:
|
||||
// Key is seqnum
|
||||
core::map<u16, IncomingSplitPacket*> m_buf;
|
||||
std::map<u16, IncomingSplitPacket*> m_buf;
|
||||
};
|
||||
|
||||
class Connection;
|
||||
@@ -589,7 +592,7 @@ class Connection: public SimpleThread
|
||||
void rawSend(const BufferedPacket &packet);
|
||||
Peer* getPeer(u16 peer_id);
|
||||
Peer* getPeerNoEx(u16 peer_id);
|
||||
core::list<Peer*> getPeers();
|
||||
std::list<Peer*> getPeers();
|
||||
bool getFromBuffers(u16 &peer_id, SharedBuffer<u8> &dst);
|
||||
// Returns next data from a buffer if possible
|
||||
// If found, returns true; if not, false.
|
||||
@@ -619,7 +622,7 @@ class Connection: public SimpleThread
|
||||
UDPSocket m_socket;
|
||||
u16 m_peer_id;
|
||||
|
||||
core::map<u16, Peer*> m_peers;
|
||||
std::map<u16, Peer*> m_peers;
|
||||
JMutex m_peers_mutex;
|
||||
|
||||
// Backwards compatibility
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
@@ -25,7 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
#include "content_sao.h"
|
||||
#include "settings.h"
|
||||
#include "mapblock.h" // For getNodeBlockPos
|
||||
#include "mapgen.h" // For mapgen::make_tree
|
||||
#include "treegen.h" // For treegen::make_tree
|
||||
#include "main.h" // for g_settings
|
||||
#include "map.h"
|
||||
|
||||
#define PP(x) "("<<(x).X<<","<<(x).Y<<","<<(x).Z<<")"
|
||||
@@ -37,7 +38,7 @@ class GrowGrassABM : public ActiveBlockModifier
|
||||
virtual std::set<std::string> getTriggerContents()
|
||||
{
|
||||
std::set<std::string> s;
|
||||
s.insert("dirt");
|
||||
s.insert("mapgen_dirt");
|
||||
return s;
|
||||
}
|
||||
virtual float getTriggerInterval()
|
||||
@@ -50,11 +51,15 @@ class GrowGrassABM : public ActiveBlockModifier
|
||||
ServerMap *map = &env->getServerMap();
|
||||
|
||||
MapNode n_top = map->getNodeNoEx(p+v3s16(0,1,0));
|
||||
content_t c_snow = ndef->getId("snow");
|
||||
if(ndef->get(n_top).light_propagates &&
|
||||
!ndef->get(n_top).isLiquid() &&
|
||||
n_top.getLightBlend(env->getDayNightRatio(), ndef) >= 13)
|
||||
{
|
||||
n.setContent(ndef->getId("dirt_with_grass"));
|
||||
if(c_snow != CONTENT_IGNORE && n_top.getContent() == c_snow)
|
||||
n.setContent(ndef->getId("dirt_with_snow"));
|
||||
else
|
||||
n.setContent(ndef->getId("mapgen_dirt_with_grass"));
|
||||
map->addNodeWithEvent(p, n);
|
||||
}
|
||||
}
|
||||
@@ -67,7 +72,7 @@ class RemoveGrassABM : public ActiveBlockModifier
|
||||
virtual std::set<std::string> getTriggerContents()
|
||||
{
|
||||
std::set<std::string> s;
|
||||
s.insert("dirt_with_grass");
|
||||
s.insert("mapgen_dirt_with_grass");
|
||||
return s;
|
||||
}
|
||||
virtual float getTriggerInterval()
|
||||
@@ -80,10 +85,11 @@ class RemoveGrassABM : public ActiveBlockModifier
|
||||
ServerMap *map = &env->getServerMap();
|
||||
|
||||
MapNode n_top = map->getNodeNoEx(p+v3s16(0,1,0));
|
||||
if(!ndef->get(n_top).light_propagates ||
|
||||
if((!ndef->get(n_top).light_propagates &&
|
||||
n_top.getContent() != CONTENT_IGNORE) ||
|
||||
ndef->get(n_top).isLiquid())
|
||||
{
|
||||
n.setContent(ndef->getId("dirt"));
|
||||
n.setContent(ndef->getId("mapgen_dirt"));
|
||||
map->addNodeWithEvent(p, n);
|
||||
}
|
||||
}
|
||||
@@ -92,11 +98,18 @@ class RemoveGrassABM : public ActiveBlockModifier
|
||||
class MakeTreesFromSaplingsABM : public ActiveBlockModifier
|
||||
{
|
||||
private:
|
||||
content_t c_junglesapling;
|
||||
|
||||
public:
|
||||
MakeTreesFromSaplingsABM(ServerEnvironment *env, INodeDefManager *nodemgr) {
|
||||
c_junglesapling = nodemgr->getId("junglesapling");
|
||||
}
|
||||
|
||||
virtual std::set<std::string> getTriggerContents()
|
||||
{
|
||||
std::set<std::string> s;
|
||||
s.insert("sapling");
|
||||
s.insert("junglesapling");
|
||||
return s;
|
||||
}
|
||||
virtual float getTriggerInterval()
|
||||
@@ -109,47 +122,127 @@ class MakeTreesFromSaplingsABM : public ActiveBlockModifier
|
||||
INodeDefManager *ndef = env->getGameDef()->ndef();
|
||||
ServerMap *map = &env->getServerMap();
|
||||
|
||||
actionstream<<"A sapling grows into a tree at "
|
||||
<<PP(p)<<std::endl;
|
||||
MapNode n_below = map->getNodeNoEx(p - v3s16(0, 1, 0));
|
||||
if (!((ItemGroupList) ndef->get(n_below).groups)["soil"])
|
||||
return;
|
||||
|
||||
bool is_jungle_tree = n.getContent() == c_junglesapling;
|
||||
|
||||
actionstream <<"A " << (is_jungle_tree ? "jungle " : "")
|
||||
<< "sapling grows into a tree at "
|
||||
<< PP(p) << std::endl;
|
||||
|
||||
core::map<v3s16, MapBlock*> modified_blocks;
|
||||
std::map<v3s16, MapBlock*> modified_blocks;
|
||||
v3s16 tree_p = p;
|
||||
ManualMapVoxelManipulator vmanip(map);
|
||||
v3s16 tree_blockp = getNodeBlockPos(tree_p);
|
||||
vmanip.initialEmerge(tree_blockp - v3s16(1,1,1), tree_blockp + v3s16(1,1,1));
|
||||
bool is_apple_tree = myrand()%4 == 0;
|
||||
mapgen::make_tree(vmanip, tree_p, is_apple_tree, ndef);
|
||||
|
||||
if (is_jungle_tree) {
|
||||
treegen::make_jungletree(vmanip, tree_p, ndef, myrand());
|
||||
} else {
|
||||
bool is_apple_tree = myrand() % 4 == 0;
|
||||
treegen::make_tree(vmanip, tree_p, is_apple_tree, ndef, myrand());
|
||||
}
|
||||
|
||||
vmanip.blitBackAll(&modified_blocks);
|
||||
|
||||
// update lighting
|
||||
core::map<v3s16, MapBlock*> lighting_modified_blocks;
|
||||
for(core::map<v3s16, MapBlock*>::Iterator
|
||||
i = modified_blocks.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
{
|
||||
lighting_modified_blocks.insert(i.getNode()->getKey(), i.getNode()->getValue());
|
||||
}
|
||||
std::map<v3s16, MapBlock*> lighting_modified_blocks;
|
||||
lighting_modified_blocks.insert(modified_blocks.begin(), modified_blocks.end());
|
||||
map->updateLighting(lighting_modified_blocks, modified_blocks);
|
||||
|
||||
// Send a MEET_OTHER event
|
||||
MapEditEvent event;
|
||||
event.type = MEET_OTHER;
|
||||
for(core::map<v3s16, MapBlock*>::Iterator
|
||||
i = modified_blocks.getIterator();
|
||||
i.atEnd() == false; i++)
|
||||
// event.modified_blocks.insert(modified_blocks.begin(), modified_blocks.end());
|
||||
for(std::map<v3s16, MapBlock*>::iterator
|
||||
i = modified_blocks.begin();
|
||||
i != modified_blocks.end(); ++i)
|
||||
{
|
||||
v3s16 p = i.getNode()->getKey();
|
||||
event.modified_blocks.insert(p, true);
|
||||
event.modified_blocks.insert(i->first);
|
||||
}
|
||||
map->dispatchEvent(&event);
|
||||
}
|
||||
};
|
||||
|
||||
class LiquidFlowABM : public ActiveBlockModifier
|
||||
{
|
||||
private:
|
||||
std::set<std::string> contents;
|
||||
|
||||
public:
|
||||
LiquidFlowABM(ServerEnvironment *env, INodeDefManager *nodemgr)
|
||||
{
|
||||
std::set<content_t> liquids;
|
||||
nodemgr->getIds("group:liquid", liquids);
|
||||
for(std::set<content_t>::const_iterator k = liquids.begin(); k != liquids.end(); k++)
|
||||
contents.insert(nodemgr->get(*k).liquid_alternative_flowing);
|
||||
|
||||
}
|
||||
virtual std::set<std::string> getTriggerContents()
|
||||
{
|
||||
return contents;
|
||||
}
|
||||
virtual float getTriggerInterval()
|
||||
{ return 10.0; }
|
||||
virtual u32 getTriggerChance()
|
||||
{ return 10; }
|
||||
virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n)
|
||||
{
|
||||
ServerMap *map = &env->getServerMap();
|
||||
if (map->transforming_liquid_size() > 500)
|
||||
return;
|
||||
map->transforming_liquid_add(p);
|
||||
//if ((*map).m_transforming_liquid.size() < 500) (*map).m_transforming_liquid.push_back(p);
|
||||
}
|
||||
};
|
||||
|
||||
class LiquidDropABM : public ActiveBlockModifier
|
||||
{
|
||||
private:
|
||||
std::set<std::string> contents;
|
||||
|
||||
public:
|
||||
LiquidDropABM(ServerEnvironment *env, INodeDefManager *nodemgr)
|
||||
{
|
||||
std::set<content_t> liquids;
|
||||
nodemgr->getIds("group:liquid", liquids);
|
||||
for(std::set<content_t>::const_iterator k = liquids.begin(); k != liquids.end(); k++)
|
||||
contents.insert(nodemgr->get(*k).liquid_alternative_source);
|
||||
}
|
||||
virtual std::set<std::string> getTriggerContents()
|
||||
{ return contents; }
|
||||
virtual std::set<std::string> getRequiredNeighbors()
|
||||
{
|
||||
std::set<std::string> neighbors;
|
||||
neighbors.insert("mapgen_air");
|
||||
return neighbors;
|
||||
}
|
||||
virtual float getTriggerInterval()
|
||||
{ return 20.0; }
|
||||
virtual u32 getTriggerChance()
|
||||
{ return 10; }
|
||||
virtual void trigger(ServerEnvironment *env, v3s16 p, MapNode n)
|
||||
{
|
||||
ServerMap *map = &env->getServerMap();
|
||||
if (map->transforming_liquid_size() > 500)
|
||||
return;
|
||||
//todo: look around except top
|
||||
MapNode n_below = map->getNodeNoEx(p - v3s16(0, 1, 0));
|
||||
if (n_below.getContent() != CONTENT_AIR)
|
||||
return;
|
||||
map->transforming_liquid_add(p);
|
||||
}
|
||||
};
|
||||
|
||||
void add_legacy_abms(ServerEnvironment *env, INodeDefManager *nodedef)
|
||||
{
|
||||
env->addActiveBlockModifier(new GrowGrassABM());
|
||||
env->addActiveBlockModifier(new RemoveGrassABM());
|
||||
env->addActiveBlockModifier(new MakeTreesFromSaplingsABM());
|
||||
env->addActiveBlockModifier(new MakeTreesFromSaplingsABM(env, nodedef));
|
||||
if (g_settings->getBool("liquid_finite")) {
|
||||
env->addActiveBlockModifier(new LiquidFlowABM(env, nodedef));
|
||||
env->addActiveBlockModifier(new LiquidDropABM(env, nodedef));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
Minetest
|
||||
Copyright (C) 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
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user