Compare commits
993 Commits
0.2.201107
...
0.4.dev-20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb3ac49335 | ||
|
|
c54a40df06 | ||
|
|
9c4f68e174 | ||
|
|
4ee4dfdc13 | ||
|
|
2e0c0e9d89 | ||
|
|
db5db587be | ||
|
|
569fca5308 | ||
|
|
b409803527 | ||
|
|
99d257ae8b | ||
|
|
2f2b7915ea | ||
|
|
c1cfcb1577 | ||
|
|
2e90ed07ac | ||
|
|
58bed83d03 | ||
|
|
54917e3062 | ||
|
|
81385682c8 | ||
|
|
807a0d313b | ||
|
|
f9a66c5d46 | ||
|
|
60add387e3 | ||
|
|
ca0fd4173c | ||
|
|
4aa0f040fb | ||
|
|
5957fed9a7 | ||
|
|
6298878bfa | ||
|
|
899004207d | ||
|
|
2b200d481f | ||
|
|
8551ddc839 | ||
|
|
eea3277b81 | ||
|
|
11b86f8d8a | ||
|
|
71a3c2fcd1 | ||
|
|
4ff36696ea | ||
|
|
800d3b4ee7 | ||
|
|
a0b2c7ba25 | ||
|
|
64232f0aec | ||
|
|
591527d878 | ||
|
|
82073025cc | ||
|
|
2c9bb06516 | ||
|
|
18c4a90101 | ||
|
|
5a8ee4889d | ||
|
|
ea1fdf3201 | ||
|
|
2e61008fd9 | ||
|
|
eafde7186f | ||
|
|
a72dc388c3 | ||
|
|
618314985d | ||
|
|
d1d83d7e7f | ||
|
|
bcaab74f1f | ||
|
|
1b670a293b | ||
|
|
45f78bdf40 | ||
|
|
54eca4e736 | ||
|
|
3da05a09b5 | ||
|
|
f79082a46d | ||
|
|
e71d75ed9a | ||
|
|
a4a35f659b | ||
|
|
9eba6a349f | ||
|
|
6a1b6d0344 | ||
|
|
7f7fb9750d | ||
|
|
df190b8f87 | ||
|
|
af33b3b338 | ||
|
|
a87d19cd7e | ||
|
|
611fe41588 | ||
|
|
8b6cce18cb | ||
|
|
d330430336 | ||
|
|
37b2bc3c0c | ||
|
|
f49914dd17 | ||
|
|
f1d9880006 | ||
|
|
6ec447a1aa | ||
|
|
b485fac33e | ||
|
|
98404ad8ea | ||
|
|
e1f5227304 | ||
|
|
2de8f915f8 | ||
|
|
967f25461b | ||
|
|
0053651814 | ||
|
|
7d36833bd4 | ||
|
|
1bbfd0b6d2 | ||
|
|
4547ace59a | ||
|
|
d74659254b | ||
|
|
55d310b05a | ||
|
|
15da308c2a | ||
|
|
e80bc6ef58 | ||
|
|
d81e783665 | ||
|
|
030b63c3d2 | ||
|
|
f3dba05143 | ||
|
|
1020707918 | ||
|
|
c89d1cf072 | ||
|
|
9c5e422d3a | ||
|
|
5e00141005 | ||
|
|
fa70413c82 | ||
|
|
06d2bc7fbd | ||
|
|
1ae9e0afa1 | ||
|
|
f9da2c9507 | ||
|
|
989aba1966 | ||
|
|
6b7d6c27ee | ||
|
|
8db89b8136 | ||
|
|
8c01ad8a9d | ||
|
|
f60a5ec08f | ||
|
|
501b8fe743 | ||
|
|
e9cdb938fe | ||
|
|
f1cb91cd93 | ||
|
|
910186905f | ||
|
|
07ed57476f | ||
|
|
0b21618a05 | ||
|
|
b49a7c140e | ||
|
|
562ac3bce9 | ||
|
|
f21291211c | ||
|
|
d834d6e074 | ||
|
|
11716825fc | ||
|
|
0309021359 | ||
|
|
14a71590c3 | ||
|
|
a5f6d65c37 | ||
|
|
79326e6287 | ||
|
|
c8ec711503 | ||
|
|
0f8b91bfba | ||
|
|
b7fd3c8669 | ||
|
|
b3f4cbe157 | ||
|
|
d0491ce8b6 | ||
|
|
806f10524f | ||
|
|
50110e00e8 | ||
|
|
3a89c40e26 | ||
|
|
ff678d1607 | ||
|
|
abab3db23d | ||
|
|
496451c164 | ||
|
|
993821a924 | ||
|
|
ad5ac22442 | ||
|
|
94b25685c5 | ||
|
|
88cdd3a363 | ||
|
|
e15de8b70d | ||
|
|
61016962ee | ||
|
|
a1eb2836c0 | ||
|
|
64af6d3afe | ||
|
|
365f7a5bfe | ||
|
|
796009ef21 | ||
|
|
b85b4ede82 | ||
|
|
2cb96d9d68 | ||
|
|
78bf92175a | ||
|
|
0c3d39357b | ||
|
|
0e8bd531c2 | ||
|
|
ac69a3561a | ||
|
|
24b1008d56 | ||
|
|
a4340c330a | ||
|
|
2e8e9ee7f5 | ||
|
|
cb05a28745 | ||
|
|
a387c9b95d | ||
|
|
0a426f3592 | ||
|
|
00bc9a8678 | ||
|
|
c241902b40 | ||
|
|
4799a8f761 | ||
|
|
02b334a679 | ||
|
|
b4dd5d3bd7 | ||
|
|
1efdc36b22 | ||
|
|
157a4cf18c | ||
|
|
f22c73f501 | ||
|
|
c920df748b | ||
|
|
a58d725569 | ||
|
|
6a76c226e1 | ||
|
|
569156b013 | ||
|
|
6d4bc012f0 | ||
|
|
2f5c28aaf1 | ||
|
|
4f2c1e36a1 | ||
|
|
bc743ca7ce | ||
|
|
f9d7e399b2 | ||
|
|
3e6f824e6c | ||
|
|
6286c555d4 | ||
|
|
4630281318 | ||
|
|
cd0019acd2 | ||
|
|
e82a76e438 | ||
|
|
ab57fbe4ca | ||
|
|
56f55ab1af | ||
|
|
2445cbbbdc | ||
|
|
48131bf988 | ||
|
|
2b9596fe9b | ||
|
|
0e1f448b61 | ||
|
|
ff82b95800 | ||
|
|
49b7055cb3 | ||
|
|
cb88f7b6d4 | ||
|
|
9425fb8192 | ||
|
|
e48ccd7943 | ||
|
|
6be5441176 | ||
|
|
d5ba7ebaf0 | ||
|
|
270a482740 | ||
|
|
e0b4890794 | ||
|
|
247e8b6e5d | ||
|
|
b760e2ba23 | ||
|
|
103173fc9b | ||
|
|
70ed371d0c | ||
|
|
81d3485109 | ||
|
|
7b7b68cdab | ||
|
|
135a65e200 | ||
|
|
123529e5eb | ||
|
|
e81989a0d8 | ||
|
|
1c15f53318 | ||
|
|
7937813c98 | ||
|
|
ad4040d982 | ||
|
|
69579306dd | ||
|
|
bd21f00f0a | ||
|
|
012bcbcb48 | ||
|
|
e06d4555bf | ||
|
|
abd106bacb | ||
|
|
008de2fb8f | ||
|
|
2e67fa3e48 | ||
|
|
ea36951bc4 | ||
|
|
09c48b60bd | ||
|
|
4cc117ddf6 | ||
|
|
ceaf8edade | ||
|
|
520200d597 | ||
|
|
ab67985d21 | ||
|
|
bc5cc638fc | ||
|
|
bff8be8b76 | ||
|
|
3e95b8a158 | ||
|
|
e8539d4dae | ||
|
|
1907b31da7 | ||
|
|
6145a135bd | ||
|
|
97c3bc408b | ||
|
|
a00e908f52 | ||
|
|
4ad8891e05 | ||
|
|
2b8b2a4f30 | ||
|
|
5c24450e54 | ||
|
|
3a689a5c4f | ||
|
|
44e36d9aad | ||
|
|
62f7f72d20 | ||
|
|
829c632511 | ||
|
|
8730dfb1f9 | ||
|
|
6764365994 | ||
|
|
8addbc9655 | ||
|
|
658d1a7235 | ||
|
|
4b00d4d9d2 | ||
|
|
6a5829788e | ||
|
|
03074cd23e | ||
|
|
2620e8eada | ||
|
|
9b5e676ffa | ||
|
|
fd1ef11617 | ||
|
|
9fa567a6ce | ||
|
|
fc6c00cbe1 | ||
|
|
66f90a6101 | ||
|
|
1fe5c58d56 | ||
|
|
f23616acaf | ||
|
|
7d37913ea4 | ||
|
|
ac56053c74 | ||
|
|
d566ffaa5f | ||
|
|
d06d7cb9a4 | ||
|
|
e494b5d422 | ||
|
|
fdf7b3bcdf | ||
|
|
871e6c0c73 | ||
|
|
392485aa45 | ||
|
|
275a348b75 | ||
|
|
189689716c | ||
|
|
3965d432ca | ||
|
|
746b960c0d | ||
|
|
760416b81f | ||
|
|
1c785c32ef | ||
|
|
cd608b1877 | ||
|
|
c6dd75ccfb | ||
|
|
6b2023dc3e | ||
|
|
2f4a92d701 | ||
|
|
324c544922 | ||
|
|
fbbbcf97d8 | ||
|
|
d96cd236f3 | ||
|
|
581f950e10 | ||
|
|
9344816bd6 | ||
|
|
67c21fc42f | ||
|
|
c2d266efc6 | ||
|
|
ec1859b095 | ||
|
|
bc00cdeb2c | ||
|
|
3e6e35f383 | ||
|
|
b9e8e20c9c | ||
|
|
932988af46 | ||
|
|
69bc9224db | ||
|
|
a17efe6e8f | ||
|
|
e8b0722137 | ||
|
|
ed128fff26 | ||
|
|
a465fd5b99 | ||
|
|
9af0142a36 | ||
|
|
34fd47887e | ||
|
|
2dc9a0c724 | ||
|
|
c357985135 | ||
|
|
ae2b7f9523 | ||
|
|
5344dec760 | ||
|
|
89bc306632 | ||
|
|
dc05b106f2 | ||
|
|
a416cf7c45 | ||
|
|
09010410cf | ||
|
|
f8bbecebf5 | ||
|
|
9d67037570 | ||
|
|
e4daa4c065 | ||
|
|
08a10b8a6a | ||
|
|
af32240545 | ||
|
|
ee0d3bacbc | ||
|
|
9dcfa882b1 | ||
|
|
cb589b1f99 | ||
|
|
e6e3eef0ef | ||
|
|
0e113a4c81 | ||
|
|
1da3a8e24b | ||
|
|
3509714951 | ||
|
|
146be1f0b6 | ||
|
|
223a4f4741 | ||
|
|
1f1c1790f5 | ||
|
|
2ca00fa585 | ||
|
|
1901158b3e | ||
|
|
63d3403a20 | ||
|
|
7f7fe444d3 | ||
|
|
f4272ccf8f | ||
|
|
4196b0d341 | ||
|
|
ebc7a36a83 | ||
|
|
aab50cd2cc | ||
|
|
96c30452f9 | ||
|
|
4d0f227c70 | ||
|
|
50b87c3791 | ||
|
|
b6539399f4 | ||
|
|
8b8ef8acc0 | ||
|
|
74c6836f2f | ||
|
|
d8d6d0dc95 | ||
|
|
f6c6c4f917 | ||
|
|
918c507a66 | ||
|
|
1b61ca412b | ||
|
|
cd563473fa | ||
|
|
d26e19a296 | ||
|
|
a244e367ea | ||
|
|
347216d654 | ||
|
|
49e4f55b09 | ||
|
|
661ed387df | ||
|
|
ccfec0400f | ||
|
|
e109ed5cef | ||
|
|
b2c905d800 | ||
|
|
4bcff65ad0 | ||
|
|
e5d372f238 | ||
|
|
103d4793f0 | ||
|
|
2a610b011a | ||
|
|
cd030639a4 | ||
|
|
6d23fb2592 | ||
|
|
bc48cf076d | ||
|
|
be2ecf9186 | ||
|
|
d57aa531e1 | ||
|
|
bb898bf587 | ||
|
|
9d35e4fa6e | ||
|
|
bd1e5f4fc8 | ||
|
|
95951ce558 | ||
|
|
10a363ebf3 | ||
|
|
d6b30dd3a5 | ||
|
|
1c19f959db | ||
|
|
dde22d26a8 | ||
|
|
c8211ceb3e | ||
|
|
c910ead4db | ||
|
|
fe64f2b673 | ||
|
|
a91eb36277 | ||
|
|
026979e39d | ||
|
|
705f142b8d | ||
|
|
e880cc40e9 | ||
|
|
7bb4b7911b | ||
|
|
fadf248892 | ||
|
|
0f2b932e92 | ||
|
|
34bd1b3032 | ||
|
|
8924588511 | ||
|
|
6029d9e5a9 | ||
|
|
19a1ac1f34 | ||
|
|
30648d1cc9 | ||
|
|
842eb5da28 | ||
|
|
05df2ee8a4 | ||
|
|
ab3911ba9e | ||
|
|
013921782b | ||
|
|
c449e5f20a | ||
|
|
6e0de7b42c | ||
|
|
2e42391b86 | ||
|
|
21bd679076 | ||
|
|
fd8b9a3a44 | ||
|
|
5c1cb01936 | ||
|
|
ec4f58741b | ||
|
|
4ce6e5f0c5 | ||
|
|
a8a82e0b21 | ||
|
|
739cb87385 | ||
|
|
8492796a5c | ||
|
|
218b626016 | ||
|
|
f42c57d9a8 | ||
|
|
82a460ec90 | ||
|
|
b4e6ca63b5 | ||
|
|
1d36e68346 | ||
|
|
41c473cf5e | ||
|
|
b2ccbdffc1 | ||
|
|
769cc9879f | ||
|
|
0dbb31afeb | ||
|
|
1bfc3c1eb9 | ||
|
|
8bd178c2e5 | ||
|
|
b58dc083a9 | ||
|
|
65b2a2cb02 | ||
|
|
70363847aa | ||
|
|
1ce749c86a | ||
|
|
08c9b6037d | ||
|
|
57a2bd056c | ||
|
|
234bf99743 | ||
|
|
f93144fee7 | ||
|
|
945d01fd9e | ||
|
|
d99d27dcbe | ||
|
|
908db7c1d2 | ||
|
|
77337271fc | ||
|
|
c1479a2732 | ||
|
|
1f53ca5f4c | ||
|
|
425db289d5 | ||
|
|
d2eed169ae | ||
|
|
61ffe1eac4 | ||
|
|
9e7ad1e2aa | ||
|
|
ae9f183cda | ||
|
|
71bc20c453 | ||
|
|
ff1ae29f97 | ||
|
|
fdf6eecd59 | ||
|
|
651657edfd | ||
|
|
74770ab718 | ||
|
|
6153a2fb10 | ||
|
|
e5650bb549 | ||
|
|
18bb0ea1ea | ||
|
|
6a8f9135de | ||
|
|
704d8a62bf | ||
|
|
3b3ca65562 | ||
|
|
697ff926ce | ||
|
|
e8a9578774 | ||
|
|
0bf3a15886 | ||
|
|
cebc8c78a4 | ||
|
|
290e921920 | ||
|
|
94feb62b08 | ||
|
|
941176cd65 | ||
|
|
251b015210 | ||
|
|
616bad96af | ||
|
|
1b765b9740 | ||
|
|
0ce0c8fcfb | ||
|
|
811ac5ac3a | ||
|
|
901d98b687 | ||
|
|
4503b03b26 | ||
|
|
0e64406b06 | ||
|
|
1220b642eb | ||
|
|
cc03718d3c | ||
|
|
d7cb6146c8 | ||
|
|
4f021fc7dd | ||
|
|
498ebef357 | ||
|
|
cebbaf1664 | ||
|
|
227e067512 | ||
|
|
9d5b458479 | ||
|
|
8dd3622c6d | ||
|
|
564c3a9c96 | ||
|
|
4725e5c52e | ||
|
|
106027fc29 | ||
|
|
d1298fe5e7 | ||
|
|
eabfb370ac | ||
|
|
62164d955c | ||
|
|
a5545593ba | ||
|
|
f68fa667c8 | ||
|
|
7a29b14a20 | ||
|
|
df8346ef4d | ||
|
|
c0f6395cf0 | ||
|
|
50d63e4b0a | ||
|
|
6a417c538f | ||
|
|
7fae32095a | ||
|
|
37a5f8a30b | ||
|
|
f107967fdc | ||
|
|
a793533d1a | ||
|
|
3318d0b4b8 | ||
|
|
81f1cc662f | ||
|
|
28fe2987a0 | ||
|
|
26abf6fd82 | ||
|
|
594b189569 | ||
|
|
7696a38543 | ||
|
|
cde35d1606 | ||
|
|
9fc78cbece | ||
|
|
e4dff41560 | ||
|
|
2f2392f783 | ||
|
|
c3703ded95 | ||
|
|
e5fd010a6c | ||
|
|
ba762bcd49 | ||
|
|
6da8cb00e2 | ||
|
|
eed727c61b | ||
|
|
89e7bacd99 | ||
|
|
ff34955a0d | ||
|
|
a48a0e77eb | ||
|
|
cf6e22e9a6 | ||
|
|
c1202a2ecc | ||
|
|
01ae0daea5 | ||
|
|
45fc45a49e | ||
|
|
7bdc328a71 | ||
|
|
e71744b918 | ||
|
|
40e7a1a5c9 | ||
|
|
7878d9b3f6 | ||
|
|
9e1c4533b8 | ||
|
|
4b8e4dae58 | ||
|
|
0754f2a7af | ||
|
|
8d2d28f1dc | ||
|
|
e9620d9c8c | ||
|
|
de51f87e05 | ||
|
|
1afed48a2c | ||
|
|
c6fd2986d4 | ||
|
|
abceeee92f | ||
|
|
5fc791ac9a | ||
|
|
72884bf85f | ||
|
|
f97d4355be | ||
|
|
e19d1ea95a | ||
|
|
96b71236ed | ||
|
|
3b77a63d5d | ||
|
|
64fa59e24f | ||
|
|
79c9f14aec | ||
|
|
2ef414d05f | ||
|
|
77cf27b82b | ||
|
|
64996422c0 | ||
|
|
f8c9b70379 | ||
|
|
7b802c547d | ||
|
|
73bb3bc595 | ||
|
|
1320d07068 | ||
|
|
0b97ad8384 | ||
|
|
ddaff2d653 | ||
|
|
75a0ca6bd6 | ||
|
|
38944467d3 | ||
|
|
23adfff4fe | ||
|
|
b35adfbd2d | ||
|
|
526eedf98e | ||
|
|
dcedfdacd1 | ||
|
|
ea8d6d7abd | ||
|
|
f145d498a6 | ||
|
|
41c91391fc | ||
|
|
1ddfdc55dd | ||
|
|
a6a1e6ed1a | ||
|
|
f8430723e0 | ||
|
|
bfc68d3151 | ||
|
|
ee8b6d3444 | ||
|
|
2115a766f6 | ||
|
|
d1a5e97a7f | ||
|
|
7372282a72 | ||
|
|
bc0e5c0063 | ||
|
|
045e32b6ec | ||
|
|
fea55a9b87 | ||
|
|
763da10c7b | ||
|
|
1c98ec94da | ||
|
|
28660b4c1a | ||
|
|
fa72e65b59 | ||
|
|
7d5d676eac | ||
|
|
61f2cc45c2 | ||
|
|
c1d92d72e1 | ||
|
|
4f71a9fbde | ||
|
|
4142b8c352 | ||
|
|
d0fdfd44c5 | ||
|
|
f5995337e8 | ||
|
|
1469196d3b | ||
|
|
e9fd3def90 | ||
|
|
a2af490b7b | ||
|
|
4964daa5be | ||
|
|
718086f383 | ||
|
|
339b7588d2 | ||
|
|
0ac5f6a7ca | ||
|
|
1726b82a16 | ||
|
|
03db16d55b | ||
|
|
0c20973c17 | ||
|
|
f65d157786 | ||
|
|
899404f3b1 | ||
|
|
6aab526989 | ||
|
|
c349708eab | ||
|
|
9c3e0a8040 | ||
|
|
7f25183936 | ||
|
|
4b6138e69b | ||
|
|
b6fcbc5fba | ||
|
|
ed870a7237 | ||
|
|
3a06fb8831 | ||
|
|
d47120aeb3 | ||
|
|
9b907dd65a | ||
|
|
28f2fdb6de | ||
|
|
4e1055543c | ||
|
|
8ead29a302 | ||
|
|
fe98fe342a | ||
|
|
554f7f120c | ||
|
|
05ab58cd14 | ||
|
|
eae2d35ca5 | ||
|
|
85002883bd | ||
|
|
22b07bdb30 | ||
|
|
fe338745a3 | ||
|
|
6ce0c61dc0 | ||
|
|
78f4142f4f | ||
|
|
ea1fda5ebc | ||
|
|
67db77b8b3 | ||
|
|
64c4d00693 | ||
|
|
6661d9be1a | ||
|
|
c41f1c960b | ||
|
|
9a62a909bc | ||
|
|
93f4d2b3f1 | ||
|
|
558a133044 | ||
|
|
5037efdea9 | ||
|
|
e9888c8e25 | ||
|
|
3daaff3a42 | ||
|
|
d39f98aeb0 | ||
|
|
30c21b4abd | ||
|
|
cfd19dcdb5 | ||
|
|
b0481b9db1 | ||
|
|
5f39885975 | ||
|
|
9ff8067426 | ||
|
|
162619a426 | ||
|
|
2419d0029a | ||
|
|
b8f2dcea4d | ||
|
|
07d000cc54 | ||
|
|
6470743e51 | ||
|
|
143dce6672 | ||
|
|
96b2d1fd29 | ||
|
|
369177aa80 | ||
|
|
0bf533f753 | ||
|
|
67a6bc4ab5 | ||
|
|
ef397dca7c | ||
|
|
b65a5aceb0 | ||
|
|
4846846a2d | ||
|
|
414c614893 | ||
|
|
a17abae128 | ||
|
|
286edd4f1e | ||
|
|
4914eb29d1 | ||
|
|
825953bbdc | ||
|
|
fd6452749e | ||
|
|
7c2639ddd9 | ||
|
|
3f58028d31 | ||
|
|
94dfececf6 | ||
|
|
74febd5c31 | ||
|
|
857fe0551c | ||
|
|
5341bf59c2 | ||
|
|
43a28f04fa | ||
|
|
080002f8ed | ||
|
|
853a78681e | ||
|
|
9e46cbf7ea | ||
|
|
b60b58b627 | ||
|
|
3e975d8f28 | ||
|
|
a7833cca22 | ||
|
|
08ac3454cc | ||
|
|
3ca847b4e1 | ||
|
|
e7fcc08d26 | ||
|
|
520b470217 | ||
|
|
9a7471b740 | ||
|
|
061d4b4202 | ||
|
|
2ecd53ce09 | ||
|
|
561bb64963 | ||
|
|
d5899a53fd | ||
|
|
b9e680d06c | ||
|
|
0ccc0ac927 | ||
|
|
63eca0feb2 | ||
|
|
ae561d705f | ||
|
|
bc01ae4cbd | ||
|
|
319f43e6d2 | ||
|
|
f19919546d | ||
|
|
85f119e1e6 | ||
|
|
8b875d71d1 | ||
|
|
789c88509c | ||
|
|
bdf54908aa | ||
|
|
7244f09111 | ||
|
|
ca748ad44c | ||
|
|
79cb754358 | ||
|
|
582e450bad | ||
|
|
ae6d83a41e | ||
|
|
3e012122d1 | ||
|
|
a4a2c34831 | ||
|
|
36af9bb027 | ||
|
|
6599002149 | ||
|
|
cbd2bcf102 | ||
|
|
01f3ae1c50 | ||
|
|
eaff4616ad | ||
|
|
ab42549b1e | ||
|
|
02726f0003 | ||
|
|
36bcbca9ac | ||
|
|
4ed837bcfa | ||
|
|
54f3796f91 | ||
|
|
ae66d611f2 | ||
|
|
b22cb69a15 | ||
|
|
40707e3c5b | ||
|
|
acfb2bb8bc | ||
|
|
7f51bccf47 | ||
|
|
bfa5ad483f | ||
|
|
ae89aa55b9 | ||
|
|
63266928a5 | ||
|
|
fc92da4324 | ||
|
|
88dc8c694e | ||
|
|
785a2fd23a | ||
|
|
4328a6442b | ||
|
|
6496b1cf1f | ||
|
|
c0caedc373 | ||
|
|
524cf237b8 | ||
|
|
e4cb004460 | ||
|
|
71418639d3 | ||
|
|
f2ec226521 | ||
|
|
0931d4b7ff | ||
|
|
ccadebabba | ||
|
|
18771a39cf | ||
|
|
baf7da9d4a | ||
|
|
c0b35fa429 | ||
|
|
f31b0a3361 | ||
|
|
d28ea57083 | ||
|
|
8e26c5c066 | ||
|
|
5c1074aa7d | ||
|
|
bd72091150 | ||
|
|
faf3d7902a | ||
|
|
63f1ded167 | ||
|
|
3c30ab2807 | ||
|
|
310fa10035 | ||
|
|
bc847e8cc2 | ||
|
|
b82952bdba | ||
|
|
570a8dbf22 | ||
|
|
c68ea19e8d | ||
|
|
0c91d01866 | ||
|
|
e34cef312f | ||
|
|
d670c831c2 | ||
|
|
d1a16f24cf | ||
|
|
2d872ce3fa | ||
|
|
e3c58eff1c | ||
|
|
99de37ff94 | ||
|
|
5e3b9e3578 | ||
|
|
ad795c9f0c | ||
|
|
d6d479f94c | ||
|
|
6415528f96 | ||
|
|
4af1f2963c | ||
|
|
ba0322f353 | ||
|
|
1a705523c0 | ||
|
|
87b9e5467d | ||
|
|
625dac8d8c | ||
|
|
134e49cc8e | ||
|
|
cab426ffa3 | ||
|
|
3edf2bb417 | ||
|
|
9ebfbd150e | ||
|
|
e278742c5e | ||
|
|
ef08163c38 | ||
|
|
2e82268a67 | ||
|
|
00bdfad5f6 | ||
|
|
efd8dabd91 | ||
|
|
e4f443a57a | ||
|
|
d4df20a913 | ||
|
|
db495668ae | ||
|
|
996c653490 | ||
|
|
4acad897cf | ||
|
|
b37fffc2c5 | ||
|
|
a99450ab72 | ||
|
|
7776d6228e | ||
|
|
5415256a52 | ||
|
|
836e43db60 | ||
|
|
9c94538fb7 | ||
|
|
53eedd3ba4 | ||
|
|
42134bb49e | ||
|
|
0488bf54d3 | ||
|
|
da19aee307 | ||
|
|
d2c0b4905a | ||
|
|
153f07fdfb | ||
|
|
7e610aece5 | ||
|
|
16aedc0ef6 | ||
|
|
6596e585fe | ||
|
|
f98eda4d52 | ||
|
|
23717510c2 | ||
|
|
c51564ab5b | ||
|
|
1eb14c7743 | ||
|
|
56e9f97294 | ||
|
|
774faf4e85 | ||
|
|
d0711821f3 | ||
|
|
7024b45197 | ||
|
|
5fce673a56 | ||
|
|
29c9d3d5f4 | ||
|
|
708f1c336e | ||
|
|
dc4ac0b96f | ||
|
|
296748d32e | ||
|
|
ad408f269c | ||
|
|
e57754868f | ||
|
|
0c7e7f4998 | ||
|
|
136657bcc1 | ||
|
|
dc16820e02 | ||
|
|
4b85608e30 | ||
|
|
8ab77f4153 | ||
|
|
472585a7e8 | ||
|
|
8f42a8be0c | ||
|
|
c4b707bca2 | ||
|
|
9e35fe8c37 | ||
|
|
385904d75a | ||
|
|
b1e0b7728b | ||
|
|
eb255e6870 | ||
|
|
72e4c8f523 | ||
|
|
835d2e4b5f | ||
|
|
94b42a79d7 | ||
|
|
e40da2341c | ||
|
|
7aa72c56b6 | ||
|
|
5784c14ab7 | ||
|
|
3028bbb95b | ||
|
|
dfdc817db3 | ||
|
|
f4856a33c9 | ||
|
|
371af9c241 | ||
|
|
88a9bae160 | ||
|
|
ecd5c5f920 | ||
|
|
91d1186cbb | ||
|
|
467b3cf4c1 | ||
|
|
c007d8219e | ||
|
|
b318e82356 | ||
|
|
98fa00db12 | ||
|
|
69fca4f3cb | ||
|
|
f6ed45fc20 | ||
|
|
e81ff1e833 | ||
|
|
43b6ca0d14 | ||
|
|
34492ce480 | ||
|
|
163c38e175 | ||
|
|
11be390110 | ||
|
|
ea26a9f543 | ||
|
|
f9e1b0cd97 | ||
|
|
805564dcf2 | ||
|
|
76fb792544 | ||
|
|
ff35014eff | ||
|
|
de868d24c1 | ||
|
|
318a730c45 | ||
|
|
9017c51e7f | ||
|
|
bdb66aced7 | ||
|
|
ab83444cc3 | ||
|
|
64a6da3e45 | ||
|
|
dd9909a574 | ||
|
|
59c58f230e | ||
|
|
f79069f5b3 | ||
|
|
f5e0ba266e | ||
|
|
7361f29527 | ||
|
|
1d009a37df | ||
|
|
0fb208e63c | ||
|
|
dade01be29 | ||
|
|
45057667f1 | ||
|
|
4ab4e33450 | ||
|
|
0cfca69b42 | ||
|
|
1278a57afe | ||
|
|
071c0b5536 | ||
|
|
735fa8b652 | ||
|
|
0b37f98e16 | ||
|
|
5f8809e425 | ||
|
|
f143e269f4 | ||
|
|
1d1aec9631 | ||
|
|
817180bd55 | ||
|
|
60bd878f0a | ||
|
|
bbd8e645a2 | ||
|
|
97d659c9fd | ||
|
|
7b8227039f | ||
|
|
363487c97b | ||
|
|
f6bc662194 | ||
|
|
7bd9e53ae6 | ||
|
|
267744a568 | ||
|
|
8e67f4c4e6 | ||
|
|
1c59cff832 | ||
|
|
bc2819cab2 | ||
|
|
7ece67727d | ||
|
|
303351de6d | ||
|
|
831003156c | ||
|
|
54de4afd75 | ||
|
|
c01c487c62 | ||
|
|
2f6e931921 | ||
|
|
50dc2d8112 | ||
|
|
f4d7530587 | ||
|
|
185c0bd587 | ||
|
|
3c0090c0df | ||
|
|
6199252cda | ||
|
|
c08720bfba | ||
|
|
4882bda667 | ||
|
|
a817419fe4 | ||
|
|
37bf9a666a | ||
|
|
cd6d204a9d | ||
|
|
9baae3a701 | ||
|
|
92f504f98d | ||
|
|
75816150ec | ||
|
|
4681392bac | ||
|
|
17830c5894 | ||
|
|
edbcf7c039 | ||
|
|
96bee29e35 | ||
|
|
82ea534997 | ||
|
|
a4fe2a7c75 | ||
|
|
4ef9c7675a | ||
|
|
f69123050b | ||
|
|
a5a9c9f799 | ||
|
|
cce210f676 | ||
|
|
a8e493122e | ||
|
|
e00d7ee5be | ||
|
|
ad6b087353 | ||
|
|
3715e39e5d | ||
|
|
423109e64c | ||
|
|
71b7d92597 | ||
|
|
e034f8a2a3 | ||
|
|
47381bde3b | ||
|
|
c578efb32b | ||
|
|
5aa2679be7 | ||
|
|
d4e7faca21 | ||
|
|
4ffba76bb3 | ||
|
|
f4a08f7fb3 | ||
|
|
f6d9bcc9bb | ||
|
|
a7daf8e652 | ||
|
|
4771b4951d | ||
|
|
383698186f | ||
|
|
fb4c3ab4fb | ||
|
|
96ad0c8638 | ||
|
|
7985d746f9 | ||
|
|
a45f287ae1 | ||
|
|
7d9dd352cf | ||
|
|
a09660dc85 | ||
|
|
d78e5e7329 | ||
|
|
e61b2f99c1 | ||
|
|
d386f02893 | ||
|
|
5a3218e535 | ||
|
|
02653573d2 | ||
|
|
5c66664aef | ||
|
|
21b7a272c4 | ||
|
|
17a47b3335 | ||
|
|
89bbff18e5 | ||
|
|
fc95d00b2f | ||
|
|
3f4f844eeb | ||
|
|
6875ead7cf | ||
|
|
5388e8b124 | ||
|
|
02b14090c2 | ||
|
|
56a744599f | ||
|
|
9fa4b72a47 | ||
|
|
3e78b29cae | ||
|
|
d63c160bd6 | ||
|
|
2a6c0fc17f | ||
|
|
1340da7b54 | ||
|
|
89af509d10 | ||
|
|
89b8b792c1 | ||
|
|
a19491dbd2 | ||
|
|
f5c6e3973c | ||
|
|
e7beaac6f5 | ||
|
|
84684e53ed | ||
|
|
4c0e36a5e9 | ||
|
|
8ed83250d7 | ||
|
|
360a8918dd | ||
|
|
4d43a67419 | ||
|
|
33e80dae7f | ||
|
|
4f53619a15 | ||
|
|
3fb5b7a3bd | ||
|
|
bcd3e1af2f | ||
|
|
cd45ae3d0f | ||
|
|
e5dc58e710 | ||
|
|
cef7bb0619 | ||
|
|
a006b828a6 | ||
|
|
052bb24c7f | ||
|
|
3c630c0d90 | ||
|
|
d0810b0156 | ||
|
|
ffd3cdf519 | ||
|
|
ac2e822ea1 | ||
|
|
0cd2972d60 | ||
|
|
821ff68f54 | ||
|
|
e8eb4d233b | ||
|
|
414d1ff9e2 | ||
|
|
7d92ce061d | ||
|
|
a1e2a8bec6 | ||
|
|
f34a9b6a71 | ||
|
|
def870953a | ||
|
|
f2c6330505 | ||
|
|
077ffa5231 | ||
|
|
0802edf582 | ||
|
|
8bfa56648d | ||
|
|
4d20f1283f | ||
|
|
0a38e542c1 | ||
|
|
96f551a287 | ||
|
|
af05e4b2de | ||
|
|
4415d95c50 | ||
|
|
1cdf210e4f | ||
|
|
b0ad5ce8e2 | ||
|
|
b2447393e4 | ||
|
|
63ce6eee5c | ||
|
|
858b2d7439 | ||
|
|
6103e59c19 | ||
|
|
a106c0dbdc | ||
|
|
f37a3a84fa | ||
|
|
13cf5425db | ||
|
|
fb6ac9a1a6 | ||
|
|
033ae0dcae | ||
|
|
e261cc9e8f | ||
|
|
2ec160454a | ||
|
|
51d308c666 | ||
|
|
b3c439fb16 | ||
|
|
15ae9ca8a2 | ||
|
|
c3cd89705d | ||
|
|
1bd25925cb | ||
|
|
17e17ceb59 | ||
|
|
8da4a4276f | ||
|
|
3bb1cfdf36 | ||
|
|
e627f023a0 | ||
|
|
bd5cdbf1a4 | ||
|
|
34e57da1ca | ||
|
|
de8996ac3b | ||
|
|
33264d0fb6 | ||
|
|
cc65bda2cc | ||
|
|
4b2b65df9f | ||
|
|
4800f1df97 | ||
|
|
9850df35ae | ||
|
|
7dfa3442fe | ||
|
|
58bc6f3a18 | ||
|
|
a75c31143a | ||
|
|
15b375827e | ||
|
|
60578e0950 | ||
|
|
09d7654f46 | ||
|
|
28234f6e54 | ||
|
|
63fe487d93 | ||
|
|
d2b2c7c09e | ||
|
|
c930a92b72 | ||
|
|
cffd40c5d6 | ||
|
|
fb78854e9b | ||
|
|
461f53945d | ||
|
|
6c3ca42e0e | ||
|
|
0f4c83eb98 | ||
|
|
880aa870a0 | ||
|
|
cf136f1935 | ||
|
|
ca26de72c9 | ||
|
|
af574e58fe | ||
|
|
ed81aa8aae | ||
|
|
9ab64658ba | ||
|
|
3504a66eda | ||
|
|
3f0ac7adce | ||
|
|
0076339914 | ||
|
|
2176f4d697 | ||
|
|
843ffba567 |
2
.gitattributes
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
*.cpp diff=cpp
|
||||
*.h diff=cpp
|
||||
6
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
*~
|
||||
map/*
|
||||
world/*
|
||||
CMakeFiles/*
|
||||
@@ -9,6 +10,7 @@ src/jthread/CMakeFiles/*
|
||||
src/jthread/Makefile
|
||||
src/jthread/cmake_config.h
|
||||
src/jthread/cmake_install.cmake
|
||||
.*.swp
|
||||
minetest.conf
|
||||
bin/
|
||||
CMakeCache.txt
|
||||
@@ -20,3 +22,7 @@ src/jthread/libjthread.a
|
||||
debug.txt
|
||||
bin/debug.txt
|
||||
minetestmapper/map.png
|
||||
locale/
|
||||
src/lua/build/
|
||||
src/lua/CMakeFiles/
|
||||
*bak*
|
||||
|
||||
29
.hgtags
@@ -1,28 +1 @@
|
||||
c37bcfd89dd627fdb131ae3f77fcaab02721bf76 working
|
||||
69547bd6be420eb40f55524fd2131cbbaa2e0e29 110107195706-exp
|
||||
e3c3c8e27bbc8c9b61710517a78944deb1c61696 110211211322
|
||||
23880c78e40c50ad54fcd8844510f7a423b37f2a 110212200513
|
||||
20c49c98c92a62df457b773c562df41d4167492b 110214175330
|
||||
10be2b71f965585af90af96903e83b4ddff52bf9 20110424_0
|
||||
9b05d4bfee9312aef4182fa6f63b4237368cec34 0.2.20110529_0
|
||||
6fa0a8b40406aa567f8fa84b5e2045a7e3762c1d 0.2.20110529_1
|
||||
cf6dd618ef0b7514c81ae87749733b5a328fc763 0.2.20110529_2
|
||||
96efc17b4cd92aacbe947b520a6ba91727d42f03 0.2.20110602_0
|
||||
0000000000000000000000000000000000000000 0.2.20110602_0
|
||||
6f17cd3f6c5481e6abc906fc441980c764632cbc 0.2.20110602_0
|
||||
dd08a9b5cb84d55b7576bb3fde3068dd263bc3bc 0.2.20110618_0_dev
|
||||
25aa2021937f7a8b36808390983cebbc16ae6965 0.2.20110704_0
|
||||
25aa2021937f7a8b36808390983cebbc16ae6965 0.2.20110704_0
|
||||
0000000000000000000000000000000000000000 0.2.20110704_0
|
||||
0000000000000000000000000000000000000000 0.2.20110704_0
|
||||
65263ec55caf526e3f3e0bdc6657ce42daee46bc 0.2.20110704_0
|
||||
06c62112b503e746d5d8cc40f951974447d590b7 0.2.20110731_0
|
||||
705a7e95b8710c8cada5524d8c7bb658f4b710d9 0.2.20110731_1
|
||||
4a6cf9491306988b24c79438ee6398885c432fce 0.2.20110731_2
|
||||
4a6cf9491306988b24c79438ee6398885c432fce 0.2.20110731_2
|
||||
0000000000000000000000000000000000000000 0.2.20110731_2
|
||||
0000000000000000000000000000000000000000 0.2.20110731_2
|
||||
8ad16fbce9a4da45b2552ad8b400a5a127722acc 0.2.20110731_2
|
||||
c87e28deaabf4a776c261b3a09b6bf5ea3e04abf 0.2.20110731_3
|
||||
c87e28deaabf4a776c261b3a09b6bf5ea3e04abf 0.2.20110731_3
|
||||
0000000000000000000000000000000000000000 0.2.20110731_3
|
||||
a519d683251105654d2a146ae7b91d3850b6504c 0.2.20110731_3
|
||||
|
||||
@@ -7,11 +7,14 @@ endif(${CMAKE_VERSION} STREQUAL "2.8.2")
|
||||
# This can be read from ${PROJECT_NAME} after project() is called
|
||||
project(minetest)
|
||||
|
||||
# Also remember to set PROTOCOL_VERSION in clientserver.h when releasing
|
||||
set(VERSION_MAJOR 0)
|
||||
set(VERSION_MINOR 2)
|
||||
set(VERSION_PATCH 20110731_3)
|
||||
set(VERSION_MINOR 4)
|
||||
set(VERSION_PATCH dev-20120318)
|
||||
set(VERSION_STRING "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
|
||||
|
||||
MESSAGE(STATUS "*** Will build version ${VERSION_STRING} ***")
|
||||
|
||||
# Configuration options
|
||||
|
||||
if(WIN32)
|
||||
@@ -46,26 +49,44 @@ find_package(Irrlicht)
|
||||
#
|
||||
|
||||
if(WIN32)
|
||||
set(DATADIR "data")
|
||||
set(SHAREDIR "share")
|
||||
set(BINDIR "bin")
|
||||
set(DOCDIR "doc")
|
||||
set(EXAMPLE_CONF_DIR ".")
|
||||
set(EXAMPLE_CONF_DIR "user")
|
||||
elseif(APPLE)
|
||||
# random placeholders
|
||||
set(DATADIR "share/${PROJECT_NAME}")
|
||||
set(SHAREDIR "share/${PROJECT_NAME}")
|
||||
set(BINDIR "bin")
|
||||
set(DOCDIR "share/doc/${PROJECT_NAME}")
|
||||
set(EXAMPLE_CONF_DIR ".")
|
||||
set(EXAMPLE_CONF_DIR ${DOCDIR})
|
||||
elseif(UNIX) # Linux, BSD etc
|
||||
set(DATADIR "share/${PROJECT_NAME}")
|
||||
set(BINDIR "bin")
|
||||
set(DOCDIR "share/doc/${PROJECT_NAME}")
|
||||
set(EXAMPLE_CONF_DIR "share/doc/${PROJECT_NAME}")
|
||||
if(RUN_IN_PLACE)
|
||||
set(SHAREDIR "share")
|
||||
set(BINDIR "bin")
|
||||
set(DOCDIR "doc")
|
||||
set(MANDIR "share/unix/man")
|
||||
set(EXAMPLE_CONF_DIR ${DOCDIR})
|
||||
set(XDG_APPS_DIR "share/unix/applications")
|
||||
set(ICONDIR "share/unix/icons")
|
||||
else()
|
||||
set(SHAREDIR "share/${PROJECT_NAME}")
|
||||
set(BINDIR "bin")
|
||||
set(DOCDIR "share/doc/${PROJECT_NAME}")
|
||||
set(MANDIR "share/man")
|
||||
set(EXAMPLE_CONF_DIR ${DOCDIR})
|
||||
set(XDG_APPS_DIR "share/applications")
|
||||
set(ICONDIR "share/icons")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(FILES "doc/README.txt" DESTINATION "${DOCDIR}")
|
||||
install(FILES "doc/changelog.txt" DESTINATION "${DOCDIR}")
|
||||
install(FILES "minetest.conf.example" DESTINATION "${DOCDIR}")
|
||||
install(FILES "README.txt" DESTINATION "${DOCDIR}")
|
||||
install(FILES "minetest.conf.example" DESTINATION "${EXAMPLE_CONF_DIR}")
|
||||
|
||||
if(UNIX)
|
||||
install(FILES "doc/minetest.6" "doc/minetestserver.6" DESTINATION "${MANDIR}/man6")
|
||||
install(FILES "misc/minetest.desktop" DESTINATION "${XDG_APPS_DIR}")
|
||||
install(FILES "minetest-icon.svg" DESTINATION "${ICONDIR}/hicolor/scalable/apps")
|
||||
endif()
|
||||
|
||||
#
|
||||
# Subdirectories
|
||||
|
||||
82
README.txt
@@ -26,11 +26,11 @@ Map directory:
|
||||
- Map is stored in a directory, which can be removed to generate a new map.
|
||||
- There is a command-line option for it: --map-dir
|
||||
- For a RUN_IN_PLACE build, it is located in:
|
||||
../map
|
||||
../world
|
||||
- Otherwise something like this:
|
||||
Windows: C:\Documents and Settings\user\Application Data\minetest\map
|
||||
Linux: ~/.minetest/map
|
||||
OS X: ~/Library/Application Support/minetest/map
|
||||
Windows: C:\Documents and Settings\user\Application Data\minetest\world
|
||||
Linux: ~/.minetest/world
|
||||
OS X: ~/Library/Application Support/minetest/world
|
||||
|
||||
Configuration file:
|
||||
-------------------
|
||||
@@ -54,12 +54,12 @@ 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
|
||||
$ apt-get install build-essential libirrlicht-dev cmake libbz2-dev libpng12-dev libjpeg8-dev libxxf86vm-dev libgl1-mesa-dev libsqlite3-dev
|
||||
|
||||
Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
|
||||
$ wget https://bitbucket.org/celeron55/minetest/get/tip.tar.gz
|
||||
$ tar xf tip.tar.gz
|
||||
$ cd minetest
|
||||
$ wget https://github.com/celeron55/minetest/tarball/master -O master.tar.gz
|
||||
$ tar xf master.tar.gz
|
||||
$ cd celeron55-minetest-286edd4 (or similar)
|
||||
|
||||
Build a version that runs directly from the source directory:
|
||||
$ cmake . -DRUN_IN_PLACE=1
|
||||
@@ -73,7 +73,7 @@ $ ./minetest
|
||||
- If you want to install it system-wide (or are making a distribution package), you will want to use -DRUN_IN_PLACE=0
|
||||
- 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>
|
||||
- Note that the Debug build is considerably slower
|
||||
- Debug build is slower, but gives much more useful output in a debugger
|
||||
|
||||
Compiling on Windows:
|
||||
---------------------
|
||||
@@ -90,16 +90,18 @@ 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
|
||||
* gettext bibrary and tools:
|
||||
* Optional: gettext bibrary 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://celeron.55.lt/~celeron55/minetest/download
|
||||
- Steps:
|
||||
- Select a directory called DIR hereafter in which you will operate.
|
||||
- Make sure you have CMake and a compiler installed.
|
||||
- Download all the other stuff to DIR and extract them into there. All those
|
||||
packages contain a nice base directory in them, which should end up being
|
||||
the direct subdirectories of DIR.
|
||||
- Download all the other stuff to DIR and extract them into there.
|
||||
("extract here", not "extract to packagename/")
|
||||
- All those packages contain a nice base directory in them, which
|
||||
should end up being the direct subdirectories of DIR.
|
||||
- You will end up with a directory structure like this (+=dir, -=file):
|
||||
-----------------
|
||||
+ DIR
|
||||
@@ -119,7 +121,7 @@ Compiling on Windows:
|
||||
+ lib
|
||||
+ include
|
||||
...
|
||||
+ gettext
|
||||
+ gettext (optional)
|
||||
+bin
|
||||
+include
|
||||
+lib
|
||||
@@ -157,11 +159,14 @@ Compiling on Windows:
|
||||
GETTEXT_MSGFMT DIR/gettext/bin/msgfmt
|
||||
-----------------
|
||||
- Hit "Configure"
|
||||
- Hit "Configure" once again 8)
|
||||
- If something is still coloured red, you have a problem.
|
||||
- Hit "Generate"
|
||||
If using MSVC:
|
||||
- Open the generated minetest.sln
|
||||
- The project defaults to the "Debug" configuration. Make very sure to
|
||||
select "Release", unless you want to debug some stuff (it's slower)
|
||||
select "Release", unless you want to debug some stuff (it's slower
|
||||
and might not even work at all)
|
||||
- Build the ALL_BUILD project
|
||||
- Build the INSTALL project
|
||||
- You should now have a working game with the executable in
|
||||
@@ -174,8 +179,33 @@ Compiling on Windows:
|
||||
- You should now have a working game with the executable in
|
||||
DIR/minetest/bin/minetest.exe
|
||||
|
||||
License of Minetest-c55
|
||||
-----------------------
|
||||
Windows releases of minetest are built using a bat script like this:
|
||||
--------------------------------------------------------------------
|
||||
|
||||
set installpath="C:\tmp\minetest_install"
|
||||
set irrlichtpath="C:\tmp\irrlicht-1.7.2"
|
||||
|
||||
set sourcedir=%CD%
|
||||
set builddir=%sourcedir%\bvc10
|
||||
mkdir %builddir%
|
||||
pushd %builddir%
|
||||
cmake %sourcedir% -G "Visual Studio 10" -DIRRLICHT_SOURCE_DIR=%irrlichtpath% -DRUN_IN_PLACE=1 -DCMAKE_INSTALL_PREFIX=%installpath%
|
||||
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" ALL_BUILD.vcxproj /p:Configuration=Release
|
||||
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" INSTALL.vcxproj /p:Configuration=Release
|
||||
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" PACKAGE.vcxproj /p:Configuration=Release
|
||||
popd
|
||||
|
||||
License of Minetest-c55 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)
|
||||
http://creativecommons.org/licenses/by-sa/3.0/
|
||||
|
||||
License of Minetest-c55 source code
|
||||
-----------------------------------
|
||||
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
@@ -247,3 +277,21 @@ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
|
||||
|
||||
Fonts
|
||||
---------------
|
||||
|
||||
DejaVu Sans Mono:
|
||||
|
||||
Fonts are (c) Bitstream (see below). DejaVu changes are in public domain.
|
||||
Glyphs imported from Arev fonts are (c) Tavmjong Bah (see below)
|
||||
|
||||
Bitstream Vera Fonts Copyright:
|
||||
|
||||
Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. Bitstream Vera is
|
||||
a trademark of Bitstream, Inc.
|
||||
|
||||
Arev Fonts Copyright:
|
||||
|
||||
Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
|
||||
|
||||
|
||||
|
||||
@@ -16,21 +16,6 @@ FIND_PROGRAM(GETTEXT_MSGFMT
|
||||
PATHS "${CUSTOM_GETTEXT_PATH}/bin"
|
||||
DOC "path to msgfmt")
|
||||
|
||||
FIND_PROGRAM(GETTEXT_MSGMERGE
|
||||
NAMES msgmerge
|
||||
PATHS "${CUSTOM_GETTEXT_PATH}/bin"
|
||||
DOC "path to msgmerge")
|
||||
|
||||
FIND_PROGRAM(GETTEXT_MSGEN
|
||||
NAMES msgen
|
||||
PATHS "${CUSTOM_GETTEXT_PATH}/bin"
|
||||
DOC "path to msgen")
|
||||
|
||||
FIND_PROGRAM(GETTEXT_EXTRACT
|
||||
NAMES xgettext
|
||||
PATHS "${CUSTOM_GETTEXT_PATH}/bin"
|
||||
DOC "path to xgettext")
|
||||
|
||||
# modern Linux, as well as Mac, seem to not need require special linking
|
||||
# they do not because gettext is part of glibc
|
||||
# TODO check the requirements on other BSDs and older Linux
|
||||
@@ -56,7 +41,6 @@ IF (WIN32)
|
||||
DOC "gettext *iconv*.lib")
|
||||
ENDIF(WIN32)
|
||||
|
||||
|
||||
IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT)
|
||||
IF (WIN32)
|
||||
# in the Win32 case check also for the extra linking requirements
|
||||
@@ -64,6 +48,10 @@ IF(GETTEXT_INCLUDE_DIR AND GETTEXT_MSGFMT)
|
||||
SET(GETTEXT_FOUND TRUE)
|
||||
ENDIF()
|
||||
ELSE(WIN32)
|
||||
# *BSD variants require special linkage as they don't use glibc
|
||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
|
||||
SET(GETTEXT_LIBRARY "intl")
|
||||
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "BSD")
|
||||
SET(GETTEXT_FOUND TRUE)
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
||||
@@ -71,10 +59,14 @@ ENDIF()
|
||||
IF(GETTEXT_FOUND)
|
||||
SET(GETTEXT_PO_PATH ${CMAKE_SOURCE_DIR}/po)
|
||||
SET(GETTEXT_MO_BUILD_PATH ${CMAKE_BINARY_DIR}/locale/<locale>/LC_MESSAGES)
|
||||
SET(GETTEXT_MO_DEST_PATH locale/<locale>/LC_MESSAGES)
|
||||
SET(GETTEXT_MO_DEST_PATH ${DATADIR}/../locale/<locale>/LC_MESSAGES)
|
||||
FILE(GLOB GETTEXT_AVAILABLE_LOCALES RELATIVE ${GETTEXT_PO_PATH} "${GETTEXT_PO_PATH}/*")
|
||||
LIST(REMOVE_ITEM GETTEXT_AVAILABLE_LOCALES minetest.pot)
|
||||
MACRO(SET_MO_PATHS _buildvar _destvar _locale)
|
||||
STRING(REPLACE "<locale>" ${_locale} ${_buildvar} ${GETTEXT_MO_BUILD_PATH})
|
||||
STRING(REPLACE "<locale>" ${_locale} ${_destvar} ${GETTEXT_MO_DEST_PATH})
|
||||
ENDMACRO(SET_MO_PATHS)
|
||||
ELSE()
|
||||
SET(GETTEXT_INCLUDE_DIR "")
|
||||
SET(GETTEXT_LIBRARY "")
|
||||
ENDIF()
|
||||
|
||||
BIN
data/glass.png
|
Before Width: | Height: | Size: 1.3 KiB |
BIN
data/skybox1.png
|
Before Width: | Height: | Size: 236 B |
|
Before Width: | Height: | Size: 598 B |
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
data/skybox2.png
|
Before Width: | Height: | Size: 231 B |
|
Before Width: | Height: | Size: 199 B |
|
Before Width: | Height: | Size: 2.5 KiB |
BIN
data/skybox3.png
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 209 B |
|
Before Width: | Height: | Size: 193 B |
|
Before Width: | Height: | Size: 190 B |
238
doc/README.txt
@@ -1,238 +0,0 @@
|
||||
Minetest-c55
|
||||
---------------
|
||||
An InfiniMiner/Minecraft inspired game.
|
||||
Copyright (c) 2010-2011 Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
Further documentation:
|
||||
----------------------
|
||||
- Website: http://celeron.55.lt/~celeron55/minetest/
|
||||
- Wiki: http://celeron.55.lt/~celeron55/minetest/wiki/
|
||||
- Forum: http://celeron.55.lt/~celeron55/minetest/forum/
|
||||
|
||||
This is a development version:
|
||||
------------------------------
|
||||
- Don't expect it to work as well as a finished game will.
|
||||
- Please report any bugs to me. That way I can fix them to the next release.
|
||||
- debug.txt is useful when the game crashes.
|
||||
|
||||
Controls:
|
||||
---------
|
||||
- See the in-game pause menu
|
||||
- Settable in the configuration file, see the section below.
|
||||
|
||||
Map directory:
|
||||
--------------
|
||||
- Map is stored in a directory, which can be removed to generate a new map.
|
||||
- There is a command-line option for it: --map-dir
|
||||
- For a RUN_IN_PLACE build, it is located in:
|
||||
../map
|
||||
- Otherwise something like this:
|
||||
Windows: C:\Documents and Settings\user\Application Data\minetest\map
|
||||
Linux: ~/.minetest/map
|
||||
OS X: ~/Library/Application Support/minetest/map
|
||||
|
||||
Configuration file:
|
||||
-------------------
|
||||
- An optional configuration file can be used. See minetest.conf.example.
|
||||
- Path to file can be passed as a parameter to the executable:
|
||||
--config <path-to-file>
|
||||
- Defaults:
|
||||
- If built with -DRUN_IN_PLACE=1:
|
||||
../minetest.conf
|
||||
../../minetest.conf
|
||||
- Otherwise something like this:
|
||||
Windows: C:\Documents and Settings\user\Application Data\minetest\minetest.conf
|
||||
Linux: ~/.minetest/minetest.conf
|
||||
OS X: ~/Library/Application Support/minetest.conf
|
||||
|
||||
Command-line options:
|
||||
---------------------
|
||||
- Use --help
|
||||
|
||||
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
|
||||
|
||||
Download source, extract (this is the URL to the latest of source repository, which might not work at all times):
|
||||
$ wget https://bitbucket.org/celeron55/minetest/get/tip.tar.gz
|
||||
$ tar xf tip.tar.gz
|
||||
$ cd minetest
|
||||
|
||||
Build a version that runs directly from the source directory:
|
||||
$ cmake . -DRUN_IN_PLACE=1
|
||||
$ make -j2
|
||||
|
||||
Run it:
|
||||
$ cd bin
|
||||
$ ./minetest
|
||||
|
||||
- Use cmake . -LH to see all CMake options and their current state
|
||||
- If you want to install it system-wide (or are making a distribution package), you will want to use -DRUN_IN_PLACE=0
|
||||
- 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>
|
||||
- Note that the Debug build is considerably slower
|
||||
|
||||
Compiling on Windows:
|
||||
---------------------
|
||||
|
||||
- You need:
|
||||
* CMake:
|
||||
http://www.cmake.org/cmake/resources/software.html
|
||||
* MinGW or Visual Studio
|
||||
http://www.mingw.org/
|
||||
http://msdn.microsoft.com/en-us/vstudio/default
|
||||
* Irrlicht SDK 1.7:
|
||||
http://irrlicht.sourceforge.net/downloads.html
|
||||
* Zlib headers (zlib125.zip)
|
||||
http://www.winimage.com/zLibDll/index.html
|
||||
* Zlib library (zlibwapi.lib and zlibwapi.dll from zlib125dll.zip):
|
||||
http://www.winimage.com/zLibDll/index.html
|
||||
* And, of course, Minetest-c55:
|
||||
http://celeron.55.lt/~celeron55/minetest/download
|
||||
- Steps:
|
||||
- Select a directory called DIR hereafter in which you will operate.
|
||||
- Make sure you have CMake and a compiler installed.
|
||||
- Download all the other stuff to DIR and extract them into there. All those
|
||||
packages contain a nice base directory in them, which should end up being
|
||||
the direct subdirectories of DIR.
|
||||
- You will end up with a directory structure like this (+=dir, -=file):
|
||||
-----------------
|
||||
+ DIR
|
||||
- zlib-1.2.5.tar.gz
|
||||
- zlib125dll.zip
|
||||
- irrlicht-1.7.1.zip
|
||||
- 110214175330.zip (or whatever, this is the minetest source)
|
||||
+ zlib-1.2.5
|
||||
- zlib.h
|
||||
+ win32
|
||||
...
|
||||
+ zlib125dll
|
||||
- readme.txt
|
||||
+ dll32
|
||||
...
|
||||
+ irrlicht-1.7.1
|
||||
+ lib
|
||||
+ include
|
||||
...
|
||||
+ minetest
|
||||
+ src
|
||||
+ doc
|
||||
- CMakeLists.txt
|
||||
...
|
||||
-----------------
|
||||
- Start up the CMake GUI
|
||||
- Select "Browse Source..." and select DIR/minetest
|
||||
- Now, if using MSVC:
|
||||
- Select "Browse Build..." and select DIR/minetest-build
|
||||
- Else if using MinGW:
|
||||
- Select "Browse Build..." and select DIR/minetest
|
||||
- Select "Configure"
|
||||
- Select your compiler
|
||||
- It will warn about missing stuff, ignore that at this point. (later don't)
|
||||
- Make sure the configuration is as follows
|
||||
(note that the versions may differ for you):
|
||||
-----------------
|
||||
BUILD_CLIENT [X]
|
||||
BUILD_SERVER [ ]
|
||||
CMAKE_BUILD_TYPE Release
|
||||
CMAKE_INSTALL_PREFIX DIR/minetest-install
|
||||
IRRLICHT_SOURCE_DIR DIR/irrlicht-1.7.1
|
||||
RUN_IN_PLACE [X]
|
||||
WARN_ALL [ ]
|
||||
ZLIB_DLL DIR/zlib125dll/dll32/zlibwapi.dll
|
||||
ZLIB_INCLUDE_DIR DIR/zlib-1.2.5
|
||||
ZLIB_LIBRARIES DIR/zlib125dll/dll32/zlibwapi.lib
|
||||
-----------------
|
||||
- Hit "Configure"
|
||||
- Hit "Generate"
|
||||
If using MSVC:
|
||||
- Open the generated minetest.sln
|
||||
- The project defaults to the "Debug" configuration. Make very sure to
|
||||
select "Release", unless you want to debug some stuff (it's slower)
|
||||
- Build the ALL_BUILD project
|
||||
- Build the INSTALL project
|
||||
- You should now have a working game with the executable in
|
||||
DIR/minetest-install/bin/minetest.exe
|
||||
- Additionally you may create a zip package by building the PACKAGE
|
||||
project.
|
||||
If using MinGW:
|
||||
- Using the command line, browse to the build directory and run 'make'
|
||||
(or mingw32-make or whatever it happens to be)
|
||||
- You should now have a working game with the executable in
|
||||
DIR/minetest/bin/minetest.exe
|
||||
|
||||
License of Minetest-c55
|
||||
-----------------------
|
||||
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU 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.
|
||||
|
||||
Irrlicht
|
||||
---------------
|
||||
|
||||
This program uses the Irrlicht Engine. http://irrlicht.sourceforge.net/
|
||||
|
||||
The Irrlicht Engine License
|
||||
|
||||
Copyright © 2002-2005 Nikolaus Gebhardt
|
||||
|
||||
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.
|
||||
|
||||
|
||||
JThread
|
||||
---------------
|
||||
|
||||
This program uses the JThread library. License for JThread follows:
|
||||
|
||||
Copyright (c) 2000-2006 Jori Liesenborgs (jori.liesenborgs@gmail.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a
|
||||
copy of this software and associated documentation files (the "Software"),
|
||||
to deal in the Software without restriction, including without limitation
|
||||
the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included
|
||||
in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
IN THE SOFTWARE.
|
||||
|
||||
|
||||
@@ -85,5 +85,10 @@ Furnace metadata:
|
||||
Chest metadata:
|
||||
TBD
|
||||
|
||||
Locking Chest metadata:
|
||||
u16 string_len
|
||||
u8[string_len] string
|
||||
TBD
|
||||
|
||||
// END
|
||||
|
||||
|
||||
85
doc/minetest.6
Normal file
@@ -0,0 +1,85 @@
|
||||
.\" Minetest man page
|
||||
.TH minetest 6 "11 March 2012" "" ""
|
||||
|
||||
.SH NAME
|
||||
minetest \- Multiplayer infinite-world block sandbox
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B minetest
|
||||
[ OPTION ... ]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.B Minetest
|
||||
is one of the first InfiniMiner/Minecraft(/whatever) inspired games (started October 2010), with a goal of taking the survival multiplayer gameplay to a slightly different direction.
|
||||
.PP
|
||||
The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\-\-address <value>
|
||||
Address to connect to
|
||||
.TP
|
||||
\-\-config <value>
|
||||
Load configuration from specified file
|
||||
.TP
|
||||
\-\-disable\-unittests
|
||||
Disable unit tests
|
||||
.TP
|
||||
\-\-enable\-unittests
|
||||
Enable unit tests
|
||||
.TP
|
||||
\-\-gameid <value>
|
||||
Set gameid
|
||||
.TP
|
||||
\-\-go
|
||||
Disable main menu
|
||||
.TP
|
||||
\-\-help
|
||||
Show allowed options
|
||||
.TP
|
||||
\-\-logfile <value>
|
||||
Set logfile path (debug.txt)
|
||||
.TP
|
||||
\-\-map\-dir <value>
|
||||
Same as --world (deprecated)
|
||||
.TP
|
||||
\-\-name <value>
|
||||
Set player name
|
||||
.TP
|
||||
\-\-password <value>
|
||||
Set password
|
||||
.TP
|
||||
\-\-port <value>
|
||||
Set network port (UDP) to use
|
||||
.TP
|
||||
\-\-random\-input
|
||||
Enable random user input, for testing
|
||||
.TP
|
||||
\-\-server
|
||||
Run dedicated server
|
||||
.TP
|
||||
\-\-speedtests
|
||||
Run speed tests
|
||||
.TP
|
||||
\-\-verbose
|
||||
Print more information to console
|
||||
.TP
|
||||
\-\-world <value>
|
||||
Set world path
|
||||
|
||||
.SH BUGS
|
||||
Please report all bugs to Perttu Ahola <celeron55@gmail.com>.
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
Perttu Ahola <celeron55@gmail.com>
|
||||
and contributors.
|
||||
.PP
|
||||
This man page was originally written by
|
||||
Juhani Numminen <juhaninumminen0@gmail.com>.
|
||||
|
||||
.SH WWW
|
||||
http://c55.me/minetest/
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR minetestserver(6)
|
||||
64
doc/minetestserver.6
Normal file
@@ -0,0 +1,64 @@
|
||||
.\" Minetestserver man page
|
||||
.TH minetestserver 6 "11 March 2012" "" ""
|
||||
|
||||
.SH NAME
|
||||
minetestserver \- Minetest server
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B minetestserver
|
||||
[ OPTION ... ]
|
||||
|
||||
.SH DESCRIPTION
|
||||
.B Minetest
|
||||
is one of the first InfiniMiner/Minecraft(/whatever) inspired games (started October 2010), with a goal of taking the survival multiplayer gameplay to a slightly different direction.
|
||||
.PP
|
||||
The main design philosophy is to keep it technically simple, stable and portable. It will be kept lightweight enough to run on fairly old hardware.
|
||||
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
\-\-config <value>
|
||||
Load configuration from specified file
|
||||
.TP
|
||||
\-\-disable\-unittests
|
||||
Disable unit tests
|
||||
.TP
|
||||
\-\-enable\-unittests
|
||||
Enable unit tests
|
||||
.TP
|
||||
\-\-gameid <value>
|
||||
Set gameid
|
||||
.TP
|
||||
\-\-help
|
||||
Show allowed options
|
||||
.TP
|
||||
\-\-logfile <value>
|
||||
Set logfile path (debug.txt)
|
||||
.TP
|
||||
\-\-map\-dir <value>
|
||||
Same as --world (deprecated)
|
||||
.TP
|
||||
\-\-port <value>
|
||||
Set network port (UDP) to use
|
||||
.TP
|
||||
\-\-verbose
|
||||
Print more information to console
|
||||
.TP
|
||||
\-\-world <value>
|
||||
Set world path
|
||||
|
||||
.SH BUGS
|
||||
Please report all bugs to Perttu Ahola <celeron55@gmail.com>.
|
||||
|
||||
.SH AUTHOR
|
||||
.PP
|
||||
Perttu Ahola <celeron55@gmail.com>
|
||||
and contributors.
|
||||
.PP
|
||||
This man page was originally written by
|
||||
Juhani Numminen <juhaninumminen0@gmail.com>.
|
||||
|
||||
.SH WWW
|
||||
http://c55.me/minetest/
|
||||
|
||||
.SH "SEE ALSO"
|
||||
.BR minetest(6)
|
||||
@@ -42,7 +42,7 @@ Initialization:
|
||||
u8 channel = 0
|
||||
# Control packet header
|
||||
u8 type = TYPE_CONTROL = 0
|
||||
u8 controltype = CONTROLTYPE_DISCO = 2
|
||||
u8 controltype = CONTROLTYPE_DISCO = 3
|
||||
|
||||
- Here's a quick untested connect-disconnect done in PHP:
|
||||
# host: ip of server (use gethostbyname(hostname) to get from a dns name)
|
||||
@@ -61,7 +61,7 @@ function check_if_minetestserver_up($host, $port)
|
||||
$peer_id = substr($buf, 9, 2);
|
||||
|
||||
# Disconnect
|
||||
$buf = "\x4f\x45\x74\x03".$peer_id."\x00\x00\x02";
|
||||
$buf = "\x4f\x45\x74\x03".$peer_id."\x00\x00\x03";
|
||||
socket_sendto($socket, $buf, strlen($buf), 0, $host, $port);
|
||||
socket_close($socket);
|
||||
|
||||
|
||||
271
genmap.py
@@ -1,271 +0,0 @@
|
||||
#!/usr/bin/python2
|
||||
|
||||
# This is an example script that generates some valid map data.
|
||||
|
||||
import struct
|
||||
import random
|
||||
import os
|
||||
import sys
|
||||
import zlib
|
||||
import array
|
||||
from pnoise import pnoise
|
||||
|
||||
# Old directory format:
|
||||
# world/sectors/XXXXZZZZ/YYYY
|
||||
# XXXX,YYYY,ZZZZ = coordinates in hexadecimal
|
||||
# fffe = -2
|
||||
# ffff = -1
|
||||
# 0000 = 0
|
||||
# 0001 = 1
|
||||
#
|
||||
# New directory format:
|
||||
# world/sectors2/XXX/ZZZ/YYYY
|
||||
# XXX,YYYY,ZZZ = coordinates in hexadecimal
|
||||
# fffe = -2
|
||||
# ffff = -1
|
||||
# 0000 = 0
|
||||
# 0001 = 1
|
||||
# ffe = -2
|
||||
# fff = -1
|
||||
# 000 = 0
|
||||
# 001 = 1
|
||||
#
|
||||
# For more proper file format documentation, refer to mapformat.txt
|
||||
# For node type documentation, refer to mapnode.h
|
||||
# NodeMetadata documentation is not complete, refer to nodemeta.cpp
|
||||
#
|
||||
|
||||
# Seed for generating terrain
|
||||
SEED = 0
|
||||
|
||||
# 0=old, 1=new
|
||||
SECTOR_DIR_FORMAT = 1
|
||||
|
||||
mapdir = "world"
|
||||
|
||||
def to4h(i):
|
||||
s = "";
|
||||
s += '{0:1x}'.format((i>>12) & 0x000f)
|
||||
s += '{0:1x}'.format((i>>8) & 0x000f)
|
||||
s += '{0:1x}'.format((i>>4) & 0x000f)
|
||||
s += '{0:1x}'.format((i>>0) & 0x000f)
|
||||
return s
|
||||
|
||||
def to3h(i):
|
||||
s = "";
|
||||
s += '{0:1x}'.format((i>>8) & 0x000f)
|
||||
s += '{0:1x}'.format((i>>4) & 0x000f)
|
||||
s += '{0:1x}'.format((i>>0) & 0x000f)
|
||||
return s
|
||||
|
||||
def get_sector_dir(px, pz):
|
||||
global SECTOR_DIR_FORMAT
|
||||
if SECTOR_DIR_FORMAT == 0:
|
||||
return "/sectors/"+to4h(px)+to4h(pz)
|
||||
elif SECTOR_DIR_FORMAT == 1:
|
||||
return "/sectors2/"+to3h(px)+"/"+to3h(pz)
|
||||
else:
|
||||
assert(0)
|
||||
|
||||
def getrand_air_stone():
|
||||
i = random.randrange(0,2)
|
||||
if i==0:
|
||||
return 0
|
||||
return 254
|
||||
|
||||
# 3-dimensional vector (position)
|
||||
class v3:
|
||||
def __init__(self, x=0, y=0, z=0):
|
||||
self.X = x
|
||||
self.Y = y
|
||||
self.Z = z
|
||||
|
||||
class NodeMeta:
|
||||
def __init__(self, type_id, data):
|
||||
self.type_id = type_id
|
||||
self.data = data
|
||||
|
||||
class StaticObject:
|
||||
def __init__(self):
|
||||
self.type_id = 0
|
||||
self.data = ""
|
||||
|
||||
def ser_u16(i):
|
||||
return chr((i>>8)&0xff) + chr((i>>0)&0xff)
|
||||
def ser_u32(i):
|
||||
return (chr((i>>24)&0xff) + chr((i>>16)&0xff)
|
||||
+ chr((i>>8)&0xff) + chr((i>>0)&0xff))
|
||||
|
||||
# A 16x16x16 chunk of map
|
||||
class MapBlock:
|
||||
def __init__(self):
|
||||
self.content = array.array('B')
|
||||
self.param1 = array.array('B')
|
||||
self.param2 = array.array('B')
|
||||
for i in range(16*16*16):
|
||||
# Initialize to air
|
||||
self.content.append(254)
|
||||
# Full light on sunlight, none when no sunlight
|
||||
self.param1.append(15)
|
||||
# No additional parameters
|
||||
self.param2.append(0)
|
||||
|
||||
# key = v3 pos
|
||||
# value = NodeMeta
|
||||
self.nodemeta = {}
|
||||
|
||||
# key = v3 pos
|
||||
# value = StaticObject
|
||||
self.static_objects = {}
|
||||
|
||||
def set_content(self, v3, b):
|
||||
self.content[v3.Z*16*16+v3.Y*16+v3.X] = b
|
||||
def set_param1(self, v3, b):
|
||||
self.param1[v3.Z*16*16+v3.Y*16+v3.X] = b
|
||||
def set_param2(self, v3, b):
|
||||
self.param2[v3.Z*16*16+v3.Y*16+v3.X] = b
|
||||
|
||||
# Get data for serialization. Returns a string.
|
||||
def serialize_data(self):
|
||||
s = ""
|
||||
for i in range(16*16*16):
|
||||
s += chr(self.content[i])
|
||||
for i in range(16*16*16):
|
||||
s += chr(self.param1[i])
|
||||
for i in range(16*16*16):
|
||||
s += chr(self.param2[i])
|
||||
return s
|
||||
|
||||
def serialize_nodemeta(self):
|
||||
s = ""
|
||||
s += ser_u16(1)
|
||||
s += ser_u16(len(self.nodemeta))
|
||||
for pos, meta in self.nodemeta.items():
|
||||
pos_i = pos.Z*16*16 + pos.Y*16 + pos.X
|
||||
s += ser_u16(pos_i)
|
||||
s += ser_u16(meta.type_id)
|
||||
s += ser_u16(len(meta.data))
|
||||
s += meta.data
|
||||
return s
|
||||
|
||||
def serialize_staticobj(self):
|
||||
s = ""
|
||||
s += chr(0)
|
||||
s += ser_u16(len(self.static_objects))
|
||||
for pos, obj in self.static_objects.items():
|
||||
pos_i = pos.Z*16*16 + pos.Y*16 + pos.X
|
||||
s += ser_s32(pos.X*1000)
|
||||
s += ser_s32(pos.Y*1000)
|
||||
s += ser_s32(pos.Z*1000)
|
||||
s += ser_u16(obj.type_id)
|
||||
s += ser_u16(len(obj.data))
|
||||
s += obj.data
|
||||
return s
|
||||
|
||||
def writeblock(mapdir, px,py,pz, block):
|
||||
|
||||
sectordir = mapdir + get_sector_dir(px, pz);
|
||||
|
||||
try:
|
||||
os.makedirs(sectordir)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
path = sectordir+"/"+to4h(py)
|
||||
|
||||
print("writing block file "+path)
|
||||
|
||||
f = open(sectordir+"/"+to4h(py), "wb")
|
||||
|
||||
if f == None:
|
||||
return
|
||||
|
||||
# version
|
||||
version = 17
|
||||
f.write(struct.pack('B', version))
|
||||
|
||||
# flags
|
||||
# 0x01=is_undg, 0x02=dn_diff, 0x04=lighting_expired
|
||||
flags = 0 + 0x02 + 0x04
|
||||
f.write(struct.pack('B', flags))
|
||||
|
||||
# data
|
||||
c_obj = zlib.compressobj()
|
||||
c_obj.compress(block.serialize_data())
|
||||
f.write(struct.pack('BB', 0x78, 0x9c)) # zlib magic number
|
||||
f.write(c_obj.flush())
|
||||
|
||||
# node metadata
|
||||
c_obj = zlib.compressobj()
|
||||
c_obj.compress(block.serialize_nodemeta())
|
||||
f.write(struct.pack('BB', 0x78, 0x9c)) # zlib magic number
|
||||
f.write(c_obj.flush())
|
||||
|
||||
# mapblockobject count
|
||||
f.write(ser_u16(0))
|
||||
|
||||
# static objects
|
||||
f.write(block.serialize_staticobj())
|
||||
|
||||
# timestamp
|
||||
f.write(ser_u32(0xffffffff))
|
||||
|
||||
f.close()
|
||||
|
||||
for z0 in range(-1,3):
|
||||
for x0 in range(-1,3):
|
||||
for y0 in range(-1,3):
|
||||
print("generating block "+str(x0)+","+str(y0)+","+str(z0))
|
||||
#v3 blockp = v3(x0,y0,z0)
|
||||
|
||||
# Create a MapBlock
|
||||
block = MapBlock()
|
||||
|
||||
# Generate stuff in it
|
||||
for z in range(0,16):
|
||||
for x in range(0,16):
|
||||
h = 20.0*pnoise((x0*16+x)/100.,(z0*16+z)/100.,SEED+0)
|
||||
h += 5.0*pnoise((x0*16+x)/25.,(z0*16+z)/25.,SEED+0)
|
||||
if pnoise((x0*16+x)/25.,(z0*16+z)/25.,SEED+92412) > 0.05:
|
||||
h += 10
|
||||
#print("r="+str(r))
|
||||
# This enables comparison by ==
|
||||
h = int(h)
|
||||
for y in range(0,16):
|
||||
p = v3(x,y,z)
|
||||
b = 254
|
||||
y1 = y0*16+y
|
||||
if y1 <= h-3:
|
||||
b = 0 #stone
|
||||
elif y1 <= h and y1 <= 0:
|
||||
b = 8 #mud
|
||||
elif y1 == h:
|
||||
b = 1 #grass
|
||||
elif y1 < h:
|
||||
b = 8 #mud
|
||||
elif y1 <= 1:
|
||||
b = 9 #water
|
||||
|
||||
# Material content
|
||||
block.set_content(p, b)
|
||||
|
||||
# Place a sign at the center at surface level.
|
||||
# Placing a sign means placing the sign node and
|
||||
# adding node metadata to the mapblock.
|
||||
if x == 8 and z == 8 and y0*16 <= h-1 and (y0+1)*16-1 > h:
|
||||
p = v3(8,h+1-y0*16,8)
|
||||
# 14 = Sign
|
||||
content_type = 14
|
||||
block.set_content(p, content_type)
|
||||
# This places the sign to the bottom of the cube.
|
||||
# Working values: 0x01, 0x02, 0x04, 0x08, 0x10, 0x20
|
||||
block.set_param2(p, 0x08)
|
||||
# Then add metadata to hold the text of the sign
|
||||
s = "Hello at sector ("+str(x0)+","+str(z0)+")"
|
||||
meta = NodeMeta(content_type, ser_u16(len(s))+s)
|
||||
block.nodemeta[p] = meta
|
||||
|
||||
# Write it on disk
|
||||
writeblock(mapdir, x0,y0,z0, block)
|
||||
|
||||
#END
|
||||
@@ -1,67 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
PROJECT_NAME=minetest-delta
|
||||
PACKAGEDIR=../$PROJECT_NAME-packages
|
||||
PACKAGENAME=$PROJECT_NAME-binary-`date +%y%m%d%H%M%S`
|
||||
PACKAGEPATH=$PACKAGEDIR/$PACKAGENAME
|
||||
|
||||
mkdir -p $PACKAGEPATH
|
||||
mkdir -p $PACKAGEPATH/bin
|
||||
mkdir -p $PACKAGEPATH/data
|
||||
mkdir -p $PACKAGEPATH/doc
|
||||
mkdir -p $PACKAGEPATH/locale/de/LC_MESSAGES/
|
||||
|
||||
cp minetest.conf.example $PACKAGEPATH/
|
||||
|
||||
cp bin/$PROJECT_NAME.exe $PACKAGEPATH/bin/
|
||||
cp bin/Irrlicht.dll $PACKAGEPATH/bin/
|
||||
cp bin/zlibwapi.dll $PACKAGEPATH/bin/
|
||||
#cp bin/test $PACKAGEPATH/bin/
|
||||
#cp bin/fasttest $PACKAGEPATH/bin/
|
||||
#cp bin/server $PACKAGEPATH/bin/
|
||||
#cp ../irrlicht/irrlicht-1.7.1/lib/Linux/libIrrlicht.a $PACKAGEPATH/bin/
|
||||
#cp ../jthread/jthread-1.2.1/src/.libs/libjthread-1.2.1.so $PACKAGEPATH/bin/
|
||||
|
||||
cp -r data/fontlucida.png $PACKAGEPATH/data/
|
||||
cp -r data/player.png $PACKAGEPATH/data/
|
||||
cp -r data/player_back.png $PACKAGEPATH/data/
|
||||
cp -r data/stone.png $PACKAGEPATH/data/
|
||||
cp -r data/grass.png $PACKAGEPATH/data/
|
||||
cp -r data/grass_footsteps.png $PACKAGEPATH/data/
|
||||
cp -r data/water.png $PACKAGEPATH/data/
|
||||
cp -r data/tree.png $PACKAGEPATH/data/
|
||||
cp -r data/leaves.png $PACKAGEPATH/data/
|
||||
cp -r data/mese.png $PACKAGEPATH/data/
|
||||
cp -r data/cloud.png $PACKAGEPATH/data/
|
||||
cp -r data/sign.png $PACKAGEPATH/data/
|
||||
cp -r data/sign_back.png $PACKAGEPATH/data/
|
||||
cp -r data/rat.png $PACKAGEPATH/data/
|
||||
cp -r data/mud.png $PACKAGEPATH/data/
|
||||
cp -r data/torch.png $PACKAGEPATH/data/
|
||||
cp -r data/torch_on_floor.png $PACKAGEPATH/data/
|
||||
cp -r data/torch_on_ceiling.png $PACKAGEPATH/data/
|
||||
cp -r data/tree_top.png $PACKAGEPATH/data/
|
||||
cp -r data/coalstone.png $PACKAGEPATH/data/
|
||||
cp -r data/crack.png $PACKAGEPATH/data/
|
||||
cp -r data/wood.png $PACKAGEPATH/data/
|
||||
cp -r data/stick.png $PACKAGEPATH/data/
|
||||
cp -r data/tool_wpick.png $PACKAGEPATH/data/
|
||||
cp -r data/tool_stpick.png $PACKAGEPATH/data/
|
||||
cp -r data/tool_mesepick.png $PACKAGEPATH/data/
|
||||
cp -r data/grass_side.png $PACKAGEPATH/data/
|
||||
cp -r data/lump_of_coal.png $PACKAGEPATH/data/
|
||||
cp -r data/lump_of_iron.png $PACKAGEPATH/data/
|
||||
cp -r data/mineral_coal.png $PACKAGEPATH/data/
|
||||
cp -r data/mineral_iron.png $PACKAGEPATH/data/
|
||||
cp -r data/sand.png $PACKAGEPATH/data/
|
||||
|
||||
#cp -r data/pauseMenu.gui $PACKAGEPATH/data/
|
||||
|
||||
cp -r doc/README.txt $PACKAGEPATH/doc/README.txt
|
||||
|
||||
cp -r locale/de/LC_MESSAGES/$PROJECT_NAME.mo $PACKAGEPATH/locale/de/LC_MESSAGES/
|
||||
|
||||
cd $PACKAGEDIR
|
||||
rm $PACKAGENAME.zip
|
||||
zip -r $PACKAGENAME.zip $PACKAGENAME
|
||||
|
||||
BIN
minetest-icon-24x24.png
Normal file
|
After Width: | Height: | Size: 913 B |
@@ -39,14 +39,17 @@
|
||||
#keymap_jump = KEY_SPACE
|
||||
#keymap_sneak = KEY_LSHIFT
|
||||
#keymap_inventory = KEY_KEY_I
|
||||
# Go down ladder / go down in fly mode / go fast in fast mode
|
||||
#keymap_special1 = KEY_KEY_E
|
||||
#keymap_chat = KEY_KEY_T
|
||||
#keymap_cmd = /
|
||||
#keyman_console = KEY_F10
|
||||
#keymap_rangeselect = KEY_KEY_R
|
||||
#keymap_freemove = KEY_KEY_K
|
||||
#keymap_fastmove = KEY_KEY_J
|
||||
#keymap_frametime_graph = KEY_F1
|
||||
#keymap_screenshot = KEY_F12
|
||||
# Some (temporary) keys for debugging
|
||||
#keymap_special1 = KEY_KEY_E
|
||||
#keymap_print_debug_stacks = KEY_KEY_P
|
||||
|
||||
# The desired FPS
|
||||
@@ -58,8 +61,8 @@
|
||||
#viewing_range_nodes_max = 300
|
||||
#viewing_range_nodes_min = 25
|
||||
# Initial window size
|
||||
screenW# = 800
|
||||
screenH# = 600
|
||||
#screenW = 800
|
||||
#screenH = 600
|
||||
# Address to connect to (#blank = start local server)
|
||||
#address =
|
||||
# Enable random user input, for testing
|
||||
@@ -99,45 +102,70 @@ screenH# = 600
|
||||
#farmesh_distance = 40
|
||||
# Enable/disable clouds
|
||||
#enable_clouds = true
|
||||
# Don't draw stone (for testing)
|
||||
#invisible_stone = false
|
||||
# Path for screenshots
|
||||
#screenshot_path = .
|
||||
# Amount of view bobbing (0 = no view bobbing, 1.0 = normal, 2.0 = double)
|
||||
#view_bobbing_amount = 1.0
|
||||
# In-game chat console background color (R,G,B)
|
||||
#console_color = (0,0,0)
|
||||
# In-game chat console background alpha (opaqueness, between 0 and 255)
|
||||
#console_alpha = 200
|
||||
|
||||
#
|
||||
# Server stuff
|
||||
#
|
||||
|
||||
# Default game (default when creating a new world)
|
||||
#default_game = mesetint
|
||||
# Map directory (everything in the world is stored here)
|
||||
#map-#dir = /custom/map
|
||||
#map-dir = /custom/map
|
||||
# Message of the Day
|
||||
#motd = Welcome to this awesome Minetest server!
|
||||
# Maximum number of players connected simultaneously
|
||||
#max_users = 20
|
||||
# Set to false to allow old clients to connect
|
||||
#strict_protocol_version_checking = true
|
||||
# Set to true to enable creative mode (unlimited inventory)
|
||||
#creative_mode = false
|
||||
# Enable players getting damage and dying
|
||||
#enable_damage = false
|
||||
# Despawn all non-peaceful mobs
|
||||
#only_peaceful_mobs = false
|
||||
# A chosen map seed for a new map, leave empty for random
|
||||
#fixed_map_seed =
|
||||
# Gives some stuff to players at the beginning
|
||||
#give_initial_stuff = false
|
||||
# New users need to input this password
|
||||
#default_password =
|
||||
# Available privileges: build, teleport, settime, privs, shout
|
||||
#default_privs = build, shout
|
||||
# Whether players are transferred to client without any range limit
|
||||
#unlimited_player_transfer_distance = true
|
||||
# Whether to enable players killing each other
|
||||
#enable_pvp = true
|
||||
|
||||
# Set to true to enable experimental features or stuff that is tested
|
||||
# (varies from version to version, usually not useful at all)
|
||||
#enable_experimental = false
|
||||
# Profiler data print interval. #0 = disable.
|
||||
#profiler_print_interval = 0
|
||||
#enable_mapgen_debug_info = false
|
||||
# Player and object positions are sent at intervals specified by this
|
||||
#objectdata_interval = 0.2
|
||||
#active_object_range = 2
|
||||
# from how far client knows about objects
|
||||
#active_object_send_range_blocks = 3
|
||||
# how large area of blocks are subject to the active block stuff (active = objects are loaded and ABMs run)
|
||||
#active_block_range = 2
|
||||
# how many blocks are flying in the wire simultaneously per client
|
||||
#max_simultaneous_block_sends_per_client = 2
|
||||
# how many blocks are flying in the wire simultaneously per server
|
||||
#max_simultaneous_block_sends_server_total = 8
|
||||
#max_block_send_distance = 8
|
||||
#max_block_generate_distance = 8
|
||||
#max_block_send_distance = 7
|
||||
#max_block_generate_distance = 5
|
||||
#time_send_interval = 20
|
||||
# Length of day/night cycle. 72=20min, 360=4min, 1=24hour
|
||||
# Length of day/night cycle. 72=20min, 360=4min, 1=24hour, 0=day/night/whatever stays unchanged
|
||||
#time_speed = 72
|
||||
#server_unload_unused_data_timeout = 60
|
||||
#server_map_save_interval = 60
|
||||
#server_unload_unused_data_timeout = 29
|
||||
#server_map_save_interval = 5.3
|
||||
# To reduce lag, block transfers are slowed down when a player is building something.
|
||||
# This determines how long they are slowed down after placing or removing a node.
|
||||
#full_block_send_enable_min_time_from_building = 2.0
|
||||
# Set to true to enable experimental features or stuff that is tested
|
||||
# (varies from version to version, usually not useful at all)
|
||||
#enable_experimental = false
|
||||
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
0 128 128 128
|
||||
1 107 134 51
|
||||
2 39 66 106
|
||||
3 255 255 0
|
||||
4 86 58 31
|
||||
5 48 95 8
|
||||
6 102 129 38
|
||||
7 178 178 0
|
||||
8 101 84 36
|
||||
9 39 66 106
|
||||
12 104 78 42
|
||||
13 210 194 156
|
||||
14 117 86 41
|
||||
15 128 79 0
|
||||
16 118 118 118
|
||||
18 123 123 123
|
||||
19 199 199 199
|
||||
20 183 183 222
|
||||
21 103 78 42
|
||||
22 219 202 178
|
||||
23 78 154 6
|
||||
24 204 0 0
|
||||
25 211 215 207
|
||||
26 138 226 52
|
||||
27 104 78 42
|
||||
@@ -1,275 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# Made by j0gge, modified by celeron55
|
||||
|
||||
# This program is free software. It comes without any warranty, to
|
||||
# the extent permitted by applicable law. You can redistribute it
|
||||
# and/or modify it under the terms of the Do What The Fuck You Want
|
||||
# To Public License, Version 2, as published by Sam Hocevar. See
|
||||
# http://sam.zoy.org/wtfpl/COPYING for more details.
|
||||
|
||||
# Requires Python Imaging Library: http://www.pythonware.com/products/pil/
|
||||
|
||||
# Some speed-up: ...lol, actually it slows it down.
|
||||
#import psyco ; psyco.full()
|
||||
#from psyco.classes import *
|
||||
|
||||
import zlib
|
||||
import Image, ImageDraw
|
||||
import os
|
||||
import string
|
||||
import time
|
||||
|
||||
def hex_to_int(h):
|
||||
i = int(h,16)
|
||||
if(i > 2047):
|
||||
i-=4096
|
||||
return i
|
||||
|
||||
def hex4_to_int(h):
|
||||
i = int(h,16)
|
||||
if(i > 32767):
|
||||
i-=65536
|
||||
return i
|
||||
|
||||
def int_to_hex3(i):
|
||||
if(i < 0):
|
||||
return "%03X" % (i + 4096)
|
||||
else:
|
||||
return "%03X" % i
|
||||
|
||||
def int_to_hex4(i):
|
||||
if(i < 0):
|
||||
return "%04X" % (i + 65536)
|
||||
else:
|
||||
return "%04X" % i
|
||||
|
||||
def limit(i,l,h):
|
||||
if(i>h):
|
||||
i=h
|
||||
if(i<l):
|
||||
i=l
|
||||
return i
|
||||
|
||||
# Fix these!
|
||||
path="../map/"
|
||||
output="map.png"
|
||||
|
||||
sector_xmin = -1000/16
|
||||
sector_xmax = 1000/16
|
||||
sector_zmin = -1000/16
|
||||
sector_zmax = 1000/16
|
||||
|
||||
# Load color information for the blocks.
|
||||
colors = {}
|
||||
f = file("colors.txt")
|
||||
for line in f:
|
||||
values = string.split(line)
|
||||
colors[int(values[0])] = (int(values[1]), int(values[2]), int(values[3]))
|
||||
f.close()
|
||||
|
||||
xlist = []
|
||||
zlist = []
|
||||
|
||||
# List all sectors to memory and calculate the width and heigth of the resulting picture.
|
||||
if os.path.exists(path + "sectors2"):
|
||||
for filename in os.listdir(path + "sectors2"):
|
||||
for filename2 in os.listdir(path + "sectors2/" + filename):
|
||||
x = hex_to_int(filename)
|
||||
z = hex_to_int(filename2)
|
||||
if x < sector_xmin or x > sector_xmax:
|
||||
continue
|
||||
if z < sector_zmin or z > sector_zmax:
|
||||
continue
|
||||
xlist.append(x)
|
||||
zlist.append(z)
|
||||
|
||||
if os.path.exists(path + "sectors"):
|
||||
for filename in os.listdir(path + "sectors"):
|
||||
x = hex4_to_int(filename[:4])
|
||||
z = hex4_to_int(filename[-4:])
|
||||
if x < sector_xmin or x > sector_xmax:
|
||||
continue
|
||||
if z < sector_zmin or z > sector_zmax:
|
||||
continue
|
||||
xlist.append(x)
|
||||
zlist.append(z)
|
||||
|
||||
w = (max(xlist) - min(xlist)) * 16 + 16
|
||||
h = (max(zlist) - min(zlist)) * 16 + 16
|
||||
|
||||
print "w="+str(w)+" h="+str(h)
|
||||
|
||||
im = Image.new("RGB", (w, h), "white")
|
||||
impix = im.load()
|
||||
|
||||
stuff={}
|
||||
|
||||
starttime = time.time()
|
||||
|
||||
# Go through all sectors.
|
||||
for n in range(len(xlist)):
|
||||
#if n > 500:
|
||||
# break
|
||||
if n % 200 == 0:
|
||||
nowtime = time.time()
|
||||
dtime = nowtime - starttime
|
||||
n_per_second = 1.0 * n / dtime
|
||||
if n_per_second != 0:
|
||||
seconds_per_n = 1.0 / n_per_second
|
||||
time_guess = seconds_per_n * len(xlist)
|
||||
remaining_s = time_guess - dtime
|
||||
remaining_minutes = int(remaining_s / 60)
|
||||
remaining_s -= remaining_minutes * 60;
|
||||
print("Processing sector "+str(n)+" of "+str(len(xlist))
|
||||
+" ("+str(round(100.0*n/len(xlist), 1))+"%)"
|
||||
+" (ETA: "+str(remaining_minutes)+"m "
|
||||
+str(int(remaining_s))+"s)")
|
||||
|
||||
xpos = xlist[n]
|
||||
zpos = zlist[n]
|
||||
|
||||
xhex = int_to_hex3(xpos)
|
||||
zhex = int_to_hex3(zpos)
|
||||
xhex4 = int_to_hex4(xpos)
|
||||
zhex4 = int_to_hex4(zpos)
|
||||
|
||||
sector1 = xhex4.lower() + zhex4.lower()
|
||||
sector2 = xhex.lower() + "/" + zhex.lower()
|
||||
|
||||
ylist=[]
|
||||
|
||||
sectortype = ""
|
||||
|
||||
try:
|
||||
for filename in os.listdir(path + "sectors/" + sector1):
|
||||
if(filename != "meta"):
|
||||
pos = int(filename,16)
|
||||
if(pos > 32767):
|
||||
pos-=65536
|
||||
ylist.append(pos)
|
||||
sectortype = "old"
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
if sectortype != "old":
|
||||
try:
|
||||
for filename in os.listdir(path + "sectors2/" + sector2):
|
||||
if(filename != "meta"):
|
||||
pos = int(filename,16)
|
||||
if(pos > 32767):
|
||||
pos-=65536
|
||||
ylist.append(pos)
|
||||
sectortype = "new"
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
if sectortype == "":
|
||||
continue
|
||||
|
||||
ylist.sort()
|
||||
|
||||
# Make a list of pixels of the sector that are to be looked for.
|
||||
pixellist = []
|
||||
for x in range(16):
|
||||
for y in range(16):
|
||||
pixellist.append((x,y))
|
||||
|
||||
# Go through the Y axis from top to bottom.
|
||||
for ypos in reversed(ylist):
|
||||
|
||||
yhex = int_to_hex4(ypos)
|
||||
|
||||
filename = ""
|
||||
if sectortype == "old":
|
||||
filename = path + "sectors/" + sector1 + "/" + yhex.lower()
|
||||
else:
|
||||
filename = path + "sectors2/" + sector2 + "/" + yhex.lower()
|
||||
|
||||
f = file(filename, "rb")
|
||||
|
||||
# Let's just memorize these even though it's not really necessary.
|
||||
version = f.read(1)
|
||||
flags = f.read(1)
|
||||
|
||||
dec_o = zlib.decompressobj()
|
||||
try:
|
||||
mapdata = dec_o.decompress(f.read())
|
||||
except:
|
||||
mapdata = []
|
||||
|
||||
f.close()
|
||||
|
||||
if(len(mapdata)<4096):
|
||||
print "bad: " + xhex+zhex+"/"+yhex + " " + len(mapdata)
|
||||
else:
|
||||
chunkxpos=xpos*16
|
||||
chunkypos=ypos*16
|
||||
chunkzpos=zpos*16
|
||||
for (x,z) in reversed(pixellist):
|
||||
for y in reversed(range(16)):
|
||||
datapos=x+y*16+z*256
|
||||
if(ord(mapdata[datapos])!=254):
|
||||
try:
|
||||
pixellist.remove((x,z))
|
||||
# Memorize information on the type and height of the block and for drawing the picture.
|
||||
stuff[(chunkxpos+x,chunkzpos+z)]=(chunkypos+y,ord(mapdata[datapos]))
|
||||
break
|
||||
except:
|
||||
print "strange block: " + xhex+zhex+"/"+yhex + " x: " + str(x) + " y: " + str(y) + " z: " + str(z) + " block: " + str(ord(mapdata[datapos]))
|
||||
|
||||
# After finding all the pixeld in the sector, we can move on to the next sector without having to continue the Y axis.
|
||||
if(len(pixellist)==0):
|
||||
break
|
||||
|
||||
print "Drawing image"
|
||||
# Drawing the picture
|
||||
starttime = time.time()
|
||||
n = 0
|
||||
minx = min(xlist)
|
||||
minz = min(zlist)
|
||||
for (x,z) in stuff.iterkeys():
|
||||
if n % 500000 == 0:
|
||||
nowtime = time.time()
|
||||
dtime = nowtime - starttime
|
||||
n_per_second = 1.0 * n / dtime
|
||||
if n_per_second != 0:
|
||||
listlen = len(stuff)
|
||||
seconds_per_n = 1.0 / n_per_second
|
||||
time_guess = seconds_per_n * listlen
|
||||
remaining_s = time_guess - dtime
|
||||
remaining_minutes = int(remaining_s / 60)
|
||||
remaining_s -= remaining_minutes * 60;
|
||||
print("Drawing pixel "+str(n)+" of "+str(listlen)
|
||||
+" ("+str(round(100.0*n/listlen, 1))+"%)"
|
||||
+" (ETA: "+str(remaining_minutes)+"m "
|
||||
+str(int(remaining_s))+"s)")
|
||||
n += 1
|
||||
|
||||
(r,g,b)=colors[stuff[(x,z)][1]]
|
||||
|
||||
# Comparing heights of a couple of adjacent blocks and changing brightness accordingly.
|
||||
try:
|
||||
y1=stuff[(x-1,z)][0]
|
||||
y2=stuff[(x,z-1)][0]
|
||||
y=stuff[(x,z)][0]
|
||||
|
||||
d=(y-y1+y-y2)*12
|
||||
|
||||
if(d>36):
|
||||
d=36
|
||||
|
||||
r=limit(r+d,0,255)
|
||||
g=limit(g+d,0,255)
|
||||
b=limit(b+d,0,255)
|
||||
except:
|
||||
pass
|
||||
#impix[w-1-(x-minx*16),h-1-(z-minz*16)]=(r,g,b)
|
||||
impix[x-minx*16,h-1-(z-minz*16)]=(r,g,b)
|
||||
|
||||
# Flip the picture to make it right and save.
|
||||
#print "Transposing"
|
||||
#im=im.transpose(Image.FLIP_TOP_BOTTOM)
|
||||
print "Saving"
|
||||
im.save(output)
|
||||
6393
misc/map.cpp
11
misc/minetest.desktop
Normal file
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Name=Minetest
|
||||
GenericName=Minetest
|
||||
Comment=Multiplayer infinite-world block sandbox
|
||||
Exec=minetest
|
||||
Icon=minetest-icon
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
StartupNotify=false
|
||||
|
||||
410
misc/noise.cpp
@@ -1,410 +0,0 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU 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 <math.h>
|
||||
#include "noise.h"
|
||||
#include <iostream>
|
||||
#include "debug.h"
|
||||
|
||||
#define NOISE_MAGIC_X 1619
|
||||
#define NOISE_MAGIC_Y 31337
|
||||
#define NOISE_MAGIC_Z 52591
|
||||
#define NOISE_MAGIC_SEED 1013
|
||||
|
||||
double cos_lookup[16] = {
|
||||
1.0,0.9238,0.7071,0.3826,0,-0.3826,-0.7071,-0.9238,
|
||||
1.0,-0.9238,-0.7071,-0.3826,0,0.3826,0.7071,0.9238
|
||||
};
|
||||
|
||||
double dotProduct(double vx, double vy, double wx, double wy){
|
||||
return vx*wx+vy*wy;
|
||||
}
|
||||
|
||||
double easeCurve(double t){
|
||||
return 6*pow(t,5)-15*pow(t,4)+10*pow(t,3);
|
||||
}
|
||||
|
||||
double linearInterpolation(double x0, double x1, double t){
|
||||
return x0+(x1-x0)*t;
|
||||
}
|
||||
|
||||
double biLinearInterpolation(double x0y0, double x1y0, double x0y1, double x1y1, double x, double y){
|
||||
double tx = easeCurve(x);
|
||||
double ty = easeCurve(y);
|
||||
/*double tx = x;
|
||||
double ty = y;*/
|
||||
double u = linearInterpolation(x0y0,x1y0,tx);
|
||||
double v = linearInterpolation(x0y1,x1y1,tx);
|
||||
return linearInterpolation(u,v,ty);
|
||||
}
|
||||
|
||||
double triLinearInterpolation(
|
||||
double v000, double v100, double v010, double v110,
|
||||
double v001, double v101, double v011, double v111,
|
||||
double x, double y, double z)
|
||||
{
|
||||
/*double tx = easeCurve(x);
|
||||
double ty = easeCurve(y);
|
||||
double tz = easeCurve(z);*/
|
||||
double tx = x;
|
||||
double ty = y;
|
||||
double tz = z;
|
||||
return(
|
||||
v000*(1-tx)*(1-ty)*(1-tz) +
|
||||
v100*tx*(1-ty)*(1-tz) +
|
||||
v010*(1-tx)*ty*(1-tz) +
|
||||
v110*tx*ty*(1-tz) +
|
||||
v001*(1-tx)*(1-ty)*tz +
|
||||
v101*tx*(1-ty)*tz +
|
||||
v011*(1-tx)*ty*tz +
|
||||
v111*tx*ty*tz
|
||||
);
|
||||
}
|
||||
|
||||
double noise2d(int x, int y, int seed)
|
||||
{
|
||||
int n = (NOISE_MAGIC_X * x + NOISE_MAGIC_Y * y
|
||||
+ NOISE_MAGIC_SEED * seed) & 0x7fffffff;
|
||||
n = (n>>13)^n;
|
||||
n = (n * (n*n*60493+19990303) + 1376312589) & 0x7fffffff;
|
||||
return 1.0 - (double)n/1073741824;
|
||||
}
|
||||
|
||||
double noise3d(int x, int y, int z, int seed)
|
||||
{
|
||||
int n = (NOISE_MAGIC_X * x + NOISE_MAGIC_Y * y + NOISE_MAGIC_Z * z
|
||||
+ NOISE_MAGIC_SEED * seed) & 0x7fffffff;
|
||||
n = (n>>13)^n;
|
||||
n = (n * (n*n*60493+19990303) + 1376312589) & 0x7fffffff;
|
||||
return 1.0 - (double)n/1073741824;
|
||||
}
|
||||
|
||||
#if 0
|
||||
double noise2d_gradient(double x, double y, int seed)
|
||||
{
|
||||
// Calculate the integer coordinates
|
||||
int x0 = (x > 0.0 ? (int)x : (int)x - 1);
|
||||
int y0 = (y > 0.0 ? (int)y : (int)y - 1);
|
||||
// Calculate the remaining part of the coordinates
|
||||
double xl = x - (double)x0;
|
||||
double yl = y - (double)y0;
|
||||
// Calculate random cosine lookup table indices for the integer corners.
|
||||
// They are looked up as unit vector gradients from the lookup table.
|
||||
int n00 = (int)((noise2d(x0, y0, seed)+1)*8);
|
||||
int n10 = (int)((noise2d(x0+1, y0, seed)+1)*8);
|
||||
int n01 = (int)((noise2d(x0, y0+1, seed)+1)*8);
|
||||
int n11 = (int)((noise2d(x0+1, y0+1, seed)+1)*8);
|
||||
// Make a dot product for the gradients and the positions, to get the values
|
||||
double s = dotProduct(cos_lookup[n00], cos_lookup[(n00+12)%16], xl, yl);
|
||||
double u = dotProduct(-cos_lookup[n10], cos_lookup[(n10+12)%16], 1.-xl, yl);
|
||||
double v = dotProduct(cos_lookup[n01], -cos_lookup[(n01+12)%16], xl, 1.-yl);
|
||||
double w = dotProduct(-cos_lookup[n11], -cos_lookup[(n11+12)%16], 1.-xl, 1.-yl);
|
||||
// Interpolate between the values
|
||||
return biLinearInterpolation(s,u,v,w,xl,yl);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
double noise2d_gradient(double x, double y, int seed)
|
||||
{
|
||||
// Calculate the integer coordinates
|
||||
int x0 = (x > 0.0 ? (int)x : (int)x - 1);
|
||||
int y0 = (y > 0.0 ? (int)y : (int)y - 1);
|
||||
// Calculate the remaining part of the coordinates
|
||||
double xl = x - (double)x0;
|
||||
double yl = y - (double)y0;
|
||||
// Get values for corners of cube
|
||||
double v00 = noise2d(x0, y0, seed);
|
||||
double v10 = noise2d(x0+1, y0, seed);
|
||||
double v01 = noise2d(x0, y0+1, seed);
|
||||
double v11 = noise2d(x0+1, y0+1, seed);
|
||||
// Interpolate
|
||||
return biLinearInterpolation(v00,v10,v01,v11,xl,yl);
|
||||
}
|
||||
#endif
|
||||
|
||||
double noise3d_gradient(double x, double y, double z, int seed)
|
||||
{
|
||||
// Calculate the integer coordinates
|
||||
int x0 = (x > 0.0 ? (int)x : (int)x - 1);
|
||||
int y0 = (y > 0.0 ? (int)y : (int)y - 1);
|
||||
int z0 = (z > 0.0 ? (int)z : (int)z - 1);
|
||||
// Calculate the remaining part of the coordinates
|
||||
double xl = x - (double)x0;
|
||||
double yl = y - (double)y0;
|
||||
double zl = z - (double)z0;
|
||||
// Get values for corners of cube
|
||||
double v000 = noise3d(x0, y0, z0, seed);
|
||||
double v100 = noise3d(x0+1, y0, z0, seed);
|
||||
double v010 = noise3d(x0, y0+1, z0, seed);
|
||||
double v110 = noise3d(x0+1, y0+1, z0, seed);
|
||||
double v001 = noise3d(x0, y0, z0+1, seed);
|
||||
double v101 = noise3d(x0+1, y0, z0+1, seed);
|
||||
double v011 = noise3d(x0, y0+1, z0+1, seed);
|
||||
double v111 = noise3d(x0+1, y0+1, z0+1, seed);
|
||||
// Interpolate
|
||||
return triLinearInterpolation(v000,v100,v010,v110,v001,v101,v011,v111,xl,yl,zl);
|
||||
}
|
||||
|
||||
double noise2d_perlin(double x, double y, int seed,
|
||||
int octaves, double persistence)
|
||||
{
|
||||
double a = 0;
|
||||
double f = 1.0;
|
||||
double g = 1.0;
|
||||
for(int i=0; i<octaves; i++)
|
||||
{
|
||||
a += g * noise2d_gradient(x*f, y*f, seed+i);
|
||||
f *= 2.0;
|
||||
g *= persistence;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
double noise2d_perlin_abs(double x, double y, int seed,
|
||||
int octaves, double persistence)
|
||||
{
|
||||
double a = 0;
|
||||
double f = 1.0;
|
||||
double g = 1.0;
|
||||
for(int i=0; i<octaves; i++)
|
||||
{
|
||||
a += g * fabs(noise2d_gradient(x*f, y*f, seed+i));
|
||||
f *= 2.0;
|
||||
g *= persistence;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
double noise3d_perlin(double x, double y, double z, int seed,
|
||||
int octaves, double persistence)
|
||||
{
|
||||
double a = 0;
|
||||
double f = 1.0;
|
||||
double g = 1.0;
|
||||
for(int i=0; i<octaves; i++)
|
||||
{
|
||||
a += g * noise3d_gradient(x*f, y*f, z*f, seed+i);
|
||||
f *= 2.0;
|
||||
g *= persistence;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
double noise3d_perlin_abs(double x, double y, double z, int seed,
|
||||
int octaves, double persistence)
|
||||
{
|
||||
double a = 0;
|
||||
double f = 1.0;
|
||||
double g = 1.0;
|
||||
for(int i=0; i<octaves; i++)
|
||||
{
|
||||
a += g * fabs(noise3d_gradient(x*f, y*f, z*f, seed+i));
|
||||
f *= 2.0;
|
||||
g *= persistence;
|
||||
}
|
||||
return a;
|
||||
}
|
||||
|
||||
// -1->0, 0->1, 1->0
|
||||
double contour(double v)
|
||||
{
|
||||
v = fabs(v);
|
||||
if(v >= 1.0)
|
||||
return 0.0;
|
||||
return (1.0-v);
|
||||
}
|
||||
|
||||
double noise3d_param(const NoiseParams ¶m, double x, double y, double z)
|
||||
{
|
||||
double s = param.pos_scale;
|
||||
x /= s;
|
||||
y /= s;
|
||||
z /= s;
|
||||
|
||||
if(param.type == NOISE_PERLIN)
|
||||
{
|
||||
return param.noise_scale*noise3d_perlin(x,y,z, param.seed,
|
||||
param.octaves,
|
||||
param.persistence);
|
||||
}
|
||||
else if(param.type == NOISE_PERLIN_ABS)
|
||||
{
|
||||
return param.noise_scale*noise3d_perlin_abs(x,y,z, param.seed,
|
||||
param.octaves,
|
||||
param.persistence);
|
||||
}
|
||||
else if(param.type == NOISE_PERLIN_CONTOUR)
|
||||
{
|
||||
return contour(param.noise_scale*noise3d_perlin(x,y,z,
|
||||
param.seed, param.octaves,
|
||||
param.persistence));
|
||||
}
|
||||
else if(param.type == NOISE_PERLIN_CONTOUR_FLIP_YZ)
|
||||
{
|
||||
return contour(param.noise_scale*noise3d_perlin(x,z,y,
|
||||
param.seed, param.octaves,
|
||||
param.persistence));
|
||||
}
|
||||
else assert(0);
|
||||
}
|
||||
|
||||
/*
|
||||
NoiseBuffer
|
||||
*/
|
||||
|
||||
NoiseBuffer::NoiseBuffer():
|
||||
m_data(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
NoiseBuffer::~NoiseBuffer()
|
||||
{
|
||||
clear();
|
||||
}
|
||||
|
||||
void NoiseBuffer::clear()
|
||||
{
|
||||
if(m_data)
|
||||
delete[] m_data;
|
||||
m_data = NULL;
|
||||
m_size_x = 0;
|
||||
m_size_y = 0;
|
||||
m_size_z = 0;
|
||||
}
|
||||
|
||||
void NoiseBuffer::create(const NoiseParams ¶m,
|
||||
double first_x, double first_y, double first_z,
|
||||
double last_x, double last_y, double last_z,
|
||||
double samplelength_x, double samplelength_y, double samplelength_z)
|
||||
{
|
||||
clear();
|
||||
|
||||
m_start_x = first_x - samplelength_x;
|
||||
m_start_y = first_y - samplelength_y;
|
||||
m_start_z = first_z - samplelength_z;
|
||||
m_samplelength_x = samplelength_x;
|
||||
m_samplelength_y = samplelength_y;
|
||||
m_samplelength_z = samplelength_z;
|
||||
|
||||
m_size_x = (last_x - m_start_x)/samplelength_x + 2;
|
||||
m_size_y = (last_y - m_start_y)/samplelength_y + 2;
|
||||
m_size_z = (last_z - m_start_z)/samplelength_z + 2;
|
||||
|
||||
m_data = new double[m_size_x*m_size_y*m_size_z];
|
||||
|
||||
for(int x=0; x<m_size_x; x++)
|
||||
for(int y=0; y<m_size_y; y++)
|
||||
for(int z=0; z<m_size_z; z++)
|
||||
{
|
||||
double xd = (m_start_x + (double)x*m_samplelength_x);
|
||||
double yd = (m_start_y + (double)y*m_samplelength_y);
|
||||
double zd = (m_start_z + (double)z*m_samplelength_z);
|
||||
double a = noise3d_param(param, xd,yd,zd);
|
||||
intSet(x,y,z, a);
|
||||
}
|
||||
}
|
||||
|
||||
void NoiseBuffer::multiply(const NoiseParams ¶m)
|
||||
{
|
||||
assert(m_data != NULL);
|
||||
|
||||
for(int x=0; x<m_size_x; x++)
|
||||
for(int y=0; y<m_size_y; y++)
|
||||
for(int z=0; z<m_size_z; z++)
|
||||
{
|
||||
double xd = (m_start_x + (double)x*m_samplelength_x);
|
||||
double yd = (m_start_y + (double)y*m_samplelength_y);
|
||||
double zd = (m_start_z + (double)z*m_samplelength_z);
|
||||
double a = noise3d_param(param, xd,yd,zd);
|
||||
intMultiply(x,y,z, a);
|
||||
}
|
||||
}
|
||||
|
||||
// Deprecated
|
||||
void NoiseBuffer::create(int seed, int octaves, double persistence,
|
||||
bool abs,
|
||||
double first_x, double first_y, double first_z,
|
||||
double last_x, double last_y, double last_z,
|
||||
double samplelength_x, double samplelength_y, double samplelength_z)
|
||||
{
|
||||
NoiseParams param;
|
||||
param.type = abs ? NOISE_PERLIN_ABS : NOISE_PERLIN;
|
||||
param.seed = seed;
|
||||
param.octaves = octaves;
|
||||
param.persistence = persistence;
|
||||
|
||||
create(param, first_x, first_y, first_z,
|
||||
last_x, last_y, last_z,
|
||||
samplelength_x, samplelength_y, samplelength_z);
|
||||
}
|
||||
|
||||
void NoiseBuffer::intSet(int x, int y, int z, double d)
|
||||
{
|
||||
int i = m_size_x*m_size_y*z + m_size_x*y + x;
|
||||
assert(i >= 0);
|
||||
assert(i < m_size_x*m_size_y*m_size_z);
|
||||
m_data[i] = d;
|
||||
}
|
||||
|
||||
void NoiseBuffer::intMultiply(int x, int y, int z, double d)
|
||||
{
|
||||
int i = m_size_x*m_size_y*z + m_size_x*y + x;
|
||||
assert(i >= 0);
|
||||
assert(i < m_size_x*m_size_y*m_size_z);
|
||||
m_data[i] = m_data[i] * d;
|
||||
}
|
||||
|
||||
double NoiseBuffer::intGet(int x, int y, int z)
|
||||
{
|
||||
int i = m_size_x*m_size_y*z + m_size_x*y + x;
|
||||
assert(i >= 0);
|
||||
assert(i < m_size_x*m_size_y*m_size_z);
|
||||
return m_data[i];
|
||||
}
|
||||
|
||||
double NoiseBuffer::get(double x, double y, double z)
|
||||
{
|
||||
x -= m_start_x;
|
||||
y -= m_start_y;
|
||||
z -= m_start_z;
|
||||
x /= m_samplelength_x;
|
||||
y /= m_samplelength_y;
|
||||
z /= m_samplelength_z;
|
||||
// Calculate the integer coordinates
|
||||
int x0 = (x > 0.0 ? (int)x : (int)x - 1);
|
||||
int y0 = (y > 0.0 ? (int)y : (int)y - 1);
|
||||
int z0 = (z > 0.0 ? (int)z : (int)z - 1);
|
||||
// Calculate the remaining part of the coordinates
|
||||
double xl = x - (double)x0;
|
||||
double yl = y - (double)y0;
|
||||
double zl = z - (double)z0;
|
||||
// Get values for corners of cube
|
||||
double v000 = intGet(x0, y0, z0);
|
||||
double v100 = intGet(x0+1, y0, z0);
|
||||
double v010 = intGet(x0, y0+1, z0);
|
||||
double v110 = intGet(x0+1, y0+1, z0);
|
||||
double v001 = intGet(x0, y0, z0+1);
|
||||
double v101 = intGet(x0+1, y0, z0+1);
|
||||
double v011 = intGet(x0, y0+1, z0+1);
|
||||
double v111 = intGet(x0+1, y0+1, z0+1);
|
||||
// Interpolate
|
||||
return triLinearInterpolation(v000,v100,v010,v110,v001,v101,v011,v111,xl,yl,zl);
|
||||
}
|
||||
|
||||
108
misc/noise.h
@@ -1,108 +0,0 @@
|
||||
/*
|
||||
Minetest-c55
|
||||
Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 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 General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU 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 NOISE_HEADER
|
||||
#define NOISE_HEADER
|
||||
|
||||
double easeCurve(double t);
|
||||
|
||||
// Return value: -1 ... 1
|
||||
double noise2d(int x, int y, int seed);
|
||||
double noise3d(int x, int y, int z, int seed);
|
||||
|
||||
double noise2d_gradient(double x, double y, int seed);
|
||||
double noise3d_gradient(double x, double y, double z, int seed);
|
||||
|
||||
double noise2d_perlin(double x, double y, int seed,
|
||||
int octaves, double persistence);
|
||||
|
||||
double noise2d_perlin_abs(double x, double y, int seed,
|
||||
int octaves, double persistence);
|
||||
|
||||
double noise3d_perlin(double x, double y, double z, int seed,
|
||||
int octaves, double persistence);
|
||||
|
||||
double noise3d_perlin_abs(double x, double y, double z, int seed,
|
||||
int octaves, double persistence);
|
||||
|
||||
enum NoiseType
|
||||
{
|
||||
NOISE_PERLIN,
|
||||
NOISE_PERLIN_ABS,
|
||||
NOISE_PERLIN_CONTOUR,
|
||||
NOISE_PERLIN_CONTOUR_FLIP_YZ
|
||||
};
|
||||
|
||||
struct NoiseParams
|
||||
{
|
||||
NoiseType type;
|
||||
int seed;
|
||||
int octaves;
|
||||
double persistence;
|
||||
double pos_scale;
|
||||
double noise_scale; // Useful for contour noises
|
||||
|
||||
NoiseParams(NoiseType type_=NOISE_PERLIN, int seed_=0,
|
||||
int octaves_=3, double persistence_=0.5,
|
||||
double pos_scale_=100.0, double noise_scale_=1.0):
|
||||
type(type_),
|
||||
seed(seed_),
|
||||
octaves(octaves_),
|
||||
persistence(persistence_),
|
||||
pos_scale(pos_scale_),
|
||||
noise_scale(noise_scale_)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
double noise3d_param(const NoiseParams ¶m, double x, double y, double z);
|
||||
|
||||
class NoiseBuffer
|
||||
{
|
||||
public:
|
||||
NoiseBuffer();
|
||||
~NoiseBuffer();
|
||||
|
||||
void clear();
|
||||
void create(const NoiseParams ¶m,
|
||||
double first_x, double first_y, double first_z,
|
||||
double last_x, double last_y, double last_z,
|
||||
double samplelength_x, double samplelength_y, double samplelength_z);
|
||||
void multiply(const NoiseParams ¶m);
|
||||
// Deprecated
|
||||
void create(int seed, int octaves, double persistence,
|
||||
bool abs,
|
||||
double first_x, double first_y, double first_z,
|
||||
double last_x, double last_y, double last_z,
|
||||
double samplelength_x, double samplelength_y, double samplelength_z);
|
||||
|
||||
void intSet(int x, int y, int z, double d);
|
||||
void intMultiply(int x, int y, int z, double d);
|
||||
double intGet(int x, int y, int z);
|
||||
double get(double x, double y, double z);
|
||||
|
||||
private:
|
||||
double *m_data;
|
||||
double m_start_x, m_start_y, m_start_z;
|
||||
double m_samplelength_x, m_samplelength_y, m_samplelength_z;
|
||||
int m_size_x, m_size_y, m_size_z;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
345
old/ancient_main_comment.txt
Normal file
@@ -0,0 +1,345 @@
|
||||
------------------------------------------------------------------
|
||||
The ancient comment from the beginning of main.cpp is stored here.
|
||||
------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
=============================== NOTES ==============================
|
||||
NOTE: Things starting with TODO are sometimes only suggestions.
|
||||
|
||||
NOTE: iostream.imbue(std::locale("C")) is very slow
|
||||
NOTE: Global locale is now set at initialization
|
||||
|
||||
NOTE: If VBO (EHM_STATIC) is used, remember to explicitly free the
|
||||
hardware buffer (it is not freed automatically)
|
||||
|
||||
NOTE: A random to-do list saved here as documentation:
|
||||
A list of "active blocks" in which stuff happens. (+=done)
|
||||
+ Add a never-resetted game timer to the server
|
||||
+ Add a timestamp value to blocks
|
||||
+ The simple rule: All blocks near some player are "active"
|
||||
- Do stuff in real time in active blocks
|
||||
+ Handle objects
|
||||
- Grow grass, delete leaves without a tree
|
||||
- Spawn some mobs based on some rules
|
||||
- Transform cobble to mossy cobble near water
|
||||
- Run a custom script
|
||||
- ...And all kinds of other dynamic stuff
|
||||
+ Keep track of when a block becomes active and becomes inactive
|
||||
+ When a block goes inactive:
|
||||
+ Store objects statically to block
|
||||
+ Store timer value as the timestamp
|
||||
+ When a block goes active:
|
||||
+ Create active objects out of static objects
|
||||
- Simulate the results of what would have happened if it would have
|
||||
been active for all the time
|
||||
- Grow a lot of grass and so on
|
||||
+ Initially it is fine to send information about every active object
|
||||
to every player. Eventually it should be modified to only send info
|
||||
about the nearest ones.
|
||||
+ This was left to be done by the old system and it sends only the
|
||||
nearest ones.
|
||||
|
||||
NOTE: Seeds in 1260:6c77e7dbfd29:
|
||||
5721858502589302589:
|
||||
Spawns you on a small sand island with a surface dungeon
|
||||
2983455799928051958:
|
||||
Enormous jungle + a surface dungeon at ~(250,0,0)
|
||||
|
||||
Old, wild and random suggestions that probably won't be done:
|
||||
-------------------------------------------------------------
|
||||
|
||||
SUGG: If player is on ground, mainly fetch ground-level blocks
|
||||
|
||||
SUGG: Expose Connection's seqnums and ACKs to server and client.
|
||||
- This enables saving many packets and making a faster connection
|
||||
- This also enables server to check if client has received the
|
||||
most recent block sent, for example.
|
||||
SUGG: Add a sane bandwidth throttling system to Connection
|
||||
|
||||
SUGG: More fine-grained control of client's dumping of blocks from
|
||||
memory
|
||||
- ...What does this mean in the first place?
|
||||
|
||||
SUGG: A map editing mode (similar to dedicated server mode)
|
||||
|
||||
SUGG: Transfer more blocks in a single packet
|
||||
SUGG: A blockdata combiner class, to which blocks are added and at
|
||||
destruction it sends all the stuff in as few packets as possible.
|
||||
SUGG: Make a PACKET_COMBINED which contains many subpackets. Utilize
|
||||
it by sending more stuff in a single packet.
|
||||
- Add a packet queue to RemoteClient, from which packets will be
|
||||
combined with object data packets
|
||||
- This is not exactly trivial: the object data packets are
|
||||
sometimes very big by themselves
|
||||
- This might not give much network performance gain though.
|
||||
|
||||
SUGG: Precalculate lighting translation table at runtime (at startup)
|
||||
- This is not doable because it is currently hand-made and not
|
||||
based on some mathematical function.
|
||||
- Note: This has been changing lately
|
||||
|
||||
SUGG: A version number to blocks, which increments when the block is
|
||||
modified (node add/remove, water update, lighting update)
|
||||
- This can then be used to make sure the most recent version of
|
||||
a block has been sent to client, for example
|
||||
|
||||
SUGG: Make the amount of blocks sending to client and the total
|
||||
amount of blocks dynamically limited. Transferring blocks is the
|
||||
main network eater of this system, so it is the one that has
|
||||
to be throttled so that RTTs stay low.
|
||||
|
||||
SUGG: Meshes of blocks could be split into 6 meshes facing into
|
||||
different directions and then only those drawn that need to be
|
||||
|
||||
SUGG: Background music based on cellular automata?
|
||||
http://www.earslap.com/projectslab/otomata
|
||||
|
||||
SUGG: Simple light color information to air
|
||||
|
||||
SUGG: Server-side objects could be moved based on nodes to enable very
|
||||
lightweight operation and simple AI
|
||||
- Not practical; client would still need to show smooth movement.
|
||||
|
||||
SUGG: Make a system for pregenerating quick information for mapblocks, so
|
||||
that the client can show them as cubes before they are actually sent
|
||||
or even generated.
|
||||
|
||||
SUGG: Erosion simulation at map generation time
|
||||
- This might be plausible if larger areas of map were pregenerated
|
||||
without lighting (which is slow)
|
||||
- Simulate water flows, which would carve out dirt fast and
|
||||
then turn stone into gravel and sand and relocate it.
|
||||
- How about relocating minerals, too? Coal and gold in
|
||||
downstream sand and gravel would be kind of cool
|
||||
- This would need a better way of handling minerals, mainly
|
||||
to have mineral content as a separate field. the first
|
||||
parameter field is free for this.
|
||||
- Simulate rock falling from cliffs when water has removed
|
||||
enough solid rock from the bottom
|
||||
|
||||
SUGG: For non-mapgen FarMesh: Add a per-sector database to store surface
|
||||
stuff as simple flags/values
|
||||
- Light?
|
||||
- A building?
|
||||
And at some point make the server send this data to the client too,
|
||||
instead of referring to the noise functions
|
||||
- Ground height
|
||||
- Surface ground type
|
||||
- Trees?
|
||||
|
||||
Gaming ideas:
|
||||
-------------
|
||||
|
||||
- Aim for something like controlling a single dwarf in Dwarf Fortress
|
||||
- The player could go faster by a crafting a boat, or riding an animal
|
||||
- Random NPC traders. what else?
|
||||
|
||||
Game content:
|
||||
-------------
|
||||
|
||||
- When furnace is destroyed, move items to player's inventory
|
||||
- Add lots of stuff
|
||||
- Glass blocks
|
||||
- Growing grass, decaying leaves
|
||||
- This can be done in the active blocks I guess.
|
||||
- Lots of stuff can be done in the active blocks.
|
||||
- Uh, is there an active block list somewhere? I think not. Add it.
|
||||
- Breaking weak structures
|
||||
- This can probably be accomplished in the same way as grass
|
||||
- Player health points
|
||||
- When player dies, throw items on map (needs better item-on-map
|
||||
implementation)
|
||||
- Cobble to get mossy if near water
|
||||
- More slots in furnace source list, so that multiple ingredients
|
||||
are possible.
|
||||
- Keys to chests?
|
||||
|
||||
- The Treasure Guard; a big monster with a hammer
|
||||
- The hammer does great damage, shakes the ground and removes a block
|
||||
- You can drop on top of it, and have some time to attack there
|
||||
before he shakes you off
|
||||
|
||||
- Maybe the difficulty could come from monsters getting tougher in
|
||||
far-away places, and the player starting to need something from
|
||||
there when time goes by.
|
||||
- The player would have some of that stuff at the beginning, and
|
||||
would need new supplies of it when it runs out
|
||||
|
||||
- A bomb
|
||||
- A spread-items-on-map routine for the bomb, and for dying players
|
||||
|
||||
- Fighting:
|
||||
- Proper sword swing simulation
|
||||
- Player should get damage from colliding to a wall at high speed
|
||||
|
||||
Documentation:
|
||||
--------------
|
||||
|
||||
Build system / running:
|
||||
-----------------------
|
||||
|
||||
Networking and serialization:
|
||||
-----------------------------
|
||||
|
||||
SUGG: Fix address to be ipv6 compatible
|
||||
|
||||
User Interface:
|
||||
---------------
|
||||
|
||||
Graphics:
|
||||
---------
|
||||
|
||||
SUGG: Combine MapBlock's face caches to so big pieces that VBO
|
||||
can be used
|
||||
- That is >500 vertices
|
||||
- This is not easy; all the MapBlocks close to the player would
|
||||
still need to be drawn separately and combining the blocks
|
||||
would have to happen in a background thread
|
||||
|
||||
SUGG: Make fetching sector's blocks more efficient when rendering
|
||||
sectors that have very large amounts of blocks (on client)
|
||||
- Is this necessary at all?
|
||||
|
||||
SUGG: Draw cubes in inventory directly with 3D drawing commands, so that
|
||||
animating them is easier.
|
||||
|
||||
SUGG: Option for enabling proper alpha channel for textures
|
||||
|
||||
TODO: Flowing water animation
|
||||
|
||||
TODO: A setting for enabling bilinear filtering for textures
|
||||
|
||||
TODO: Better control of draw_control.wanted_max_blocks
|
||||
|
||||
TODO: Further investigate the use of GPU lighting in addition to the
|
||||
current one
|
||||
|
||||
TODO: Artificial (night) light could be more yellow colored than sunlight.
|
||||
- This is technically doable.
|
||||
- Also the actual colors of the textures could be made less colorful
|
||||
in the dark but it's a bit more difficult.
|
||||
|
||||
SUGG: Somehow make the night less colorful
|
||||
|
||||
TODO: Occlusion culling
|
||||
- At the same time, move some of the renderMap() block choosing code
|
||||
to the same place as where the new culling happens.
|
||||
- Shoot some rays per frame and when ready, make a new list of
|
||||
blocks for usage of renderMap and give it a new pointer to it.
|
||||
|
||||
Configuration:
|
||||
--------------
|
||||
|
||||
Client:
|
||||
-------
|
||||
|
||||
TODO: Untie client network operations from framerate
|
||||
- Needs some input queues or something
|
||||
- This won't give much performance boost because calculating block
|
||||
meshes takes so long
|
||||
|
||||
SUGG: Make morning and evening transition more smooth and maybe shorter
|
||||
|
||||
TODO: Don't update all meshes always on single node changes, but
|
||||
check which ones should be updated
|
||||
- implement Map::updateNodeMeshes() and the usage of it
|
||||
- It will give almost always a 4x boost in mesh update performance.
|
||||
|
||||
- A weapon engine
|
||||
|
||||
- Tool/weapon visualization
|
||||
|
||||
FIXME: When disconnected to the menu, memory is not freed properly
|
||||
|
||||
TODO: Investigate how much the mesh generator thread gets used when
|
||||
transferring map data
|
||||
|
||||
Server:
|
||||
-------
|
||||
|
||||
SUGG: Make an option to the server to disable building and digging near
|
||||
the starting position
|
||||
|
||||
FIXME: Server sometimes goes into some infinite PeerNotFoundException loop
|
||||
|
||||
* Fix the problem with the server constantly saving one or a few
|
||||
blocks? List the first saved block, maybe it explains.
|
||||
- It is probably caused by oscillating water
|
||||
- TODO: Investigate if this still happens (this is a very old one)
|
||||
* Make a small history check to transformLiquids to detect and log
|
||||
continuous oscillations, in such detail that they can be fixed.
|
||||
|
||||
FIXME: The new optimized map sending doesn't sometimes send enough blocks
|
||||
from big caves and such
|
||||
FIXME: Block send distance configuration does not take effect for some reason
|
||||
|
||||
Environment:
|
||||
------------
|
||||
|
||||
TODO: Add proper hooks to when adding and removing active blocks
|
||||
|
||||
TODO: Finish the ActiveBlockModifier stuff and use it for something
|
||||
|
||||
Objects:
|
||||
--------
|
||||
|
||||
TODO: Get rid of MapBlockObjects and use only ActiveObjects
|
||||
- Skipping the MapBlockObject data is nasty - there is no "total
|
||||
length" stored; have to make a SkipMBOs function which contains
|
||||
enough of the current code to skip them properly.
|
||||
|
||||
SUGG: MovingObject::move and Player::move are basically the same.
|
||||
combine them.
|
||||
- NOTE: This is a bit tricky because player has the sneaking ability
|
||||
- NOTE: Player::move is more up-to-date.
|
||||
- NOTE: There is a simple move implementation now in collision.{h,cpp}
|
||||
- NOTE: MovingObject will be deleted (MapBlockObject)
|
||||
|
||||
TODO: Add a long step function to objects that is called with the time
|
||||
difference when block activates
|
||||
|
||||
Map:
|
||||
----
|
||||
|
||||
TODO: Flowing water to actually contain flow direction information
|
||||
- There is a space for this - it just has to be implemented.
|
||||
|
||||
TODO: Consider smoothening cave floors after generating them
|
||||
|
||||
TODO: Fix make_tree, make_* to use seed-position-consistent pseudorandom
|
||||
- delta also
|
||||
|
||||
Misc. stuff:
|
||||
------------
|
||||
TODO: Make sure server handles removing grass when a block is placed (etc)
|
||||
- The client should not do it by itself
|
||||
- NOTE: I think nobody does it currently...
|
||||
TODO: Block cube placement around player's head
|
||||
TODO: Protocol version field
|
||||
TODO: Think about using same bits for material for fences and doors, for
|
||||
example
|
||||
|
||||
SUGG: Restart irrlicht completely when coming back to main menu from game.
|
||||
- This gets rid of everything that is stored in irrlicht's caches.
|
||||
- This might be needed for texture pack selection in menu
|
||||
|
||||
TODO: Merge bahamada's audio stuff (clean patch available)
|
||||
|
||||
Making it more portable:
|
||||
------------------------
|
||||
|
||||
Stuff to do before release:
|
||||
---------------------------
|
||||
|
||||
Fixes to the current release:
|
||||
-----------------------------
|
||||
|
||||
Stuff to do after release:
|
||||
---------------------------
|
||||
|
||||
Doing currently:
|
||||
----------------
|
||||
|
||||
======================================================================
|
||||
|
||||
*/
|
||||
@@ -3,6 +3,51 @@ Minetest-c55 changelog
|
||||
This should contain all the major changes.
|
||||
For minor stuff, refer to the commit log of the repository.
|
||||
|
||||
0.3.1: (released on 2011-11-09)
|
||||
- Fix frustum culling (previous versions have rendered too much stuff that is not actually visible (about 180 degrees, while should have been more like 100.))
|
||||
- Add occlusion culling (improves performance a lot)
|
||||
- Add “3d clouds” on/off checkbox in main menu
|
||||
- Add “opaque water” on/off checkbox
|
||||
- Fix some random minor stuff
|
||||
- Turn mipmapping off (This makes far-away textures a bit noisier but better looking)
|
||||
- Add Command-line signal handler for Windows (contributed by SpeedProg)
|
||||
- Fix network layer segmentation fault introduced in 0.3.dev-20111021
|
||||
- Fix water-glass and water-lava and lava-glass surfaces
|
||||
|
||||
0.3.0: (released on 2011-11-01)
|
||||
- Some small fixes
|
||||
0.3.dev-20111021:
|
||||
- Modify dungeon masters to only try to shoot players
|
||||
- Fix object duplication bug at block load/unload bug
|
||||
- Improve network layer
|
||||
0.3.dev-20111016:
|
||||
- Locked chest (contributed)
|
||||
- Server user limit setting (max_users)
|
||||
- Wielded tool is shown in HUD (contributed)
|
||||
- View bobbing (contributed)
|
||||
- Saplings that drop from leaf blocks and when placed on ground will grow to trees (contributed)
|
||||
- Optimized map saving (does not re-save everything all the time)
|
||||
- New mob system and new mob: dungeon master
|
||||
- Death/respawn screen
|
||||
|
||||
0.2.20110922_3:
|
||||
- Fix the build for MSVC2010; also released for windows using MSVC2010.
|
||||
|
||||
0.2.20110922_1:
|
||||
- Make client report a newer version number to the server than 2011-07-31 does and make server disallow old clients
|
||||
|
||||
0.2.20110922:
|
||||
- Map is saved in an SQLite database file (by Queatz)
|
||||
- Ladders (MarkTraceur)
|
||||
- Lava
|
||||
- Apple trees (sfan5)
|
||||
- Slightly better looking inventory with transparency
|
||||
- /me chat command (Oblomov)
|
||||
- Using chosen map seed possible through fixed_map_seed configuration option (kahrl)
|
||||
- Fix the long-existed PeerNotFound loop bug
|
||||
- Some translations and localization-related fixes
|
||||
- Lots of small fixes
|
||||
|
||||
2011-07-31_3:
|
||||
- Fixes a bug that made the server to deny non-empty passwords from players connecting the first time
|
||||
|
||||
486
po/da/minetest.po
Normal file
@@ -0,0 +1,486 @@
|
||||
# German translations for minetest-c55 package.
|
||||
# Copyright (C) 2011 celeron
|
||||
# This file is distributed under the same license as the minetest-c55 package.
|
||||
# Frederik Helth <Guides@live.dk>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-08-02 12:36+0200\n"
|
||||
"PO-Revision-Date: 2011-08-02 00:31+0100\n"
|
||||
"Last-Translator: Frederik Helth <Guides@live.dk>\n"
|
||||
"Language-Team: \n"
|
||||
"Language: da\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:84
|
||||
msgid "KEYBINDINGS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:94
|
||||
msgid "Forward"
|
||||
msgstr "Frem"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:111
|
||||
msgid "Backward"
|
||||
msgstr "Tilbage"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:127 src/guiKeyChangeMenu.h:38
|
||||
msgid "Left"
|
||||
msgstr "Venstre"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:142 src/guiKeyChangeMenu.h:38
|
||||
msgid "Right"
|
||||
msgstr "Højre"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:158
|
||||
msgid "Use"
|
||||
msgstr "Brug"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:173
|
||||
msgid "Sneak"
|
||||
msgstr "Snig"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:189
|
||||
msgid "Jump"
|
||||
msgstr "Hop"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:204
|
||||
msgid "Inventory"
|
||||
msgstr "Ting"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:220
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:236
|
||||
msgid "Toggle fly"
|
||||
msgstr "Flyvning"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:251
|
||||
msgid "Toggle fast"
|
||||
msgstr "Hurtig flyvning"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:266
|
||||
msgid "Range select"
|
||||
msgstr "Afstands load"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:283
|
||||
msgid "Print stacks"
|
||||
msgstr "Print stykker"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:298
|
||||
msgid "Save"
|
||||
msgstr "Gem"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:304 src/guiKeyChangeMenu.h:33
|
||||
msgid "Cancel"
|
||||
msgstr "Afslut"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:537 src/guiKeyChangeMenu.cpp:542
|
||||
#: src/guiKeyChangeMenu.cpp:547 src/guiKeyChangeMenu.cpp:552
|
||||
#: src/guiKeyChangeMenu.cpp:557 src/guiKeyChangeMenu.cpp:562
|
||||
#: src/guiKeyChangeMenu.cpp:567 src/guiKeyChangeMenu.cpp:572
|
||||
#: src/guiKeyChangeMenu.cpp:577 src/guiKeyChangeMenu.cpp:582
|
||||
#: src/guiKeyChangeMenu.cpp:587 src/guiKeyChangeMenu.cpp:592
|
||||
#: src/guiKeyChangeMenu.cpp:597
|
||||
msgid "press Key"
|
||||
msgstr "Tryk knap"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Left Button"
|
||||
msgstr "Venstre Knap"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Middle Button"
|
||||
msgstr "Midt Knap"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Right Button"
|
||||
msgstr "Højre Knap"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "X Button 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Back"
|
||||
msgstr "Tilbage"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Clear"
|
||||
msgstr "Rens"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Return"
|
||||
msgstr "Tilbage"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Capital"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Control"
|
||||
msgstr "Kontrol"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Kana"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Escape"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Junja"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Kanji"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Nonconvert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Accept"
|
||||
msgstr "Accepter"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "End"
|
||||
msgstr "Slut"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Home"
|
||||
msgstr "Hjem"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Mode Change"
|
||||
msgstr "Mode skift"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Next"
|
||||
msgstr "Næste"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Priot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Space"
|
||||
msgstr "Mellemrum"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Down"
|
||||
msgstr "Ned"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Execute"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Select"
|
||||
msgstr "Vælge"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Up"
|
||||
msgstr "Op"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Delete"
|
||||
msgstr "Slet"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Help"
|
||||
msgstr "Hjælp"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Insert"
|
||||
msgstr "Indset"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Snapshot"
|
||||
msgstr "Screenshot"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:42
|
||||
msgid "Left Windows"
|
||||
msgstr "Venstre windows"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 0"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Right Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 3"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 4"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 5"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 6"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 7"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad *"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad +"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad -"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad /"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 8"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 9"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Num Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Scroll Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Left Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Right Shight"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Comma"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Minus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Plus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "Attn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "CrSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Erase OEF"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "ExSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "OEM Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "PA1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Play"
|
||||
msgstr "Spil"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:181
|
||||
msgid "Name/Password"
|
||||
msgstr "Navn/kodeord"
|
||||
|
||||
#: src/guiMainMenu.cpp:206
|
||||
msgid "Address/Port"
|
||||
msgstr "Adresse/port"
|
||||
|
||||
#: src/guiMainMenu.cpp:228
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Lad black for at spille localt"
|
||||
|
||||
#: src/guiMainMenu.cpp:235
|
||||
msgid "Fancy trees"
|
||||
msgstr "Fancy trær"
|
||||
|
||||
#: src/guiMainMenu.cpp:241
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:249
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Start spil"
|
||||
|
||||
#: src/guiMainMenu.cpp:258
|
||||
msgid "Change keys"
|
||||
msgstr "Indstillinger"
|
||||
|
||||
#: src/guiMainMenu.cpp:281
|
||||
msgid "Creative Mode"
|
||||
msgstr "Kreativ mode"
|
||||
|
||||
#: src/guiMainMenu.cpp:287
|
||||
msgid "Enable Damage"
|
||||
msgstr "Tag imod skade"
|
||||
|
||||
#: src/guiMainMenu.cpp:295
|
||||
msgid "Delete map"
|
||||
msgstr "Slet mappen"
|
||||
|
||||
#: src/guiMessageMenu.cpp:94 src/guiTextInputMenu.cpp:112
|
||||
msgid "Proceed"
|
||||
msgstr "Fortsæt"
|
||||
|
||||
#: src/guiPasswordChange.cpp:103
|
||||
msgid "Old Password"
|
||||
msgstr "Gamle kodeord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:120
|
||||
msgid "New Password"
|
||||
msgstr "Nye kodeord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:136
|
||||
msgid "Confirm Password"
|
||||
msgstr "Gentag kodeord"
|
||||
|
||||
#: src/guiPasswordChange.cpp:153
|
||||
msgid "Change"
|
||||
msgstr "Skift"
|
||||
|
||||
#: src/guiPasswordChange.cpp:162
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Kodeordne matcher ikke hinanden!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:111
|
||||
msgid "Continue"
|
||||
msgstr "Fortsæt"
|
||||
|
||||
#: src/guiPauseMenu.cpp:118
|
||||
msgid "Change Password"
|
||||
msgstr "Skift kodeord"
|
||||
|
||||
#: src/guiPauseMenu.cpp:125
|
||||
msgid "Disconnect"
|
||||
msgstr "Logud"
|
||||
|
||||
#: src/guiPauseMenu.cpp:132
|
||||
msgid "Exit to OS"
|
||||
msgstr "Afslut til OS"
|
||||
|
||||
#: src/guiPauseMenu.cpp:139
|
||||
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 ""
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-22 11:00+0200\n"
|
||||
"PO-Revision-Date: 2011-07-20 16:58+0100\n"
|
||||
"POT-Creation-Date: 2011-08-02 12:36+0200\n"
|
||||
"PO-Revision-Date: 2011-08-02 11:54+0100\n"
|
||||
"Last-Translator: Constantin Wenger <constantin.wenger@googlemail.com>\n"
|
||||
"Language-Team: Deutsch <>\n"
|
||||
"Language: de\n"
|
||||
@@ -17,92 +17,467 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||
|
||||
#: src/guiMainMenu.cpp:180
|
||||
#: src/guiKeyChangeMenu.cpp:84
|
||||
msgid "KEYBINDINGS"
|
||||
msgstr "TASTEN EINST."
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:94
|
||||
msgid "Forward"
|
||||
msgstr "Vorwärts"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:111
|
||||
msgid "Backward"
|
||||
msgstr "Rückwärts"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:127 src/guiKeyChangeMenu.h:38
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:142 src/guiKeyChangeMenu.h:38
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:158
|
||||
msgid "Use"
|
||||
msgstr "Benutzen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:173
|
||||
msgid "Sneak"
|
||||
msgstr "Kriechen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:189
|
||||
msgid "Jump"
|
||||
msgstr "Springen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:204
|
||||
msgid "Inventory"
|
||||
msgstr "Inventar"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:220
|
||||
msgid "Chat"
|
||||
msgstr "Chat"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:236
|
||||
msgid "Toggle fly"
|
||||
msgstr "Fliegen umsch."
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:251
|
||||
msgid "Toggle fast"
|
||||
msgstr "Speed umsch."
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:266
|
||||
msgid "Range select"
|
||||
msgstr "Entfernung wählen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:283
|
||||
msgid "Print stacks"
|
||||
msgstr "Stack ausgeben"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:298
|
||||
msgid "Save"
|
||||
msgstr "Speichern"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:304 src/guiKeyChangeMenu.h:33
|
||||
msgid "Cancel"
|
||||
msgstr "Abbrechen"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:537 src/guiKeyChangeMenu.cpp:542
|
||||
#: src/guiKeyChangeMenu.cpp:547 src/guiKeyChangeMenu.cpp:552
|
||||
#: src/guiKeyChangeMenu.cpp:557 src/guiKeyChangeMenu.cpp:562
|
||||
#: src/guiKeyChangeMenu.cpp:567 src/guiKeyChangeMenu.cpp:572
|
||||
#: src/guiKeyChangeMenu.cpp:577 src/guiKeyChangeMenu.cpp:582
|
||||
#: src/guiKeyChangeMenu.cpp:587 src/guiKeyChangeMenu.cpp:592
|
||||
#: src/guiKeyChangeMenu.cpp:597
|
||||
msgid "press Key"
|
||||
msgstr "Taste drücken"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Left Button"
|
||||
msgstr "linke Taste"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Middle Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Right Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "X Button 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Back"
|
||||
msgstr "Rücktaste"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Clear"
|
||||
msgstr "löschen"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Return"
|
||||
msgstr "Return"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Tab"
|
||||
msgstr "Tab"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Capital"
|
||||
msgstr "Feststellen"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Control"
|
||||
msgstr "Strg"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Kana"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Menu"
|
||||
msgstr "Menü"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Pause"
|
||||
msgstr "Pause"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Shift"
|
||||
msgstr "Umsch."
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Escape"
|
||||
msgstr "Escape"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Junja"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Kanji"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Nonconvert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Accept"
|
||||
msgstr "Annehmen"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "End"
|
||||
msgstr "Ende"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Home"
|
||||
msgstr "Pos1"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Mode Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Next"
|
||||
msgstr "Bild runter"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Priot"
|
||||
msgstr "Bild hoch"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Space"
|
||||
msgstr "Leertaste"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Down"
|
||||
msgstr "Runter"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Execute"
|
||||
msgstr "Ausführen"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Print"
|
||||
msgstr "Druck"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Select"
|
||||
msgstr "Select"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Up"
|
||||
msgstr "Hoch"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Delete"
|
||||
msgstr "Entf"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Help"
|
||||
msgstr "Hilfe"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Insert"
|
||||
msgstr "Einfg"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Snapshot"
|
||||
msgstr "Schnapschuss"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:42
|
||||
msgid "Left Windows"
|
||||
msgstr "Win links"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 0"
|
||||
msgstr "Ziffernblock 0"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 1"
|
||||
msgstr "Ziffernblock 1"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Right Windows"
|
||||
msgstr "Win rechts"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Sleep"
|
||||
msgstr "Schlaf"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 2"
|
||||
msgstr "Ziffernblock 2"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 3"
|
||||
msgstr "Ziffernblock 3"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 4"
|
||||
msgstr "Ziffernblock 4"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 5"
|
||||
msgstr "Ziffernblock 5"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 6"
|
||||
msgstr "Ziffernblock 6"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 7"
|
||||
msgstr "Ziffernblock 7"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad *"
|
||||
msgstr "Ziffernblock *"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad +"
|
||||
msgstr "Ziffernblock +"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad -"
|
||||
msgstr "Ziffernblock -"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad /"
|
||||
msgstr "Ziffernblock /"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 8"
|
||||
msgstr "Ziffernblock 8"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 9"
|
||||
msgstr "Ziffernblock 9"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Num Lock"
|
||||
msgstr "Num"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Scroll Lock"
|
||||
msgstr "Rollen"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Left Shift"
|
||||
msgstr "Umsch. links"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Right Shight"
|
||||
msgstr "Umsch. rechts"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Control"
|
||||
msgstr "Strg links"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Menu"
|
||||
msgstr "Alt"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Control"
|
||||
msgstr "Strg rechts"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Menu"
|
||||
msgstr "Alt Gr"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Comma"
|
||||
msgstr "Komma"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Minus"
|
||||
msgstr "Minus"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Period"
|
||||
msgstr "Punkt"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Plus"
|
||||
msgstr "Plus"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "Attn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "CrSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Erase OEF"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "ExSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "OEM Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "PA1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Play"
|
||||
msgstr "Play"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Zoom"
|
||||
msgstr "Zoom"
|
||||
|
||||
#: src/guiMainMenu.cpp:181
|
||||
msgid "Name/Password"
|
||||
msgstr "Name/Passwort"
|
||||
|
||||
#: src/guiMainMenu.cpp:203
|
||||
#: src/guiMainMenu.cpp:206
|
||||
msgid "Address/Port"
|
||||
msgstr "Adresse / Port"
|
||||
|
||||
#: src/guiMainMenu.cpp:223
|
||||
#: src/guiMainMenu.cpp:228
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Lasse die Adresse frei um einen eigenen Server zu starten"
|
||||
|
||||
#: src/guiMainMenu.cpp:230
|
||||
#: src/guiMainMenu.cpp:235
|
||||
msgid "Fancy trees"
|
||||
msgstr "Schöne Bäume"
|
||||
|
||||
#: src/guiMainMenu.cpp:236
|
||||
#: src/guiMainMenu.cpp:241
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Besseres Licht"
|
||||
|
||||
#: src/guiMainMenu.cpp:244
|
||||
#: src/guiMainMenu.cpp:249
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Spiel starten / Verbinden"
|
||||
|
||||
#: src/guiMainMenu.cpp:253
|
||||
#: src/guiMainMenu.cpp:258
|
||||
msgid "Change keys"
|
||||
msgstr "Tastenbelegung ändern"
|
||||
msgstr "Tasten ändern"
|
||||
|
||||
#: src/guiMainMenu.cpp:276
|
||||
#: src/guiMainMenu.cpp:281
|
||||
msgid "Creative Mode"
|
||||
msgstr "Kreativitätsmodus"
|
||||
|
||||
#: src/guiMainMenu.cpp:282
|
||||
#: src/guiMainMenu.cpp:287
|
||||
msgid "Enable Damage"
|
||||
msgstr "Schaden einschalten"
|
||||
|
||||
#: src/guiMainMenu.cpp:290
|
||||
#: src/guiMainMenu.cpp:295
|
||||
msgid "Delete map"
|
||||
msgstr "Karte löschen"
|
||||
|
||||
#: src/guiMessageMenu.cpp:93 src/guiTextInputMenu.cpp:111
|
||||
#: src/guiMessageMenu.cpp:94 src/guiTextInputMenu.cpp:112
|
||||
msgid "Proceed"
|
||||
msgstr "Fortsetzen"
|
||||
|
||||
#: src/guiPasswordChange.cpp:102
|
||||
#: src/guiPasswordChange.cpp:103
|
||||
msgid "Old Password"
|
||||
msgstr "Altes Passwort"
|
||||
|
||||
#: src/guiPasswordChange.cpp:117
|
||||
#: src/guiPasswordChange.cpp:120
|
||||
msgid "New Password"
|
||||
msgstr "Neues Passwort"
|
||||
|
||||
#: src/guiPasswordChange.cpp:131
|
||||
#: src/guiPasswordChange.cpp:136
|
||||
msgid "Confirm Password"
|
||||
msgstr "Passwort wiederholen"
|
||||
|
||||
#: src/guiPasswordChange.cpp:146
|
||||
#: src/guiPasswordChange.cpp:153
|
||||
msgid "Change"
|
||||
msgstr "Ändern"
|
||||
|
||||
#: src/guiPasswordChange.cpp:155
|
||||
#: src/guiPasswordChange.cpp:162
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Passwörter passen nicht zusammen"
|
||||
|
||||
#: src/guiPauseMenu.cpp:110
|
||||
#: src/guiPauseMenu.cpp:111
|
||||
msgid "Continue"
|
||||
msgstr "Weiter"
|
||||
|
||||
#: src/guiPauseMenu.cpp:117
|
||||
#: src/guiPauseMenu.cpp:118
|
||||
msgid "Change Password"
|
||||
msgstr "Passwort ändern"
|
||||
|
||||
#: src/guiPauseMenu.cpp:124
|
||||
#: src/guiPauseMenu.cpp:125
|
||||
msgid "Disconnect"
|
||||
msgstr "Verbindung trennen"
|
||||
|
||||
#: src/guiPauseMenu.cpp:131
|
||||
#: src/guiPauseMenu.cpp:132
|
||||
msgid "Exit to OS"
|
||||
msgstr "Programm beenden"
|
||||
|
||||
#: src/guiPauseMenu.cpp:138
|
||||
#: src/guiPauseMenu.cpp:139
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Keys:\n"
|
||||
"Default Controls:\n"
|
||||
"- WASD: Walk\n"
|
||||
"- Mouse left: dig blocks\n"
|
||||
"- Mouse right: place blocks\n"
|
||||
"- Mouse left: dig/hit\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- 0...9: select item\n"
|
||||
"- Shift: sneak\n"
|
||||
@@ -113,11 +488,11 @@ msgid ""
|
||||
msgstr ""
|
||||
"Tastenkürzel:\n"
|
||||
"- WASD: Gehen\n"
|
||||
"- linke Maustaste: dig blocks\n"
|
||||
"- rechte Maustaste: place blocks\n"
|
||||
"- linke Maustaste: Blöcke aufnehmen \n"
|
||||
"- rechte Maustaste: Blöche ablegen\n"
|
||||
"- Mausrad: Item auswählen\n"
|
||||
"- 0...9: Item auswählen\n"
|
||||
"- Shift: ducken\n"
|
||||
"- R: Alle geladenen Kartenteile anzeigen, umschalten\n"
|
||||
"- R: alle geladenen Blöcke anzeigen (wechseln)\n"
|
||||
"- I: Inventarmenü\n"
|
||||
"- T: Chat\n"
|
||||
|
||||
@@ -1,113 +0,0 @@
|
||||
# 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: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-24 11:32+0300\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/guiMainMenu.cpp:180
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:203
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:223
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:230
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:236
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:244
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:253
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:276
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:282
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:290
|
||||
msgid "Delete map"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMessageMenu.cpp:93 src/guiTextInputMenu.cpp:111
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:102
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:117
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:131
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:146
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:155
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:110
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:117
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:124
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:131
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:138
|
||||
msgid ""
|
||||
"Keys:\n"
|
||||
"- WASD: Walk\n"
|
||||
"- Mouse left: dig blocks\n"
|
||||
"- Mouse right: place blocks\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 ""
|
||||
@@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.0.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-07-22 11:00+0200\n"
|
||||
"POT-Creation-Date: 2011-08-02 12:36+0200\n"
|
||||
"PO-Revision-Date: 2011-07-21 15:48+0200\n"
|
||||
"Last-Translator: Cyriaque 'Cisoun' Skrapits <cysoun@gmail.com>\n"
|
||||
"Language-Team: Français <>\n"
|
||||
@@ -17,92 +17,469 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
|
||||
|
||||
#: src/guiMainMenu.cpp:180
|
||||
#: src/guiKeyChangeMenu.cpp:84
|
||||
msgid "KEYBINDINGS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:94
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:111
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:127 src/guiKeyChangeMenu.h:38
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:142 src/guiKeyChangeMenu.h:38
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:158
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:173
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:189
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:204
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:220
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:236
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:251
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:266
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:283
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:298
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:304 src/guiKeyChangeMenu.h:33
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:537 src/guiKeyChangeMenu.cpp:542
|
||||
#: src/guiKeyChangeMenu.cpp:547 src/guiKeyChangeMenu.cpp:552
|
||||
#: src/guiKeyChangeMenu.cpp:557 src/guiKeyChangeMenu.cpp:562
|
||||
#: src/guiKeyChangeMenu.cpp:567 src/guiKeyChangeMenu.cpp:572
|
||||
#: src/guiKeyChangeMenu.cpp:577 src/guiKeyChangeMenu.cpp:582
|
||||
#: src/guiKeyChangeMenu.cpp:587 src/guiKeyChangeMenu.cpp:592
|
||||
#: src/guiKeyChangeMenu.cpp:597
|
||||
msgid "press Key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Left Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Middle Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Right Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "X Button 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Return"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Capital"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Kana"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Escape"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Junja"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Kanji"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Nonconvert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "End"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
#, fuzzy
|
||||
msgid "Mode Change"
|
||||
msgstr "Changer"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Priot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Execute"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
#, fuzzy
|
||||
msgid "Delete"
|
||||
msgstr "Supprimer carte"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Insert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Snapshot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:42
|
||||
msgid "Left Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 0"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Right Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 3"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 4"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 5"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 6"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 7"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad *"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad +"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad -"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad /"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 8"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 9"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Num Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Scroll Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Left Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Right Shight"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Comma"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Minus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Plus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "Attn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "CrSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Erase OEF"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "ExSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "OEM Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "PA1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:181
|
||||
msgid "Name/Password"
|
||||
msgstr "Nom / MdP"
|
||||
|
||||
#: src/guiMainMenu.cpp:203
|
||||
#: src/guiMainMenu.cpp:206
|
||||
msgid "Address/Port"
|
||||
msgstr "Adresse / Port"
|
||||
|
||||
#: src/guiMainMenu.cpp:223
|
||||
#: src/guiMainMenu.cpp:228
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Laisser l'adresse vide pour lancer un serveur local."
|
||||
|
||||
#: src/guiMainMenu.cpp:230
|
||||
#: src/guiMainMenu.cpp:235
|
||||
msgid "Fancy trees"
|
||||
msgstr "Arbres spéciaux"
|
||||
|
||||
#: src/guiMainMenu.cpp:236
|
||||
#: src/guiMainMenu.cpp:241
|
||||
msgid "Smooth Lighting"
|
||||
msgstr "Lumière douce"
|
||||
|
||||
#: src/guiMainMenu.cpp:244
|
||||
#: src/guiMainMenu.cpp:249
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Démarrer / Connecter"
|
||||
|
||||
#: src/guiMainMenu.cpp:253
|
||||
#: src/guiMainMenu.cpp:258
|
||||
msgid "Change keys"
|
||||
msgstr "Changer touches"
|
||||
|
||||
#: src/guiMainMenu.cpp:276
|
||||
#: src/guiMainMenu.cpp:281
|
||||
msgid "Creative Mode"
|
||||
msgstr "Mode créatif"
|
||||
|
||||
#: src/guiMainMenu.cpp:282
|
||||
#: src/guiMainMenu.cpp:287
|
||||
msgid "Enable Damage"
|
||||
msgstr "Activer blessures"
|
||||
|
||||
#: src/guiMainMenu.cpp:290
|
||||
#: src/guiMainMenu.cpp:295
|
||||
msgid "Delete map"
|
||||
msgstr "Supprimer carte"
|
||||
|
||||
#: src/guiMessageMenu.cpp:93 src/guiTextInputMenu.cpp:111
|
||||
#: src/guiMessageMenu.cpp:94 src/guiTextInputMenu.cpp:112
|
||||
msgid "Proceed"
|
||||
msgstr "OK"
|
||||
|
||||
#: src/guiPasswordChange.cpp:102
|
||||
#: src/guiPasswordChange.cpp:103
|
||||
msgid "Old Password"
|
||||
msgstr "Ancien mot de passe"
|
||||
|
||||
#: src/guiPasswordChange.cpp:117
|
||||
#: src/guiPasswordChange.cpp:120
|
||||
msgid "New Password"
|
||||
msgstr "Nouveau mot de passe"
|
||||
|
||||
#: src/guiPasswordChange.cpp:131
|
||||
#: src/guiPasswordChange.cpp:136
|
||||
msgid "Confirm Password"
|
||||
msgstr "Confirmer mot de passe"
|
||||
|
||||
#: src/guiPasswordChange.cpp:146
|
||||
#: src/guiPasswordChange.cpp:153
|
||||
msgid "Change"
|
||||
msgstr "Changer"
|
||||
|
||||
#: src/guiPasswordChange.cpp:155
|
||||
#: src/guiPasswordChange.cpp:162
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Mauvaise correspondance!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:110
|
||||
#: src/guiPauseMenu.cpp:111
|
||||
msgid "Continue"
|
||||
msgstr "Continuer"
|
||||
|
||||
#: src/guiPauseMenu.cpp:117
|
||||
#: src/guiPauseMenu.cpp:118
|
||||
msgid "Change Password"
|
||||
msgstr "Changer mot de passe"
|
||||
|
||||
#: src/guiPauseMenu.cpp:124
|
||||
#: src/guiPauseMenu.cpp:125
|
||||
msgid "Disconnect"
|
||||
msgstr "Déconnection"
|
||||
|
||||
#: src/guiPauseMenu.cpp:131
|
||||
#: src/guiPauseMenu.cpp:132
|
||||
msgid "Exit to OS"
|
||||
msgstr "Quitter le jeu"
|
||||
|
||||
#: src/guiPauseMenu.cpp:138
|
||||
#: src/guiPauseMenu.cpp:139
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"Keys:\n"
|
||||
"Default Controls:\n"
|
||||
"- WASD: Walk\n"
|
||||
"- Mouse left: dig blocks\n"
|
||||
"- Mouse right: place blocks\n"
|
||||
"- Mouse left: dig/hit\n"
|
||||
"- Mouse right: place/use\n"
|
||||
"- Mouse wheel: select item\n"
|
||||
"- 0...9: select item\n"
|
||||
"- Shift: sneak\n"
|
||||
|
||||
499
po/it/minetest.po
Normal file
@@ -0,0 +1,499 @@
|
||||
# Italian translations for minetest package.
|
||||
# Copyright (C) 2011 THE minetest'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the minetest package.
|
||||
# Giuseppe Bilotta <giuseppe.bilotta@gmail.com>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: minetest\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-08-02 12:36+0200\n"
|
||||
"PO-Revision-Date: 2011-07-24 18:56+0200\n"
|
||||
"Last-Translator: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>\n"
|
||||
"Language-Team: Italian\n"
|
||||
"Language: it\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"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:84
|
||||
msgid "KEYBINDINGS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:94
|
||||
msgid "Forward"
|
||||
msgstr "Avanti"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:111
|
||||
msgid "Backward"
|
||||
msgstr "Indietro"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:127 src/guiKeyChangeMenu.h:38
|
||||
msgid "Left"
|
||||
msgstr "Sinistra"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:142 src/guiKeyChangeMenu.h:38
|
||||
msgid "Right"
|
||||
msgstr "Destra"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:158
|
||||
msgid "Use"
|
||||
msgstr "Usa"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:173
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:189
|
||||
msgid "Jump"
|
||||
msgstr "Salta"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:204
|
||||
msgid "Inventory"
|
||||
msgstr "Invetario"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:220
|
||||
msgid "Chat"
|
||||
msgstr "Parla"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:236
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:251
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:266
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:283
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:298
|
||||
msgid "Save"
|
||||
msgstr "Salva"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:304 src/guiKeyChangeMenu.h:33
|
||||
msgid "Cancel"
|
||||
msgstr "Annulla"
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:537 src/guiKeyChangeMenu.cpp:542
|
||||
#: src/guiKeyChangeMenu.cpp:547 src/guiKeyChangeMenu.cpp:552
|
||||
#: src/guiKeyChangeMenu.cpp:557 src/guiKeyChangeMenu.cpp:562
|
||||
#: src/guiKeyChangeMenu.cpp:567 src/guiKeyChangeMenu.cpp:572
|
||||
#: src/guiKeyChangeMenu.cpp:577 src/guiKeyChangeMenu.cpp:582
|
||||
#: src/guiKeyChangeMenu.cpp:587 src/guiKeyChangeMenu.cpp:592
|
||||
#: src/guiKeyChangeMenu.cpp:597
|
||||
msgid "press Key"
|
||||
msgstr "premi tasto"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Left Button"
|
||||
msgstr "Tasto sinistro"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Middle Button"
|
||||
msgstr "Tasto centrale"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Right Button"
|
||||
msgstr "Tasto destro"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "X Button 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Back"
|
||||
msgstr "Indietro"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Return"
|
||||
msgstr "Invio"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Capital"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Kana"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Escape"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Junja"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Kanji"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Nonconvert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "End"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Mode Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Priot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Space"
|
||||
msgstr "Spazio"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Down"
|
||||
msgstr "Giù"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Execute"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Print"
|
||||
msgstr "Stampa"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Delete"
|
||||
msgstr "Cancella"
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Insert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Snapshot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:42
|
||||
msgid "Left Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 0"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Right Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 3"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 4"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 5"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 6"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 7"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad *"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad +"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad -"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad /"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 8"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 9"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Num Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Scroll Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Left Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Right Shight"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Comma"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Minus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Plus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "Attn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "CrSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Erase OEF"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "ExSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "OEM Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "PA1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:181
|
||||
msgid "Name/Password"
|
||||
msgstr "Nome/Password"
|
||||
|
||||
#: src/guiMainMenu.cpp:206
|
||||
msgid "Address/Port"
|
||||
msgstr "Indirizzo/Porta"
|
||||
|
||||
#: src/guiMainMenu.cpp:228
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr "Lascia vuoto l'indirizzo per avviare un server locale"
|
||||
|
||||
#: src/guiMainMenu.cpp:235
|
||||
msgid "Fancy trees"
|
||||
msgstr "Alberi strani"
|
||||
|
||||
#: src/guiMainMenu.cpp:241
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:249
|
||||
msgid "Start Game / Connect"
|
||||
msgstr "Avvia Gioco / Connetti"
|
||||
|
||||
#: src/guiMainMenu.cpp:258
|
||||
msgid "Change keys"
|
||||
msgstr "Modifica tasti"
|
||||
|
||||
#: src/guiMainMenu.cpp:281
|
||||
msgid "Creative Mode"
|
||||
msgstr "Modalità creativa"
|
||||
|
||||
#: src/guiMainMenu.cpp:287
|
||||
msgid "Enable Damage"
|
||||
msgstr "Attiva Danno"
|
||||
|
||||
#: src/guiMainMenu.cpp:295
|
||||
msgid "Delete map"
|
||||
msgstr "Cancella mappa"
|
||||
|
||||
#: src/guiMessageMenu.cpp:94 src/guiTextInputMenu.cpp:112
|
||||
msgid "Proceed"
|
||||
msgstr "Procedi"
|
||||
|
||||
#: src/guiPasswordChange.cpp:103
|
||||
msgid "Old Password"
|
||||
msgstr "Vecchia password"
|
||||
|
||||
#: src/guiPasswordChange.cpp:120
|
||||
msgid "New Password"
|
||||
msgstr "Nuova password"
|
||||
|
||||
#: src/guiPasswordChange.cpp:136
|
||||
msgid "Confirm Password"
|
||||
msgstr "Conferma password"
|
||||
|
||||
#: src/guiPasswordChange.cpp:153
|
||||
msgid "Change"
|
||||
msgstr "Modifica"
|
||||
|
||||
#: src/guiPasswordChange.cpp:162
|
||||
msgid "Passwords do not match!"
|
||||
msgstr "Le password non corrispondono!"
|
||||
|
||||
#: src/guiPauseMenu.cpp:111
|
||||
msgid "Continue"
|
||||
msgstr "Continua"
|
||||
|
||||
#: src/guiPauseMenu.cpp:118
|
||||
msgid "Change Password"
|
||||
msgstr "Cambia password"
|
||||
|
||||
#: src/guiPauseMenu.cpp:125
|
||||
msgid "Disconnect"
|
||||
msgstr "Disconnetti"
|
||||
|
||||
#: src/guiPauseMenu.cpp:132
|
||||
msgid "Exit to OS"
|
||||
msgstr "Esci al S.O."
|
||||
|
||||
#: src/guiPauseMenu.cpp:139
|
||||
#, fuzzy
|
||||
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 ""
|
||||
"Tasti:\n"
|
||||
"- WASD: Cammina\n"
|
||||
"- Mouse left: scava blocchi\n"
|
||||
"- Mouse right: piazza blocchi\n"
|
||||
"- Mouse wheel: seleziona oggetto\n"
|
||||
"- 0...9: seleziona oggetto\n"
|
||||
"- Shift: furtivo\n"
|
||||
"- R: (Dis)attiva motra tutti i blocchi caricati\n"
|
||||
"- I: Inventario\n"
|
||||
"- ESC: Questo menu\n"
|
||||
"- T: Parla\n"
|
||||
487
po/minetest.pot
Normal file
@@ -0,0 +1,487 @@
|
||||
# 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: 2011-08-02 12:36+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/guiKeyChangeMenu.cpp:84
|
||||
msgid "KEYBINDINGS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:94
|
||||
msgid "Forward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:111
|
||||
msgid "Backward"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:127 src/guiKeyChangeMenu.h:38
|
||||
msgid "Left"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:142 src/guiKeyChangeMenu.h:38
|
||||
msgid "Right"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:158
|
||||
msgid "Use"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:173
|
||||
msgid "Sneak"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:189
|
||||
msgid "Jump"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:204
|
||||
msgid "Inventory"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:220
|
||||
msgid "Chat"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:236
|
||||
msgid "Toggle fly"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:251
|
||||
msgid "Toggle fast"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:266
|
||||
msgid "Range select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:283
|
||||
msgid "Print stacks"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:298
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:304 src/guiKeyChangeMenu.h:33
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.cpp:537 src/guiKeyChangeMenu.cpp:542
|
||||
#: src/guiKeyChangeMenu.cpp:547 src/guiKeyChangeMenu.cpp:552
|
||||
#: src/guiKeyChangeMenu.cpp:557 src/guiKeyChangeMenu.cpp:562
|
||||
#: src/guiKeyChangeMenu.cpp:567 src/guiKeyChangeMenu.cpp:572
|
||||
#: src/guiKeyChangeMenu.cpp:577 src/guiKeyChangeMenu.cpp:582
|
||||
#: src/guiKeyChangeMenu.cpp:587 src/guiKeyChangeMenu.cpp:592
|
||||
#: src/guiKeyChangeMenu.cpp:597
|
||||
msgid "press Key"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Left Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Middle Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "Right Button"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:33
|
||||
msgid "X Button 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Back"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Return"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "Tab"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:34
|
||||
msgid "X Button 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Capital"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Kana"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:35
|
||||
msgid "Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Convert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Escape"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Final"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Junja"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Kanji"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:36
|
||||
msgid "Nonconvert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Accept"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "End"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Home"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Mode Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Next"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Priot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:37
|
||||
msgid "Space"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Down"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Execute"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Print"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Select"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:38
|
||||
msgid "Up"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Help"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Insert"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:39
|
||||
msgid "Snapshot"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:42
|
||||
msgid "Left Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Apps"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 0"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Numpad 1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Right Windows"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:43
|
||||
msgid "Sleep"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 2"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 3"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 4"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 5"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 6"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:44
|
||||
msgid "Numpad 7"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad *"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad +"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad -"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad /"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 8"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:45
|
||||
msgid "Numpad 9"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Num Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:49
|
||||
msgid "Scroll Lock"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Left Shift"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:50
|
||||
msgid "Right Shight"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Left Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Control"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:51
|
||||
msgid "Right Menu"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Comma"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Minus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Period"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:53
|
||||
msgid "Plus"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "Attn"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:57
|
||||
msgid "CrSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Erase OEF"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "ExSel"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "OEM Clear"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "PA1"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Play"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiKeyChangeMenu.h:58
|
||||
msgid "Zoom"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:181
|
||||
msgid "Name/Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:206
|
||||
msgid "Address/Port"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:228
|
||||
msgid "Leave address blank to start a local server."
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:235
|
||||
msgid "Fancy trees"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:241
|
||||
msgid "Smooth Lighting"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:249
|
||||
msgid "Start Game / Connect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:258
|
||||
msgid "Change keys"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:281
|
||||
msgid "Creative Mode"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:287
|
||||
msgid "Enable Damage"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMainMenu.cpp:295
|
||||
msgid "Delete map"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiMessageMenu.cpp:94 src/guiTextInputMenu.cpp:112
|
||||
msgid "Proceed"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:103
|
||||
msgid "Old Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:120
|
||||
msgid "New Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:136
|
||||
msgid "Confirm Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:153
|
||||
msgid "Change"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPasswordChange.cpp:162
|
||||
msgid "Passwords do not match!"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:111
|
||||
msgid "Continue"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:118
|
||||
msgid "Change Password"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:125
|
||||
msgid "Disconnect"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:132
|
||||
msgid "Exit to OS"
|
||||
msgstr ""
|
||||
|
||||
#: src/guiPauseMenu.cpp:139
|
||||
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 ""
|
||||
BIN
share/client/textures/fontdejavusansmono.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 498 B After Width: | Height: | Size: 498 B |
BIN
share/client/textures/smoke_puff.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
share/client/textures/sunrisebg.png
Normal file
|
After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 582 B After Width: | Height: | Size: 582 B |
BIN
share/client/textures/unknown_item.png
Normal file
|
After Width: | Height: | Size: 710 B |
BIN
share/client/textures/unknown_object.png
Normal file
|
After Width: | Height: | Size: 489 B |
859
share/server/builtin.lua
Normal file
@@ -0,0 +1,859 @@
|
||||
--
|
||||
-- This file contains built-in stuff in Minetest implemented in Lua.
|
||||
--
|
||||
-- It is always loaded and executed after registration of the C API,
|
||||
-- before loading and running any mods.
|
||||
--
|
||||
|
||||
--
|
||||
-- Override some Lua library functions
|
||||
--
|
||||
|
||||
print = minetest.debug
|
||||
|
||||
--
|
||||
--
|
||||
--
|
||||
|
||||
function basic_dump2(o)
|
||||
if type(o) == "number" then
|
||||
return tostring(o)
|
||||
elseif type(o) == "string" then
|
||||
return string.format("%q", o)
|
||||
elseif type(o) == "boolean" then
|
||||
return tostring(o)
|
||||
elseif type(o) == "function" then
|
||||
return "<function>"
|
||||
elseif type(o) == "userdata" then
|
||||
return "<userdata>"
|
||||
elseif type(o) == "nil" then
|
||||
return "nil"
|
||||
else
|
||||
error("cannot dump a " .. type(o))
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function dump2(o, name, dumped)
|
||||
name = name or "_"
|
||||
dumped = dumped or {}
|
||||
io.write(name, " = ")
|
||||
if type(o) == "number" or type(o) == "string" or type(o) == "boolean"
|
||||
or type(o) == "function" or type(o) == "nil"
|
||||
or type(o) == "userdata" then
|
||||
io.write(basic_dump2(o), "\n")
|
||||
elseif type(o) == "table" then
|
||||
if dumped[o] then
|
||||
io.write(dumped[o], "\n")
|
||||
else
|
||||
dumped[o] = name
|
||||
io.write("{}\n") -- new table
|
||||
for k,v in pairs(o) do
|
||||
local fieldname = string.format("%s[%s]", name, basic_dump2(k))
|
||||
dump2(v, fieldname, dumped)
|
||||
end
|
||||
end
|
||||
else
|
||||
error("cannot dump a " .. type(o))
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function dump(o, dumped)
|
||||
dumped = dumped or {}
|
||||
if type(o) == "number" then
|
||||
return tostring(o)
|
||||
elseif type(o) == "string" then
|
||||
return string.format("%q", o)
|
||||
elseif type(o) == "table" then
|
||||
if dumped[o] then
|
||||
return "<circular reference>"
|
||||
end
|
||||
dumped[o] = true
|
||||
local t = {}
|
||||
for k,v in pairs(o) do
|
||||
t[#t+1] = "" .. k .. " = " .. dump(v, dumped)
|
||||
end
|
||||
return "{" .. table.concat(t, ", ") .. "}"
|
||||
elseif type(o) == "boolean" then
|
||||
return tostring(o)
|
||||
elseif type(o) == "function" then
|
||||
return "<function>"
|
||||
elseif type(o) == "userdata" then
|
||||
return "<userdata>"
|
||||
elseif type(o) == "nil" then
|
||||
return "nil"
|
||||
else
|
||||
error("cannot dump a " .. type(o))
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Item definition helpers
|
||||
--
|
||||
|
||||
function minetest.inventorycube(img1, img2, img3)
|
||||
img2 = img2 or img1
|
||||
img3 = img3 or img1
|
||||
return "[inventorycube"
|
||||
.. "{" .. img1:gsub("%^", "&")
|
||||
.. "{" .. img2:gsub("%^", "&")
|
||||
.. "{" .. img3:gsub("%^", "&")
|
||||
end
|
||||
|
||||
function minetest.pos_to_string(pos)
|
||||
return "(" .. pos.x .. "," .. pos.y .. "," .. pos.z .. ")"
|
||||
end
|
||||
|
||||
function minetest.get_pointed_thing_position(pointed_thing, above)
|
||||
if pointed_thing.type == "node" then
|
||||
if above then
|
||||
-- The position where a node would be placed
|
||||
return pointed_thing.above
|
||||
else
|
||||
-- The position where a node would be dug
|
||||
return pointed_thing.under
|
||||
end
|
||||
elseif pointed_thing.type == "object" then
|
||||
obj = pointed_thing.ref
|
||||
if obj ~= nil then
|
||||
return obj:getpos()
|
||||
else
|
||||
return nil
|
||||
end
|
||||
else
|
||||
return nil
|
||||
end
|
||||
end
|
||||
|
||||
function minetest.dir_to_facedir(dir)
|
||||
if math.abs(dir.x) > math.abs(dir.z) then
|
||||
if dir.x < 0 then
|
||||
return 3
|
||||
else
|
||||
return 1
|
||||
end
|
||||
else
|
||||
if dir.z < 0 then
|
||||
return 2
|
||||
else
|
||||
return 0
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function minetest.dir_to_wallmounted(dir)
|
||||
if math.abs(dir.y) > math.max(math.abs(dir.x), math.abs(dir.z)) then
|
||||
if dir.y < 0 then
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
end
|
||||
elseif math.abs(dir.x) > math.abs(dir.z) then
|
||||
if dir.x < 0 then
|
||||
return 3
|
||||
else
|
||||
return 2
|
||||
end
|
||||
else
|
||||
if dir.z < 0 then
|
||||
return 5
|
||||
else
|
||||
return 4
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function minetest.get_node_drops(nodename, toolname)
|
||||
local drop = ItemStack({name=nodename}):get_definition().drop
|
||||
if drop == nil then
|
||||
-- default drop
|
||||
return {ItemStack({name=nodename})}
|
||||
elseif type(drop) == "string" then
|
||||
-- itemstring drop
|
||||
return {ItemStack(drop)}
|
||||
elseif drop.items == nil then
|
||||
-- drop = {} to disable default drop
|
||||
return {}
|
||||
end
|
||||
|
||||
-- Extended drop table
|
||||
local got_items = {}
|
||||
local got_count = 0
|
||||
local _, item, tool
|
||||
for _, item in ipairs(drop.items) do
|
||||
local good_rarity = true
|
||||
local good_tool = true
|
||||
if item.rarity ~= nil then
|
||||
good_rarity = item.rarity < 1 or math.random(item.rarity) == 1
|
||||
end
|
||||
if item.tools ~= nil then
|
||||
good_tool = false
|
||||
for _, tool in ipairs(item.tools) do
|
||||
if tool:sub(1, 1) == '~' then
|
||||
good_tool = toolname:find(tool:sub(2)) ~= nil
|
||||
else
|
||||
good_tool = toolname == tool
|
||||
end
|
||||
if good_tool then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
if good_rarity and good_tool then
|
||||
got_count = got_count + 1
|
||||
for _, add_item in ipairs(item.items) do
|
||||
got_items[#got_items+1] = add_item
|
||||
end
|
||||
if drop.max_items ~= nil and got_count == drop.max_items then
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
return got_items
|
||||
end
|
||||
|
||||
function minetest.item_place_node(itemstack, placer, pointed_thing)
|
||||
local item = itemstack:peek_item()
|
||||
local def = itemstack:get_definition()
|
||||
if def.type == "node" and pointed_thing.type == "node" then
|
||||
local pos = pointed_thing.above
|
||||
local oldnode = minetest.env:get_node(pos)
|
||||
local olddef = ItemStack({name=oldnode.name}):get_definition()
|
||||
|
||||
if not olddef.buildable_to then
|
||||
minetest.log("info", placer:get_player_name() .. " tried to place"
|
||||
.. " node in invalid position " .. minetest.pos_to_string(pos)
|
||||
.. ", replacing " .. oldnode.name)
|
||||
return
|
||||
end
|
||||
|
||||
minetest.log("action", placer:get_player_name() .. " places node "
|
||||
.. def.name .. " at " .. minetest.pos_to_string(pos))
|
||||
|
||||
local newnode = {name = def.name, param1 = 0, param2 = 0}
|
||||
|
||||
-- Calculate direction for wall mounted stuff like torches and signs
|
||||
if def.paramtype2 == 'wallmounted' then
|
||||
local under = pointed_thing.under
|
||||
local above = pointed_thing.above
|
||||
local dir = {x = under.x - above.x, y = under.y - above.y, z = under.z - above.z}
|
||||
newnode.param2 = minetest.dir_to_wallmounted(dir)
|
||||
-- Calculate the direction for furnaces and chests and stuff
|
||||
elseif def.paramtype2 == 'facedir' then
|
||||
local playerpos = placer:getpos()
|
||||
local dir = {x = pos.x - playerpos.x, y = pos.y - playerpos.y, z = pos.z - playerpos.z}
|
||||
newnode.param2 = minetest.dir_to_facedir(dir)
|
||||
minetest.log("action", "facedir: " .. newnode.param2)
|
||||
end
|
||||
|
||||
-- Add node and update
|
||||
minetest.env:add_node(pos, newnode)
|
||||
|
||||
-- Set metadata owner
|
||||
if def.metadata_name ~= "" then
|
||||
minetest.env:get_meta(pos):set_owner(placer:get_player_name())
|
||||
end
|
||||
|
||||
-- Run script hook
|
||||
local _, callback
|
||||
for _, callback in ipairs(minetest.registered_on_placenodes) do
|
||||
callback(pos, newnode, placer)
|
||||
end
|
||||
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
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)
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
|
||||
function minetest.item_place(itemstack, placer, pointed_thing)
|
||||
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
|
||||
end
|
||||
|
||||
function minetest.item_drop(itemstack, dropper, pos)
|
||||
minetest.env:add_item(pos, itemstack)
|
||||
return ""
|
||||
end
|
||||
|
||||
function minetest.item_eat(hp_change, replace_with_item)
|
||||
return function(itemstack, user, pointed_thing) -- closure
|
||||
if itemstack:take_item() ~= nil then
|
||||
user:set_hp(user:get_hp() + hp_change)
|
||||
itemstack:add_item(replace_with_item) -- note: replace_with_item is optional
|
||||
end
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
|
||||
function minetest.node_punch(pos, node, puncher)
|
||||
-- Run script hook
|
||||
local _, callback
|
||||
for _, callback in ipairs(minetest.registered_on_punchnodes) do
|
||||
callback(pos, node, puncher)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function minetest.node_dig(pos, node, digger)
|
||||
minetest.debug("node_dig")
|
||||
|
||||
local def = ItemStack({name=node.name}):get_definition()
|
||||
if not def.diggable then
|
||||
minetest.debug("not diggable")
|
||||
minetest.log("info", digger:get_player_name() .. " tried to dig "
|
||||
.. node.name .. " which is not diggable "
|
||||
.. minetest.pos_to_string(pos))
|
||||
return
|
||||
end
|
||||
|
||||
local meta = minetest.env:get_meta(pos)
|
||||
if meta ~= nil and not meta:get_allow_removal() then
|
||||
minetest.debug("dig prevented by metadata")
|
||||
minetest.log("info", digger:get_player_name() .. " tried to dig "
|
||||
.. node.name .. ", but removal is disabled by metadata "
|
||||
.. minetest.pos_to_string(pos))
|
||||
return
|
||||
end
|
||||
|
||||
minetest.log('action', digger:get_player_name() .. " digs "
|
||||
.. node.name .. " at " .. minetest.pos_to_string(pos))
|
||||
|
||||
if not minetest.setting_getbool("creative_mode") then
|
||||
local wielded = digger:get_wielded_item()
|
||||
local drops = minetest.get_node_drops(node.name, wielded:get_name())
|
||||
|
||||
-- Wear out tool
|
||||
tp = wielded:get_tool_capabilities()
|
||||
dp = minetest.get_dig_params(def.groups, tp)
|
||||
wielded:add_wear(dp.wear)
|
||||
digger:set_wielded_item(wielded)
|
||||
|
||||
-- Add dropped items
|
||||
local _, dropped_item
|
||||
for _, dropped_item in ipairs(drops) do
|
||||
digger:get_inventory():add_item("main", dropped_item)
|
||||
end
|
||||
end
|
||||
|
||||
-- Remove node and update
|
||||
minetest.env:remove_node(pos)
|
||||
|
||||
-- Run script hook
|
||||
local _, callback
|
||||
for _, callback in ipairs(minetest.registered_on_dignodes) do
|
||||
callback(pos, node, digger)
|
||||
end
|
||||
end
|
||||
|
||||
--
|
||||
-- Item definition defaults
|
||||
--
|
||||
|
||||
minetest.nodedef_default = {
|
||||
-- Item properties
|
||||
type="node",
|
||||
-- name intentionally not defined here
|
||||
description = "",
|
||||
groups = {},
|
||||
inventory_image = "",
|
||||
wield_image = "",
|
||||
wield_scale = {x=1,y=1,z=1},
|
||||
stack_max = 99,
|
||||
usable = false,
|
||||
liquids_pointable = false,
|
||||
tool_capabilities = nil,
|
||||
|
||||
-- Interaction callbacks
|
||||
on_place = minetest.item_place,
|
||||
on_drop = minetest.item_drop,
|
||||
on_use = nil,
|
||||
|
||||
on_punch = minetest.node_punch,
|
||||
on_dig = minetest.node_dig,
|
||||
|
||||
-- Node properties
|
||||
drawtype = "normal",
|
||||
visual_scale = 1.0,
|
||||
tile_images = {""},
|
||||
special_materials = {
|
||||
{image="", backface_culling=true},
|
||||
{image="", backface_culling=true},
|
||||
},
|
||||
alpha = 255,
|
||||
post_effect_color = {a=0, r=0, g=0, b=0},
|
||||
paramtype = "none",
|
||||
paramtype2 = "none",
|
||||
is_ground_content = false,
|
||||
sunlight_propagates = false,
|
||||
walkable = true,
|
||||
pointable = true,
|
||||
diggable = true,
|
||||
climbable = false,
|
||||
buildable_to = false,
|
||||
metadata_name = "",
|
||||
liquidtype = "none",
|
||||
liquid_alternative_flowing = "",
|
||||
liquid_alternative_source = "",
|
||||
liquid_viscosity = 0,
|
||||
light_source = 0,
|
||||
damage_per_second = 0,
|
||||
selection_box = {type="regular"},
|
||||
legacy_facedir_simple = false,
|
||||
legacy_wallmounted = false,
|
||||
}
|
||||
|
||||
minetest.craftitemdef_default = {
|
||||
type="craft",
|
||||
-- name intentionally not defined here
|
||||
description = "",
|
||||
groups = {},
|
||||
inventory_image = "",
|
||||
wield_image = "",
|
||||
wield_scale = {x=1,y=1,z=1},
|
||||
stack_max = 99,
|
||||
liquids_pointable = false,
|
||||
tool_capabilities = nil,
|
||||
|
||||
-- Interaction callbacks
|
||||
on_place = minetest.item_place,
|
||||
on_drop = minetest.item_drop,
|
||||
on_use = nil,
|
||||
}
|
||||
|
||||
minetest.tooldef_default = {
|
||||
type="tool",
|
||||
-- name intentionally not defined here
|
||||
description = "",
|
||||
groups = {},
|
||||
inventory_image = "",
|
||||
wield_image = "",
|
||||
wield_scale = {x=1,y=1,z=1},
|
||||
stack_max = 1,
|
||||
liquids_pointable = false,
|
||||
tool_capabilities = nil,
|
||||
|
||||
-- Interaction callbacks
|
||||
on_place = minetest.item_place,
|
||||
on_drop = minetest.item_drop,
|
||||
on_use = nil,
|
||||
}
|
||||
|
||||
minetest.noneitemdef_default = { -- This is used for the hand and unknown items
|
||||
type="none",
|
||||
-- name intentionally not defined here
|
||||
description = "",
|
||||
groups = {},
|
||||
inventory_image = "",
|
||||
wield_image = "",
|
||||
wield_scale = {x=1,y=1,z=1},
|
||||
stack_max = 99,
|
||||
liquids_pointable = false,
|
||||
tool_capabilities = nil,
|
||||
|
||||
-- Interaction callbacks
|
||||
on_place = nil,
|
||||
on_drop = nil,
|
||||
on_use = nil,
|
||||
}
|
||||
|
||||
--
|
||||
-- Make raw registration functions inaccessible to anyone except builtin.lua
|
||||
--
|
||||
|
||||
local register_item_raw = minetest.register_item_raw
|
||||
minetest.register_item_raw = nil
|
||||
|
||||
local register_alias_raw = minetest.register_alias_raw
|
||||
minetest.register_item_raw = nil
|
||||
|
||||
--
|
||||
-- Item / entity / ABM registration functions
|
||||
--
|
||||
|
||||
minetest.registered_abms = {}
|
||||
minetest.registered_entities = {}
|
||||
minetest.registered_items = {}
|
||||
minetest.registered_nodes = {}
|
||||
minetest.registered_craftitems = {}
|
||||
minetest.registered_tools = {}
|
||||
minetest.registered_aliases = {}
|
||||
|
||||
-- For tables that are indexed by item name:
|
||||
-- If table[X] does not exist, default to table[minetest.registered_aliases[X]]
|
||||
local function set_alias_metatable(table)
|
||||
setmetatable(table, {
|
||||
__index = function(name)
|
||||
return rawget(table, minetest.registered_aliases[name])
|
||||
end
|
||||
})
|
||||
end
|
||||
set_alias_metatable(minetest.registered_items)
|
||||
set_alias_metatable(minetest.registered_nodes)
|
||||
set_alias_metatable(minetest.registered_craftitems)
|
||||
set_alias_metatable(minetest.registered_tools)
|
||||
|
||||
-- These item names may not be used because they would interfere
|
||||
-- with legacy itemstrings
|
||||
local forbidden_item_names = {
|
||||
MaterialItem = true,
|
||||
MaterialItem2 = true,
|
||||
MaterialItem3 = true,
|
||||
NodeItem = true,
|
||||
node = true,
|
||||
CraftItem = true,
|
||||
craft = true,
|
||||
MBOItem = true,
|
||||
ToolItem = true,
|
||||
tool = true,
|
||||
}
|
||||
|
||||
local function check_modname_prefix(name)
|
||||
if name:sub(1,1) == ":" then
|
||||
-- Escape the modname prefix enforcement mechanism
|
||||
return name:sub(2)
|
||||
else
|
||||
-- Modname prefix enforcement
|
||||
local expected_prefix = minetest.get_current_modname() .. ":"
|
||||
if name:sub(1, #expected_prefix) ~= expected_prefix then
|
||||
error("Name " .. name .. " does not follow naming conventions: " ..
|
||||
"\"modname:\" or \":\" prefix required")
|
||||
end
|
||||
local subname = name:sub(#expected_prefix+1)
|
||||
if subname:find("[^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]") then
|
||||
error("Name " .. name .. " does not follow naming conventions: " ..
|
||||
"contains unallowed characters")
|
||||
end
|
||||
return name
|
||||
end
|
||||
end
|
||||
|
||||
function minetest.register_abm(spec)
|
||||
-- Add to minetest.registered_abms
|
||||
minetest.registered_abms[#minetest.registered_abms+1] = spec
|
||||
end
|
||||
|
||||
function minetest.register_entity(name, prototype)
|
||||
-- Check name
|
||||
if name == nil then
|
||||
error("Unable to register entity: Name is nil")
|
||||
end
|
||||
name = check_modname_prefix(tostring(name))
|
||||
|
||||
prototype.name = name
|
||||
prototype.__index = prototype -- so that it can be used as a metatable
|
||||
|
||||
-- Add to minetest.registered_entities
|
||||
minetest.registered_entities[name] = prototype
|
||||
end
|
||||
|
||||
function minetest.register_item(name, itemdef)
|
||||
-- Check name
|
||||
if name == nil then
|
||||
error("Unable to register item: Name is nil")
|
||||
end
|
||||
name = check_modname_prefix(tostring(name))
|
||||
if forbidden_item_names[name] then
|
||||
error("Unable to register item: Name is forbidden: " .. name)
|
||||
end
|
||||
itemdef.name = name
|
||||
|
||||
-- Apply defaults and add to registered_* table
|
||||
if itemdef.type == "node" then
|
||||
setmetatable(itemdef, {__index = minetest.nodedef_default})
|
||||
minetest.registered_nodes[itemdef.name] = itemdef
|
||||
elseif itemdef.type == "craft" then
|
||||
setmetatable(itemdef, {__index = minetest.craftitemdef_default})
|
||||
minetest.registered_craftitems[itemdef.name] = itemdef
|
||||
elseif itemdef.type == "tool" then
|
||||
setmetatable(itemdef, {__index = minetest.tooldef_default})
|
||||
minetest.registered_tools[itemdef.name] = itemdef
|
||||
elseif itemdef.type == "none" then
|
||||
setmetatable(itemdef, {__index = minetest.noneitemdef_default})
|
||||
else
|
||||
error("Unable to register item: Type is invalid: " .. dump(itemdef))
|
||||
end
|
||||
|
||||
-- Flowing liquid uses param2
|
||||
if itemdef.type == "node" and itemdef.liquidtype == "flowing" then
|
||||
itemdef.paramtype2 = "flowingliquid"
|
||||
end
|
||||
|
||||
-- BEGIN Legacy stuff
|
||||
if itemdef.cookresult_itemstring ~= nil and itemdef.cookresult_itemstring ~= "" then
|
||||
minetest.register_craft({
|
||||
type="cooking",
|
||||
output=itemdef.cookresult_itemstring,
|
||||
recipe=itemdef.name,
|
||||
cooktime=itemdef.furnace_cooktime
|
||||
})
|
||||
end
|
||||
if itemdef.furnace_burntime ~= nil and itemdef.furnace_burntime >= 0 then
|
||||
minetest.register_craft({
|
||||
type="fuel",
|
||||
recipe=itemdef.name,
|
||||
burntime=itemdef.furnace_burntime
|
||||
})
|
||||
end
|
||||
-- END Legacy stuff
|
||||
|
||||
-- Disable all further modifications
|
||||
getmetatable(itemdef).__newindex = {}
|
||||
|
||||
--minetest.log("Registering item: " .. itemdef.name)
|
||||
minetest.registered_items[itemdef.name] = itemdef
|
||||
minetest.registered_aliases[itemdef.name] = nil
|
||||
register_item_raw(itemdef)
|
||||
end
|
||||
|
||||
function minetest.register_node(name, nodedef)
|
||||
nodedef.type = "node"
|
||||
minetest.register_item(name, nodedef)
|
||||
end
|
||||
|
||||
function minetest.register_craftitem(name, craftitemdef)
|
||||
craftitemdef.type = "craft"
|
||||
|
||||
-- BEGIN Legacy stuff
|
||||
if craftitemdef.inventory_image == nil and craftitemdef.image ~= nil then
|
||||
craftitemdef.inventory_image = craftitemdef.image
|
||||
end
|
||||
-- END Legacy stuff
|
||||
|
||||
minetest.register_item(name, craftitemdef)
|
||||
end
|
||||
|
||||
function minetest.register_tool(name, tooldef)
|
||||
tooldef.type = "tool"
|
||||
tooldef.stack_max = 1
|
||||
|
||||
-- BEGIN Legacy stuff
|
||||
if tooldef.inventory_image == nil and tooldef.image ~= nil then
|
||||
tooldef.inventory_image = tooldef.image
|
||||
end
|
||||
if tooldef.tool_capabilities == nil and
|
||||
(tooldef.full_punch_interval ~= nil or
|
||||
tooldef.basetime ~= nil or
|
||||
tooldef.dt_weight ~= nil or
|
||||
tooldef.dt_crackiness ~= nil or
|
||||
tooldef.dt_crumbliness ~= nil or
|
||||
tooldef.dt_cuttability ~= nil or
|
||||
tooldef.basedurability ~= nil or
|
||||
tooldef.dd_weight ~= nil or
|
||||
tooldef.dd_crackiness ~= nil or
|
||||
tooldef.dd_crumbliness ~= nil or
|
||||
tooldef.dd_cuttability ~= nil) then
|
||||
tooldef.tool_capabilities = {
|
||||
full_punch_interval = tooldef.full_punch_interval,
|
||||
basetime = tooldef.basetime,
|
||||
dt_weight = tooldef.dt_weight,
|
||||
dt_crackiness = tooldef.dt_crackiness,
|
||||
dt_crumbliness = tooldef.dt_crumbliness,
|
||||
dt_cuttability = tooldef.dt_cuttability,
|
||||
basedurability = tooldef.basedurability,
|
||||
dd_weight = tooldef.dd_weight,
|
||||
dd_crackiness = tooldef.dd_crackiness,
|
||||
dd_crumbliness = tooldef.dd_crumbliness,
|
||||
dd_cuttability = tooldef.dd_cuttability,
|
||||
}
|
||||
end
|
||||
-- END Legacy stuff
|
||||
|
||||
minetest.register_item(name, tooldef)
|
||||
end
|
||||
|
||||
function minetest.register_alias(name, convert_to)
|
||||
if forbidden_item_names[name] then
|
||||
error("Unable to register alias: Name is forbidden: " .. name)
|
||||
end
|
||||
if minetest.registered_items[name] ~= nil then
|
||||
minetest.log("WARNING: Not registering alias, item with same name" ..
|
||||
" is already defined: " .. name .. " -> " .. convert_to)
|
||||
else
|
||||
--minetest.log("Registering alias: " .. name .. " -> " .. convert_to)
|
||||
minetest.registered_aliases[name] = convert_to
|
||||
register_alias_raw(name, convert_to)
|
||||
end
|
||||
end
|
||||
|
||||
-- Alias the forbidden item names to "" so they can't be
|
||||
-- created via itemstrings (e.g. /give)
|
||||
local name
|
||||
for name in pairs(forbidden_item_names) do
|
||||
minetest.registered_aliases[name] = ""
|
||||
register_alias_raw(name, "")
|
||||
end
|
||||
|
||||
|
||||
-- Deprecated:
|
||||
-- Aliases for minetest.register_alias (how ironic...)
|
||||
--minetest.alias_node = minetest.register_alias
|
||||
--minetest.alias_tool = minetest.register_alias
|
||||
--minetest.alias_craftitem = minetest.register_alias
|
||||
|
||||
--
|
||||
-- Built-in node definitions. Also defined in C.
|
||||
--
|
||||
|
||||
minetest.register_item(":unknown", {
|
||||
type = "none",
|
||||
description = "Unknown Item",
|
||||
inventory_image = "unknown_item.png",
|
||||
on_place = minetest.item_place,
|
||||
on_drop = minetest.item_drop,
|
||||
})
|
||||
|
||||
minetest.register_node(":air", {
|
||||
description = "Air (you hacker you!)",
|
||||
inventory_image = "unknown_block.png",
|
||||
wield_image = "unknown_block.png",
|
||||
drawtype = "airlike",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true,
|
||||
air_equivalent = true,
|
||||
})
|
||||
|
||||
minetest.register_node(":ignore", {
|
||||
description = "Ignore (you hacker you!)",
|
||||
inventory_image = "unknown_block.png",
|
||||
wield_image = "unknown_block.png",
|
||||
drawtype = "airlike",
|
||||
paramtype = "none",
|
||||
sunlight_propagates = false,
|
||||
walkable = false,
|
||||
pointable = false,
|
||||
diggable = false,
|
||||
buildable_to = true, -- A way to remove accidentally placed ignores
|
||||
air_equivalent = true,
|
||||
})
|
||||
|
||||
-- The hand (bare definition)
|
||||
minetest.register_item(":", {
|
||||
type = "none",
|
||||
})
|
||||
|
||||
--
|
||||
-- Default material types
|
||||
--
|
||||
|
||||
function minetest.digprop_constanttime(time)
|
||||
return {
|
||||
diggability = "constant",
|
||||
constant_time = time,
|
||||
}
|
||||
end
|
||||
|
||||
function minetest.digprop_stonelike(toughness)
|
||||
return {
|
||||
diggablity = "normal",
|
||||
weight = toughness * 5,
|
||||
crackiness = 1,
|
||||
crumbliness = -0.1,
|
||||
cuttability = -0.2,
|
||||
}
|
||||
end
|
||||
|
||||
function minetest.digprop_dirtlike(toughness)
|
||||
return {
|
||||
diggablity = "normal",
|
||||
weight = toughness * 1.2,
|
||||
crackiness = 0,
|
||||
crumbliness = 1.2,
|
||||
cuttability = -0.4,
|
||||
}
|
||||
end
|
||||
|
||||
function minetest.digprop_gravellike(toughness)
|
||||
return {
|
||||
diggablity = "normal",
|
||||
weight = toughness * 2,
|
||||
crackiness = 0.2,
|
||||
crumbliness = 1.5,
|
||||
cuttability = -1.0,
|
||||
}
|
||||
end
|
||||
|
||||
function minetest.digprop_woodlike(toughness)
|
||||
return {
|
||||
diggablity = "normal",
|
||||
weight = toughness * 1.0,
|
||||
crackiness = 0.75,
|
||||
crumbliness = -1.0,
|
||||
cuttability = 1.5,
|
||||
}
|
||||
end
|
||||
|
||||
function minetest.digprop_leaveslike(toughness)
|
||||
return {
|
||||
diggablity = "normal",
|
||||
weight = toughness * (-0.5),
|
||||
crackiness = 0,
|
||||
crumbliness = 0,
|
||||
cuttability = 2.0,
|
||||
}
|
||||
end
|
||||
|
||||
function minetest.digprop_glasslike(toughness)
|
||||
return {
|
||||
diggablity = "normal",
|
||||
weight = toughness * 0.1,
|
||||
crackiness = 2.0,
|
||||
crumbliness = -1.0,
|
||||
cuttability = -1.0,
|
||||
}
|
||||
end
|
||||
|
||||
--
|
||||
-- Creative inventory
|
||||
--
|
||||
|
||||
minetest.creative_inventory = {}
|
||||
|
||||
minetest.add_to_creative_inventory = function(itemstring)
|
||||
table.insert(minetest.creative_inventory, itemstring)
|
||||
end
|
||||
|
||||
--
|
||||
-- Callback registration
|
||||
--
|
||||
|
||||
local function make_registration()
|
||||
local t = {}
|
||||
local registerfunc = function(func) table.insert(t, func) end
|
||||
return t, registerfunc
|
||||
end
|
||||
|
||||
minetest.registered_on_chat_messages, minetest.register_on_chat_message = make_registration()
|
||||
minetest.registered_globalsteps, minetest.register_globalstep = make_registration()
|
||||
minetest.registered_on_placenodes, minetest.register_on_placenode = make_registration()
|
||||
minetest.registered_on_dignodes, minetest.register_on_dignode = make_registration()
|
||||
minetest.registered_on_punchnodes, minetest.register_on_punchnode = make_registration()
|
||||
minetest.registered_on_generateds, minetest.register_on_generated = make_registration()
|
||||
minetest.registered_on_newplayers, minetest.register_on_newplayer = make_registration()
|
||||
minetest.registered_on_dieplayers, minetest.register_on_dieplayer = make_registration()
|
||||
minetest.registered_on_respawnplayers, minetest.register_on_respawnplayer = make_registration()
|
||||
|
||||
--
|
||||
-- Set random seed
|
||||
--
|
||||
|
||||
math.randomseed(os.time())
|
||||
|
||||
-- END
|
||||
2
share/server/games/mesetint/mods/bucket/depends.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
default
|
||||
|
||||
95
share/server/games/mesetint/mods/bucket/init.lua
Normal file
@@ -0,0 +1,95 @@
|
||||
-- bucket (Minetest 0.4 mod)
|
||||
-- A bucket, which can pick up water and lava
|
||||
|
||||
minetest.register_alias("bucket", "bucket:bucket_empty")
|
||||
minetest.register_alias("bucket_water", "bucket:bucket_water")
|
||||
minetest.register_alias("bucket_lava", "bucket:bucket_lava")
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'bucket:bucket_empty 1',
|
||||
recipe = {
|
||||
{'default:steel_ingot', '', 'default:steel_ingot'},
|
||||
{'', 'default:steel_ingot', ''},
|
||||
}
|
||||
})
|
||||
|
||||
bucket = {}
|
||||
bucket.liquids = {}
|
||||
|
||||
-- Register a new liquid
|
||||
-- source = name of the source node
|
||||
-- flowing = name of the flowing node
|
||||
-- itemname = name of the new bucket item (or nil if liquid is not takeable)
|
||||
-- inventory_image = texture of the new bucket item (ignored if itemname == nil)
|
||||
-- This function can be called from any mod (that depends on bucket).
|
||||
function bucket.register_liquid(source, flowing, itemname, inventory_image)
|
||||
bucket.liquids[source] = {
|
||||
source = source,
|
||||
flowing = flowing,
|
||||
itemname = itemname,
|
||||
}
|
||||
bucket.liquids[flowing] = bucket.liquids[source]
|
||||
|
||||
if itemname ~= nil then
|
||||
minetest.register_craftitem(itemname, {
|
||||
inventory_image = inventory_image,
|
||||
stack_max = 1,
|
||||
liquids_pointable = true,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
-- Must be pointing to node
|
||||
if pointed_thing.type ~= "node" then
|
||||
return
|
||||
end
|
||||
-- Check if pointing to a liquid
|
||||
n = minetest.env:get_node(pointed_thing.under)
|
||||
if bucket.liquids[n.name] == nil then
|
||||
-- Not a liquid
|
||||
minetest.env: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})
|
||||
end
|
||||
return {name="bucket:bucket_empty"}
|
||||
end
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_craftitem("bucket:bucket_empty", {
|
||||
inventory_image = "bucket.png",
|
||||
stack_max = 1,
|
||||
liquids_pointable = true,
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
-- Must be pointing to node
|
||||
if pointed_thing.type ~= "node" then
|
||||
return
|
||||
end
|
||||
-- Check if pointing to a liquid source
|
||||
n = minetest.env: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"})
|
||||
return {name=liquiddef.itemname}
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
bucket.register_liquid(
|
||||
"default:water_source",
|
||||
"default:water_flowing",
|
||||
"bucket:bucket_water",
|
||||
"bucket_water.png"
|
||||
)
|
||||
|
||||
bucket.register_liquid(
|
||||
"default:lava_source",
|
||||
"default:lava_flowing",
|
||||
"bucket:bucket_lava",
|
||||
"bucket_lava.png"
|
||||
)
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "default:bucket_lava",
|
||||
burntime = 60,
|
||||
})
|
||||
BIN
share/server/games/mesetint/mods/bucket/textures/bucket.png
Normal file
|
After Width: | Height: | Size: 329 B |
BIN
share/server/games/mesetint/mods/bucket/textures/bucket_lava.png
Normal file
|
After Width: | Height: | Size: 363 B |
|
After Width: | Height: | Size: 369 B |
1832
share/server/games/mesetint/mods/default/init.lua
Normal file
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 292 B |
|
Before Width: | Height: | Size: 597 B After Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 604 B After Width: | Height: | Size: 604 B |
|
Before Width: | Height: | Size: 279 B After Width: | Height: | Size: 279 B |
|
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 236 B |
|
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 167 B |
|
After Width: | Height: | Size: 224 B |
|
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 151 B |
|
Before Width: | Height: | Size: 142 B After Width: | Height: | Size: 142 B |
|
Before Width: | Height: | Size: 613 B After Width: | Height: | Size: 613 B |
|
Before Width: | Height: | Size: 249 B After Width: | Height: | Size: 249 B |
|
Before Width: | Height: | Size: 210 B After Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 118 B After Width: | Height: | Size: 118 B |
|
Before Width: | Height: | Size: 933 B After Width: | Height: | Size: 933 B |
|
Before Width: | Height: | Size: 830 B After Width: | Height: | Size: 830 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 539 B After Width: | Height: | Size: 539 B |
|
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 246 B |
|
Before Width: | Height: | Size: 236 B After Width: | Height: | Size: 236 B |
|
After Width: | Height: | Size: 978 B |
|
Before Width: | Height: | Size: 874 B After Width: | Height: | Size: 874 B |
|
Before Width: | Height: | Size: 856 B After Width: | Height: | Size: 856 B |
|
Before Width: | Height: | Size: 878 B After Width: | Height: | Size: 878 B |
|
Before Width: | Height: | Size: 591 B After Width: | Height: | Size: 591 B |
|
Before Width: | Height: | Size: 936 B After Width: | Height: | Size: 936 B |
|
Before Width: | Height: | Size: 672 B After Width: | Height: | Size: 672 B |
|
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 502 B |
|
Before Width: | Height: | Size: 507 B After Width: | Height: | Size: 507 B |
|
After Width: | Height: | Size: 395 B |
|
After Width: | Height: | Size: 357 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 952 B After Width: | Height: | Size: 952 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 965 B After Width: | Height: | Size: 965 B |
|
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 303 B |
|
Before Width: | Height: | Size: 410 B After Width: | Height: | Size: 410 B |
|
Before Width: | Height: | Size: 203 B After Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 260 B After Width: | Height: | Size: 260 B |
|
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 242 B |