Compare commits
913 Commits
world-spac
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
3b25514233 | ||
|
45d969c16e | ||
|
fe8b0a57cd | ||
|
3437ce6173 | ||
|
8452d18575 | ||
|
4c40ddd12d | ||
|
00a08bf5f0 | ||
|
52ea40100f | ||
|
4ba056c6d9 | ||
|
67b44042bd | ||
|
1ef8047f42 | ||
|
b8114ebd91 | ||
|
a6876f0872 | ||
|
5f779ea3d5 | ||
|
bedc836cb0 | ||
|
56ca9d694b | ||
|
d752b34dfc | ||
|
b55a5e1906 | ||
|
ea8e7b6048 | ||
|
e8c1dee3b5 | ||
|
819584ef15 | ||
|
ea194309ef | ||
|
b280ad8c12 | ||
|
90dbd52aca | ||
|
2a09c7f83c | ||
|
3fffa4c4ca | ||
|
592f84b548 | ||
|
836f75d7fe | ||
|
f389aa2f4a | ||
|
4a35c4feba | ||
|
53e8e6d719 | ||
|
b8db45fc7c | ||
|
34cac6f464 | ||
|
5dbf839f76 | ||
|
806182835f | ||
|
52a36c9b18 | ||
|
1f1741effb | ||
|
96f146d6f0 | ||
|
23618a2fa8 | ||
|
030f8b298a | ||
|
c8ba61ca56 | ||
|
a8ce6916e7 | ||
|
b110551db6 | ||
|
9ea1630057 | ||
|
32b9d6597e | ||
|
b6467a92a3 | ||
|
0bee5f915d | ||
|
536ffc899e | ||
|
a56907a956 | ||
|
5a1ab063b7 | ||
|
a173e1b9eb | ||
|
95ce45c944 | ||
|
faf19aa424 | ||
|
9b89007674 | ||
|
40dfbf33d9 | ||
|
96a8943cb7 | ||
|
b52bef795a | ||
|
9b2ca4d1d3 | ||
|
93f790ec22 | ||
|
9b57eb0df1 | ||
|
2962acfded | ||
|
d642582956 | ||
|
127ee7a6ca | ||
|
fc2ce96771 | ||
|
2b2e05f009 | ||
|
5546abd24a | ||
|
796db123b7 | ||
|
b39e6702cc | ||
|
6d167a2d2a | ||
|
319b57bf7a | ||
|
300f14c752 | ||
|
3de85042d0 | ||
|
2a2e89d445 | ||
|
78972a87bf | ||
|
2a3f976b5e | ||
|
1fd6058eaf | ||
|
a07a4bbb91 | ||
|
2a0cb3ca1d | ||
|
795801faa6 | ||
|
3680abfba4 | ||
|
09282f51fd | ||
|
3a2156492e | ||
|
43b752ee63 | ||
|
f9212c9938 | ||
|
79223b4c02 | ||
|
ac48ab8cc0 | ||
|
d0fed9a321 | ||
|
a7fb739204 | ||
|
7957b8b555 | ||
|
498be94102 | ||
|
7b742e913f | ||
|
73f7ec6a70 | ||
|
761d25e9c7 | ||
|
1dde41d5f4 | ||
|
07e036451d | ||
|
ab7d1c81df | ||
|
10a87be81f | ||
|
ea21910255 | ||
|
15412b9b45 | ||
|
78e7362392 | ||
|
5f0e5cf623 | ||
|
0ae43db53e | ||
|
9fced79888 | ||
|
c74397a567 | ||
|
f338fe8c94 | ||
|
1f6dc97e12 | ||
|
c091c3fd38 | ||
|
22d4ee0769 | ||
|
6bb9624908 | ||
|
d58ba7c1c7 | ||
|
857fc76c40 | ||
|
48d9f173f3 | ||
|
a1de7e5231 | ||
|
e06eea7c5d | ||
|
7b80f34f4f | ||
|
d1df99914a | ||
|
40da86aad6 | ||
|
36173438cc | ||
|
e9179eba71 | ||
|
d6aef2a244 | ||
|
e13ddb14f6 | ||
|
b19118252f | ||
|
608c159aa6 | ||
|
33e7baed94 | ||
|
5d52c9cdaf | ||
|
dd9997dc82 | ||
|
e2ed7cac88 | ||
|
bf9ec726fc | ||
|
f4adcb122b | ||
|
2b0be77ac9 | ||
|
85d08d81d2 | ||
|
398147d79c | ||
|
834496699d | ||
|
92fbc39dc5 | ||
|
33c59fc387 | ||
|
f35d35cc94 | ||
|
e888d7df0e | ||
|
dfaf8c0965 | ||
|
65552409f0 | ||
|
8f6c27ae32 | ||
|
63acfef341 | ||
|
370135fca8 | ||
|
7e0394df00 | ||
|
680f32424f | ||
|
70b7289a43 | ||
|
68a355dbe9 | ||
|
a725cf8b43 | ||
|
ab6d2e4ffd | ||
|
4d6ee7093f | ||
|
436495f0c7 | ||
|
e2e343db1a | ||
|
9a54c033c0 | ||
|
3614ff4892 | ||
|
3d6a681676 | ||
|
08d809ea51 | ||
|
9faa23784d | ||
|
e8fae9fb59 | ||
|
285b049f04 | ||
|
26834c1b0f | ||
|
144d82fd63 | ||
|
b967085e7d | ||
|
89874b8612 | ||
|
1bf34b6751 | ||
|
df2435efdc | ||
|
da26ac016d | ||
|
5e9b550ea1 | ||
|
efa2fb5ef5 | ||
|
86be3f43dd | ||
|
db2d696374 | ||
|
96aaee816e | ||
|
f32e78f06b | ||
|
41eed47edb | ||
|
5569079511 | ||
|
e2de06fe2b | ||
|
09fc128136 | ||
|
79e75b70ec | ||
|
680b8bcd5d | ||
|
3a0ec498ae | ||
|
710644a822 | ||
|
8a66c35b64 | ||
|
534405ffdf | ||
|
8e18b24f94 | ||
|
bc8315db35 | ||
|
6c0d2e72bf | ||
|
5966a54a1c | ||
|
0b6df8ef5a | ||
|
15a0d4aefb | ||
|
5616e9ce7b | ||
|
87942dbb14 | ||
|
d10047176d | ||
|
4d941a52a5 | ||
|
c74d2c8b89 | ||
|
8325611c28 | ||
|
c25d2b86a0 | ||
|
c856227b47 | ||
|
f4d84a2b11 | ||
|
e7a2eac348 | ||
|
8349f8594e | ||
|
3090c5e0f9 | ||
|
428c9df4ea | ||
|
1b3fa3eed3 | ||
|
cbb65848d9 | ||
|
75396ce127 | ||
|
dbd2b665be | ||
|
6e27f018a7 | ||
|
2c3a73d556 | ||
|
2b90ca6d3c | ||
|
71decbd5b3 | ||
|
8d5ce5cf18 | ||
|
be21855e1d | ||
|
28119ea906 | ||
|
b03520f1e7 | ||
|
f1e87f4cb9 | ||
|
b4f20affeb | ||
|
9001de47ee | ||
|
6136c095ae | ||
|
7359e95d4c | ||
|
3ae3c84a39 | ||
|
7ef0fddd1f | ||
|
f71f9e0590 | ||
|
caf5d3cf22 | ||
|
f3887390a9 | ||
|
abb8c981bc | ||
|
0a75dd030a | ||
|
c2d669e5b3 | ||
|
67c1c812a5 | ||
|
95de9295e7 | ||
|
4992292563 | ||
|
8694025e08 | ||
|
3ad7ddf1cd | ||
|
2fce9296a7 | ||
|
936ab87ba0 | ||
|
251048bbd0 | ||
|
bfd8b25a7d | ||
|
4bfcc282a1 | ||
|
b313bd0645 | ||
|
9609c50335 | ||
|
5599a39eff | ||
|
4a7c552508 | ||
|
86fa3b1c66 | ||
|
6e8d3c36df | ||
|
eda952df70 | ||
|
528108e7bc | ||
|
371cccb273 | ||
|
65e2e326ed | ||
|
3ee8cfdbad | ||
|
ea248caa47 | ||
|
abca7c9f1e | ||
|
b8538be749 | ||
|
bac8308ae2 | ||
|
c89ce83fb3 | ||
|
451a0836cf | ||
|
ecb88e9140 | ||
|
185371d78c | ||
|
93f87cc9c5 | ||
|
b68015a6c4 | ||
|
bd584c3ce4 | ||
|
b90f03c397 | ||
|
d64d7ca0dc | ||
|
3eeea52f5e | ||
|
d3c812bba3 | ||
|
48174a4fb5 | ||
|
e02d223574 | ||
|
d24e70dbdd | ||
|
86619fd2dd | ||
|
1ab8bb9a92 | ||
|
0b8c426adb | ||
|
45fce8b464 | ||
|
e2078cb4a2 | ||
|
0f8f261d30 | ||
|
4b5e9416a1 | ||
|
5b5b4a8676 | ||
|
376c92d9b0 | ||
|
736aa50ac6 | ||
|
f38d57bb70 | ||
|
7d480d654f | ||
|
5dfa5f89e8 | ||
|
5778696d29 | ||
|
7288ff6fc9 | ||
|
3d5289da45 | ||
|
49f612fe67 | ||
|
60a127eefc | ||
|
9a4cb335a0 | ||
|
49f041341a | ||
|
c3a9652cf1 | ||
|
e328298474 | ||
|
cb762be52b | ||
|
39a0883466 | ||
|
a835604a5a | ||
|
b7fa9ee5a1 | ||
|
dfe83042b5 | ||
|
e34d9e4e38 | ||
|
1399f6ad7a | ||
|
23f8ea8fa7 | ||
|
0460b463d1 | ||
|
522e2f0db5 | ||
|
62e7c42ec6 | ||
|
f1526fd389 | ||
|
db18560dbf | ||
|
1b8b8125f4 | ||
|
00506c6b3e | ||
|
e4c9418d4a | ||
|
0f7240b047 | ||
|
2dd09aff19 | ||
|
95c88979f4 | ||
|
019c150521 | ||
|
99995d0745 | ||
|
d9f0950463 | ||
|
fa8ba1335e | ||
|
3e86b70778 | ||
|
2c333773b2 | ||
|
6af54ab02f | ||
|
8224250867 | ||
|
79faa2edea | ||
|
bb30aee8d3 | ||
|
bed9f09539 | ||
|
fce73f1285 | ||
|
b7f95ebb40 | ||
|
4b0c875504 | ||
|
d17ed99d96 | ||
|
d273d131e2 | ||
|
6004651adc | ||
|
98e8d10cdd | ||
|
01a61f43ac | ||
|
aa2ed3083a | ||
|
afae5ccd68 | ||
|
12f76ddd5a | ||
|
e14a2305a0 | ||
|
11322c0446 | ||
|
88d5229b35 | ||
|
cdde802756 | ||
|
d827bb8197 | ||
|
c01ca1a1f2 | ||
|
16ba763ddc | ||
|
8e1c776f80 | ||
|
94cdd16394 | ||
|
f48d6d4648 | ||
|
ef9c089d91 | ||
|
20055d7fc5 | ||
|
93fe07678c | ||
|
6fee8a81b1 | ||
|
8b5f6f9b74 | ||
|
b7718d73e8 | ||
|
a811ed57be | ||
|
fa47c93b46 | ||
|
0292ab422a | ||
|
a88112d639 | ||
|
2930a86959 | ||
|
f34dbf891c | ||
|
916c26cda1 | ||
|
b28f4d3bef | ||
|
dd0afd1978 | ||
|
686647fe93 | ||
|
6fe51809a0 | ||
|
0d8256abe5 | ||
|
8f0ec319c4 | ||
|
e043fe482a | ||
|
d5771f8eea | ||
|
6140c38813 | ||
|
4d0f2d7be5 | ||
|
48ed278101 | ||
|
9555786a09 | ||
|
986ed9ea8e | ||
|
c372a2d652 | ||
|
81d5f86db1 | ||
|
2fecf21509 | ||
|
813d50ee94 | ||
|
805a5f19b5 | ||
|
2125243a31 | ||
|
7dd4122d44 | ||
|
7ecb76dffa | ||
|
bb090fcf91 | ||
|
6e33af8e61 | ||
|
395803109d | ||
|
b61e7df089 | ||
|
8c34df49b7 | ||
|
b9bdb594f0 | ||
|
47bcf0bf1c | ||
|
4cc21fd378 | ||
|
41de72e3a1 | ||
|
97b9eeeac6 | ||
|
585e40bb8b | ||
|
0887ff5f46 | ||
|
0489fc81fa | ||
|
899253b53c | ||
|
8c1369ad2e | ||
|
1dad2f589f | ||
|
086713341b | ||
|
b974508683 | ||
|
39882d43c3 | ||
|
7f8150d5ed | ||
|
635f6ae546 | ||
|
eab9270b94 | ||
|
87b9634703 | ||
|
650ad89067 | ||
|
a64b1dac00 | ||
|
d49baa2a8c | ||
|
23a3730c37 | ||
|
134faaa67e | ||
|
272dce8900 | ||
|
eff6cabd09 | ||
|
84a9899516 | ||
|
6c78c93c2b | ||
|
abeab11875 | ||
|
2d65071887 | ||
|
9f19d74c2a | ||
|
501aa3def9 | ||
|
53b6db98e6 | ||
|
a77e06f8c8 | ||
|
174fafe5bc | ||
|
2b93aff35d | ||
|
510001b943 | ||
|
97a315661f | ||
|
b3b215e628 | ||
|
edd4f53f66 | ||
|
fd21dd0f9f | ||
|
320b765951 | ||
|
087d36aa15 | ||
|
236067435d | ||
|
8a76ad4133 | ||
|
563bde0616 | ||
|
c2621752fc | ||
|
153e0116c7 | ||
|
99d8a45380 | ||
|
af9f6d6933 | ||
|
f92c7bf6c3 | ||
|
c8788f3329 | ||
|
88d31bc68a | ||
|
3764bb5c6a | ||
|
1742d83d4b | ||
|
efa151aa73 | ||
|
fb028a899f | ||
|
ae1d04b5ee | ||
|
2c699590e2 | ||
|
0e550e52c6 | ||
|
de2ba0acb9 | ||
|
431a9e58b1 | ||
|
97329141bc | ||
|
f05e3d301c | ||
|
12099cb4a1 | ||
|
e9d6ca1c1e | ||
|
9bae3554a2 | ||
|
1f86981271 | ||
|
1adb8f1d80 | ||
|
dc5a281956 | ||
|
2873d300a8 | ||
|
760a7c9d86 | ||
|
3d59fb43c8 | ||
|
df230ea677 | ||
|
f2bfd12aa5 | ||
|
d4fe5e1ae1 | ||
|
1492a312ed | ||
|
265c0b2ce5 | ||
|
5e07aec885 | ||
|
fd1f32be6a | ||
|
377902a255 | ||
|
3f1616adf1 | ||
|
818178e665 | ||
|
51e9b26379 | ||
|
281466ebd5 | ||
|
98718b517e | ||
|
599c849bb0 | ||
|
55434daa24 | ||
|
9049458ad5 | ||
|
75792a5723 | ||
|
3fc8e9c11a | ||
|
d55bb3465c | ||
|
38d4ef8125 | ||
|
e91d045a37 | ||
|
1585195779 | ||
|
6ee8af58e3 | ||
|
d02a7fa02f | ||
|
1ac9e4e270 | ||
|
84d52fbaf2 | ||
|
aaadcbe413 | ||
|
de960237a4 | ||
|
1d8bbba1ca | ||
|
ba2cada6dc | ||
|
9afb3595d0 | ||
|
282eb32267 | ||
|
c28b35667f | ||
|
8cc467a806 | ||
|
2b4a8885b5 | ||
|
096cf12df0 | ||
|
d132cdd233 | ||
|
7647c5f1c0 | ||
|
21d94a420f | ||
|
d2cf4f0003 | ||
|
44153cd554 | ||
|
c4bed4c506 | ||
|
a669c83943 | ||
|
017c96bd55 | ||
|
a14d3420d5 | ||
|
ea58f2fbce | ||
|
320c1cb152 | ||
|
5c2491557b | ||
|
ed10994ebc | ||
|
7c8d149e3a | ||
|
ac19eac671 | ||
|
8babafadfd | ||
|
10082466cf | ||
|
7e8b0d4c58 | ||
|
2e90ac57d8 | ||
|
bb1cf8dea7 | ||
|
c4b01beaa8 | ||
|
e7ff009482 | ||
|
9ffe3cd886 | ||
|
b3e0d5ca47 | ||
|
5c1a342cdb | ||
|
35a13886c3 | ||
|
08e5492b4f | ||
|
2eaf2f7a58 | ||
|
75464e6819 | ||
|
b8dc153f10 | ||
|
1989cb6b13 | ||
|
5e2d2d4e57 | ||
|
2ddd753575 | ||
|
642caa85f6 | ||
|
60372cf1a1 | ||
|
4883b753c0 | ||
|
198dc0614f | ||
|
9c6cd7c59d | ||
|
ae5d31e04c | ||
|
8620e16681 | ||
|
a3e6da2ada | ||
|
e0d9058aef | ||
|
190df8b936 | ||
|
ec8767c14c | ||
|
d6ed98b992 | ||
|
ba0677adde | ||
|
114632b015 | ||
|
377372d1c6 | ||
|
7f13e89935 | ||
|
65087ece48 | ||
|
4d3db6f285 | ||
|
81f94ba221 | ||
|
b6a2b0d7b3 | ||
|
4c5bbb3c73 | ||
|
9088bb4561 | ||
|
d25e18ccc6 | ||
|
ec7250e937 | ||
|
a9ab76ea51 | ||
|
5a860f68c3 | ||
|
c29ced5210 | ||
|
89741cfcb3 | ||
|
f2353d670f | ||
|
e9e7fe1f7c | ||
|
db3fab3d35 | ||
|
56f179e5af | ||
|
a4ae90082a | ||
|
cfbf1b9208 | ||
|
bdb92b2cf1 | ||
|
f7e097029a | ||
|
00de8c0e82 | ||
|
7c1f0e7960 | ||
|
4c1860429a | ||
|
47b386296a | ||
|
1687a56f87 | ||
|
d1a3c3ac3d | ||
|
d41149e29e | ||
|
9847aa3374 | ||
|
2c9755209a | ||
|
099e0c17c7 | ||
|
650d505e4e | ||
|
99217ed399 | ||
|
cf836b151a | ||
|
1940b72b00 | ||
|
65a826f2af | ||
|
25bd4ba64e | ||
|
4ce7464ae7 | ||
|
8306f7ff19 | ||
|
5070940a94 | ||
|
4c71dbfbea | ||
|
bcdbb2534c | ||
|
c3f7b650fb | ||
|
2edbb196c2 | ||
|
aeb4b638c7 | ||
|
65ba8c0249 | ||
|
5670d35865 | ||
|
7cb3e3d620 | ||
|
19f1f0bb44 | ||
|
c2634543dc | ||
|
42b65fa9c0 | ||
|
a8fee3ad84 | ||
|
5dcabf0290 | ||
|
ba14a492f1 | ||
|
70dc3f1450 | ||
|
1cef3d4d0a | ||
|
7a830a472e | ||
|
75440f919f | ||
|
e66fb546b7 | ||
|
3e78b4f4bb | ||
|
aca199cd1b | ||
|
2327d80810 | ||
|
a128c947b1 | ||
|
53fe90fd14 | ||
|
f03a01461d | ||
|
90d64bbade | ||
|
0d8dc4b10d | ||
|
98091fa305 | ||
|
638323c1c2 | ||
|
073000d097 | ||
|
7934bf7991 | ||
|
913e862a88 | ||
|
3cba239897 | ||
|
a4adf627c3 | ||
|
b04e59c15a | ||
|
7275cdf280 | ||
|
0483fd995b | ||
|
80b03508a5 | ||
|
49b1c3c6c6 | ||
|
16bf2477b0 | ||
|
a137d2544a | ||
|
f4408b76e8 | ||
|
72d1009007 | ||
|
d936d1f269 | ||
|
fe58023458 | ||
|
60d76a58de | ||
|
70e2ebb605 | ||
|
76b6be0beb | ||
|
36c42123b8 | ||
|
5b6ad0c6d1 | ||
|
0649444687 | ||
|
20b0c66a17 | ||
|
7d3d7927fe | ||
|
1c2fbc2e91 | ||
|
62b8b0afb9 | ||
|
8d3e2c2fac | ||
|
f21b837b1c | ||
|
136e4d07f0 | ||
|
1cdca7b686 | ||
|
b16a90bd15 | ||
|
5b2c4a6bbc | ||
|
ba847c80f0 | ||
|
bf46f117b6 | ||
|
be4a61e65b | ||
|
d700564b37 | ||
|
6db55f5622 | ||
|
104b8b4bbc | ||
|
799f191485 | ||
|
6b64ec7360 | ||
|
76053c5b2f | ||
|
76dbdac70c | ||
|
8072fd1cbb | ||
|
9fd8ae5cd8 | ||
|
2a7404e7d1 | ||
|
32f8683367 | ||
|
895d69fc66 | ||
|
adde6fd162 | ||
|
e099c231c7 | ||
|
04e5b3a5ac | ||
|
5454a7ddeb | ||
|
a20da59e4a | ||
|
7013f7cf71 | ||
|
00716b63bd | ||
|
a3cc265927 | ||
|
7e31717124 | ||
|
f19b1ddeb1 | ||
|
b6e6ee2d24 | ||
|
371f56695a | ||
|
60c5275e50 | ||
|
a393fb688d | ||
|
7d4d322fd1 | ||
|
efc0ac8938 | ||
|
ea587dc26b | ||
|
a65bfdde84 | ||
|
f499203f93 | ||
|
1b1d06294b | ||
|
f108b64acc | ||
|
f03274082e | ||
|
5640bf137e | ||
|
0979c51ed0 | ||
|
ad567157c4 | ||
|
acdf1b3285 | ||
|
f681987358 | ||
|
cc93cf7259 | ||
|
36f7217288 | ||
|
21009d0032 | ||
|
50c4b16367 | ||
|
44f2bd953d | ||
|
80cbc58f81 | ||
|
7f21f0e872 | ||
|
b2aabe68db | ||
|
e9a47db962 | ||
|
e531ede144 | ||
|
5b2233e1b3 | ||
|
bf6d4d69a9 | ||
|
07d11e2bd1 | ||
|
330abfcccb | ||
|
b4e9218e95 | ||
|
8a7f7da0a8 | ||
|
89d3b48c47 | ||
|
45d4b944c4 | ||
|
b0c371f610 | ||
|
9764bc9d0b | ||
|
cb488035cb | ||
|
db9b90d089 | ||
|
291a0f1899 | ||
|
d21569e71b | ||
|
8c7648a51e | ||
|
f3255f1053 | ||
|
ae0d44c96a | ||
|
5f16738c39 | ||
|
3f594ed21f | ||
|
7f20ef3ec5 | ||
|
4ad1f0607d | ||
|
db1092be44 | ||
|
6eb52d2dab | ||
|
03e94f0bb0 | ||
|
3bb584631c | ||
|
dbaa4f639f | ||
|
2a501ac047 | ||
|
3339ac208e | ||
|
780897e1ab | ||
|
cfe29d2830 | ||
|
0e2f5ac580 | ||
|
ca3b29251e | ||
|
cb825a6588 | ||
|
f83bb7ec7d | ||
|
097e1acfbc | ||
|
4d1fbc6045 | ||
|
3f9d8a815b | ||
|
de47c1bdd6 | ||
|
086e13ac8e | ||
|
8108003d52 | ||
|
76fd5ade92 | ||
|
7710520c52 | ||
|
72a6e7c3c9 | ||
|
0c5dbee654 | ||
|
a54752a905 | ||
|
f218a141fa | ||
|
8c427003cd | ||
|
41d8e23c60 | ||
|
1ab7783d41 | ||
|
ed960eff53 | ||
|
aa764cfa39 | ||
|
09fc76d26b | ||
|
947e9376fb | ||
|
27c2248117 | ||
|
fca69b547b | ||
|
af8f85c3c4 | ||
|
98e78b915e | ||
|
a8457d9399 | ||
|
2a9bfbf5da | ||
|
37c1006431 | ||
|
eb90142e81 | ||
|
b49f93afd4 | ||
|
ef8fbb7296 | ||
|
2d7165da66 | ||
|
9f4071cef7 | ||
|
85215a1a95 | ||
|
c09b056e84 | ||
|
272532bb1f | ||
|
f0d904a9ff | ||
|
259e6c88f2 | ||
|
cd8bfc77cc | ||
|
756102138d | ||
|
0333e3c074 | ||
|
63d3c468f3 | ||
|
21db09af94 | ||
|
0865c356be | ||
|
e15b9f2f54 | ||
|
220b72f85b | ||
|
1ae3a4c8ae | ||
|
f6bdf5dc32 | ||
|
76307f751f | ||
|
b1d54533e0 | ||
|
cc9f2a3916 | ||
|
17c1d38d7e | ||
|
3fcd677dd5 | ||
|
808a7a0569 | ||
|
263e9e72af | ||
|
348d624564 | ||
|
13e08945df | ||
|
742a1848ea | ||
|
8af201fd2f | ||
|
79fd16ad8d | ||
|
4f4dec9725 | ||
|
232d807aeb | ||
|
56ead969e7 | ||
|
6f4c67503e | ||
|
c0bf4e2d79 | ||
|
5e457c9d4d | ||
|
a608b8ada4 | ||
|
90213dea7e | ||
|
ee3a07077e | ||
|
5570637cf7 | ||
|
6e827b5c1c | ||
|
99b1064d54 | ||
|
f2b960637a | ||
|
0b2a8a12f3 | ||
|
60595084dc | ||
|
9c64346163 | ||
|
f64b81fc85 | ||
|
47f05108d2 | ||
|
79b76bfba1 | ||
|
97d1694b38 | ||
|
e70416a336 | ||
|
e990c7aff0 | ||
|
d37d1d4c68 | ||
|
697b3192df | ||
|
2c5175f123 | ||
|
d7c2173a8e | ||
|
2366ba0ecb | ||
|
269f205967 | ||
|
c2045d1654 | ||
|
702455fbb0 | ||
|
c9e8de0105 | ||
|
dd4d4b47ea | ||
|
41bd37adb0 | ||
|
85ed747c38 | ||
|
0d207b533a | ||
|
d5ebbdbf6a | ||
|
3df40fd385 | ||
|
49f498e0a2 | ||
|
170443b5b8 | ||
|
6d7df9b363 | ||
|
e336f28f81 | ||
|
b7dd35c478 | ||
|
b81f7cfa76 | ||
|
85be96d302 | ||
|
1d3ec46893 | ||
|
54568d4f6b | ||
|
eb2e7cab7f | ||
|
773219d6bf | ||
|
3b9dddfae9 | ||
|
e522df0ff3 | ||
|
b7846a9b06 | ||
|
a635804aa5 | ||
|
249de19217 | ||
|
04dff93bcb | ||
|
aa66aa4b4f | ||
|
d0cf6b2da4 | ||
|
841d5d9122 | ||
|
b7ab0c990a | ||
|
5aaf8f5d9f | ||
|
67bcbf0398 | ||
|
20e7c732e2 | ||
|
669e9e0334 | ||
|
51bb3a9868 | ||
|
dc06154163 | ||
|
3f28b0d2e2 | ||
|
8cccd9fc8c | ||
|
8a96be1275 | ||
|
91099d91a0 | ||
|
088ae1d494 | ||
|
6530d4084c | ||
|
59b3d68b33 | ||
|
32f6944397 | ||
|
565351f7d2 | ||
|
4fb383976b | ||
|
22c9a7a936 | ||
|
6e922ec4ec | ||
|
704df860f8 | ||
|
3cca41740a | ||
|
bbbdd2854e | ||
|
ad874a9204 | ||
|
b7834b08a5 | ||
|
2c512acc13 | ||
|
f063b7ef8b | ||
|
dfd6b3789a | ||
|
4039bad9f9 | ||
|
c7518a7f8e | ||
|
84a3dbba4f | ||
|
56a1bfeb76 | ||
|
45bbc07490 | ||
|
6df854bbf5 | ||
|
f30c5a8850 | ||
|
a33c9c9bd9 | ||
|
efea5db271 | ||
|
d84a4640d5 | ||
|
9367026ef0 | ||
|
1c848f35e6 | ||
|
ba77cd68ac | ||
|
777bce286d | ||
|
e8ad41c75b | ||
|
7f0a493a01 | ||
|
89a3018221 | ||
|
d2d5c18090 | ||
|
0e3dc33b80 | ||
|
d6ee36c071 | ||
|
e0c8820bd0 | ||
|
f2b45b56bf | ||
|
7b53bc3a5e | ||
|
00182a509c | ||
|
b116f1c506 | ||
|
463181d484 | ||
|
4b6d6f1a6d | ||
|
913ec3c05b | ||
|
5966de6701 | ||
|
e34e1ad04d | ||
|
c87d62cae9 | ||
|
e3c8be4d0e | ||
|
41ae3908ab | ||
|
048ab1ceaf | ||
|
64f030765f | ||
|
600b4edc60 | ||
|
6c32a0c35a | ||
|
f1a2aeb7ab | ||
|
f87af894c1 | ||
|
362b4f0230 | ||
|
678c6cf85f | ||
|
1e7c7989de | ||
|
d968277137 | ||
|
682a25a7ee | ||
|
ba5df84895 | ||
|
976567fd97 | ||
|
59c1798ea0 | ||
|
8d082e203b | ||
|
1b876b4c35 | ||
|
5bb35582a2 | ||
|
fb04712bfb | ||
|
9024d29d12 |
3
.gitignore
vendored
@ -7,3 +7,6 @@ CMakeLists.txt.user
|
|||||||
*.zip
|
*.zip
|
||||||
*.db
|
*.db
|
||||||
*.blend1
|
*.blend1
|
||||||
|
*.swp
|
||||||
|
*.pyc
|
||||||
|
*.o
|
||||||
|
@ -3,7 +3,7 @@ CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
|
|||||||
add_subdirectory(converter)
|
add_subdirectory(converter)
|
||||||
|
|
||||||
# project/binary name:
|
# project/binary name:
|
||||||
PROJECT(MarbleRaceGroupC)
|
PROJECT(saxum)
|
||||||
|
|
||||||
# ACGL setup
|
# ACGL setup
|
||||||
SET(ACGL_OPENGL_SUPPORT CORE_32)
|
SET(ACGL_OPENGL_SUPPORT CORE_32)
|
||||||
@ -53,21 +53,28 @@ ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
|||||||
#
|
#
|
||||||
# Lets the binary get written to a shared folder (which can be ignored by git).
|
# Lets the binary get written to a shared folder (which can be ignored by git).
|
||||||
# Will also set the run directory for QTCreator:
|
# Will also set the run directory for QTCreator:
|
||||||
|
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -DSAXUM_DEBUG -g")
|
||||||
|
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS} -DSAXUM_DEBUG -g")
|
||||||
|
|
||||||
|
SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -DNDEBUG")
|
||||||
|
SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS} -DNDEBUG")
|
||||||
|
|
||||||
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/binaries)
|
set(dir ${CMAKE_CURRENT_SOURCE_DIR}/binaries)
|
||||||
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
|
set(EXECUTABLE_OUTPUT_PATH ${dir} CACHE PATH "Build directory" FORCE)
|
||||||
|
|
||||||
# source and header files
|
# source and header files
|
||||||
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/*.cc")
|
FILE(GLOB SOURCE_FILES "${CMAKE_SOURCE_DIR}/game/*.cc")
|
||||||
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_SHARED})
|
|
||||||
|
|
||||||
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/*.hh")
|
FILE(GLOB HEADER_FILES "${CMAKE_SOURCE_DIR}/game/*.hh")
|
||||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_SHARED})
|
|
||||||
|
|
||||||
# shader files
|
# tinyxml
|
||||||
FILE(GLOB_RECURSE SHADER_FILES "${CMAKE_SOURCE_DIR}/Shader/*.*")
|
|
||||||
|
|
||||||
# Readme
|
FILE(GLOB HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
|
||||||
FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../Readme.md")
|
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_TINYXML})
|
||||||
|
FILE(GLOB SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
|
||||||
|
SET(SOURCE_FILES ${SOURCE_FILES} ${SOURCE_FILES_TINYXML})
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/tinyxml)
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
@ -76,7 +83,6 @@ FILE(GLOB_RECURSE README_FILES "${CMAKE_SOURCE_DIR}/../Readme.md")
|
|||||||
#
|
#
|
||||||
# all we need for ACGL:
|
# all we need for ACGL:
|
||||||
#
|
#
|
||||||
ADD_DEFINITIONS(-DACGL_ERROR_LEVEL_EC3)
|
|
||||||
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
@ -87,6 +93,11 @@ INCLUDE(${CMAKE_SOURCE_DIR}/extern/acgl/CMakeListsStaticInclude.txt)
|
|||||||
# GLFW (and some other linker flags)
|
# GLFW (and some other linker flags)
|
||||||
#
|
#
|
||||||
|
|
||||||
|
OPTION(GLFW_BUILD_DOCS OFF)
|
||||||
|
OPTION(GLFW_BUILD_TESTS OFF)
|
||||||
|
OPTION(GLFW_BUILD_EXAMPLES OFF)
|
||||||
|
OPTION(GLFW_INSTALL OFF)
|
||||||
|
|
||||||
FILE(GLOB_RECURSE HEADER_FILES_GLFW "${CMAKE_SOURCE_DIR}/extern/glfw/include/*.h")
|
FILE(GLOB_RECURSE HEADER_FILES_GLFW "${CMAKE_SOURCE_DIR}/extern/glfw/include/*.h")
|
||||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
|
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/extern/glfw/include)
|
||||||
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
|
SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_GLFW})
|
||||||
@ -146,5 +157,5 @@ SET(HEADER_FILES ${HEADER_FILES} ${HEADER_FILES_LUA_BRIDGE})
|
|||||||
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/lua/src/liblua.a)
|
SET (LIBRARIES ${LIBRARIES} ${CMAKE_SOURCE_DIR}/extern/lua/src/liblua.a)
|
||||||
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(MarbleRaceGroupC ${SOURCE_FILES} ${HEADER_FILES} ${SHADER_FILES} ${README_FILES})
|
ADD_EXECUTABLE(saxum ${SOURCE_FILES} ${HEADER_FILES})
|
||||||
TARGET_LINK_LIBRARIES(MarbleRaceGroupC ${LIBRARIES} ${CMAKE_DL_LIBS})
|
TARGET_LINK_LIBRARIES(saxum ${LIBRARIES} ${CMAKE_DL_LIBS})
|
||||||
|
471
LICENSE.txt
Normal file
@ -0,0 +1,471 @@
|
|||||||
|
All code except the one in extern is subject to the following license:
|
||||||
|
|
||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2015 Fabian Klemp, Steffen Fündgens, Jasper Manousek, Simon
|
||||||
|
Froitzheim
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The code in extern contains the following libraries with their respective
|
||||||
|
licenses:
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
ACGL: ACGL - Aachen Computer Graphics Library
|
||||||
|
|
||||||
|
Intended to speed up graphics/OpenGL prototyping. Developed by Lars Krecklau
|
||||||
|
and Robert Menzel with help from Andreas Neu, Janis Born, Kersten Schuster, Ole
|
||||||
|
Untzelmann, based on prior work from Lars Krecklau.
|
||||||
|
|
||||||
|
Included third-party software:
|
||||||
|
* Includes lodepng by Lode Vandevenne, unchanged except for the include path in
|
||||||
|
* lodepng.cpp. lodepng is provided as-is, see license text in the lodepng
|
||||||
|
* source code. Includes OpenGL loader code created by a modified glLoadGen by
|
||||||
|
* Jason McKesson. Includes GLM by Christophe Riccio. Includes data type
|
||||||
|
* definitions from libspnav header originally by John Tsiombikas (see
|
||||||
|
* mini_spnav.h for details). Includes RGBE/Radiance image import by Bruce
|
||||||
|
* Walter (code provided 'as-is') minimally adjusted to reduce compiler
|
||||||
|
* warnings.
|
||||||
|
|
||||||
|
Additional documentation:
|
||||||
|
http://www.graphics.rwth-aachen.de/redmine/projects/acgl/wiki
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
ACGL is distributed under the terms of the MIT license stated below.
|
||||||
|
|
||||||
|
Copyright (C) 2011-2012 Computer Graphics Group RWTH Aachen University
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
GLM License:
|
||||||
|
|
||||||
|
The MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2005 - 2013 G-Truc Creation
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Linux Joystick License:
|
||||||
|
|
||||||
|
Copyright (C) 2008 Andreas Volz
|
||||||
|
|
||||||
|
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 of the Software and its Copyright notices. In addition publicly
|
||||||
|
documented acknowledgment must be given that this software has been used if no
|
||||||
|
source code of this software is made available publicly. This includes
|
||||||
|
acknowledgments in either Copyright notices, Manuals, Publicity and Marketing
|
||||||
|
documents or any documentation provided with any product containing this
|
||||||
|
software. This License does not apply to any software that links to the
|
||||||
|
libraries provided by this software (statically or dynamically), but only to
|
||||||
|
the software provided.
|
||||||
|
|
||||||
|
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 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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
TinyXML2 License:
|
||||||
|
|
||||||
|
Original code by Lee Thomason (www.grinninglizard.com)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Bullet Physics License:
|
||||||
|
|
||||||
|
Bullet Continuous Collision Detection and Physics Library Copyright (c)
|
||||||
|
2003-2011 Erwin Coumans http://bulletphysics.org
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
All files in the extern/bullet/src folder are under this Zlib license. Files in the
|
||||||
|
Extras and Demos folder may have a different license, see the respective files.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
GLFW License:
|
||||||
|
|
||||||
|
Copyright (c) 2002-2006 Marcus Geelnard
|
||||||
|
Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Lua License:
|
||||||
|
|
||||||
|
Copyright © 1994–2015 Lua.org, PUC-Rio.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
LuaBridge License:
|
||||||
|
|
||||||
|
https://github.com/vinniefalco/LuaBridge
|
||||||
|
|
||||||
|
Copyright 2012, Vinnie Falco <vinnie.falco@gmail.com>
|
||||||
|
Copyright 2007, Nathan Reed
|
||||||
|
|
||||||
|
License: The MIT License (http://www.opensource.org/licenses/mit-license.php)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Licenses for Models and Textures:
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data/textures/sand.png is from
|
||||||
|
http://opengameart.org/node/18616
|
||||||
|
Created by Christian Femmer aka Duion.
|
||||||
|
It is licensed CC-BY 3.0,
|
||||||
|
see https://creativecommons.org/licenses/by/3.0/ for full license text.
|
||||||
|
|
||||||
|
data/textures/hintTexture2.png is based on this.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data/textures/nightskydome.png was generated with:
|
||||||
|
http://wwwtyro.github.io/procedural.js/space/ Source code here:
|
||||||
|
https://github.com/wwwtyro/procedural.js
|
||||||
|
Seed: NTc3MDMzNjg3ODQ4NQ
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
data/textures/skydomeNew.png was modified and originally taken from:
|
||||||
|
http://www.tutorialsforblender3d.com/Textures/Skys/Sky_Dome_1.html
|
||||||
|
|
||||||
|
The author states that the images were created with "Terragen(tm) Classic for
|
||||||
|
Windows" and according to their license, the textures are free for personal
|
||||||
|
non-commercial use.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
All textures in data/textures/cgtextures are subject to the following license:
|
||||||
|
|
||||||
|
This document is a license agreement ("License") by CGTextures between the user
|
||||||
|
("You") and CGTextures. Use of the photographs on the CGTextures website is
|
||||||
|
conditional upon the your agreement to the terms and conditions of purchase set
|
||||||
|
out below. If you do not agree to these terms, then you must not accept the
|
||||||
|
terms hereof or purchase, download, access or otherwise use any products from
|
||||||
|
CGTextures.
|
||||||
|
|
||||||
|
CGTextures may revise and update this Agreement at anytime and without notice.
|
||||||
|
Your continued use of the website after any such changes are posted will
|
||||||
|
constitute your acceptance of these changes.
|
||||||
|
|
||||||
|
LICENSE
|
||||||
|
|
||||||
|
CGTextures offers photographs of materials ("Textures") on its website
|
||||||
|
(www.cgtextures.com) for game developers, special effects artists, graphic
|
||||||
|
designers and other professions. No payment or royalties are required to use
|
||||||
|
these Textures. The use of Textures is non-exclusive, royalty free, and you
|
||||||
|
have the right to modify them for the uses permitted under the clause
|
||||||
|
Conditions of Use. Most Textures on the CGTextures website are photographed by
|
||||||
|
CGTextures. A small part is photographed by third party contributors
|
||||||
|
("Contributors"). CGTextures has separate agreements with these Contributors in
|
||||||
|
which they grant CGTextures permission to add their Textures to the website.
|
||||||
|
All terms and conditions in this License apply to both groups of Textures. All
|
||||||
|
Textures and materials remain in ownership of CGTextures or the Contributor and
|
||||||
|
the Textures and materials are licensed to you, not sold.
|
||||||
|
|
||||||
|
The license granted for the use of the textures gives you no lawful right to
|
||||||
|
submit, use or otherwise make available the textures in Second Life or
|
||||||
|
otherwise to Linden Research, Inc. Use of the textures in such manner will be
|
||||||
|
an infringement of the intellectual property rights if CGTextures and
|
||||||
|
CGTextures reserves its right to take action to prevent any such infringement.
|
||||||
|
|
||||||
|
INTELLECTUAL PROPERTY
|
||||||
|
|
||||||
|
All materials including the organization and presentation of these materials on
|
||||||
|
the CGTextures website are the property of CGTextures or its Contributors and
|
||||||
|
are protected by intellectual property laws. Some images contain graphic
|
||||||
|
materials like wallpaper patterns, logos, names or signs. The use of these kind
|
||||||
|
of images is at your own discretion. The rights for the photo lie with
|
||||||
|
CGTextures and the photo has been taken in a public space, but using the
|
||||||
|
patterns, logos or name in your work might not be allowed.
|
||||||
|
|
||||||
|
CONDITIONS OF USE
|
||||||
|
|
||||||
|
Use of the Textures is only allowed under the following conditions:
|
||||||
|
- Private or commercial use
|
||||||
|
- Use in 2D or 3D computer graphics, movies and printed media
|
||||||
|
- Incorporation in computer games, 3D models
|
||||||
|
- Selling 3D models bundled with modified versions of the textures, when the
|
||||||
|
texture is customized for the 3D model
|
||||||
|
|
||||||
|
It is NOT permitted to:
|
||||||
|
- Sell or distribute any of these textures in an unmodified form, or where the
|
||||||
|
derived product you are selling or distributing is a Texture or a collection
|
||||||
|
of Textures. IN OTHER WORDS: Do not sell or distribute any of these textures
|
||||||
|
(modified or not) by itself or in a texture pack, material, clipart, website
|
||||||
|
theme or scrapbooking pack!
|
||||||
|
- Bundle the images with software such as paint programs, 3D programs,
|
||||||
|
photo-kiosk software.
|
||||||
|
- Reselling or redistributing the images at 'print on demand' services (mugs,
|
||||||
|
t-shirts, mouse mats, etc)
|
||||||
|
- Use the textures in graphic design themes or templates sold to multiple
|
||||||
|
customers on digital market places (this includes templates of websites and
|
||||||
|
business cards and e-cards).
|
||||||
|
- Selling or redistributing skins for laptops, phones and other devices,
|
||||||
|
created with images from CGTextures.
|
||||||
|
- Stockpile images with the goal of making a local texture library.
|
||||||
|
- Using a special program (spider, leecher) or script to automatically download
|
||||||
|
all Textures on the CGTextures website. Users who try to mass download will
|
||||||
|
be banned from the website automatically.
|
||||||
|
- Interfere with the security or otherwise abuse, disrupt, place excessive
|
||||||
|
loads on, or attempt to gain unauthorized access to the CGTextures website or
|
||||||
|
any system resources or networks connected to this website.
|
||||||
|
- Release the Textures or derivative products under Open Source Licences
|
||||||
|
|
||||||
|
RESALE OR REDISTRIBUTION OF 3D MODELS TEXTURED WITH IMAGES FROM CGTEXTURES
|
||||||
|
|
||||||
|
When selling or redistributing a 3D model bundled with textures from CGTextures
|
||||||
|
please add the following text in the documentation accompanying the model:
|
||||||
|
|
||||||
|
"One or more textures on this 3D model have been created with images from
|
||||||
|
CGTextures.com. These images may not be redistributed by default, please visit
|
||||||
|
www.cgtextures.com for more information."
|
||||||
|
|
||||||
|
STOCKPILING IMAGES
|
||||||
|
|
||||||
|
CGTextures is meant as a 'download when you need it' resource. Downloading
|
||||||
|
complete categories with the goal of making a local copy of the texture
|
||||||
|
collection is not allowed.
|
||||||
|
|
||||||
|
PRIVACY
|
||||||
|
|
||||||
|
CGTextures respects the privacy of the personal information of the individuals
|
||||||
|
with whom we interact. CGTextures does not disclose personal information of our
|
||||||
|
members or those individuals who visit our website. No newsletters or offers
|
||||||
|
will be sent to you without your prior consent. Any information submitted by
|
||||||
|
the buyer will be used solely for the purpose of completing the transaction,
|
||||||
|
delivering the product and addressing any customer service issues.
|
||||||
|
|
||||||
|
We use third-party advertising companies (Google Adsense) to serve ads when you
|
||||||
|
visit our website. These companies may use information (not including
|
||||||
|
personally identifying information such as your name, address, email address,
|
||||||
|
or telephone number) about your visits to this and other websites in order to
|
||||||
|
provide advertisements about goods and services of interest to you. For more
|
||||||
|
information about this subject (including on how to "Opt-Out" on advertising
|
||||||
|
cookies) please visit this link: Google Advertsing and Privacy page
|
||||||
|
|
||||||
|
|
||||||
|
LIMITATION OF LIABILITY
|
||||||
|
|
||||||
|
You assume all responsibility and risk for the use of the CGTextures website,
|
||||||
|
the Textures, materials and information. CGTextures does not represent or
|
||||||
|
warrant that the site or any content available for downloading through the site
|
||||||
|
will be free of viruses or similar contaminations of destructive features.
|
||||||
|
|
||||||
|
In no event shall CGTextures or any of its affiliates, employees or
|
||||||
|
Contributors be liable for any incidental, indirect, punitive, exemplary or
|
||||||
|
consequential damages whatsoever, including damages for loss of profits,
|
||||||
|
interruption, loss of business information, loss of data, or any other
|
||||||
|
pecuniary loss in connection with any claim, loss, action, suit, damage or
|
||||||
|
other proceeding arising under or out of this License, including without
|
||||||
|
limitation your use of, reliance upon, access to or exploitation of the
|
||||||
|
CGTextures website, the materials or any part thereof, or any rights granted to
|
||||||
|
you hereunder, even if we have been advised of the possibility of such damaged,
|
||||||
|
wheter the action is based on contract, tort (including negligence),
|
||||||
|
infringement of intellectual property rights or otherwise.
|
||||||
|
|
||||||
|
INDEMNIFICATION
|
||||||
|
|
||||||
|
You agree to indemnify and hold CGTextures harmless against all claims or
|
||||||
|
liability asserted against CGTextures arising out of or in connection with any
|
||||||
|
breach by you or anyone acting on your behalf of any of this License
|
||||||
|
|
||||||
|
GENERAL
|
||||||
|
|
||||||
|
This License shall be governed by and construed in accordance with the laws of
|
||||||
|
The Netherlands, without regards to conflict of laws provisions thereto. The
|
||||||
|
parties consent to the exclusive jurisdiction of the courts of, and venue and
|
||||||
|
situs in The Netherlands.
|
||||||
|
|
||||||
|
TERMINATION
|
||||||
|
|
||||||
|
CGTextures reserves the right to terminate the license of the use of the
|
||||||
|
materials on CGTextures if the user is found in breach of this License and does
|
||||||
|
not remedy that breach within three (3) days of receiving notice from
|
||||||
|
CGTextures.
|
||||||
|
|
||||||
|
|
||||||
|
EMAIL
|
||||||
|
|
||||||
|
Feel free to email any questions regarding this license or any other questions
|
||||||
|
about CGTextures to support@cgtextures.com Correspondence can be in English or
|
||||||
|
Dutch.
|
||||||
|
|
||||||
|
ADDRESS
|
||||||
|
|
||||||
|
CGTextures.com Krommedijk 231 3312LE Dordrecht The Netherlands
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The logo in logo/ and also contained in the loading
|
||||||
|
screen(data/textures/loadingscreen.png and
|
||||||
|
data/textures/loadingscreenContinue.png) is subject to the following license:
|
||||||
|
|
||||||
|
Created by Fabian Klemp and Jeremy Theocharis in 2015.
|
||||||
|
Licensed by CC BY 4.0.
|
||||||
|
(see https://creativecommons.org/licenses/by/4.0/ for full license text)
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
All other models and textures contained in data/textures and data/geometry and
|
||||||
|
also the corresponding GIMP files in GIMPfiles and the Blender files in
|
||||||
|
Blenderfiles are subject to the following license:
|
||||||
|
|
||||||
|
Created by Simon Froitzheim, Fabian Klemp, Steffen Fündgens and Jasper Manousek in 2014 and 2015.
|
||||||
|
Licensed by CC BY 4.0.
|
||||||
|
(see https://creativecommons.org/licenses/by/4.0/ for full license text)
|
@ -1,739 +0,0 @@
|
|||||||
# Blender v2.72 (sub 0) OBJ File: ''
|
|
||||||
# www.blender.org
|
|
||||||
mtllib block.mtl
|
|
||||||
o Block_Cube
|
|
||||||
v 1.977493 -1.057121 -1.000000
|
|
||||||
v 1.977493 -1.057121 -1.000000
|
|
||||||
v -1.970033 -1.057121 -1.000001
|
|
||||||
v 2.003582 -1.031032 -0.973911
|
|
||||||
v 2.003582 0.916790 -0.973911
|
|
||||||
v 2.003581 0.916790 0.973912
|
|
||||||
v 0.003582 -1.057121 1.000000
|
|
||||||
v -1.970034 -1.057121 0.999999
|
|
||||||
v -1.970034 -1.057121 0.999999
|
|
||||||
v 1.977494 0.942879 -0.999999
|
|
||||||
v -1.970034 0.942879 -1.000000
|
|
||||||
v -1.970034 0.942879 0.999999
|
|
||||||
v -1.996123 0.916790 0.973910
|
|
||||||
v -1.996123 0.916790 -0.973912
|
|
||||||
v -1.996122 -1.031032 -0.973912
|
|
||||||
v 1.977492 0.942879 1.000001
|
|
||||||
v 1.977492 0.942879 1.000001
|
|
||||||
v 0.003582 0.942879 -1.000000
|
|
||||||
v 1.977494 0.942879 -0.999999
|
|
||||||
v 1.977493 -1.057121 1.000000
|
|
||||||
v 0.003582 -1.057121 -1.000000
|
|
||||||
v -1.970033 -1.057121 -1.000001
|
|
||||||
v -1.970034 0.942879 -1.000000
|
|
||||||
v 1.977493 -1.057121 1.000000
|
|
||||||
v -1.970034 0.942879 0.999999
|
|
||||||
v 1.981206 -1.056856 -0.998011
|
|
||||||
v 1.984843 -1.052918 -0.998943
|
|
||||||
v 1.984843 -1.056064 -0.995797
|
|
||||||
v 1.988331 -1.050523 -0.997642
|
|
||||||
v 1.988331 -1.054763 -0.993402
|
|
||||||
v 1.991598 -1.047998 -0.995858
|
|
||||||
v 1.991598 -1.052980 -0.990877
|
|
||||||
v 1.994578 -1.045393 -0.993628
|
|
||||||
v 1.994578 -1.050749 -0.988272
|
|
||||||
v 1.997210 -1.042761 -0.990996
|
|
||||||
v 1.997210 -1.048117 -0.985640
|
|
||||||
v 1.999440 -1.040155 -0.988016
|
|
||||||
v 1.999440 -1.045137 -0.983034
|
|
||||||
v 2.001224 -1.037630 -0.984749
|
|
||||||
v 2.001224 -1.041870 -0.980509
|
|
||||||
v 2.002525 -1.035236 -0.981261
|
|
||||||
v 2.002525 -1.038382 -0.978115
|
|
||||||
v 2.003316 -1.033021 -0.977624
|
|
||||||
v 2.003316 -1.034745 -0.975900
|
|
||||||
v 2.003316 -1.033021 0.977624
|
|
||||||
v 2.003316 -1.034745 0.975900
|
|
||||||
v 2.003582 -1.031032 0.973911
|
|
||||||
v 2.002525 -1.035236 0.981261
|
|
||||||
v 2.002525 -1.038382 0.978115
|
|
||||||
v 2.001224 -1.037630 0.984749
|
|
||||||
v 2.001224 -1.041870 0.980509
|
|
||||||
v 1.999440 -1.040155 0.988016
|
|
||||||
v 1.999440 -1.045137 0.983034
|
|
||||||
v 1.997210 -1.048117 0.985640
|
|
||||||
v 1.994578 -1.050749 0.988272
|
|
||||||
v 1.997210 -1.042761 0.990996
|
|
||||||
v 1.991598 -1.047998 0.995859
|
|
||||||
v 1.991598 -1.052980 0.990877
|
|
||||||
v 1.988331 -1.050523 0.997642
|
|
||||||
v 1.988331 -1.054763 0.993402
|
|
||||||
v 1.984843 -1.052918 0.998943
|
|
||||||
v 1.984843 -1.056064 0.995797
|
|
||||||
v 1.981206 -1.055132 0.999735
|
|
||||||
v 1.981206 -1.056856 0.998011
|
|
||||||
v 1.981206 0.940890 -0.999734
|
|
||||||
v 1.984844 0.941822 -0.995796
|
|
||||||
v 1.984843 0.938676 -0.998943
|
|
||||||
v 1.988331 0.940521 -0.993402
|
|
||||||
v 1.988331 0.936281 -0.997642
|
|
||||||
v 1.991598 0.933756 -0.995858
|
|
||||||
v 1.994578 0.936507 -0.988271
|
|
||||||
v 1.994578 0.931151 -0.993627
|
|
||||||
v 1.997210 0.928519 -0.990995
|
|
||||||
v 1.999441 0.925913 -0.988015
|
|
||||||
v 1.997210 0.933875 -0.985639
|
|
||||||
v 2.001225 0.923388 -0.984748
|
|
||||||
v 1.999441 0.930895 -0.983034
|
|
||||||
v 2.002526 0.920994 -0.981261
|
|
||||||
v 2.001225 0.927628 -0.980508
|
|
||||||
v 2.003317 0.918779 -0.977623
|
|
||||||
v 2.002526 0.924140 -0.978114
|
|
||||||
v 2.003317 0.920503 -0.975900
|
|
||||||
v 2.003315 0.920503 0.975901
|
|
||||||
v 2.003315 0.918779 0.977625
|
|
||||||
v 2.002524 0.924140 0.978115
|
|
||||||
v 2.002524 0.920994 0.981262
|
|
||||||
v 2.001224 0.927628 0.980510
|
|
||||||
v 2.001224 0.923388 0.984750
|
|
||||||
v 1.999439 0.925913 0.988017
|
|
||||||
v 1.997209 0.933875 0.985640
|
|
||||||
v 1.997209 0.928519 0.990996
|
|
||||||
v 1.994577 0.936507 0.988272
|
|
||||||
v 1.994577 0.931151 0.993628
|
|
||||||
v 1.991597 0.933756 0.995859
|
|
||||||
v 1.988330 0.940521 0.993403
|
|
||||||
v 1.988330 0.936281 0.997643
|
|
||||||
v 1.984842 0.938676 0.998944
|
|
||||||
v 1.984842 0.941822 0.995797
|
|
||||||
v 1.981205 0.942614 0.998011
|
|
||||||
v 1.981205 0.940890 0.999735
|
|
||||||
v -1.973747 -1.056856 0.998010
|
|
||||||
v -1.977384 -1.052918 0.998943
|
|
||||||
v -1.977384 -1.056065 0.995796
|
|
||||||
v -1.980871 -1.054764 0.993402
|
|
||||||
v -1.984138 -1.047998 0.995858
|
|
||||||
v -1.984138 -1.052980 0.990876
|
|
||||||
v -1.987118 -1.045393 0.993627
|
|
||||||
v -1.987118 -1.050749 0.988271
|
|
||||||
v -1.989750 -1.042761 0.990995
|
|
||||||
v -1.989750 -1.048117 0.985639
|
|
||||||
v -1.991981 -1.045137 0.983034
|
|
||||||
v -1.993765 -1.037630 0.984748
|
|
||||||
v -1.993765 -1.041870 0.980508
|
|
||||||
v -1.995066 -1.035236 0.981261
|
|
||||||
v -1.995066 -1.038383 0.978114
|
|
||||||
v -1.995857 -1.033022 0.977624
|
|
||||||
v -1.996123 -1.031032 0.973911
|
|
||||||
v -1.995857 -1.034745 0.975900
|
|
||||||
v -1.995857 -1.033022 -0.977625
|
|
||||||
v -1.995857 -1.034745 -0.975901
|
|
||||||
v -1.995065 -1.038383 -0.978115
|
|
||||||
v -1.993765 -1.037630 -0.984750
|
|
||||||
v -1.993765 -1.041870 -0.980510
|
|
||||||
v -1.991981 -1.040156 -0.988017
|
|
||||||
v -1.991981 -1.045137 -0.983035
|
|
||||||
v -1.989750 -1.048117 -0.985640
|
|
||||||
v -1.987118 -1.050749 -0.988273
|
|
||||||
v -1.989750 -1.042761 -0.990997
|
|
||||||
v -1.984138 -1.052980 -0.990878
|
|
||||||
v -1.987118 -1.045393 -0.993629
|
|
||||||
v -1.980871 -1.050524 -0.997643
|
|
||||||
v -1.980871 -1.054764 -0.993403
|
|
||||||
v -1.977383 -1.056065 -0.995798
|
|
||||||
v -1.977383 -1.052918 -0.998944
|
|
||||||
v -1.973746 -1.055132 -0.999735
|
|
||||||
v -1.973746 -1.056856 -0.998012
|
|
||||||
v -1.973747 0.940890 0.999734
|
|
||||||
v -1.977384 0.938675 0.998942
|
|
||||||
v -1.973747 0.942613 0.998010
|
|
||||||
v -1.980872 0.936281 0.997642
|
|
||||||
v -1.977384 0.941822 0.995796
|
|
||||||
v -1.984139 0.933756 0.995858
|
|
||||||
v -1.980872 0.940521 0.993402
|
|
||||||
v -1.987119 0.931150 0.993627
|
|
||||||
v -1.984139 0.938737 0.990876
|
|
||||||
v -1.989751 0.928518 0.990995
|
|
||||||
v -1.987119 0.936507 0.988271
|
|
||||||
v -1.991982 0.930895 0.983034
|
|
||||||
v -1.991982 0.925913 0.988015
|
|
||||||
v -1.993766 0.923388 0.984748
|
|
||||||
v -1.995066 0.920993 0.981260
|
|
||||||
v -1.993766 0.927628 0.980508
|
|
||||||
v -1.995857 0.918779 0.977623
|
|
||||||
v -1.995066 0.924140 0.978114
|
|
||||||
v -1.995857 0.920503 0.975900
|
|
||||||
v -1.995857 0.920503 -0.975901
|
|
||||||
v -1.995857 0.918779 -0.977625
|
|
||||||
v -1.995066 0.924140 -0.978115
|
|
||||||
v -1.995066 0.920993 -0.981262
|
|
||||||
v -1.993765 0.927628 -0.980509
|
|
||||||
v -1.993765 0.923388 -0.984749
|
|
||||||
v -1.991981 0.925913 -0.988016
|
|
||||||
v -1.989750 0.933875 -0.985640
|
|
||||||
v -1.989750 0.928518 -0.990996
|
|
||||||
v -1.987118 0.936507 -0.988272
|
|
||||||
v -1.987118 0.931150 -0.993628
|
|
||||||
v -1.984138 0.933756 -0.995859
|
|
||||||
v -1.980871 0.940521 -0.993403
|
|
||||||
v -1.980871 0.936281 -0.997643
|
|
||||||
v -1.977384 0.938675 -0.998944
|
|
||||||
v -1.977384 0.941822 -0.995797
|
|
||||||
v -1.973747 0.942613 -0.998011
|
|
||||||
v -1.973747 0.940890 -0.999735
|
|
||||||
v 1.994578 -1.045393 0.993628
|
|
||||||
v 1.991597 0.938738 0.990878
|
|
||||||
v 1.991598 0.938738 -0.990876
|
|
||||||
v 1.999439 0.930895 0.983035
|
|
||||||
v -1.973747 -1.055132 0.999734
|
|
||||||
v -1.980871 -1.050524 0.997642
|
|
||||||
v -1.991981 -1.040156 0.988015
|
|
||||||
v -1.995065 -1.035236 -0.981262
|
|
||||||
v -1.984138 -1.047998 -0.995859
|
|
||||||
v -1.984138 0.938737 -0.990877
|
|
||||||
v -1.989751 0.933875 0.985639
|
|
||||||
v -1.991981 0.930895 -0.983035
|
|
||||||
v 0.003582 -1.057121 -1.000000
|
|
||||||
v 0.003582 -1.057121 1.000000
|
|
||||||
v 0.003581 0.942879 1.000000
|
|
||||||
v 0.003581 0.942879 1.000000
|
|
||||||
v 0.003582 0.942879 -1.000000
|
|
||||||
v 1.981206 -1.055132 -0.999734
|
|
||||||
v 1.981206 0.942614 -0.998010
|
|
||||||
vt 0.839733 0.000000
|
|
||||||
vt -0.537296 -0.000000
|
|
||||||
vt 0.839733 0.013044
|
|
||||||
vt 0.839733 0.986956
|
|
||||||
vt 0.160267 0.986956
|
|
||||||
vt 0.848833 0.000000
|
|
||||||
vt 0.160370 0.000000
|
|
||||||
vt 0.974265 0.996942
|
|
||||||
vt -0.001961 0.996942
|
|
||||||
vt -0.001961 -0.003057
|
|
||||||
vt 1.537399 -0.000000
|
|
||||||
vt 0.151167 0.000000
|
|
||||||
vt 0.839733 -1.000000
|
|
||||||
vt 0.947629 -0.000000
|
|
||||||
vt 0.003341 -0.000000
|
|
||||||
vt 0.003341 1.000000
|
|
||||||
vt 0.839732 1.000000
|
|
||||||
vt -0.537296 1.000000
|
|
||||||
vt 0.841028 0.000133
|
|
||||||
vt 0.842297 0.002102
|
|
||||||
vt 0.842297 0.000528
|
|
||||||
vt 0.848011 0.003299
|
|
||||||
vt 0.846532 0.001179
|
|
||||||
vt 0.847367 0.000528
|
|
||||||
vt 0.847389 0.004562
|
|
||||||
vt 0.845651 0.002071
|
|
||||||
vt 0.846610 0.005864
|
|
||||||
vt 0.844742 0.003186
|
|
||||||
vt 0.845692 0.007180
|
|
||||||
vt 0.843824 0.004502
|
|
||||||
vt 0.844653 0.008483
|
|
||||||
vt 0.842915 0.005992
|
|
||||||
vt 0.843513 0.009746
|
|
||||||
vt 0.842034 0.007626
|
|
||||||
vt 0.842297 0.010943
|
|
||||||
vt 0.841199 0.009369
|
|
||||||
vt 0.841028 0.012050
|
|
||||||
vt 0.840427 0.011188
|
|
||||||
vt 0.158972 0.012050
|
|
||||||
vt 0.159573 0.011188
|
|
||||||
vt 0.160267 0.013044
|
|
||||||
vt 0.157703 0.010943
|
|
||||||
vt 0.158801 0.009369
|
|
||||||
vt 0.156487 0.009746
|
|
||||||
vt 0.157966 0.007626
|
|
||||||
vt 0.155347 0.008483
|
|
||||||
vt 0.157085 0.005992
|
|
||||||
vt 0.156176 0.004502
|
|
||||||
vt 0.155258 0.003186
|
|
||||||
vt 0.154308 0.007180
|
|
||||||
vt 0.152611 0.004562
|
|
||||||
vt 0.154349 0.002071
|
|
||||||
vt 0.151989 0.003299
|
|
||||||
vt 0.153468 0.001179
|
|
||||||
vt 0.151535 0.002102
|
|
||||||
vt 0.152633 0.000528
|
|
||||||
vt 0.841028 0.000995
|
|
||||||
vt 0.841028 0.999005
|
|
||||||
vt 0.842297 0.999472
|
|
||||||
vt 0.842297 0.997898
|
|
||||||
vt 0.846532 0.998821
|
|
||||||
vt 0.848011 0.996701
|
|
||||||
vt 0.848464 0.997898
|
|
||||||
vt 0.847388 0.995438
|
|
||||||
vt 0.844742 0.996814
|
|
||||||
vt 0.846610 0.994136
|
|
||||||
vt 0.845692 0.992820
|
|
||||||
vt 0.844653 0.991517
|
|
||||||
vt 0.843824 0.995498
|
|
||||||
vt 0.843513 0.990254
|
|
||||||
vt 0.842915 0.994008
|
|
||||||
vt 0.842296 0.989057
|
|
||||||
vt 0.842034 0.992374
|
|
||||||
vt 0.841028 0.987950
|
|
||||||
vt 0.841199 0.990631
|
|
||||||
vt 0.840426 0.988812
|
|
||||||
vt 0.159573 0.988812
|
|
||||||
vt 0.158972 0.987950
|
|
||||||
vt 0.158801 0.990631
|
|
||||||
vt 0.157703 0.989057
|
|
||||||
vt 0.157966 0.992374
|
|
||||||
vt 0.156487 0.990254
|
|
||||||
vt 0.155347 0.991517
|
|
||||||
vt 0.156176 0.995498
|
|
||||||
vt 0.154307 0.992820
|
|
||||||
vt 0.155258 0.996814
|
|
||||||
vt 0.153389 0.994136
|
|
||||||
vt 0.152611 0.995438
|
|
||||||
vt 0.153468 0.998821
|
|
||||||
vt 0.151989 0.996701
|
|
||||||
vt 0.151535 0.997898
|
|
||||||
vt 0.841028 0.999867
|
|
||||||
vt 0.841028 1.000132
|
|
||||||
vt 0.841028 1.000994
|
|
||||||
vt 0.159075 0.000995
|
|
||||||
vt 0.157807 0.000529
|
|
||||||
vt 0.157807 0.002102
|
|
||||||
vt 0.153390 0.005864
|
|
||||||
vt 0.157807 0.997899
|
|
||||||
vt 0.157807 0.999472
|
|
||||||
vt 0.159075 0.999868
|
|
||||||
vt 0.159075 -0.000994
|
|
||||||
vt 0.159075 -0.000132
|
|
||||||
vt 0.159075 0.999005
|
|
||||||
vt 0.160370 1.000000
|
|
||||||
vt 0.152633 0.999472
|
|
||||||
vt 0.154349 0.997929
|
|
||||||
vt 0.157085 0.994008
|
|
||||||
vt 0.846610 0.007180
|
|
||||||
vt 0.845692 0.005864
|
|
||||||
vt 0.845692 0.994136
|
|
||||||
vt 0.844653 0.004562
|
|
||||||
vt 0.844653 0.995438
|
|
||||||
vt 0.843513 0.003299
|
|
||||||
vt 0.843513 0.996701
|
|
||||||
vt 0.846611 0.992820
|
|
||||||
vt 0.153493 0.992820
|
|
||||||
vt 0.154411 0.994136
|
|
||||||
vt 0.154411 0.005864
|
|
||||||
vt 0.155450 0.995439
|
|
||||||
vt 0.155450 0.004562
|
|
||||||
vt 0.156590 0.996702
|
|
||||||
vt 0.156590 0.003299
|
|
||||||
vt 0.160370 2.000000
|
|
||||||
vt 0.159075 1.999005
|
|
||||||
vt 0.159075 1.000994
|
|
||||||
vt 0.153493 0.007180
|
|
||||||
vt 0.003734 0.000000
|
|
||||||
vt 0.003734 1.000000
|
|
||||||
vt -0.546397 0.013044
|
|
||||||
vt 0.848833 0.013044
|
|
||||||
vt 1.546500 0.013044
|
|
||||||
vt 0.151270 0.013045
|
|
||||||
vt 0.974264 -0.003058
|
|
||||||
vt -0.546397 -0.013044
|
|
||||||
vt 0.848834 -0.013044
|
|
||||||
vt -0.537296 -1.000000
|
|
||||||
vt 0.947629 1.000000
|
|
||||||
vt 0.151167 1.000000
|
|
||||||
vt 0.848465 0.002102
|
|
||||||
vt 0.847367 0.999472
|
|
||||||
vt 0.845651 0.997929
|
|
||||||
vt 0.159075 0.000133
|
|
||||||
vt 0.927508 1.000000
|
|
||||||
vt 0.927508 0.000000
|
|
||||||
usemtl None
|
|
||||||
s off
|
|
||||||
f 1/1 2/1 3/2
|
|
||||||
f 4/3 5/4 6/5
|
|
||||||
f 7/6 8/7 9/7
|
|
||||||
f 10/8 11/9 12/10
|
|
||||||
f 13/5 14/4 15/3
|
|
||||||
f 12/7 16/11 17/11
|
|
||||||
f 18/12 19/1 10/1
|
|
||||||
f 20/13 17/1 16/1
|
|
||||||
f 21/12 22/2 3/2
|
|
||||||
f 2/14 3/15 23/16
|
|
||||||
f 11/2 10/1 19/1
|
|
||||||
f 24/1 9/2 7/12
|
|
||||||
f 16/17 12/18 25/18
|
|
||||||
f 26/19 1/1 2/1
|
|
||||||
f 27/20 28/21 26/19
|
|
||||||
f 29/22 30/23 28/24
|
|
||||||
f 31/25 32/26 30/23
|
|
||||||
f 33/27 34/28 32/26
|
|
||||||
f 35/29 36/30 34/28
|
|
||||||
f 37/31 38/32 36/30
|
|
||||||
f 39/33 40/34 38/32
|
|
||||||
f 41/35 42/36 40/34
|
|
||||||
f 42/36 41/35 43/37
|
|
||||||
f 4/3 44/38 43/37
|
|
||||||
f 45/39 46/40 47/41
|
|
||||||
f 48/42 49/43 46/40
|
|
||||||
f 50/44 51/45 49/43
|
|
||||||
f 52/46 53/47 51/45
|
|
||||||
f 54/48 53/47 52/46
|
|
||||||
f 55/49 54/48 56/50
|
|
||||||
f 57/51 58/52 55/49
|
|
||||||
f 59/53 60/54 58/52
|
|
||||||
f 61/55 62/56 60/54
|
|
||||||
f 62/20 61/21 63/19
|
|
||||||
f 64/57 63/19 20/1
|
|
||||||
f 65/58 19/17 10/17
|
|
||||||
f 66/59 67/60 65/58
|
|
||||||
f 68/61 69/62 67/63
|
|
||||||
f 70/64 69/62 68/61
|
|
||||||
f 71/65 72/66 70/64
|
|
||||||
f 73/67 72/66 71/65
|
|
||||||
f 74/68 73/67 75/69
|
|
||||||
f 76/70 74/68 77/71
|
|
||||||
f 78/72 76/70 79/73
|
|
||||||
f 80/74 78/72 81/75
|
|
||||||
f 5/4 80/74 82/76
|
|
||||||
f 83/77 84/78 6/5
|
|
||||||
f 85/79 86/80 84/78
|
|
||||||
f 87/81 88/82 86/80
|
|
||||||
f 89/83 88/82 87/81
|
|
||||||
f 90/84 91/85 89/83
|
|
||||||
f 92/86 93/87 91/85
|
|
||||||
f 94/88 93/87 92/86
|
|
||||||
f 95/89 96/90 94/88
|
|
||||||
f 97/91 96/90 95/89
|
|
||||||
f 97/60 98/59 99/92
|
|
||||||
f 100/93 99/94 16/17
|
|
||||||
f 101/95 8/7 9/7
|
|
||||||
f 102/96 103/97 101/95
|
|
||||||
f 104/54 103/56 102/55
|
|
||||||
f 105/51 106/52 104/54
|
|
||||||
f 107/98 108/49 106/52
|
|
||||||
f 109/50 110/48 108/49
|
|
||||||
f 111/47 110/48 109/50
|
|
||||||
f 112/44 113/45 111/47
|
|
||||||
f 114/42 115/43 113/45
|
|
||||||
f 115/43 114/42 116/39
|
|
||||||
f 117/41 118/40 116/39
|
|
||||||
f 119/37 120/38 15/3
|
|
||||||
f 121/36 120/38 119/37
|
|
||||||
f 122/33 123/34 121/36
|
|
||||||
f 124/31 125/32 123/34
|
|
||||||
f 126/30 125/32 124/31
|
|
||||||
f 127/28 126/30 128/29
|
|
||||||
f 129/26 127/28 130/27
|
|
||||||
f 131/22 132/23 129/26
|
|
||||||
f 133/24 132/23 131/22
|
|
||||||
f 133/99 134/100 135/101
|
|
||||||
f 136/102 135/103 3/7
|
|
||||||
f 137/104 25/105 12/105
|
|
||||||
f 138/99 137/104 139/101
|
|
||||||
f 140/90 138/91 141/106
|
|
||||||
f 142/88 140/90 143/89
|
|
||||||
f 144/87 142/88 145/107
|
|
||||||
f 146/85 144/87 147/86
|
|
||||||
f 148/108 149/83 146/85
|
|
||||||
f 150/82 149/83 148/108
|
|
||||||
f 151/80 150/82 152/81
|
|
||||||
f 153/78 151/80 154/79
|
|
||||||
f 13/5 153/78 155/77
|
|
||||||
f 156/76 157/74 14/4
|
|
||||||
f 158/75 159/72 157/74
|
|
||||||
f 160/73 161/70 159/72
|
|
||||||
f 162/68 161/70 160/73
|
|
||||||
f 163/69 164/67 162/68
|
|
||||||
f 165/65 166/66 164/67
|
|
||||||
f 167/64 166/66 165/65
|
|
||||||
f 168/61 169/62 167/64
|
|
||||||
f 170/63 169/62 168/61
|
|
||||||
f 170/99 171/100 172/101
|
|
||||||
f 173/103 172/102 11/7
|
|
||||||
f 47/41 46/40 44/38
|
|
||||||
f 46/40 49/43 42/36
|
|
||||||
f 49/43 51/45 40/34
|
|
||||||
f 40/34 51/45 53/47
|
|
||||||
f 53/47 54/48 36/30
|
|
||||||
f 54/109 55/110 34/111
|
|
||||||
f 55/110 58/112 32/113
|
|
||||||
f 58/112 60/114 30/115
|
|
||||||
f 30/115 60/114 62/20
|
|
||||||
f 28/60 62/20 64/57
|
|
||||||
f 24/1 1/17 64/57
|
|
||||||
f 2/1 19/17 65/58
|
|
||||||
f 65/58 67/60 27/20
|
|
||||||
f 67/60 69/115 29/114
|
|
||||||
f 69/115 70/113 31/112
|
|
||||||
f 31/112 70/113 72/111
|
|
||||||
f 33/110 72/111 73/116
|
|
||||||
f 35/29 73/67 74/68
|
|
||||||
f 37/31 74/68 76/70
|
|
||||||
f 76/70 78/72 41/35
|
|
||||||
f 78/72 80/74 43/37
|
|
||||||
f 80/74 5/4 4/3
|
|
||||||
f 6/5 84/78 45/39
|
|
||||||
f 45/39 84/78 86/80
|
|
||||||
f 86/80 88/82 50/44
|
|
||||||
f 88/82 89/83 52/46
|
|
||||||
f 89/83 91/85 56/50
|
|
||||||
f 91/116 93/111 174/110
|
|
||||||
f 93/111 94/113 57/112
|
|
||||||
f 57/112 94/113 96/115
|
|
||||||
f 96/115 97/60 61/20
|
|
||||||
f 97/60 100/58 63/57
|
|
||||||
f 63/57 100/58 17/17
|
|
||||||
f 10/17 16/1 99/57
|
|
||||||
f 99/57 98/20 66/60
|
|
||||||
f 98/20 95/114 68/115
|
|
||||||
f 95/114 175/112 176/113
|
|
||||||
f 175/112 92/110 71/111
|
|
||||||
f 71/111 92/110 90/109
|
|
||||||
f 90/84 177/108 77/71
|
|
||||||
f 177/108 87/81 79/73
|
|
||||||
f 87/81 85/79 81/75
|
|
||||||
f 85/79 83/77 82/76
|
|
||||||
f 83/77 6/5 5/4
|
|
||||||
f 15/3 120/38 118/40
|
|
||||||
f 120/38 121/36 115/43
|
|
||||||
f 121/36 123/34 113/45
|
|
||||||
f 123/34 125/32 111/47
|
|
||||||
f 125/32 126/30 110/48
|
|
||||||
f 126/117 127/118 108/119
|
|
||||||
f 127/118 129/120 106/121
|
|
||||||
f 129/120 132/122 104/123
|
|
||||||
f 104/123 132/122 133/99
|
|
||||||
f 133/99 136/104 101/95
|
|
||||||
f 136/104 22/105 8/7
|
|
||||||
f 25/124 137/125 178/126
|
|
||||||
f 137/104 138/99 102/97
|
|
||||||
f 138/99 140/122 179/123
|
|
||||||
f 179/123 140/122 142/120
|
|
||||||
f 142/120 144/118 107/119
|
|
||||||
f 144/118 146/117 109/127
|
|
||||||
f 109/50 146/85 149/83
|
|
||||||
f 180/46 149/83 150/82
|
|
||||||
f 112/44 150/82 151/80
|
|
||||||
f 151/80 153/78 116/39
|
|
||||||
f 153/78 13/5 117/41
|
|
||||||
f 15/3 14/4 157/74
|
|
||||||
f 157/74 159/72 181/35
|
|
||||||
f 181/35 159/72 161/70
|
|
||||||
f 161/70 162/68 124/31
|
|
||||||
f 162/68 164/67 128/29
|
|
||||||
f 164/117 166/118 130/119
|
|
||||||
f 166/118 167/120 182/121
|
|
||||||
f 167/120 169/122 131/123
|
|
||||||
f 131/123 169/122 170/99
|
|
||||||
f 170/99 173/104 135/95
|
|
||||||
f 173/104 23/105 3/7
|
|
||||||
f 11/105 172/104 139/95
|
|
||||||
f 172/104 171/99 141/97
|
|
||||||
f 141/97 171/99 168/122
|
|
||||||
f 143/123 168/122 183/120
|
|
||||||
f 183/120 165/118 147/119
|
|
||||||
f 165/118 163/117 184/127
|
|
||||||
f 163/69 185/71 148/108
|
|
||||||
f 185/71 160/73 152/81
|
|
||||||
f 152/81 160/73 158/75
|
|
||||||
f 158/75 156/76 155/77
|
|
||||||
f 156/76 14/4 13/5
|
|
||||||
f 8/128 22/129 3/129
|
|
||||||
f 186/12 1/1 21/12
|
|
||||||
f 3/2 15/130 22/2
|
|
||||||
f 21/12 1/1 22/2
|
|
||||||
f 1/1 4/131 2/1
|
|
||||||
f 22/2 1/1 3/2
|
|
||||||
f 47/41 4/3 6/5
|
|
||||||
f 20/11 47/132 24/11
|
|
||||||
f 8/7 117/133 9/7
|
|
||||||
f 9/7 20/11 24/11
|
|
||||||
f 24/11 187/6 7/6
|
|
||||||
f 16/134 10/8 12/10
|
|
||||||
f 117/41 13/5 15/3
|
|
||||||
f 16/11 6/132 17/11
|
|
||||||
f 17/11 188/6 189/6
|
|
||||||
f 25/7 13/133 12/7
|
|
||||||
f 17/11 189/6 25/7
|
|
||||||
f 17/11 25/7 12/7
|
|
||||||
f 11/2 14/135 23/2
|
|
||||||
f 19/1 5/136 10/1
|
|
||||||
f 10/1 11/2 23/2
|
|
||||||
f 23/2 190/12 18/12
|
|
||||||
f 12/2 25/2 9/137
|
|
||||||
f 10/1 23/2 18/12
|
|
||||||
f 20/13 16/1 9/137
|
|
||||||
f 10/138 19/138 2/14
|
|
||||||
f 16/1 12/2 9/137
|
|
||||||
f 3/2 1/1 21/12
|
|
||||||
f 19/1 18/12 190/12
|
|
||||||
f 2/14 23/16 10/138
|
|
||||||
f 190/12 23/2 11/2
|
|
||||||
f 190/12 11/2 19/1
|
|
||||||
f 25/18 189/139 188/139
|
|
||||||
f 188/139 17/17 16/17
|
|
||||||
f 191/57 26/19 2/1
|
|
||||||
f 16/17 25/18 188/139
|
|
||||||
f 191/57 27/20 26/19
|
|
||||||
f 27/140 29/22 28/24
|
|
||||||
f 29/22 31/25 30/23
|
|
||||||
f 31/25 33/27 32/26
|
|
||||||
f 33/27 35/29 34/28
|
|
||||||
f 35/29 37/31 36/30
|
|
||||||
f 37/31 39/33 38/32
|
|
||||||
f 39/33 41/35 40/34
|
|
||||||
f 44/38 42/36 43/37
|
|
||||||
f 45/39 48/42 46/40
|
|
||||||
f 48/42 50/44 49/43
|
|
||||||
f 50/44 52/46 51/45
|
|
||||||
f 56/50 54/48 52/46
|
|
||||||
f 174/98 55/49 56/50
|
|
||||||
f 174/98 57/51 55/49
|
|
||||||
f 57/51 59/53 58/52
|
|
||||||
f 59/53 61/55 60/54
|
|
||||||
f 64/57 62/20 63/19
|
|
||||||
f 24/1 64/57 20/1
|
|
||||||
f 192/92 65/58 10/17
|
|
||||||
f 192/92 66/59 65/58
|
|
||||||
f 66/141 68/61 67/63
|
|
||||||
f 176/142 70/64 68/61
|
|
||||||
f 176/142 71/65 70/64
|
|
||||||
f 75/69 73/67 71/65
|
|
||||||
f 77/71 74/68 75/69
|
|
||||||
f 79/73 76/70 77/71
|
|
||||||
f 81/75 78/72 79/73
|
|
||||||
f 82/76 80/74 81/75
|
|
||||||
f 83/77 85/79 84/78
|
|
||||||
f 85/79 87/81 86/80
|
|
||||||
f 177/108 89/83 87/81
|
|
||||||
f 177/108 90/84 89/83
|
|
||||||
f 90/84 92/86 91/85
|
|
||||||
f 175/107 94/88 92/86
|
|
||||||
f 175/107 95/89 94/88
|
|
||||||
f 98/106 97/91 95/89
|
|
||||||
f 100/58 97/60 99/92
|
|
||||||
f 17/17 100/93 16/17
|
|
||||||
f 178/143 101/95 9/7
|
|
||||||
f 178/143 102/96 101/95
|
|
||||||
f 179/53 104/54 102/55
|
|
||||||
f 179/53 105/51 104/54
|
|
||||||
f 105/51 107/98 106/52
|
|
||||||
f 107/98 109/50 108/49
|
|
||||||
f 180/46 111/47 109/50
|
|
||||||
f 180/46 112/44 111/47
|
|
||||||
f 112/44 114/42 113/45
|
|
||||||
f 118/40 115/43 116/39
|
|
||||||
f 181/35 121/36 119/37
|
|
||||||
f 181/35 122/33 121/36
|
|
||||||
f 122/33 124/31 123/34
|
|
||||||
f 128/29 126/30 124/31
|
|
||||||
f 130/27 127/28 128/29
|
|
||||||
f 182/25 129/26 130/27
|
|
||||||
f 182/25 131/22 129/26
|
|
||||||
f 134/140 133/24 131/22
|
|
||||||
f 136/104 133/99 135/101
|
|
||||||
f 22/7 136/102 3/7
|
|
||||||
f 139/101 137/104 12/105
|
|
||||||
f 141/100 138/99 139/101
|
|
||||||
f 143/89 140/90 141/106
|
|
||||||
f 145/107 142/88 143/89
|
|
||||||
f 147/86 144/87 145/107
|
|
||||||
f 184/84 146/85 147/86
|
|
||||||
f 184/84 148/108 146/85
|
|
||||||
f 152/81 150/82 148/108
|
|
||||||
f 154/79 151/80 152/81
|
|
||||||
f 155/77 153/78 154/79
|
|
||||||
f 156/76 158/75 157/74
|
|
||||||
f 158/75 160/73 159/72
|
|
||||||
f 185/71 162/68 160/73
|
|
||||||
f 185/71 163/69 162/68
|
|
||||||
f 163/69 165/65 164/67
|
|
||||||
f 183/142 167/64 165/65
|
|
||||||
f 183/142 168/61 167/64
|
|
||||||
f 171/141 170/63 168/61
|
|
||||||
f 173/104 170/99 172/101
|
|
||||||
f 23/7 173/103 11/7
|
|
||||||
f 4/3 47/41 44/38
|
|
||||||
f 44/38 46/40 42/36
|
|
||||||
f 42/36 49/43 40/34
|
|
||||||
f 38/32 40/34 53/47
|
|
||||||
f 38/32 53/47 36/30
|
|
||||||
f 36/116 54/109 34/111
|
|
||||||
f 34/111 55/110 32/113
|
|
||||||
f 32/113 58/112 30/115
|
|
||||||
f 28/60 30/115 62/20
|
|
||||||
f 26/58 28/60 64/57
|
|
||||||
f 64/57 1/17 26/58
|
|
||||||
f 191/57 2/1 65/58
|
|
||||||
f 191/57 65/58 27/20
|
|
||||||
f 27/20 67/60 29/114
|
|
||||||
f 29/114 69/115 31/112
|
|
||||||
f 33/110 31/112 72/111
|
|
||||||
f 35/109 33/110 73/116
|
|
||||||
f 37/31 35/29 74/68
|
|
||||||
f 39/33 37/31 76/70
|
|
||||||
f 39/33 76/70 41/35
|
|
||||||
f 41/35 78/72 43/37
|
|
||||||
f 43/37 80/74 4/3
|
|
||||||
f 47/41 6/5 45/39
|
|
||||||
f 48/42 45/39 86/80
|
|
||||||
f 48/42 86/80 50/44
|
|
||||||
f 50/44 88/82 52/46
|
|
||||||
f 52/46 89/83 56/50
|
|
||||||
f 56/109 91/116 174/110
|
|
||||||
f 174/110 93/111 57/112
|
|
||||||
f 59/114 57/112 96/115
|
|
||||||
f 59/114 96/115 61/20
|
|
||||||
f 61/20 97/60 63/57
|
|
||||||
f 20/1 63/57 17/17
|
|
||||||
f 192/58 10/17 99/57
|
|
||||||
f 192/58 99/57 66/60
|
|
||||||
f 66/60 98/20 68/115
|
|
||||||
f 68/115 95/114 176/113
|
|
||||||
f 176/113 175/112 71/111
|
|
||||||
f 75/116 71/111 90/109
|
|
||||||
f 75/69 90/84 77/71
|
|
||||||
f 77/71 177/108 79/73
|
|
||||||
f 79/73 87/81 81/75
|
|
||||||
f 81/75 85/79 82/76
|
|
||||||
f 82/76 83/77 5/4
|
|
||||||
f 117/41 15/3 118/40
|
|
||||||
f 118/40 120/38 115/43
|
|
||||||
f 115/43 121/36 113/45
|
|
||||||
f 113/45 123/34 111/47
|
|
||||||
f 111/47 125/32 110/48
|
|
||||||
f 110/127 126/117 108/119
|
|
||||||
f 108/119 127/118 106/121
|
|
||||||
f 106/121 129/120 104/123
|
|
||||||
f 103/97 104/123 133/99
|
|
||||||
f 103/97 133/99 101/95
|
|
||||||
f 101/95 136/104 8/7
|
|
||||||
f 9/105 25/124 178/126
|
|
||||||
f 178/95 137/104 102/97
|
|
||||||
f 102/97 138/99 179/123
|
|
||||||
f 105/121 179/123 142/120
|
|
||||||
f 105/121 142/120 107/119
|
|
||||||
f 107/119 144/118 109/127
|
|
||||||
f 180/46 109/50 149/83
|
|
||||||
f 112/44 180/46 150/82
|
|
||||||
f 114/42 112/44 151/80
|
|
||||||
f 114/42 151/80 116/39
|
|
||||||
f 116/39 153/78 117/41
|
|
||||||
f 119/37 15/3 157/74
|
|
||||||
f 119/37 157/74 181/35
|
|
||||||
f 122/33 181/35 161/70
|
|
||||||
f 122/33 161/70 124/31
|
|
||||||
f 124/31 162/68 128/29
|
|
||||||
f 128/127 164/117 130/119
|
|
||||||
f 130/119 166/118 182/121
|
|
||||||
f 182/121 167/120 131/123
|
|
||||||
f 134/97 131/123 170/99
|
|
||||||
f 134/97 170/99 135/95
|
|
||||||
f 135/95 173/104 3/7
|
|
||||||
f 12/7 11/105 139/95
|
|
||||||
f 139/95 172/104 141/97
|
|
||||||
f 143/123 141/97 168/122
|
|
||||||
f 145/121 143/123 183/120
|
|
||||||
f 145/121 183/120 147/119
|
|
||||||
f 147/119 165/118 184/127
|
|
||||||
f 184/84 163/69 148/108
|
|
||||||
f 148/108 185/71 152/81
|
|
||||||
f 154/79 152/81 158/75
|
|
||||||
f 154/79 158/75 155/77
|
|
||||||
f 155/77 156/76 13/5
|
|
||||||
f 1/144 24/145 20/145
|
|
||||||
f 20/145 9/128 8/128
|
|
||||||
f 3/129 1/144 20/145
|
|
||||||
f 20/145 8/128 3/129
|
|
@ -1,358 +0,0 @@
|
|||||||
# Blender v2.71 (sub 0) OBJ File: 'torch.blend'
|
|
||||||
# www.blender.org
|
|
||||||
o Cylinder
|
|
||||||
v 0.000000 -1.000000 -0.087051
|
|
||||||
v -0.000000 1.000000 -0.191513
|
|
||||||
v 0.016983 -1.000000 -0.085379
|
|
||||||
v 0.037362 1.000000 -0.187833
|
|
||||||
v 0.033313 -1.000000 -0.080425
|
|
||||||
v 0.073289 1.000000 -0.176935
|
|
||||||
v 0.048363 -1.000000 -0.072380
|
|
||||||
v 0.106399 1.000000 -0.159237
|
|
||||||
v 0.061555 -1.000000 -0.061555
|
|
||||||
v 0.135420 1.000000 -0.135420
|
|
||||||
v 0.072380 -1.000000 -0.048363
|
|
||||||
v 0.159237 1.000000 -0.106399
|
|
||||||
v 0.080425 -1.000000 -0.033313
|
|
||||||
v 0.176935 1.000000 -0.073289
|
|
||||||
v 0.085379 -1.000000 -0.016983
|
|
||||||
v 0.187833 1.000000 -0.037362
|
|
||||||
v 0.087051 -1.000000 -0.000000
|
|
||||||
v 0.191513 1.000000 0.000000
|
|
||||||
v 0.085379 -1.000000 0.016983
|
|
||||||
v 0.187833 1.000000 0.037362
|
|
||||||
v 0.080425 -1.000000 0.033313
|
|
||||||
v 0.176935 1.000000 0.073289
|
|
||||||
v 0.072380 -1.000000 0.048363
|
|
||||||
v 0.159237 1.000000 0.106399
|
|
||||||
v 0.061555 -1.000000 0.061555
|
|
||||||
v 0.135420 1.000000 0.135420
|
|
||||||
v 0.048363 -1.000000 0.072380
|
|
||||||
v 0.106399 1.000000 0.159237
|
|
||||||
v 0.033313 -1.000000 0.080425
|
|
||||||
v 0.073289 1.000000 0.176935
|
|
||||||
v 0.016983 -1.000000 0.085379
|
|
||||||
v 0.037362 1.000000 0.187833
|
|
||||||
v -0.000000 -1.000000 0.087051
|
|
||||||
v -0.000000 1.000000 0.191513
|
|
||||||
v -0.016983 -1.000000 0.085379
|
|
||||||
v -0.037362 1.000000 0.187833
|
|
||||||
v -0.033313 -1.000000 0.080425
|
|
||||||
v -0.073289 1.000000 0.176935
|
|
||||||
v -0.048363 -1.000000 0.072380
|
|
||||||
v -0.106399 1.000000 0.159237
|
|
||||||
v -0.061555 -1.000000 0.061555
|
|
||||||
v -0.135420 1.000000 0.135420
|
|
||||||
v -0.072381 -1.000000 0.048363
|
|
||||||
v -0.159237 1.000000 0.106399
|
|
||||||
v -0.080425 -1.000000 0.033313
|
|
||||||
v -0.176935 1.000000 0.073289
|
|
||||||
v -0.085379 -1.000000 0.016983
|
|
||||||
v -0.187833 1.000000 0.037362
|
|
||||||
v -0.087051 -1.000000 -0.000000
|
|
||||||
v -0.191513 1.000000 -0.000000
|
|
||||||
v -0.085379 -1.000000 -0.016983
|
|
||||||
v -0.187833 1.000000 -0.037362
|
|
||||||
v -0.080425 -1.000000 -0.033313
|
|
||||||
v -0.176935 1.000000 -0.073289
|
|
||||||
v -0.072380 -1.000000 -0.048363
|
|
||||||
v -0.159237 1.000000 -0.106399
|
|
||||||
v -0.061554 -1.000000 -0.061555
|
|
||||||
v -0.135420 1.000000 -0.135420
|
|
||||||
v -0.048363 -1.000000 -0.072381
|
|
||||||
v -0.106399 1.000000 -0.159237
|
|
||||||
v -0.033313 -1.000000 -0.080425
|
|
||||||
v -0.073289 1.000000 -0.176935
|
|
||||||
v -0.016983 -1.000000 -0.085379
|
|
||||||
v -0.037362 1.000000 -0.187833
|
|
||||||
vt 0.355490 0.133897
|
|
||||||
vt 0.388961 0.169345
|
|
||||||
vt 0.188374 0.340465
|
|
||||||
vt 0.418692 0.207984
|
|
||||||
vt 0.201889 0.358028
|
|
||||||
vt 0.444379 0.249421
|
|
||||||
vt 0.213565 0.376862
|
|
||||||
vt 0.465761 0.293235
|
|
||||||
vt 0.482621 0.338980
|
|
||||||
vt 0.230950 0.417570
|
|
||||||
vt 0.494787 0.386190
|
|
||||||
vt 0.236481 0.439028
|
|
||||||
vt 0.502136 0.434385
|
|
||||||
vt 0.239822 0.460935
|
|
||||||
vt 0.504593 0.483075
|
|
||||||
vt 0.502132 0.531764
|
|
||||||
vt 0.239822 0.505197
|
|
||||||
vt 0.494779 0.579957
|
|
||||||
vt 0.236481 0.527103
|
|
||||||
vt 0.482609 0.627165
|
|
||||||
vt 0.465746 0.672906
|
|
||||||
vt 0.223286 0.569353
|
|
||||||
vt 0.444361 0.716715
|
|
||||||
vt 0.213567 0.589266
|
|
||||||
vt 0.418672 0.758148
|
|
||||||
vt 0.388940 0.796782
|
|
||||||
vt 0.188377 0.625660
|
|
||||||
vt 0.355468 0.832224
|
|
||||||
vt 0.173163 0.641770
|
|
||||||
vt 0.318596 0.864115
|
|
||||||
vt 0.278700 0.892129
|
|
||||||
vt 0.138269 0.669000
|
|
||||||
vt 0.236185 0.915982
|
|
||||||
vt 0.118944 0.679843
|
|
||||||
vt 0.191483 0.935431
|
|
||||||
vt 0.098625 0.688683
|
|
||||||
vt 0.145050 0.950278
|
|
||||||
vt 0.077519 0.695432
|
|
||||||
vt 0.097357 0.960373
|
|
||||||
vt 0.055840 0.700021
|
|
||||||
vt 0.048890 0.965612
|
|
||||||
vt 0.033810 0.702402
|
|
||||||
vt 0.000142 0.965943
|
|
||||||
vt 0.011651 0.702553
|
|
||||||
vt 0.000142 0.000142
|
|
||||||
vt 0.048895 0.000476
|
|
||||||
vt 0.033797 0.263708
|
|
||||||
vt 0.097366 0.005719
|
|
||||||
vt 0.055829 0.266091
|
|
||||||
vt 0.145063 0.015817
|
|
||||||
vt 0.077509 0.270681
|
|
||||||
vt 0.191499 0.030670
|
|
||||||
vt 0.098617 0.277432
|
|
||||||
vt 0.236203 0.050124
|
|
||||||
vt 0.118937 0.286274
|
|
||||||
vt 0.278720 0.073982
|
|
||||||
vt 0.138263 0.297119
|
|
||||||
vt 0.514387 0.175443
|
|
||||||
vt 0.533044 0.130402
|
|
||||||
vt 0.990347 0.319823
|
|
||||||
vt 0.318618 0.102002
|
|
||||||
vt 0.173159 0.324353
|
|
||||||
vt 0.156399 0.309855
|
|
||||||
vt 0.704754 0.679615
|
|
||||||
vt 0.545660 0.695284
|
|
||||||
vt 0.689084 0.520522
|
|
||||||
vt 0.223285 0.396777
|
|
||||||
vt 0.240940 0.483066
|
|
||||||
vt 0.230950 0.548561
|
|
||||||
vt 0.201891 0.608099
|
|
||||||
vt 0.156403 0.656266
|
|
||||||
vt 0.011637 0.263556
|
|
||||||
vt 0.776743 0.495124
|
|
||||||
vt 0.727992 0.495124
|
|
||||||
vt 0.594601 0.439872
|
|
||||||
vt 0.680177 0.009653
|
|
||||||
vt 0.727992 0.000142
|
|
||||||
vt 0.776744 0.000142
|
|
||||||
vt 0.533043 0.364864
|
|
||||||
vt 0.514387 0.319824
|
|
||||||
vt 0.504876 0.272009
|
|
||||||
vt 0.504876 0.223258
|
|
||||||
vt 0.560128 0.405399
|
|
||||||
vt 0.560129 0.089866
|
|
||||||
vt 0.594602 0.055394
|
|
||||||
vt 0.869598 0.466956
|
|
||||||
vt 0.910133 0.439871
|
|
||||||
vt 0.971691 0.364863
|
|
||||||
vt 0.824559 0.009653
|
|
||||||
vt 0.869599 0.028309
|
|
||||||
vt 0.910135 0.055395
|
|
||||||
vt 0.944607 0.089867
|
|
||||||
vt 0.971691 0.130402
|
|
||||||
vt 0.990347 0.175442
|
|
||||||
vt 0.999858 0.223257
|
|
||||||
vt 0.999858 0.272009
|
|
||||||
vt 0.944606 0.405398
|
|
||||||
vt 0.824557 0.485613
|
|
||||||
vt 0.680177 0.485613
|
|
||||||
vt 0.635136 0.466957
|
|
||||||
vt 0.635137 0.028309
|
|
||||||
vt 0.529991 0.536192
|
|
||||||
vt 0.545660 0.520522
|
|
||||||
vt 0.564085 0.508211
|
|
||||||
vt 0.584558 0.499731
|
|
||||||
vt 0.606292 0.495408
|
|
||||||
vt 0.650186 0.499730
|
|
||||||
vt 0.670659 0.508211
|
|
||||||
vt 0.628452 0.495407
|
|
||||||
vt 0.704753 0.536191
|
|
||||||
vt 0.717065 0.554616
|
|
||||||
vt 0.729868 0.596823
|
|
||||||
vt 0.725545 0.575089
|
|
||||||
vt 0.725545 0.640717
|
|
||||||
vt 0.729868 0.618983
|
|
||||||
vt 0.717065 0.661190
|
|
||||||
vt 0.689084 0.695284
|
|
||||||
vt 0.670659 0.707596
|
|
||||||
vt 0.628452 0.720399
|
|
||||||
vt 0.606292 0.720399
|
|
||||||
vt 0.584558 0.716076
|
|
||||||
vt 0.564085 0.707595
|
|
||||||
vt 0.529990 0.679615
|
|
||||||
vt 0.517679 0.661190
|
|
||||||
vt 0.509199 0.640717
|
|
||||||
vt 0.504876 0.596824
|
|
||||||
vt 0.650185 0.716076
|
|
||||||
vt 0.509199 0.575090
|
|
||||||
vt 0.517679 0.554617
|
|
||||||
vt 0.504876 0.618983
|
|
||||||
vn 0.097900 -0.051900 -0.993800
|
|
||||||
vn 0.289900 -0.051900 -0.955700
|
|
||||||
vn 0.470800 -0.051900 -0.880700
|
|
||||||
vn 0.633500 -0.051900 -0.772000
|
|
||||||
vn 0.772000 -0.051900 -0.633500
|
|
||||||
vn 0.880700 -0.051900 -0.470800
|
|
||||||
vn 0.955700 -0.051900 -0.289900
|
|
||||||
vn 0.993800 -0.051900 -0.097900
|
|
||||||
vn 0.993800 -0.051900 0.097900
|
|
||||||
vn 0.955700 -0.051900 0.289900
|
|
||||||
vn 0.880700 -0.051900 0.470800
|
|
||||||
vn 0.772000 -0.051900 0.633500
|
|
||||||
vn 0.633500 -0.051900 0.772000
|
|
||||||
vn 0.470800 -0.051900 0.880700
|
|
||||||
vn 0.289900 -0.051900 0.955700
|
|
||||||
vn 0.097900 -0.051900 0.993800
|
|
||||||
vn -0.097900 -0.051900 0.993800
|
|
||||||
vn -0.289900 -0.051900 0.955600
|
|
||||||
vn -0.470800 -0.051900 0.880700
|
|
||||||
vn -0.633500 -0.051900 0.772000
|
|
||||||
vn -0.772000 -0.051900 0.633500
|
|
||||||
vn -0.880700 -0.051900 0.470800
|
|
||||||
vn -0.955700 -0.051900 0.289900
|
|
||||||
vn -0.993800 -0.051900 0.097900
|
|
||||||
vn -0.993800 -0.051900 -0.097900
|
|
||||||
vn -0.955600 -0.051900 -0.289900
|
|
||||||
vn -0.880700 -0.051900 -0.470800
|
|
||||||
vn -0.772000 -0.051900 -0.633500
|
|
||||||
vn -0.633500 -0.051900 -0.772000
|
|
||||||
vn -0.470800 -0.051900 -0.880700
|
|
||||||
vn 0.000000 1.000000 0.000000
|
|
||||||
vn -0.097900 -0.051900 -0.993800
|
|
||||||
vn -0.289900 -0.051900 -0.955700
|
|
||||||
vn 0.000000 -1.000000 0.000000
|
|
||||||
vn -0.955700 -0.051900 -0.289900
|
|
||||||
vn 0.000000 -1.000000 -0.000100
|
|
||||||
s off
|
|
||||||
f 2/1/1 4/2/1 3/3/1
|
|
||||||
f 4/2/2 6/4/2 5/5/2
|
|
||||||
f 6/4/3 8/6/3 7/7/3
|
|
||||||
f 7/7/4 8/6/4 10/8/4
|
|
||||||
f 10/8/5 12/9/5 11/10/5
|
|
||||||
f 12/9/6 14/11/6 13/12/6
|
|
||||||
f 14/11/7 16/13/7 15/14/7
|
|
||||||
f 15/14/8 16/13/8 18/15/8
|
|
||||||
f 18/15/9 20/16/9 19/17/9
|
|
||||||
f 19/17/10 20/16/10 22/18/10
|
|
||||||
f 21/19/11 22/18/11 24/20/11
|
|
||||||
f 24/20/12 26/21/12 25/22/12
|
|
||||||
f 26/21/13 28/23/13 27/24/13
|
|
||||||
f 27/24/14 28/23/14 30/25/14
|
|
||||||
f 30/25/15 32/26/15 31/27/15
|
|
||||||
f 32/26/16 34/28/16 33/29/16
|
|
||||||
f 33/29/17 34/28/17 36/30/17
|
|
||||||
f 36/30/18 38/31/18 37/32/18
|
|
||||||
f 38/31/19 40/33/19 39/34/19
|
|
||||||
f 40/33/20 42/35/20 41/36/20
|
|
||||||
f 42/35/21 44/37/21 43/38/21
|
|
||||||
f 44/37/22 46/39/22 45/40/22
|
|
||||||
f 46/39/23 48/41/23 47/42/23
|
|
||||||
f 48/41/24 50/43/24 49/44/24
|
|
||||||
f 50/45/25 52/46/25 51/47/25
|
|
||||||
f 52/46/26 54/48/26 53/49/26
|
|
||||||
f 54/48/27 56/50/27 55/51/27
|
|
||||||
f 56/50/28 58/52/28 57/53/28
|
|
||||||
f 58/52/29 60/54/29 59/55/29
|
|
||||||
f 60/54/30 62/56/30 61/57/30
|
|
||||||
f 54/58/31 52/59/31 22/60/31
|
|
||||||
f 64/61/32 2/1/32 1/62/32
|
|
||||||
f 62/56/33 64/61/33 63/63/33
|
|
||||||
f 31/64/34 47/65/34 15/66/34
|
|
||||||
f 1/62/1 2/1/1 3/3/1
|
|
||||||
f 3/3/2 4/2/2 5/5/2
|
|
||||||
f 5/5/3 6/4/3 7/7/3
|
|
||||||
f 9/67/4 7/7/4 10/8/4
|
|
||||||
f 9/67/5 10/8/5 11/10/5
|
|
||||||
f 11/10/6 12/9/6 13/12/6
|
|
||||||
f 13/12/7 14/11/7 15/14/7
|
|
||||||
f 17/68/8 15/14/8 18/15/8
|
|
||||||
f 17/68/9 18/15/9 19/17/9
|
|
||||||
f 21/19/10 19/17/10 22/18/10
|
|
||||||
f 23/69/11 21/19/11 24/20/11
|
|
||||||
f 23/69/12 24/20/12 25/22/12
|
|
||||||
f 25/22/13 26/21/13 27/24/13
|
|
||||||
f 29/70/14 27/24/14 30/25/14
|
|
||||||
f 29/70/15 30/25/15 31/27/15
|
|
||||||
f 31/27/16 32/26/16 33/29/16
|
|
||||||
f 35/71/17 33/29/17 36/30/17
|
|
||||||
f 35/71/18 36/30/18 37/32/18
|
|
||||||
f 37/32/19 38/31/19 39/34/19
|
|
||||||
f 39/34/20 40/33/20 41/36/20
|
|
||||||
f 41/36/21 42/35/21 43/38/21
|
|
||||||
f 43/38/22 44/37/22 45/40/22
|
|
||||||
f 45/40/23 46/39/23 47/42/23
|
|
||||||
f 47/42/24 48/41/24 49/44/24
|
|
||||||
f 49/72/25 50/45/25 51/47/25
|
|
||||||
f 51/47/35 52/46/35 53/49/35
|
|
||||||
f 53/49/27 54/48/27 55/51/27
|
|
||||||
f 55/51/28 56/50/28 57/53/28
|
|
||||||
f 57/53/29 58/52/29 59/55/29
|
|
||||||
f 59/55/30 60/54/30 61/57/30
|
|
||||||
f 10/73/31 8/74/31 2/75/31
|
|
||||||
f 44/76/31 42/77/31 40/78/31
|
|
||||||
f 62/79/31 60/80/31 58/81/31
|
|
||||||
f 56/82/31 22/60/31 64/83/31
|
|
||||||
f 50/84/31 48/85/31 52/59/31
|
|
||||||
f 2/75/31 14/86/31 10/73/31
|
|
||||||
f 16/87/31 22/60/31 20/88/31
|
|
||||||
f 38/89/31 44/76/31 40/78/31
|
|
||||||
f 38/89/31 36/90/31 34/91/31
|
|
||||||
f 34/91/31 32/92/31 30/93/31
|
|
||||||
f 30/93/31 28/94/31 26/95/31
|
|
||||||
f 26/95/31 24/96/31 22/60/31
|
|
||||||
f 18/97/31 16/87/31 20/88/31
|
|
||||||
f 14/86/31 22/60/31 16/87/31
|
|
||||||
f 14/86/31 12/98/31 10/73/31
|
|
||||||
f 6/99/31 4/100/31 8/74/31
|
|
||||||
f 22/60/31 38/89/31 34/91/31
|
|
||||||
f 56/82/31 54/58/31 22/60/31
|
|
||||||
f 46/101/31 44/76/31 48/85/31
|
|
||||||
f 44/76/31 38/89/31 48/85/31
|
|
||||||
f 30/93/31 22/60/31 34/91/31
|
|
||||||
f 30/93/31 26/95/31 22/60/31
|
|
||||||
f 52/59/31 48/85/31 38/89/31
|
|
||||||
f 56/82/31 64/83/31 58/81/31
|
|
||||||
f 64/83/31 62/79/31 58/81/31
|
|
||||||
f 61/57/33 62/56/33 63/63/33
|
|
||||||
f 52/59/31 38/89/31 22/60/31
|
|
||||||
f 8/74/31 4/100/31 2/75/31
|
|
||||||
f 63/63/32 64/61/32 1/62/32
|
|
||||||
f 2/75/31 22/60/31 14/86/31
|
|
||||||
f 22/60/31 2/75/31 64/83/31
|
|
||||||
f 63/102/34 1/103/34 3/104/34
|
|
||||||
f 3/104/34 5/105/34 7/106/34
|
|
||||||
f 11/107/34 13/108/34 9/109/34
|
|
||||||
f 15/66/34 7/106/34 13/108/34
|
|
||||||
f 15/66/34 17/110/34 19/111/34
|
|
||||||
f 23/112/34 15/66/34 21/113/34
|
|
||||||
f 27/114/34 31/64/34 25/115/34
|
|
||||||
f 27/114/36 29/116/36 31/64/36
|
|
||||||
f 31/64/34 33/117/34 35/118/34
|
|
||||||
f 39/119/34 41/120/34 43/121/34
|
|
||||||
f 43/121/34 45/122/34 47/65/34
|
|
||||||
f 47/65/34 49/123/34 51/124/34
|
|
||||||
f 53/125/34 57/126/34 63/102/34
|
|
||||||
f 35/118/34 37/127/34 31/64/34
|
|
||||||
f 59/128/34 61/129/34 63/102/34
|
|
||||||
f 63/102/34 3/104/34 7/106/34
|
|
||||||
f 13/108/34 7/106/34 9/109/34
|
|
||||||
f 31/64/34 23/112/34 25/115/34
|
|
||||||
f 37/127/34 39/119/34 43/121/34
|
|
||||||
f 37/127/34 47/65/34 31/64/34
|
|
||||||
f 47/65/34 37/127/34 43/121/34
|
|
||||||
f 53/125/34 55/130/34 57/126/34
|
|
||||||
f 15/66/34 19/111/34 21/113/34
|
|
||||||
f 63/102/34 7/106/34 15/66/34
|
|
||||||
f 15/66/34 23/112/34 31/64/34
|
|
||||||
f 47/65/34 51/124/34 53/125/34
|
|
||||||
f 53/125/34 63/102/34 15/66/34
|
|
||||||
f 57/126/34 59/128/34 63/102/34
|
|
||||||
f 47/65/34 53/125/34 15/66/34
|
|
Before Width: | Height: | Size: 158 B |
Before Width: | Height: | Size: 1.8 KiB |
@ -1,323 +0,0 @@
|
|||||||
<!-- Marble -->
|
|
||||||
<composition>
|
|
||||||
<typeID>20</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>marbleSmooth.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>8.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Block -->
|
|
||||||
<composition>
|
|
||||||
<typeID>40</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>1.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>25.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Column -->
|
|
||||||
<composition>
|
|
||||||
<typeID>60</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Torch with Lightsource -->
|
|
||||||
<composition>
|
|
||||||
<typeID>80</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>torch.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<light>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>3</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>1.0</bColour>
|
|
||||||
<intensity>4.0</intensity>
|
|
||||||
</light>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Lightsource -->
|
|
||||||
<composition>
|
|
||||||
<typeID>85</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<light>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>1.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>1.0</bColour>
|
|
||||||
<intensity>4.0</intensity>
|
|
||||||
</light>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Block on 2 Pillars -->
|
|
||||||
<composition>
|
|
||||||
<typeID>100</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>2.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<xOffset>1.0</xOffset>
|
|
||||||
<yOffset>3.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Switch -->
|
|
||||||
<composition>
|
|
||||||
<typeID>120</typeID>
|
|
||||||
<ignoreHeightmap>false</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>switch_inner.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>1.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>switch_outer.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Bridge Block -->
|
|
||||||
<composition>
|
|
||||||
<typeID>140</typeID>
|
|
||||||
<ignoreHeightmap>true</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>20.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Bridge Block on Pillar-->
|
|
||||||
<composition>
|
|
||||||
<typeID>160</typeID>
|
|
||||||
<ignoreHeightmap>true</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>20.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>18.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>15.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
<object>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>12.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<!-- Wall -->
|
|
||||||
<composition>
|
|
||||||
<typeID>180</typeID>
|
|
||||||
<ignoreHeightmap>true</ignoreHeightmap>
|
|
||||||
<object>
|
|
||||||
<modelPath>SimpleWall.obj</modelPath>
|
|
||||||
<xOffset>0.0</xOffset>
|
|
||||||
<yOffset>40.0</yOffset>
|
|
||||||
<zOffset>0.0</zOffset>
|
|
||||||
<scale>1.5</scale>
|
|
||||||
<mass>0.0</mass>
|
|
||||||
</object>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>marbleSmooth.obj</modelPath>
|
|
||||||
<texturePath>Marbletexture.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.5</diffuseFactor>
|
|
||||||
<specularFactor>0.5</specularFactor>
|
|
||||||
<shininess>3.0</shininess>
|
|
||||||
<physicType>Player</physicType>
|
|
||||||
<radius>1.5</radius>
|
|
||||||
<dampningL>0.15 </dampningL>
|
|
||||||
<dampningA>0.7</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>block.obj</modelPath>
|
|
||||||
<texturePath>blockTexture_small.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>Box</physicType>
|
|
||||||
<width>6</width>
|
|
||||||
<height>3</height>
|
|
||||||
<length>3</length>
|
|
||||||
<dampningL>0.8</dampningL>
|
|
||||||
<dampningA>0.9</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>column.obj</modelPath>
|
|
||||||
<texturePath>columnTexture2.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>torch.obj</modelPath>
|
|
||||||
<texturePath>torchTexture.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.3</diffuseFactor>
|
|
||||||
<specularFactor>0.7</specularFactor>
|
|
||||||
<shininess>10.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>switch_inner.obj</modelPath>
|
|
||||||
<texturePath>switchTextureInner.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>Box</physicType>
|
|
||||||
<width>0.5</width>
|
|
||||||
<height>0.5</height>
|
|
||||||
<length>0.5</length>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
||||||
|
|
||||||
<objectData>
|
|
||||||
<modelPath>switch_outer.obj</modelPath>
|
|
||||||
<texturePath>switchTextureOuter.png</texturePath>
|
|
||||||
<ambientFactor>0.1</ambientFactor>
|
|
||||||
<diffuseFactor>0.6</diffuseFactor>
|
|
||||||
<specularFactor>0.4</specularFactor>
|
|
||||||
<shininess>2.0</shininess>
|
|
||||||
<physicType>TriangleMesh</physicType>
|
|
||||||
<dampningL>1.0</dampningL>
|
|
||||||
<dampningA>1.0</dampningA>
|
|
||||||
</objectData>
|
|
Before Width: | Height: | Size: 104 B |
@ -1,67 +0,0 @@
|
|||||||
<composition>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<manualPos>false</manualPos>
|
|
||||||
<xPos>-0.500000</xPos>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zPos>1.500000</zPos>
|
|
||||||
<idGreen>1</idGreen>
|
|
||||||
<idBlue>5</idBlue>
|
|
||||||
<typeID>99</typeID>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<composition>
|
|
||||||
<scale>1.0</scale>
|
|
||||||
<xRot>0.0</xRot>
|
|
||||||
<yRot>0.0</yRot>
|
|
||||||
<zRot>0.0</zRot>
|
|
||||||
<manualPos>false</manualPos>
|
|
||||||
<xPos>-2.500000</xPos>
|
|
||||||
<yOffset>0.0</yOffset>
|
|
||||||
<zPos>-1.500000</zPos>
|
|
||||||
<idGreen>1</idGreen>
|
|
||||||
<idBlue>3</idBlue>
|
|
||||||
<typeID>99</typeID>
|
|
||||||
</composition>
|
|
||||||
|
|
||||||
<ambientLight>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>1.0</bColour>
|
|
||||||
</ambientLight>
|
|
||||||
|
|
||||||
<fogColour>
|
|
||||||
<rColour>0.10</rColour>
|
|
||||||
<gColour>0.14</gColour>
|
|
||||||
<bColour>0.14</bColour>
|
|
||||||
<alpha>1.0</alpha>
|
|
||||||
</fogColour>
|
|
||||||
|
|
||||||
<directionalLight>
|
|
||||||
<xOffset>-1.0</xOffset>
|
|
||||||
<yOffset>1.5</yOffset>
|
|
||||||
<zOffset>1.0</zOffset>
|
|
||||||
<rColour>1.0</rColour>
|
|
||||||
<gColour>1.0</gColour>
|
|
||||||
<bColour>0.9</bColour>
|
|
||||||
<intensity>0.2</intensity>
|
|
||||||
</directionalLight>
|
|
||||||
|
|
||||||
<skydome>
|
|
||||||
<texture>skydome.png</texture>
|
|
||||||
</skydome>
|
|
||||||
|
|
||||||
<trigger>
|
|
||||||
<name>-</name>
|
|
||||||
<xPosition>0.0</xPosition>
|
|
||||||
<yPosition>0.0</yPosition>
|
|
||||||
<zPosition>0.0</zPosition>
|
|
||||||
<distance>1.0</distance>
|
|
||||||
<isBiggerThan>false</isBiggerThan>
|
|
||||||
<idGreen>0</idGreen>
|
|
||||||
<idBlue>0</idBlue>
|
|
||||||
<objectNum>1</objectNum>
|
|
||||||
<functionPointer>-</functionPointer>
|
|
||||||
</trigger>
|
|
Before Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 650 KiB |
Before Width: | Height: | Size: 100 KiB |
Before Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 49 KiB |
@ -1,16 +0,0 @@
|
|||||||
if(triggeredSCRIPTNAME == nil) then
|
|
||||||
triggeredSCRIPTNAME = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredSCRIPTNAME == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
--enter the scripts code here and replace all occurences of SCRIPTNAME with the name of the script.
|
|
||||||
|
|
||||||
triggeredSCRIPTNAME = true
|
|
||||||
print("SCRIPTNAME")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,14 +0,0 @@
|
|||||||
if(triggeredDeleteObject == nil) then
|
|
||||||
triggeredDeleteObject = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredDeleteObject == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
level:deleteObject(objectToChange)
|
|
||||||
triggeredDeleteObject = true
|
|
||||||
print("deleteObject")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,16 +0,0 @@
|
|||||||
if(triggeredDeleteRandomObject == nil) then
|
|
||||||
triggeredDeleteRandomObject = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredDeleteRandomObject == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
a = level:getObjectCount()
|
|
||||||
rand = math.random(0, a - 1)
|
|
||||||
level:deleteObject(rand)
|
|
||||||
triggeredDeleteRandomObject = true
|
|
||||||
print("deleteRandomObject")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,28 +0,0 @@
|
|||||||
if(triggeredOpenDoor1 == nil) then
|
|
||||||
triggeredOpenDoor1 = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredOpenDoor1 == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if(not openDoorCounter) then
|
|
||||||
openDoorCounter = 0
|
|
||||||
end
|
|
||||||
openDoorCounter = openDoorCounter + 1
|
|
||||||
if (openDoorCounter == 3) then
|
|
||||||
local strength = 1
|
|
||||||
local xPos = 0
|
|
||||||
local yPos = 0
|
|
||||||
local zPos = 0
|
|
||||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
|
||||||
print("Opening the door")
|
|
||||||
end
|
|
||||||
triggeredOpenDoor1undo = false
|
|
||||||
|
|
||||||
triggeredOpenDoor1 = true
|
|
||||||
print("openDoor1")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,19 +0,0 @@
|
|||||||
if(triggeredOpenDoor1undo == nil) then
|
|
||||||
triggeredOpenDoor1undo = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredOpenDoor1undo == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if(triggeredOpenDoor1) then
|
|
||||||
openDoorCounter = openDoorCounter - 1
|
|
||||||
triggeredOpenDoor1 = false
|
|
||||||
end
|
|
||||||
|
|
||||||
triggeredOpenDoor1undo = true
|
|
||||||
print("openDoor1undo")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,28 +0,0 @@
|
|||||||
if(triggeredOpenDoor2 == nil) then
|
|
||||||
triggeredOpenDoor2 = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredOpenDoor2 == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if(not openDoorCounter) then
|
|
||||||
openDoorCounter = 0
|
|
||||||
end
|
|
||||||
openDoorCounter = openDoorCounter + 1
|
|
||||||
if (openDoorCounter == 3) then
|
|
||||||
local strength = 1
|
|
||||||
local xPos = 0
|
|
||||||
local yPos = 0
|
|
||||||
local zPos = 0
|
|
||||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
|
||||||
print("Opening the door")
|
|
||||||
end
|
|
||||||
triggeredOpenDoor2undo = false
|
|
||||||
|
|
||||||
triggeredOpenDoor2 = true
|
|
||||||
print("openDoor2")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,19 +0,0 @@
|
|||||||
if(triggeredOpenDoor2undo == nil) then
|
|
||||||
triggeredOpenDoor2undo = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredOpenDoor2undo == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if(triggeredOpenDoor2) then
|
|
||||||
openDoorCounter = openDoorCounter - 1
|
|
||||||
triggeredOpenDoor2 = false
|
|
||||||
end
|
|
||||||
|
|
||||||
triggeredOpenDoor2undo = true
|
|
||||||
print("openDoor2undo")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,28 +0,0 @@
|
|||||||
if(triggeredOpenDoor3 == nil) then
|
|
||||||
triggeredOpenDoor3 = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredOpenDoor3 == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if(not openDoorCounter) then
|
|
||||||
openDoorCounter = 0
|
|
||||||
end
|
|
||||||
openDoorCounter = openDoorCounter + 1
|
|
||||||
if (openDoorCounter == 3) then
|
|
||||||
local strength = 1
|
|
||||||
local xPos = 0
|
|
||||||
local yPos = 0
|
|
||||||
local zPos = 0
|
|
||||||
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
|
||||||
print("Opening the door")
|
|
||||||
end
|
|
||||||
triggeredOpenDoor3undo = false
|
|
||||||
|
|
||||||
triggeredOpenDoor3 = true
|
|
||||||
print("openDoor3")
|
|
||||||
end
|
|
||||||
end
|
|
@ -1,19 +0,0 @@
|
|||||||
if(triggeredOpenDoor3undo == nil) then
|
|
||||||
triggeredOpenDoor3undo = false
|
|
||||||
end
|
|
||||||
function trigger(objectToChange)
|
|
||||||
if(triggeredOpenDoor3undo == false) then
|
|
||||||
if(not level) then
|
|
||||||
print("No level found in Lua!")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
if(triggeredOpenDoor3) then
|
|
||||||
openDoorCounter = openDoorCounter - 1
|
|
||||||
triggeredOpenDoor3 = false
|
|
||||||
end
|
|
||||||
|
|
||||||
triggeredOpenDoor3undo = true
|
|
||||||
print("openDoor3undo")
|
|
||||||
end
|
|
||||||
end
|
|
22
Readme.md
@ -1,6 +1,24 @@
|
|||||||
#Marble Race Game
|
![Saxum Logo](https://github.com/Faerbit/Saxum/blob/master/logo/saxum_logo_small.png)
|
||||||
|
|
||||||
This will be a Marble Race Game developed for the Softwarepraktikum at the RWTH Aachen.
|
This is a Marble Puzzle/Exploration Game developed in the practical course
|
||||||
|
at the institute for Computer Graphics and Multimedia at the RWTH Aachen.
|
||||||
|
|
||||||
|
##Downloads
|
||||||
|
See [release page](https://github.com/Faerbit/Saxum/releases) for downloads.
|
||||||
|
|
||||||
|
##Controls
|
||||||
|
You can control the camera by moving the mouse. You can zoom with the mouse wheel.
|
||||||
|
The marble is controlled via the W,A,S and D keys.
|
||||||
|
To exit the game press escape.
|
||||||
|
The controls are also listed listed on the loading screen.
|
||||||
|
|
||||||
##Building
|
##Building
|
||||||
Currently only tested on Linux. To build execute build.sh. Resulting binary will be in binaries.
|
Currently only tested on Linux. To build execute build.sh. Resulting binary will be in binaries.
|
||||||
|
You can also use the run.sh script to directly start the binary after building it.
|
||||||
|
|
||||||
|
## OS X support
|
||||||
|
In theory this should also compile on OS X. Since I do not own a Mac it is impossible for me to test this.
|
||||||
|
If you get it compiling, please get in touch with me afterwards.
|
||||||
|
|
||||||
|
##Modding
|
||||||
|
In theory the game is highly moddable. For modding some knowledge in XML and Lua is required. If you're interested in this, please get in touch with me, so I can explain the workflow to you.
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
#version 150
|
|
||||||
|
|
||||||
in vec4 fragPosition;
|
|
||||||
|
|
||||||
out float fragmentDepth;
|
|
||||||
|
|
||||||
uniform vec3 cameraPosition;
|
|
||||||
|
|
||||||
void main() {
|
|
||||||
fragmentDepth = length(vec3(fragPosition) - cameraPosition);
|
|
||||||
}
|
|
130
Shader/phong.fsh
@ -1,130 +0,0 @@
|
|||||||
#version 150
|
|
||||||
|
|
||||||
in vec3 vNormal;
|
|
||||||
in vec2 vTexCoord;
|
|
||||||
in vec4 fragPosition;
|
|
||||||
in vec4 shadowCoord;
|
|
||||||
|
|
||||||
out vec4 oColor;
|
|
||||||
|
|
||||||
uniform sampler2D uTexture;
|
|
||||||
uniform sampler2DShadow shadowMap;
|
|
||||||
uniform samplerCubeShadow shadowMap_cube;
|
|
||||||
uniform vec3 ambientColor;
|
|
||||||
uniform float ambientFactor;
|
|
||||||
uniform float diffuseFactor;
|
|
||||||
uniform float specularFactor;
|
|
||||||
uniform vec3 camera;
|
|
||||||
uniform float shininess;
|
|
||||||
uniform int lightCount;
|
|
||||||
uniform vec3 directionalLightVector;
|
|
||||||
uniform vec3 directionalColor;
|
|
||||||
uniform float directionalIntensity;
|
|
||||||
uniform vec3 lightSources[32];
|
|
||||||
uniform vec3 lightColors[32];
|
|
||||||
uniform float lightIntensities[32];
|
|
||||||
uniform float farPlane;
|
|
||||||
uniform vec4 fogColor;
|
|
||||||
uniform vec3 cameraCenter;
|
|
||||||
|
|
||||||
vec2 poissonDisk[16] = vec2[](
|
|
||||||
vec2( -0.94201624, -0.39906216 ),
|
|
||||||
vec2( 0.94558609, -0.76890725 ),
|
|
||||||
vec2( -0.094184101, -0.92938870 ),
|
|
||||||
vec2( 0.34495938, 0.29387760 ),
|
|
||||||
vec2( -0.91588581, 0.45771432 ),
|
|
||||||
vec2( -0.81544232, -0.87912464 ),
|
|
||||||
vec2( -0.38277543, 0.27676845 ),
|
|
||||||
vec2( 0.97484398, 0.75648379 ),
|
|
||||||
vec2( 0.44323325, -0.97511554 ),
|
|
||||||
vec2( 0.53742981, -0.47373420 ),
|
|
||||||
vec2( -0.26496911, -0.41893023 ),
|
|
||||||
vec2( 0.79197514, 0.19090188 ),
|
|
||||||
vec2( -0.24188840, 0.99706507 ),
|
|
||||||
vec2( -0.81409955, 0.91437590 ),
|
|
||||||
vec2( 0.19984126, 0.78641367 ),
|
|
||||||
vec2( 0.14383161, -0.14100790 )
|
|
||||||
);
|
|
||||||
|
|
||||||
float sampleDirectionalShadow(sampler2DShadow shadowMap, vec4 shadowCoord) {
|
|
||||||
float visibility = 1.0;
|
|
||||||
float bias = 0.001*tan(acos(clamp(dot(vNormal, -directionalLightVector), 0.0, 1.0)));
|
|
||||||
bias = clamp(bias, 0.0, 0.01);
|
|
||||||
for (int i=0; i<4; i++) {
|
|
||||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, shadowCoord.z - bias)));
|
|
||||||
}
|
|
||||||
if (visibility == 1.0-(directionalIntensity/16)*4)
|
|
||||||
{
|
|
||||||
visibility = 1.0-directionalIntensity;
|
|
||||||
}
|
|
||||||
else if (visibility != 1.0) {
|
|
||||||
for (int i=0; i<12; i++) {
|
|
||||||
visibility -= directionalIntensity/16*(1.0-texture(shadowMap, vec3(shadowCoord.xy + poissonDisk[i]/700.0, shadowCoord.z - bias)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return visibility;
|
|
||||||
}
|
|
||||||
|
|
||||||
float samplePointShadow(samplerCubeShadow shadowMap, vec3 lightDirection) {
|
|
||||||
float bias = 0.005;
|
|
||||||
float nearPlane = 0.1;
|
|
||||||
float linValue = (2.0*nearPlane) / (farPlane + nearPlane - (length(lightDirection)-nearPlane)/(farPlane-nearPlane) * (farPlane - nearPlane));
|
|
||||||
return texture(shadowMap, vec4(lightDirection.xyz , 0.5/*length(lightDirection)-bias*/));
|
|
||||||
}
|
|
||||||
|
|
||||||
float distanceToBorder(vec2 vector) {
|
|
||||||
float xDistance = min(vector.x, 1.0-vector.x);
|
|
||||||
float yDistance = min(vector.y, 1.0-vector.y);
|
|
||||||
return min(xDistance, yDistance);
|
|
||||||
}
|
|
||||||
|
|
||||||
void main()
|
|
||||||
{
|
|
||||||
vec3 ambientColor = ambientFactor * ambientColor;
|
|
||||||
vec3 diffuseColor = vec3(0.0, 0.0, 0.0);
|
|
||||||
vec3 specularColor = vec3(0.0, 0.0, 0.0);
|
|
||||||
|
|
||||||
|
|
||||||
// direction lighting
|
|
||||||
if(length(directionalLightVector)>0.0f) {
|
|
||||||
vec3 directionalVector = normalize(directionalLightVector);
|
|
||||||
diffuseColor += clamp(dot(normalize(vNormal), directionalVector)
|
|
||||||
*diffuseFactor*directionalIntensity*directionalColor, 0.0, 1.0);
|
|
||||||
vec3 cameraVector = normalize(camera - vec3(fragPosition));
|
|
||||||
specularColor += clamp(pow((dot((cameraVector+directionalVector),normalize(vNormal))/(length(cameraVector+directionalVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
|
|
||||||
*specularFactor*directionalIntensity*directionalColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
// point lights
|
|
||||||
float visibility = 1.0;
|
|
||||||
for(int i = 0; i<lightCount; i++) {
|
|
||||||
vec3 lightDirection = vec3(fragPosition) - lightSources[i];
|
|
||||||
float distance = length(lightDirection);
|
|
||||||
// only take lights into account with meaningful contribution
|
|
||||||
if (distance > 0.001f) {
|
|
||||||
vec3 lightVector = normalize(lightSources[i]-vec3(fragPosition));
|
|
||||||
float intensity = clamp(exp(-(1/lightIntensities[i])*distance), 0.0, 1.0);
|
|
||||||
diffuseColor += clamp(dot(normalize(vNormal), lightVector)
|
|
||||||
*diffuseFactor*intensity*lightColors[i], 0.0, 1.0);
|
|
||||||
vec3 cameraVector = normalize(camera - vec3(fragPosition));
|
|
||||||
specularColor += clamp(pow((dot((cameraVector+lightVector),normalize(vNormal))/(length(cameraVector+lightVector)*length(normalize(vNormal)))),shininess), 0.0, 1.0)
|
|
||||||
*specularFactor*intensity*lightColors[i];
|
|
||||||
visibility = samplePointShadow(shadowMap_cube, lightDirection);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// shadows
|
|
||||||
visibility *= sampleDirectionalShadow(shadowMap, shadowCoord);
|
|
||||||
|
|
||||||
specularColor *= visibility;
|
|
||||||
diffuseColor *= visibility;
|
|
||||||
|
|
||||||
vec3 finalColor = specularColor + diffuseColor + ambientColor;
|
|
||||||
float distanceCameraCenter = distance(cameraCenter, vec3(fragPosition));
|
|
||||||
float fogFactor = clamp((1.0 - ((farPlane - 35.0) -distanceCameraCenter)/30.0), 0.0, 1.0);
|
|
||||||
fogFactor *= clamp((1.0-((fragPosition.y-40.0)/30.0)), 0.0, 1.0);
|
|
||||||
|
|
||||||
vec4 texture = texture(uTexture, vTexCoord).rgba;
|
|
||||||
oColor = vec4(finalColor, 1.0f)*texture;
|
|
||||||
oColor = mix(oColor, fogColor, fogFactor);
|
|
||||||
}
|
|
@ -1,73 +0,0 @@
|
|||||||
#include "application.hh"
|
|
||||||
|
|
||||||
|
|
||||||
Application::Application() {
|
|
||||||
graphics = Graphics(glm::uvec2(1024, 786), 0.1f, 150.0f);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::init()
|
|
||||||
{
|
|
||||||
// init random generator
|
|
||||||
std::srand(std::time(NULL));
|
|
||||||
// choose Level TODO: Choose this in a menu
|
|
||||||
this->level = Level("1");
|
|
||||||
// Don't change this!
|
|
||||||
ignoredMouseUpdates = 0;
|
|
||||||
cameraLock = true;
|
|
||||||
// set Skybox size
|
|
||||||
level.setSkydomeSize((graphics.getFarPlane())-31.0f);
|
|
||||||
|
|
||||||
// define where shaders and textures can be found:
|
|
||||||
ACGL::Base::Settings::the()->setResourcePath("../");
|
|
||||||
ACGL::Base::Settings::the()->setShaderPath("Shader/");
|
|
||||||
ACGL::Base::Settings::the()->setTexturePath("Levels/Textures/");
|
|
||||||
ACGL::Base::Settings::the()->setGeometryPath("Levels/Geometry/");
|
|
||||||
|
|
||||||
// load Level
|
|
||||||
level.load();
|
|
||||||
|
|
||||||
graphics.init(&level);
|
|
||||||
|
|
||||||
// just in case: check for errors
|
|
||||||
openGLCriticalError();
|
|
||||||
}
|
|
||||||
|
|
||||||
Graphics* Application::getGraphics() {
|
|
||||||
return &graphics;
|
|
||||||
}
|
|
||||||
|
|
||||||
Level* Application::getLevel() {
|
|
||||||
return &level;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::setFocused(bool focused) {
|
|
||||||
this->focused = focused;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Application::isFocused() {
|
|
||||||
return focused;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::setCameraLock(bool locked) {
|
|
||||||
// Prevent camera jumping huge distances
|
|
||||||
if (!locked) {
|
|
||||||
ignoreNextMouseUpdate();
|
|
||||||
}
|
|
||||||
cameraLock = locked;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::ignoreNextMouseUpdate() {
|
|
||||||
ignoredMouseUpdates++;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Application::ignoredOneMouseUpdate() {
|
|
||||||
ignoredMouseUpdates--;
|
|
||||||
}
|
|
||||||
|
|
||||||
int Application::getIgnoredMouseUpdates() {
|
|
||||||
return ignoredMouseUpdates;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Application::isLocked() {
|
|
||||||
return cameraLock;
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
#ifndef APPLICATION_HH_INCLUDED
|
|
||||||
#define APPLICATION_HH_INCLUDED
|
|
||||||
|
|
||||||
#include "physics.hh"
|
|
||||||
#include "graphics.hh"
|
|
||||||
#include "level.hh"
|
|
||||||
|
|
||||||
class Application {
|
|
||||||
public:
|
|
||||||
Application();
|
|
||||||
Graphics* getGraphics();
|
|
||||||
Level* getLevel();
|
|
||||||
void init();
|
|
||||||
void setFocused(bool focused);
|
|
||||||
bool isFocused();
|
|
||||||
void setCameraLock(bool locked);
|
|
||||||
bool isLocked();
|
|
||||||
void ignoreNextMouseUpdate();
|
|
||||||
int getIgnoredMouseUpdates();
|
|
||||||
void ignoredOneMouseUpdate();
|
|
||||||
private:
|
|
||||||
int ignoredMouseUpdates;
|
|
||||||
bool focused;
|
|
||||||
bool cameraLock;
|
|
||||||
Graphics graphics;
|
|
||||||
Level level;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
BIN
blenderfiles/Gate.blend
Normal file
BIN
blenderfiles/anotherBrazier.blend
Normal file
BIN
blenderfiles/brazier.blend
Normal file
BIN
blenderfiles/exit.blend
Normal file
BIN
blenderfiles/hint.blend
Normal file
BIN
blenderfiles/newBrazier.blend
Normal file
BIN
blenderfiles/ruinsTile.blend
Normal file
BIN
blenderfiles/switch_inner.blend
Normal file
18
build.sh
@ -5,6 +5,7 @@ then
|
|||||||
rm -rf build
|
rm -rf build
|
||||||
rm -rf binaries
|
rm -rf binaries
|
||||||
rm -rf extern/bullet/build
|
rm -rf extern/bullet/build
|
||||||
|
cd extern/lua; make clean; cd ../..
|
||||||
exit
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -15,6 +16,13 @@ then
|
|||||||
cmake="cmake -DCMAKE_SYSTEM_NAME='Windows' -DCMAKE_FIND_ROOT_PATH='/usr/bin:/usr/x86_64-w64-mingw32' -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32-g++' -DCMAKE_C_COMPILER='x86_64-w64-mingw32-gcc'"
|
cmake="cmake -DCMAKE_SYSTEM_NAME='Windows' -DCMAKE_FIND_ROOT_PATH='/usr/bin:/usr/x86_64-w64-mingw32' -DCMAKE_CXX_COMPILER='x86_64-w64-mingw32-g++' -DCMAKE_C_COMPILER='x86_64-w64-mingw32-gcc'"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
buildType=$2
|
||||||
|
|
||||||
|
if [[ $2 == "" ]]
|
||||||
|
then
|
||||||
|
buildType="Debug"
|
||||||
|
fi
|
||||||
|
|
||||||
currentDir=$(pwd)
|
currentDir=$(pwd)
|
||||||
threads=$(($(nproc)+1))
|
threads=$(($(nproc)+1))
|
||||||
|
|
||||||
@ -23,7 +31,7 @@ threads=$(($(nproc)+1))
|
|||||||
cd extern/lua/
|
cd extern/lua/
|
||||||
if [[ $1 == "windows" ]]
|
if [[ $1 == "windows" ]]
|
||||||
then
|
then
|
||||||
make mingw
|
make CC=x86_64-w64-mingw32-gcc mingw
|
||||||
else
|
else
|
||||||
make linux
|
make linux
|
||||||
fi
|
fi
|
||||||
@ -37,10 +45,10 @@ mkdir -p build
|
|||||||
cd build
|
cd build
|
||||||
if hash ninja 2>/dev/null
|
if hash ninja 2>/dev/null
|
||||||
then
|
then
|
||||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
|
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||||
ninja
|
ninja
|
||||||
else
|
else
|
||||||
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
|
$cmake -DBUILD_DEMOS=0 -DBUILD_EXTRAS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
|
||||||
make -j$threads
|
make -j$threads
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -52,9 +60,9 @@ mkdir -p build
|
|||||||
cd build
|
cd build
|
||||||
if hash ninja 2>/dev/null
|
if hash ninja 2>/dev/null
|
||||||
then
|
then
|
||||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -GNinja ..
|
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 -GNinja ..
|
||||||
ninja
|
ninja
|
||||||
else
|
else
|
||||||
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 ..
|
$cmake -DGLFW_BUILD_EXAMPLES=0 -DGLFW_BUILD_TESTS=0 -DCMAKE_BUILD_TYPE=$buildType -DBUILD_SHARED_LIBS=0 ..
|
||||||
make -j$threads
|
make -j$threads
|
||||||
fi
|
fi
|
||||||
|
11
circle.yml
@ -19,13 +19,14 @@ database:
|
|||||||
|
|
||||||
test:
|
test:
|
||||||
override:
|
override:
|
||||||
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh linux
|
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh linux
|
||||||
- docker run -v ~/swp:/swp/swp -w=/swp/swp -u=$(id -u) faerbit/swp ./package.sh windows
|
- docker run -v ~/Saxum:/saxum/saxum -w=/saxum/saxum -u=$(id -u) faerbit/saxum ./package.sh windows
|
||||||
- cp MarbleGame_Windows.zip MarbleGame_Linux.zip $CIRCLE_ARTIFACTS
|
- if [ -f Saxum_Windows.zip ]; then cp Saxum_Windows.zip $CIRCLE_ARTIFACTS; fi
|
||||||
|
- if [ -f Saxum_Linux.zip ]; then cp Saxum_Linux.zip $CIRCLE_ARTIFACTS; fi
|
||||||
|
|
||||||
deployment:
|
deployment:
|
||||||
master:
|
master:
|
||||||
branch: master
|
branch: master
|
||||||
commands:
|
commands:
|
||||||
- ./dropbox_uploader.sh -p upload MarbleGame_Windows.zip /
|
- if [ -f Saxum_Windows.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Windows.zip /; fi
|
||||||
- ./dropbox_uploader.sh -p upload MarbleGame_Linux.zip /
|
- if [ -f Saxum_Linux.zip ]; then ./dropbox_uploader.sh -p upload Saxum_Linux.zip /; fi
|
||||||
|
@ -32,13 +32,28 @@ ADD_DEFINITIONS(-Wall)
|
|||||||
ENDIF(MSVC)
|
ENDIF(MSVC)
|
||||||
ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
ADD_DEFINITIONS(-DNO_SPACE_NAVIGATOR_SUPPORT)
|
||||||
|
|
||||||
|
# for lodepng
|
||||||
|
SET(ACGL_BASE_DIR "${CMAKE_SOURCE_DIR}/extern/acgl")
|
||||||
|
FILE(GLOB_RECURSE HEADER_FILES_LODEPNG "${ACGL_BASE_DIR}/include/lodepng/*.h")
|
||||||
|
FILE(GLOB_RECURSE SOURCE_FILES_LODEPNG "${ACGL_BASE_DIR}/src/lodepng/*.cpp")
|
||||||
|
|
||||||
|
# for tinyxml
|
||||||
|
FILE(GLOB_RECURSE HEADER_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.hh")
|
||||||
|
FILE(GLOB_RECURSE SOURCE_FILES_TINYXML "${CMAKE_SOURCE_DIR}/extern/tinyxml/*.cc")
|
||||||
|
|
||||||
|
SET(HEADER_FILES_EXTERN ${HEADER_FILES_LODEPNG} ${HEADER_FILES_TINYXML})
|
||||||
|
SET(SOURCE_FILES_EXTERN ${SOURCE_FILES_LODEPNG} ${SOURCE_FILES_TINYXML})
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES("${ACGL_BASE_DIR}/include")
|
||||||
|
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/extern/tinyxml")
|
||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
FILE(GLOB_RECURSE SOURCE_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.cc")
|
FILE(GLOB_RECURSE SOURCE_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.cc")
|
||||||
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV})
|
SET(SOURCE_FILES_CONV ${SOURCE_FILES_CONV} ${SOURCE_FILES_EXTERN})
|
||||||
|
|
||||||
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
|
FILE(GLOB_RECURSE HEADER_FILES_CONV "${CMAKE_SOURCE_DIR}/converter/*.hh")
|
||||||
SET(HEADER_FILES_CONV ${HEADER_FILES})
|
SET(HEADER_FILES_CONV ${HEADER_FILES_CONV} ${HEADER_FILES_EXTERN})
|
||||||
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})
|
ADD_EXECUTABLE(converter ${SOURCE_FILES_CONV} ${HEADER_FILES_CONV})
|
||||||
|
@ -1,24 +1,25 @@
|
|||||||
#include "converter.hh"
|
#include "converter.hh"
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <string>
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
using namespace tinyxml2;
|
using namespace tinyxml2;
|
||||||
|
|
||||||
Converter::Converter(std::string level){
|
Converter::Converter(std::string levelPath, std::string levelName, std::string compositionsPath){
|
||||||
xmlFile = "../Levels/ObjectSetups/Level" + level + ".xml";
|
xmlFile = levelPath + levelName + ".xml";
|
||||||
|
|
||||||
//Load Compositions
|
//Load Compositions
|
||||||
const char* charCompositions = "../Levels/ObjectSetups/Compositions.xml";
|
std::string stringCompositions = compositionsPath;
|
||||||
|
const char* charCompositions = stringCompositions.c_str();
|
||||||
compositions->LoadFile(charCompositions);
|
compositions->LoadFile(charCompositions);
|
||||||
if (compositions->ErrorID()!=0){
|
if (compositions->ErrorID()!=0){
|
||||||
printf("Could not open Compositions!\n");
|
printf("Could not open Compositions!\n");
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create a backup of the current Level png file, if no backup exists
|
//Create a backup of the current Level png file, if no backup exists
|
||||||
std::string pngFile = "../Levels/ObjectSetups/Level" + level + ".png";
|
std::string pngFile = levelPath + levelName + ".png";
|
||||||
std::string backupPNG = "../Levels/ObjectSetups/BackupLevel" + level + ".png";
|
std::string backupPNG = levelPath + levelName + "Backup.png";
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
if(stat(backupPNG.c_str(), &buf) != 0){
|
if(stat(backupPNG.c_str(), &buf) != 0){
|
||||||
std::ifstream src(pngFile, std::ios::binary);
|
std::ifstream src(pngFile, std::ios::binary);
|
||||||
@ -26,19 +27,30 @@ Converter::Converter(std::string level){
|
|||||||
dst << src.rdbuf();
|
dst << src.rdbuf();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Create a backup of the current Level xml file
|
|
||||||
std::string backupXML = "../Levels/ObjectSetups/BackupLevel" + level + ".xml";
|
|
||||||
std::ifstream src(xmlFile, std::ios::binary);
|
|
||||||
std::ofstream dst(backupXML, std::ios::binary);
|
|
||||||
|
|
||||||
|
|
||||||
//Load the Level xml file
|
//Load the Level xml file
|
||||||
|
nextID.push_back(0);
|
||||||
nextID.push_back(1);
|
nextID.push_back(1);
|
||||||
nextID.push_back(1);
|
for (int i=0; i<256; i++){
|
||||||
|
for (int j=0; j<256; j++){
|
||||||
|
idUsed[i][j] = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
idUsed[0][0] = true;
|
||||||
const char* charXmlFile = xmlFile.c_str();
|
const char* charXmlFile = xmlFile.c_str();
|
||||||
doc->LoadFile(charXmlFile);
|
doc->LoadFile(charXmlFile);
|
||||||
|
//check if the xml file did not already exist
|
||||||
if (doc->ErrorID()!=0){
|
if (doc->ErrorID()!=0){
|
||||||
printf("Could not open xml, creating new xml.\n");
|
std::string answer;
|
||||||
|
printf("Could not open xml, do you want to create a new xml? (y/n)\n");
|
||||||
|
std::cin >> answer;
|
||||||
|
while(answer.compare("y") != 0 && answer.compare("n") != 0){
|
||||||
|
printf("Answer with y or n\n");
|
||||||
|
std::cin >> answer;
|
||||||
|
}
|
||||||
|
if(answer.compare("n") == 0){
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
printf("Creating new xml.\n");
|
||||||
//Create all global Lightingparameters with Dummy-Values
|
//Create all global Lightingparameters with Dummy-Values
|
||||||
std::vector<XMLElement*> lightAttributes;
|
std::vector<XMLElement*> lightAttributes;
|
||||||
lightAttributes.push_back(doc->NewElement("xOffset"));
|
lightAttributes.push_back(doc->NewElement("xOffset"));
|
||||||
@ -51,10 +63,18 @@ Converter::Converter(std::string level){
|
|||||||
XMLElement* rColourAmbient = doc->NewElement("rColour");
|
XMLElement* rColourAmbient = doc->NewElement("rColour");
|
||||||
XMLElement* gColourAmbient = doc->NewElement("gColour");
|
XMLElement* gColourAmbient = doc->NewElement("gColour");
|
||||||
XMLElement* bColourAmbient = doc->NewElement("bColour");
|
XMLElement* bColourAmbient = doc->NewElement("bColour");
|
||||||
XMLElement* rColourFog = doc->NewElement("rColour");
|
XMLElement* rColourFogDay = doc->NewElement("rColour");
|
||||||
XMLElement* gColourFog = doc->NewElement("gColour");
|
XMLElement* gColourFogDay = doc->NewElement("gColour");
|
||||||
XMLElement* bColourFog = doc->NewElement("bColour");
|
XMLElement* bColourFogDay = doc->NewElement("bColour");
|
||||||
XMLElement* alphaFog = doc->NewElement("alpha");
|
XMLElement* alphaFogDay = doc->NewElement("alpha");
|
||||||
|
XMLElement* rColourFogRise = doc->NewElement("rColour");
|
||||||
|
XMLElement* gColourFogRise = doc->NewElement("gColour");
|
||||||
|
XMLElement* bColourFogRise = doc->NewElement("bColour");
|
||||||
|
XMLElement* alphaFogRise = doc->NewElement("alpha");
|
||||||
|
XMLElement* rColourFogNight = doc->NewElement("rColour");
|
||||||
|
XMLElement* gColourFogNight = doc->NewElement("gColour");
|
||||||
|
XMLElement* bColourFogNight = doc->NewElement("bColour");
|
||||||
|
XMLElement* alphaFogNight = doc->NewElement("alpha");
|
||||||
|
|
||||||
lightAttributes[0]->SetText("-1.0");
|
lightAttributes[0]->SetText("-1.0");
|
||||||
lightAttributes[1]->SetText("1.5");
|
lightAttributes[1]->SetText("1.5");
|
||||||
@ -66,34 +86,83 @@ Converter::Converter(std::string level){
|
|||||||
rColourAmbient->SetText("1.0");
|
rColourAmbient->SetText("1.0");
|
||||||
gColourAmbient->SetText("1.0");
|
gColourAmbient->SetText("1.0");
|
||||||
bColourAmbient->SetText("1.0");
|
bColourAmbient->SetText("1.0");
|
||||||
rColourFog->SetText("0.10");
|
rColourFogDay->SetText("0.57");
|
||||||
gColourFog->SetText("0.14");
|
gColourFogDay->SetText("0.80");
|
||||||
bColourFog->SetText("0.14");
|
bColourFogDay->SetText("0.98");
|
||||||
alphaFog->SetText("1.0");
|
alphaFogDay->SetText("1.0");
|
||||||
|
rColourFogRise->SetText("0.88");
|
||||||
|
gColourFogRise->SetText("0.38");
|
||||||
|
bColourFogRise->SetText("0.38");
|
||||||
|
alphaFogRise->SetText("1.0");
|
||||||
|
rColourFogNight->SetText("0.09");
|
||||||
|
gColourFogNight->SetText("0.1");
|
||||||
|
bColourFogNight->SetText("0.24");
|
||||||
|
alphaFogNight->SetText("1.0");
|
||||||
|
|
||||||
XMLElement* ambientLight = doc->NewElement("ambientLight");
|
XMLElement* ambientLight = doc->NewElement("ambientLight");
|
||||||
XMLElement* fogColour = doc->NewElement("fogColour");
|
XMLElement* fogColourDay = doc->NewElement("fogColourDay");
|
||||||
|
XMLElement* fogColourRise = doc->NewElement("fogColourRise");
|
||||||
|
XMLElement* fogColourNight = doc->NewElement("fogColourNight");
|
||||||
XMLElement* directionalLight = doc->NewElement("directionalLight");
|
XMLElement* directionalLight = doc->NewElement("directionalLight");
|
||||||
|
|
||||||
ambientLight->InsertEndChild(rColourAmbient);
|
ambientLight->InsertEndChild(rColourAmbient);
|
||||||
ambientLight->InsertEndChild(gColourAmbient);
|
ambientLight->InsertEndChild(gColourAmbient);
|
||||||
ambientLight->InsertEndChild(bColourAmbient);
|
ambientLight->InsertEndChild(bColourAmbient);
|
||||||
fogColour->InsertEndChild(rColourFog);
|
fogColourDay->InsertEndChild(rColourFogDay);
|
||||||
fogColour->InsertEndChild(gColourFog);
|
fogColourDay->InsertEndChild(gColourFogDay);
|
||||||
fogColour->InsertEndChild(bColourFog);
|
fogColourDay->InsertEndChild(bColourFogDay);
|
||||||
fogColour->InsertEndChild(alphaFog);
|
fogColourDay->InsertEndChild(alphaFogDay);
|
||||||
|
fogColourRise->InsertEndChild(rColourFogRise);
|
||||||
|
fogColourRise->InsertEndChild(gColourFogRise);
|
||||||
|
fogColourRise->InsertEndChild(bColourFogRise);
|
||||||
|
fogColourRise->InsertEndChild(alphaFogRise);
|
||||||
|
fogColourNight->InsertEndChild(rColourFogNight);
|
||||||
|
fogColourNight->InsertEndChild(gColourFogNight);
|
||||||
|
fogColourNight->InsertEndChild(bColourFogNight);
|
||||||
|
fogColourNight->InsertEndChild(alphaFogNight);
|
||||||
for(int i=0;i<7;i++){
|
for(int i=0;i<7;i++){
|
||||||
directionalLight->InsertEndChild(lightAttributes[i]);
|
directionalLight->InsertEndChild(lightAttributes[i]);
|
||||||
}
|
}
|
||||||
doc->InsertEndChild(ambientLight);
|
doc->InsertEndChild(ambientLight);
|
||||||
doc->InsertEndChild(fogColour);
|
doc->InsertEndChild(fogColourDay);
|
||||||
|
doc->InsertEndChild(fogColourRise);
|
||||||
|
doc->InsertEndChild(fogColourNight);
|
||||||
doc->InsertEndChild(directionalLight);
|
doc->InsertEndChild(directionalLight);
|
||||||
|
|
||||||
|
//Create global terrain Element
|
||||||
|
XMLElement* terrain = doc->NewElement("terrain");
|
||||||
|
XMLElement* terrainHeightmap = doc->NewElement("heightmap");
|
||||||
|
XMLElement* terrainTexture = doc->NewElement("texture");
|
||||||
|
XMLElement* terrainAmbientFactor = doc->NewElement("ambientFactor");
|
||||||
|
XMLElement* terrainDiffuseFactor = doc->NewElement("diffuseFactor");
|
||||||
|
XMLElement* terrainSpecularFactor = doc->NewElement("specularFactor");
|
||||||
|
XMLElement* terrainShininess = doc->NewElement("shininess");
|
||||||
|
std::string heightmapPath = "heightmap" + levelName + ".png";
|
||||||
|
terrainHeightmap->SetText(heightmapPath.c_str());
|
||||||
|
terrainTexture->SetText("terrainTexture.png");
|
||||||
|
terrainAmbientFactor->SetText("0.1");
|
||||||
|
terrainDiffuseFactor->SetText("0.8");
|
||||||
|
terrainSpecularFactor->SetText("0.2");
|
||||||
|
terrainShininess->SetText("1.0");
|
||||||
|
terrain->InsertEndChild(terrainHeightmap);
|
||||||
|
terrain->InsertEndChild(terrainTexture);
|
||||||
|
terrain->InsertEndChild(terrainAmbientFactor);
|
||||||
|
terrain->InsertEndChild(terrainDiffuseFactor);
|
||||||
|
terrain->InsertEndChild(terrainSpecularFactor);
|
||||||
|
terrain->InsertEndChild(terrainShininess);
|
||||||
|
doc->InsertEndChild(terrain);
|
||||||
|
|
||||||
//Create global skydome Element
|
//Create global skydome Element
|
||||||
XMLElement* skydome = doc->NewElement("skydome");
|
XMLElement* skydome = doc->NewElement("skydome");
|
||||||
|
XMLElement* skydomeModel = doc->NewElement("model");
|
||||||
XMLElement* skydomeTexture = doc->NewElement("texture");
|
XMLElement* skydomeTexture = doc->NewElement("texture");
|
||||||
|
XMLElement* skydomeTextureNight = doc->NewElement("nightTexture");
|
||||||
|
skydomeModel->SetText("skydome.obj");
|
||||||
skydomeTexture->SetText("skydome.png");
|
skydomeTexture->SetText("skydome.png");
|
||||||
|
skydomeTextureNight->SetText("skydomeNight.png");
|
||||||
|
skydome->InsertEndChild(skydomeModel);
|
||||||
skydome->InsertEndChild(skydomeTexture);
|
skydome->InsertEndChild(skydomeTexture);
|
||||||
|
skydome->InsertEndChild(skydomeTextureNight);
|
||||||
doc->InsertEndChild(skydome);
|
doc->InsertEndChild(skydome);
|
||||||
|
|
||||||
//Create global physics parameters
|
//Create global physics parameters
|
||||||
@ -101,12 +170,12 @@ Converter::Converter(std::string level){
|
|||||||
XMLElement* playerFriction = doc->NewElement("friction");
|
XMLElement* playerFriction = doc->NewElement("friction");
|
||||||
XMLElement* playerStrength = doc->NewElement("strength");
|
XMLElement* playerStrength = doc->NewElement("strength");
|
||||||
playerFriction->SetText("0.9");
|
playerFriction->SetText("0.9");
|
||||||
playerStrength->SetText("100.0");
|
playerStrength->SetText("300.0");
|
||||||
physics->InsertEndChild(playerFriction);
|
physics->InsertEndChild(playerFriction);
|
||||||
physics->InsertEndChild(playerStrength);
|
physics->InsertEndChild(playerStrength);
|
||||||
doc->InsertEndChild(physics);
|
doc->InsertEndChild(physics);
|
||||||
|
|
||||||
//create positionConstraint Dummy
|
//Create positionConstraint Dummy
|
||||||
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
|
XMLElement* positionConstraint = doc->NewElement("positionConstraint");
|
||||||
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
|
XMLElement* positionConstraintObjectNum = doc->NewElement("objectNum");
|
||||||
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
|
XMLElement* positionConstraintXPos = doc->NewElement("xPosition");
|
||||||
@ -125,16 +194,17 @@ Converter::Converter(std::string level){
|
|||||||
positionConstraint->InsertEndChild(positionConstraintStrength);
|
positionConstraint->InsertEndChild(positionConstraintStrength);
|
||||||
doc->InsertEndChild(positionConstraint);
|
doc->InsertEndChild(positionConstraint);
|
||||||
}else{
|
}else{
|
||||||
|
//Create a backup of the current Level xml file
|
||||||
|
std::string backupXML = levelPath + levelName + "Backup.xml";
|
||||||
|
std::ifstream src(xmlFile, std::ios::binary);
|
||||||
|
std::ofstream dst(backupXML, std::ios::binary);
|
||||||
dst << src.rdbuf();
|
dst << src.rdbuf();
|
||||||
|
//Check what IDs are already in use
|
||||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
int idGreen, idBlue;
|
|
||||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
int idGreen = queryInt(thisComposition, "idGreen");
|
||||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
int idBlue = queryInt(thisComposition, "idBlue");
|
||||||
if(idGreen > nextID[0] || (idGreen == nextID[0] && idBlue > nextID[1])){
|
idUsed[idGreen][idBlue] = true;
|
||||||
nextID[0] = idGreen;
|
|
||||||
nextID[1] = idBlue;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,9 +216,52 @@ Converter::~Converter(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
||||||
XMLElement* newComposition = doc->NewElement("composition");
|
int oldIDGreen, oldIDBlue;
|
||||||
doc->InsertFirstChild(newComposition);
|
bool alreadyExists = false;
|
||||||
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
|
float xPos = queryFloat(thisComposition, "xPos");
|
||||||
|
float zPos = queryFloat(thisComposition, "zPos");
|
||||||
|
int typeID = queryInt(thisComposition, "typeID");
|
||||||
|
if(xPos == posX && zPos == posZ && typeID == type){
|
||||||
|
if(alreadyExists){
|
||||||
|
std::cout << "At the position " << xPos << "," << zPos << " multiple compositions with the ID " << typeID << " exist in the xml." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
oldIDGreen = queryInt(thisComposition, "idGreen");
|
||||||
|
oldIDBlue = queryInt(thisComposition, "idBlue");
|
||||||
|
alreadyExists = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (alreadyExists){
|
||||||
|
if (! idUsed[oldIDGreen][oldIDBlue]){
|
||||||
|
std::cout << "The composition with ID " << oldIDGreen << "," << oldIDBlue << " exists in the xml but the converter thinks it does not." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
std::vector<int> oldID;
|
||||||
|
oldID.push_back(oldIDGreen);
|
||||||
|
oldID.push_back(oldIDBlue);
|
||||||
|
return oldID;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool full = false;
|
||||||
|
while(idUsed[nextID[0]][nextID[1]]){
|
||||||
|
nextID[1] += 1;
|
||||||
|
if (nextID[1] == 256){
|
||||||
|
nextID[1] = 0;
|
||||||
|
nextID[0] +=1;
|
||||||
|
if (nextID[0] == 256){
|
||||||
|
if(full){
|
||||||
|
printf("Can not have more than 65535 compositions.\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
nextID[0] = 0;
|
||||||
|
full = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
XMLElement* newComposition = doc->NewElement("composition");
|
||||||
XMLElement* typeID = doc->NewElement("typeID");
|
XMLElement* typeID = doc->NewElement("typeID");
|
||||||
XMLElement* idBlue = doc->NewElement("idBlue");
|
XMLElement* idBlue = doc->NewElement("idBlue");
|
||||||
XMLElement* idGreen = doc->NewElement("idGreen");
|
XMLElement* idGreen = doc->NewElement("idGreen");
|
||||||
@ -189,6 +302,7 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
|||||||
XMLElement* trigger = doc->NewElement("trigger");
|
XMLElement* trigger = doc->NewElement("trigger");
|
||||||
newComposition->InsertEndChild(trigger);
|
newComposition->InsertEndChild(trigger);
|
||||||
XMLElement* name = doc->NewElement("name");
|
XMLElement* name = doc->NewElement("name");
|
||||||
|
XMLElement* undo = doc->NewElement("undo");
|
||||||
XMLElement* xPosition = doc->NewElement("xPosition");
|
XMLElement* xPosition = doc->NewElement("xPosition");
|
||||||
XMLElement* yPosition = doc->NewElement("yPosition");
|
XMLElement* yPosition = doc->NewElement("yPosition");
|
||||||
XMLElement* zPosition = doc->NewElement("zPosition");
|
XMLElement* zPosition = doc->NewElement("zPosition");
|
||||||
@ -203,6 +317,7 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
|||||||
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
|
XMLElement* toChangeObjNum = doc->NewElement("toChangeObjNum");
|
||||||
|
|
||||||
name->SetText("-");
|
name->SetText("-");
|
||||||
|
undo->SetText("false");
|
||||||
xPosition->SetText("0");
|
xPosition->SetText("0");
|
||||||
yPosition->SetText("0");
|
yPosition->SetText("0");
|
||||||
zPosition->SetText("0");
|
zPosition->SetText("0");
|
||||||
@ -217,6 +332,7 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
|||||||
toChangeObjNum->SetText("0");
|
toChangeObjNum->SetText("0");
|
||||||
|
|
||||||
trigger->InsertEndChild(name);
|
trigger->InsertEndChild(name);
|
||||||
|
trigger->InsertEndChild(undo);
|
||||||
trigger->InsertEndChild(xPosition);
|
trigger->InsertEndChild(xPosition);
|
||||||
trigger->InsertEndChild(yPosition);
|
trigger->InsertEndChild(yPosition);
|
||||||
trigger->InsertEndChild(zPosition);
|
trigger->InsertEndChild(zPosition);
|
||||||
@ -230,28 +346,23 @@ std::vector<int> Converter::newComposition(int type, float posX, float posZ){
|
|||||||
trigger->InsertEndChild(toChangeIdBlue);
|
trigger->InsertEndChild(toChangeIdBlue);
|
||||||
trigger->InsertEndChild(toChangeObjNum);
|
trigger->InsertEndChild(toChangeObjNum);
|
||||||
|
|
||||||
std::vector<int> ret = nextID;
|
idUsed[nextID[0]][nextID[1]] = true;
|
||||||
nextID[1] += 1;
|
doc->InsertFirstChild(newComposition);
|
||||||
if (nextID[1] == 255){
|
return nextID;
|
||||||
nextID[1] = 0;
|
|
||||||
nextID[0] +=1;
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
||||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
int idGreen = 0, idBlue = 0;
|
|
||||||
bool compositionExists = false;
|
bool compositionExists = false;
|
||||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
int idGreen = queryInt(thisComposition, "idGreen");
|
||||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
int idBlue = queryInt(thisComposition, "idBlue");
|
||||||
if(idGreen == idG && idBlue == idB){
|
if(idGreen == idG && idBlue == idB){
|
||||||
if (compositionExists){
|
if (compositionExists){
|
||||||
std::cout << "An ID is used for multiple compositions in the xml." << std::endl;
|
std::cout << "The ID " << idGreen << "," << idBlue << " is used for multiple compositions in the xml." << std::endl;
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
bool manualPos;
|
bool manualPos = queryBool(thisComposition, "manualPos");
|
||||||
errorCheck(thisComposition->FirstChildElement("manualPos")->QueryBoolText(&manualPos));
|
|
||||||
if(!manualPos){
|
if(!manualPos){
|
||||||
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
|
thisComposition->FirstChildElement("xPos")->SetText(std::to_string(posX).c_str());
|
||||||
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
|
thisComposition->FirstChildElement("zPos")->SetText(std::to_string(posZ).c_str());
|
||||||
@ -260,17 +371,16 @@ void Converter::updateComposition(int idG, int idB, float posX, float posZ){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!compositionExists){
|
if(!compositionExists){
|
||||||
std::cout << "A composition has an ID in the png, but does'nt exist in the xml." << std::endl;
|
std::cout << "A composition has the ID " << idG << "," << idB << " and the position " << posX << "," << posZ << " in the png, but does not exist in the xml." << std::endl;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Converter::deleteComposition(int idG, int idB){
|
void Converter::deleteComposition(int idG, int idB){
|
||||||
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
XMLElement* thisComposition = doc->FirstChildElement("composition");
|
||||||
int idGreen, idBlue;
|
|
||||||
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
for(; thisComposition; thisComposition=thisComposition->NextSiblingElement("composition")){
|
||||||
errorCheck(thisComposition->FirstChildElement("idGreen")->QueryIntText(&idGreen));
|
int idGreen = queryInt(thisComposition, "idGreen");
|
||||||
errorCheck(thisComposition->FirstChildElement("idBlue")->QueryIntText(&idBlue));
|
int idBlue = queryInt(thisComposition, "idBlue");
|
||||||
if(idGreen == idG && idBlue == idB){
|
if(idGreen == idG && idBlue == idB){
|
||||||
doc->DeleteChild(thisComposition);
|
doc->DeleteChild(thisComposition);
|
||||||
}
|
}
|
||||||
@ -282,8 +392,70 @@ void Converter::save(){
|
|||||||
doc->SaveFile(charXmlFile);
|
doc->SaveFile(charXmlFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<int> Converter::getNextID(){
|
float Converter::queryFloat(XMLElement* element, const char* attribute){
|
||||||
return nextID;
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
float ret;
|
||||||
|
errorCheck(attributeElement->QueryFloatText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
float Converter::queryFloat(XMLDocument*& element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
float ret;
|
||||||
|
errorCheck(attributeElement->QueryFloatText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Converter::queryInt(XMLElement* element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
int ret;
|
||||||
|
errorCheck(attributeElement->QueryIntText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int Converter::queryInt(XMLDocument*& element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
int ret;
|
||||||
|
errorCheck(attributeElement->QueryIntText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Converter::queryBool(XMLElement* element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
bool ret;
|
||||||
|
errorCheck(attributeElement->QueryBoolText(&ret));
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool Converter::queryBool(XMLDocument*& element, const char* attribute){
|
||||||
|
XMLElement* attributeElement = element->FirstChildElement(attribute);
|
||||||
|
if (attributeElement == NULL){
|
||||||
|
std::cout << "XMLError: Attribute " << attribute << " does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
bool ret;
|
||||||
|
errorCheck(attributeElement->QueryBoolText(&ret));
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Converter::errorCheck(XMLError error){
|
void Converter::errorCheck(XMLError error){
|
||||||
@ -304,5 +476,6 @@ void Converter::errorCheck(XMLError error){
|
|||||||
else {
|
else {
|
||||||
printf("Unknown error.\n");
|
printf("Unknown error.\n");
|
||||||
}
|
}
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,21 +8,26 @@
|
|||||||
using namespace tinyxml2;
|
using namespace tinyxml2;
|
||||||
class Converter {
|
class Converter {
|
||||||
public:
|
public:
|
||||||
Converter(std::string level);
|
Converter(std::string levelPath, std::string levelName, std::string compositionsPath);
|
||||||
Converter();
|
Converter();
|
||||||
~Converter();
|
~Converter();
|
||||||
void updateComposition(int idG, int idB, float posX, float posZ); //updates the position of a composition
|
void updateComposition(int idG, int idB, float posX, float posZ); //updates the position of a composition
|
||||||
std::vector<int> newComposition(int type, float posX, float posZ);//creates a new composition and returns its ID
|
std::vector<int> newComposition(int type, float posX, float posZ); //creates a new composition and returns its ID
|
||||||
void deleteComposition(int idG, int idB);
|
void deleteComposition(int idG, int idB);
|
||||||
void save(); //writes the xml to file
|
void save(); //writes the xml to file
|
||||||
std::vector<int> getNextID(); //returns the next unused ID
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void errorCheck(XMLError error);
|
|
||||||
std::vector<int> nextID;
|
std::vector<int> nextID;
|
||||||
|
bool idUsed[256][256];
|
||||||
std::string xmlFile;
|
std::string xmlFile;
|
||||||
XMLDocument* doc = new XMLDocument();
|
XMLDocument* doc = new XMLDocument();
|
||||||
XMLDocument* compositions = new XMLDocument();
|
XMLDocument* compositions = new XMLDocument();
|
||||||
|
float queryFloat(XMLElement* element, const char* attribute);
|
||||||
|
float queryFloat(XMLDocument*& element, const char* attribute);
|
||||||
|
int queryInt(XMLElement* element, const char* attribute);
|
||||||
|
int queryInt(XMLDocument*& element, const char* attribute);
|
||||||
|
bool queryBool(XMLElement* element, const char* attribute);
|
||||||
|
bool queryBool(XMLDocument*& element, const char* attribute);
|
||||||
|
void errorCheck(XMLError error);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
6096
converter/lodepng.cc
1702
converter/lodepng.hh
@ -1,16 +1,21 @@
|
|||||||
#include "lodepng.hh"
|
#include <lodepng/lodepng.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "converter.hh"
|
#include "converter.hh"
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include "tinyxml2.hh"
|
||||||
|
|
||||||
|
using namespace tinyxml2;
|
||||||
|
|
||||||
int main( int argc, char *argv[] ){
|
int main( int argc, char *argv[] ){
|
||||||
if (argc <= 1){
|
if (argc <= 1){
|
||||||
std::cout << "Converter needs the level (1,2,...) as input." << std::endl;
|
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
printf("Initializing.\n");
|
||||||
std::string levelString = argv[1];
|
std::string levelString = argv[1];
|
||||||
Converter conv = Converter(levelString);
|
|
||||||
|
|
||||||
bool idFound[256][256];
|
bool idFound[256][256];
|
||||||
for (int i=0; i<256; i++){
|
for (int i=0; i<256; i++){
|
||||||
for (int j=0; j<256; j++){
|
for (int j=0; j<256; j++){
|
||||||
@ -18,43 +23,80 @@ int main( int argc, char *argv[] ){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XMLDocument* config = new XMLDocument();
|
||||||
|
const char* xmlFile = "../data/config.xml";
|
||||||
|
config->LoadFile(xmlFile);
|
||||||
|
if (config->ErrorID()!=0){
|
||||||
|
printf("Could not open config.xml!\n");
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
XMLElement* xmlLevelPath = config->FirstChildElement("levelXmlPath");
|
||||||
|
if (xmlLevelPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute levelXmlPath does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
const char* charLevelPath = xmlLevelPath->GetText();
|
||||||
|
if(charLevelPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute levelXmlPath could not be loaded." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
std::string levelPath = charLevelPath;
|
||||||
|
|
||||||
|
XMLElement* xmlCompositionsPath = config->FirstChildElement("compositionsPath");
|
||||||
|
if (xmlCompositionsPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute compositionsPath does not exist." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
const char* charCompositionsPath = xmlCompositionsPath->GetText();
|
||||||
|
if(charCompositionsPath == NULL){
|
||||||
|
std::cout << "XMLError: Attribute compositionsPath could not be loaded." << std::endl;
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
|
std::string compositionsPath = charCompositionsPath;
|
||||||
|
Converter conv = Converter("../" + levelPath, levelString, "../" + compositionsPath);
|
||||||
|
|
||||||
//read the setup png
|
//read the setup png
|
||||||
std::string filePath = "../Levels/ObjectSetups/Level" + levelString + ".png";
|
printf("Loading the png.\n");
|
||||||
|
std::string filePath = "../" + levelPath + levelString + ".png";
|
||||||
std::vector<unsigned char> image; //the raw pixels
|
std::vector<unsigned char> image; //the raw pixels
|
||||||
unsigned int width, height;
|
unsigned int width, height;
|
||||||
unsigned error = lodepng::decode(image, width, height, filePath);
|
unsigned error = lodepng::decode(image, width, height, filePath);
|
||||||
if (error) {
|
if (error) {
|
||||||
std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
|
std::cout << "decoder error " << error << ": " << lodepng_error_text(error) << std::endl;
|
||||||
|
std::cout << "Converter needs the levels name (Level1) as input." << std::endl;
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
printf("Iterating over the png.\n");
|
||||||
//iterate over all pixels of the image
|
//iterate over all pixels of the image
|
||||||
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
|
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
|
||||||
for(unsigned int columnNum = 0; columnNum < width; columnNum++){
|
for(unsigned int rowNum = 0; rowNum < height; rowNum++){
|
||||||
unsigned int pixel = (rowNum*width+columnNum)*4;
|
unsigned int pixel = (rowNum*width+columnNum)*4;
|
||||||
//if there is a composition here, adjust the xml and image
|
//if there is a composition here, adjust the xml and image
|
||||||
if(image[pixel]!=0 && image[pixel]!=255){
|
if(image[pixel]!=0 && image[pixel]!=255){
|
||||||
if((image[pixel+1]==0 && image[pixel+2]==0) || (image[pixel+1]==255 && image[pixel+2]==255)){
|
if(image[pixel+1]==0 && image[pixel+2]==0){//composition has no ID
|
||||||
std::vector<int> temp;
|
std::vector<int> newID;
|
||||||
temp = conv.newComposition(image[pixel], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
|
newID = conv.newComposition(image[pixel], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
|
||||||
idFound[temp[0]][temp[1]] = true;
|
idFound[newID[0]][newID[1]] = true;
|
||||||
image[pixel+1] = temp[0];
|
image[pixel+1] = newID[0];
|
||||||
image[pixel+2] = temp[1];
|
image[pixel+2] = newID[1];
|
||||||
}else{
|
}else{//composition has an ID
|
||||||
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+rowNum-0.5*height, 0.5+columnNum-0.5*width);
|
conv.updateComposition(image[pixel+1], image[pixel+2], 0.5+columnNum-0.5*width, 0.5+rowNum-0.5*height);
|
||||||
idFound[image[pixel+1]][image[pixel+2]] = true;
|
idFound[image[pixel+1]][image[pixel+2]] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
printf("Writing IDs back to the png.\n");
|
||||||
//write ids back to the setup png
|
//write ids back to the setup png
|
||||||
error = lodepng::encode(filePath, image, width, height);
|
error = lodepng::encode(filePath, image, width, height);
|
||||||
if(error) {
|
if(error) {
|
||||||
std::cout << "encoder error " << error << ": "<< lodepng_error_text(error) << std::endl;
|
std::cout << "encoder error " << error << ": "<< lodepng_error_text(error) << std::endl;
|
||||||
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
printf("Deleting obsolete Compositions (Can take a minute).\n");
|
||||||
//delete compositions that were not in the png anymore
|
//delete compositions that were not in the png anymore
|
||||||
for (int i=0; i<=conv.getNextID()[1]; i++){
|
for (int i=0; i<256; i++){
|
||||||
for (int j=0; j<256; j++){
|
for (int j=0; j<256; j++){
|
||||||
if (! idFound[i][j]){
|
if (! idFound[i][j]){
|
||||||
conv.deleteComposition(i,j);
|
conv.deleteComposition(i,j);
|
||||||
@ -65,4 +107,3 @@ int main( int argc, char *argv[] ){
|
|||||||
//save the xml
|
//save the xml
|
||||||
conv.save();
|
conv.save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
42
data/config.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<resolution>
|
||||||
|
<width>1024</width>
|
||||||
|
<height>786</height>
|
||||||
|
</resolution>
|
||||||
|
|
||||||
|
<!-- The resolution settings get ignored if you choose windowed fullscreen. -->
|
||||||
|
|
||||||
|
<windowedFullscreen>true</windowedFullscreen>
|
||||||
|
|
||||||
|
<!-- Reduce the following parameters if you game runs too slow.
|
||||||
|
If you feel your game runs smooth enough you can increase them to
|
||||||
|
increase the visual quality. -->
|
||||||
|
|
||||||
|
<shadowCubeSize>512</shadowCubeSize>
|
||||||
|
|
||||||
|
<farPlane>150.0</farPlane>
|
||||||
|
|
||||||
|
<maxShadowRenderCount>3</maxShadowRenderCount>
|
||||||
|
|
||||||
|
<!-- The following stuff is used to configure the application.
|
||||||
|
Do not change unless you know what you are doing. -->
|
||||||
|
|
||||||
|
<compositionsPath>data/levels/Compositions.xml</compositionsPath>
|
||||||
|
|
||||||
|
<shaderPath>data/shader/</shaderPath>
|
||||||
|
|
||||||
|
<geometryPath>data/geometry/</geometryPath>
|
||||||
|
|
||||||
|
<texturePath>data/textures/</texturePath>
|
||||||
|
|
||||||
|
<scriptPath>data/levels/scripts/</scriptPath>
|
||||||
|
|
||||||
|
<heightmapPath>data/levels/</heightmapPath>
|
||||||
|
|
||||||
|
<levelXmlPath>data/levels/</levelXmlPath>
|
||||||
|
<levelXML>Level1.xml</levelXML>
|
||||||
|
|
||||||
|
<!-- must be located in the textures directory -->
|
||||||
|
<loadingScreen>
|
||||||
|
<screenPath>loadingscreen.png</screenPath>
|
||||||
|
<screenContinuePath>loadingscreenContinue.png</screenContinuePath>
|
||||||
|
</loadingScreen>
|
1025
data/geometry/block.obj
Normal file
7306
data/geometry/brazier.obj
Normal file
39
data/geometry/exit.obj
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# Blender v2.73 (sub 0) OBJ File: 'exit.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Plane
|
||||||
|
v -3.440849 -0.000000 2.993210
|
||||||
|
v 3.435127 -0.000000 2.993210
|
||||||
|
v -3.440849 -0.000000 -2.993210
|
||||||
|
v 3.435127 -0.000000 -2.993210
|
||||||
|
v -3.440849 -0.215618 2.993210
|
||||||
|
v 3.435127 -0.215618 2.993210
|
||||||
|
v -3.440849 -0.215618 -2.993210
|
||||||
|
v 3.435127 -0.215618 -2.993210
|
||||||
|
v 0.196185 -0.238611 0.123684
|
||||||
|
vt 0.999900 0.000100
|
||||||
|
vt 0.999900 0.999900
|
||||||
|
vt 0.000100 0.999900
|
||||||
|
vt 0.999981 0.000019
|
||||||
|
vt 0.000019 0.000019
|
||||||
|
vt 0.000019 0.036035
|
||||||
|
vt 0.999981 0.036035
|
||||||
|
vt 0.000100 0.000100
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
vn 0.000000 -1.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 2/1/1 4/2/1 3/3/1
|
||||||
|
f 7/3/2 8/2/2 6/1/2
|
||||||
|
f 8/4/3 7/5/3 3/6/3
|
||||||
|
f 6/6/4 8/7/4 4/4/4
|
||||||
|
f 5/6/5 6/7/5 2/4/5
|
||||||
|
f 7/4/6 5/5/6 1/6/6
|
||||||
|
f 1/8/1 2/1/1 3/3/1
|
||||||
|
f 5/8/2 7/3/2 6/1/2
|
||||||
|
f 4/7/3 8/4/3 3/6/3
|
||||||
|
f 2/5/4 6/6/4 4/4/4
|
||||||
|
f 1/5/5 5/6/5 2/4/5
|
||||||
|
f 3/7/6 7/4/6 1/6/6
|
52
data/geometry/gate.obj
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: ''
|
||||||
|
# www.blender.org
|
||||||
|
o Wall_Cube.000
|
||||||
|
v 0.537791 3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 3.045326
|
||||||
|
v -0.537791 3.045326 3.045326
|
||||||
|
v -0.537791 -3.045326 3.045326
|
||||||
|
v -0.537791 -3.045326 -3.045326
|
||||||
|
v 0.537791 3.045326 3.045326
|
||||||
|
v -0.537791 3.045326 -3.045326
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 0.000000 -1.000000
|
||||||
|
vt 1.000000 -1.000000
|
||||||
|
vt -1.000000 0.000000
|
||||||
|
vt -1.000000 -1.000000
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 0.039666 1.000166
|
||||||
|
vt 0.000334 0.000166
|
||||||
|
vt 0.039666 0.000166
|
||||||
|
vt 0.960071 -0.007992
|
||||||
|
vt 0.993184 0.992028
|
||||||
|
vt 0.959736 0.992008
|
||||||
|
vt 0.002338 0.996941
|
||||||
|
vt 0.032522 -0.000041
|
||||||
|
vt 0.032299 0.996953
|
||||||
|
vt 0.995477 0.006970
|
||||||
|
vt 0.952679 0.987810
|
||||||
|
vt 0.952679 0.006970
|
||||||
|
vt 0.000334 1.000166
|
||||||
|
vt 0.993520 -0.007972
|
||||||
|
vt 0.002561 -0.000052
|
||||||
|
vt 0.995477 0.987810
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 0.000000 -0.000000 1.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 1/1/1 3/2/1 2/3/1
|
||||||
|
f 4/4/2 6/2/2 5/5/2
|
||||||
|
f 7/6/1 3/2/1 1/1/1
|
||||||
|
f 8/6/2 6/2/2 4/4/2
|
||||||
|
f 8/7/3 2/8/3 6/9/3
|
||||||
|
f 7/10/4 5/11/4 3/12/4
|
||||||
|
f 2/13/5 5/14/5 6/15/5
|
||||||
|
f 8/16/6 7/17/6 1/18/6
|
||||||
|
f 1/19/3 2/8/3 8/7/3
|
||||||
|
f 4/20/4 5/11/4 7/10/4
|
||||||
|
f 3/21/5 5/14/5 2/13/5
|
||||||
|
f 4/22/6 7/17/6 8/16/6
|
41
data/geometry/hint.obj
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: 'hint.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Plane
|
||||||
|
v -1.000000 0.000000 1.000000
|
||||||
|
v 1.000000 0.000000 1.000000
|
||||||
|
v -1.000000 0.000000 -1.000000
|
||||||
|
v 1.000000 0.000000 -1.000000
|
||||||
|
v -1.000000 -0.040124 1.000000
|
||||||
|
v 1.000000 -0.040124 1.000000
|
||||||
|
v -1.000000 -0.040124 -1.000000
|
||||||
|
v 1.000000 -0.040124 -1.000000
|
||||||
|
vt 0.999906 0.000094
|
||||||
|
vt 0.011632 0.011458
|
||||||
|
vt 0.031989 0.030429
|
||||||
|
vt 0.988368 0.993659
|
||||||
|
vt 0.978931 0.022798
|
||||||
|
vt 0.002935 0.993659
|
||||||
|
vt 0.968011 0.974689
|
||||||
|
vt 0.023910 0.970956
|
||||||
|
vt 0.000100 0.999900
|
||||||
|
vt 0.999900 0.999900
|
||||||
|
vt 0.000100 0.000100
|
||||||
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn 1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 0.000000 1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
vn 0.000000 -1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 8/1/1 7/2/1 3/3/1
|
||||||
|
f 6/4/2 8/1/2 4/5/2
|
||||||
|
f 5/6/3 6/4/3 2/7/3
|
||||||
|
f 7/2/4 5/6/4 1/8/4
|
||||||
|
f 4/5/1 8/1/1 3/3/1
|
||||||
|
f 2/7/2 6/4/2 4/5/2
|
||||||
|
f 1/8/3 5/6/3 2/7/3
|
||||||
|
f 3/3/4 7/2/4 1/8/4
|
||||||
|
f 3/9/5 2/1/5 4/10/5
|
||||||
|
f 6/1/6 7/9/6 8/10/6
|
||||||
|
f 1/11/5 2/1/5 3/9/5
|
||||||
|
f 5/11/6 7/9/6 6/1/6
|
15
data/geometry/ruinsTile.obj
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: 'ruinsTile.blend'
|
||||||
|
# www.blender.org
|
||||||
|
o Plane
|
||||||
|
v -1.000000 0.000000 1.000000
|
||||||
|
v 1.000000 0.000000 1.000000
|
||||||
|
v -1.000000 0.000000 -1.000000
|
||||||
|
v 1.000000 0.000000 -1.000000
|
||||||
|
vt 0.999900 0.000100
|
||||||
|
vt 0.999900 0.999900
|
||||||
|
vt 0.000100 0.999900
|
||||||
|
vt 0.000100 0.000100
|
||||||
|
vn 0.000000 1.000000 0.000000
|
||||||
|
s off
|
||||||
|
f 2/1/1 4/2/1 3/3/1
|
||||||
|
f 1/4/1 2/1/1 3/3/1
|
@ -1,54 +1,54 @@
|
|||||||
# Blender v2.72 (sub 0) OBJ File: 'SimpleWall.blend'
|
# Blender v2.72 (sub 0) OBJ File: ''
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o Wall_Cube.001
|
o Wall_Cube.001
|
||||||
v 0.537791 -3.045326 3.045326
|
v 0.537791 3.045326 -3.045326
|
||||||
v 0.537791 -3.045326 -3.045326
|
v 0.537791 -3.045326 -3.045326
|
||||||
|
v 0.537791 -3.045326 3.045326
|
||||||
|
v -0.537791 3.045326 -3.045326
|
||||||
v -0.537791 -3.045326 -3.045326
|
v -0.537791 -3.045326 -3.045326
|
||||||
|
v -0.537791 3.045326 3.045326
|
||||||
v -0.537791 -3.045326 3.045326
|
v -0.537791 -3.045326 3.045326
|
||||||
v 0.537791 3.045326 3.045326
|
v 0.537791 3.045326 3.045326
|
||||||
v 0.537791 3.045326 -3.045326
|
|
||||||
v -0.537791 3.045326 -3.045326
|
|
||||||
v -0.537791 3.045326 3.045326
|
|
||||||
vt 1.002363 0.998329
|
vt 1.002363 0.998329
|
||||||
vt 1.002363 -0.001671
|
|
||||||
vt 0.005637 -0.001671
|
vt 0.005637 -0.001671
|
||||||
|
vt 1.002363 -0.001671
|
||||||
vt 0.394169 0.995358
|
vt 0.394169 0.995358
|
||||||
vt 0.394169 -0.004642
|
|
||||||
vt 0.605831 -0.004642
|
vt 0.605831 -0.004642
|
||||||
|
vt 0.394169 -0.004642
|
||||||
vt -0.003002 0.995358
|
vt -0.003002 0.995358
|
||||||
vt -0.003002 -0.004642
|
|
||||||
vt 0.996752 -0.004642
|
vt 0.996752 -0.004642
|
||||||
|
vt -0.003002 -0.004642
|
||||||
vt 0.605361 0.992386
|
vt 0.605361 0.992386
|
||||||
vt 0.605361 -0.007614
|
|
||||||
vt 0.392389 -0.007614
|
vt 0.392389 -0.007614
|
||||||
|
vt 0.605361 -0.007614
|
||||||
vt 0.001396 0.906027
|
vt 0.001396 0.906027
|
||||||
vt 0.001923 0.094175
|
|
||||||
vt 0.998604 0.093973
|
vt 0.998604 0.093973
|
||||||
|
vt 0.001923 0.094175
|
||||||
vt 1.000000 0.097080
|
vt 1.000000 0.097080
|
||||||
vt 1.000000 0.902920
|
|
||||||
vt 0.000000 0.902920
|
vt 0.000000 0.902920
|
||||||
|
vt 1.000000 0.902920
|
||||||
vt 0.005637 0.998329
|
vt 0.005637 0.998329
|
||||||
vt 0.605831 0.995358
|
vt 0.605831 0.995358
|
||||||
vt 0.996752 0.995358
|
vt 0.996752 0.995358
|
||||||
vt 0.392389 0.992386
|
vt 0.392389 0.992386
|
||||||
vt 0.998077 0.905824
|
vt 0.998077 0.905824
|
||||||
vt 0.000000 0.097080
|
vt 0.000000 0.097080
|
||||||
vn -1.000000 0.000000 0.000000
|
|
||||||
vn 0.000000 0.000000 1.000000
|
|
||||||
vn 1.000000 0.000000 0.000000
|
vn 1.000000 0.000000 0.000000
|
||||||
vn 0.000000 0.000000 -1.000000
|
vn 0.000000 0.000000 -1.000000
|
||||||
|
vn -1.000000 0.000000 0.000000
|
||||||
|
vn 0.000000 -0.000000 1.000000
|
||||||
|
vn 0.000000 -1.000000 -0.000000
|
||||||
vn 0.000000 1.000000 0.000000
|
vn 0.000000 1.000000 0.000000
|
||||||
vn 0.000000 -1.000000 0.000000
|
|
||||||
s off
|
s off
|
||||||
f 6/1/1 2/2/1 1/3/1
|
f 1/1/1 3/2/1 2/3/1
|
||||||
f 7/4/2 3/5/2 2/6/2
|
f 4/4/2 2/5/2 5/6/2
|
||||||
f 8/7/3 4/8/3 3/9/3
|
f 6/7/3 5/8/3 7/9/3
|
||||||
f 5/10/4 1/11/4 4/12/4
|
f 8/10/4 7/11/4 3/12/4
|
||||||
f 2/13/5 3/14/5 4/15/5
|
f 2/13/5 7/14/5 5/15/5
|
||||||
f 7/16/6 6/17/6 5/18/6
|
f 4/16/6 8/17/6 1/18/6
|
||||||
f 5/19/1 6/1/1 1/3/1
|
f 8/19/1 3/2/1 1/1/1
|
||||||
f 6/20/2 7/4/2 2/6/2
|
f 1/20/2 2/5/2 4/4/2
|
||||||
f 7/21/3 8/7/3 3/9/3
|
f 4/21/3 5/8/3 6/7/3
|
||||||
f 8/22/4 5/10/4 4/12/4
|
f 6/22/4 7/11/4 8/10/4
|
||||||
f 1/23/5 2/13/5 4/15/5
|
f 3/23/5 7/14/5 2/13/5
|
||||||
f 8/24/6 7/16/6 5/18/6
|
f 6/24/6 8/17/6 4/16/6
|
10951
data/geometry/skydome.obj
Normal file
@ -1,4 +1,4 @@
|
|||||||
# Blender v2.72 (sub 0) OBJ File: 'switch_inner.blend'
|
# Blender v2.73 (sub 0) OBJ File: 'switch_inner.blend'
|
||||||
# www.blender.org
|
# www.blender.org
|
||||||
o switch_Cube
|
o switch_Cube
|
||||||
v 0.952094 -0.488588 -1.000000
|
v 0.952094 -0.488588 -1.000000
|
641
data/geometry/torch.obj
Normal file
@ -0,0 +1,641 @@
|
|||||||
|
# Blender v2.72 (sub 0) OBJ File: 'torch.blend'
|
||||||
|
# www.blender.org
|
||||||
|
v 0.000000 0.011815 -0.121572
|
||||||
|
v 0.023715 0.011815 -0.119227
|
||||||
|
v 0.046524 0.011815 -0.112303
|
||||||
|
v 0.067552 0.011815 -0.101069
|
||||||
|
v 0.085979 0.011815 -0.085979
|
||||||
|
v 0.101069 0.011815 -0.067552
|
||||||
|
v 0.112303 0.011815 -0.046523
|
||||||
|
v 0.119227 0.011815 -0.023714
|
||||||
|
v 0.121572 0.011815 -0.000000
|
||||||
|
v 0.119227 0.011815 0.023714
|
||||||
|
v 0.112303 0.011815 0.046523
|
||||||
|
v 0.101069 0.011815 0.067552
|
||||||
|
v 0.085979 0.011815 0.085979
|
||||||
|
v 0.067552 0.011815 0.101069
|
||||||
|
v 0.046523 0.011815 0.112303
|
||||||
|
v 0.023714 0.011815 0.119227
|
||||||
|
v -0.000000 0.011815 0.121572
|
||||||
|
v -0.023715 0.011815 0.119227
|
||||||
|
v -0.046524 0.011815 0.112303
|
||||||
|
v -0.067553 0.011815 0.101069
|
||||||
|
v -0.085980 0.011815 0.085979
|
||||||
|
v -0.101070 0.011815 0.067552
|
||||||
|
v -0.112303 0.011815 0.046523
|
||||||
|
v -0.119227 0.011815 0.023714
|
||||||
|
v -0.121572 0.011815 -0.000001
|
||||||
|
v -0.119227 0.011815 -0.023715
|
||||||
|
v -0.112303 0.011815 -0.046524
|
||||||
|
v -0.101069 0.011815 -0.067553
|
||||||
|
v -0.085979 0.011815 -0.085949
|
||||||
|
v -0.067551 0.011815 -0.101070
|
||||||
|
v -0.046522 0.011815 -0.112303
|
||||||
|
v -0.023713 0.011815 -0.119227
|
||||||
|
v -0.000000 1.675680 -0.221477
|
||||||
|
v 0.043188 1.675682 -0.217223
|
||||||
|
v 0.084756 1.675683 -0.204614
|
||||||
|
v 0.123084 1.675682 -0.184124
|
||||||
|
v 0.156611 1.675677 -0.156611
|
||||||
|
v 0.184124 1.675682 -0.123084
|
||||||
|
v 0.204614 1.675683 -0.084756
|
||||||
|
v 0.217223 1.675682 -0.043188
|
||||||
|
v 0.221477 1.675681 -0.000000
|
||||||
|
v 0.217223 1.675682 0.043188
|
||||||
|
v 0.204615 1.675683 0.084756
|
||||||
|
v 0.184124 1.675682 0.123084
|
||||||
|
v 0.156611 1.675677 0.156611
|
||||||
|
v 0.123084 1.675682 0.184124
|
||||||
|
v 0.084756 1.675683 0.204614
|
||||||
|
v 0.043188 1.675682 0.217223
|
||||||
|
v -0.000000 1.675681 0.221477
|
||||||
|
v -0.043188 1.675682 0.217223
|
||||||
|
v -0.084756 1.675683 0.204614
|
||||||
|
v -0.123084 1.675682 0.184123
|
||||||
|
v -0.156611 1.675677 0.156611
|
||||||
|
v -0.184123 1.675682 0.123084
|
||||||
|
v -0.204614 1.675683 0.084756
|
||||||
|
v -0.217223 1.675682 0.043188
|
||||||
|
v -0.221477 1.675681 0.000000
|
||||||
|
v -0.217223 1.675682 -0.043188
|
||||||
|
v -0.204614 1.675683 -0.084756
|
||||||
|
v -0.184140 1.675681 -0.123061
|
||||||
|
v -0.156605 1.675681 -0.156610
|
||||||
|
v -0.123056 1.675681 -0.184143
|
||||||
|
v -0.084756 1.675683 -0.204614
|
||||||
|
v -0.043188 1.675682 -0.217223
|
||||||
|
v -0.000000 1.947950 -0.335566
|
||||||
|
v -0.000000 1.981150 -0.313345
|
||||||
|
v 0.065442 1.947954 -0.329120
|
||||||
|
v 0.061108 1.981122 -0.307326
|
||||||
|
v 0.128419 1.947953 -0.310019
|
||||||
|
v 0.119914 1.981152 -0.289490
|
||||||
|
v 0.186472 1.947957 -0.278979
|
||||||
|
v 0.174126 1.981085 -0.260503
|
||||||
|
v 0.237285 1.947943 -0.237285
|
||||||
|
v 0.221572 1.981204 -0.221572
|
||||||
|
v 0.278979 1.947957 -0.186472
|
||||||
|
v 0.260503 1.981086 -0.174126
|
||||||
|
v 0.310019 1.947953 -0.128419
|
||||||
|
v 0.289490 1.981151 -0.119914
|
||||||
|
v 0.329120 1.947954 -0.065442
|
||||||
|
v 0.307326 1.981122 -0.061107
|
||||||
|
v 0.335566 1.947950 0.000000
|
||||||
|
v 0.313345 1.981150 0.000000
|
||||||
|
v 0.329120 1.947954 0.065442
|
||||||
|
v 0.307326 1.981122 0.061107
|
||||||
|
v 0.310020 1.947952 0.128419
|
||||||
|
v 0.289491 1.981152 0.119914
|
||||||
|
v 0.278979 1.947957 0.186472
|
||||||
|
v 0.260503 1.981085 0.174126
|
||||||
|
v 0.237285 1.947943 0.237285
|
||||||
|
v 0.221572 1.981204 0.221572
|
||||||
|
v 0.186472 1.947957 0.278979
|
||||||
|
v 0.174126 1.981086 0.260503
|
||||||
|
v 0.128419 1.947953 0.310020
|
||||||
|
v 0.119914 1.981151 0.289490
|
||||||
|
v 0.065442 1.947954 0.329120
|
||||||
|
v 0.061108 1.981122 0.307326
|
||||||
|
v 0.000000 1.947950 0.335566
|
||||||
|
v 0.000000 1.981150 0.313345
|
||||||
|
v -0.065442 1.947954 0.329120
|
||||||
|
v -0.061107 1.981123 0.307326
|
||||||
|
v -0.128419 1.947953 0.310020
|
||||||
|
v -0.119914 1.981151 0.289490
|
||||||
|
v -0.186472 1.947957 0.278979
|
||||||
|
v -0.174126 1.981086 0.260503
|
||||||
|
v -0.237285 1.947943 0.237285
|
||||||
|
v -0.221572 1.981203 0.221572
|
||||||
|
v -0.278979 1.947957 0.186472
|
||||||
|
v -0.260503 1.981086 0.174126
|
||||||
|
v -0.310019 1.947953 0.128420
|
||||||
|
v -0.289490 1.981151 0.119915
|
||||||
|
v -0.329120 1.947954 0.065443
|
||||||
|
v -0.307326 1.981123 0.061108
|
||||||
|
v -0.335566 1.947951 0.000000
|
||||||
|
v -0.313345 1.981149 0.000000
|
||||||
|
v -0.329120 1.947954 -0.065442
|
||||||
|
v -0.307326 1.981127 -0.061107
|
||||||
|
v -0.310020 1.947954 -0.128415
|
||||||
|
v -0.289490 1.981131 -0.119911
|
||||||
|
v -0.279000 1.947952 -0.186447
|
||||||
|
v -0.260524 1.981136 -0.174101
|
||||||
|
v -0.237275 1.947951 -0.237286
|
||||||
|
v -0.221562 1.981138 -0.221573
|
||||||
|
v -0.186439 1.947953 -0.279005
|
||||||
|
v -0.174094 1.981137 -0.260529
|
||||||
|
v -0.128415 1.947954 -0.310020
|
||||||
|
v -0.119911 1.981128 -0.289490
|
||||||
|
v -0.065442 1.947953 -0.329120
|
||||||
|
v -0.061107 1.981129 -0.307326
|
||||||
|
v 0.000000 1.926806 -0.174476
|
||||||
|
v 0.034026 1.926790 -0.171123
|
||||||
|
v 0.066770 1.926806 -0.161192
|
||||||
|
v 0.096955 1.926769 -0.145050
|
||||||
|
v 0.123377 1.926835 -0.123377
|
||||||
|
v 0.145051 1.926770 -0.096955
|
||||||
|
v 0.161192 1.926806 -0.066770
|
||||||
|
v 0.171123 1.926790 -0.034025
|
||||||
|
v 0.174476 1.926805 0.000000
|
||||||
|
v 0.171123 1.926790 0.034025
|
||||||
|
v 0.161193 1.926807 0.066770
|
||||||
|
v 0.145050 1.926769 0.096955
|
||||||
|
v 0.123377 1.926835 0.123377
|
||||||
|
v 0.096955 1.926770 0.145050
|
||||||
|
v 0.066770 1.926806 0.161192
|
||||||
|
v 0.034026 1.926790 0.171123
|
||||||
|
v 0.000000 1.926805 0.174476
|
||||||
|
v -0.034025 1.926790 0.171123
|
||||||
|
v -0.066770 1.926806 0.161193
|
||||||
|
v -0.096955 1.926770 0.145051
|
||||||
|
v -0.123377 1.926835 0.123377
|
||||||
|
v -0.145050 1.926770 0.096955
|
||||||
|
v -0.161192 1.926806 0.066770
|
||||||
|
v -0.171123 1.926790 0.034026
|
||||||
|
v -0.174475 1.926805 0.000000
|
||||||
|
v -0.171123 1.926793 -0.034025
|
||||||
|
v -0.161192 1.926795 -0.066768
|
||||||
|
v -0.145064 1.926797 -0.096942
|
||||||
|
v -0.123369 1.926799 -0.123375
|
||||||
|
v -0.096938 1.926798 -0.145066
|
||||||
|
v -0.066768 1.926793 -0.161192
|
||||||
|
v -0.034025 1.926794 -0.171123
|
||||||
|
vt 0.000000 0.000000
|
||||||
|
vt 1.000000 0.000000
|
||||||
|
vt 1.000000 1.000000
|
||||||
|
vn 0.000000 -0.228700 -0.973500
|
||||||
|
vn -0.189900 -0.228700 -0.954800
|
||||||
|
vn 0.000000 0.093700 -0.995600
|
||||||
|
vn 0.540800 -0.228700 -0.809400
|
||||||
|
vn 0.372500 -0.228700 -0.899300
|
||||||
|
vn 0.553100 0.094200 -0.827800
|
||||||
|
vn 0.688300 -0.228700 -0.688300
|
||||||
|
vn 0.704000 0.093500 -0.704000
|
||||||
|
vn 0.827800 0.094100 -0.553100
|
||||||
|
vn 0.809400 -0.228700 -0.540800
|
||||||
|
vn 0.919800 0.093800 -0.381100
|
||||||
|
vn 0.899300 -0.228700 -0.372500
|
||||||
|
vn 0.954800 -0.228700 -0.189900
|
||||||
|
vn 0.976400 0.093800 -0.194200
|
||||||
|
vn 0.973500 -0.228700 0.000000
|
||||||
|
vn 0.995600 0.093700 0.000000
|
||||||
|
vn 0.976400 0.093800 0.194200
|
||||||
|
vn 0.954800 -0.228700 0.189900
|
||||||
|
vn 0.919800 0.093800 0.381100
|
||||||
|
vn 0.899300 -0.228700 0.372500
|
||||||
|
vn 0.809400 -0.228700 0.540800
|
||||||
|
vn 0.827800 0.094100 0.553100
|
||||||
|
vn 0.688300 -0.228700 0.688300
|
||||||
|
vn 0.704000 0.093500 0.704000
|
||||||
|
vn 0.553100 0.094100 0.827800
|
||||||
|
vn 0.540800 -0.228700 0.809400
|
||||||
|
vn 0.381100 0.093800 0.919800
|
||||||
|
vn 0.372500 -0.228700 0.899300
|
||||||
|
vn 0.189900 -0.228700 0.954800
|
||||||
|
vn 0.194200 0.093800 0.976400
|
||||||
|
vn 0.000000 -0.228700 0.973500
|
||||||
|
vn 0.000000 0.093700 0.995600
|
||||||
|
vn -0.194200 0.093800 0.976400
|
||||||
|
vn -0.189900 -0.228700 0.954800
|
||||||
|
vn -0.381100 0.093800 0.919800
|
||||||
|
vn -0.372500 -0.228700 0.899300
|
||||||
|
vn -0.540800 -0.228700 0.809400
|
||||||
|
vn -0.553100 0.094100 0.827800
|
||||||
|
vn -0.688300 -0.228700 0.688300
|
||||||
|
vn -0.704000 0.093500 0.704000
|
||||||
|
vn -0.827800 0.094100 0.553100
|
||||||
|
vn -0.809400 -0.228700 0.540800
|
||||||
|
vn -0.919800 0.093800 0.381100
|
||||||
|
vn -0.899300 -0.228700 0.372500
|
||||||
|
vn -0.954800 -0.228700 0.189900
|
||||||
|
vn -0.976400 0.093800 0.194200
|
||||||
|
vn -0.973500 -0.228700 0.000000
|
||||||
|
vn -0.995600 0.093700 0.000000
|
||||||
|
vn -0.976400 0.093800 -0.194200
|
||||||
|
vn -0.954800 -0.228700 -0.189900
|
||||||
|
vn -0.919800 0.093800 -0.381000
|
||||||
|
vn -0.899400 -0.228700 -0.372500
|
||||||
|
vn -0.809400 -0.228700 -0.540800
|
||||||
|
vn -0.827800 0.093800 -0.553100
|
||||||
|
vn -0.688300 -0.228700 -0.688300
|
||||||
|
vn -0.704000 0.093700 -0.704000
|
||||||
|
vn -0.553100 0.093800 -0.827800
|
||||||
|
vn -0.540800 -0.228700 -0.809400
|
||||||
|
vn -0.381000 0.093800 -0.919800
|
||||||
|
vn -0.372500 -0.228700 -0.899400
|
||||||
|
vn -0.194200 0.093800 -0.976400
|
||||||
|
vn 0.381100 0.093800 -0.919800
|
||||||
|
vn 0.194200 0.093800 -0.976400
|
||||||
|
vn 0.193200 0.980400 -0.038400
|
||||||
|
vn -0.327600 0.942500 0.065100
|
||||||
|
vn 0.185000 0.979700 -0.076300
|
||||||
|
vn 0.270500 -0.707200 -0.653200
|
||||||
|
vn 0.653200 -0.707200 -0.270500
|
||||||
|
vn 0.653200 -0.707200 0.270500
|
||||||
|
vn 0.000000 -0.707100 -0.707100
|
||||||
|
vn 0.189900 -0.228700 -0.954800
|
||||||
|
vn 0.392300 -0.707300 -0.588000
|
||||||
|
vn 0.500100 -0.707000 -0.500100
|
||||||
|
vn 0.588000 -0.707300 -0.392300
|
||||||
|
vn 0.693400 -0.707200 -0.138100
|
||||||
|
vn 0.707100 -0.707100 0.000000
|
||||||
|
vn 0.693400 -0.707200 0.138100
|
||||||
|
vn 0.588000 -0.707300 0.392300
|
||||||
|
vn 0.500100 -0.707000 0.500100
|
||||||
|
vn 0.392300 -0.707300 0.588000
|
||||||
|
vn 0.270500 -0.707200 0.653200
|
||||||
|
vn 0.138100 -0.707200 0.693400
|
||||||
|
vn 0.000000 -0.707100 0.707100
|
||||||
|
vn -0.270500 -0.707200 0.653200
|
||||||
|
vn -0.392300 -0.707300 0.588000
|
||||||
|
vn -0.500100 -0.707000 0.500100
|
||||||
|
vn -0.588000 -0.707300 0.392300
|
||||||
|
vn -0.653200 -0.707200 0.270500
|
||||||
|
vn -0.693400 -0.707200 0.138100
|
||||||
|
vn -0.707100 -0.707100 0.000000
|
||||||
|
vn -0.653200 -0.707200 -0.270500
|
||||||
|
vn -0.587900 -0.707200 -0.392700
|
||||||
|
vn -0.392700 -0.707200 -0.587900
|
||||||
|
vn -0.270500 -0.707200 -0.653200
|
||||||
|
vn -0.138100 -0.707200 -0.693400
|
||||||
|
vn 0.000000 0.942500 -0.334100
|
||||||
|
vn 0.065100 0.942500 -0.327600
|
||||||
|
vn 0.128100 0.942500 -0.308500
|
||||||
|
vn 0.185400 0.942500 -0.277900
|
||||||
|
vn 0.236300 0.942500 -0.236300
|
||||||
|
vn 0.277900 0.942500 -0.185400
|
||||||
|
vn 0.308500 0.942500 -0.128100
|
||||||
|
vn 0.327600 0.942500 -0.065100
|
||||||
|
vn 0.334000 0.942500 0.000000
|
||||||
|
vn 0.327600 0.942500 0.065100
|
||||||
|
vn 0.308500 0.942500 0.128100
|
||||||
|
vn 0.277900 0.942500 0.185400
|
||||||
|
vn 0.236300 0.942500 0.236300
|
||||||
|
vn 0.185400 0.942500 0.277900
|
||||||
|
vn 0.128100 0.942500 0.308500
|
||||||
|
vn 0.065100 0.942500 0.327600
|
||||||
|
vn 0.000000 0.942500 0.334000
|
||||||
|
vn -0.065100 0.942500 0.327600
|
||||||
|
vn -0.128100 0.942500 0.308500
|
||||||
|
vn -0.185400 0.942500 0.277900
|
||||||
|
vn -0.236300 0.942500 0.236300
|
||||||
|
vn -0.277900 0.942500 0.185400
|
||||||
|
vn -0.308500 0.942500 0.128100
|
||||||
|
vn -0.334000 0.942500 0.000000
|
||||||
|
vn -0.327600 0.942600 -0.065200
|
||||||
|
vn -0.308600 0.942600 -0.127800
|
||||||
|
vn -0.277700 0.942600 -0.185500
|
||||||
|
vn -0.236200 0.942500 -0.236200
|
||||||
|
vn -0.185500 0.942600 -0.277700
|
||||||
|
vn -0.127800 0.942600 -0.308600
|
||||||
|
vn -0.065200 0.942600 -0.327600
|
||||||
|
vn -0.109500 0.980400 0.163500
|
||||||
|
vn 0.109500 0.980400 -0.163500
|
||||||
|
vn -0.163500 0.980400 -0.109500
|
||||||
|
vn -0.038300 0.980400 0.193200
|
||||||
|
vn 0.000000 0.980100 0.198500
|
||||||
|
vn -0.145500 0.978600 -0.145500
|
||||||
|
vn 0.192900 0.980400 0.038300
|
||||||
|
vn 0.181600 0.980500 0.075300
|
||||||
|
vn -0.145500 0.978600 0.145500
|
||||||
|
vn -0.038400 0.980400 -0.193200
|
||||||
|
vn -0.076300 0.979700 -0.185000
|
||||||
|
vn 0.109400 0.980400 0.163600
|
||||||
|
vn 0.139000 0.980500 0.139000
|
||||||
|
vn 0.038400 0.980400 -0.193200
|
||||||
|
vn 0.076300 0.979700 -0.185000
|
||||||
|
vn -0.193200 0.980400 0.038400
|
||||||
|
vn -0.185000 0.979700 0.076300
|
||||||
|
vn 0.163500 0.980400 -0.109500
|
||||||
|
vn 0.145400 0.978600 -0.145400
|
||||||
|
vn -0.193200 0.980400 -0.038400
|
||||||
|
vn -0.185200 0.979700 -0.076400
|
||||||
|
vn 0.198400 0.980100 0.000000
|
||||||
|
vn -0.076400 0.979700 0.185200
|
||||||
|
vn -0.109500 0.980400 -0.163500
|
||||||
|
vn 0.163500 0.980400 0.109300
|
||||||
|
vn -0.163600 0.980400 0.109500
|
||||||
|
vn 0.000000 0.980000 -0.198700
|
||||||
|
vn 0.075300 0.980500 0.181600
|
||||||
|
vn -0.198700 0.980000 0.000000
|
||||||
|
vn 0.038300 0.980400 0.193000
|
||||||
|
vn -0.500000 -0.707100 -0.499900
|
||||||
|
vn -0.693400 -0.707200 -0.138100
|
||||||
|
vn -0.138100 -0.707200 0.693400
|
||||||
|
vn 0.138100 -0.707200 -0.693400
|
||||||
|
f 33/1/1 64/2/2 65/3/3
|
||||||
|
f 36/1/4 35/2/5 71/3/6
|
||||||
|
f 37/1/7 36/2/4 73/3/8
|
||||||
|
f 75/1/9 38/2/10 73/3/8
|
||||||
|
f 77/1/11 39/2/12 75/3/9
|
||||||
|
f 40/1/13 39/2/12 79/3/14
|
||||||
|
f 41/1/15 40/2/13 81/3/16
|
||||||
|
f 83/1/17 42/2/18 81/3/16
|
||||||
|
f 85/1/19 43/2/20 83/3/17
|
||||||
|
f 44/1/21 43/2/20 87/3/22
|
||||||
|
f 45/1/23 44/2/21 89/3/24
|
||||||
|
f 91/1/25 46/2/26 89/3/24
|
||||||
|
f 93/1/27 47/2/28 91/3/25
|
||||||
|
f 48/1/29 47/2/28 95/3/30
|
||||||
|
f 49/1/31 48/2/29 97/3/32
|
||||||
|
f 99/1/33 50/2/34 97/3/32
|
||||||
|
f 101/1/35 51/2/36 99/3/33
|
||||||
|
f 52/1/37 51/2/36 103/3/38
|
||||||
|
f 53/1/39 52/2/37 105/3/40
|
||||||
|
f 107/1/41 54/2/42 105/3/40
|
||||||
|
f 109/1/43 55/2/44 107/3/41
|
||||||
|
f 56/1/45 55/2/44 111/3/46
|
||||||
|
f 57/1/47 56/2/45 113/3/48
|
||||||
|
f 115/1/49 58/2/50 113/3/48
|
||||||
|
f 117/1/51 59/2/52 115/3/49
|
||||||
|
f 60/1/53 59/2/52 119/3/54
|
||||||
|
f 61/1/55 60/2/53 121/3/56
|
||||||
|
f 123/1/57 62/2/58 121/3/56
|
||||||
|
f 125/1/59 63/2/60 123/3/57
|
||||||
|
f 64/1/2 63/2/60 127/3/61
|
||||||
|
f 69/1/62 35/2/5 67/3/63
|
||||||
|
f 152/1/64 112/2/65 151/3/66
|
||||||
|
f 3/1/67 7/2/68 11/3/69
|
||||||
|
f 1/1/70 33/2/1 34/3/71
|
||||||
|
f 34/1/71 35/2/5 3/3/67
|
||||||
|
f 36/1/4 4/2/72 35/3/5
|
||||||
|
f 5/1/73 4/2/72 37/3/7
|
||||||
|
f 38/1/10 6/2/74 37/3/7
|
||||||
|
f 7/1/68 6/2/74 39/3/12
|
||||||
|
f 39/1/12 40/2/13 8/3/75
|
||||||
|
f 40/1/13 41/2/15 9/3/76
|
||||||
|
f 41/1/15 42/2/18 10/3/77
|
||||||
|
f 42/1/18 43/2/20 11/3/69
|
||||||
|
f 44/1/21 12/2/78 43/3/20
|
||||||
|
f 13/1/79 12/2/78 45/3/23
|
||||||
|
f 46/1/26 14/2/80 45/3/23
|
||||||
|
f 46/1/26 47/2/28 15/3/81
|
||||||
|
f 47/1/28 48/2/29 16/3/82
|
||||||
|
f 48/1/29 49/2/31 17/3/83
|
||||||
|
f 17/1/83 49/2/31 50/3/34
|
||||||
|
f 50/1/34 51/2/36 19/3/84
|
||||||
|
f 52/1/37 20/2/85 51/3/36
|
||||||
|
f 21/1/86 20/2/85 53/3/39
|
||||||
|
f 54/1/42 22/2/87 53/3/39
|
||||||
|
f 23/1/88 22/2/87 55/3/44
|
||||||
|
f 55/1/44 56/2/45 24/3/89
|
||||||
|
f 56/1/45 57/2/47 25/3/90
|
||||||
|
f 25/1/90 57/2/47 58/3/50
|
||||||
|
f 58/1/50 59/2/52 27/3/91
|
||||||
|
f 28/1/92 27/2/91 60/3/53
|
||||||
|
f 28/1/92 60/2/53 61/3/55
|
||||||
|
f 62/1/58 30/2/93 61/3/55
|
||||||
|
f 63/1/60 31/2/94 62/3/58
|
||||||
|
f 64/1/2 33/2/1 1/3/70
|
||||||
|
f 63/1/60 64/2/2 32/3/95
|
||||||
|
f 66/1/96 68/2/97 65/3/3
|
||||||
|
f 70/1/98 69/2/62 68/3/97
|
||||||
|
f 70/1/98 72/2/99 69/3/62
|
||||||
|
f 74/1/100 73/2/8 72/3/99
|
||||||
|
f 74/1/100 76/2/101 73/3/8
|
||||||
|
f 78/1/102 77/2/11 76/3/101
|
||||||
|
f 78/1/102 80/2/103 77/3/11
|
||||||
|
f 82/1/104 81/2/16 80/3/103
|
||||||
|
f 82/1/104 84/2/105 81/3/16
|
||||||
|
f 86/1/106 85/2/19 84/3/105
|
||||||
|
f 86/1/106 88/2/107 85/3/19
|
||||||
|
f 90/1/108 89/2/24 88/3/107
|
||||||
|
f 90/1/108 92/2/109 89/3/24
|
||||||
|
f 94/1/110 93/2/27 92/3/109
|
||||||
|
f 94/1/110 96/2/111 93/3/27
|
||||||
|
f 98/1/112 97/2/32 96/3/111
|
||||||
|
f 98/1/112 100/2/113 97/3/32
|
||||||
|
f 102/1/114 101/2/35 100/3/113
|
||||||
|
f 102/1/114 104/2/115 101/3/35
|
||||||
|
f 106/1/116 105/2/40 104/3/115
|
||||||
|
f 106/1/116 108/2/117 105/3/40
|
||||||
|
f 110/1/118 109/2/43 108/3/117
|
||||||
|
f 110/1/118 112/2/65 109/3/43
|
||||||
|
f 114/1/119 113/2/48 112/3/65
|
||||||
|
f 114/1/119 116/2/120 113/3/48
|
||||||
|
f 118/1/121 117/2/51 116/3/120
|
||||||
|
f 120/1/122 119/2/54 118/3/121
|
||||||
|
f 122/1/123 121/2/56 120/3/122
|
||||||
|
f 121/1/56 122/2/123 124/3/124
|
||||||
|
f 124/1/124 126/2/125 123/3/57
|
||||||
|
f 128/1/126 127/2/61 126/3/125
|
||||||
|
f 66/1/96 65/2/3 128/3/126
|
||||||
|
f 67/1/63 34/2/71 65/3/3
|
||||||
|
f 132/1/127 148/2/128 140/3/129
|
||||||
|
f 130/1/130 68/2/97 129/3/131
|
||||||
|
f 140/1/129 141/2/132 88/3/107
|
||||||
|
f 154/1/133 155/2/134 116/3/120
|
||||||
|
f 132/1/127 133/2/135 72/3/99
|
||||||
|
f 144/1/136 96/2/111 143/3/137
|
||||||
|
f 158/1/138 124/2/124 157/3/139
|
||||||
|
f 146/1/140 147/2/141 100/3/113
|
||||||
|
f 136/1/142 80/2/103 135/3/143
|
||||||
|
f 150/1/144 108/2/117 149/3/145
|
||||||
|
f 138/1/146 139/2/147 84/3/105
|
||||||
|
f 152/1/64 153/2/148 112/3/65
|
||||||
|
f 130/1/130 131/2/149 68/3/97
|
||||||
|
f 142/1/150 92/2/109 141/3/132
|
||||||
|
f 155/1/134 156/2/151 118/3/121
|
||||||
|
f 134/1/152 76/2/101 133/3/135
|
||||||
|
f 144/1/136 145/2/153 96/3/111
|
||||||
|
f 159/1/154 126/2/125 158/3/138
|
||||||
|
f 148/1/128 104/2/115 147/3/141
|
||||||
|
f 136/1/142 137/2/155 80/3/103
|
||||||
|
f 150/1/144 151/2/66 108/3/117
|
||||||
|
f 140/1/129 88/2/107 139/3/147
|
||||||
|
f 154/1/133 116/2/120 153/3/148
|
||||||
|
f 132/1/127 72/2/99 131/3/149
|
||||||
|
f 142/1/150 143/2/137 92/3/109
|
||||||
|
f 160/1/156 129/2/131 128/3/126
|
||||||
|
f 156/1/151 157/2/139 120/3/122
|
||||||
|
f 146/1/140 100/2/113 145/3/153
|
||||||
|
f 134/1/152 135/2/143 76/3/101
|
||||||
|
f 159/1/154 160/2/156 126/3/125
|
||||||
|
f 148/1/128 149/2/145 104/3/115
|
||||||
|
f 138/1/146 84/2/105 137/3/155
|
||||||
|
f 48/1/29 95/2/30 97/3/32
|
||||||
|
f 12/1/78 44/2/21 45/3/23
|
||||||
|
f 38/1/10 37/2/7 73/3/8
|
||||||
|
f 44/1/21 87/2/22 89/3/24
|
||||||
|
f 47/1/28 46/2/26 91/3/25
|
||||||
|
f 51/1/36 101/2/35 103/3/38
|
||||||
|
f 121/1/56 119/2/54 120/3/122
|
||||||
|
f 64/1/2 127/2/61 65/3/3
|
||||||
|
f 55/1/44 109/2/43 111/3/46
|
||||||
|
f 27/1/91 31/2/94 3/3/67
|
||||||
|
f 54/1/42 53/2/39 105/3/40
|
||||||
|
f 52/1/37 103/2/38 105/3/40
|
||||||
|
f 4/1/72 36/2/4 37/3/7
|
||||||
|
f 39/1/12 77/2/11 79/3/14
|
||||||
|
f 50/1/34 49/2/31 97/3/32
|
||||||
|
f 40/1/13 79/2/14 81/3/16
|
||||||
|
f 35/1/5 34/2/71 67/3/63
|
||||||
|
f 55/1/44 54/2/42 107/3/41
|
||||||
|
f 126/1/125 124/2/124 158/3/138
|
||||||
|
f 46/1/26 45/2/23 89/3/24
|
||||||
|
f 39/1/12 38/2/10 75/3/9
|
||||||
|
f 47/1/28 93/2/27 95/3/30
|
||||||
|
f 58/1/50 57/2/47 113/3/48
|
||||||
|
f 63/1/60 62/2/58 123/3/57
|
||||||
|
f 51/1/36 50/2/34 99/3/33
|
||||||
|
f 124/1/124 122/2/123 157/3/139
|
||||||
|
f 59/1/52 58/2/50 115/3/49
|
||||||
|
f 63/1/60 125/2/59 127/3/61
|
||||||
|
f 59/1/52 117/2/51 119/3/54
|
||||||
|
f 117/1/51 115/2/49 116/3/120
|
||||||
|
f 43/1/20 42/2/18 83/3/17
|
||||||
|
f 80/1/103 79/2/14 77/3/11
|
||||||
|
f 19/1/84 15/2/81 16/3/82
|
||||||
|
f 31/1/94 27/2/91 30/3/93
|
||||||
|
f 29/1/157 30/2/93 28/3/92
|
||||||
|
f 27/1/91 24/2/89 26/3/158
|
||||||
|
f 11/1/69 7/2/68 8/3/75
|
||||||
|
f 23/1/88 19/2/84 22/3/87
|
||||||
|
f 21/1/86 22/2/87 20/3/85
|
||||||
|
f 19/1/84 16/2/82 18/3/159
|
||||||
|
f 27/1/91 23/2/88 24/3/89
|
||||||
|
f 15/1/81 11/2/69 14/3/80
|
||||||
|
f 13/1/79 14/2/80 12/3/78
|
||||||
|
f 11/1/69 8/2/75 10/3/77
|
||||||
|
f 27/1/91 3/2/67 19/3/84
|
||||||
|
f 7/1/68 4/2/72 6/3/74
|
||||||
|
f 27/1/91 19/2/84 23/3/88
|
||||||
|
f 3/1/67 32/2/95 2/3/160
|
||||||
|
f 32/1/95 1/2/70 2/3/160
|
||||||
|
f 15/1/81 19/2/84 11/3/69
|
||||||
|
f 24/1/89 25/2/90 26/3/158
|
||||||
|
f 27/1/91 59/2/52 60/3/53
|
||||||
|
f 16/1/82 17/2/83 18/3/159
|
||||||
|
f 7/1/68 3/2/67 4/3/72
|
||||||
|
f 8/1/75 9/2/76 10/3/77
|
||||||
|
f 4/1/72 5/2/73 6/3/74
|
||||||
|
f 3/1/67 11/2/69 19/3/84
|
||||||
|
f 22/1/87 19/2/84 20/3/85
|
||||||
|
f 14/1/80 11/2/69 12/3/78
|
||||||
|
f 2/1/160 34/2/71 3/3/67
|
||||||
|
f 2/1/160 1/2/70 34/3/71
|
||||||
|
f 30/1/93 27/2/91 28/3/92
|
||||||
|
f 3/1/67 31/2/94 32/3/95
|
||||||
|
f 31/1/94 30/2/93 62/3/58
|
||||||
|
f 6/1/74 5/2/73 37/3/7
|
||||||
|
f 20/1/85 52/2/37 53/3/39
|
||||||
|
f 4/1/72 3/2/67 35/3/5
|
||||||
|
f 7/1/68 39/2/12 8/3/75
|
||||||
|
f 8/1/75 40/2/13 9/3/76
|
||||||
|
f 9/1/76 41/2/15 10/3/77
|
||||||
|
f 10/1/77 42/2/18 11/3/69
|
||||||
|
f 30/1/93 29/2/157 61/3/55
|
||||||
|
f 43/1/20 85/2/19 87/3/22
|
||||||
|
f 35/1/5 69/2/62 71/3/6
|
||||||
|
f 14/1/80 46/2/26 15/3/81
|
||||||
|
f 15/1/81 47/2/28 16/3/82
|
||||||
|
f 16/1/82 48/2/29 17/3/83
|
||||||
|
f 18/1/159 17/2/83 50/3/34
|
||||||
|
f 18/1/159 50/2/34 19/3/84
|
||||||
|
f 22/1/87 21/2/86 53/3/39
|
||||||
|
f 14/1/80 13/2/79 45/3/23
|
||||||
|
f 20/1/85 19/2/84 51/3/36
|
||||||
|
f 23/1/88 55/2/44 24/3/89
|
||||||
|
f 24/1/89 56/2/45 25/3/90
|
||||||
|
f 26/1/158 25/2/90 58/3/50
|
||||||
|
f 26/1/158 58/2/50 27/3/91
|
||||||
|
f 6/1/74 38/2/10 39/3/12
|
||||||
|
f 29/1/157 28/2/92 61/3/55
|
||||||
|
f 22/1/87 54/2/42 55/3/44
|
||||||
|
f 12/1/78 11/2/69 43/3/20
|
||||||
|
f 32/1/95 64/2/2 1/3/70
|
||||||
|
f 31/1/94 63/2/60 32/3/95
|
||||||
|
f 153/1/148 114/2/119 112/3/65
|
||||||
|
f 96/1/111 94/2/110 143/3/137
|
||||||
|
f 93/1/27 91/2/25 92/3/109
|
||||||
|
f 89/1/24 87/2/22 88/3/107
|
||||||
|
f 105/1/40 103/2/38 104/3/115
|
||||||
|
f 104/1/115 103/2/38 101/3/35
|
||||||
|
f 101/1/35 99/2/33 100/3/113
|
||||||
|
f 100/1/113 99/2/33 97/3/32
|
||||||
|
f 81/1/16 79/2/14 80/3/103
|
||||||
|
f 97/1/32 95/2/30 96/3/111
|
||||||
|
f 72/1/99 71/2/6 69/3/62
|
||||||
|
f 92/1/109 91/2/25 89/3/24
|
||||||
|
f 76/1/101 75/2/9 73/3/8
|
||||||
|
f 109/1/43 107/2/41 108/3/117
|
||||||
|
f 112/1/65 111/2/46 109/3/43
|
||||||
|
f 147/1/141 102/2/114 100/3/113
|
||||||
|
f 85/1/19 83/2/17 84/3/105
|
||||||
|
f 96/1/111 95/2/30 93/3/27
|
||||||
|
f 68/1/97 66/2/96 129/3/131
|
||||||
|
f 108/1/117 107/2/41 105/3/40
|
||||||
|
f 88/1/107 86/2/106 139/3/147
|
||||||
|
f 77/1/11 75/2/9 76/3/101
|
||||||
|
f 129/1/131 66/2/96 128/3/126
|
||||||
|
f 80/1/103 78/2/102 135/3/143
|
||||||
|
f 36/1/4 71/2/6 73/3/8
|
||||||
|
f 127/1/61 125/2/59 126/3/125
|
||||||
|
f 34/1/71 33/2/1 65/3/3
|
||||||
|
f 56/1/45 111/2/46 113/3/48
|
||||||
|
f 123/1/57 121/2/56 124/3/124
|
||||||
|
f 156/1/151 120/2/122 118/3/121
|
||||||
|
f 60/1/53 119/2/54 121/3/56
|
||||||
|
f 116/1/120 115/2/49 113/3/48
|
||||||
|
f 157/1/139 122/2/123 120/3/122
|
||||||
|
f 132/1/127 131/2/149 130/3/130
|
||||||
|
f 134/1/152 133/2/135 132/3/127
|
||||||
|
f 136/1/142 135/2/143 134/3/152
|
||||||
|
f 138/1/146 137/2/155 136/3/142
|
||||||
|
f 140/1/129 139/2/147 138/3/146
|
||||||
|
f 142/1/150 141/2/132 140/3/129
|
||||||
|
f 144/1/136 143/2/137 142/3/150
|
||||||
|
f 146/1/140 145/2/153 144/3/136
|
||||||
|
f 148/1/128 147/2/141 146/3/140
|
||||||
|
f 150/1/144 149/2/145 148/3/128
|
||||||
|
f 152/1/64 151/2/66 150/3/144
|
||||||
|
f 154/1/133 153/2/148 152/3/64
|
||||||
|
f 155/1/134 154/2/133 150/3/144
|
||||||
|
f 158/1/138 157/2/139 156/3/151
|
||||||
|
f 159/1/154 155/2/134 150/3/144
|
||||||
|
f 130/1/130 129/2/131 160/3/156
|
||||||
|
f 133/1/135 74/2/100 72/3/99
|
||||||
|
f 138/1/146 136/2/142 134/3/152
|
||||||
|
f 138/1/146 134/2/152 140/3/129
|
||||||
|
f 142/1/150 148/2/128 144/3/136
|
||||||
|
f 132/1/127 130/2/130 160/3/156
|
||||||
|
f 154/1/133 152/2/64 150/3/144
|
||||||
|
f 145/1/153 98/2/112 96/3/111
|
||||||
|
f 148/1/128 146/2/140 144/3/136
|
||||||
|
f 150/1/144 148/2/128 132/3/127
|
||||||
|
f 159/1/154 158/2/138 156/3/151
|
||||||
|
f 134/1/152 132/2/127 140/3/129
|
||||||
|
f 159/1/154 150/2/144 132/3/127
|
||||||
|
f 148/1/128 142/2/150 140/3/129
|
||||||
|
f 159/1/154 132/2/127 160/3/156
|
||||||
|
f 155/1/134 159/2/154 156/3/151
|
||||||
|
f 160/1/156 128/2/126 126/3/125
|
||||||
|
f 76/1/101 74/2/100 133/3/135
|
||||||
|
f 113/1/48 111/2/46 112/3/65
|
||||||
|
f 155/1/134 118/2/121 116/3/120
|
||||||
|
f 131/1/149 70/2/98 68/3/97
|
||||||
|
f 112/1/65 110/2/118 151/3/66
|
||||||
|
f 73/1/8 71/2/6 72/3/99
|
||||||
|
f 68/1/97 67/2/63 65/3/3
|
||||||
|
f 84/1/105 83/2/17 81/3/16
|
||||||
|
f 69/1/62 67/2/63 68/3/97
|
||||||
|
f 149/1/145 106/2/116 104/3/115
|
||||||
|
f 119/1/54 117/2/51 118/3/121
|
||||||
|
f 92/1/109 90/2/108 141/3/132
|
||||||
|
f 84/1/105 82/2/104 137/3/155
|
||||||
|
f 126/1/125 125/2/59 123/3/57
|
||||||
|
f 151/1/66 110/2/118 108/3/117
|
||||||
|
f 100/1/113 98/2/112 145/3/153
|
||||||
|
f 135/1/143 78/2/102 76/3/101
|
||||||
|
f 72/1/99 70/2/98 131/3/149
|
||||||
|
f 65/1/3 127/2/61 128/3/126
|
||||||
|
f 143/1/137 94/2/110 92/3/109
|
||||||
|
f 104/1/115 102/2/114 147/3/141
|
||||||
|
f 116/1/120 114/2/119 153/3/148
|
||||||
|
f 42/1/18 41/2/15 81/3/16
|
||||||
|
f 139/1/147 86/2/106 84/3/105
|
||||||
|
f 88/1/107 87/2/22 85/3/19
|
||||||
|
f 62/1/58 61/2/55 121/3/56
|
||||||
|
f 108/1/117 106/2/116 149/3/145
|
||||||
|
f 137/1/155 82/2/104 80/3/103
|
||||||
|
f 141/1/132 90/2/108 88/3/107
|
1
data/levels/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*Backup*
|
903
data/levels/Compositions.xml
Normal file
@ -0,0 +1,903 @@
|
|||||||
|
<!-- Rotations around the three axes are given in degrees.
|
||||||
|
The objects are first rotated around the z-, then y- and then x-axis. -->
|
||||||
|
|
||||||
|
<!-- Marble: Do not change!(except for mass)-->
|
||||||
|
<composition>
|
||||||
|
<typeID>20</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>marbleSmooth.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>11.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>40</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>1.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>15.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Column -->
|
||||||
|
<composition>
|
||||||
|
<typeID>60</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>1.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Torch with Lightsource -->
|
||||||
|
<composition>
|
||||||
|
<typeID>80</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>3</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0.3</bColour>
|
||||||
|
<intensity>8.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- hinttorch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>81</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>3</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<rColour>0.2</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0</bColour>
|
||||||
|
<intensity>10.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Lightsource -->
|
||||||
|
<composition>
|
||||||
|
<typeID>85</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>1.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>1.0</gColour>
|
||||||
|
<bColour>1.0</bColour>
|
||||||
|
<intensity>4.0</intensity>
|
||||||
|
</light>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Block on 2 Pillars -->
|
||||||
|
<composition>
|
||||||
|
<typeID>100</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>2.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>10.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>3.0</xOffset>
|
||||||
|
<yOffset>2.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>10.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>1.5</xOffset>
|
||||||
|
<yOffset>4.2</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>15.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Switch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>120</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchInner.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.5</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.044</scale>
|
||||||
|
<mass>0.5</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuter.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>1.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>1.105</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>-1.105</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>1.105</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>-1.105</xOffset>
|
||||||
|
<yOffset>-1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>-2.105</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>90.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Bridge Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>140</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Bridge Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>141</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Bridge Block on Pillar-->
|
||||||
|
<composition>
|
||||||
|
<typeID>160</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Bridge Block on Pillar-->
|
||||||
|
<composition>
|
||||||
|
<typeID>161</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Bridge Block on Pillar with Torch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>163</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>21.0</yOffset>
|
||||||
|
<zOffset>-1.5</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>24</yOffset>
|
||||||
|
<zOffset>-1.5</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0.3</bColour>
|
||||||
|
<intensity>8.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Bridge Block on Pillar with torch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>164</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<xOffset>-1.5</xOffset>
|
||||||
|
<yOffset>21.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<light>
|
||||||
|
<xOffset>-1.5</xOffset>
|
||||||
|
<yOffset>24</yOffset>
|
||||||
|
<zOffset>0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>0.9</gColour>
|
||||||
|
<bColour>0.3</bColour>
|
||||||
|
<intensity>8.0</intensity>
|
||||||
|
<flameOffset>-0.5</flameOffset>
|
||||||
|
<flameHeight>1.0</flameHeight>
|
||||||
|
<flameWidth>1.0</flameWidth>
|
||||||
|
</light>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>20.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>18.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>15.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
<object>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>12.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Wall -->
|
||||||
|
<composition>
|
||||||
|
<typeID>180</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>simpleWall.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.48</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Wall (90 degrees)-->
|
||||||
|
<composition>
|
||||||
|
<typeID>181</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>simpleWall.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.48</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Light Block -->
|
||||||
|
<composition>
|
||||||
|
<typeID>200</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>5.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>1.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Gate -->
|
||||||
|
<composition>
|
||||||
|
<typeID>220</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>gate.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>90.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>100.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Rotated Gate -->
|
||||||
|
<composition>
|
||||||
|
<typeID>221</typeID>
|
||||||
|
<ignoreHeightmap>true</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>gate.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>25.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>100.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Block for Switch -->
|
||||||
|
<composition>
|
||||||
|
<typeID>240</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>true</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>movableBlock.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>5.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>2.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Brazier -->
|
||||||
|
<composition>
|
||||||
|
<typeID>245</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>brazier.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Hint -->
|
||||||
|
<composition>
|
||||||
|
<typeID>250</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>hint.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<!-- Exit -->
|
||||||
|
<composition>
|
||||||
|
<typeID>254</typeID>
|
||||||
|
<ignoreHeightmap>false</ignoreHeightmap>
|
||||||
|
<crossesChunks>false</crossesChunks>
|
||||||
|
<object>
|
||||||
|
<modelPath>exit.obj</modelPath>
|
||||||
|
<xOffset>0.0</xOffset>
|
||||||
|
<yOffset>0.1</yOffset>
|
||||||
|
<zOffset>0.0</zOffset>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<scale>1.5</scale>
|
||||||
|
<mass>0.0</mass>
|
||||||
|
</object>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Available physicTypes are Player, Box, Button, TriangleMesh and None(no physics).
|
||||||
|
dampningL should be below 1, objects that can not move are enabled by setting their mass to 0. -->
|
||||||
|
|
||||||
|
<!-- Do not change the radius, it has to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>marbleSmooth.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/marbleTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.5</diffuseFactor>
|
||||||
|
<specularFactor>0.5</specularFactor>
|
||||||
|
<shininess>3.0</shininess>
|
||||||
|
<physicType>Player</physicType>
|
||||||
|
<radius>1.0</radius>
|
||||||
|
<dampningL>0.15 </dampningL>
|
||||||
|
<dampningA>0.7</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- Do not change width height or length, they have to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>block.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/blockTexture_small.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>4</width>
|
||||||
|
<height>1.88</height>
|
||||||
|
<length>1.99</length>
|
||||||
|
<dampningL>0.8</dampningL>
|
||||||
|
<dampningA>0.9</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>column.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/columnTexture2.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.8</dampningL>
|
||||||
|
<dampningA>0.9</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>torch.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/torchTexture2.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.3</diffuseFactor>
|
||||||
|
<specularFactor>0.7</specularFactor>
|
||||||
|
<shininess>10.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.8</dampningL>
|
||||||
|
<dampningA>0.9</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- Do not change width height or length, they have to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>switchInner.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/switchInnerTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Button</physicType>
|
||||||
|
<width>1.8</width>
|
||||||
|
<height>1</height>
|
||||||
|
<length>1.8</length>
|
||||||
|
<dampningL>0.5</dampningL>
|
||||||
|
<dampningA>1.0</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- Do not change width height or length, they have to match the .obj -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>switchOuterBox</modelPath>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>2.54</width>
|
||||||
|
<height>2.54</height>
|
||||||
|
<length>0.33</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>false</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>switchOuter.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/switchOuterTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>None</physicType>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<!-- lengh may not be exact -->
|
||||||
|
<objectData>
|
||||||
|
<modelPath>simpleWall.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/simpleWallTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>1.2</width>
|
||||||
|
<height>6</height>
|
||||||
|
<length>6</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>gate.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/gateTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>1.2</width>
|
||||||
|
<height>6</height>
|
||||||
|
<length>6</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>movableBlock.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/movableBlockTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>2.0</shininess>
|
||||||
|
<physicType>Box</physicType>
|
||||||
|
<width>1.56</width>
|
||||||
|
<height>1.56</height>
|
||||||
|
<length>1.56</length>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>brazier.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/brazierTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>hint.obj</modelPath>
|
||||||
|
<texturePath>hintTexture2.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
||||||
|
|
||||||
|
<objectData>
|
||||||
|
<modelPath>exit.obj</modelPath>
|
||||||
|
<texturePath>cgtextures/exitTexture.png</texturePath>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.6</diffuseFactor>
|
||||||
|
<specularFactor>0.4</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
<physicType>TriangleMesh</physicType>
|
||||||
|
<dampningL>0.555</dampningL>
|
||||||
|
<dampningA>0.5</dampningA>
|
||||||
|
<renderable>true</renderable>
|
||||||
|
</objectData>
|
BIN
data/levels/Level1.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
data/levels/TestLevel.png
Normal file
After Width: | Height: | Size: 135 B |
244
data/levels/TestLevel.xml
Normal file
@ -0,0 +1,244 @@
|
|||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-4.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-3.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>8</idBlue>
|
||||||
|
<typeID>60</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>5.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>5.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>7</idBlue>
|
||||||
|
<typeID>245</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>4.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-6.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>6</idBlue>
|
||||||
|
<typeID>200</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-1.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-0.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>5</idBlue>
|
||||||
|
<typeID>80</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-7.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>7.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>2</idBlue>
|
||||||
|
<typeID>20</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<composition>
|
||||||
|
<scale>1.0</scale>
|
||||||
|
<xRot>0.0</xRot>
|
||||||
|
<yRot>0.0</yRot>
|
||||||
|
<zRot>0.0</zRot>
|
||||||
|
<manualPos>false</manualPos>
|
||||||
|
<xPos>-7.500000</xPos>
|
||||||
|
<yOffset>0.0</yOffset>
|
||||||
|
<zPos>-7.500000</zPos>
|
||||||
|
<idGreen>0</idGreen>
|
||||||
|
<idBlue>1</idBlue>
|
||||||
|
<typeID>40</typeID>
|
||||||
|
<trigger>
|
||||||
|
<name>-</name>
|
||||||
|
<undo>false</undo>
|
||||||
|
<xPosition>0</xPosition>
|
||||||
|
<yPosition>0</yPosition>
|
||||||
|
<zPosition>0</zPosition>
|
||||||
|
<targetIdGreen>-</targetIdGreen>
|
||||||
|
<targetIdBlue>-</targetIdBlue>
|
||||||
|
<distance>1.0</distance>
|
||||||
|
<isBiggerThan>false</isBiggerThan>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<luaScript>-</luaScript>
|
||||||
|
<toChangeIdGreen>0</toChangeIdGreen>
|
||||||
|
<toChangeIdBlue>0</toChangeIdBlue>
|
||||||
|
<toChangeObjNum>0</toChangeObjNum>
|
||||||
|
</trigger>
|
||||||
|
</composition>
|
||||||
|
|
||||||
|
<ambientLight>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>1.0</gColour>
|
||||||
|
<bColour>1.0</bColour>
|
||||||
|
</ambientLight>
|
||||||
|
|
||||||
|
<fogColourDay>
|
||||||
|
<rColour>0.57</rColour>
|
||||||
|
<gColour>0.80</gColour>
|
||||||
|
<bColour>0.98</bColour>
|
||||||
|
<alpha>1.0</alpha>
|
||||||
|
</fogColourDay>
|
||||||
|
|
||||||
|
<fogColourRise>
|
||||||
|
<rColour>0.88</rColour>
|
||||||
|
<gColour>0.38</gColour>
|
||||||
|
<bColour>0.38</bColour>
|
||||||
|
<alpha>1.0</alpha>
|
||||||
|
</fogColourRise>
|
||||||
|
|
||||||
|
<fogColourNight>
|
||||||
|
<rColour>0.09</rColour>
|
||||||
|
<gColour>0.1</gColour>
|
||||||
|
<bColour>0.24</bColour>
|
||||||
|
<alpha>1.0</alpha>
|
||||||
|
</fogColourNight>
|
||||||
|
|
||||||
|
<directionalLight>
|
||||||
|
<xOffset>-1.0</xOffset>
|
||||||
|
<yOffset>1.5</yOffset>
|
||||||
|
<zOffset>1.0</zOffset>
|
||||||
|
<rColour>1.0</rColour>
|
||||||
|
<gColour>1.0</gColour>
|
||||||
|
<bColour>0.9</bColour>
|
||||||
|
<intensity>0.2</intensity>
|
||||||
|
</directionalLight>
|
||||||
|
|
||||||
|
<terrain>
|
||||||
|
<heightmap>heightmapTestLevel.png</heightmap>
|
||||||
|
<texture>sand.png</texture>
|
||||||
|
<ambientFactor>0.1</ambientFactor>
|
||||||
|
<diffuseFactor>0.8</diffuseFactor>
|
||||||
|
<specularFactor>0.2</specularFactor>
|
||||||
|
<shininess>1.0</shininess>
|
||||||
|
</terrain>
|
||||||
|
|
||||||
|
<skydome>
|
||||||
|
<model>skydome.obj</model>
|
||||||
|
<texture>skydomeNew.png</texture>
|
||||||
|
<nightTexture>nightskydome.png</nightTexture>
|
||||||
|
</skydome>
|
||||||
|
|
||||||
|
<physics>
|
||||||
|
<friction>0.9</friction>
|
||||||
|
<strength>300.0</strength>
|
||||||
|
</physics>
|
||||||
|
|
||||||
|
<positionConstraint>
|
||||||
|
<objectNum>0</objectNum>
|
||||||
|
<xPosition>0.0</xPosition>
|
||||||
|
<yPosition>0.0</yPosition>
|
||||||
|
<zPosition>0.0</zPosition>
|
||||||
|
<strength>100.0</strength>
|
||||||
|
</positionConstraint>
|
BIN
data/levels/heightmapLvl1.png
Normal file
After Width: | Height: | Size: 33 KiB |
BIN
data/levels/heightmapTestLevel.png
Normal file
After Width: | Height: | Size: 165 B |
39
data/levels/scripts/Template.lua
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredSCRIPTNAME == nil) then
|
||||||
|
global.triggeredSCRIPTNAME = false
|
||||||
|
end
|
||||||
|
if(global.triggeredSCRIPTNAMEUndo == nil) then
|
||||||
|
global.triggeredSCRIPTNAMEUndo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredSCRIPTNAME == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
--enter the scripts code here and replace all occurences of SCRIPTNAME with the name of the script.
|
||||||
|
|
||||||
|
global.triggeredSCRIPTNAME = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("SCRIPTNAME")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredSCRIPTNAMEUndo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
--enter the scripts undo code here
|
||||||
|
|
||||||
|
global.triggeredSCRIPTNAMEUndo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("SCRIPTNAMEUndo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
17
data/levels/scripts/firstCheckpoint.lua
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
local global = require("global")
|
||||||
|
if(global.triggeredFristCheckpoint == nil) then
|
||||||
|
global.triggeredFristCheckpoint = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredFristCheckpoint == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
global.triggeredFristCheckpoint = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("firstCheckpoint")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
3
data/levels/scripts/global.lua
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
--global variable space
|
||||||
|
local global = {}
|
||||||
|
return global
|
4
data/levels/scripts/init.lua
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
-- Inits search path for require.
|
||||||
|
-- This file needs to stay next to the other scripts.
|
||||||
|
|
||||||
|
package.path = debug.getinfo(1,"S").source:match[[^@?(.*[\/])[^\/]-$]] .."?.lua;".. package.path
|
51
data/levels/scripts/openFirstDoor.lua
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenFirstDoor == nil) then
|
||||||
|
global.triggeredOpenFirstDoor = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenFirstDoorUndo == nil) then
|
||||||
|
global.triggeredOpenFirstDoorUndo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenFirstDoor == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = 17.5
|
||||||
|
local yPos = 33.0
|
||||||
|
local zPos = 81.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoorUndo = false
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoor = true
|
||||||
|
if (printDebug) then
|
||||||
|
print("openFirstDoor")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenFirstDoorUndo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = 17.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 81.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoor = false
|
||||||
|
|
||||||
|
global.triggeredOpenFirstDoorUndo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openFirstDoorUndo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
58
data/levels/scripts/openSecondDoor1.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor1 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor1Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor1Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor1 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 0) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor1 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
global.triggeredOpenSecondDoor1Undo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -6.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 54.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor1")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor1Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor1Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor1Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
58
data/levels/scripts/openSecondDoor2.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor2 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor2Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor2Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor2 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 1) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor2 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
global.triggeredOpenSecondDoor2Undo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -53.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 26.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor2")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor2Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor2Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor2Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
58
data/levels/scripts/openSecondDoor3.lua
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor3 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor3Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor3Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor3 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 2) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor3 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
global.triggeredOpenSecondDoor3Undo = false
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -6.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 26.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor3")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor3Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor3Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor3Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
67
data/levels/scripts/openSecondDoor4.lua
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenSecondDoor4 == nil) then
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenSecondDoor4Undo == nil) then
|
||||||
|
global.triggeredOpenSecondDoor4Undo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor4 == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if(global.openSecondDoorCounter == nil) then
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
end
|
||||||
|
if(global.openSecondDoorCounter == 3) then
|
||||||
|
global.openSecondDoorCounter = global.openSecondDoorCounter + 1
|
||||||
|
end
|
||||||
|
global.triggeredOpenSecondDoor4 = true
|
||||||
|
|
||||||
|
if(global.triggeredOpenSecondDoor1 == true and global.triggeredOpenSecondDoor2 == true and global.triggeredOpenSecondDoor3 == true and global.triggeredOpenSecondDoor4 == true) then
|
||||||
|
if(global.openSecondDoorCounter == 4) then
|
||||||
|
local strength = 100
|
||||||
|
local xPos = -81.5
|
||||||
|
local yPos = 33
|
||||||
|
local zPos = 4.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
global.openedSecondDoor = true
|
||||||
|
else
|
||||||
|
global.triggeredOpenSecondDoor4Undo = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local xPos = -53.5
|
||||||
|
local yPos = 25.0
|
||||||
|
local zPos = 54.5
|
||||||
|
level:preloadLightPosition(xPos, yPos, zPos)
|
||||||
|
level:addLightByParameters(0.2, 0.9, 0.0, 4.0, -2.0, 1.3, 2.0)
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor4")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenSecondDoor4Undo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
global.openSecondDoorCounter = 0
|
||||||
|
global.triggeredOpenSecondDoor1 = false
|
||||||
|
global.triggeredOpenSecondDoor2 = false
|
||||||
|
global.triggeredOpenSecondDoor3 = false
|
||||||
|
global.triggeredOpenSecondDoor4 = false
|
||||||
|
level:deleteFourLights()
|
||||||
|
|
||||||
|
global.triggeredOpenSecondDoor4Undo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openSecondDoor4Undo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
51
data/levels/scripts/openThirdDoor.lua
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredOpenThirdDoor == nil) then
|
||||||
|
global.triggeredOpenThirdDoor = false
|
||||||
|
end
|
||||||
|
if(global.triggeredOpenThirdDoorUndo == nil) then
|
||||||
|
global.triggeredOpenThirdDoorUndo = true
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenThirdDoor == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = -172.5
|
||||||
|
local yPos = 33
|
||||||
|
local zPos = 58.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoorUndo = false
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoor = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openThirdDoor")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function triggerUndo(objectToChange, printDebug)
|
||||||
|
if(global.triggeredOpenThirdDoorUndo == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
local strength = 100
|
||||||
|
local xPos = -172.5
|
||||||
|
local yPos = 25
|
||||||
|
local zPos = 58.5
|
||||||
|
level:moveObject(objectToChange, strength, xPos, yPos, zPos)
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoor = false
|
||||||
|
|
||||||
|
global.triggeredOpenThirdDoorUndo = true
|
||||||
|
if(printDebug) then
|
||||||
|
print("openThirdDoorUndo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
21
data/levels/scripts/resetBox.lua
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
local global = require( "global" )
|
||||||
|
if(global.triggeredResetBox == nil) then
|
||||||
|
global.triggeredResetBox = false
|
||||||
|
end
|
||||||
|
|
||||||
|
function trigger(objectToChange, printDebug)
|
||||||
|
if(global.triggeredResetBox == false) then
|
||||||
|
if(not level) then
|
||||||
|
print("No level found in Lua!")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local x = -101.5
|
||||||
|
local y = 22.5
|
||||||
|
local z =8.5
|
||||||
|
level:forceMove(x, y, z, objectToChange)
|
||||||
|
|
||||||
|
if(printDebug) then
|
||||||
|
print("reset box")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|