Compare commits
648 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
9fbc4613ac | ||
![]() |
13bb7b1209 | ||
![]() |
6933030bcf | ||
![]() |
39f5aad915 | ||
![]() |
64dcfeec09 | ||
![]() |
aeea9c9f57 | ||
![]() |
0d0ce7d44d | ||
![]() |
525ea4b042 | ||
![]() |
7dbd836073 | ||
![]() |
a6f6729b88 | ||
![]() |
d4e290cfed | ||
![]() |
17ea67c2a9 | ||
![]() |
cf436333b9 | ||
![]() |
a77aa15c5e | ||
![]() |
cef7acc1c4 | ||
![]() |
91a84eb000 | ||
![]() |
a09221e4a3 | ||
![]() |
99452c2de0 | ||
![]() |
14244a4561 | ||
![]() |
1c47bbfb36 | ||
![]() |
7e16ea1aa3 | ||
![]() |
16e4df182d | ||
![]() |
1d81690bd5 | ||
![]() |
4980db392b | ||
![]() |
2a99dc6e8a | ||
![]() |
d4898c56f8 | ||
![]() |
dee9442eb6 | ||
![]() |
1bb74af465 | ||
![]() |
f990dacf65 | ||
![]() |
4630ff9d07 | ||
![]() |
06c4377141 | ||
![]() |
4e6fb68e39 | ||
![]() |
e307505d03 | ||
![]() |
f7cfd21c48 | ||
![]() |
e68e9d27bb | ||
![]() |
30a8c5be34 | ||
![]() |
3265ac5b6d | ||
![]() |
6a7d1eaf2e | ||
![]() |
cd587ba8da | ||
![]() |
35f640c1ba | ||
![]() |
2f88ab5178 | ||
![]() |
18f9b66615 | ||
![]() |
ae49eb02c4 | ||
![]() |
e215654bb3 | ||
![]() |
3feae8c257 | ||
![]() |
6f4abd3eb9 | ||
![]() |
6ea781533b | ||
![]() |
456fdc0872 | ||
![]() |
f76a531143 | ||
![]() |
151271c250 | ||
![]() |
22dea528e0 | ||
![]() |
045f7194b5 | ||
![]() |
51007bc5cd | ||
![]() |
612439a88d | ||
![]() |
f145ecd7b3 | ||
![]() |
cf7a39537d | ||
![]() |
23736e8981 | ||
![]() |
d633b032f9 | ||
![]() |
13050967c7 | ||
![]() |
eeaab6d12f | ||
![]() |
c728044260 | ||
![]() |
89a80c685f | ||
![]() |
ec7673d861 | ||
![]() |
f50940ae66 | ||
![]() |
664db415c7 | ||
![]() |
5810972a2d | ||
![]() |
4d5fd7d3d4 | ||
![]() |
f12c9c9ad8 | ||
![]() |
a144258f8d | ||
![]() |
6907cc3847 | ||
![]() |
5f367f7278 | ||
![]() |
73b7523dc6 | ||
![]() |
8eac4b616f | ||
![]() |
ea2a05cfff | ||
![]() |
d307be6d0e | ||
![]() |
a7aa1f3940 | ||
![]() |
ef879413d9 | ||
![]() |
e3eacb53ee | ||
![]() |
3db6edb1f8 | ||
![]() |
3636d99b47 | ||
![]() |
56caeaaf08 | ||
![]() |
a507f7a3ee | ||
![]() |
316e01e7f8 | ||
![]() |
134efa8ec3 | ||
![]() |
85b75b646f | ||
![]() |
09b41fa719 | ||
![]() |
f970352faa | ||
![]() |
76305ae77c | ||
![]() |
6c995d6d20 | ||
![]() |
3d14c9e555 | ||
![]() |
f8fa933a02 | ||
![]() |
fff2edc1c1 | ||
![]() |
190ad686f5 | ||
![]() |
f4b5d57c61 | ||
![]() |
fdec778d04 | ||
![]() |
c227afd8d7 | ||
![]() |
2f91fecd60 | ||
![]() |
406f98245c | ||
![]() |
eaf76105a1 | ||
![]() |
b7e0e7d54d | ||
![]() |
8f109d5a27 | ||
![]() |
907f319ce7 | ||
![]() |
146b69f91e | ||
![]() |
51d23e30e5 | ||
![]() |
a87ba9db6f | ||
![]() |
1f593d576d | ||
![]() |
346003f377 | ||
![]() |
1bd45ec96b | ||
![]() |
c078ed1e55 | ||
![]() |
4f1f04242b | ||
![]() |
976826b9ab | ||
![]() |
b4f2082454 | ||
![]() |
b4318f63d3 | ||
![]() |
6e1140fa0c | ||
![]() |
2322b3dac1 | ||
![]() |
91914c80f7 | ||
![]() |
cc127ff5ba | ||
![]() |
0b3d2be1a2 | ||
![]() |
a44bf9d6d2 | ||
![]() |
a6207f27a3 | ||
![]() |
92664eadc5 | ||
![]() |
edcbd5c9a1 | ||
![]() |
96d8066983 | ||
![]() |
0cf6583bcc | ||
![]() |
063f76750f | ||
![]() |
fef0e68dd3 | ||
![]() |
e40ffbba74 | ||
![]() |
38f58ded69 | ||
![]() |
51c60de26a | ||
![]() |
e977cd2d23 | ||
![]() |
6efdabdb36 | ||
![]() |
8709de1e3e | ||
![]() |
a29332e4dc | ||
![]() |
c82c125bb4 | ||
![]() |
6528a12671 | ||
![]() |
bb3149817d | ||
![]() |
fb805cebf1 | ||
![]() |
0702d0188a | ||
![]() |
185cbbc594 | ||
![]() |
04c4c9ed50 | ||
![]() |
dc445736ef | ||
![]() |
06ea17e7e8 | ||
![]() |
1d2ed3fe9d | ||
![]() |
6e953004f8 | ||
![]() |
1b4d1582d4 | ||
![]() |
90bd58b14a | ||
![]() |
d78cecd34f | ||
![]() |
91771682f0 | ||
![]() |
da5669ab70 | ||
![]() |
afd7ac7c92 | ||
![]() |
e8b1509fc2 | ||
![]() |
db1923c38c | ||
![]() |
86789ac491 | ||
![]() |
8f028f778d | ||
![]() |
2a3d998e7c | ||
![]() |
3969561e8d | ||
![]() |
0118b740fa | ||
![]() |
92a6e4819e | ||
![]() |
2afdcfdfa0 | ||
![]() |
a488f13aa6 | ||
![]() |
5ef46253b1 | ||
![]() |
4a4dbe850c | ||
![]() |
37c643f7bc | ||
![]() |
2e67ec83fd | ||
![]() |
de1a7c67b9 | ||
![]() |
eaba616f71 | ||
![]() |
21cf59ff5a | ||
![]() |
182c25f721 | ||
![]() |
6002dc26dc | ||
![]() |
e30e3cd705 | ||
![]() |
88f0bbca8b | ||
![]() |
6026bb8ff4 | ||
![]() |
d57d186218 | ||
![]() |
834fed0b64 | ||
![]() |
ad7544c7a3 | ||
![]() |
0bf05afead | ||
![]() |
f1bb8b5149 | ||
![]() |
5d34d7a0b0 | ||
![]() |
7b8e1c70ba | ||
![]() |
ba3fd0ebff | ||
![]() |
01ee88cdc7 | ||
![]() |
cd34cbe934 | ||
![]() |
276850b306 | ||
![]() |
883129f379 | ||
![]() |
dea86d7c33 | ||
![]() |
3d89bd50fc | ||
![]() |
54c94f62a4 | ||
![]() |
b9d71b0d9c | ||
![]() |
e5631383dd | ||
![]() |
8dc3bd3831 | ||
![]() |
cdc3e3ed90 | ||
![]() |
5281cd54cc | ||
![]() |
be66e670e9 | ||
![]() |
ee9a3d181d | ||
![]() |
a81170d934 | ||
![]() |
4825313b15 | ||
![]() |
90e1a33829 | ||
![]() |
7ad075cb59 | ||
![]() |
fd67843d0d | ||
![]() |
0b9771815b | ||
![]() |
d01a80c7b9 | ||
![]() |
3f005449ad | ||
![]() |
10e7a11a34 | ||
![]() |
65b02a7460 | ||
![]() |
0b28b0d15a | ||
![]() |
4e32b64bc6 | ||
![]() |
d7509cf7c7 | ||
![]() |
78ec0fd201 | ||
![]() |
e982f6218b | ||
![]() |
4dae5dd567 | ||
![]() |
9f81038f1d | ||
![]() |
40fcb668c4 | ||
![]() |
96afbeb931 | ||
![]() |
1ed005a472 | ||
![]() |
b9abd568d0 | ||
![]() |
6ca3a08dd8 | ||
![]() |
ccf75c63ad | ||
![]() |
f616075508 | ||
![]() |
880ccad7f5 | ||
![]() |
7d9774c01d | ||
![]() |
50b493ab2c | ||
![]() |
66ef1e0abf | ||
![]() |
ae93430539 | ||
![]() |
42022290b8 | ||
![]() |
5c9279c6df | ||
![]() |
69b2a41caa | ||
![]() |
b6d92d69bc | ||
![]() |
940ea8ba19 | ||
![]() |
ea5d92a289 | ||
![]() |
9631bc0c32 | ||
![]() |
7c14f9dd39 | ||
![]() |
59b9373974 | ||
![]() |
ab9403bece | ||
![]() |
7e23652eef | ||
![]() |
6badf722c0 | ||
![]() |
d20b5a0fbb | ||
![]() |
ba791eddcb | ||
![]() |
9a532a19db | ||
![]() |
3b75fd6df4 | ||
![]() |
d6f3b2776e | ||
![]() |
dba2d55193 | ||
![]() |
7cae68c5b8 | ||
![]() |
11c96dbef1 | ||
![]() |
46fff2dec4 | ||
![]() |
72df404d7f | ||
![]() |
cdbd3c515d | ||
![]() |
b0e29bab5b | ||
![]() |
70fada11e7 | ||
![]() |
626651ec51 | ||
![]() |
a47963e77f | ||
![]() |
179183f414 | ||
![]() |
67b7a3a060 | ||
![]() |
63dfc887cc | ||
![]() |
b537c36643 | ||
![]() |
146ed26eed | ||
![]() |
d971a4eb6a | ||
![]() |
11ac1be195 | ||
![]() |
f1509cf7b8 | ||
![]() |
612ea7f067 | ||
![]() |
fa3399f7d2 | ||
![]() |
296a2ae345 | ||
![]() |
0c7c841aab | ||
![]() |
ce7b0bfe85 | ||
![]() |
affdbbead8 | ||
![]() |
6ac34ee7e3 | ||
![]() |
e07b9ae942 | ||
![]() |
ac57c1e25a | ||
![]() |
3f3b619cd2 | ||
![]() |
6a92872fd0 | ||
![]() |
be38240eee | ||
![]() |
1bf86461f0 | ||
![]() |
2ff461f3b1 | ||
![]() |
e88701df92 | ||
![]() |
5aa30efa52 | ||
![]() |
0ac9f8720b | ||
![]() |
82684041ff | ||
![]() |
85867a53a9 | ||
![]() |
0e21c757d2 | ||
![]() |
cc4e48d82f | ||
![]() |
fa1861da27 | ||
![]() |
3533608cb0 | ||
![]() |
d22a183078 | ||
![]() |
771a2196ea | ||
![]() |
60ada8d94f | ||
![]() |
ee868546d3 | ||
![]() |
526fdd852f | ||
![]() |
cc84aa5478 | ||
![]() |
8c613ed6a3 | ||
![]() |
1e2cf210b5 | ||
![]() |
422132d8c7 | ||
![]() |
4830e6b5bc | ||
![]() |
fc2fe9e1eb | ||
![]() |
682efcbfdc | ||
![]() |
e4c6f2dd0c | ||
![]() |
cbc0a6bf2b | ||
![]() |
982fd4cc67 | ||
![]() |
f33f361e45 | ||
![]() |
be72d44a4d | ||
![]() |
7e9a2e40aa | ||
![]() |
bc5349fd26 | ||
![]() |
9131b6a143 | ||
![]() |
6fc8d1cf97 | ||
![]() |
51c172f4d5 | ||
![]() |
116e7cfe25 | ||
![]() |
d70204b24c | ||
![]() |
edae3892ca | ||
![]() |
b3b39ab468 | ||
![]() |
4699e161e4 | ||
![]() |
be3ae5802d | ||
![]() |
097508829a | ||
![]() |
1eac74c12c | ||
![]() |
af8d2fc5d8 | ||
![]() |
2ae5f01836 | ||
![]() |
a1fa6dad15 | ||
![]() |
7d8178c2e5 | ||
![]() |
70a35c11c2 | ||
![]() |
d7c897b488 | ||
![]() |
d12924daaf | ||
![]() |
2d3cdcdde8 | ||
![]() |
5ab601e8e6 | ||
![]() |
5c66a37406 | ||
![]() |
cfa161f763 | ||
![]() |
84c8efffa3 | ||
![]() |
a4e2a3e8f1 | ||
![]() |
73984d7cfc | ||
![]() |
327a3b05b8 | ||
![]() |
a9e5790d78 | ||
![]() |
a544666ea4 | ||
![]() |
d0ca9cac54 | ||
![]() |
d0910e3e6f | ||
![]() |
4018353d50 | ||
![]() |
6388e6a914 | ||
![]() |
4f144f7532 | ||
![]() |
82a7c3048f | ||
![]() |
8daa0354e1 | ||
![]() |
f26357c9b8 | ||
![]() |
4110c38c10 | ||
![]() |
084f8fbe72 | ||
![]() |
db074c7f57 | ||
![]() |
5b1fed4d9e | ||
![]() |
447106b7fb | ||
![]() |
91cfff6e84 | ||
![]() |
db3a107e0f | ||
![]() |
23dab62ad5 | ||
![]() |
3dd5c0f997 | ||
![]() |
517ef5fc57 | ||
![]() |
1d539968bb | ||
![]() |
4879bfe1b1 | ||
![]() |
e83d2a2b48 | ||
![]() |
cd84f6c43c | ||
![]() |
7bcc3dc6bb | ||
![]() |
1a995ba55c | ||
![]() |
622fcdcc62 | ||
![]() |
b933ab24dd | ||
![]() |
7fe4a5c5ff | ||
![]() |
3b36e16256 | ||
![]() |
b620737b18 | ||
![]() |
bcb9b03eab | ||
![]() |
e20f66909e | ||
![]() |
667d0a1f4a | ||
![]() |
de9d6bd103 | ||
![]() |
ba625133f1 | ||
![]() |
44ce216894 | ||
![]() |
0bcf3475b0 | ||
![]() |
09b35c9dd8 | ||
![]() |
0123128206 | ||
![]() |
7a728d370d | ||
![]() |
6bb426ecf6 | ||
![]() |
459b395ee9 | ||
![]() |
943401d8bf | ||
![]() |
020348e3b0 | ||
![]() |
347ee2a74e | ||
![]() |
c7cd582152 | ||
![]() |
6625e3fd00 | ||
![]() |
1710aacb17 | ||
![]() |
c88f7e53c0 | ||
![]() |
4c62c8c046 | ||
![]() |
ab2a347f97 | ||
![]() |
2a90e9bd5e | ||
![]() |
08a9a856a7 | ||
![]() |
ad2e85be49 | ||
![]() |
71f6cd529f | ||
![]() |
70c804e34a | ||
![]() |
8d92dd818e | ||
![]() |
7af76081d0 | ||
![]() |
3e31081e88 | ||
![]() |
c5b5819edf | ||
![]() |
6820a3eb10 | ||
![]() |
727b34df75 | ||
![]() |
bdb5461847 | ||
![]() |
c41537bcac | ||
![]() |
cd05c57e20 | ||
![]() |
c432378c78 | ||
![]() |
b650ba33b1 | ||
![]() |
f67206940e | ||
![]() |
bb69871c93 | ||
![]() |
6abfa19dd8 | ||
![]() |
f8cbd788a1 | ||
![]() |
5516c85f1d | ||
![]() |
dfc4f524fc | ||
![]() |
0b9728030a | ||
![]() |
8aeb7bfacb | ||
![]() |
966105fcc4 | ||
![]() |
51a6c935d9 | ||
![]() |
0d34568afc | ||
![]() |
b68d24e8e4 | ||
![]() |
13d5069bd3 | ||
![]() |
01372c9589 | ||
![]() |
e7498fd8f3 | ||
![]() |
846eceabdf | ||
![]() |
64692e405e | ||
![]() |
1adb4febb1 | ||
![]() |
ff24bf7af6 | ||
![]() |
d705f7503a | ||
![]() |
61b01aa1a1 | ||
![]() |
0296162cda | ||
![]() |
c11ffca94a | ||
![]() |
2fce1fc16f | ||
![]() |
2a3657abef | ||
![]() |
da4dc223f7 | ||
![]() |
eeb0dc8a63 | ||
![]() |
f6f56d77a0 | ||
![]() |
749c383fd7 | ||
![]() |
98c822bfb4 | ||
![]() |
2ed48d302d | ||
![]() |
7e7e93b94c | ||
![]() |
848df5aa5b | ||
![]() |
7a6f3ffe7c | ||
![]() |
21012c3445 | ||
![]() |
5485b28b19 | ||
![]() |
d313f13475 | ||
![]() |
a4e88bd504 | ||
![]() |
f446a75fd8 | ||
![]() |
e64bb8a6f7 | ||
![]() |
1cd4226427 | ||
![]() |
817fba1114 | ||
![]() |
37a0c3c919 | ||
![]() |
fc4b12803d | ||
![]() |
51f09d1bb6 | ||
![]() |
8ce9afff6b | ||
![]() |
84711a25c3 | ||
![]() |
d33042cece | ||
![]() |
719032f91d | ||
![]() |
73c0bf56c8 | ||
![]() |
acd8d54c5e | ||
![]() |
99b0c8345c | ||
![]() |
c97fea1a9e | ||
![]() |
cd7457eba8 | ||
![]() |
c9a0cc9afd | ||
![]() |
0f990cc913 | ||
![]() |
656921b9c8 | ||
![]() |
246bde6dec | ||
![]() |
d54eadf39d | ||
![]() |
3a2f6a2ac7 | ||
![]() |
feb243d2f7 | ||
![]() |
aea43b96d5 | ||
![]() |
64f077bcb2 | ||
![]() |
9e5893883f | ||
![]() |
99681bb89b | ||
![]() |
13dcc9a1bd | ||
![]() |
7eb96d97af | ||
![]() |
8e8b49f27d | ||
![]() |
226f67f114 | ||
![]() |
0c2600ccf4 | ||
![]() |
d3d37afea6 | ||
![]() |
507c23f401 | ||
![]() |
961513f81b | ||
![]() |
de45e12245 | ||
![]() |
746bdd0114 | ||
![]() |
8a0d0d332d | ||
![]() |
40be4153c2 | ||
![]() |
9bae415530 | ||
![]() |
fad17d7901 | ||
![]() |
35f857060c | ||
![]() |
90b8854ecf | ||
![]() |
cbb79a2d52 | ||
![]() |
116411a300 | ||
![]() |
7f3ef4002d | ||
![]() |
7ad5358451 | ||
![]() |
acd08be06a | ||
![]() |
12071e8645 | ||
![]() |
9aad6a89df | ||
![]() |
927632cd0f | ||
![]() |
f44d2ec219 | ||
![]() |
1006cf3fcb | ||
![]() |
fd8b6ce4ba | ||
![]() |
2dac7b12bb | ||
![]() |
cab91ebb8b | ||
![]() |
95709fbd4d | ||
![]() |
72a5d32979 | ||
![]() |
dca642ebb1 | ||
![]() |
d1b486f3cf | ||
![]() |
35c7328a48 | ||
![]() |
e68e814853 | ||
![]() |
117722621a | ||
![]() |
ce1c1c3cea | ||
![]() |
18626964eb | ||
![]() |
f2f40a4275 | ||
![]() |
77e4a1a614 | ||
![]() |
bec51c705b | ||
![]() |
3df427fb7c | ||
![]() |
7a6d549f53 | ||
![]() |
34981bd794 | ||
![]() |
c499817bed | ||
![]() |
f1be2948cf | ||
![]() |
976ea58f6b | ||
![]() |
12323965e0 | ||
![]() |
804e8c8718 | ||
![]() |
a549f220cb | ||
![]() |
452a4ec616 | ||
![]() |
1af2bb6023 | ||
![]() |
21dcb391b4 | ||
![]() |
8602bbfa51 | ||
![]() |
99e4c394fe | ||
![]() |
dc85bbacea | ||
![]() |
b24060f8d0 | ||
![]() |
40ba9526c4 | ||
![]() |
12106192b9 | ||
![]() |
d306c8f3fd | ||
![]() |
57c1b66a25 | ||
![]() |
54b6a7f295 | ||
![]() |
6a74d8c75f | ||
![]() |
e444e80493 | ||
![]() |
b78e8a46ec | ||
![]() |
42aed41cfc | ||
![]() |
9d970fb0ce | ||
![]() |
8da557443f | ||
![]() |
010759bdc2 | ||
![]() |
eb9c265ec1 | ||
![]() |
626a54b78f | ||
![]() |
5f0f3327c3 | ||
![]() |
6c83d655ea | ||
![]() |
f648d61f54 | ||
![]() |
7fc0742dfd | ||
![]() |
f9e7455e12 | ||
![]() |
9acfea02db | ||
![]() |
1630b82d63 | ||
![]() |
0121ce489b | ||
![]() |
35b14bb58a | ||
![]() |
4605ac8688 | ||
![]() |
b707e5acb8 | ||
![]() |
a75b87d69d | ||
![]() |
b8322398f3 | ||
![]() |
6f8ce3a133 | ||
![]() |
4573a9db1e | ||
![]() |
42f6dc9a76 | ||
![]() |
a48c3aef38 | ||
![]() |
760b06dc47 | ||
![]() |
718f204ebb | ||
![]() |
5688e21d0a | ||
![]() |
21238c8cb3 | ||
![]() |
a4ee365eb8 | ||
![]() |
3c24bb047f | ||
![]() |
f5acc4c9b3 | ||
![]() |
97ef2d5c94 | ||
![]() |
877679c726 | ||
![]() |
fff64c0ec9 | ||
![]() |
7d81821040 | ||
![]() |
b8e3164aa6 | ||
![]() |
871f6ade67 | ||
![]() |
dcae745626 | ||
![]() |
156fcaec8a | ||
![]() |
d65bc5c61f | ||
![]() |
989f4b2e4e | ||
![]() |
40059d4270 | ||
![]() |
56967479de | ||
![]() |
af0a3ca3eb | ||
![]() |
5a5b1d6eff | ||
![]() |
98b5a66ad0 | ||
![]() |
01196c6542 | ||
![]() |
002bfb06d0 | ||
![]() |
ad868362fe | ||
![]() |
b059c3f3b4 | ||
![]() |
508dd80c60 | ||
![]() |
1f022e860d | ||
![]() |
fe9252d3f9 | ||
![]() |
4706990730 | ||
![]() |
e22cbbeabd | ||
![]() |
71f0d25b77 | ||
![]() |
91aa2ec604 | ||
![]() |
5dc0413f48 | ||
![]() |
7ff0bc3fa0 | ||
![]() |
951f3f54af | ||
![]() |
7d991c6823 | ||
![]() |
549614adbb | ||
![]() |
f4053c18a6 | ||
![]() |
b492cc72c4 | ||
![]() |
2d6de6e16a | ||
![]() |
95afd2c5b6 | ||
![]() |
693eac1916 | ||
![]() |
780a022029 | ||
![]() |
1e4f622b5c | ||
![]() |
1fc1863e5b | ||
![]() |
476f6da7ec | ||
![]() |
828e16ac5b | ||
![]() |
33ff92681e | ||
![]() |
20afa9201d | ||
![]() |
764443d31f | ||
![]() |
539f68c013 | ||
![]() |
078669bf55 | ||
![]() |
3eb2a86b23 | ||
![]() |
10873c559d | ||
![]() |
34a902dc11 | ||
![]() |
e1c56f1c71 | ||
![]() |
02891a777b | ||
![]() |
18c5a230a3 | ||
![]() |
e95ae97c35 | ||
![]() |
db69c83a58 | ||
![]() |
cd9ae7ca40 | ||
![]() |
04a699d3e9 | ||
![]() |
e4fab74a32 | ||
![]() |
63cb853d72 | ||
![]() |
2a95765fd9 | ||
![]() |
f4a603217c | ||
![]() |
ee0ad9d346 | ||
![]() |
e1e6ab0d6d | ||
![]() |
05e8dc998b | ||
![]() |
66f67e7694 | ||
![]() |
ade4c5b4f5 | ||
![]() |
5b22ed1d45 | ||
![]() |
8462eefb7d | ||
![]() |
46e6ecd72a | ||
![]() |
08def0ebbf | ||
![]() |
9a0e138407 | ||
![]() |
3a982afea7 | ||
![]() |
ba5ccf72ef | ||
![]() |
5375647001 | ||
![]() |
02a5fb07a3 | ||
![]() |
327eba95a6 | ||
![]() |
6b88bae850 | ||
![]() |
5e534aa414 | ||
![]() |
faf4baffc5 | ||
![]() |
cf2100a626 | ||
![]() |
0b8f72c572 | ||
![]() |
4fd7ae71f8 | ||
![]() |
656b3bf3eb | ||
![]() |
18eb1b1cf4 | ||
![]() |
9a246686d5 | ||
![]() |
2c435388a7 | ||
![]() |
1efd19ee82 | ||
![]() |
f4dc2d6983 | ||
![]() |
64bfdf165f | ||
![]() |
ef3e145f42 | ||
![]() |
3b221ae54e | ||
![]() |
00928414a4 | ||
![]() |
0202e7bab2 | ||
![]() |
7c2264a9b9 | ||
![]() |
a0246dd33e |
9
.gitignore
vendored
@@ -1,11 +1,11 @@
|
||||
/Core/GDCore/Tools/VersionPriv.h
|
||||
/docs/GDJS Runtime Documentation
|
||||
/docs/GDJS Documentation
|
||||
/docs/GDCpp Documentation
|
||||
/docs/GDCore Documentation
|
||||
/ExtLibs/boost
|
||||
/ExtLibs/SFML
|
||||
/ExtLibs/wxwidgets
|
||||
/ExtLibs/wxWidgets
|
||||
/ExtLibs/SFML
|
||||
/ExtLibs/*.7z
|
||||
/scripts/Repository keys
|
||||
/scripts/logs/*.txt
|
||||
@@ -50,11 +50,13 @@ Binaries/Packaging/logs
|
||||
!/Binaries/Output/Release_Linux/CppPlatform/
|
||||
/Binaries/**/MinGW32
|
||||
/Binaries/**/CppPlatform/Runtime
|
||||
/Binaries/**/CppPlatform/Sources
|
||||
/Binaries/**/CppPlatform/include
|
||||
/Binaries/**/CppPlatform/Extensions/include
|
||||
/Binaries/**/JsPlatform/Runtime
|
||||
/Binaries/**/JsPlatform/*.dll
|
||||
/Binaries/**/JsPlatform/*.dll.a
|
||||
/Binaries/Output/Release_Windows/newIDE
|
||||
*.autosave
|
||||
/Binaries/Output/libGD.js/Release
|
||||
/Binaries/Output/libGD.js/Debug
|
||||
@@ -69,6 +71,9 @@ Binaries/Packaging/logs
|
||||
!/Binaries/Output/Release_Windows/locale/msgfmt.exe
|
||||
!/ExtLibs/curl.exe
|
||||
!/ExtLibs/7za.exe
|
||||
!/ExtLibs/SFML/extlibs/**/*.dll
|
||||
!/ExtLibs/SFML/extlibs/**/*.so
|
||||
!/ExtLibs/SFML/extlibs/**/*.a
|
||||
**/.DS_Store
|
||||
**/node_modules/
|
||||
.idea
|
||||
|
@@ -4,6 +4,9 @@ compiler:
|
||||
- gcc
|
||||
- clang
|
||||
|
||||
git:
|
||||
depth: 999999
|
||||
|
||||
env:
|
||||
global:
|
||||
- GCC_VERSION="4.8"
|
||||
|
After Width: | Height: | Size: 308 B |
After Width: | Height: | Size: 226 B |
After Width: | Height: | Size: 303 B |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.8 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 15 KiB |
@@ -55,7 +55,7 @@
|
||||
<resource alwaysLoaded="false" file="mur 6.png" kind="image" name="mur 6.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="mur 7.png" kind="image" name="mur 7.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="mur 8.png" kind="image" name="mur 8.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="lumière.png" kind="image" name="lumière.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="lumiere.png" kind="image" name="lumiere.png" smoothed="true" userAdded="true" />
|
||||
<resource alwaysLoaded="false" file="towerground.png" kind="image" name="towerground.png" smoothed="true" userAdded="true" />
|
||||
</resources>
|
||||
<resourceFolders />
|
||||
@@ -282,7 +282,7 @@
|
||||
<directions>
|
||||
<direction looping="false" timeBetweenFrames="1.000000">
|
||||
<sprites>
|
||||
<sprite hasCustomCollisionMask="false" image="lumière.png">
|
||||
<sprite hasCustomCollisionMask="false" image="lumiere.png">
|
||||
<points />
|
||||
<originPoint name="origine" x="0.000000" y="0.000000" />
|
||||
<centerPoint automatic="true" name="centre" x="4.000000" y="4.000000" />
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#include "GDCpp/RuntimeScene.h"
|
||||
#include "GDCpp/Runtime/RuntimeScene.h"
|
||||
#include "TextObject/TextObject.h" //but do not forget extensions includes
|
||||
#include <iostream>
|
||||
|
||||
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 130 B |
@@ -1,5 +1,5 @@
|
||||
GDevelop logos
|
||||
2008-2015 Florian Rival
|
||||
2008-2016 Florian Rival
|
||||
-------------------
|
||||
|
||||
GDevelop's logos can be used in a game to indicate that it was created using GDevelop, as long as these logos stay unmodified and you do not state being the author of the logos.
|
||||
|
@@ -26,4 +26,16 @@
|
||||
/>
|
||||
</dependentAssembly>
|
||||
</dependency>
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- Windows 8.1 -->
|
||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||
<!-- Windows 8 -->
|
||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||
<!-- Windows 7 -->
|
||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||
<!-- Windows Vista -->
|
||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||
</application>
|
||||
</compatibility>
|
||||
</assembly>
|
||||
|
1
Binaries/Output/Release_Windows/SelectLanguage-fi.cfg
Normal file
@@ -0,0 +1 @@
|
||||
fi_FI
|
1
Binaries/Output/Release_Windows/SelectLanguage-nl.cfg
Normal file
@@ -0,0 +1 @@
|
||||
nl_NL
|
18112
Binaries/Output/Release_Windows/locale/de_DE/GD.po
Executable file → Normal file
20622
Binaries/Output/Release_Windows/locale/es_ES/GD.po
Executable file → Normal file
BIN
Binaries/Output/Release_Windows/locale/fi_FI/GD.mo
Normal file
20409
Binaries/Output/Release_Windows/locale/fi_FI/GD.po
Normal file
BIN
Binaries/Output/Release_Windows/locale/fi_FI/wxstd.mo
Normal file
20626
Binaries/Output/Release_Windows/locale/fr_FR/GD.po
Executable file → Normal file
23935
Binaries/Output/Release_Windows/locale/it_IT/GD.po
Executable file → Normal file
BIN
Binaries/Output/Release_Windows/locale/nl_NL/GD.mo
Normal file
20400
Binaries/Output/Release_Windows/locale/nl_NL/GD.po
Normal file
BIN
Binaries/Output/Release_Windows/locale/nl_NL/wxstd.mo
Normal file
24213
Binaries/Output/Release_Windows/locale/pl_PL/GD.po
Executable file → Normal file
20589
Binaries/Output/Release_Windows/locale/pt_PT/GD.po
Executable file → Normal file
20469
Binaries/Output/Release_Windows/locale/ru_RU/GD.po
Executable file → Normal file
23613
Binaries/Output/Release_Windows/locale/zh_CN/GD.po
Executable file → Normal file
BIN
Binaries/Output/Release_Windows/res/ribbon_default/export32.png
Normal file
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 413 B |
After Width: | Height: | Size: 568 B |
@@ -51,9 +51,9 @@ cd $CUR_DIR/opensuse-build-service/gdevelop
|
||||
tar zxf gdevelop_$GD_VERSION.orig.tar.gz
|
||||
echo "[OK]"
|
||||
|
||||
#We need to include ExtLibs/SFML.7z and ExtLibs/boost.7z because buildbot do not have access to internet
|
||||
#We need to include ExtLibs/SFML.7z because the buildbot do not have access to internet
|
||||
printf " Copying SFML archive... "
|
||||
cp $GD_BASE_DIR/ExtLibs/SFML.7z gdevelop-$GD_VERSION/ExtLibs/
|
||||
cp -rf $GD_BASE_DIR/ExtLibs/SFML gdevelop-$GD_VERSION/ExtLibs/
|
||||
echo "[OK]"
|
||||
|
||||
#Recreate the tar.gz with the added sources
|
||||
|
@@ -35,14 +35,14 @@ del Output\Release_Windows\log.txt > NUL 2> NUL
|
||||
|
||||
echo.
|
||||
echo --Creating installer...
|
||||
IF NOT "%SKIPINSTALLER%"=="1" "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" Releases\InnoSetupInstallerScript.iss /Q
|
||||
IF NOT "%SKIPINSTALLER%"=="1" "C:\Program Files (x86)\Inno Setup 5\ISCC.exe" Releases\InnoSetupInstallerScript.iss /Qp
|
||||
IF "%SKIPINSTALLER%"=="1" echo (Skipped)
|
||||
|
||||
echo.
|
||||
echo --Creating archive...
|
||||
if exist Releases\gd3xxxx.zip (del Releases\gd3xxxx.zip)
|
||||
if exist Releases\gd4xxxx.7z (del Releases\gd4xxxx.7z)
|
||||
cd Output\Release_Windows\
|
||||
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "..\..\..\ExtLibs\7za.exe" a ..\..\Releases\gd3xxxx.zip * > ..\..\Packaging\logs\zipArchiveLog.txt
|
||||
IF NOT "%SKIPINSTALLERANDARCHIVE%"=="1" "..\..\..\ExtLibs\7za.exe" a ..\..\Releases\gd4xxxx.7z * -bb
|
||||
IF "%SKIPINSTALLERANDARCHIVE%"=="1" echo (Skipped)
|
||||
cd ..\..\..
|
||||
|
||||
@@ -50,4 +50,4 @@ echo. >CON
|
||||
echo Finished. Do not forget to : >CON
|
||||
echo -Update news.txt >CON
|
||||
echo -Update pad file >CON
|
||||
pause >CON
|
||||
pause >CON
|
||||
|
@@ -1,3 +1,4 @@
|
||||
#Files needed by the IDE to build games (they are not part of a devel package)
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/include/.*")
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/Extensions/include/.*")
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/Extensions/include/.*")
|
||||
addFilter("devel-file-in-non-devel-package.*/opt/gdevelop/CppPlatform/Sources/.*")
|
||||
|
@@ -12,11 +12,11 @@ Source100: gdevelop-rpmlintrc
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
BuildRequires: git rsync curl gcc-c++ cmake p7zip glew-devel xorg-x11-devel libsndfile-devel openal-soft-devel desktop-file-utils
|
||||
BuildRequires: git rsync curl gcc-c++ cmake p7zip glew-devel libsndfile-devel openal-soft-devel desktop-file-utils
|
||||
%if 0%{?fedora}
|
||||
BuildRequires: systemd-devel libjpeg-turbo-devel gtk2-devel wxGTK3-devel
|
||||
BuildRequires: systemd-devel libjpeg-turbo-devel gtk2-devel wxGTK3-devel libX11-devel
|
||||
%else
|
||||
BuildRequires: update-desktop-files libudev-devel libjpeg8-devel wxWidgets-3_0-devel
|
||||
BuildRequires: update-desktop-files libudev-devel libjpeg8-devel wxWidgets-3_0-devel xorg-x11-devel
|
||||
%endif
|
||||
Requires: gcc-c++ p7zip
|
||||
|
||||
|
@@ -13,17 +13,17 @@ AllowNoIcons=yes
|
||||
LicenseFile=..\Output\Release_Windows\License-en.rtf
|
||||
InfoBeforeFile=..\Output\Release_Windows\Informations-en.rtf
|
||||
OutputDir=.\
|
||||
OutputBaseFilename=gd4083
|
||||
OutputBaseFilename=gd4090
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
SetupIconFile=..\Output\Release_Windows\res\icon.ico
|
||||
VersionInfoVersion=4.0
|
||||
WizardImageFile=Setup bitmap\wizbmp.bmp
|
||||
WizardSmallImageFile=Setup bitmap/smallicon.bmp
|
||||
AppCopyright=2008-2015 Florian Rival
|
||||
AppCopyright=2008-2016 Florian Rival
|
||||
VersionInfoCompany=Florian Rival
|
||||
VersionInfoDescription=GDevelop setup
|
||||
VersionInfoCopyright=2008-2015 Florian Rival
|
||||
VersionInfoCopyright=2008-2016 Florian Rival
|
||||
VersionInfoProductName=GDevelop
|
||||
VersionInfoProductVersion=4.0
|
||||
|
||||
@@ -36,7 +36,9 @@ Name: "portuguese"; MessagesFile: "compiler:Languages\Portuguese.isl";
|
||||
Name: "german"; MessagesFile: "compiler:Languages\German.isl";
|
||||
Name: "chinese"; MessagesFile: "..\Packaging\innosetup-languages\ChineseSimplified.isl";
|
||||
Name: "italian"; MessagesFile: "compiler:Languages\Italian.isl";
|
||||
Name: "finnish"; MessagesFile: "compiler:Languages\Finnish.isl";
|
||||
Name: "polish"; MessagesFile: "compiler:Languages\Polish.isl";
|
||||
Name: "dutch"; MessagesFile: "compiler:Languages\Dutch.isl";
|
||||
|
||||
[Tasks]
|
||||
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags:
|
||||
@@ -45,11 +47,11 @@ Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription
|
||||
[Components]
|
||||
Name: "main"; Description: "GDevelop"; Types: full compact custom; Flags: fixed
|
||||
Name: "example"; Description: "Exemples"; Types: full custom; Languages: french
|
||||
Name: "example"; Description: "Examples"; Types: full custom; Languages: english russian
|
||||
Name: "example"; Description: "Examples"; Types: full custom; Languages: english russian italian polish chinese dutch finnish
|
||||
Name: "example"; Description: "Ejemplos"; Types: full custom; Languages: spanish
|
||||
Name: "res"; Description: "Ressources (Images, sons...)"; Types: full custom; Languages: french
|
||||
Name: "res"; Description: "Resources (images, sounds...)"; Types: full custom; Languages: english russian italian polish chinese
|
||||
Name: "res"; Description: "Recursos (im<69>genes, sonidos ...)"; Types: full custom; Languages: spanish
|
||||
Name: "res"; Description: "Resources (images, sounds...)"; Types: full custom; Languages: english russian italian polish chinese dutch finnish
|
||||
Name: "res"; Description: "Recursos (im<69>genes, sonidos ...)"; Types: full custom; Languages: spanish
|
||||
|
||||
[Files]
|
||||
Source: ..\Output\Release_Windows\GDIDE.exe; DestDir: {app}; Flags: ignoreversion
|
||||
@@ -72,6 +74,8 @@ Source: ..\Output\Release_Windows\SelectLanguage-pt.cfg; DestDir: {userdocs}\..\
|
||||
Source: ..\Output\Release_Windows\SelectLanguage-pl.cfg; DestDir: {userdocs}\..\.GDevelop; Flags: ignoreversion createallsubdirs recursesubdirs; DestName: SelectLanguage.cfg; Languages: polish ; Components: main
|
||||
Source: ..\Output\Release_Windows\SelectLanguage-zh.cfg; DestDir: {userdocs}\..\.GDevelop; Flags: ignoreversion createallsubdirs recursesubdirs; DestName: SelectLanguage.cfg; Languages: chinese ; Components: main
|
||||
Source: ..\Output\Release_Windows\SelectLanguage-it.cfg; DestDir: {userdocs}\..\.GDevelop; Flags: ignoreversion createallsubdirs recursesubdirs; DestName: SelectLanguage.cfg; Languages: italian ; Components: main
|
||||
Source: ..\Output\Release_Windows\SelectLanguage-nl.cfg; DestDir: {userdocs}\..\.GDevelop; Flags: ignoreversion createallsubdirs recursesubdirs; DestName: SelectLanguage.cfg; Languages: dutch ; Components: main
|
||||
Source: ..\Output\Release_Windows\SelectLanguage-fi.cfg; DestDir: {userdocs}\..\.GDevelop; Flags: ignoreversion createallsubdirs recursesubdirs; DestName: SelectLanguage.cfg; Languages: finnish ; Components: main
|
||||
|
||||
[Icons]
|
||||
Name: {group}\GDevelop; Filename: {app}\GDIDE.exe; WorkingDir: {app}
|
||||
|
@@ -1,8 +1,6 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<News>
|
||||
<Version Major="3" Minor="6" Build="84" Revision="0"/>
|
||||
<Info Info="La version 3.6.84 est disponible.

Correction d'un crash lors de l'<27>dition d'un nouvel objet Carte de tuiles

Nouveaut<75>s de la version 3.6.83 :

Nouvelles traductions (partielles) italiennes, chinoises et polonaises.
Nouvelle condition 'S<>lectionner l'objet le plus proche'
Nouvelle conditions pour tester si un bouton de la souris ou du clavier est relach<EFBFBD>
Am<41>lioration du syst<73>me audio des jeux HTML5, meilleure performances sur les mobiles.
Mise <20> jour du moteur de rendu des jeux HTML5 (Pixi.js)
Nouvelle d<>mo technique Advanced 3D Tower
Ajout de la touche retour arri<72>re en alternative <20> Suppr. dans la majorit<69> des <20>diteurs.
Correction du crash avec les objets lumi<6D>res sur Windows.
Correction de l'usage trop intensif du processeur dans l'<27>diteur d'<27>venements sur Linux.
Correction de l'ordre d'insertion d'images multiples dans une animation.
Correction de la couleur global d'un objet Sprite dans les jeux HTML5
Correction de l'<27>chelle de la taille d'un Sprite quand l'objet est invers<72>.
Correction de la recherche de chemin qui ne marchait plus pour les jeux natifs.
Correction de crash avec l'objet Carte de tuiles en utilisant des grandes images pour les tuiles.
Correction de glitchs avec GTK3
|
||||
Correction de la mauvaise prise en compte de la taille/animation initiale d'un Sprite dans les jeux HTML5.
|
||||
" Lien="http://compilgames.net"/>
|
||||
<CommunityNews text="GDevApp est une web app de cr<63>ation de jeux bas<61>e sur GDevelop : venez essayer la plus avanc<6E>e des applications online de cr<63>ation de jeux. Compatible avec les tablettes et fournie avec des superbes packs de graphismes pr<70>-pr<70>par<61>s." link1="https://github.com/4ian/GD" linkLabel1="GDevelop sur GitHub" link2="https://gdevapp.com?utm_source=software&utm_medium=link_fr&utm_campaign=launch" linkLabel2="Tester GDevApp, la nouvelle app de cr<63>ation de jeux"/>
|
||||
<Version Major="4" Minor="0" Build="92" Revision="0"/>
|
||||
<Info Info="La version 4.0.92 est disponible.

(Expérimental) Exportation des jeux HTML5 vers Android/iOS/Mac/Windows avec le moteur Cocos2d-JS.
(Expérimental) Exportation des jeux natifs vers Android.

Les objets avec le comportement 'Objet se déplaçant sur des plateformes' peuvent maintenant agripper les rebords des plateformes - il faut activer l'option dans le comportement de l'objet.
Les animations des objets Sprite peuvent maintenant être nommés. Une condition et action ont été ajoutées pour utiliser ces noms.
Ajout du support basique d'effets pour les jeux HTML5. ✨ Pour le moment, 3 effets sont disponibles et peuvent être attribués au calques d'une scène. 
Amélioration des performances des jeux HTML5
Correction et améliorations pour les jeux HTML5 exportés avec Cocos2d-JS.
Lors de la recherche dans les évènements, l'évènement surlignés est correctement affiché en dépliant au besoin les groupes/évènements repliés.
Correction du rendu sur Windows avec les thèmes à fort contraste." Lien="http://compilgames.net"/>
|
||||
<CommunityNews text="GDevApp est une web app de création de jeux basée sur GDevelop : venez essayer la plus avancée des applications online de création de jeux. Compatible avec les tablettes et fournie avec des superbes packs de graphismes pré-préparés." link1="https://github.com/4ian/GD" linkLabel1="GDevelop sur GitHub" link2="https://gdevapp.com?utm_source=software&utm_medium=link_fr&utm_campaign=launch" linkLabel2="Tester GDevApp, la nouvelle app de création de jeux"/>
|
||||
</News>
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<News>
|
||||
<Version Major="3" Minor="6" Build="84" Revision="0"/>
|
||||
<Info Info="Version 3.6.84 is available.

Fix crash when editing newly created TileMap objects

Changes of version 3.6.83:

New (partial) Italian, Polish and Chinese translations! Your help is welcome, you can contribute on https://crowdin.com/project/gdevelop
New 'Pick nearest object' condition
New condition to check if a mouse button is released
New condition to check if a key is released
New sound system for HTML5 with huge performance improvements
Update rendering engine of HTML5 (Pixi.js) for improved performances
New Advanced 3D tower technical demo
Add Backspace as an alternative to Delete key shortcut in most editors
Fixed crash with Lights objects on Windows.
Fixed the high cpu usage when switching to the event editor on Linux
Fixed images insertion order when adding multiple picture to an animation
Fixed sprite global color action for HTML5 games
Fixed scale factor of Sprite objects being negative when object is flipped
Fixed pathfinding not working for native games
Updated titles of some editors to make them more consistent
Fixed crash with tilemap and large tilesets
Fixed some GTK3 glitches
Fixed wrong initial sprite size and animation when custom properties were set in HTML5 games" Lien="http://compilgames.net"/>
|
||||
<Version Major="4" Minor="0" Build="92" Revision="0"/>
|
||||
<Info Info="Version 4.0.92 is available.

New experimental option to export HTML5 games to Android/iOS/Mac/Windows using the Cocos2d as the underlying game engine.

 New experimental option to export native games to Android.

Platformer object now have an option allowing them to grab platform ledges. Activate this option in the behavior and be sure to also enable this on platforms.
Animations of Sprite objects can now be named. Specific actions/conditions are also available.
Add basic support for effects for HTML5 games. For now, there are 3 simple effects (Night, LightNight, Sepia) and you can apply one of them on each layer of a scene.
Performance improvement for HTML5 games.
Fix text rendering when using a custom font, when exporting HTML5 games with Cocos2d-JS.
Add support for non-smoothed texture for HTML5 games using Cocos2d-JS.
Add support for storage actions when for HTML5 games using Cocos2d-JS on Android/iOS.
When searching in events, events that are matched are unfolded.
Provide compatibility with Windows high contrast themes (thanks @RandomShaper!)
Many fixes" Lien="http://compilgames.net"/>
|
||||
<CommunityNews text="GDevelop has a new website! Help us to translate it to your language by going on the Crowdin project.

GDevApp is an online game creator based on GDevelop: Go try the most advanced game creation web app. Compatible with tablets and bundled with awesome graphics assets." link1="https://crowdin.com/project/gdevelop-website/" linkLabel1="Help translate GD website" link2="https://gdevapp.com?utm_source=software&utm_medium=link_en&utm_campaign=launch" linkLabel2="Try GDevApp, the online game creator based on GD"/>
|
||||
</News>
|
||||
|
@@ -18,6 +18,7 @@ gd_set_option(BUILD_IDE TRUE BOOL "TRUE to build the IDE")
|
||||
gd_set_option(BUILD_EXTENSIONS TRUE BOOL "TRUE to build the extensions")
|
||||
gd_set_option(BUILD_TESTS FALSE BOOL "TRUE to build the tests")
|
||||
gd_set_option(NO_GUI FALSE BOOL "TRUE to build without wxWidgets GUI")
|
||||
gd_set_option(FULL_VERSION_NUMBER TRUE BOOL "TRUE to build GDevelop with its full version number (lastest tag + commit hash), FALSE to only use the lastest tag (avoid rebulding many source file when developping)")
|
||||
|
||||
#Setting up installation directory, for Linux (has to be done before "project" command).
|
||||
IF(NOT WIN32)
|
||||
@@ -42,6 +43,7 @@ IF(APPLE)
|
||||
set(CMAKE_INSTALL_RPATH ".")
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WCHAR_H_CPLUSPLUS_98_CONFORMANCE_")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-potentially-evaluated-expression")
|
||||
ENDIF()
|
||||
|
||||
#Sanity checks
|
||||
@@ -59,10 +61,6 @@ IF("${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND NOT WIN32 AND CMAKE_COMPILER_IS_
|
||||
SET(CMAKE_SHARED_LINKER_FLAGS "-s") #Force stripping to avoid errors when packaging for linux.
|
||||
ENDIF()
|
||||
|
||||
if(EMSCRIPTEN) #When compiling for the web, ensure we get no warning when using our own external libraries.
|
||||
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-warn-absolute-paths" )
|
||||
ENDIF()
|
||||
|
||||
#Activate C++11
|
||||
include(CheckCXXCompilerFlag)
|
||||
CHECK_CXX_COMPILER_FLAG("-std=gnu++11" COMPILER_SUPPORTS_CXX11)
|
||||
@@ -79,6 +77,8 @@ endif()
|
||||
set(GD_base_dir ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
|
||||
#Add all the CMakeLists:
|
||||
ADD_SUBDIRECTORY(Version)
|
||||
|
||||
ADD_SUBDIRECTORY(ExtLibs)
|
||||
IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/Core/CMakeLists.txt" AND BUILD_CORE)
|
||||
ADD_SUBDIRECTORY(Core)
|
||||
|
@@ -73,6 +73,7 @@ IF(NO_GUI)
|
||||
ENDIF()
|
||||
|
||||
add_library(GDCore SHARED ${source_files})
|
||||
add_dependencies(GDCore GDVersion)
|
||||
IF(EMSCRIPTEN)
|
||||
set_target_properties(GDCore PROPERTIES SUFFIX ".bc")
|
||||
ELSEIF(WIN32)
|
||||
|
228
Core/GDCore.cbp
@@ -246,8 +246,8 @@
|
||||
<Unit filename="GDCore/CommonTools.cpp" />
|
||||
<Unit filename="GDCore/CommonTools.h" />
|
||||
<Unit filename="GDCore/DocMainPage.h" />
|
||||
<Unit filename="GDCore/Events/BehaviorMetadata.cpp" />
|
||||
<Unit filename="GDCore/Events/BehaviorMetadata.h" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/BehaviorMetadata.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/BehaviorMetadata.h" />
|
||||
<Unit filename="GDCore/Events/Builtin/CommentEvent.cpp" />
|
||||
<Unit filename="GDCore/Events/Builtin/CommentEvent.h" />
|
||||
<Unit filename="GDCore/Events/Builtin/ForEachEvent.cpp" />
|
||||
@@ -262,37 +262,37 @@
|
||||
<Unit filename="GDCore/Events/Builtin/WhileEvent.h" />
|
||||
<Unit filename="GDCore/Events/Event.cpp" />
|
||||
<Unit filename="GDCore/Events/Event.h" />
|
||||
<Unit filename="GDCore/Events/EventMetadata.cpp" />
|
||||
<Unit filename="GDCore/Events/EventMetadata.h" />
|
||||
<Unit filename="GDCore/Events/EventsCodeGenerationContext.cpp" />
|
||||
<Unit filename="GDCore/Events/EventsCodeGenerationContext.h" />
|
||||
<Unit filename="GDCore/Events/EventsCodeGenerator.cpp" />
|
||||
<Unit filename="GDCore/Events/EventsCodeGenerator.h" />
|
||||
<Unit filename="GDCore/Events/EventsCodeNameMangler.cpp" />
|
||||
<Unit filename="GDCore/Events/EventsCodeNameMangler.h" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/EventMetadata.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/EventMetadata.h" />
|
||||
<Unit filename="GDCore/Events/CodeGeneration/EventsCodeGenerationContext.cpp" />
|
||||
<Unit filename="GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h" />
|
||||
<Unit filename="GDCore/Events/CodeGeneration/EventsCodeGenerator.cpp" />
|
||||
<Unit filename="GDCore/Events/CodeGeneration/EventsCodeGenerator.h" />
|
||||
<Unit filename="GDCore/Events/Tools/EventsCodeNameMangler.cpp" />
|
||||
<Unit filename="GDCore/Events/Tools/EventsCodeNameMangler.h" />
|
||||
<Unit filename="GDCore/Events/Expression.h" />
|
||||
<Unit filename="GDCore/Events/ExpressionMetadata.cpp" />
|
||||
<Unit filename="GDCore/Events/ExpressionMetadata.h" />
|
||||
<Unit filename="GDCore/Events/ExpressionParser.cpp" />
|
||||
<Unit filename="GDCore/Events/ExpressionParser.h" />
|
||||
<Unit filename="GDCore/Events/ExpressionsCodeGeneration.cpp" />
|
||||
<Unit filename="GDCore/Events/ExpressionsCodeGeneration.h" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/ExpressionMetadata.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/ExpressionMetadata.h" />
|
||||
<Unit filename="GDCore/Events/Parsers/ExpressionParser.cpp" />
|
||||
<Unit filename="GDCore/Events/Parsers/ExpressionParser.h" />
|
||||
<Unit filename="GDCore/Events/CodeGeneration/ExpressionsCodeGeneration.cpp" />
|
||||
<Unit filename="GDCore/Events/CodeGeneration/ExpressionsCodeGeneration.h" />
|
||||
<Unit filename="GDCore/Events/Instruction.cpp" />
|
||||
<Unit filename="GDCore/Events/Instruction.h" />
|
||||
<Unit filename="GDCore/Events/InstructionMetadata.cpp" />
|
||||
<Unit filename="GDCore/Events/InstructionMetadata.h" />
|
||||
<Unit filename="GDCore/Events/ObjectMetadata.cpp" />
|
||||
<Unit filename="GDCore/Events/ObjectMetadata.h" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/InstructionMetadata.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/InstructionMetadata.h" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/ObjectMetadata.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/ObjectMetadata.h" />
|
||||
<Unit filename="GDCore/Events/Serialization.cpp" />
|
||||
<Unit filename="GDCore/Events/Serialization.h" />
|
||||
<Unit filename="GDCore/IDE/ActionSentenceFormatter.cpp" />
|
||||
<Unit filename="GDCore/IDE/ActionSentenceFormatter.h" />
|
||||
<Unit filename="GDCore/IDE/ArbitraryResourceWorker.cpp" />
|
||||
<Unit filename="GDCore/IDE/ArbitraryResourceWorker.h" />
|
||||
<Unit filename="GDCore/IDE/Project/ArbitraryResourceWorker.cpp" />
|
||||
<Unit filename="GDCore/IDE/Project/ArbitraryResourceWorker.h" />
|
||||
<Unit filename="GDCore/IDE/Clipboard.cpp" />
|
||||
<Unit filename="GDCore/IDE/Clipboard.h" />
|
||||
<Unit filename="GDCore/IDE/CommonBitmapManager.cpp" />
|
||||
<Unit filename="GDCore/IDE/CommonBitmapManager.h" />
|
||||
<Unit filename="GDCore/IDE/CommonBitmapProvider.cpp" />
|
||||
<Unit filename="GDCore/IDE/wxTools/CommonBitmapProvider.h" />
|
||||
<Unit filename="GDCore/IDE/ConditionSentenceFormatter.cpp" />
|
||||
<Unit filename="GDCore/IDE/ConditionSentenceFormatter.h" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/AdvancedEntryDialog.cpp" />
|
||||
@@ -356,41 +356,41 @@
|
||||
<Unit filename="GDCore/IDE/Dialogs/ResourceLibraryDialog.h" />
|
||||
<Unit filename="GDCore/IDE/EventsChangesNotifier.cpp" />
|
||||
<Unit filename="GDCore/IDE/EventsChangesNotifier.h" />
|
||||
<Unit filename="GDCore/IDE/EventsEditorItemsAreas.cpp" />
|
||||
<Unit filename="GDCore/IDE/EventsEditorItemsAreas.h" />
|
||||
<Unit filename="GDCore/IDE/EventsEditorSelection.cpp" />
|
||||
<Unit filename="GDCore/IDE/EventsEditorSelection.h" />
|
||||
<Unit filename="GDCore/IDE/EventsRefactorer.cpp" />
|
||||
<Unit filename="GDCore/IDE/EventsRefactorer.h" />
|
||||
<Unit filename="GDCore/IDE/EventsRenderingHelper.cpp" />
|
||||
<Unit filename="GDCore/IDE/EventsRenderingHelper.h" />
|
||||
<Unit filename="GDCore/IDE/EventsVariablesFinder.cpp" />
|
||||
<Unit filename="GDCore/IDE/EventsVariablesFinder.h" />
|
||||
<Unit filename="GDCore/IDE/ExpressionsCorrectnessTesting.cpp" />
|
||||
<Unit filename="GDCore/IDE/ExpressionsCorrectnessTesting.h" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.cpp" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.cpp" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h" />
|
||||
<Unit filename="GDCore/IDE/Events/EventsRefactorer.cpp" />
|
||||
<Unit filename="GDCore/IDE/Events/EventsRefactorer.h" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.cpp" />
|
||||
<Unit filename="GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h" />
|
||||
<Unit filename="GDCore/IDE/Events/EventsVariablesFinder.cpp" />
|
||||
<Unit filename="GDCore/IDE/Events/EventsVariablesFinder.h" />
|
||||
<Unit filename="GDCore/IDE/Events/ExpressionsCorrectnessTesting.cpp" />
|
||||
<Unit filename="GDCore/IDE/Events/ExpressionsCorrectnessTesting.h" />
|
||||
<Unit filename="GDCore/IDE/ExtensionsLoader.cpp" />
|
||||
<Unit filename="GDCore/IDE/ExtensionsLoader.h" />
|
||||
<Unit filename="GDCore/IDE/ImagesUsedInventorizer.cpp" />
|
||||
<Unit filename="GDCore/IDE/ImagesUsedInventorizer.h" />
|
||||
<Unit filename="GDCore/IDE/MetadataProvider.cpp" />
|
||||
<Unit filename="GDCore/IDE/MetadataProvider.h" />
|
||||
<Unit filename="GDCore/IDE/Project/ImagesUsedInventorizer.cpp" />
|
||||
<Unit filename="GDCore/IDE/Project/ImagesUsedInventorizer.h" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/MetadataProvider.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Metadata/MetadataProvider.h" />
|
||||
<Unit filename="GDCore/IDE/PlatformLoader.cpp" />
|
||||
<Unit filename="GDCore/IDE/PlatformLoader.h" />
|
||||
<Unit filename="GDCore/IDE/PlatformManager.cpp" />
|
||||
<Unit filename="GDCore/IDE/PlatformManager.h" />
|
||||
<Unit filename="GDCore/IDE/ProjectExporter.cpp" />
|
||||
<Unit filename="GDCore/IDE/ProjectExporter.h" />
|
||||
<Unit filename="GDCore/IDE/ProjectResourcesCopier.cpp" />
|
||||
<Unit filename="GDCore/IDE/ProjectResourcesCopier.h" />
|
||||
<Unit filename="GDCore/IDE/ResourcesAbsolutePathChecker.cpp" />
|
||||
<Unit filename="GDCore/IDE/ResourcesAbsolutePathChecker.h" />
|
||||
<Unit filename="GDCore/IDE/ResourcesMergingHelper.cpp" />
|
||||
<Unit filename="GDCore/IDE/ResourcesMergingHelper.h" />
|
||||
<Unit filename="GDCore/IDE/Project/ProjectResourcesCopier.cpp" />
|
||||
<Unit filename="GDCore/IDE/Project/ProjectResourcesCopier.h" />
|
||||
<Unit filename="GDCore/IDE/Project/ResourcesAbsolutePathChecker.cpp" />
|
||||
<Unit filename="GDCore/IDE/Project/ResourcesAbsolutePathChecker.h" />
|
||||
<Unit filename="GDCore/IDE/Project/ResourcesMergingHelper.cpp" />
|
||||
<Unit filename="GDCore/IDE/Project/ResourcesMergingHelper.h" />
|
||||
<Unit filename="GDCore/IDE/ResourcesUnmergingHelper.cpp" />
|
||||
<Unit filename="GDCore/IDE/ResourcesUnmergingHelper.h" />
|
||||
<Unit filename="GDCore/IDE/SceneNameMangler.cpp" />
|
||||
<Unit filename="GDCore/IDE/SceneNameMangler.h" />
|
||||
<Unit filename="GDCore/IDE/TextFormatting.h" />
|
||||
<Unit filename="GDCore/IDE/Events/TextFormatting.h" />
|
||||
<Unit filename="GDCore/IDE/wxTools/AuiTabArt.cpp" />
|
||||
<Unit filename="GDCore/IDE/wxTools/AuiTabArt.h" />
|
||||
<Unit filename="GDCore/IDE/wxTools/FileProperty.cpp" />
|
||||
@@ -400,50 +400,50 @@
|
||||
<Unit filename="GDCore/IDE/wxTools/SkinHelper.cpp" />
|
||||
<Unit filename="GDCore/IDE/wxTools/SkinHelper.h" />
|
||||
<Unit filename="GDCore/IDE/wxTools/TreeItemStringData.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Behavior.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Behavior.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/BehaviorsSharedData.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/BehaviorsSharedData.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ChangesNotifier.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ChangesNotifier.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ClassWithObjects.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ClassWithObjects.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ExternalEvents.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ExternalEvents.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ExternalLayout.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ExternalLayout.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ImageManager.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ImageManager.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/InitialInstance.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/InitialInstance.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/InitialInstancesContainer.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/InitialInstancesContainer.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Layer.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Layer.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Layout.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Layout.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/LayoutEditorPreviewer.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/LayoutEditorPreviewer.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Object.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Object.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ObjectGroup.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ObjectGroup.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Platform.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Platform.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/PlatformExtension.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/PlatformExtension.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Project.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Project.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ResourcesManager.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/ResourcesManager.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/RessourcesLoader.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/RessourcesLoader.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/SourceFile.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/SourceFile.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Variable.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/Variable.h" />
|
||||
<Unit filename="GDCore/PlatformDefinition/VariablesContainer.cpp" />
|
||||
<Unit filename="GDCore/PlatformDefinition/VariablesContainer.h" />
|
||||
<Unit filename="GDCore/Project/Behavior.cpp" />
|
||||
<Unit filename="GDCore/Project/Behavior.h" />
|
||||
<Unit filename="GDCore/Project/BehaviorsSharedData.cpp" />
|
||||
<Unit filename="GDCore/Project/BehaviorsSharedData.h" />
|
||||
<Unit filename="GDCore/Project/ChangesNotifier.cpp" />
|
||||
<Unit filename="GDCore/Project/ChangesNotifier.h" />
|
||||
<Unit filename="GDCore/Project/ClassWithObjects.cpp" />
|
||||
<Unit filename="GDCore/Project/ClassWithObjects.h" />
|
||||
<Unit filename="GDCore/Project/ExternalEvents.cpp" />
|
||||
<Unit filename="GDCore/Project/ExternalEvents.h" />
|
||||
<Unit filename="GDCore/Project/ExternalLayout.cpp" />
|
||||
<Unit filename="GDCore/Project/ExternalLayout.h" />
|
||||
<Unit filename="GDCore/Project/ImageManager.cpp" />
|
||||
<Unit filename="GDCore/Project/ImageManager.h" />
|
||||
<Unit filename="GDCore/Project/InitialInstance.cpp" />
|
||||
<Unit filename="GDCore/Project/InitialInstance.h" />
|
||||
<Unit filename="GDCore/Project/InitialInstancesContainer.cpp" />
|
||||
<Unit filename="GDCore/Project/InitialInstancesContainer.h" />
|
||||
<Unit filename="GDCore/Project/Layer.cpp" />
|
||||
<Unit filename="GDCore/Project/Layer.h" />
|
||||
<Unit filename="GDCore/Project/Layout.cpp" />
|
||||
<Unit filename="GDCore/Project/Layout.h" />
|
||||
<Unit filename="GDCore/Project/LayoutEditorPreviewer.cpp" />
|
||||
<Unit filename="GDCore/Project/LayoutEditorPreviewer.h" />
|
||||
<Unit filename="GDCore/Project/Object.cpp" />
|
||||
<Unit filename="GDCore/Project/Object.h" />
|
||||
<Unit filename="GDCore/Project/ObjectGroup.cpp" />
|
||||
<Unit filename="GDCore/Project/ObjectGroup.h" />
|
||||
<Unit filename="GDCore/Extensions/Platform.cpp" />
|
||||
<Unit filename="GDCore/Extensions/Platform.h" />
|
||||
<Unit filename="GDCore/Extensions/PlatformExtension.cpp" />
|
||||
<Unit filename="GDCore/Extensions/PlatformExtension.h" />
|
||||
<Unit filename="GDCore/Project/Project.cpp" />
|
||||
<Unit filename="GDCore/Project/Project.h" />
|
||||
<Unit filename="GDCore/Project/ResourcesManager.cpp" />
|
||||
<Unit filename="GDCore/Project/ResourcesManager.h" />
|
||||
<Unit filename="GDCore/Project/RessourcesLoader.cpp" />
|
||||
<Unit filename="GDCore/Project/RessourcesLoader.h" />
|
||||
<Unit filename="GDCore/Project/SourceFile.cpp" />
|
||||
<Unit filename="GDCore/Project/SourceFile.h" />
|
||||
<Unit filename="GDCore/Project/Variable.cpp" />
|
||||
<Unit filename="GDCore/Project/Variable.h" />
|
||||
<Unit filename="GDCore/Project/VariablesContainer.cpp" />
|
||||
<Unit filename="GDCore/Project/VariablesContainer.h" />
|
||||
<Unit filename="GDCore/TinyXml/tinystr.cpp" />
|
||||
<Unit filename="GDCore/TinyXml/tinystr.h" />
|
||||
<Unit filename="GDCore/TinyXml/tinyxml.cpp" />
|
||||
@@ -489,29 +489,29 @@
|
||||
<debugger />
|
||||
<wxsmith version="1">
|
||||
<resources>
|
||||
<wxDialog wxs="wxsmith/ChooseVariableDialog.wxs" src="GDCore\IDE\Dialogs\ChooseVariableDialog.cpp" hdr="GDCore\IDE\Dialogs\ChooseVariableDialog.h" fwddecl="0" i18n="1" name="ChooseVariableDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ResourceLibraryDialog.wxs" src="GDCore\IDE\Dialogs\ResourceLibraryDialog.cpp" hdr="GDCore\IDE\Dialogs\ResourceLibraryDialog.h" fwddecl="0" i18n="1" name="ResourceLibraryDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ProjectExtensionsDialog.wxs" src="GDCore\IDE\Dialogs\ProjectExtensionsDialog.cpp" hdr="GDCore\IDE\Dialogs\ProjectExtensionsDialog.h" fwddecl="0" i18n="1" name="ProjectExtensionsDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseObjectDialog.wxs" src="GDCore\IDE\Dialogs\ChooseObjectDialog.cpp" hdr="GDCore\IDE\Dialogs\ChooseObjectDialog.h" fwddecl="0" i18n="1" name="ChooseObjectDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseBehaviorDialog.wxs" src="GDCore\IDE\Dialogs\ChooseBehaviorDialog.cpp" hdr="GDCore\IDE\Dialogs\ChooseBehaviorDialog.h" fwddecl="0" i18n="1" name="ChooseBehaviorDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseLayerDialog.wxs" src="GDCore\IDE\Dialogs\ChooseLayerDialog.cpp" hdr="GDCore\IDE\Dialogs\ChooseLayerDialog.h" fwddecl="0" i18n="1" name="ChooseLayerDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditExpressionDialog.wxs" src="GDCore\IDE\Dialogs\EditExpressionDialog.cpp" hdr="GDCore\IDE\Dialogs\EditExpressionDialog.h" fwddecl="0" i18n="1" name="EditExpressionDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditStrExpressionDialog.wxs" src="GDCore\IDE\Dialogs\EditStrExpressionDialog.cpp" hdr="GDCore\IDE\Dialogs\EditStrExpressionDialog.h" fwddecl="0" i18n="1" name="EditStrExpressionDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/AdvancedEntryDialog.wxs" src="GDCore\IDE\Dialogs\AdvancedEntryDialog.cpp" hdr="GDCore\IDE\Dialogs\AdvancedEntryDialog.h" fwddecl="0" i18n="1" name="AdvancedEntryDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseObjectTypeDialog.wxs" src="GDCore\IDE\Dialogs\ChooseObjectTypeDialog.cpp" hdr="GDCore\IDE\Dialogs\ChooseObjectTypeDialog.h" fwddecl="0" i18n="1" name="ChooseObjectTypeDialog" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/LayoutEditorCanvas.wxs" src="GDCore\IDE\Dialogs\LayoutEditorCanvas.cpp" hdr="GDCore\IDE\Dialogs\LayoutEditorCanvas.h" fwddecl="0" i18n="1" name="LayoutEditorCanvas" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/GridSetupDialog.wxs" src="GDCore\IDE\Dialogs\GridSetupDialog.cpp" hdr="GDCore\IDE\Dialogs\GridSetupDialog.h" fwddecl="0" i18n="1" name="GridSetupDialog" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/LayersEditorPanel.wxs" src="GDCore\IDE\Dialogs\LayersEditorPanel.cpp" hdr="GDCore\IDE\Dialogs\LayersEditorPanel.h" fwddecl="0" i18n="1" name="LayersEditorPanel" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/InstancesAdvancedPasteDialog.wxs" src="GDCore\IDE\Dialogs\InstancesAdvancedPasteDialog.cpp" hdr="GDCore\IDE\Dialogs\InstancesAdvancedPasteDialog.h" fwddecl="0" i18n="1" name="InstancesAdvancedPasteDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseBehaviorTypeDialog.wxs" src="GDCore\IDE\Dialogs\ChooseBehaviorTypeDialog.cpp" hdr="GDCore\IDE\Dialogs\ChooseBehaviorTypeDialog.h" fwddecl="0" i18n="1" name="ChooseBehaviorTypeDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditLayerDialog.wxs" src="GDCore\IDE\Dialogs\EditLayerDialog.cpp" hdr="GDCore\IDE\Dialogs\EditLayerDialog.h" fwddecl="0" i18n="1" name="EditLayerDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditLink.wxs" src="GDCore\IDE\Dialogs\EditLink.cpp" hdr="GDCore\IDE\Dialogs\EditLink.h" fwddecl="0" i18n="1" name="EditLink" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditComment.wxs" src="GDCore\IDE\Dialogs\EditComment.cpp" hdr="GDCore\IDE\Dialogs\EditComment.h" fwddecl="0" i18n="1" name="EditComment" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditForEachEvent.wxs" src="GDCore\IDE\Dialogs\EditForEachEvent.cpp" hdr="GDCore\IDE\Dialogs\EditForEachEvent.h" fwddecl="0" i18n="1" name="EditForEachEvent" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditRepeatEvent.wxs" src="GDCore\IDE\Dialogs\EditRepeatEvent.cpp" hdr="GDCore\IDE\Dialogs\EditRepeatEvent.h" fwddecl="0" i18n="1" name="EditRepeatEvent" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ProjectUpdateDialog.wxs" src="GDCore\IDE\Dialogs\ProjectUpdateDialog.cpp" hdr="GDCore\IDE\Dialogs\ProjectUpdateDialog.h" fwddecl="0" i18n="1" name="ProjectUpdateDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/SpriteObjectEditor.wxs" src="GDCore\BuiltinExtensions\SpriteExtension\Dialogs\SpriteObjectEditor.cpp" hdr="GDCore\BuiltinExtensions\SpriteExtension\Dialogs\SpriteObjectEditor.h" fwddecl="0" i18n="1" name="SpriteObjectEditor" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/ResourcesEditor.wxs" src="GDCore\IDE\Dialogs\ResourcesEditor.cpp" hdr="GDCore\IDE\Dialogs\ResourcesEditor.h" fwddecl="0" i18n="1" name="ResourcesEditor" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseVariableDialog.wxs" src="GDCore/IDE/Dialogs/ChooseVariableDialog.cpp" hdr="GDCore/IDE/Dialogs/ChooseVariableDialog.h" fwddecl="0" i18n="1" name="ChooseVariableDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ResourceLibraryDialog.wxs" src="GDCore/IDE/Dialogs/ResourceLibraryDialog.cpp" hdr="GDCore/IDE/Dialogs/ResourceLibraryDialog.h" fwddecl="0" i18n="1" name="ResourceLibraryDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ProjectExtensionsDialog.wxs" src="GDCore/IDE/Dialogs/ProjectExtensionsDialog.cpp" hdr="GDCore/IDE/Dialogs/ProjectExtensionsDialog.h" fwddecl="0" i18n="1" name="ProjectExtensionsDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseObjectDialog.wxs" src="GDCore/IDE/Dialogs/ChooseObjectDialog.cpp" hdr="GDCore/IDE/Dialogs/ChooseObjectDialog.h" fwddecl="0" i18n="1" name="ChooseObjectDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseBehaviorDialog.wxs" src="GDCore/IDE/Dialogs/ChooseBehaviorDialog.cpp" hdr="GDCore/IDE/Dialogs/ChooseBehaviorDialog.h" fwddecl="0" i18n="1" name="ChooseBehaviorDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseLayerDialog.wxs" src="GDCore/IDE/Dialogs/ChooseLayerDialog.cpp" hdr="GDCore/IDE/Dialogs/ChooseLayerDialog.h" fwddecl="0" i18n="1" name="ChooseLayerDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditExpressionDialog.wxs" src="GDCore/IDE/Dialogs/EditExpressionDialog.cpp" hdr="GDCore/IDE/Dialogs/EditExpressionDialog.h" fwddecl="0" i18n="1" name="EditExpressionDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditStrExpressionDialog.wxs" src="GDCore/IDE/Dialogs/EditStrExpressionDialog.cpp" hdr="GDCore/IDE/Dialogs/EditStrExpressionDialog.h" fwddecl="0" i18n="1" name="EditStrExpressionDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/AdvancedEntryDialog.wxs" src="GDCore/IDE/Dialogs/AdvancedEntryDialog.cpp" hdr="GDCore/IDE/Dialogs/AdvancedEntryDialog.h" fwddecl="0" i18n="1" name="AdvancedEntryDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseObjectTypeDialog.wxs" src="GDCore/IDE/Dialogs/ChooseObjectTypeDialog.cpp" hdr="GDCore/IDE/Dialogs/ChooseObjectTypeDialog.h" fwddecl="0" i18n="1" name="ChooseObjectTypeDialog" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/LayoutEditorCanvas.wxs" src="GDCore/IDE/Dialogs/LayoutEditorCanvas.cpp" hdr="GDCore/IDE/Dialogs/LayoutEditorCanvas.h" fwddecl="0" i18n="1" name="LayoutEditorCanvas" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/GridSetupDialog.wxs" src="GDCore/IDE/Dialogs/GridSetupDialog.cpp" hdr="GDCore/IDE/Dialogs/GridSetupDialog.h" fwddecl="0" i18n="1" name="GridSetupDialog" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/LayersEditorPanel.wxs" src="GDCore/IDE/Dialogs/LayersEditorPanel.cpp" hdr="GDCore/IDE/Dialogs/LayersEditorPanel.h" fwddecl="0" i18n="1" name="LayersEditorPanel" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/InstancesAdvancedPasteDialog.wxs" src="GDCore/IDE/Dialogs/InstancesAdvancedPasteDialog.cpp" hdr="GDCore/IDE/Dialogs/InstancesAdvancedPasteDialog.h" fwddecl="0" i18n="1" name="InstancesAdvancedPasteDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ChooseBehaviorTypeDialog.wxs" src="GDCore/IDE/Dialogs/ChooseBehaviorTypeDialog.cpp" hdr="GDCore/IDE/Dialogs/ChooseBehaviorTypeDialog.h" fwddecl="0" i18n="1" name="ChooseBehaviorTypeDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditLayerDialog.wxs" src="GDCore/IDE/Dialogs/EditLayerDialog.cpp" hdr="GDCore/IDE/Dialogs/EditLayerDialog.h" fwddecl="0" i18n="1" name="EditLayerDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditLink.wxs" src="GDCore/IDE/Dialogs/EditLink.cpp" hdr="GDCore/IDE/Dialogs/EditLink.h" fwddecl="0" i18n="1" name="EditLink" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditComment.wxs" src="GDCore/IDE/Dialogs/EditComment.cpp" hdr="GDCore/IDE/Dialogs/EditComment.h" fwddecl="0" i18n="1" name="EditComment" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditForEachEvent.wxs" src="GDCore/IDE/Dialogs/EditForEachEvent.cpp" hdr="GDCore/IDE/Dialogs/EditForEachEvent.h" fwddecl="0" i18n="1" name="EditForEachEvent" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/EditRepeatEvent.wxs" src="GDCore/IDE/Dialogs/EditRepeatEvent.cpp" hdr="GDCore/IDE/Dialogs/EditRepeatEvent.h" fwddecl="0" i18n="1" name="EditRepeatEvent" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/ProjectUpdateDialog.wxs" src="GDCore/IDE/Dialogs/ProjectUpdateDialog.cpp" hdr="GDCore/IDE/Dialogs/ProjectUpdateDialog.h" fwddecl="0" i18n="1" name="ProjectUpdateDialog" language="CPP" />
|
||||
<wxDialog wxs="wxsmith/SpriteObjectEditor.wxs" src="GDCore/Extensions/Builtin/SpriteExtension/Dialogs/SpriteObjectEditor.cpp" hdr="GDCore/Extensions/Builtin/SpriteExtension/Dialogs/SpriteObjectEditor.h" fwddecl="0" i18n="1" name="SpriteObjectEditor" language="CPP" />
|
||||
<wxPanel wxs="wxsmith/ResourcesEditor.wxs" src="GDCore/IDE/Dialogs/ResourcesEditor.cpp" hdr="GDCore/IDE/Dialogs/ResourcesEditor.h" fwddecl="0" i18n="1" name="ResourcesEditor" language="CPP" />
|
||||
</resources>
|
||||
</wxsmith>
|
||||
</Extensions>
|
||||
|
@@ -1,34 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsAdvancedExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinAdvanced",
|
||||
_("Advanced control features"),
|
||||
_("Built-in extension providing advanced control features."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("Toujours",
|
||||
_("Always"),
|
||||
_("This condition returns always true (or always false if condition is inverted)."),
|
||||
_("Always"),
|
||||
_("Other"),
|
||||
"res/conditions/toujours24.png",
|
||||
"res/conditions/toujours.png")
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsAdvanced();
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,435 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsAudioExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinAudio",
|
||||
_("Audio"),
|
||||
_("Builtin audio extension"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddAction("PlaySoundCanal",
|
||||
_("Play a sound on a channel"),
|
||||
_("Play a sound (small audio file) on a specific channel,\nso as to be able to manipulate it."),
|
||||
_("Play the sound _PARAM1_ on the channel _PARAM2_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("soundfile", _("Audio file"))
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("yesorno", _("Repeat the sound"), "",true).SetDefaultValue("no")
|
||||
.AddParameter("expression", _("Volume (from 0 to 100, 100 by default)"), "",true).SetDefaultValue("100")
|
||||
.AddParameter("expression", _("Pitch (speed) (1 by default)"), "",true).SetDefaultValue("1")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("StopSoundCanal",
|
||||
_("Stop the sound of a channel"),
|
||||
_("Stop the sound on the specified channel."),
|
||||
_("Stop the sound of channel _PARAM1_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("PauseSoundCanal",
|
||||
_("Pause the sound of a channel"),
|
||||
_("Pause the sound played on the specified channel."),
|
||||
_("Pause the sound of channel _PARAM1_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("RePlaySoundCanal",
|
||||
_("Play the sound of a channel"),
|
||||
_("Play the sound of the channel."),
|
||||
_("Play the sound of channel _PARAM1_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("PlayMusicCanal",
|
||||
_("Play a music on a channel"),
|
||||
_("Play a music an on specific channel,\nso as to be able to interact with later."),
|
||||
_("Play the music _PARAM1_ on channel _PARAM2_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("musicfile", _("Audio file"))
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("yesorno", _("Repeat the sound"), "",true).SetDefaultValue("no")
|
||||
.AddParameter("expression", _("Volume (from 0 to 100, 100 by default)"), "",true).SetDefaultValue("100")
|
||||
.AddParameter("expression", _("Pitch (speed) (1 by default)"), "",true).SetDefaultValue("1")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("StopMusicCanal",
|
||||
_("Stop the music on a channel"),
|
||||
_("Stop the music on the specified channel"),
|
||||
_("Stop the music of channel _PARAM1_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("PauseMusicCanal",
|
||||
_("Pause the music of a channel"),
|
||||
_("Pause the music on the specified channel."),
|
||||
_("Pause the music of channel _PARAM1_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("RePlayMusicCanal",
|
||||
_("Play the music of a channel"),
|
||||
_("Play the music of the channel."),
|
||||
_("Play the music of channel _PARAM1_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("ModVolumeSoundCanal",
|
||||
_("Volume of the sound on a channel"),
|
||||
_("This action modify the volume of the sound on the specified channel. The volume is between 0 and 100."),
|
||||
_("Do _PARAM2__PARAM3_ to the volume of the sound on channel _PARAM1_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/sonVolume24.png",
|
||||
"res/actions/sonVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModVolumeMusicCanal",
|
||||
_("Volume of the music on a channel"),
|
||||
_("This action modify the volume of the music on the specified channel. The volume is between 0 and 100."),
|
||||
_("Do _PARAM2__PARAM3_ to the volume of the music on channel _PARAM1_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/musicVolume24.png",
|
||||
"res/actions/musicVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModGlobalVolume",
|
||||
_("Game global volume"),
|
||||
_("This action modify the global volume of the game. The volume is between 0 and 100."),
|
||||
_("Do _PARAM1__PARAM2_ to global sound level"),
|
||||
_("Audio"),
|
||||
"res/actions/volume24.png",
|
||||
"res/actions/volume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModPitchSoundChannel",
|
||||
_("Pitch of the sound of a channel"),
|
||||
_("This action modify pitch (speed) of the sound on a channel.\n1 is the default pitch."),
|
||||
_("Do _PARAM2__PARAM3_ to the pitch of the sound on channel _PARAM1_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModPitchMusicChannel",
|
||||
_("Pitch of the music on a channel"),
|
||||
_("This action modify the pitch of the music on the specified channel. 1 is the default pitch"),
|
||||
_("Do _PARAM2__PARAM3_ to the pitch of the music on channel _PARAM1_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModPlayingOffsetSoundChannel",
|
||||
_("Playing offset of the sound on a channel"),
|
||||
_("This action modify the playing offset of the sound on a channel"),
|
||||
_("Do _PARAM2__PARAM3_ to the playing offset of the sound on channel _PARAM1_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModPlayingOffsetMusicChannel",
|
||||
_("Playing offset of the music on a channel"),
|
||||
_("This action modify the playing offset of the music on the specified channel"),
|
||||
_("Do _PARAM2__PARAM3_ to the playing offset of the music on channel _PARAM1_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("PlaySound",
|
||||
_("Play a sound"),
|
||||
_("Play a sound."),
|
||||
_("Play the sound _PARAM1_"),
|
||||
_("Audio"),
|
||||
"res/actions/son24.png",
|
||||
"res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("soundfile", _("Audio file"))
|
||||
.AddParameter("yesorno", _("Repeat the sound"), "",true).SetDefaultValue("no")
|
||||
.AddParameter("expression", _("Volume (from 0 to 100, 100 by default)"), "",true).SetDefaultValue("100")
|
||||
.AddParameter("expression", _("Pitch (speed) (1 by default)"), "",true).SetDefaultValue("1")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddAction("PlayMusic",
|
||||
_("Play a music"),
|
||||
_("Play a music."),
|
||||
_("Play the music _PARAM1_"),
|
||||
_("Audio"),
|
||||
"res/actions/music24.png",
|
||||
"res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("musicfile", _("Audio file"))
|
||||
.AddParameter("yesorno", _("Repeat the sound"), "",true).SetDefaultValue("no")
|
||||
.AddParameter("expression", _("Volume (from 0 to 100, 100 by default)"), "",true).SetDefaultValue("100")
|
||||
.AddParameter("expression", _("Pitch (speed) (1 by default)"), "",true).SetDefaultValue("1")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("MusicPlaying",
|
||||
_("A music is being played"),
|
||||
_("Test if the music on a channel is being played"),
|
||||
_("Music on channel _PARAM1_ is being played"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/conditions/musicplaying24.png",
|
||||
"res/conditions/musicplaying.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("MusicPaused",
|
||||
_("A music is paused"),
|
||||
_("Test if the music on the specified channel is paused."),
|
||||
_("Music on channel _PARAM1_ is paused"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/conditions/musicpaused24.png",
|
||||
"res/conditions/musicpaused.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("MusicStopped",
|
||||
_("A music is stopped"),
|
||||
_("Test if the music on the specified channel is stopped."),
|
||||
_("Music on channel _PARAM1_ is stopped"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/conditions/musicstopped24.png",
|
||||
"res/conditions/musicstopped.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("SoundPlaying",
|
||||
_("A sound is being played"),
|
||||
_("Test if the sound on a channel is being played."),
|
||||
_("Sound on channel _PARAM1_ is being played"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/conditions/sonplaying24.png",
|
||||
"res/conditions/sonplaying.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("SoundPaused",
|
||||
_("A sound is paused"),
|
||||
_("Test if the sound on the specified channel is paused."),
|
||||
_("Sound on channel _PARAM1_ is paused"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/conditions/sonpaused24.png",
|
||||
"res/conditions/sonpaused.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("SoundStopped",
|
||||
_("A sound is stopped"),
|
||||
_("Test if the sound on the specified channel is stopped."),
|
||||
_("Sound on channel _PARAM1_ is stopped"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/conditions/sonstopped24.png",
|
||||
"res/conditions/sonstopped.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("SoundCanalVolume",
|
||||
_("Volume of the sound on a channel"),
|
||||
_("Test the volume of the sound on the specified channel. The volume is between 0 and 100."),
|
||||
_("The volume of the sound on channel _PARAM1_ is _PARAM2__PARAM3_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/conditions/sonVolume24.png",
|
||||
"res/conditions/sonVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Volume to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("MusicCanalVolume",
|
||||
_("Volume of the music on a channel"),
|
||||
_("Test the volume of the music on specified channel. The volume is between 0 and 100."),
|
||||
_("The volume of the music on channel _PARAM1_ is _PARAM2__PARAM3_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/conditions/musicVolume24.png",
|
||||
"res/conditions/musicVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Volume to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("GlobalVolume",
|
||||
_("Global volume"),
|
||||
_("Test the global sound level. The volume is between 0 and 100."),
|
||||
_("The global game volume is _PARAM2_ to _PARAM1_"),
|
||||
_("Audio"),
|
||||
"res/conditions/volume24.png",
|
||||
"res/conditions/volume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Volume to test"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("SoundChannelPitch",
|
||||
_("Pitch of the sound of a channel"),
|
||||
_("Test the pitch of the sound on the specified channel. 1 is the default pitch."),
|
||||
_("The pitch of the sound on channel _PARAM1_ is _PARAM2__PARAM3_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/conditions/sonVolume24.png",
|
||||
"res/conditions/sonVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Pitch to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("MusicChannelPitch",
|
||||
_("Pitch of the music on a channel"),
|
||||
_("Test the pitch (speed) of the music on specified channel. 1 is the default pitch."),
|
||||
_("The volume of the music on channel _PARAM1_ is _PARAM2__PARAM3_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/conditions/musicVolume24.png",
|
||||
"res/conditions/musicVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Pitch to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("SoundChannelPlayingOffset",
|
||||
_("Playing offset of the sound on a channel"),
|
||||
_("Test the playing offset of the sound on the specified channel."),
|
||||
_("The playing offset of the sound on channel _PARAM1_ is _PARAM2__PARAM3_"),
|
||||
_("Audio/Sounds on channels"),
|
||||
"res/conditions/sonVolume24.png",
|
||||
"res/conditions/sonVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Playing position (in seconds)"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("MusicChannelPlayingOffset",
|
||||
_("Playing offset of the music on a channel"),
|
||||
_("Test the playing offset of the music on the specified channel."),
|
||||
_("The playing offset of the music on channel _PARAM1_ is _PARAM2__PARAM3_"),
|
||||
_("Audio/Musics on channels"),
|
||||
"res/conditions/musicVolume24.png",
|
||||
"res/conditions/musicVolume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Playing position (in seconds)"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddExpression("SoundChannelPlayingOffset", _("Sound playing offset"), _("Sound playing offset"), _("Sounds"), "res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"));
|
||||
|
||||
extension.AddExpression("MusicChannelPlayingOffset", _("Music playing offset"), _("Music playing offset"), _("Musics"), "res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"));
|
||||
|
||||
extension.AddExpression("SoundChannelVolume", _("Sound volume"), _("Sound volume"), _("Sounds"), "res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"));
|
||||
|
||||
extension.AddExpression("MusicChannelVolume", _("Music volume"), _("Music volume"), _("Musics"), "res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"));
|
||||
|
||||
extension.AddExpression("SoundChannelPitch", _("Sound's pitch"), _("Sound's pitch"), _("Sounds"), "res/actions/son.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"));
|
||||
|
||||
extension.AddExpression("MusicChannelPitch", _("Music's pitch"), _("Music's pitch"), _("Musics"), "res/actions/music.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Channel"));
|
||||
|
||||
extension.AddExpression("GlobalVolume", _("Global volume"), _("Global volume value"), _("Sound level"), "res/conditions/volume.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,828 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
#include "GDCore/PlatformDefinition/Object.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsBaseObjectExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinObject",
|
||||
_("Base object"),
|
||||
_("Base object"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
gd::ObjectMetadata & obj = extension.AddObject("",
|
||||
_("Base object"),
|
||||
_("Base object"),
|
||||
"res/objeticon24.png",
|
||||
&CreateBaseObject);
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
obj.AddCondition("PosX",
|
||||
_("Compare X position of an object"),
|
||||
_("Compare the X position of the object."),
|
||||
_("The X position of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Position"),
|
||||
"res/conditions/position24.png",
|
||||
"res/conditions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("MettreX",
|
||||
_("X position of an object"),
|
||||
_("Change the X position of an object."),
|
||||
_("Do _PARAM1__PARAM2_ to the X position of _PARAM0_"),
|
||||
_("Position"),
|
||||
"res/actions/position24.png",
|
||||
"res/actions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("PosY",
|
||||
_("Compare Y position of an object"),
|
||||
_("Compare the Y position of an object."),
|
||||
_("The Y position of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Position"),
|
||||
"res/conditions/position24.png",
|
||||
"res/conditions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("MettreY",
|
||||
_("Y position of an object"),
|
||||
_("Change the Y position of an object."),
|
||||
_("Do _PARAM1__PARAM2_ to the Y position of _PARAM0_"),
|
||||
_("Position"),
|
||||
"res/actions/position24.png",
|
||||
"res/actions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("MettreXY",
|
||||
_("Position of an object"),
|
||||
_("Change the position of an object."),
|
||||
_("Do _PARAM1__PARAM2_;_PARAM3__PARAM4_ to the position of _PARAM0_"),
|
||||
_("Position"),
|
||||
"res/actions/position24.png",
|
||||
"res/actions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddAction("MettreAutourPos",
|
||||
_("Put an object around a position"),
|
||||
_("Position an object around a position, with specified angle and distance."),
|
||||
_("Put _PARAM0_ around _PARAM1_;_PARAM2_, with an angle of _PARAM4_ degrees and _PARAM3_ pixels distance."),
|
||||
_("Position"),
|
||||
"res/actions/positionAutour24.png",
|
||||
"res/actions/positionAutour.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("expression", _("Distance"))
|
||||
.AddParameter("expression", _("Angle, in degrees"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("SetAngle",
|
||||
_("Angle"),
|
||||
_("Change the angle of rotation of an object."),
|
||||
_("Do _PARAM1__PARAM2_ to angle of _PARAM0_"),
|
||||
_("Angle"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("Rotate",
|
||||
_("Rotate"),
|
||||
_("Rotate an object, clockwise if the speed is positive, counterclockwise otherwise."),
|
||||
_("Rotate _PARAM0_ at speed _PARAM1_deg/second"),
|
||||
_("Angle"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("Angular speed (in degrees per second)"))
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddAction("RotateTowardAngle",
|
||||
_("Rotate toward angle"),
|
||||
_("Rotate an object towards an angle with the specified speed."),
|
||||
_("Rotate _PARAM0_ towards _PARAM1_ at speed _PARAM2_deg/second"),
|
||||
_("Angle"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("Angle to rotate towards (in degrees)"))
|
||||
.AddParameter("expression", _("Angular speed (in degrees per second) (0 for immediate rotation)"))
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
obj.AddAction("RotateTowardPosition",
|
||||
_("Rotate toward position"),
|
||||
_("Rotate an object towards a position, with the specified speed."),
|
||||
_("Rotate _PARAM0_ towards _PARAM1_;_PARAM2_ at speed _PARAM3_deg/second"),
|
||||
_("Angle"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("expression", _("Angular speed (in degrees per second) (0 for immediate rotation)"))
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("AddForceXY",
|
||||
_("Add a force"),
|
||||
_("Add a force to an object. The object will move according to all forces it has."),
|
||||
_("Add to _PARAM0_ a force of _PARAM1_ p/s on X axis and _PARAM2_ p/s on Y axis"),
|
||||
_("Movement"),
|
||||
"res/actions/force24.png",
|
||||
"res/actions/force.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("Speed on X axis (in pixels per second)"))
|
||||
.AddParameter("expression", _("Speed on Y axis (in pixels per second)"))
|
||||
.AddParameter("expression", _("Damping (Default: 0)"));
|
||||
|
||||
obj.AddAction("AddForceAL",
|
||||
_("Add a force (angle)"),
|
||||
_("Add a force to an object. The object will move according to all forces it has. This action creates the force using the specified angle and length."),
|
||||
_("Add to _PARAM0_ a force, angle: _PARAM1_ degrees and length: _PARAM2_ pixels"),
|
||||
_("Movement"),
|
||||
"res/actions/force24.png",
|
||||
"res/actions/force.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("Angle"))
|
||||
.AddParameter("expression", _("Speed (in pixels per second)"))
|
||||
.AddParameter("expression", _("Damping (Default: 0)"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("AddForceVersPos",
|
||||
_("Add a force to move toward a position"),
|
||||
_("Add a force to an object to make it move toward a position."),
|
||||
_("Move _PARAM0_ to _PARAM1_;_PARAM2_ with a force of _PARAM3_ pixels"),
|
||||
_("Movement"),
|
||||
"res/actions/force24.png",
|
||||
"res/actions/force.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("expression", _("Speed (in pixels per second)"))
|
||||
.AddParameter("expression", _("Damping (Default: 0)"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("AddForceTournePos",
|
||||
_("Add a force to move around an position"),
|
||||
_("Add a force to an object to make it rotate around a position.\nNote that the movement is not precise, especially if the speed is high.\nTo position an object around a position more precisly, use the actions in the category \"Position\"."),
|
||||
_("Rotate _PARAM0_ around _PARAM1_;_PARAM2_ at _PARAM3_ deg/sec and _PARAM4_ pixels away"),
|
||||
_("Movement"),
|
||||
"res/actions/forceTourne24.png",
|
||||
"res/actions/forceTourne.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("X position of the center"))
|
||||
.AddParameter("expression", _("Y position of the center"))
|
||||
.AddParameter("expression", _("Speed (in Degrees per seconds)"))
|
||||
.AddParameter("expression", _("Distance (in pixels)"))
|
||||
.AddParameter("expression", _("Damping (Default: 0)"))
|
||||
.SetHidden();
|
||||
|
||||
|
||||
obj.AddAction("Arreter",
|
||||
_("Stop the object"),
|
||||
_("Stop the object by deleting all its forces."),
|
||||
_("Stop the object _PARAM0_"),
|
||||
_("Movement"),
|
||||
"res/actions/arreter24.png",
|
||||
"res/actions/arreter.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("Delete",
|
||||
_("Delete an object"),
|
||||
_("Delete the specified object."),
|
||||
_("Delete object _PARAM0_"),
|
||||
_("Objects"),
|
||||
"res/actions/delete24.png",
|
||||
"res/actions/delete.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddCodeOnlyParameter("currentScene","")
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddAction("ChangePlan",
|
||||
_("Z order"),
|
||||
_("Modify the z order of an object"),
|
||||
_("Do _PARAM1__PARAM2_ to z-Order of _PARAM0_"),
|
||||
_("Z order"),
|
||||
"res/actions/planicon24.png",
|
||||
"res/actions/planicon.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("ChangeLayer",
|
||||
_("Layer"),
|
||||
_("Change the layer where is the object."),
|
||||
_("Put _PARAM0_ on the layer _PARAM1_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/layer24.png",
|
||||
"res/actions/layer.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("layer", _("Put on the layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("ModVarObjet",
|
||||
_("Modify a variable of an object"),
|
||||
_("Modify the value of a variable of an object"),
|
||||
_("Do _PARAM2__PARAM3_ to variable _PARAM1_ of _PARAM0_"),
|
||||
_("Variables"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("ModVarObjetTxt",
|
||||
_("Modify the text of a variable of an object"),
|
||||
_("Modify the text of a variable of an object"),
|
||||
_("Do _PARAM2__PARAM3_ to the text of variable _PARAM1_ of _PARAM0_"),
|
||||
_("Variables"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("string", _("Text"))
|
||||
.SetManipulatedType("string");
|
||||
|
||||
obj.AddCondition("ObjectVariableChildExists",
|
||||
_("Child existence"),
|
||||
_("Return true if the specified child of the variable exists."),
|
||||
_("Child _PARAM2_ of variable _PARAM1_ of _PARAM0_ exists"),
|
||||
_("Variables/Structures"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"))
|
||||
.AddParameter("string", _("Name of the child"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("ObjectVariableRemoveChild",
|
||||
_("Remove a child"),
|
||||
_("Remove a child from a variable of an object."),
|
||||
_("Remove child _PARAM2_ from variable _PARAM1_ of _PARAM0_"),
|
||||
_("Variables/Structure"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"))
|
||||
.AddParameter("string", _("Child's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("Cache",
|
||||
_("Hide"),
|
||||
_("Hide the specified object."),
|
||||
_("Hide the object _PARAM0_"),
|
||||
_("Visibility"),
|
||||
"res/actions/visibilite24.png",
|
||||
"res/actions/visibilite.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddAction("Montre",
|
||||
_("Show"),
|
||||
_("Show the specified object"),
|
||||
_("Show object _PARAM0_"),
|
||||
_("Visibility"),
|
||||
"res/actions/visibilite24.png",
|
||||
"res/actions/visibilite.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddCodeOnlyParameter("inlineCode", "false")
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddCondition("Angle",
|
||||
_("Angle"),
|
||||
_("Compare angle of the specified object."),
|
||||
_("Angle of _PARAM0_ is _PARAM1__PARAM2_ deg."),
|
||||
_("Angle"),
|
||||
"res/conditions/direction24.png",
|
||||
"res/conditions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to compare (in degrees)"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("Plan",
|
||||
_("Compare Z order"),
|
||||
_("Compare the z-order of the specified object."),
|
||||
_("Z Order of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Z order"),
|
||||
"res/conditions/planicon24.png",
|
||||
"res/conditions/planicon.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Z order"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("Layer",
|
||||
_("Compare layer"),
|
||||
_("Test if the object is on the specified layer."),
|
||||
_("_PARAM0_ is on layer _PARAM1_"),
|
||||
_("Layer"),
|
||||
"res/conditions/layer24.png",
|
||||
"res/conditions/layer.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddCondition("Visible",
|
||||
_("Visibility of an object"),
|
||||
_("Test if an object is not hidden."),
|
||||
_("The object _PARAM0_ is visible"),
|
||||
_("Visibility"),
|
||||
"res/conditions/visibilite24.png",
|
||||
"res/conditions/visibilite.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddCondition("Invisible",
|
||||
_("Invisibility of an object"),
|
||||
_("Test if an object is hidden."),
|
||||
_("_PARAM0_ is hidden"),
|
||||
_("Visibility"),
|
||||
"res/conditions/visibilite24.png",
|
||||
"res/conditions/visibilite.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.SetHidden(); //Inverted "Visible" condition does the same thing.
|
||||
|
||||
obj.AddCondition("Arret",
|
||||
_("Object is stopped"),
|
||||
_("Test if an object does not move"),
|
||||
_("_PARAM0_ is stopped"),
|
||||
_("Movement"),
|
||||
"res/conditions/arret24.png",
|
||||
"res/conditions/arret.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddCondition("Vitesse",
|
||||
_("Speed"),
|
||||
_("Compare the overall speed of an object"),
|
||||
_("Overall speed of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Movement"),
|
||||
"res/conditions/vitesse24.png",
|
||||
"res/conditions/vitesse.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Speed"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("AngleOfDisplacement",
|
||||
_("Angle of moving"),
|
||||
_("Compare the angle of displacement of an object"),
|
||||
_("Angle of displacement of _PARAM0_ is _PARAM1_ (tolerance : _PARAM2_ degrees)"),
|
||||
_("Movement"),
|
||||
"res/conditions/vitesse24.png",
|
||||
"res/conditions/vitesse.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("expression", _("Angle, in degrees"))
|
||||
.AddParameter("expression", _("Tolerance"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddCondition("VarObjet",
|
||||
_("Value of an object's variable"),
|
||||
_("Compare the value of a variable of an object."),
|
||||
_("Variable _PARAM1_ of _PARAM0_ is _PARAM2__PARAM3_"),
|
||||
_("Variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("VarObjetTxt",
|
||||
_("Text of an object's variable"),
|
||||
_("Compare the text of a variable of an object."),
|
||||
_("The text of variable _PARAM1_ of _PARAM0_ is _PARAM2__PARAM3_"),
|
||||
_("Variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("string", _("Text to test"))
|
||||
.SetManipulatedType("string");
|
||||
|
||||
obj.AddCondition("VarObjetDef",
|
||||
_("Variable defined"),
|
||||
_("Test "),
|
||||
_("Variable _PARAM1 of _PARAM0_ is defined"),
|
||||
_("Variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("string", _("Variable"))
|
||||
.SetHidden();
|
||||
|
||||
obj.AddCondition("BehaviorActivated",
|
||||
_("Behavior activated"),
|
||||
_("Return true if the behavior is activated for the object."),
|
||||
_("Behavior _PARAM1_ of _PARAM0_ is activated"),
|
||||
_("Behaviors"),
|
||||
"res/behavior24.png",
|
||||
"res/behavior16.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("behavior", _("Behavior"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("ActivateBehavior",
|
||||
_("De/activate a behavior"),
|
||||
_("De/activate the behavior for the object."),
|
||||
_("Activate behavior _PARAM1_ of _PARAM0_: _PARAM2_"),
|
||||
_("Behaviors"),
|
||||
"res/behavior24.png",
|
||||
"res/behavior16.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("behavior", _("Behavior"))
|
||||
.AddParameter("yesorno", _("Activate?"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("AddForceVers",
|
||||
_("Add a force to move toward an object"),
|
||||
_("Add a force to an object to make it move toward another."),
|
||||
_("Move _PARAM0_ to _PARAM1_ with a force of _PARAM2_ pixels"),
|
||||
_("Movement"),
|
||||
"res/actions/forceVers24.png",
|
||||
"res/actions/forceVers.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectPtr", _("Target Object"))
|
||||
.AddParameter("expression", _("Speed (in pixels per second)"))
|
||||
.AddParameter("expression", _("Damping (Default: 0)"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
obj.AddAction("AddForceTourne",
|
||||
_("Add a force to move around an object"),
|
||||
_("Add a force to an object to make it rotate around another.\nNote that the movement is not precise, especially if the speed is high.\nTo position an object around a position more precisly, use the actions in category \"Position\"."),
|
||||
_("Rotate _PARAM0_ around _PARAM1_ at _PARAM2_ deg/sec and _PARAM3_ pixels away"),
|
||||
_("Movement"),
|
||||
"res/actions/forceTourne24.png",
|
||||
"res/actions/forceTourne.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectPtr", _("Rotate around this object"))
|
||||
.AddParameter("expression", _("Speed (in degrees per second)"))
|
||||
.AddParameter("expression", _("Distance (in pixels)"))
|
||||
.AddParameter("expression", _("Damping (Default: 0)"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
|
||||
obj.AddAction("MettreAutour",
|
||||
_("Put an object around another"),
|
||||
_("Position an object around another, with the specified angle and distance."),
|
||||
_("Put _PARAM0_ around _PARAM1_, with an angle of _PARAM3_ degrees and _PARAM2_ pixels distance."),
|
||||
_("Position"),
|
||||
"res/actions/positionAutour24.png",
|
||||
"res/actions/positionAutour.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectPtr", _("\"Center\" Object"))
|
||||
.AddParameter("expression", _("Distance"))
|
||||
.AddParameter("expression", _("Angle, in degrees"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
//Deprecated action
|
||||
obj.AddAction("Rebondir",
|
||||
_("Move an object away from another"),
|
||||
_("Move an object away from another, using forces."),
|
||||
_("Move _PARAM0_ away of _PARAM1_ (only _PARAM0_ will move)"),
|
||||
_("Movement"),
|
||||
"res/actions/ecarter24.png",
|
||||
"res/actions/ecarter.png")
|
||||
|
||||
.SetHidden()
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectList", _("Object 2 (won't move)"));
|
||||
|
||||
|
||||
//Deprecated action
|
||||
obj.AddAction("Ecarter",
|
||||
_("Move an object away from another"),
|
||||
_("Move an object away from another without using forces."),
|
||||
_("Move _PARAM0_ away of _PARAM2_ (only _PARAM0_ will move)"),
|
||||
_("Position"),
|
||||
"res/actions/ecarter24.png",
|
||||
"res/actions/ecarter.png")
|
||||
|
||||
.SetHidden()
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectList", _("Object 2 (won't move)"));
|
||||
|
||||
|
||||
obj.AddAction("SeparateFromObjects",
|
||||
_("Separate two objects"),
|
||||
_("Move an object away from another using their collision masks.\nBe sure to call this action on a reasonable number of objects so as\nnot to slow down the game."),
|
||||
_("Move _PARAM0_ away of _PARAM1_ (only _PARAM0_ will move)"),
|
||||
_("Position"),
|
||||
"res/actions/ecarter24.png",
|
||||
"res/actions/ecarter.png")
|
||||
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectList", _("Objects"))
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddExpression("X", _("X position"), _("X position of the object"), _("Position"), "res/actions/position.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("Y", _("Y position"), _("Y position of the object"), _("Position"), "res/actions/position.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("Angle", _("Angle"), _("Current angle, in degrees, of the object"), _("Angle"), "res/actions/direction.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("ForceX", _("Average X coordinates of forces"), _("Average X coordinates of forces"), _("Movement"), "res/actions/force.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("ForceY", _("Average Y coordinates of forces"), _("Average Y coordinates of forces"), _("Movement"), "res/actions/force.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("ForceAngle", _("Average angle of the forces"), _("Average angle of the forces"), _("Movement"), "res/actions/force.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("ForceLength", _("Average length of the forces"), _("Average length of the forces"), _("Movement"), "res/actions/force.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("Longueur", _("Average length of the forces"), _("Average length of the forces"), _("Movement"), "res/actions/force.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.SetHidden();
|
||||
|
||||
|
||||
obj.AddExpression("Width", _("Width"), _("Width of the object"), _("Size"), "res/actions/scaleWidth.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("Largeur", _("Width"), _("Width of the object"), _("Size"), "res/actions/scaleWidth.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.SetHidden();
|
||||
|
||||
obj.AddExpression("Height", _("Height"), _("Height of the object"), _("Size"), "res/actions/scaleHeight.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("Hauteur", _("Height"), _("Height of the object"), _("Size"), "res/actions/scaleHeight.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.SetHidden();
|
||||
|
||||
obj.AddExpression("ZOrder", _("Z order"), _("Z order of an object"), _("Visibility"), "res/actions/planicon.png")
|
||||
.AddParameter("object", _("Object"));
|
||||
|
||||
obj.AddExpression("Plan", _("Z order"), _("Z order of an object"), _("Visibility"), "res/actions/planicon.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.SetHidden();
|
||||
|
||||
obj.AddExpression("Distance", _("Distance between two objects"), _("Distance between two objects"), _("Position"), "res/conditions/distance.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectPtr", _("Object"));
|
||||
|
||||
obj.AddExpression("SqDistance", _("Square distance between two objects"), _("Square distance between two objects"), _("Position"), "res/conditions/distance.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectPtr", _("Object"));
|
||||
|
||||
obj.AddExpression("Variable", _("Object's variable"), _("Object's variable"), _("Variables"), "res/actions/var.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"));
|
||||
|
||||
obj.AddStrExpression("VariableString", _("Object's variable"), _("Text of variable of an object"), _("Variables"), "res/actions/var.png")
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectvar", _("Variable"));
|
||||
|
||||
extension.AddAction("Create",
|
||||
_("Create an object"),
|
||||
_("Create an object at specified position"),
|
||||
_("Create object _PARAM1_ at position _PARAM2_;_PARAM3_"),
|
||||
_("Objects"),
|
||||
"res/actions/create24.png",
|
||||
"res/actions/create.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectListWithoutPicking", _("Object to create"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "", true).SetDefaultValue("\"\"")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddAction("CreateByName",
|
||||
_("Create an object from its name"),
|
||||
_("Among the objects of the specified group, the action will create the object with the specified name."),
|
||||
_("Among objects _PARAM1_, create object named _PARAM2_ at position _PARAM3_;_PARAM4_"),
|
||||
_("Objects"),
|
||||
"res/actions/create24.png",
|
||||
"res/actions/create.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectListWithoutPicking", _("Groups containing objects which can be created by the action"))
|
||||
.AddParameter("string", _("Text representing the name of the object to create"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "", true).SetDefaultValue("\"\"")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("AjoutObjConcern",
|
||||
_("Pick all objects"),
|
||||
_("Pick all objects with this name."),
|
||||
_("Pick all _PARAM1_"),
|
||||
_("Objects"),
|
||||
"res/actions/add24.png",
|
||||
"res/actions/add.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("AjoutHasard",
|
||||
_("Pick a random object"),
|
||||
_("Pick only one object with this name among all"),
|
||||
_("Pick a random _PARAM1_"),
|
||||
_("Objects"),
|
||||
"res/actions/ajouthasard24.png",
|
||||
"res/actions/ajouthasard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddAction("MoveObjects",
|
||||
_("Apply objects movement"),
|
||||
_("Moves the objects according to the forces they have. GDevelop call this action at the end of the events by default."),
|
||||
_("Apply objects movement"),
|
||||
_("Movement"),
|
||||
"res/actions/doMove24.png",
|
||||
"res/actions/doMove.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("SeDirige",
|
||||
_("An object is moving toward another"),
|
||||
_("Check if an object moves toward another.\nThe first object must move."),
|
||||
_("_PARAM0_ is moving toward _PARAM1_"),
|
||||
_("Movement"),
|
||||
"res/conditions/sedirige24.png",
|
||||
"res/conditions/sedirige.png")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddParameter("objectList", _("Object 2"))
|
||||
.AddParameter("expression", _("Angle of tolerance"))
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("Distance",
|
||||
_("Distance between two objects"),
|
||||
_("Compare the distance between two objects.\nIf condition is inverted, only objects that have a distance greater than specified to any other object will be picked."),
|
||||
_("_PARAM0_ distance to _PARAM1_ is below _PARAM2_ pixels"),
|
||||
_("Position"),
|
||||
"res/conditions/distance24.png",
|
||||
"res/conditions/distance.png")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddParameter("objectList", _("Object 2"))
|
||||
.AddParameter("expression", _("Distance"))
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("AjoutObjConcern",
|
||||
_("Pick all objects"),
|
||||
_("Pick all objects with this name."),
|
||||
_("Pick all _PARAM1_"),
|
||||
_("Objects"),
|
||||
"res/conditions/add24.png",
|
||||
"res/conditions/add.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("AjoutHasard",
|
||||
_("Pick a random object"),
|
||||
_("Pick only one object with this name among all"),
|
||||
_("Pick a random _PARAM1_"),
|
||||
_("Objects"),
|
||||
"res/conditions/ajouthasard24.png",
|
||||
"res/conditions/ajouthasard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("PickNearest",
|
||||
_("Pick nearest object"),
|
||||
_("Among the objects, pick the one that is nearest (or furthest if condition is inverted) from the specified position."),
|
||||
_("Pick nearest _PARAM0_ to _PARAM1_;_PARAM2_"),
|
||||
_("Objects"),
|
||||
"res/conditions/distance24.png",
|
||||
"res/conditions/distance.png")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("NbObjet",
|
||||
_("Objects count"),
|
||||
_("Compare the number of picked objects"),
|
||||
_("The number of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Objects"),
|
||||
"res/conditions/nbObjet24.png",
|
||||
"res/conditions/nbObjet.png")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("CollisionNP", //"CollisionNP" cames from an old condition to test collision between two sprites non precisely.
|
||||
_("Collision"),
|
||||
_("Test the collision between two objects using their collision mask.\nNote that some objects may not have a collision mask.\nSome others, like Sprite, provide also more precise collision conditions."),
|
||||
_("_PARAM0_ is in collision with _PARAM1_"),
|
||||
_("Collision"),
|
||||
"res/conditions/collision24.png",
|
||||
"res/conditions/collision.png")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("EstTourne",
|
||||
_("An object is turned toward another"),
|
||||
_("Test if an object is turned toward another"),
|
||||
_("_PARAM0_ is rotated towards _PARAM1_"),
|
||||
_("Angle"),
|
||||
"res/conditions/estTourne24.png",
|
||||
"res/conditions/estTourne.png")
|
||||
.AddParameter("objectList", _("Name of the object"))
|
||||
.AddParameter("objectList", _("Name of the second object"))
|
||||
.AddParameter("expression", _("Angle of tolerance, in degrees (0: minimum tolerance)"))
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddExpression("Count", _("Number of objects"), _("Count the number of the specified objects currently picked"), _("Objects"), "res/conditions/nbObjet.png")
|
||||
.AddParameter("objectList", _("Object"));
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,343 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsCameraExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinCamera",
|
||||
_("Cameras and layers features"),
|
||||
_("Builtin camera extension"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("CameraX",
|
||||
_("Camera center X position"),
|
||||
_("Compare the X position of a the center of a camera."),
|
||||
_("X position of camera _PARAM4_ is _PARAM1__PARAM2_ (layer: _PARAM3_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("CameraY",
|
||||
_("Camera center Y position"),
|
||||
_("Compare the Y position of a the center of a camera."),
|
||||
_("The Y position of camera _PARAM4_ is _PARAM1__PARAM2_ (layer: _PARAM3_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0")
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("CameraX",
|
||||
_("Camera center X position"),
|
||||
_("Change X position of the center of the specified camera."),
|
||||
_("Do _PARAM1__PARAM2_ to X position of camera _PARAM4_ (layer: _PARAM3_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("CameraY",
|
||||
_("Camera center Y position"),
|
||||
_("Change Y position of the center of the specified camera."),
|
||||
_("Do _PARAM1__PARAM2_ to Y position of camera _PARAM4_ (layer: _PARAM3_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("CameraWidth",
|
||||
_("Width of a camera"),
|
||||
_("Test the width of a camera of a layer"),
|
||||
_("The width of camera _PARAM2_ of layer _PARAM1_ is _PARAM3__PARAM4_"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("CameraHeight",
|
||||
_("Height of a camera"),
|
||||
_("Test the height of a camera of a layer"),
|
||||
_("The height of camera _PARAM2_ of layer _PARAM1_ is _PARAM3__PARAM4_"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("CameraAngle",
|
||||
_("Angle of a camera of a layer"),
|
||||
_("Test a camera angle."),
|
||||
_("Angle of camera is _PARAM1__PARAM2_ (layer: _PARAM3_, camera: _PARAM4_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/camera24.png",
|
||||
"res/conditions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("RotateCamera",
|
||||
_("Change camera angle"),
|
||||
_("This action modify the angle of a camera of the specified layer."),
|
||||
_("Do _PARAM1__PARAM2_ to angle of camera (layer: _PARAM3_, camera: _PARAM4_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("AddCamera",
|
||||
_("Add a camera to a layer"),
|
||||
_("This action add a camera to a layer"),
|
||||
_("Add a camera to layer _PARAM1_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Width"), "",true)
|
||||
.AddParameter("expression", _("Height"), "",true)
|
||||
.AddParameter("expression", _("Render zone: Top left side: X Position (between 0 and 1)"), "",true)
|
||||
.AddParameter("expression", _("Render zone: Top left side: Y Position (between 0 and 1)"), "",true)
|
||||
.AddParameter("expression", _("Render zone: Bottom right side: X Position (between 0 and 1)"), "",true)
|
||||
.AddParameter("expression", _("Render zone: Bottom right side: Y Position (between 0 and 1)"), "",true)
|
||||
.MarkAsComplex();
|
||||
|
||||
extension.AddAction("DeleteCamera",
|
||||
_("Delete a camera of a layer"),
|
||||
_("Remove the specified camera from a layer"),
|
||||
_("Delete camera _PARAM2_ from layer _PARAM1_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number"))
|
||||
.MarkAsComplex();
|
||||
|
||||
extension.AddAction("CameraSize",
|
||||
_("Modify the size of a camera"),
|
||||
_("This action modify the size of a camera of the specified layer. The zoom will be reset."),
|
||||
_("Change the size of camera _PARAM2_ of _PARAM1_ to _PARAM3_*_PARAM4_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number"))
|
||||
.AddParameter("expression", _("Width"))
|
||||
.AddParameter("expression", _("Height"))
|
||||
.MarkAsComplex();
|
||||
|
||||
extension.AddAction("CameraViewport",
|
||||
_("Modify the render zone of a camera"),
|
||||
_("This action modify the render zone of a camera of the specified layer."),
|
||||
_("Set the render zone of camera _PARAM2_ from layer _PARAM1_ to _PARAM3_;_PARAM4_ _PARAM5_;_PARAM6_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number"))
|
||||
.AddParameter("expression", _("Render zone: Top left side: X Position (between 0 and 1)"))
|
||||
.AddParameter("expression", _("Render zone: Top left side: Y Position (between 0 and 1)"))
|
||||
.AddParameter("expression", _("Render zone: Bottom right side: X Position (between 0 and 1)"))
|
||||
.AddParameter("expression", _("Render zone: Bottom right side: Y Position (between 0 and 1)"))
|
||||
.MarkAsComplex();
|
||||
|
||||
extension.AddAction("ZoomCamera",
|
||||
_("Change camera zoom."),
|
||||
_("Change camera zoom."),
|
||||
_("Change camera zoom to _PARAM1_ (layer : _PARAM2_, camera : _PARAM3_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Value (1:Initial zoom, 2:Zoom x2, 0.5:Unzoom x2...)"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
extension.AddAction("FixCamera",
|
||||
_("Center the camera on an object within limits"),
|
||||
_("Center the camera on the specified object, without leaving the specified limits."),
|
||||
_("Center the camera on _PARAM1_ (limit : from _PARAM2_;_PARAM3_ to _PARAM4_;_PARAM5_) (layer: _PARAM7_, camera: _PARAM8_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectPtr", _("Object"))
|
||||
.AddParameter("expression", _("Top left side of the boundary: X Position"))
|
||||
.AddParameter("expression", _("Top left side of the boundary: Y Position"))
|
||||
.AddParameter("expression", _("Bottom right side of the boundary: X Position"))
|
||||
.AddParameter("expression", _("Bottom right side of the boundary: Y Position"))
|
||||
.AddParameter("yesorno", _("Anticipate the movement of the object (yes by default)"), "",true).SetDefaultValue("true")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("CentreCamera",
|
||||
_("Center the camera on an object"),
|
||||
_("Center the camera on the specified object."),
|
||||
_("Center camera on _PARAM1_ (layer: _PARAM3_, camera: _PARAM4_)"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/camera24.png",
|
||||
"res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("objectPtr", _("Object"))
|
||||
.AddParameter("yesorno", _("Anticipate the movement of the object (yes by default)"), "",true).SetDefaultValue("true")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddAction("ShowLayer",
|
||||
_("Show a layer"),
|
||||
_("Show a layer."),
|
||||
_("Show layer _PARAM1_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/layer24.png",
|
||||
"res/actions/layer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("HideLayer",
|
||||
_("Hide a layer"),
|
||||
_("Hide a layer."),
|
||||
_("Hide layer _PARAM1_"),
|
||||
_("Layers and cameras"),
|
||||
"res/actions/layer24.png",
|
||||
"res/actions/layer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("LayerVisible",
|
||||
_("Visibility of a layer"),
|
||||
_("Test if a layer is displayed"),
|
||||
_("Layer _PARAM1_ is visible"),
|
||||
_("Layers and cameras"),
|
||||
"res/conditions/layer24.png",
|
||||
"res/conditions/layer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer (base layer if empty)")).SetDefaultValue("\"\"")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddExpression("CameraWidth", _("Width of a camera of a layer"), _("Width of a camera of a layer"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraHeight", _("Height of a camera of a layer"), _("Height of a camera of a layer"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraViewportLeft", _("X position of the top left side point of a render zone"), _("X position of the top left side point of a render zone"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraViewportTop", _("Y position of the top left side point of a render zone"), _("Y position of the top left side point of a render zone"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraViewportRight", _("X position of the bottom right side point of a render zone"), _("X position of the bottom right side point of a render zone"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraViewportBottom", _("Y position of the bottom right side point of a render zone"), _("Y position of the bottom right side point of a render zone"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"))
|
||||
.AddParameter("expression", _("Camera number (default : 0)")).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraX", _("Camera X position"), _("Camera X position"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("VueX", _("Camera X position"), _("Camera X position"), _("Camera"), "res/actions/camera.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraY", _("Camera Y position"), _("Camera Y position"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("VueY", _("Camera Y position"), _("Camera Y position"), _("Camera"), "res/actions/camera.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("CameraRotation", _("Angle of a camera of a layer"), _("Angle of a camera of a layer"), _("Camera"), "res/actions/camera.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("VueRotation", _("Angle of a camera of a layer"), _("Angle of a camera of a layer"), _("Camera"), "res/actions/camera.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "",true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "",true).SetDefaultValue("0");
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,61 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsCommonConversionsExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinCommonConversions",
|
||||
_("Standard Conversions"),
|
||||
_("Built-in extension providing standard conversions expressions."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
|
||||
extension.AddExpression("ToNumber",
|
||||
_("Text > Number"),
|
||||
_("Convert the text to a number"),
|
||||
_("Conversion"),
|
||||
"res/conditions/toujours24.png")
|
||||
.AddParameter("string", _("Text to convert in a number"));
|
||||
|
||||
extension.AddStrExpression("ToString",
|
||||
_("Number > Text"),
|
||||
_("Convert the result of the expression in a text"),
|
||||
_("Conversion"),
|
||||
"res/conditions/toujours24.png")
|
||||
.AddParameter("expression", _("Expression to be converted to a text"));
|
||||
|
||||
extension.AddStrExpression("LargeNumberToString",
|
||||
_("Number > Text ( without scientific notation )"),
|
||||
_("Convert the result of the expression in a text, without using the scientific notation"),
|
||||
_("Conversion"),
|
||||
"res/conditions/toujours24.png")
|
||||
.AddParameter("expression", _("Expression to be converted to a text"));
|
||||
|
||||
extension.AddExpression("ToRad",
|
||||
_("Degrees > Radians"),
|
||||
_("Converts the angle, expressed in degrees, into radians"),
|
||||
_("Conversion"),
|
||||
"res/conditions/toujours24.png")
|
||||
.AddParameter("expression", _("Angle, in degrees"));
|
||||
|
||||
|
||||
extension.AddExpression("ToDeg",
|
||||
_("Radians > Degrees"),
|
||||
_("Converts the angle, expressed in radians, into degrees"),
|
||||
_("Conversion"),
|
||||
"res/conditions/toujours24.png")
|
||||
.AddParameter("expression", _("Angle, in radians"));
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,107 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
#if defined(GD_IDE_ONLY)
|
||||
#include "GDCore/Events/Event.h"
|
||||
#include "GDCore/Events/Builtin/StandardEvent.h"
|
||||
#include "GDCore/Events/Builtin/CommentEvent.h"
|
||||
#include "GDCore/Events/Builtin/ForEachEvent.h"
|
||||
#include "GDCore/Events/Builtin/WhileEvent.h"
|
||||
#include "GDCore/Events/Builtin/RepeatEvent.h"
|
||||
#include "GDCore/Events/Builtin/LinkEvent.h"
|
||||
#include "GDCore/Events/Builtin/GroupEvent.h"
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsCommonInstructionsExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinCommonInstructions",
|
||||
_("Standard events"),
|
||||
_("Built-in extension providing standard events."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("Or",
|
||||
_("Or"),
|
||||
_("Return true if one of the sub conditions is true"),
|
||||
_("If one of these conditions is true:"),
|
||||
_("Advanced"),
|
||||
"res/conditions/or24.png",
|
||||
"res/conditions/or.png")
|
||||
.SetCanHaveSubInstructions()
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("And",
|
||||
_("And"),
|
||||
_("Return true if all sub conditions are true"),
|
||||
_("If all of these conditions are true:"),
|
||||
_("Advanced"),
|
||||
"res/conditions/and24.png",
|
||||
"res/conditions/and.png")
|
||||
.SetCanHaveSubInstructions()
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("Not",
|
||||
_("Not"),
|
||||
_("Return the contrary of the result of the sub conditions"),
|
||||
_("Invert the logical result of these conditions:"),
|
||||
_("Advanced"),
|
||||
"res/conditions/not24.png",
|
||||
"res/conditions/not.png")
|
||||
.SetCanHaveSubInstructions()
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("Once",
|
||||
_("Trigger once while true"),
|
||||
_("Run actions only once, for each time the conditions have been met."),
|
||||
_("Trigger once"),
|
||||
_("Advanced"),
|
||||
"res/conditions/once24.png",
|
||||
"res/conditions/once.png");
|
||||
|
||||
extension.AddEvent("Standard", _("Standard event"),
|
||||
_("Standard event: Actions are run if conditions are fulfilled."),
|
||||
"", "res/eventaddicon.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::StandardEvent));
|
||||
|
||||
extension.AddEvent("Link", _("Link"),
|
||||
_("Link to some external events"),
|
||||
"", "res/lienaddicon.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::LinkEvent));
|
||||
|
||||
extension.AddEvent("Comment", _("Comment"),
|
||||
_("Event displaying a text in the events editor"),
|
||||
"", "res/comment.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::CommentEvent));
|
||||
|
||||
extension.AddEvent("While", _("While"),
|
||||
_("The event is repeated while the conditions are true"),
|
||||
"", "res/while.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::WhileEvent));
|
||||
|
||||
extension.AddEvent("Repeat", _("Repeat"),
|
||||
_("Event repeated a number of times"),
|
||||
"", "res/repeat.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::RepeatEvent));
|
||||
|
||||
extension.AddEvent("ForEach", _("For each object"),
|
||||
_("Repeat the event for each specified object."),
|
||||
"", "res/foreach.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::ForEachEvent));
|
||||
|
||||
extension.AddEvent("Group", _("Group"),
|
||||
_("Group containing events"),
|
||||
"", "res/foreach.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::GroupEvent));
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,37 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsExternalLayoutsExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinExternalLayouts",
|
||||
_("External layouts"),
|
||||
_("Built-in extension providing actions and conditions related to external layouts"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddAction("CreateObjectsFromExternalLayout",
|
||||
_("Create objects from an external layout"),
|
||||
_("Create objects from an external layout."),
|
||||
_("Create objects from the external layout _PARAM1_"),
|
||||
_("External layouts"),
|
||||
"res/conditions/fichier24.png",
|
||||
"res/conditions/fichier.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Name of the external layout"))
|
||||
.AddParameter("expression", _("X position of the origin"), "",true).SetDefaultValue("0")
|
||||
.AddParameter("expression", _("Y position of the origin"), "",true).SetDefaultValue("0")
|
||||
.MarkAsAdvanced();
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,151 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsFileExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinFile",
|
||||
_("Storage and files"),
|
||||
_("Built-in extension providing functions to store data and manipulate files."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("GroupExists",
|
||||
_("Existence of a group"),
|
||||
_("Check if an element (example : PlayerState/CurrentLevel) exists in the file.\nSpaces are forbidden in element names."),
|
||||
_("_PARAM1_ exists in file _PARAM0_"),
|
||||
_("Storage"),
|
||||
"res/conditions/fichier24.png",
|
||||
"res/conditions/fichier.png")
|
||||
.AddParameter("file", _("Filename"))
|
||||
.AddParameter("string", _("Group"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("LoadFile",
|
||||
_("Load a structured file in memory"),
|
||||
_("This action load the structured file in memory, so as to write and read it.\nYou can open and write without using this action, but it will be slower.\nIf you use this action, do not forget to unload the file from memory.\n\nFor the native platform, the file format is XML."),
|
||||
_("Load structured file _PARAM0_ in memory"),
|
||||
_("Storage"),
|
||||
"res/actions/fichier24.png",
|
||||
"res/actions/fichier.png")
|
||||
.AddParameter("file", _("File"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("UnloadFile",
|
||||
_("Close a structured file"),
|
||||
_("This action close the structured file previously loaded in memory, saving all changes made."),
|
||||
_("Close structured file _PARAM0_"),
|
||||
_("Storage"),
|
||||
"res/actions/fichier24.png",
|
||||
"res/actions/fichier.png")
|
||||
.AddParameter("file", _("File"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("EcrireFichierExp",
|
||||
_("Write a value"),
|
||||
_("Write the result of the expression in the file, in the specified element.\nSpecify the structure leading to the element using / (example : Root/Level/Current)\nSpaces are forbidden in element names."),
|
||||
_("Write _PARAM2_ in _PARAM1_ of file _PARAM0_"),
|
||||
_("Storage"),
|
||||
"res/actions/fichier24.png",
|
||||
"res/actions/fichier.png")
|
||||
.AddParameter("file", _("File"))
|
||||
.AddParameter("string", _("Group"))
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
extension.AddAction("EcrireFichierTxt",
|
||||
_("Write a text"),
|
||||
_("Write the text in the file, in the specified element.\nSpecify the structure leading to the element using / (example : Root/Level/Current)\nSpaces are forbidden in element names."),
|
||||
_("Write _PARAM2_ in _PARAM1_ of file _PARAM0_"),
|
||||
_("Storage"),
|
||||
"res/actions/fichier24.png",
|
||||
"res/actions/fichier.png")
|
||||
.AddParameter("file", _("File"))
|
||||
.AddParameter("string", _("Group"))
|
||||
.AddParameter("string", _("Text"));
|
||||
|
||||
extension.AddAction("LireFichierExp",
|
||||
_("Read a value"),
|
||||
_("Read the value saved in the specified element and store it in a variable.\nSpecify the structure leading to the element using / (example : Root/Level/Current)\nSpaces are forbidden in element names."),
|
||||
_("Read _PARAM1_ from file _PARAM0_ and store value in _PARAM3_"),
|
||||
_("Storage"),
|
||||
"res/actions/fichier24.png",
|
||||
"res/actions/fichier.png")
|
||||
.AddParameter("file", _("File"))
|
||||
.AddParameter("string", _("Group"))
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("scenevar", _("Scene variables"));
|
||||
|
||||
extension.AddAction("LireFichierTxt",
|
||||
_("Read a text"),
|
||||
_("Read the text saved in the specified element and store it in a variable.\nSpecify the structure leading to the element using / (example : Root/Level/Current)\nSpaces are forbidden in element names."),
|
||||
_("Read _PARAM1_ from file _PARAM0_ and store as text in _PARAM3_"),
|
||||
_("Storage"),
|
||||
"res/actions/fichier24.png",
|
||||
"res/actions/fichier.png")
|
||||
.AddParameter("file", _("File"))
|
||||
.AddParameter("string", _("Group"))
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("scenevar", _("Scene variables"));
|
||||
|
||||
extension.AddAction("DeleteGroupFichier",
|
||||
_("Delete an element"),
|
||||
_("This action delete the specified element from the structured file.\nSpecify the structure leading to the element using / (example : Root/Level/Current)\nSpaces are forbidden in element names."),
|
||||
_("Delete _PARAM1_ from the file _PARAM0_"),
|
||||
_("Storage"),
|
||||
"res/actions/delete24.png",
|
||||
"res/actions/delete.png")
|
||||
.AddParameter("file", _("Filename"))
|
||||
.AddParameter("string", _("Group"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("DeleteFichier",
|
||||
_("Delete a file"),
|
||||
_("Delete the file."),
|
||||
_("Delete the file _PARAM0_"),
|
||||
_("Files"),
|
||||
"res/actions/delete24.png",
|
||||
"res/actions/delete.png")
|
||||
.AddParameter("file", _("Filename"));
|
||||
|
||||
extension.AddCondition("FileExists",
|
||||
_("A file exists"),
|
||||
_("Test if the file exists."),
|
||||
_("File _PARAM0_ exists"),
|
||||
_("Files"),
|
||||
"res/conditions/fichier24.png",
|
||||
"res/conditions/fichier.png")
|
||||
.AddParameter("file", _("Filename"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("LaunchFile",
|
||||
_("Open an URL or a file"),
|
||||
_("This action launch the specified file or URL, in a browser (or in a new tab if the game is using the Web platform and is launched inside a browser)."),
|
||||
_("Open URL (or file) _PARAM0_"),
|
||||
_("Files"),
|
||||
"res/actions/launchFile24.png",
|
||||
"res/actions/launchFile.png")
|
||||
.AddParameter("string", _("URL (or filename)"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("ExecuteCmd",
|
||||
_("Execute a command"),
|
||||
_("This action execute the specified command."),
|
||||
_("Execute _PARAM0_"),
|
||||
_("Files"),
|
||||
"res/actions/launchFile24.png",
|
||||
"res/actions/launchFile.png")
|
||||
.AddParameter("string", _("Command"))
|
||||
.MarkAsAdvanced();
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,72 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsJoystickExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinJoystick",
|
||||
_("Joysticks features"),
|
||||
_("Built-in extension allowing to use joysticks"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("JoystickButtonDown",
|
||||
_("A button of a joystick is pressed"),
|
||||
_("Test if a button of a joystick is pressed."),
|
||||
_("The button _PARAM2_ of joystick _PARAM1_ is pressed"),
|
||||
_("Joystick"),
|
||||
"res/conditions/joystick24.png",
|
||||
"res/conditions/joystick.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Joystick number (first joystick: 0)"))
|
||||
.AddParameter("expression", _("Button"));
|
||||
|
||||
extension.AddCondition("JoystickAxis",
|
||||
_("Value of an axis of a joystick"),
|
||||
_("Test the value of an axis of a joystick."),
|
||||
_("The value of the axis _PARAM2_ of joystick _PARAM1_ is _PARAM3__PARAM4_"),
|
||||
_("Joystick"),
|
||||
"res/conditions/joystick24.png",
|
||||
"res/conditions/joystick.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Joystick number (first joystick: 0)"))
|
||||
.AddParameter("joyaxis", _("Axis"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("GetJoystickAxis",
|
||||
_("Get the value of the axis of a joystick"),
|
||||
_("Save in the variable the value of the axis of the joystick (from -100 to 100)."),
|
||||
_("Save in _PARAM3_ the value of axis _PARAM2_ of joystick _PARAM1_"),
|
||||
_("Joystick"),
|
||||
"res/actions/joystick24.png",
|
||||
"res/actions/joystick.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Joystick number (first joystick: 0)"))
|
||||
.AddParameter("joyaxis", _("Axis"))
|
||||
.AddParameter("scenevar", _("Save result to scene variable"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddExpression("GetJoystickAxis",
|
||||
_("Joystick axis"),
|
||||
_("Value of an axis of a joystick"),
|
||||
_("Joystick"),
|
||||
"res/conditions/joystick.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Joystick number (first joystick: 0)"))
|
||||
.AddParameter("joyaxis", _("Axis"));
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,82 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsKeyboardExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinKeyboard",
|
||||
_("Keyboard features"),
|
||||
_("Built-in extension allowing to use keyboard"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("KeyPressed",
|
||||
_("Key pressed"),
|
||||
_("Test if a key is pressed"),
|
||||
_("_PARAM1_ key is pressed"),
|
||||
_("Keyboard"),
|
||||
"res/conditions/keyboard24.png",
|
||||
"res/conditions/keyboard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("key", _("Key"));
|
||||
|
||||
extension.AddCondition("KeyReleased",
|
||||
_("Key released"),
|
||||
_("Test if a key was just released"),
|
||||
_("_PARAM1_ key is released"),
|
||||
_("Keyboard"),
|
||||
"res/conditions/keyboard24.png",
|
||||
"res/conditions/keyboard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("key", _("Key"));
|
||||
|
||||
extension.AddCondition("KeyFromTextPressed",
|
||||
_("Key pressed (text expression)"),
|
||||
_("Test if a key, retrieved from the result of the expression, is pressed"),
|
||||
_("_PARAM1_ key is pressed"),
|
||||
_("Keyboard"),
|
||||
"res/conditions/keyboard24.png",
|
||||
"res/conditions/keyboard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Expression generating the key to test"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("KeyFromTextReleased",
|
||||
_("Key released (text expression)"),
|
||||
_("Test if a key, retrieved from the result of the expression, was just released"),
|
||||
_("_PARAM1_ key is released"),
|
||||
_("Keyboard"),
|
||||
"res/conditions/keyboard24.png",
|
||||
"res/conditions/keyboard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Expression generating the key to test"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("AnyKeyPressed",
|
||||
_("Any key pressed"),
|
||||
_("Test if any key is pressed"),
|
||||
_("Any key is pressed"),
|
||||
_("Keyboard"),
|
||||
"res/conditions/keyboard24.png",
|
||||
"res/conditions/keyboard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddStrExpression("LastPressedKey",
|
||||
_("Last pressed key"),
|
||||
_("Get the name of the latest key pressed on the keyboard"),
|
||||
_("Keyboard"),
|
||||
"res/conditions/keyboard.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,185 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsMathematicalToolsExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinMathematicalTools",
|
||||
_("Mathematical tools"),
|
||||
_("Built-in extension providing mathematical tools"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
|
||||
extension.AddExpression("AngleDifference", _("Difference between two angles"), _("Difference between two angles"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("First angle"))
|
||||
.AddParameter("expression", _("Second angle"));
|
||||
|
||||
|
||||
extension.AddExpression("mod", _("Modulo"), _("x mod y"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("x (as in x mod y)"))
|
||||
.AddParameter("expression", _("y (as in x mod y)"));
|
||||
|
||||
|
||||
extension.AddExpression("min", _("Minimum of two numbers"), _("Minimum of two numbers"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("First expression"))
|
||||
.AddParameter("expression", _("Second expression"));
|
||||
|
||||
|
||||
extension.AddExpression("max", _("Maximum of two numbers"), _("Maximum of two numbers"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("First expression"))
|
||||
.AddParameter("expression", _("Second expression"));
|
||||
|
||||
|
||||
extension.AddExpression("abs", _("Absolute value"), _("Absolute value"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("acos", _("Arccosine"), _("Arccosine"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("acosh", _("Hyperbolic arccosine"), _("Hyperbolic arccosine"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("asin", _("Arcsine"), _("Arcsine"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("asinh", _("Arcsine"), _("Arcsine"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("atan", _("Arctangent"), _("Arctangent"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("atan2", _("2 argument arctangent"), _("2 argument arctangent (atan2)"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Y"))
|
||||
.AddParameter("expression", _("X"));
|
||||
|
||||
|
||||
extension.AddExpression("atanh", _("Hyperbolic arctangent"), _("Hyperbolic arctangent"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("cbrt", _("Cube root"), _("Cube root"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("ceil", _("Ceil (round up)"), _("Round number up to an integer"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("floor", _("Floor (round down)"), _("Round number down to an integer"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("cos", _("Cosine"), _("Cosine of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("cosh", _("Hyperbolic cosine"), _("Hyperbolic cosine"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("cot", _("Cotangent"), _("Cotangent of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("csc", _("Cosecant"), _("Cosecant of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("int", _("Round"), _("Round a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.SetHidden()
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
extension.AddExpression("rint", _("Round"), _("Round a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.SetHidden()
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
extension.AddExpression("round", _("Round"), _("Round a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("exp", _("Exponential"), _("Exponential of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("log", _("Logarithm"), _("Logarithm"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("ln", _("Logarithm"), _("Logarithm"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.SetHidden()
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("log2", _("Base-2 logarithm"), _("Base 2 Logarithm"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("log10", _("Base-10 logarithm"), _("Base-10 logarithm"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("nthroot", _("Nth root"), _("Nth root of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Number"))
|
||||
.AddParameter("expression", _("N"));
|
||||
|
||||
|
||||
extension.AddExpression("pow", _("Power"), _("Raise a number to power n"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Number"))
|
||||
.AddParameter("expression", _("The exponent (n in x^n)"));
|
||||
|
||||
|
||||
extension.AddExpression("sec", _("Secant"), _("Secant"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("sign", _("Sign of a number"), _("Return the sign of a number (1,-1 or 0)"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("sin", _("Sine"), _("Sine of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("sinh", _("Hyperbolic sine"), _("Hyperbolic sine"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("sqrt", _("Square root"), _("Square root of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("tan", _("Tangent"), _("Tangent of a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
|
||||
extension.AddExpression("tanh", _("Hyperbolic tangent"), _("Hyperbolic tangent"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
extension.AddExpression("trunc", _("Truncation"), _("Troncate a number"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("Expression"));
|
||||
|
||||
extension.AddExpression("lerp", _("Lerp (Linear interpolation)"), _("Linearly interpolate a to b by x"), _("Mathematical tools"), "res/mathfunction.png")
|
||||
.AddParameter("expression", _("a (in a+(b-a)*x)"))
|
||||
.AddParameter("expression", _("b (in a+(b-a)*x)"))
|
||||
.AddParameter("expression", _("x (in a+(b-a)*x)"));
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,260 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsMouseExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinMouse",
|
||||
_("Mouse features"),
|
||||
_("Built-in extension allowing to use the mouse"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("SourisSurObjet",
|
||||
_("The cursor/touch is on an object"),
|
||||
_("Test if the cursor is over an object, or if the object is being touched."),
|
||||
_("The cursor/touch is on _PARAM0_"),
|
||||
_("Mouse and touch"),
|
||||
"res/conditions/surObjet24.png",
|
||||
"res/conditions/surObjet.png")
|
||||
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("yesorno", _("Accurate test (yes by default)"), "", true).SetDefaultValue("yes")
|
||||
.AddCodeOnlyParameter("conditionInverted", "")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddAction("TouchSimulateMouse",
|
||||
_("De/activate moving mouse cursor with touches"),
|
||||
_("When activated, any touch made on a touchscreen will also move the mouse cursor. When deactivated, mouse and touch positions will be completely independant.\nBy default, this is activated so that you can simply use the mouse conditions to also support touchscreens. If you want to have multitouch and differentiate mouse and touches, just deactivate it with this action."),
|
||||
_("Move mouse cursor when touching screen: _PARAM1_"),
|
||||
_("Mouse and touch"),
|
||||
"res/conditions/touch24.png",
|
||||
"res/conditions/touch.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("yesorno", _("Activate (yes by default when game is launched)")).SetDefaultValue("yes")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("CentreSourisX",
|
||||
_("Center cursor horizontally"),
|
||||
_("Put the cursor in the middle of the screen horizontally."),
|
||||
_("Center cursor horizontally"),
|
||||
_("Mouse and touch"),
|
||||
"res/actions/mouse24.png",
|
||||
"res/actions/mouse.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("CentreSourisY",
|
||||
_("Center cursor vertically"),
|
||||
_("Put the cursor in the middle of the screen vertically."),
|
||||
_("Center cursor vertically"),
|
||||
_("Mouse and touch"),
|
||||
"res/actions/mouse24.png",
|
||||
"res/actions/mouse.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("CacheSouris",
|
||||
_("Hide the cursor"),
|
||||
_("Hide the cursor."),
|
||||
_("Hide the cursor"),
|
||||
_("Mouse and touch"),
|
||||
"res/actions/mouse24.png",
|
||||
"res/actions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("MontreSouris",
|
||||
_("Show the cursor"),
|
||||
_("Show the cursor."),
|
||||
_("Show the cursor"),
|
||||
_("Mouse and touch"),
|
||||
"res/actions/mouse24.png",
|
||||
"res/actions/mouse.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("SetSourisXY",
|
||||
_("Position the cursor of the mouse"),
|
||||
_("Position the cursor at the given coordinates."),
|
||||
_("Position cursor at _PARAM1_;_PARAM2_"),
|
||||
_("Mouse and touch"),
|
||||
"res/actions/mouse24.png",
|
||||
"res/actions/mouse.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("CentreSouris",
|
||||
_("Center the cursor"),
|
||||
_("Center the cursor on the screen."),
|
||||
_("Center the cursor"),
|
||||
_("Mouse and touch"),
|
||||
"res/actions/mouse24.png",
|
||||
"res/actions/mouse.png")
|
||||
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("SourisX",
|
||||
_("Cursor X position"),
|
||||
_("Compare the X position of the cursor or of a touch."),
|
||||
_("Cursor X position is _PARAM1__PARAM2_"),
|
||||
_("Mouse and touch"),
|
||||
"res/conditions/mouse24.png",
|
||||
"res/conditions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "", true).SetDefaultValue("0")
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("SourisY",
|
||||
_("Cursor Y position"),
|
||||
_("Compare the Y position of the cursor or of a touch."),
|
||||
_("Cursor Y position is _PARAM1__PARAM2_"),
|
||||
_("Mouse and touch"),
|
||||
"res/conditions/mouse24.png",
|
||||
"res/conditions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "", true).SetDefaultValue("0")
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("SourisBouton",
|
||||
_("Mouse button down or touch held"),
|
||||
_("Return true if the specified button of the mouse is down or if any touch is in contact with the screen."),
|
||||
_("Touch or _PARAM1_ mouse button is down"),
|
||||
_("Mouse and touch"),
|
||||
"res/conditions/mouse24.png",
|
||||
"res/conditions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("mouse", _("Button to test"))
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("MouseButtonReleased",
|
||||
_("Mouse button released"),
|
||||
_("Return true if the specified button of the mouse was released."),
|
||||
_("_PARAM1_ mouse button was released"),
|
||||
_("Mouse and touch"),
|
||||
"res/conditions/mouse24.png",
|
||||
"res/conditions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("mouse", _("Button to test"))
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddCondition("TouchX",
|
||||
_("Touch X position"),
|
||||
_("Compare the X position of a specific touch."),
|
||||
_("Touch #_PARAM1_ X position is _PARAM2__PARAM3_"),
|
||||
_("Mouse and touch/Multitouch"),
|
||||
"res/conditions/touch24.png",
|
||||
"res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Touch identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "", true).SetDefaultValue("0")
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("TouchY",
|
||||
_("Touch Y position"),
|
||||
_("Compare the Y position of a specific touch."),
|
||||
_("Touch #_PARAM1_ Y position is _PARAM2__PARAM3_"),
|
||||
_("Mouse and touch/Multitouch"),
|
||||
"res/conditions/touch24.png",
|
||||
"res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Touch identifier"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("layer", _("Layer (base layer if empty)"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("expression", _("Camera number (default : 0)"), "", true).SetDefaultValue("0")
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("PopStartedTouch",
|
||||
_("A new touch has started"),
|
||||
_("Return true if a touch has started. The touch identifier can be accessed using LastTouchId().\nAs more than one touch can have started, this condition is only true once for each touch: the next time you use it, it will be for a new touch or it will return false if there is no more touch that just started."),
|
||||
_("A new touch has started"),
|
||||
_("Mouse and touch/Multitouch"),
|
||||
"res/conditions/touch24.png",
|
||||
"res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddCondition("PopEndedTouch",
|
||||
_("A touch has ended"),
|
||||
_("Return true if a touch has ended. The touch identifier can be accessed using LastEndedTouchId().\nAs more than one touch can have ended, this condition is only true once for each touch: the next time you use it, it will be for a new touch or it will return false if there is no more touch that just ended."),
|
||||
_("A touch has ended"),
|
||||
_("Mouse and touch/Multitouch"),
|
||||
"res/conditions/touch24.png",
|
||||
"res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("MouseX", _("Cursor X position"), _("Cursor X position"), _("Mouse cursor"), "res/actions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("camera", _("Camera"), "", true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("SourisX", _("Cursor X position"), _("Cursor X position"), _("Mouse cursor"), "res/actions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("camera", _("Camera"), "", true).SetDefaultValue("0")
|
||||
.SetHidden();
|
||||
|
||||
extension.AddExpression("MouseY", _("Cursor Y position"), _("Cursor Y position"), _("Mouse cursor"), "res/actions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("camera", _("Camera"), "", true).SetDefaultValue("0");
|
||||
|
||||
|
||||
extension.AddExpression("SourisY", _("Cursor Y position"), _("Cursor Y position"), _("Mouse cursor"), "res/actions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("layer", _("Layer"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("camera", _("Camera"), "", true).SetDefaultValue("0")
|
||||
.SetHidden();
|
||||
|
||||
extension.AddExpression("MouseWheelDelta", _("Mouse wheel: Displacement"), _("Mouse wheel displacement"), _("Mouse cursor"), "res/actions/mouse.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("TouchX", _("Touch X position"), _("Touch X position"), _("Multitouch"), "res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Touch identifier"))
|
||||
.AddParameter("layer", _("Layer"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("camera", _("Camera"), "", true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("TouchY", _("Touch Y position"), _("Touch Y position"), _("Multitouch"), "res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Touch identifier"))
|
||||
.AddParameter("layer", _("Layer"), "", true).SetDefaultValue("\"\"")
|
||||
.AddParameter("camera", _("Camera"), "", true).SetDefaultValue("0");
|
||||
|
||||
extension.AddExpression("LastTouchId", _("Identifier of the last touch"), _("Identifier of the last touch"), _("Multitouch"), "res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("LastEndedTouchId", _("Identifier of the last ended touch"), _("Identifier of the last ended touch"), _("Multitouch"), "res/conditions/touch.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,85 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsNetworkExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinNetwork",
|
||||
_("Basic internet features"),
|
||||
_("Built-in extension providing network features."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddAction("EnvoiDataNet",
|
||||
_("Send datas to a website"),
|
||||
_("Send datas to a specified web site.\nYou need to set up a .php page on your web site so as to receive this datas.\nEnter here a password, and enter the same in the configuration of your .php page.\nRead the help file to get more informations."),
|
||||
_("Send to _PARAM0_ the following datas : _PARAM2_, _PARAM3_,_PARAM4_,_PARAM5_,_PARAM6_,_PARAM7_"),
|
||||
_("Network"),
|
||||
"res/actions/net24.png",
|
||||
"res/actions/net.png")
|
||||
.AddParameter("string", _(".php page URL (don't forget the protocol http://)"))
|
||||
.AddParameter("password", _("Password"))
|
||||
.AddParameter("string", _("Data 1"))
|
||||
.AddParameter("string", _("Data 2"), "", true)
|
||||
.AddParameter("string", _("Data 3"), "", true)
|
||||
.AddParameter("string", _("Data 4"), "", true)
|
||||
.AddParameter("string", _("Data 5"), "", true)
|
||||
.AddParameter("string", _("Data 6"), "", true)
|
||||
.SetHidden();
|
||||
|
||||
extension.AddAction("SendRequest",
|
||||
_("Send a request to a web page"),
|
||||
_("Send a request to the specified web page.\n\nPlease note that for the web platform games, the game must be hosted on the same host as specified below, except if the server is configured to answer to all requests (cross-domain requests)."),
|
||||
_("Send _PARAM3_ request to _PARAM0__PARAM1_ with body: _PARAM2_"),
|
||||
_("Network"),
|
||||
"res/actions/net24.png",
|
||||
"res/actions/net.png")
|
||||
.AddParameter("string", _("Host (example: http://www.some-server.org/)"))
|
||||
.AddParameter("string", _("Path to page (Example: /page.php)"))
|
||||
.AddParameter("string", _("Request body content"))
|
||||
.AddParameter("string", _("Method: \"POST\" or \"GET\" (if empty, GET will be used)"), "", true ).SetDefaultValue("\"GET\"")
|
||||
.AddParameter("string", _("Content type (application/x-www-form-urlencoded by default)"), "", true )
|
||||
.AddParameter("scenevar", _("Store the response in this variable"), "", true )
|
||||
.MarkAsComplex();
|
||||
|
||||
extension.AddAction("DownloadFile",
|
||||
_("Download a file"),
|
||||
_("Download a file from a web site"),
|
||||
_("Download file _PARAM1_ from _PARAM0_ under the name of _PARAM2_"),
|
||||
_("Network"),
|
||||
"res/actions/net24.png",
|
||||
"res/actions/net.png")
|
||||
.AddParameter("string", _("Host (for example : http://www.website.com)"))
|
||||
.AddParameter("string", _("Path to file (for example : /folder/file.txt)"))
|
||||
.AddParameter("string", _("Save as"));
|
||||
|
||||
extension.AddAction("JSONToVariableStructure",
|
||||
_("Convert JSON to variable"),
|
||||
_("Parse a JSON object and store it into a variable"),
|
||||
_("Parse JSON string _PARAM0_ and store it into variable _PARAM1_"),
|
||||
_("Network"),
|
||||
"res/actions/net24.png",
|
||||
"res/actions/net.png")
|
||||
.AddParameter("string", _("JSON string"))
|
||||
.AddParameter("scenevar", _("Variable where store the JSON object"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddStrExpression("ToJSON",
|
||||
_("Convert to JSON"),
|
||||
_("Convert a variable to JSON"),
|
||||
_("Conversion"),
|
||||
"res/conditions/toujours24.png")
|
||||
.AddParameter("scenevar", _("The variable to be stringify"));
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,118 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsSceneExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinScene",
|
||||
_("Scene management features"),
|
||||
_("Built-in extension allowing to manipulate scenes"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
|
||||
extension.AddExpression("Random", _("Random value"), _("Random value"), _("Random"), "res/actions/position.png")
|
||||
.AddParameter("expression", _("Maximum value"));
|
||||
|
||||
extension.AddStrExpression("CurrentSceneName", _("Current scene name"), _("Name of the current scene"), _("Scene"), "res/actions/texte.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddCondition("DepartScene",
|
||||
_("At the beginning of the scene"),
|
||||
_("Is true only when scene just begins."),
|
||||
_("At the beginning of the scene"),
|
||||
_("Scene"),
|
||||
"res/conditions/depart24.png",
|
||||
"res/conditions/depart.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsSimple();
|
||||
|
||||
extension.AddAction("Scene",
|
||||
_("Change the scene"),
|
||||
_("Stop this scene and start the specified one instead."),
|
||||
_("Change for scene _PARAM1_"),
|
||||
_("Scene"),
|
||||
"res/actions/replaceScene24.png",
|
||||
"res/actions/replaceScene.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Name of the new scene"))
|
||||
.AddParameter("yesorno", _("Stop any other paused scenes?")).SetDefaultValue("true")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("PushScene",
|
||||
_("Pause and start a new scene"),
|
||||
_("Pause this scene and start the specified one.\nLater, you can use \"Stop and go back to previous scene\" action to go back to this scene."),
|
||||
_("Pause the scene and start _PARAM1_"),
|
||||
_("Scene"),
|
||||
"res/actions/pushScene24.png",
|
||||
"res/actions/pushScene.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Name of the new scene"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("PopScene",
|
||||
_("Stop and go back to previous scene"),
|
||||
_("Stop this scene and go back to the previous paused one.\nTo pause a scene, use \"Pause and start a new scene\" action."),
|
||||
_("Stop the scene and go back to the previous paused one"),
|
||||
_("Scene"),
|
||||
"res/actions/popScene24.png",
|
||||
"res/actions/popScene.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("Quit",
|
||||
_("Quit the game"),
|
||||
_("Quit the game"),
|
||||
_("Quit the game"),
|
||||
_("Scene"),
|
||||
"res/actions/quit24.png",
|
||||
"res/actions/quit.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("SceneBackground",
|
||||
_("Change background color"),
|
||||
_("Change the background color of the scene."),
|
||||
_("Set background color to _PARAM1_"),
|
||||
_("Scene"),
|
||||
"res/actions/background24.png",
|
||||
"res/actions/background.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("color", _("Color"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("DisableInputWhenFocusIsLost",
|
||||
_("Disable input when focus is lost"),
|
||||
_("Set if the keyboard and mouse buttons must be taken into account even\nif the window is not active."),
|
||||
_("Disable input when focus is lost: _PARAM1_"),
|
||||
_("Scene"),
|
||||
"res/actions/window24.png",
|
||||
"res/actions/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("yesorno", _("Deactivate input when focus is lost"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("Egal",
|
||||
_("Compare two expressions"),
|
||||
_("Test the two expression"),
|
||||
_("_PARAM0_ _PARAM1_ _PARAM2_"),
|
||||
_("Other"),
|
||||
"res/conditions/egal24.png",
|
||||
"res/conditions/egal.png")
|
||||
.AddParameter("expression", _("Expression 1"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Expression 2"))
|
||||
.MarkAsAdvanced();
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,67 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#ifndef GDCORE_ANIMATION_H
|
||||
#define GDCORE_ANIMATION_H
|
||||
#include <vector>
|
||||
namespace gd { class Direction; }
|
||||
|
||||
namespace gd
|
||||
{
|
||||
|
||||
/**
|
||||
* \brief Class representing an animation of a SpriteObject.
|
||||
*
|
||||
* \see SpriteObject
|
||||
* \see Direction
|
||||
* \ingroup SpriteObjectExtension
|
||||
*/
|
||||
class GD_CORE_API Animation
|
||||
{
|
||||
public:
|
||||
Animation();
|
||||
virtual ~Animation();
|
||||
|
||||
/**
|
||||
* \brief Return the n-th direction
|
||||
*/
|
||||
const Direction & GetDirection(std::size_t n) const;
|
||||
|
||||
/**
|
||||
* \brief Return the n-th direction
|
||||
*/
|
||||
Direction & GetDirection(std::size_t n);
|
||||
|
||||
/**
|
||||
* \brief Change a direction
|
||||
*/
|
||||
void SetDirection(const Direction & direction, std::size_t nb);
|
||||
|
||||
/**
|
||||
* \brief Change direction count
|
||||
*/
|
||||
void SetDirectionsCount(std::size_t nb);
|
||||
|
||||
/**
|
||||
* \brief Get direction count
|
||||
*/
|
||||
std::size_t GetDirectionsCount() const;
|
||||
|
||||
/**
|
||||
* \brief Return true if there isn't any direction in the animation
|
||||
*/
|
||||
bool HasNoDirections() const;
|
||||
|
||||
bool useMultipleDirections;
|
||||
|
||||
private:
|
||||
std::vector < Direction > directions;
|
||||
|
||||
static Direction badDirection;
|
||||
};
|
||||
|
||||
}
|
||||
#endif // GDCORE_ANIMATION_H
|
@@ -1,17 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#include "GDCore/BuiltinExtensions/SpriteExtension/Point.h"
|
||||
#include "GDCore/String.h"
|
||||
|
||||
Point::Point(const gd::String & name_) :
|
||||
name(name_),
|
||||
x(0),
|
||||
y(0)
|
||||
{
|
||||
//ctor
|
||||
}
|
||||
|
@@ -1,64 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#ifndef GDCORE_POINT_H
|
||||
#define GDCORE_POINT_H
|
||||
#include "GDCore/String.h"
|
||||
|
||||
/**
|
||||
* \brief Named point used by Sprite.
|
||||
*
|
||||
* \ingroup SpriteObjectExtension
|
||||
*/
|
||||
class GD_CORE_API Point
|
||||
{
|
||||
public:
|
||||
Point(const gd::String & name_);
|
||||
virtual ~Point() {};
|
||||
|
||||
/**
|
||||
* Change point name
|
||||
*/
|
||||
void SetName(const gd::String & name_) { name = name_; }
|
||||
|
||||
/**
|
||||
* Get point name
|
||||
*/
|
||||
const gd::String & GetName() const { return name; }
|
||||
|
||||
/**
|
||||
* Change point position.
|
||||
*/
|
||||
void SetXY(float x_, float y_) { x = x_;y = y_; }
|
||||
|
||||
/**
|
||||
* Change point X position.
|
||||
*/
|
||||
void SetX(float x_) { x = x_; }
|
||||
|
||||
/**
|
||||
* Change point Y position.
|
||||
*/
|
||||
void SetY(float y_) { y = y_; }
|
||||
|
||||
/**
|
||||
* Get point X position.
|
||||
*/
|
||||
float GetX() const { return x; }
|
||||
|
||||
/**
|
||||
* Get point Y position.
|
||||
*/
|
||||
float GetY() const { return y; }
|
||||
|
||||
private:
|
||||
gd::String name;
|
||||
float x;
|
||||
float y;
|
||||
};
|
||||
|
||||
#endif // GDCORE_POINT_H
|
||||
|
@@ -1,93 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "Polygon2d.h"
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
#include <SFML/System/Vector2.hpp>
|
||||
|
||||
void Polygon2d::Rotate(float angle)
|
||||
{
|
||||
float t,
|
||||
cosa = cos(-angle),
|
||||
sina = sin(-angle); //We want a clockwise rotation
|
||||
|
||||
for (std::size_t i = 0;i<vertices.size();++i)
|
||||
{
|
||||
t = vertices[i].x;
|
||||
vertices[i].x = t*cosa + vertices[i].y*sina;
|
||||
vertices[i].y = -t*sina + vertices[i].y*cosa;
|
||||
}
|
||||
}
|
||||
|
||||
void Polygon2d::Move(float x, float y)
|
||||
{
|
||||
for (std::size_t i = 0; i < vertices.size(); i++)
|
||||
{
|
||||
vertices[i].x += x;
|
||||
vertices[i].y += y;
|
||||
}
|
||||
ComputeEdges();
|
||||
}
|
||||
|
||||
void Polygon2d::ComputeEdges() const
|
||||
{
|
||||
sf::Vector2f v1, v2;
|
||||
edges.clear();
|
||||
|
||||
for (std::size_t i = 0; i < vertices.size(); i++)
|
||||
{
|
||||
v1 = vertices[i];
|
||||
if ((i + 1) >= vertices.size()) v2 = vertices[0];
|
||||
else v2 = vertices[i + 1];
|
||||
|
||||
edges.push_back(v2 - v1);
|
||||
}
|
||||
}
|
||||
|
||||
bool Polygon2d::IsConvex() const
|
||||
{
|
||||
ComputeEdges();
|
||||
if ( edges.size() < 3 ) return false;
|
||||
|
||||
bool zProductIsPositive = (edges[0].x*edges[0+1].y - edges[0].y*edges[0+1].x) > 0;
|
||||
|
||||
for (std::size_t i = 1;i<edges.size()-1;++i)
|
||||
{
|
||||
float zCrossProduct = edges[i].x*edges[i+1].y - edges[i].y*edges[i+1].x;
|
||||
if ( (zCrossProduct > 0) != zProductIsPositive ) return false;
|
||||
}
|
||||
|
||||
float lastZCrossProduct = edges[edges.size()-1].x*edges[0].y - edges[edges.size()-1].y*edges[0].x;
|
||||
if ( (lastZCrossProduct > 0) != zProductIsPositive ) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
sf::Vector2f Polygon2d::ComputeCenter() const
|
||||
{
|
||||
sf::Vector2f center;
|
||||
|
||||
for (std::size_t i = 0; i < vertices.size(); i++)
|
||||
{
|
||||
center.x += vertices[i].x;
|
||||
center.y += vertices[i].y;
|
||||
}
|
||||
center.x /= vertices.size();
|
||||
center.y /= vertices.size();
|
||||
|
||||
return center;
|
||||
}
|
||||
|
||||
Polygon2d Polygon2d::CreateRectangle(float width, float height)
|
||||
{
|
||||
Polygon2d rect;
|
||||
rect.vertices.push_back(sf::Vector2f(-width/2.0f, -height/2.0f));
|
||||
rect.vertices.push_back(sf::Vector2f(+width/2.0f, -height/2.0f));
|
||||
rect.vertices.push_back(sf::Vector2f(+width/2.0f, +height/2.0f));
|
||||
rect.vertices.push_back(sf::Vector2f(-width/2.0f, +height/2.0f));
|
||||
|
||||
return rect;
|
||||
}
|
@@ -1,71 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#ifndef GDCORE_POLYGON_H
|
||||
#define GDCORE_POLYGON_H
|
||||
#include <vector>
|
||||
#include <SFML/System/Vector2.hpp>
|
||||
|
||||
/**
|
||||
* \brief Represents a polygon. Usually used for collisions masks.
|
||||
*
|
||||
* This class stores the vertices of the polygon.
|
||||
* It can also compute and store the edges ( needed by some collisions algorithms ) if ComputeEdges is called.
|
||||
*
|
||||
* \ingroup GameEngine
|
||||
*/
|
||||
class GD_CORE_API Polygon2d
|
||||
{
|
||||
public:
|
||||
Polygon2d() {};
|
||||
virtual ~Polygon2d() {};
|
||||
|
||||
std::vector<sf::Vector2f> vertices; ///< The vertices composing the polygon
|
||||
mutable std::vector<sf::Vector2f> edges; ///< Edges. Can be computed from vertices using ComputeEdges()
|
||||
|
||||
/**
|
||||
* Moves each vertices from the given amount.
|
||||
*
|
||||
* \note Edges are updated, there is no need to call ComputeEdges after calling Move.
|
||||
*/
|
||||
void Move(float x, float y);
|
||||
|
||||
/**
|
||||
* Rotate the polygon.
|
||||
* \param angle Angle in radians
|
||||
*
|
||||
* \warning Rotation is made clockwise
|
||||
* \warning edges vector is not updated, you have to call ComputeEdges if needed.
|
||||
*/
|
||||
void Rotate(float angle);
|
||||
|
||||
/**
|
||||
* Automatically fill edges vector using vertices.
|
||||
*/
|
||||
void ComputeEdges() const;
|
||||
|
||||
/**
|
||||
* Check if the polygon is convex.
|
||||
* \return true if the polygon is convex
|
||||
*/
|
||||
bool IsConvex() const;
|
||||
|
||||
/**
|
||||
* Return the position of the center of the polygon
|
||||
*/
|
||||
sf::Vector2f ComputeCenter() const;
|
||||
|
||||
/** \name Tools
|
||||
* Tool functions
|
||||
*/
|
||||
///@{
|
||||
/**
|
||||
* Create a rectangle
|
||||
*/
|
||||
static Polygon2d CreateRectangle(float width, float height);
|
||||
///@}
|
||||
};
|
||||
|
||||
#endif // GDCORE_POLYGON_H
|
@@ -1,472 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the GNU Lesser General Public LicenFse.
|
||||
*/
|
||||
#include "GDCore/BuiltinExtensions/AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
#include "GDCore/PlatformDefinition/Object.h"
|
||||
#include "GDCore/BuiltinExtensions/SpriteExtension/SpriteObject.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsSpriteExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("Sprite",
|
||||
_("Sprite"),
|
||||
_("Extension for adding animated objects in the scene, which can contain animations with directions within each."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
gd::ObjectMetadata & obj = extension.AddObject("Sprite",
|
||||
_("Sprite"),
|
||||
_("Animated object which can be used for most elements of a game"),
|
||||
"CppPlatform/Extensions/spriteicon.png",
|
||||
&CreateSpriteObject);
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
obj.AddAction("Opacity",
|
||||
_("Change object's opacity"),
|
||||
_("Change the opacity of an object."),
|
||||
_("Do _PARAM1__PARAM2_ to the opacity of _PARAM0_"),
|
||||
_("Visibility"),
|
||||
"res/actions/opacity24.png",
|
||||
"res/actions/opacity.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("ChangeAnimation",
|
||||
_("Change the animation"),
|
||||
_("Modify the current animation of the object."),
|
||||
_("Do _PARAM1__PARAM2_ to the number of current animation of _PARAM0_"),
|
||||
_("Animations and images"),
|
||||
"res/actions/animation24.png",
|
||||
"res/actions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("ChangeDirection",
|
||||
_("Change the direction"),
|
||||
_("Change the direction of the object.\nIf the object is set to automatically rotate, the direction is its angle.\nIf the object is in 8 directions mode, the valid directions are 0..7"),
|
||||
_("Do _PARAM1__PARAM2_ to the direction of _PARAM0_"),
|
||||
_("Direction"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
|
||||
obj.AddAction("ChangeSprite",
|
||||
_("Current frame"),
|
||||
_("Modify the current frame of the object"),
|
||||
_("Do _PARAM1__PARAM2_ to animation frame of _PARAM0_"),
|
||||
_("Animations and images"),
|
||||
"res/actions/sprite24.png",
|
||||
"res/actions/sprite.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("PauseAnimation",
|
||||
_("Pause the animation"),
|
||||
_("Pause the current animation of the object"),
|
||||
_("Pause the current animation of _PARAM0_"),
|
||||
_("Animations and images"),
|
||||
"res/actions/animation24.png",
|
||||
"res/actions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.MarkAsSimple();
|
||||
|
||||
|
||||
obj.AddAction("PlayAnimation",
|
||||
_("Play the animation"),
|
||||
_("Play the current animation of the object"),
|
||||
_("Play the current animation of _PARAM0_"),
|
||||
_("Animations and images"),
|
||||
"res/actions/animation24.png",
|
||||
"res/actions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddAction("ChangeAnimationSpeedScale",
|
||||
_("Animation speed scale"),
|
||||
_("Modify the animation speed scale (1 = the default speed, >1 = faster and <1 = slower)."),
|
||||
_("Do _PARAM1__PARAM2_ to the animation speed scale of _PARAM0_"),
|
||||
_("Animations and images"),
|
||||
"res/actions/animation24.png",
|
||||
"res/actions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("TourneVersPos",
|
||||
_("Rotate an object toward a position"),
|
||||
_("Rotate an object towards a position."),
|
||||
_("Rotate _PARAM0_ towards _PARAM1_;_PARAM2_"),
|
||||
_("Direction"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object to be rotated"), "Sprite")
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("expression", _("Angular speed (degrees per second)")).SetDefaultValue("0")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.SetHidden(); //Deprecated
|
||||
|
||||
|
||||
obj.AddAction("ChangeScale",
|
||||
_("Scale"),
|
||||
_("Modify the scale of the specified object."),
|
||||
_("Do _PARAM1__PARAM2_ to the scale of _PARAM0_"),
|
||||
_("Size"),
|
||||
"res/actions/scale24.png",
|
||||
"res/actions/scale.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
|
||||
obj.AddAction("ChangeScaleWidth",
|
||||
_("Scale on X axis"),
|
||||
_("Modify the scale of the width of an object."),
|
||||
_("Do _PARAM1__PARAM2_ to the width's scale of _PARAM0_"),
|
||||
_("Size"),
|
||||
"res/actions/scale24.png",
|
||||
"res/actions/scale.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
|
||||
obj.AddAction("ChangeScaleHeight",
|
||||
_("Scale on Y axis"),
|
||||
_("Modify the scale of the height of an object."),
|
||||
_("Do _PARAM1__PARAM2_ to the height's scale of _PARAM0_"),
|
||||
_("Size"),
|
||||
"res/actions/scale24.png",
|
||||
"res/actions/scale.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
|
||||
obj.AddCondition("Animation",
|
||||
_("Current animation"),
|
||||
_("Test the number of the current animation of the object."),
|
||||
_("The number of the current animation of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Animations and images"),
|
||||
"res/conditions/animation24.png",
|
||||
"res/conditions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Number to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("Direction",
|
||||
_("Current direction"),
|
||||
_("Compare the direction of the object. If 8 direction mode is activated for the sprite, the value taken for direction will be from 0 to 7. Otherwise, the direction is in degrees."),
|
||||
_("Direction of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Direction"),
|
||||
"res/conditions/direction24.png",
|
||||
"res/conditions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Direction to test"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("Sprite",
|
||||
_("Current frame"),
|
||||
_("Test the number of the current animation frame."),
|
||||
_("The animation frame of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Animations and images"),
|
||||
"res/conditions/sprite24.png",
|
||||
"res/conditions/sprite.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Animation frame to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("AnimStopped",
|
||||
_("Animation paused"),
|
||||
_("Test if the animation of an object is paused"),
|
||||
_("The animation of _PARAM0_ is paused"),
|
||||
_("Animations and images"),
|
||||
"res/conditions/animation24.png",
|
||||
"res/conditions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddCondition("AnimationEnded",
|
||||
_("Animation finished"),
|
||||
_("Check if the animation being played by the Sprite object is finished."),
|
||||
_("The animation of _PARAM0_ is finished"),
|
||||
_("Animations and images"),
|
||||
"res/conditions/animation24.png",
|
||||
"res/conditions/animation.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddCondition("ScaleWidth",
|
||||
_("Scale on X axis"),
|
||||
_("Compare the scale of the width of an object."),
|
||||
_("The width's scale of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Size"),
|
||||
"res/conditions/scaleWidth24.png",
|
||||
"res/conditions/scaleWidth.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("ScaleHeight",
|
||||
_("Scale on Y axis"),
|
||||
_("Compare the scale of the height of an object."),
|
||||
_("The height's scale of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Size"),
|
||||
"res/conditions/scaleHeight24.png",
|
||||
"res/conditions/scaleHeight.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("Opacity",
|
||||
_("Opacity"),
|
||||
_("Compare the opacity of an object, between 0 (fully transparent) to 255 (opaque)"),
|
||||
_("The opacity of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Visibility"),
|
||||
"res/conditions/opacity24.png",
|
||||
"res/conditions/opacity.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsSimple()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddCondition("BlendMode",
|
||||
_("Blend mode"),
|
||||
_("Compare the number of the blend mode currently used by an object"),
|
||||
_("The number of the current blend mode of _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Effects"),
|
||||
"res/conditions/opacity24.png",
|
||||
"res/conditions/opacity.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test (0: Alpha, 1: Add, 2: Multiply, 3: None)"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
obj.AddAction("CopyImageOnImageOfSprite",
|
||||
_("Copy an image on the current one of an object"),
|
||||
_("Copy an image on the current image of an object.\nNote that the source image must be preferably kept loaded in memory."),
|
||||
_("Copy image _PARAM2_ on the current of _PARAM0_ at _PARAM3_;_PARAM4_"),
|
||||
_("Effects"),
|
||||
"res/copy24.png",
|
||||
"res/copyicon.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Name of the source image"))
|
||||
.AddParameter("expression", _("X position"))
|
||||
.AddParameter("expression", _("Y position"))
|
||||
.AddParameter("yesorno", _("Should the copy take in account the source transparency\?"));
|
||||
|
||||
obj.AddAction("CreateMaskFromColorOnActualImage", //Actual is indeed a mistake : Current should have been chosen.
|
||||
_("Make a color of the image of an object transparent"),
|
||||
_("Make a color of the image of an object transparent."),
|
||||
_("Make color _PARAM1_ of the current image of _PARAM0_ transparent"),
|
||||
_("Effects"),
|
||||
"res/actions/opacity24.png",
|
||||
"res/actions/opacity.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("color", _("Color to make transparent"));
|
||||
|
||||
|
||||
obj.AddAction("ChangeColor",
|
||||
_("Global color"),
|
||||
_("Change the global color of an object. The default color is white."),
|
||||
_("Change color of _PARAM0_ to _PARAM1_"),
|
||||
_("Effects"),
|
||||
"res/actions/color24.png",
|
||||
"res/actions/color.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("color", _("Color"));
|
||||
|
||||
|
||||
obj.AddAction("ChangeBlendMode",
|
||||
_("Blend mode"),
|
||||
_("Change the number of the blend mode of an object.\nThe default blend mode is 0 (Alpha)."),
|
||||
_("Change Blend mode of _PARAM0_ to _PARAM1_"),
|
||||
_("Effects"),
|
||||
"res/actions/color24.png",
|
||||
"res/actions/color.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("expression", _("Mode (0 : Alpha, 1 : Add, 2 : Multiply, 3 : None)"))
|
||||
.MarkAsSimple();
|
||||
|
||||
|
||||
obj.AddAction("FlipX",
|
||||
_("Flip the object horizontally"),
|
||||
_("Flip the object horizontally"),
|
||||
_("Flip horizontally _PARAM0_ : _PARAM1_"),
|
||||
_("Effects"),
|
||||
"res/actions/flipX24.png",
|
||||
"res/actions/flipX.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("yesorno", _("Activate flipping"))
|
||||
.MarkAsSimple();
|
||||
|
||||
|
||||
obj.AddAction("FlipY",
|
||||
_("Flip the object vertically"),
|
||||
_("Flip the object vertically"),
|
||||
_("Flip vertically _PARAM0_ : _PARAM1_"),
|
||||
_("Effects"),
|
||||
"res/actions/flipY24.png",
|
||||
"res/actions/flipY.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("yesorno", _("Activate flipping"))
|
||||
.MarkAsSimple();
|
||||
|
||||
obj.AddCondition("FlippedX",
|
||||
_("Horizontally flipped"),
|
||||
_("Return true if the object is horizontally flipped"),
|
||||
_("_PARAM0_ is horizontally flipped"),
|
||||
_("Effects"),
|
||||
"res/actions/flipX24.png",
|
||||
"res/actions/flipX.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddCondition("FlippedY",
|
||||
_("Vertically flipped"),
|
||||
_("Return true if the object is vertically flipped"),
|
||||
_("_PARAM0_ is vertically flipped"),
|
||||
_("Effects"),
|
||||
"res/actions/flipY24.png",
|
||||
"res/actions/flipY.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddAction("TourneVers",
|
||||
_("Rotate an object toward another"),
|
||||
_("Rotate an object towards another."),
|
||||
_("Rotate _PARAM0_ towards _PARAM1_"),
|
||||
_("Direction"),
|
||||
"res/actions/direction24.png",
|
||||
"res/actions/direction.png")
|
||||
|
||||
.AddParameter("object", _("Object to be rotated"), "Sprite")
|
||||
.AddParameter("objectPtr", _("Rotate toward this object"))
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.SetHidden(); //Deprecated
|
||||
|
||||
obj.AddExpression("X", _("X position of a point"), _("X position of a point"), _("Position"), "res/actions/position.png")
|
||||
.SetHidden()
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("", _("Name of the point"), "", true);
|
||||
|
||||
obj.AddExpression("Y", _("Y position of a point"), _("Y position of a point"), _("Position"), "res/actions/position.png")
|
||||
.SetHidden()
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("", _("Name of the point"), "", true);
|
||||
|
||||
obj.AddExpression("PointX", _("X position of a point"), _("X position of a point"), _("Position"), "res/actions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("", _("Name of the point"));
|
||||
|
||||
obj.AddExpression("PointY", _("Y position of a point"), _("Y position of a point"), _("Position"), "res/actions/position.png")
|
||||
|
||||
.AddParameter("object", _("Object"), "Sprite")
|
||||
.AddParameter("", _("Name of the point"));
|
||||
|
||||
obj.AddExpression("Direc", _("Direction"), _("Direction of the object"), _("Direction"), "res/actions/direction.png")
|
||||
.SetHidden()
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("Direction", _("Direction"), _("Direction of the object"), _("Direction"), "res/actions/direction.png")
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("Anim", _("Animation"), _("Animation of the object"), _("Animations and images"), "res/actions/animation.png")
|
||||
.SetHidden()
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("Animation", _("Animation"), _("Animation of the object"), _("Animations and images"), "res/actions/animation.png")
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("Sprite", _("Image"), _("Animation frame of the object"), _("Animations and images"), "res/actions/sprite.png")
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("AnimationSpeedScale", _("Animation speed scale"), _("Animation speed scale"), _("Animations and images"), "res/actions/animation.png")
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("ScaleX", _("Scale of the width of an object"), _("Scale of the width of an object"), _("Size"), "res/actions/scaleWidth.png")
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
obj.AddExpression("ScaleY", _("Scale of the height of an object"), _("Scale of the height of an object"), _("Size"), "res/actions/scaleHeight.png")
|
||||
.AddParameter("object", _("Object"), "Sprite");
|
||||
|
||||
extension.AddCondition("Collision",
|
||||
_("Collision (Pixel perfect)"),
|
||||
_("The condition is true if there is a collision between the two objects.\nThe test is pixel-perfect."),
|
||||
_("_PARAM0_ is in collision with _PARAM1_ (pixel perfect)"),
|
||||
_("Collision"),
|
||||
"res/conditions/collision24.png",
|
||||
"res/conditions/collision.png")
|
||||
.AddParameter("objectList", _("Object 1"), "Sprite")
|
||||
.AddParameter("objectList", _("Object 2"), "Sprite")
|
||||
.AddCodeOnlyParameter("conditionInverted", "");
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,134 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#ifndef GDCORE_SPRITEOBJECT_H
|
||||
#define GDCORE_SPRITEOBJECT_H
|
||||
#include "GDCore/PlatformDefinition/Object.h"
|
||||
#include "GDCore/BuiltinExtensions/SpriteExtension/Animation.h"
|
||||
#include "GDCore/BuiltinExtensions/SpriteExtension/Direction.h"
|
||||
#include "GDCore/BuiltinExtensions/SpriteExtension/Sprite.h"
|
||||
namespace gd { class InitialInstance; }
|
||||
namespace gd { class Object; }
|
||||
namespace gd { class Layout; }
|
||||
namespace gd { class Sprite; }
|
||||
namespace gd { class Animation; }
|
||||
namespace gd { class MainFrameWrapper; }
|
||||
namespace gd { class SerializerElement; }
|
||||
namespace gd { class PropertyDescriptor; }
|
||||
#if defined(GD_IDE_ONLY)
|
||||
class wxBitmap;
|
||||
class wxWindow;
|
||||
#endif
|
||||
|
||||
namespace gd
|
||||
{
|
||||
|
||||
/**
|
||||
* \brief Standard sprite object for extensions that implements the standard SpriteExtension
|
||||
* (see gd::BuiltinExtensionsImplementer::ImplementsSpriteExtension).
|
||||
*
|
||||
* A Sprite object is an object composed of animations, containing directions with images.
|
||||
*
|
||||
* \see Animation
|
||||
* \see Direction
|
||||
* \see Sprite
|
||||
* \see gd::BuiltinExtensionsImplementer::ImplementsSpriteExtension
|
||||
* \ingroup SpriteObjectExtension
|
||||
*/
|
||||
class GD_CORE_API SpriteObject : public gd::Object
|
||||
{
|
||||
public :
|
||||
|
||||
SpriteObject(gd::String name_);
|
||||
virtual ~SpriteObject();
|
||||
virtual gd::Object * Clone() const { return new SpriteObject(*this);}
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
virtual bool GenerateThumbnail(const gd::Project & project, wxBitmap & thumbnail) const;
|
||||
virtual void ExposeResources(gd::ArbitraryResourceWorker & worker);
|
||||
|
||||
virtual std::map<gd::String, gd::PropertyDescriptor> GetInitialInstanceProperties(const gd::InitialInstance & position, gd::Project & project, gd::Layout & scene);
|
||||
virtual bool UpdateInitialInstanceProperty(gd::InitialInstance & position, const gd::String & name, const gd::String & value, gd::Project & project, gd::Layout & scene);
|
||||
virtual void EditObject( wxWindow* parent, gd::Project & project, gd::MainFrameWrapper & mainFrameWrapper_ );
|
||||
#if !defined(EMSCRIPTEN)
|
||||
virtual void DrawInitialInstance(gd::InitialInstance & instance, sf::RenderTarget & renderTarget, gd::Project & project, gd::Layout & layout);
|
||||
virtual sf::Vector2f GetInitialInstanceDefaultSize(gd::InitialInstance & instance, gd::Project & project, gd::Layout & layout) const;
|
||||
virtual sf::Vector2f GetInitialInstanceOrigin(gd::InitialInstance & instance, gd::Project & project, gd::Layout & layout) const;
|
||||
virtual void LoadResources(gd::Project & project, gd::Layout & layout);
|
||||
#endif
|
||||
|
||||
virtual bool SupportShaders() { return true; }
|
||||
#endif
|
||||
|
||||
/** \name Animations
|
||||
* Methods related to animations management
|
||||
*/
|
||||
///@{
|
||||
/**
|
||||
* \brief Return the animation at the specified index.
|
||||
* If the index is out of bound, a "bad animation" object is returned.
|
||||
*/
|
||||
const Animation & GetAnimation(std::size_t nb) const;
|
||||
|
||||
/**
|
||||
* \brief Return the animation at the specified index.
|
||||
* If the index is out of bound, a "bad animation" object is returned.
|
||||
*/
|
||||
Animation & GetAnimation(std::size_t nb);
|
||||
|
||||
/**
|
||||
* \brief Return the number of animations this object has.
|
||||
*/
|
||||
std::size_t GetAnimationsCount() const { return animations.size(); };
|
||||
|
||||
/**
|
||||
* \brief Add an animation at the end of the existing ones.
|
||||
*/
|
||||
void AddAnimation(const Animation & animation);
|
||||
|
||||
/**
|
||||
* \brief Remove an animation.
|
||||
*/
|
||||
bool RemoveAnimation(std::size_t nb);
|
||||
|
||||
/**
|
||||
* \brief Remove all animations.
|
||||
*/
|
||||
void RemoveAllAnimations() { animations.clear(); }
|
||||
|
||||
/**
|
||||
* \brief Return true if the object hasn't any animation.
|
||||
*/
|
||||
bool HasNoAnimations() const { return animations.empty(); }
|
||||
|
||||
/**
|
||||
* \brief Swap the position of two sprites
|
||||
*/
|
||||
void SwapAnimations(std::size_t firstIndex, std::size_t secondIndex);
|
||||
|
||||
/**
|
||||
* \brief Return a read-only reference to the vector containing all the animation of the object.
|
||||
*/
|
||||
const std::vector < Animation > & GetAllAnimations() const { return animations; }
|
||||
///@}
|
||||
|
||||
private:
|
||||
|
||||
virtual void DoUnserializeFrom(gd::Project & project, const gd::SerializerElement & element);
|
||||
#if defined(GD_IDE_ONLY)
|
||||
virtual void DoSerializeTo(gd::SerializerElement & element) const;
|
||||
#endif
|
||||
|
||||
const Sprite * GetInitialInstanceSprite(gd::InitialInstance & instance, gd::Project & project, gd::Layout & layout, bool * shouldNotRotate = NULL) const;
|
||||
mutable std::vector < Animation > animations;
|
||||
|
||||
static Animation badAnimation; //< Bad animation when an out of bound animation is requested.
|
||||
};
|
||||
|
||||
GD_CORE_API gd::Object * CreateSpriteObject(gd::String name);
|
||||
|
||||
}
|
||||
#endif // GDCORE_SPRITEOBJECT_H
|
@@ -1,129 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsStringInstructionsExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinStringInstructions",
|
||||
_("Text manipulation"),
|
||||
_("Built-in extension providing expressions for manipulating texts."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddStrExpression("NewLine",
|
||||
_("Insert a new line"),
|
||||
_("Insert a new line"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png");
|
||||
|
||||
extension.AddStrExpression("FromCodePoint",
|
||||
_("Get character from code point"),
|
||||
_("Get character from code point"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("expression", _("Code point"));
|
||||
|
||||
extension.AddStrExpression("ToUpperCase",
|
||||
_("Uppercase a text"),
|
||||
_("Uppercase a text"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"));
|
||||
|
||||
extension.AddStrExpression("ToLowerCase",
|
||||
_("Lowercase a text"),
|
||||
_("Lowercase a text"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"));
|
||||
|
||||
extension.AddStrExpression("SubStr",
|
||||
_("Get a portion of a text"),
|
||||
_("Get a portion of a text"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"))
|
||||
.AddParameter("expression", _("Start position of the portion (the first letter is at position 0)"))
|
||||
.AddParameter("expression", _("Length of the portion"));
|
||||
|
||||
extension.AddStrExpression("StrAt",
|
||||
_("Get a character from a text"),
|
||||
_("Get a character from a text"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"))
|
||||
.AddParameter("expression", _("Position of the character (the first letter is at position 0)"));
|
||||
|
||||
extension.AddExpression("StrLength",
|
||||
_("Length of a text"),
|
||||
_("Length of a text"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"));
|
||||
|
||||
|
||||
|
||||
extension.AddExpression("StrFind",
|
||||
_("Search in a text"),
|
||||
_("Search in a text (return the position of the result or -1 if not found)"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"))
|
||||
.AddParameter("string", _("Text to search for"));
|
||||
|
||||
|
||||
|
||||
extension.AddExpression("StrRFind",
|
||||
_("Search in a text from end"),
|
||||
_("Search in a text from the end (return the position of the result or -1 if not found)"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"))
|
||||
.AddParameter("string", _("Text to search for"));
|
||||
|
||||
|
||||
|
||||
extension.AddExpression("StrFindFrom",
|
||||
_("Search in a text, starting from a position"),
|
||||
_("Search in a text starting from a position (return the position of the result or -1 if not found)"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"))
|
||||
.AddParameter("string", _("Text to search for"))
|
||||
.AddParameter("expression", _("Position of the first character in the string to be considered in the search"));
|
||||
|
||||
|
||||
|
||||
extension.AddExpression("StrRFindFrom",
|
||||
_("Search in a text from the end, starting from a position"),
|
||||
_("Search in a text from the end, starting from a position (return the position of the result or -1 if not found)"),
|
||||
_("Manipulation on text"),
|
||||
"res/conditions/toujours24.png")
|
||||
|
||||
.AddParameter("string", _("Text"))
|
||||
.AddParameter("string", _("Text to search for"))
|
||||
.AddParameter("expression", _("Position of the last character in the string to be considered in the search"));
|
||||
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,154 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsTimeExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinTime",
|
||||
_("Time"),
|
||||
_("Built-in extension providing actions and conditions about the time."),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
|
||||
extension.AddCondition("Timer",
|
||||
_("Value of a timer"),
|
||||
_("Test the elapsed time of a timer."),
|
||||
_("The timer _PARAM2_ is greater than _PARAM1_ seconds"),
|
||||
_("Timers and time"),
|
||||
"res/conditions/timer24.png",
|
||||
"res/conditions/timer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Time in seconds"))
|
||||
.AddParameter("string", _("Timer's name"));
|
||||
|
||||
extension.AddCondition("TimeScale",
|
||||
_("Time scale"),
|
||||
_("Test the time scale."),
|
||||
_("The time scale is _PARAM1__PARAM2_"),
|
||||
_("Timers and time"),
|
||||
"res/conditions/time24.png",
|
||||
"res/conditions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to test"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("TimerPaused",
|
||||
_("State of a timer"),
|
||||
_("Test if specified timer is paused."),
|
||||
_("The timer _PARAM1_ is paused"),
|
||||
_("Timers and time"),
|
||||
"res/conditions/timerPaused24.png",
|
||||
"res/conditions/timerPaused.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Timer's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("ResetTimer",
|
||||
_("Reset a timer"),
|
||||
_("Reset the specified timer."),
|
||||
_("Reset the timer _PARAM1_"),
|
||||
_("Timers and time"),
|
||||
"res/actions/timer24.png",
|
||||
"res/actions/timer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Timer's name"));
|
||||
|
||||
extension.AddAction("PauseTimer",
|
||||
_("Pause a timer"),
|
||||
_("Pause a timer."),
|
||||
_("Pause timer _PARAM1_"),
|
||||
_("Timers and time"),
|
||||
"res/actions/pauseTimer24.png",
|
||||
"res/actions/pauseTimer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Timer's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("UnPauseTimer",
|
||||
_("Unpause a timer"),
|
||||
_("Unpause a timer."),
|
||||
_("Unpause timer _PARAM1_"),
|
||||
_("Timers and time"),
|
||||
"res/actions/unPauseTimer24.png",
|
||||
"res/actions/unPauseTimer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Timer's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("RemoveTimer",
|
||||
_("Delete a timer"),
|
||||
_("Delete a timer from memory."),
|
||||
_("Delete timer _PARAM1_ from memory"),
|
||||
_("Timers and time"),
|
||||
"res/actions/timer24.png",
|
||||
"res/actions/timer.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Timer's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("ChangeTimeScale",
|
||||
_("Change time scale"),
|
||||
_("Change the time scale of the game."),
|
||||
_("Set time scale to _PARAM1_"),
|
||||
_("Timers and time"),
|
||||
"res/actions/time24.png",
|
||||
"res/actions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Scale (1 : Default, 2 : Faster, 0.5 : Slower...)"));
|
||||
|
||||
extension.AddExpression("TimeDelta", _("Time elapsed since the last image"), _("Time elapsed since the last image"), _("Time"), "res/actions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("TempsFrame", _("Time elapsed since the last image"), _("Time elapsed since the last image"), _("Time"), "res/actions/time.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("ElapsedTime", _("Time elapsed since the last image"), _("Time elapsed since the last image"), _("Time"), "res/actions/time.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
|
||||
extension.AddExpression("TimerElapsedTime", _("Timer value"), _("Value of a timer"), _("Time"), "res/actions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Timer's name"));
|
||||
|
||||
|
||||
extension.AddExpression("TimeFromStart", _("Time elapsed since the beginning of the scene"), _("Time elapsed since the beginning of the scene"), _("Time"), "res/actions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
;
|
||||
|
||||
extension.AddExpression("TempsDebut", _("Time elapsed since the beginning of the scene"), _("Time elapsed since the beginning of the scene"), _("Time"), "res/actions/time.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
;
|
||||
|
||||
|
||||
extension.AddExpression("TimeScale", _("Time scale"), _("Time scale"), _("Time"), "res/actions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
;
|
||||
|
||||
extension.AddExpression("TimeScale", _("Time scale"), _("Time scale"), _("Time"), "res/actions/time.png")
|
||||
.SetHidden()
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
|
||||
extension.AddExpression("Time", _("Current time"), _("Current time"), _("Time"), "res/actions/time.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("", _("Hour : hour\nMinutes : min\nSeconds : sec\nDay in the month : mday\nMonths since January : mon\nYear since 1900 : year\nDays since sunday :wday\nDays since January 1st : yday"));
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,203 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsVariablesExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinVariables",
|
||||
_("Variable features"),
|
||||
_("Built-in extension allowing to manipulate variables"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddCondition("VarScene",
|
||||
_("Value of a variable"),
|
||||
_("Compare the value of a scene variable."),
|
||||
_("Variable _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to compare"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("VarSceneTxt",
|
||||
_("Text of a variable"),
|
||||
_("Compare the text of a scene variable."),
|
||||
_("The text of variable _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("string", _("Text to compare"))
|
||||
.SetManipulatedType("string");
|
||||
|
||||
extension.AddCondition("VariableChildExists",
|
||||
_("Child existence"),
|
||||
_("Return true if the specified child of the variable exists."),
|
||||
_("Child _PARAM1_ of variable _PARAM0_ exists"),
|
||||
_("Variables/Structures"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"))
|
||||
.AddParameter("string", _("Name of the child"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("GlobalVariableChildExists",
|
||||
_("Child existence"),
|
||||
_("Return true if the specified child of the global variable exists."),
|
||||
_("Child _PARAM1_ of global variable _PARAM0_ exists"),
|
||||
_("Variables/Global variables/Structures"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"))
|
||||
.AddParameter("string", _("Name of the child"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddCondition("VarSceneDef",
|
||||
_("Test if a scene variable is defined"),
|
||||
_("Test if the scene variable exist."),
|
||||
_("Variable _PARAM0_ is defined"),
|
||||
_("Variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Variable"))
|
||||
.SetHidden();
|
||||
|
||||
extension.AddCondition("VarGlobal",
|
||||
_("Value of a global variable"),
|
||||
_("Compare the value of a global variable."),
|
||||
_("Global variable _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Variables/Global variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("expression", _("Value to compare"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddCondition("VarGlobalTxt",
|
||||
_("Text of a global variable"),
|
||||
_("Compare the text of a global variable."),
|
||||
_("The text of the global variable _PARAM0_ is _PARAM1__PARAM2_"),
|
||||
_("Variables/Global variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"))
|
||||
.AddParameter("relationalOperator", _("Sign of the test"))
|
||||
.AddParameter("string", _("Text to compare"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("string");
|
||||
|
||||
extension.AddCondition("VarGlobalDef",
|
||||
_("Test if a global variable is defined"),
|
||||
_("Test if a global variable exists"),
|
||||
_("Global variable _PARAM0_ is defined"),
|
||||
_("Variables/Global variables"),
|
||||
"res/conditions/var24.png",
|
||||
"res/conditions/var.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Variable"))
|
||||
.MarkAsAdvanced()
|
||||
.SetHidden();
|
||||
|
||||
extension.AddAction("ModVarScene",
|
||||
_("Value of a variable"),
|
||||
_("Modify the value of a scene variable."),
|
||||
_("Do _PARAM1__PARAM2_ to variable _PARAM0_"),
|
||||
_("Variables"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModVarSceneTxt",
|
||||
_("String of a variable"),
|
||||
_("Modify the text of a scene variable."),
|
||||
_("Do _PARAM1__PARAM2_ to the text of variable _PARAM0_"),
|
||||
_("Variables"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("string", _("Text"))
|
||||
.SetManipulatedType("string");
|
||||
|
||||
extension.AddAction("ModVarGlobal",
|
||||
_("Value of a global variable"),
|
||||
_("Modify the value of a global variable"),
|
||||
_("Do _PARAM1__PARAM2_ to global variable _PARAM0_"),
|
||||
_("Variables/Global variables"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("expression", _("Value"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("number");
|
||||
|
||||
extension.AddAction("ModVarGlobalTxt",
|
||||
_("String of a global variable"),
|
||||
_("Modify the text of a global variable."),
|
||||
_("Do _PARAM1__PARAM2_ to the text of global variable _PARAM0_"),
|
||||
_("Variables/Global variables"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"))
|
||||
.AddParameter("operator", _("Modification's sign"))
|
||||
.AddParameter("string", _("Text"))
|
||||
.MarkAsAdvanced()
|
||||
.SetManipulatedType("string");
|
||||
|
||||
extension.AddAction("VariableRemoveChild",
|
||||
_("Remove a child"),
|
||||
_("Remove a child from a variable."),
|
||||
_("Remove child _PARAM1_ from variable _PARAM0_"),
|
||||
_("Variables/Structure"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"))
|
||||
.AddParameter("string", _("Child's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddAction("GlobalVariableRemoveChild",
|
||||
_("Remove a child"),
|
||||
_("Remove a child from a global variable."),
|
||||
_("Remove child _PARAM1_ from global variable _PARAM0_"),
|
||||
_("Variables/Global variables/Structure"),
|
||||
"res/actions/var24.png",
|
||||
"res/actions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"))
|
||||
.AddParameter("string", _("Child's name"))
|
||||
.MarkAsAdvanced();
|
||||
|
||||
extension.AddExpression("Variable", _("Scene variables"), _("Scene variables"), _("Variables"), "res/actions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"));
|
||||
|
||||
extension.AddStrExpression("VariableString", _("Scene variables"), _("Text of a scene variable"), _("Variables"), "res/actions/var.png")
|
||||
.AddParameter("scenevar", _("Variable"));
|
||||
|
||||
extension.AddExpression("GlobalVariable", _("Global variables"), _("Global variable"), _("Variables"), "res/actions/var.png")
|
||||
.AddParameter("globalvar", _("Name of the global variable"));
|
||||
|
||||
extension.AddStrExpression("GlobalVariableString", _("Global variables"), _("Text of a global variable"), _("Variables"), "res/actions/var.png")
|
||||
.AddParameter("globalvar", _("Variable"));
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,95 +0,0 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "AllBuiltinExtensions.h"
|
||||
#include "GDCore/Tools/Localization.h"
|
||||
|
||||
using namespace std;
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void GD_CORE_API BuiltinExtensionsImplementer::ImplementsWindowExtension(gd::PlatformExtension & extension)
|
||||
{
|
||||
extension.SetExtensionInformation("BuiltinWindow",
|
||||
_("Window features"),
|
||||
_("Built-in extension allowing to manipulate the game's window"),
|
||||
"Florian Rival",
|
||||
"Open source (MIT License)");
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
extension.AddAction("SetFullScreen",
|
||||
_("De/activate fullscreen"),
|
||||
_("This action activate or desactivate fullscreen."),
|
||||
_("Activate fullscreen: _PARAM1_ (keep aspect ratio: _PARAM2_)"),
|
||||
_("Game's window"),
|
||||
"res/actions/fullscreen24.png",
|
||||
"res/actions/fullscreen.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("yesorno", _("Activate fullscreen"))
|
||||
.AddParameter("yesorno", _("Keep aspect ratio (HTML5 games only, yes by default)"), "",true).SetDefaultValue("yes");
|
||||
|
||||
extension.AddAction("SetWindowMargins",
|
||||
_("Change window's margins"),
|
||||
_("This action change the margins, in pixels, of the game's window."),
|
||||
_("Set margins of game window to _PARAM1_;_PARAM2_;_PARAM3_;_PARAM4_"),
|
||||
_("Game's window"),
|
||||
"res/actions/window24.png",
|
||||
"res/actions/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Top"))
|
||||
.AddParameter("expression", _("Right"))
|
||||
.AddParameter("expression", _("Bottom"))
|
||||
.AddParameter("expression", _("Left"));
|
||||
|
||||
extension.AddAction("SetWindowSize",
|
||||
_("Change the size of the screen"),
|
||||
_("This action change the size of the game window."),
|
||||
_("Change window size: _PARAM1_x_PARAM2_"),
|
||||
_("Game's window"),
|
||||
"res/actions/window24.png",
|
||||
"res/actions/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("expression", _("Width"))
|
||||
.AddParameter("expression", _("Height"))
|
||||
.AddParameter("yesorno", _("Use this size as default size for new scene cameras\?\n(Yes to change extend the game area, No to stretch the game to the window's size)."));
|
||||
|
||||
extension.AddAction("SetWindowIcon",
|
||||
_("Change window's icon"),
|
||||
_("This action change the icon of the game's window."),
|
||||
_("Use _PARAM1_ as icon for the game's window."),
|
||||
_("Game's window"),
|
||||
"res/actions/window24.png",
|
||||
"res/actions/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("Name of the image to be used as the icon"));
|
||||
|
||||
extension.AddAction("SetWindowTitle",
|
||||
_("Change window's title"),
|
||||
_("This action change the title of the game window."),
|
||||
_("Change window title to _PARAM1_"),
|
||||
_("Game's window"),
|
||||
"res/actions/window24.png",
|
||||
"res/actions/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "")
|
||||
.AddParameter("string", _("New title"));
|
||||
|
||||
extension.AddExpression("SceneWindowWidth", _("Width of the scene window"), _("Width of the scene window (or scene canvas for HTML5 games)"), _("Screen"), "res/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("SceneWindowHeight", _("Height of the scene window"), _("Height of the scene window (or scene canvas for HTML5 games)"), _("Screen"), "res/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
|
||||
extension.AddExpression("ScreenWidth", _("Width of the screen/page"), _("Width of the screen (or the page for HTML5 games in browser)"), _("Screen"), "res/display16.png");
|
||||
|
||||
extension.AddExpression("ScreenHeight", _("Height of the screen/page"), _("Height of the screen (or the page for HTML5 games in browser)"), _("Screen"), "res/display16.png");
|
||||
|
||||
extension.AddExpression("ColorDepth", _("Color depth"), _("Color depth"), _("Screen"), "res/display16.png");
|
||||
|
||||
extension.AddStrExpression("WindowTitle", _("Window's title"), _("Window's title"), _("Screen"), "res/window.png")
|
||||
.AddCodeOnlyParameter("currentScene", "");
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
|
@@ -71,7 +71,7 @@
|
||||
*
|
||||
* Download the current version of the compiler used by GDevelop on Windows here:
|
||||
*
|
||||
* http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.9.2.exe/download
|
||||
* https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1309.0/tdm-gcc-4.9.2.exe/download
|
||||
*
|
||||
* \section installWinCompiler_install Installation
|
||||
*
|
||||
@@ -222,6 +222,7 @@ brew install cmake
|
||||
brew install p7zip
|
||||
brew install pkgconfig
|
||||
brew install wxwidgets
|
||||
brew install freetype
|
||||
\endcode
|
||||
* If you want to generate the documentation and translations, install Doxygen and Gettext:
|
||||
\code
|
||||
@@ -337,7 +338,7 @@ make -j4
|
||||
* \section platformstructure Structure of a platform
|
||||
*
|
||||
* A platform for GDevelop Core is a class inheriting from gd::Platform.<br>
|
||||
* They contains the extensions of the platform (see below) and offer various methods, like gd::Platform::GetProjectExporter which
|
||||
* They contains the extensions of the platform (see below) and offer various methods, like gd::Platform::GetProjectExporters which
|
||||
* is called by the IDE to export a gd::Project to a stand-alone game.
|
||||
*
|
||||
* \subsection platformloading Platforms loading
|
||||
@@ -406,7 +407,7 @@ str += " world";
|
||||
str += " " + gd::String::From(2);
|
||||
//str now contains "Hello world 2";
|
||||
|
||||
gd::string twopointfiveStr = "2.5";
|
||||
gd::String twopointfiveStr = "2.5";
|
||||
double twopointfive = twopointfive.To<double>();
|
||||
//twopointfive == 2.5
|
||||
\endcode
|
||||
@@ -499,30 +500,22 @@ Actions are declared like this :
|
||||
* Adding an object is made using gd::PlatformExtension::AddObject method.
|
||||
*
|
||||
* \code
|
||||
gd::ObjectMetadata & obj = AddObject("Name",
|
||||
gd::ObjectMetadata & obj = AddObject<MyObject>(
|
||||
"Name",
|
||||
_("Name displayed to users"),
|
||||
_("Description"),
|
||||
"path-to-a-32-by-32-icon.png",
|
||||
&FunctionForCreatingTheObject);
|
||||
* \endcode
|
||||
*
|
||||
* *FunctionForCreatingTheObject* is a function that must just create the object. It should look like this:
|
||||
*
|
||||
* \code
|
||||
gd::Object * CreateTextObject(std::string name)
|
||||
{
|
||||
return new TextObject(name);
|
||||
}
|
||||
"path-to-a-32-by-32-icon.png");
|
||||
* \endcode
|
||||
*
|
||||
* The *C++ platform* also requires that you call *AddRuntimeObject* to declare the RuntimeObject class associated to the object being declared:<br>
|
||||
* You must pass as parameter the name of the class inheriting from RuntimeObject and a function used to create an instance of the
|
||||
* RuntimeObject.
|
||||
* It has two template parameters: the first one is the corresponding object class declared with *AddObject* (class inheriting from *gd::Object*) and the
|
||||
* second one is the *RuntimeObject* class.
|
||||
* You must pass as parameter the metadata from the object previously declared and the name of the class inheriting from RuntimeObject.
|
||||
*
|
||||
* You will also want to specify the .h file associated to the object using gd::ObjectMetadata::SetIncludeFile. For example:
|
||||
* \code
|
||||
//obj is the gd::ObjectMetadata returned when you called AddObject.
|
||||
AddRuntimeObject(obj, "RuntimeTextObject", CreateRuntimeTextObject);
|
||||
AddRuntimeObject<TextObject, RuntimeTextObject>(obj, "RuntimeTextObject");
|
||||
obj.SetIncludeFile("TextObject/TextObject.h");
|
||||
* \endcode
|
||||
*
|
||||
@@ -538,7 +531,7 @@ AddEvent("Name",
|
||||
"Description",
|
||||
"Group",
|
||||
"path-to-a-16-by-16-icon.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new EventClassName))
|
||||
std::make_shared<EventClassName>())
|
||||
* \endcode
|
||||
*
|
||||
* The event must be able to generate its code when events are being translated to C++ or Javascript:<br>
|
||||
@@ -550,7 +543,7 @@ AddEvent("Standard",
|
||||
_("Standard event: Actions are run if conditions are fulfilled."),
|
||||
"",
|
||||
"res/eventaddicon.png",
|
||||
std::shared_ptr<gd::BaseEvent>(new gd::StandardEvent))
|
||||
std::make_shared<gd::StandardEvent>())
|
||||
.SetCodeGenerator(std::shared_ptr<gd::EventMetadata::CodeGenerator>(codeGen));
|
||||
* \endcode
|
||||
|
||||
@@ -567,8 +560,8 @@ gd::BehaviorMetadata & aut = AddBehavior("Name",
|
||||
"Group",
|
||||
"path-to-a-32-by-32-icon.png",
|
||||
"BehaviorClassName",
|
||||
std::shared_ptr<gd::Behavior>(new BehaviorClassName),
|
||||
std::shared_ptr<gd::BehaviorsSharedData>(new BehaviorSharedDataClassName));
|
||||
std::make_shared<BehaviorClassName>(),
|
||||
std::make_shared<BehaviorSharedDataClassName>());
|
||||
* \endcode
|
||||
* The last line can be replaced by <code>std::shared_ptr<gd::BehaviorsSharedData>()</code> if no shared data are being used.
|
||||
*
|
||||
@@ -626,8 +619,8 @@ public:
|
||||
"",
|
||||
"CppPlatform/Extensions/myicon.png",
|
||||
"PhysicsBehavior",
|
||||
std::shared_ptr<gd::Behavior>(new BehaviorClassName),
|
||||
std::shared_ptr<gd::BehaviorsSharedData>(new BehaviorSharedDataClassName));
|
||||
std::make_shared<BehaviorClassName>(),
|
||||
std::make_shared<BehaviorSharedDataClassName>());
|
||||
|
||||
#if defined(GD_IDE_ONLY)
|
||||
behaviorInfo.SetIncludeFile("MyExtension/MyIncludeFile.h");
|
||||
@@ -785,5 +778,3 @@ extern "C" ExtensionBase * GD_EXTENSION_API CreateGDExtension() {
|
||||
* \brief Part of the tinyxml library
|
||||
* \ingroup TinyXml
|
||||
*/
|
||||
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
@@ -8,11 +8,11 @@
|
||||
#include <wx/dcmemory.h>
|
||||
#endif
|
||||
#include "CommentEvent.h"
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/IDE/Dialogs/EditComment.h"
|
||||
#include "GDCore/IDE/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
|
||||
using namespace std;
|
||||
@@ -87,7 +87,7 @@ void CommentEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::Event
|
||||
unsigned int text2Height = renderingHelper->GetHTMLRenderer().GetTotalHeight();
|
||||
|
||||
//Prepare background
|
||||
dc.SetBrush(wxBrush(wxColour(r, v, b), wxTRANSPARENT));
|
||||
dc.SetBrush(wxBrush(wxColour(r, v, b), wxBRUSHSTYLE_TRANSPARENT));
|
||||
dc.SetPen(wxPen(wxColour(r/2, v/2, b/2), 1));
|
||||
|
||||
//Draw the background
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#ifndef COMMENTEVENT_H
|
||||
|
@@ -1,21 +1,21 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#include "ForEachEvent.h"
|
||||
#include <iostream>
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/Events/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/Events/Tools/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/IDE/Dialogs/EditForEachEvent.h"
|
||||
|
||||
using namespace std;
|
||||
@@ -109,7 +109,10 @@ void ForEachEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::Event
|
||||
|
||||
//For Each text
|
||||
dc.SetFont( renderingHelper->GetNiceFont().Bold() );
|
||||
dc.SetTextForeground(wxColour(0,0,0));
|
||||
if ( !IsDisabled() )
|
||||
dc.SetTextForeground( wxColour( 0, 0, 0 ) );
|
||||
else
|
||||
dc.SetTextForeground( wxColour( 160, 160, 160 ) );
|
||||
dc.DrawText( _("For each object") + " " + objectsToPick.GetPlainString() + _(", repeat :"), x + 4, y + 3 );
|
||||
|
||||
//Draw conditions rectangle
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
#include <wx/renderer.h>
|
||||
#include "GDCore/IDE/Dialogs/MainFrameWrapper.h"
|
||||
#endif
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/IDE/Dialogs/GroupEventDialog.h"
|
||||
#include "GDCore/IDE/Dialogs/EventStoreDialog.h"
|
||||
|
||||
@@ -132,7 +132,7 @@ void GroupEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsE
|
||||
|
||||
dc.SetTextBackground(backgroundColor);
|
||||
dc.SetTextForeground(textColor);
|
||||
dc.SetFont( wxFont( 12, wxDEFAULT, wxNORMAL, wxFONTWEIGHT_BOLD ) );
|
||||
dc.SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD ) );
|
||||
dc.DrawText( groupTitle, x+5, y + 5 );
|
||||
#endif
|
||||
}
|
||||
@@ -148,7 +148,7 @@ unsigned int GroupEvent::GetRenderedHeight(unsigned int width, const gd::Platfor
|
||||
|
||||
wxString groupTitle = name.empty() ? _("Untitled group") : wxString(name);
|
||||
|
||||
dc.SetFont( wxFont( 12, wxDEFAULT, wxNORMAL, wxNORMAL ) );
|
||||
dc.SetFont( wxFont( 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL ) );
|
||||
wxRect text = dc.GetTextExtent(groupTitle);
|
||||
|
||||
renderedHeight = text.GetHeight()+10;
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include <iostream>
|
||||
@@ -8,18 +8,19 @@
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
#include <wx/dcmemory.h>
|
||||
#endif
|
||||
#include "GDCore/IDE/SkinHelper.h"
|
||||
#include "GDCore/IDE/wxTools/SkinHelper.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/PlatformDefinition/Object.h"
|
||||
#include "GDCore/PlatformDefinition/Project.h"
|
||||
#include "GDCore/PlatformDefinition/Layout.h"
|
||||
#include "GDCore/PlatformDefinition/ExternalEvents.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/EventsCodeNameMangler.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Project/Object.h"
|
||||
#include "GDCore/Project/Project.h"
|
||||
#include "GDCore/Project/Layout.h"
|
||||
#include "GDCore/Project/ExternalEvents.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/Tools/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/Builtin/LinkEvent.h"
|
||||
#include "GDCore/IDE/Dialogs/EditLink.h"
|
||||
#include "GDCore/Events/Builtin/GroupEvent.h"
|
||||
#include "GDCore/IDE/Dialogs/LinkEventEditor.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
|
||||
using namespace std;
|
||||
@@ -29,8 +30,8 @@ namespace gd
|
||||
|
||||
const EventsList * LinkEvent::GetLinkedEvents(const gd::Project & project) const
|
||||
{
|
||||
const EventsList * events = NULL;
|
||||
const gd::ExternalEvents * linkedExternalEvents = NULL;
|
||||
const EventsList * events = nullptr;
|
||||
const gd::ExternalEvents * linkedExternalEvents = nullptr;
|
||||
if ( project.HasExternalEventsNamed(GetTarget()) )
|
||||
{
|
||||
linkedExternalEvents = &project.GetExternalEvents(GetTarget());
|
||||
@@ -39,17 +40,38 @@ const EventsList * LinkEvent::GetLinkedEvents(const gd::Project & project) const
|
||||
else if ( project.HasLayoutNamed(GetTarget()) )
|
||||
events = &project.GetLayout(GetTarget()).GetEvents();
|
||||
|
||||
//If the link only includes an events group, search it inside the layout/external events
|
||||
if( includeConfig == INCLUDE_EVENTS_GROUP )
|
||||
{
|
||||
std::size_t i = 0;
|
||||
std::size_t eventsCount = events->GetEventsCount();
|
||||
for( ; i < eventsCount; ++i )
|
||||
{
|
||||
std::shared_ptr<const GroupEvent> groupEvent = std::dynamic_pointer_cast<const GroupEvent>(events->GetEventSmartPtr(i));
|
||||
if(groupEvent && groupEvent->GetName() == eventsGroupName)
|
||||
{
|
||||
//Get its sub-events
|
||||
events = &groupEvent->GetSubEvents();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(i >= eventsCount) //We didn't find the events group, return nullptr
|
||||
events = nullptr;
|
||||
}
|
||||
|
||||
return events;
|
||||
}
|
||||
|
||||
void LinkEvent::ReplaceLinkByLinkedEvents(gd::Project & project, EventsList & eventList, std::size_t indexOfTheEventInThisList)
|
||||
void LinkEvent::ReplaceLinkByLinkedEvents(const gd::Project & project, EventsList & eventList, std::size_t indexOfTheEventInThisList)
|
||||
{
|
||||
linkWasInvalid = false;
|
||||
//Finding what to link to.
|
||||
const EventsList * eventsToInclude = GetLinkedEvents(project);
|
||||
if ( eventsToInclude != NULL )
|
||||
{
|
||||
std::size_t firstEvent = IncludeAllEvents() ? 0 : GetIncludeStart();
|
||||
std::size_t lastEvent = IncludeAllEvents() ? eventsToInclude->size() - 1 : GetIncludeEnd();
|
||||
std::size_t firstEvent = includeConfig == INCLUDE_BY_INDEX ? GetIncludeStart() : 0;
|
||||
std::size_t lastEvent = includeConfig == INCLUDE_BY_INDEX ? GetIncludeEnd() : eventsToInclude->size() - 1;
|
||||
|
||||
//Check bounds
|
||||
if ( firstEvent >= eventsToInclude->size() )
|
||||
@@ -90,8 +112,6 @@ void LinkEvent::ReplaceLinkByLinkedEvents(gd::Project & project, EventsList & ev
|
||||
eventList.RemoveEvent(indexOfTheEventInThisList);
|
||||
return;
|
||||
}
|
||||
|
||||
linkWasInvalid = false;
|
||||
}
|
||||
|
||||
LinkEvent::~LinkEvent()
|
||||
@@ -100,10 +120,18 @@ LinkEvent::~LinkEvent()
|
||||
|
||||
void LinkEvent::SerializeTo(SerializerElement & element) const
|
||||
{
|
||||
element.AddChild("include")
|
||||
.SetAttribute("includeAll", IncludeAllEvents())
|
||||
.SetAttribute("start", (int)GetIncludeStart())
|
||||
.SetAttribute("end", (int)GetIncludeEnd());
|
||||
SerializerElement & includeElement = element.AddChild("include")
|
||||
.SetAttribute("includeConfig", static_cast<int>(GetIncludeConfig()));
|
||||
|
||||
if(GetIncludeConfig() == INCLUDE_EVENTS_GROUP)
|
||||
{
|
||||
includeElement.SetAttribute("eventsGroup", GetEventsGroupName());
|
||||
}
|
||||
else if(GetIncludeConfig() == INCLUDE_BY_INDEX)
|
||||
{
|
||||
includeElement.SetAttribute("start", static_cast<int>(GetIncludeStart()));
|
||||
includeElement.SetAttribute("end", static_cast<int>(GetIncludeEnd()));
|
||||
}
|
||||
|
||||
element.AddChild("target").SetValue(GetTarget());
|
||||
}
|
||||
@@ -111,17 +139,40 @@ void LinkEvent::SerializeTo(SerializerElement & element) const
|
||||
void LinkEvent::UnserializeFrom(gd::Project & project, const SerializerElement & element)
|
||||
{
|
||||
SerializerElement & includeElement = element.GetChild("include", 0, "Limites");
|
||||
SetIncludeStartAndEnd(includeElement.GetIntAttribute("start"),
|
||||
includeElement.GetIntAttribute("end"));
|
||||
SetIncludeAllEvents(includeElement.GetBoolAttribute("includeAll", true));
|
||||
|
||||
SetTarget(element.GetChild("target", 0, "Scene").GetValue().GetString());
|
||||
|
||||
if(includeElement.HasAttribute("includeAll"))
|
||||
{
|
||||
//Compatibility with GDevelop <= 4.0.92
|
||||
if(includeElement.GetBoolAttribute("includeAll", true))
|
||||
{
|
||||
SetIncludeAllEvents();
|
||||
}
|
||||
else
|
||||
{
|
||||
SetIncludeStartAndEnd(includeElement.GetIntAttribute("start"),
|
||||
includeElement.GetIntAttribute("end"));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//GDevelop > 4.0.92
|
||||
IncludeConfig config = static_cast<IncludeConfig>(includeElement.GetIntAttribute("includeConfig", 0));
|
||||
if(config == INCLUDE_ALL)
|
||||
SetIncludeAllEvents();
|
||||
else if(config == INCLUDE_EVENTS_GROUP)
|
||||
SetIncludeEventsGroup(includeElement.GetStringAttribute("eventsGroup"));
|
||||
else if(config == INCLUDE_BY_INDEX)
|
||||
SetIncludeStartAndEnd(includeElement.GetIntAttribute("start"), includeElement.GetIntAttribute("end"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
gd::BaseEvent::EditEventReturnType LinkEvent::EditEvent(wxWindow* parent_, gd::Project & project, gd::Layout & scene_, gd::MainFrameWrapper & mainFrameWrapper_)
|
||||
{
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
EditLink dialog(parent_, *this, project);
|
||||
LinkEventEditor dialog(parent_, *this, project);
|
||||
if ( dialog.ShowModal() == 0 ) return Cancelled;
|
||||
#endif
|
||||
|
||||
@@ -152,11 +203,16 @@ void LinkEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsEd
|
||||
dc.SetFont(renderingHelper->GetNiceFont());
|
||||
dc.DrawText( _("Link to ")+GetTarget(), x+32, y + 3 );
|
||||
|
||||
if ( !IncludeAllEvents() )
|
||||
if ( GetIncludeConfig() == INCLUDE_BY_INDEX )
|
||||
{
|
||||
wxRect textRect = dc.GetTextExtent(_("Link to ")+GetTarget());
|
||||
dc.DrawText( _("Include only events ")+gd::String::From(GetIncludeStart()+1)+_(" to ")+gd::String::From(GetIncludeEnd()+1), x+textRect.GetWidth()+32+10, y + 5 );
|
||||
}
|
||||
else if ( GetIncludeConfig() == INCLUDE_EVENTS_GROUP )
|
||||
{
|
||||
wxRect textRect = dc.GetTextExtent(_("Link to ")+GetTarget());
|
||||
dc.DrawText( _("Include only the events group named \"")+gd::String::From(GetEventsGroupName())+_("\""), x+textRect.GetWidth()+32+10, y + 5 );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#ifndef GDCORE_LINKEVENT_H
|
||||
@@ -18,9 +18,16 @@ namespace gd
|
||||
class GD_CORE_API LinkEvent : public gd::BaseEvent
|
||||
{
|
||||
public:
|
||||
LinkEvent() : BaseEvent(), includeAll(true), includeStart(gd::String::npos), includeEnd(gd::String::npos), linkWasInvalid(false) {};
|
||||
enum IncludeConfig
|
||||
{
|
||||
INCLUDE_ALL = 0,
|
||||
INCLUDE_EVENTS_GROUP = 1,
|
||||
INCLUDE_BY_INDEX = 2 // Deprecated
|
||||
};
|
||||
|
||||
LinkEvent() : BaseEvent(), includeConfig(INCLUDE_ALL), eventsGroupName(), includeStart(gd::String::npos), includeEnd(gd::String::npos), linkWasInvalid(false) {};
|
||||
virtual ~LinkEvent();
|
||||
virtual gd::LinkEvent * Clone() const { return new LinkEvent(*this);}
|
||||
virtual gd::LinkEvent * Clone() const { return new LinkEvent(*this); }
|
||||
|
||||
/**
|
||||
* Get the link target (i.e. the scene or external events the link refers to).
|
||||
@@ -33,19 +40,23 @@ public:
|
||||
void SetTarget(const gd::String & target_) { target = target_; };
|
||||
|
||||
/**
|
||||
* Return true if the link event must include all the events of the target.
|
||||
* Return the include config.
|
||||
*/
|
||||
bool IncludeAllEvents() const { return includeAll; };
|
||||
IncludeConfig GetIncludeConfig() const { return includeConfig; }
|
||||
|
||||
/**
|
||||
* Return true if the link event must include all the events of the target.
|
||||
*/
|
||||
void SetIncludeAllEvents(bool includeAllEvents) { includeAll = includeAllEvents; };
|
||||
void SetIncludeAllEvents() { includeConfig = INCLUDE_ALL; }
|
||||
|
||||
void SetIncludeEventsGroup(const gd::String& name) { includeConfig = INCLUDE_EVENTS_GROUP; eventsGroupName = name; }
|
||||
|
||||
/**
|
||||
* Set the number of the first and last event to be included ( Meaningful only if includeAll was set to false, see SetIncludeAllEvents )
|
||||
*/
|
||||
void SetIncludeStartAndEnd(std::size_t includeStart_, std::size_t includeEnd_) { includeStart = includeStart_; includeEnd = includeEnd_; };
|
||||
void SetIncludeStartAndEnd(std::size_t includeStart_, std::size_t includeEnd_) { includeConfig = INCLUDE_BY_INDEX; includeStart = includeStart_; includeEnd = includeEnd_; }
|
||||
|
||||
gd::String GetEventsGroupName() const { return eventsGroupName; }
|
||||
|
||||
/**
|
||||
* Get the number of the first event to be included. (Meaningful only if includeAll was set to false, see SetIncludeAllEvents)
|
||||
@@ -75,7 +86,7 @@ public:
|
||||
* When implementing a platform with a link event, you should call this function when preprocessing the events
|
||||
* (See gd::EventMetadata::codeGeneration).
|
||||
*/
|
||||
void ReplaceLinkByLinkedEvents(gd::Project & project, EventsList & eventList, std::size_t indexOfTheEventInThisList);
|
||||
void ReplaceLinkByLinkedEvents(const gd::Project & project, EventsList & eventList, std::size_t indexOfTheEventInThisList);
|
||||
|
||||
virtual bool IsExecutable() const { return true; };
|
||||
|
||||
@@ -96,9 +107,14 @@ public:
|
||||
|
||||
private:
|
||||
gd::String target; ///< The name of the external events (or scene) to be included
|
||||
bool includeAll; ///< If set to true, all the events of the target should be included
|
||||
std::size_t includeStart; ///< If includeAll is set to false, represents the number of the first event of the target to included.
|
||||
std::size_t includeEnd; ///< If includeAll is set to false, represents the number of the last event of the target to included.
|
||||
|
||||
IncludeConfig includeConfig; ///< Defines which events are included by this link
|
||||
|
||||
gd::String eventsGroupName; ///< If includeConfig is set to INCLUDE_EVENTS_GROUP, represents the name of the events group to be included.
|
||||
|
||||
std::size_t includeStart; ///< If includeConfig is set to INCLUDE_BY_INDEX, represents the number of the first event of the target to included.
|
||||
std::size_t includeEnd; ///< If includeConfig is set to INCLUDE_BY_INDEX, represents the number of the last event of the target to included.
|
||||
|
||||
bool linkWasInvalid; ///< Set to true by Preprocess if the links was invalid the last time is was processed. Used to display a warning in the events editor.
|
||||
};
|
||||
|
||||
|
@@ -1,18 +1,18 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#include "RepeatEvent.h"
|
||||
#include "GDCore/IDE/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/IDE/Dialogs/EditRepeatEvent.h"
|
||||
|
||||
using namespace std;
|
||||
@@ -108,7 +108,10 @@ void RepeatEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::Events
|
||||
|
||||
//Repeat text
|
||||
dc.SetFont( renderingHelper->GetNiceFont().Bold() );
|
||||
dc.SetTextForeground(wxColour(0,0,0));
|
||||
if ( !IsDisabled() )
|
||||
dc.SetTextForeground( wxColour( 0, 0, 0 ) );
|
||||
else
|
||||
dc.SetTextForeground( wxColour( 160, 160, 160 ) );
|
||||
dc.DrawText( _("Repeat") + " " + repeatNumberExpression.GetPlainString() + " " + _("times :"), x + 4, y + 3 );
|
||||
|
||||
//Draw conditions rectangle
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
|
@@ -1,19 +1,19 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
#include "StandardEvent.h"
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/EventsEditorSelection.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
@@ -8,17 +8,17 @@
|
||||
#include "WhileEvent.h"
|
||||
#if !defined(GD_NO_WX_GUI)
|
||||
#include <wx/msgdlg.h>
|
||||
#include "GDCore/IDE/CommonBitmapManager.h"
|
||||
#include "GDCore/IDE/wxTools/CommonBitmapProvider.h"
|
||||
#endif
|
||||
#include "GDCore/TinyXml/tinyxml.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/IDE/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/EventsEditorSelection.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/CodeGeneration/ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsRenderingHelper.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorItemsAreas.h"
|
||||
#include "GDCore/IDE/Dialogs/EventsEditor/EventsEditorSelection.h"
|
||||
#include "GDCore/Serialization/SerializerElement.h"
|
||||
#include "GDCore/Events/Serialization.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
@@ -96,21 +96,27 @@ void WhileEvent::Render(wxDC & dc, int x, int y, unsigned int width, gd::EventsE
|
||||
|
||||
//While text
|
||||
dc.SetFont( renderingHelper->GetNiceFont().Bold() );
|
||||
dc.SetTextForeground(wxColour(0,0,0));
|
||||
if ( !IsDisabled() )
|
||||
dc.SetTextForeground( wxColour( 0, 0, 0 ) );
|
||||
else
|
||||
dc.SetTextForeground( wxColour( 160, 160, 160 ) );
|
||||
dc.DrawText( _("While :"), x+5, y+5 );
|
||||
|
||||
//Draw icon if infinite loop warning is deactivated.
|
||||
if (!infiniteLoopWarning)
|
||||
{
|
||||
if ( gd::CommonBitmapManager::Get()->noProtection.IsOk() )
|
||||
dc.DrawBitmap(gd::CommonBitmapManager::Get()->noProtection, wxPoint(x+5,y+5+18), /*useMask=*/true);
|
||||
if ( gd::CommonBitmapProvider::Get()->noProtection.IsOk() )
|
||||
dc.DrawBitmap(gd::CommonBitmapProvider::Get()->noProtection, wxPoint(x+5,y+5+18), /*useMask=*/true);
|
||||
}
|
||||
|
||||
//Draw "while conditions"
|
||||
renderingHelper->DrawConditionsList(whileConditions, dc, x+80+border, y+border, width-80-border*2, this, areas, selection, platform);
|
||||
|
||||
dc.SetFont( renderingHelper->GetNiceFont().Bold() );
|
||||
dc.SetTextForeground(wxColour(0,0,0));
|
||||
if ( !IsDisabled() )
|
||||
dc.SetTextForeground( wxColour( 0, 0, 0 ) );
|
||||
else
|
||||
dc.SetTextForeground( wxColour( 160, 160, 160 ) );
|
||||
dc.DrawText( _("Repeat :"), x+4, y+whileConditionsHeight+3);
|
||||
whileConditionsHeight += repeatHeight;
|
||||
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
|
||||
|
@@ -0,0 +1,80 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/Tools/EventsCodeNameMangler.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include <set>
|
||||
|
||||
using namespace std;
|
||||
|
||||
namespace gd
|
||||
{
|
||||
|
||||
void EventsCodeGenerationContext::InheritsFrom(const EventsCodeGenerationContext & parent_)
|
||||
{
|
||||
parent = &parent_;
|
||||
|
||||
//Objects lists declared by parent became "already declared" in the child context.
|
||||
alreadyDeclaredObjectsLists = parent_.alreadyDeclaredObjectsLists;
|
||||
std::copy( parent_.objectsListsToBeDeclared.begin(), parent_.objectsListsToBeDeclared.end(), std::inserter( alreadyDeclaredObjectsLists, alreadyDeclaredObjectsLists.begin() ) );
|
||||
std::copy( parent_.emptyObjectsListsToBeDeclared.begin(), parent_.emptyObjectsListsToBeDeclared.end(), std::inserter( alreadyDeclaredObjectsLists, alreadyDeclaredObjectsLists.begin() ) );
|
||||
|
||||
depthOfLastUse = parent_.depthOfLastUse;
|
||||
customConditionDepth = parent_.customConditionDepth;
|
||||
contextDepth = parent_.GetContextDepth()+1;
|
||||
if ( parent_.maxDepthLevel )
|
||||
{
|
||||
maxDepthLevel = parent_.maxDepthLevel;
|
||||
*maxDepthLevel = std::max(*maxDepthLevel, contextDepth);
|
||||
}
|
||||
}
|
||||
|
||||
void EventsCodeGenerationContext::Reuse(const EventsCodeGenerationContext & parent_)
|
||||
{
|
||||
InheritsFrom(parent_);
|
||||
if (parent_.CanReuse())
|
||||
contextDepth = parent_.GetContextDepth(); // Keep same context depth
|
||||
}
|
||||
|
||||
void EventsCodeGenerationContext::ObjectsListNeeded(const gd::String & objectName)
|
||||
{
|
||||
if ( emptyObjectsListsToBeDeclared.find(objectName) == emptyObjectsListsToBeDeclared.end() )
|
||||
objectsListsToBeDeclared.insert(objectName);
|
||||
|
||||
depthOfLastUse[objectName] = GetContextDepth();
|
||||
}
|
||||
void EventsCodeGenerationContext::EmptyObjectsListNeeded(const gd::String & objectName)
|
||||
{
|
||||
if ( objectsListsToBeDeclared.find(objectName) == objectsListsToBeDeclared.end() )
|
||||
emptyObjectsListsToBeDeclared.insert(objectName);
|
||||
|
||||
depthOfLastUse[objectName] = GetContextDepth();
|
||||
}
|
||||
|
||||
std::set<gd::String> EventsCodeGenerationContext::GetAllObjectsToBeDeclared() const
|
||||
{
|
||||
std::set <gd::String> allObjectListsToBeDeclared(objectsListsToBeDeclared.begin(), objectsListsToBeDeclared.end());
|
||||
allObjectListsToBeDeclared.insert(emptyObjectsListsToBeDeclared.begin(), emptyObjectsListsToBeDeclared.end());
|
||||
|
||||
return allObjectListsToBeDeclared;
|
||||
}
|
||||
|
||||
unsigned int EventsCodeGenerationContext::GetLastDepthObjectListWasNeeded(const gd::String & name) const
|
||||
{
|
||||
if ( depthOfLastUse.count(name) != 0 )
|
||||
return depthOfLastUse.find(name)->second;
|
||||
|
||||
std::cout << "WARNING: During code generation, the last depth of an object list was 0." << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool EventsCodeGenerationContext::IsSameObjectsList(const gd::String & objectName, const EventsCodeGenerationContext & otherContext) const
|
||||
{
|
||||
return GetLastDepthObjectListWasNeeded(objectName) == otherContext.GetLastDepthObjectListWasNeeded(objectName);
|
||||
}
|
||||
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#ifndef EVENTSCODEGENERATIONCONTEXT_H
|
||||
@@ -32,7 +32,13 @@ public:
|
||||
* Default constructor. You may want to call InheritsFrom just after.
|
||||
* \param maxDepthLevel Optional pointer to an unsigned integer that will be updated to contain the maximal scope depth reached.
|
||||
*/
|
||||
EventsCodeGenerationContext(unsigned int * maxDepthLevel_ = NULL) : contextDepth(0), customConditionDepth(0), maxDepthLevel(maxDepthLevel_), parent(NULL) {};
|
||||
EventsCodeGenerationContext(unsigned int * maxDepthLevel_ = nullptr) :
|
||||
contextDepth(0),
|
||||
customConditionDepth(0),
|
||||
maxDepthLevel(maxDepthLevel_),
|
||||
parent(NULL),
|
||||
reuseExplicitlyForbidden(false)
|
||||
{};
|
||||
virtual ~EventsCodeGenerationContext() {};
|
||||
|
||||
/**
|
||||
@@ -41,6 +47,28 @@ public:
|
||||
*/
|
||||
void InheritsFrom(const EventsCodeGenerationContext & parent);
|
||||
|
||||
/**
|
||||
* \brief As InheritsFrom, mark the context as being the child of another one, but enabling
|
||||
* the child context to use the same object lists.
|
||||
*
|
||||
* Used for example for optimizing the last event of a list.
|
||||
*/
|
||||
void Reuse(const EventsCodeGenerationContext & parent);
|
||||
|
||||
/**
|
||||
* \brief Forbid any optimization that would reuse and modify the object list from this context
|
||||
* in children context.
|
||||
*
|
||||
* Used in while/for each/repeat or any event that have a loop and must ensure that
|
||||
* the list of objects stay clean.
|
||||
*/
|
||||
void ForbidReuse() { reuseExplicitlyForbidden = true; }
|
||||
|
||||
/**
|
||||
* \brief Return false if the object lists of the context can not be reused in a child context.
|
||||
*/
|
||||
bool CanReuse() const { return !reuseExplicitlyForbidden && parent != nullptr; }
|
||||
|
||||
/**
|
||||
* \brief Returns the depth of the inheritance of the context.
|
||||
*
|
||||
@@ -92,7 +120,7 @@ public:
|
||||
/**
|
||||
* \brief Consider that \a objectName is now declared in the context.
|
||||
*/
|
||||
void SetObjectDeclared(const gd::String & objectName ) { alreadyDeclaredObjectsLists.insert(objectName); }
|
||||
void SetObjectDeclared(const gd::String & objectName) { alreadyDeclaredObjectsLists.insert(objectName); }
|
||||
|
||||
/**
|
||||
* Return all the objects lists which will be declared by the current context
|
||||
@@ -122,6 +150,13 @@ public:
|
||||
*/
|
||||
unsigned int GetLastDepthObjectListWasNeeded(const gd::String & objectName) const;
|
||||
|
||||
/**
|
||||
* \brief Check if twos context have the same list for an object.
|
||||
*
|
||||
* This can be the case when a context is reusing the lists of another (see gd::EventsCodeGenerationContext::Reuse).
|
||||
*/
|
||||
bool IsSameObjectsList(const gd::String & objectName, const EventsCodeGenerationContext & otherContext) const;
|
||||
|
||||
/**
|
||||
* \brief Called when a custom condition code is generated.
|
||||
*/
|
||||
@@ -150,6 +185,7 @@ private:
|
||||
unsigned int customConditionDepth; ///< The depth of the conditions being generated.
|
||||
unsigned int * maxDepthLevel; ///< A pointer to a unsigned int updated with the maximum depth reached.
|
||||
const EventsCodeGenerationContext * parent; ///< The parent of the current context. Can be NULL.
|
||||
bool reuseExplicitlyForbidden; ///< If set to true, forbid children context to reuse this one without inheriting.
|
||||
};
|
||||
|
||||
}
|
1021
Core/GDCore/Events/CodeGeneration/EventsCodeGenerator.cpp
Normal file
482
Core/GDCore/Events/CodeGeneration/EventsCodeGenerator.h
Normal file
@@ -0,0 +1,482 @@
|
||||
#ifndef GDCORE_EVENTSCODEGENERATOR_H
|
||||
#define GDCORE_EVENTSCODEGENERATOR_H
|
||||
|
||||
#include "GDCore/Events/Event.h"
|
||||
#include "GDCore/Events/Instruction.h"
|
||||
#include "GDCore/String.h"
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <utility>
|
||||
namespace gd { class EventsList; }
|
||||
namespace gd { class Expression; }
|
||||
namespace gd { class Project; }
|
||||
namespace gd { class Layout; }
|
||||
namespace gd { class ExternalEvents; }
|
||||
namespace gd { class ParameterMetadata; }
|
||||
namespace gd { class ObjectMetadata; }
|
||||
namespace gd { class BehaviorMetadata; }
|
||||
namespace gd { class InstructionMetadata; }
|
||||
namespace gd { class EventsCodeGenerationContext; }
|
||||
namespace gd { class ExpressionCodeGenerationInformation; }
|
||||
namespace gd { class InstructionMetadata;}
|
||||
namespace gd { class Platform;}
|
||||
|
||||
namespace gd
|
||||
{
|
||||
|
||||
/**
|
||||
* \brief Internal class used to generate code from events
|
||||
* \todo For now, this class generates only C++ code for GD C++ Platform.
|
||||
*
|
||||
* \see CallbacksForGeneratingExpressionCode
|
||||
*/
|
||||
class GD_CORE_API EventsCodeGenerator
|
||||
{
|
||||
friend class CallbacksForGeneratingExpressionCode;
|
||||
public:
|
||||
/**
|
||||
* \brief Remove non executable events from the event list.
|
||||
*/
|
||||
static void DeleteUselessEvents(gd::EventsList & events);
|
||||
|
||||
/**
|
||||
* \brief Construct a code generator for the specified platform/project/layout.
|
||||
*/
|
||||
EventsCodeGenerator(gd::Project & project_, const gd::Layout & layout, const gd::Platform & platform_);
|
||||
virtual ~EventsCodeGenerator() {};
|
||||
|
||||
/**
|
||||
* \brief Preprocess an events list (replacing for example links with the linked events).
|
||||
*
|
||||
* This should be called before any code generation.
|
||||
*/
|
||||
void PreprocessEventList(gd::EventsList & listEvent);
|
||||
|
||||
/**
|
||||
* \brief Generate code for executing an event list
|
||||
*
|
||||
* \param events std::vector of events
|
||||
* \param context Context used for generation
|
||||
* \return Code
|
||||
*/
|
||||
virtual gd::String GenerateEventsListCode(gd::EventsList & events, const EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Generate code for executing a condition list
|
||||
*
|
||||
* The default implementation create the condition calls using C-style ifs and booleans.
|
||||
*
|
||||
* \param game Game used
|
||||
* \param scene Scene used
|
||||
* \param conditions std::vector of conditions
|
||||
* \param context Context used for generation
|
||||
* \return Code. Boolean containing conditions result are name conditionXIsTrue, with X = the number of the condition, starting from 0.
|
||||
*/
|
||||
virtual gd::String GenerateConditionsListCode(gd::InstructionsList & conditions, EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Generate code for executing an action list
|
||||
*
|
||||
* The default implementation just calls repeatedly GenerateActionCode.
|
||||
*
|
||||
* \param game Game used
|
||||
* \param scene Scene used
|
||||
* \param actions std::vector of actions
|
||||
* \param context Context used for generation
|
||||
* \return Code
|
||||
*/
|
||||
virtual gd::String GenerateActionsListCode(gd::InstructionsList & actions, EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Generate the code for a parameter of an action/condition/expression.
|
||||
*
|
||||
* This method uses GenerateParameterCodes to generate the parameters code.
|
||||
*
|
||||
* \param scene Scene used
|
||||
* \param parameters std::vector of actual parameters.
|
||||
* \param parametersInfo std::vector of information about parameters
|
||||
* \param context Context used for generation
|
||||
* \param supplementaryParametersTypes Optional std::vector of new parameters types ( std::vector of pair<gd::String,gd::String>("type", "valueToBeInserted") )
|
||||
*
|
||||
*/
|
||||
std::vector<gd::String> GenerateParametersCodes(std::vector < gd::Expression > parameters,
|
||||
const std::vector < gd::ParameterMetadata > & parametersInfo,
|
||||
EventsCodeGenerationContext & context,
|
||||
std::vector < std::pair<gd::String, gd::String> > * supplementaryParametersTypes = 0);
|
||||
|
||||
/**
|
||||
* \brief Generate code for a single condition.
|
||||
*
|
||||
* The generation is really done in GenerateFreeCondition/GenerateObjectCondition or GenerateBehaviorCondition.
|
||||
*
|
||||
* \param condition instruction to be done.
|
||||
* \param returnBoolean The name of the boolean that must contains the condition result.
|
||||
* \param context Context used for generation
|
||||
* \return Code
|
||||
*/
|
||||
gd::String GenerateConditionCode(gd::Instruction & condition, gd::String returnBoolean, EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Generate code for a single action
|
||||
*
|
||||
* The generation is really done in GenerateFreeAction/GenerateObjectAction or GenerateBehaviorAction.
|
||||
*
|
||||
* \param condition instruction to be done.
|
||||
* \param context Context used for generation
|
||||
* \return Code
|
||||
*/
|
||||
gd::String GenerateActionCode(gd::Instruction & action, EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Generate code for declaring objects lists.
|
||||
*
|
||||
* This method is used for each event.
|
||||
*
|
||||
* \param context The context to be used.
|
||||
*/
|
||||
virtual gd::String GenerateObjectsDeclarationCode(EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Must convert a plain string ( with line feed, quotes ) to a string that can be inserted into code.
|
||||
*
|
||||
* \note It is the caller responsibility to add proper code need to create a full string.
|
||||
*
|
||||
* Usage example :
|
||||
* \code
|
||||
code += "gd::String(\""+codeGenerator.ConvertToString(name)+"\")";
|
||||
/ \endcode
|
||||
*
|
||||
* \param plainString The string to convert
|
||||
* \return plainString which can be included into the generated code.
|
||||
*/
|
||||
virtual gd::String ConvertToString(gd::String plainString);
|
||||
|
||||
/**
|
||||
* \brief Convert a plain string ( with line feed, quotes ) to a string that can be inserted into code.
|
||||
* The string construction must be explicit : for example, quotes must be added if the target language need quotes.
|
||||
*
|
||||
* Usage example :
|
||||
\code
|
||||
code += codeGenerator.ConvertToStringExplicit(name);
|
||||
\endcode
|
||||
*
|
||||
* \note The default implementation simply call ConvertToString and add quotes
|
||||
*
|
||||
* \param plainString The string to convert
|
||||
* \return plainString which can be included into the generated code.
|
||||
*/
|
||||
virtual gd::String ConvertToStringExplicit(gd::String plainString);
|
||||
|
||||
/**
|
||||
* \brief Declare an include file to be added
|
||||
* \note The way includes files are used may vary depending on the platform:
|
||||
* - On GD C++ Platform, the includes files are added in the #include directives of the generated code.
|
||||
* - On GD JS Platform, the includes files are added in the list of JS files in the index file.
|
||||
*/
|
||||
void AddIncludeFile(gd::String file) { if ( !file.empty() ) includeFiles.insert(file); };
|
||||
|
||||
/**
|
||||
* \brief Declare a list of include files to be added
|
||||
* \see gd::EventsCodeGenerator::AddIncludeFile
|
||||
*/
|
||||
void AddIncludeFiles(std::vector<gd::String> files) { for(std::size_t i = 0;i<files.size();++i) AddIncludeFile(files[i]); };
|
||||
|
||||
/**
|
||||
* \brief Add a declaration which will be inserted after includes
|
||||
*/
|
||||
void AddGlobalDeclaration(gd::String declaration) { customGlobalDeclaration.insert(declaration); };
|
||||
|
||||
/**
|
||||
* \brief Add some code before events outside the main function.
|
||||
*/
|
||||
void AddCustomCodeOutsideMain(gd::String code) { customCodeOutsideMain += code; };
|
||||
|
||||
/**
|
||||
* \brief Add some code before events in the main function.
|
||||
*/
|
||||
void AddCustomCodeInMain(gd::String code) { customCodeInMain += code; };
|
||||
|
||||
/** \brief Get the set containing the include files.
|
||||
*/
|
||||
const std::set<gd::String> & GetIncludeFiles() const { return includeFiles; }
|
||||
|
||||
/** \brief Get the custom code to be inserted outside main.
|
||||
*/
|
||||
const gd::String & GetCustomCodeOutsideMain() const { return customCodeOutsideMain; }
|
||||
|
||||
/** \brief Get the custom code to be inserted inside main function.
|
||||
*/
|
||||
const gd::String & GetCustomCodeInMain() const { return customCodeInMain; }
|
||||
|
||||
/** \brief Get the custom declaration to be inserted after includes.
|
||||
*/
|
||||
const std::set<gd::String> & GetCustomGlobalDeclaration() const { return customGlobalDeclaration; }
|
||||
|
||||
/**
|
||||
* \brief Return true if code generation is made for runtime only.
|
||||
*/
|
||||
bool GenerateCodeForRuntime() { return compilationForRuntime; }
|
||||
|
||||
/**
|
||||
* \brief Set if the code generated is meant to be used for runtime only and not in the IDE.
|
||||
*/
|
||||
void SetGenerateCodeForRuntime(bool compilationForRuntime_) { compilationForRuntime = compilationForRuntime_; }
|
||||
|
||||
/**
|
||||
* \brief Report that an error occurred during code generation ( Event code won't be generated )
|
||||
*/
|
||||
void ReportError();
|
||||
|
||||
/**
|
||||
* \brief Return true if an error has occurred during code generation ( in this case, generated code is not usable )
|
||||
*/
|
||||
bool ErrorOccurred() const { return errorOccurred; };
|
||||
|
||||
/**
|
||||
* \brief Get the project the code is being generated for.
|
||||
*/
|
||||
gd::Project & GetProject() const { return project; }
|
||||
|
||||
/**
|
||||
* \brief Get the layout the code is being generated for.
|
||||
*/
|
||||
const gd::Layout & GetLayout() const { return scene; }
|
||||
|
||||
/**
|
||||
* \brief Get the platform the code is being generated for.
|
||||
*/
|
||||
const gd::Platform & GetPlatform() const { return platform; }
|
||||
|
||||
/**
|
||||
* \brief Convert a group name to the full list of objects contained in the group.
|
||||
*
|
||||
* Get a list containing the "real" objects name when the events refers to \a objectName :<br>
|
||||
* If \a objectName if really an object, the list will only contains \a objectName unchanged.<br>
|
||||
* If \a objectName is a group, the list will contains all the objects of the group.<br>
|
||||
* If \a objectName is the "current" object in the context ( i.e: The object being used for launching an action... ),
|
||||
* none of the two rules below apply, and the list will only contains the context "current" object name.
|
||||
*/
|
||||
std::vector<gd::String> ExpandObjectsName(const gd::String & objectName, const EventsCodeGenerationContext & context) const;
|
||||
|
||||
/**
|
||||
* \brief Get the maximum depth of custom conditions reached during code generation.
|
||||
*/
|
||||
size_t GetMaxCustomConditionsDepth() const { return maxCustomConditionsDepth; }
|
||||
|
||||
/**
|
||||
* \brief Get the maximum size of a list of conditions.
|
||||
*/
|
||||
size_t GetMaxConditionsListsSize() const { return maxConditionsListsSize; }
|
||||
|
||||
/**
|
||||
* \brief Generate the full name for accessing to a boolean variable used for conditions.
|
||||
*
|
||||
* Default implementation just returns the boolean name passed as argument.
|
||||
*/
|
||||
virtual gd::String GenerateBooleanFullName(const gd::String & boolName, const gd::EventsCodeGenerationContext & context ) { return boolName; }
|
||||
|
||||
/**
|
||||
* \brief Must create a boolean. Its value must be false.
|
||||
*
|
||||
* The default implementation generates C-style code.
|
||||
*/
|
||||
virtual gd::String GenerateBooleanInitializationToFalse(const gd::String & boolName,
|
||||
const gd::EventsCodeGenerationContext & context) { return "bool "+boolName+" = false;\n";}
|
||||
|
||||
/**
|
||||
* \brief Get the full name for accessing to a list of objects
|
||||
*
|
||||
* Default implementation simply returns the name mangled using gd::EventsCodeNameMangler.
|
||||
*/
|
||||
virtual gd::String GetObjectListName(const gd::String & name, const gd::EventsCodeGenerationContext & context);
|
||||
|
||||
protected:
|
||||
|
||||
/**
|
||||
* \brief Generate the code for a single parameter.
|
||||
*
|
||||
* Standard supported parameters type, and how they are used in code:
|
||||
*
|
||||
* - object : Object name -> string
|
||||
* - expression : Mathematical expression -> number (double)
|
||||
* - string : %Text expression -> string
|
||||
* - layer, color, file, joyaxis : Same as string
|
||||
* - relationalOperator : Used to make a comparison between the function resturn value and value of the parameter preceding the relationOperator parameter -> string
|
||||
* - operator : Used to update a value using a setter and a getter -> string
|
||||
* - key, mouse, objectvar, scenevar, globalvar, password, musicfile, soundfile, police -> string
|
||||
* - trueorfalse, yesorno -> boolean ( See GenerateTrue/GenerateFalse ).
|
||||
*
|
||||
* <br><br>
|
||||
* "Code only" parameters types:
|
||||
* - inlineCode: supplementary information associated with the parameter is directly pasted in the code without change.
|
||||
*
|
||||
* <br><br>
|
||||
* Other standard parameters type that should be implemented by platforms:
|
||||
* - currentScene: Reference to the current runtime scene.
|
||||
* - objectList : a map containing lists of objects which are specified by the object name in another parameter. (C++: std::map <gd::String, std::vector<RuntimeObject*> *>). Example:
|
||||
* \code
|
||||
AddExpression("Count", _("Object count"), _("Count the number of picked objects"), _("Objects"), "res/conditions/nbObjet.png")
|
||||
.AddParameter("objectList", _("Object"))
|
||||
.SetFunctionName("PickedObjectsCount").SetIncludeFile("GDCpp/Extensions/Builtin/ObjectTools.h");
|
||||
|
||||
* \endcode
|
||||
* - objectListWithoutPicking : Same as objectList but do not pick object if they are not already picked.
|
||||
* - objectPtr : Return a pointer to object specified by the object name in another parameter ( C++: RuntimeObject* ). Example:
|
||||
* \code
|
||||
.AddParameter("object", _("Object"))
|
||||
.AddParameter("objectPtr", _("Target object"))
|
||||
//The called function will be called with this signature on the C++ platform: Function(gd::String, RuntimeObject*)
|
||||
* \endcode
|
||||
*/
|
||||
virtual gd::String GenerateParameterCodes(const gd::String & parameter, const gd::ParameterMetadata & metadata,
|
||||
gd::EventsCodeGenerationContext & context,
|
||||
const gd::String & previousParameter,
|
||||
std::vector < std::pair<gd::String, gd::String> > * supplementaryParametersTypes);
|
||||
|
||||
/**
|
||||
* \brief Call a function of the current object.
|
||||
* \note The current object is the object being manipulated by a condition or an action.
|
||||
*
|
||||
* \param objectListName The full name of the object list being used
|
||||
* \param objMetadata Metadata about the object being used.
|
||||
* \param functionCallName The function to be called on this object.
|
||||
* \param parametersStr The parameters of the function
|
||||
* \param context The context : May be used to get information about the current scope.
|
||||
*/
|
||||
virtual gd::String GenerateObjectFunctionCall(gd::String objectListName,
|
||||
const ObjectMetadata & objMetadata,
|
||||
const gd::ExpressionCodeGenerationInformation & codeInfo,
|
||||
gd::String parametersStr,
|
||||
gd::String defaultOutput,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Call a function of a behavior of the current object.
|
||||
* \note The current object is the object being manipulated by a condition or an action.
|
||||
*
|
||||
* \param objectListName The full name of the object list being used
|
||||
* \param behaviorName The full name of the behavior to be used
|
||||
* \param objMetadata Metadata about the behavior being used.
|
||||
* \param functionCallName The function to be called on this object.
|
||||
* \param parametersStr The parameters of the function
|
||||
* \param context The context : May be used to get information about the current scope.
|
||||
*/
|
||||
virtual gd::String GenerateObjectBehaviorFunctionCall(gd::String objectListName,
|
||||
gd::String behaviorName,
|
||||
const gd::BehaviorMetadata & autoInfo,
|
||||
const gd::ExpressionCodeGenerationInformation & codeInfo,
|
||||
gd::String parametersStr,
|
||||
gd::String defaultOutput,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
/**
|
||||
* \brief Called when a new scope must be entered.
|
||||
* \param context The context : Internal events of the scope have been generated, but GenerateObjectsDeclarationCode was not called.
|
||||
* \param extraVariable An optional supplementary variable that should be inherited from the parent scope.
|
||||
*/
|
||||
virtual gd::String GenerateScopeBegin(gd::EventsCodeGenerationContext & context, const gd::String & extraVariable = "") { return "{\n"; };
|
||||
|
||||
/**
|
||||
* \brief Called when a new must be ended.
|
||||
* \param context The context : Internal events of the scope have been generated, but GenerateObjectsDeclarationCode was not called.
|
||||
* \param extraVariable An optional supplementary variable that should be inherited from the parent scope.
|
||||
*/
|
||||
virtual gd::String GenerateScopeEnd(gd::EventsCodeGenerationContext & context, const gd::String & extraVariable = "") { return "}\n"; };
|
||||
|
||||
/**
|
||||
* \brief Must negate a predicat.
|
||||
*
|
||||
* The default implementation generates C-style code : It wraps the predicat inside parenthesis and add a !.
|
||||
*/
|
||||
virtual gd::String GenerateNegatedPredicat(const gd::String & predicat) const { return "!("+predicat+")"; };
|
||||
|
||||
/**
|
||||
* \brief Must create a boolean which is a reference to a boolean declared in the parent scope.
|
||||
*
|
||||
* The default implementation generates C-style code.
|
||||
*/
|
||||
virtual gd::String GenerateReferenceToUpperScopeBoolean(const gd::String & referenceName,
|
||||
const gd::String & referencedBoolean,
|
||||
gd::EventsCodeGenerationContext & context) { return "bool & "+referenceName+" = "+referencedBoolean+";\n";}
|
||||
|
||||
virtual gd::String GenerateFreeCondition(const std::vector<gd::String> & arguments,
|
||||
const gd::InstructionMetadata & instrInfos,
|
||||
const gd::String & returnBoolean,
|
||||
bool conditionInverted,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
virtual gd::String GenerateObjectCondition(const gd::String & objectName,
|
||||
const gd::ObjectMetadata & objInfo,
|
||||
const std::vector<gd::String> & arguments,
|
||||
const gd::InstructionMetadata & instrInfos,
|
||||
const gd::String & returnBoolean,
|
||||
bool conditionInverted,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
virtual gd::String GenerateBehaviorCondition(const gd::String & objectName,
|
||||
const gd::String & behaviorName,
|
||||
const gd::BehaviorMetadata & autoInfo,
|
||||
const std::vector<gd::String> & arguments,
|
||||
const gd::InstructionMetadata & instrInfos,
|
||||
const gd::String & returnBoolean,
|
||||
bool conditionInverted,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
virtual gd::String GenerateFreeAction(const std::vector<gd::String> & arguments,
|
||||
const gd::InstructionMetadata & instrInfos,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
virtual gd::String GenerateObjectAction(const gd::String & objectName,
|
||||
const gd::ObjectMetadata & objInfo,
|
||||
const std::vector<gd::String> & arguments,
|
||||
const gd::InstructionMetadata & instrInfos,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
virtual gd::String GenerateBehaviorAction(const gd::String & objectName,
|
||||
const gd::String & behaviorName,
|
||||
const gd::BehaviorMetadata & autoInfo,
|
||||
const std::vector<gd::String> & arguments,
|
||||
const gd::InstructionMetadata & instrInfos,
|
||||
gd::EventsCodeGenerationContext & context);
|
||||
|
||||
|
||||
gd::String GenerateRelationalOperatorCall(const gd::InstructionMetadata & instrInfos, const std::vector<gd::String> & arguments, const gd::String & callStartString, std::size_t startFromArgument = 0);
|
||||
gd::String GenerateOperatorCall(const gd::InstructionMetadata & instrInfos, const std::vector<gd::String> & arguments, const gd::String & callStartString, const gd::String & getterStartString, std::size_t startFromArgument = 0);
|
||||
gd::String GenerateCompoundOperatorCall(const gd::InstructionMetadata & instrInfos, const std::vector<gd::String> & arguments, const gd::String & callStartString, std::size_t startFromArgument = 0);
|
||||
gd::String GenerateMutatorCall(const gd::InstructionMetadata & instrInfos, const std::vector<gd::String> & arguments, const gd::String & callStartString, std::size_t startFromArgument = 0);
|
||||
|
||||
/**
|
||||
* \brief Must return an expression whose value is true.
|
||||
*/
|
||||
gd::String GenerateTrue() const { return "true"; };
|
||||
|
||||
/**
|
||||
* \brief Must return an expression whose value is false.
|
||||
*/
|
||||
gd::String GenerateFalse() const { return "false"; };
|
||||
|
||||
/**
|
||||
* \brief Generate the list of comma-separated arguments to be used to call a function.
|
||||
* \param arguments The code already generated for the arguments
|
||||
* \param startFrom Index of the first argument, the previous will be ignored.
|
||||
*/
|
||||
virtual gd::String GenerateArgumentsList(const std::vector<gd::String> & arguments, size_t startFrom = 0);
|
||||
|
||||
gd::Project & project; ///< The project being used.
|
||||
const gd::Layout & scene; ///< The scene being generated.
|
||||
const gd::Platform & platform; ///< The platform being used.
|
||||
|
||||
bool errorOccurred; ///< Must be set to true if an error occured.
|
||||
bool compilationForRuntime; ///< Is set to true if the code generation is made for runtime only.
|
||||
|
||||
std::set<gd::String> includeFiles; ///< List of headers files used by instructions. A (shared) pointer is used so as context created from another one can share the same list.
|
||||
gd::String customCodeOutsideMain; ///< Custom code inserted before events ( and not in events function )
|
||||
gd::String customCodeInMain; ///< Custom code inserted before events ( in main function )
|
||||
std::set<gd::String> customGlobalDeclaration; ///< Custom global C++ declarations inserted after includes
|
||||
size_t maxCustomConditionsDepth; ///< The maximum depth value for all the custom conditions created.
|
||||
size_t maxConditionsListsSize; ///< The maximum size of a list of conditions.
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif // GDCORE_EVENTSCODEGENERATOR_H
|
@@ -1,21 +1,21 @@
|
||||
/*
|
||||
* GDevelop Core
|
||||
* Copyright 2008-2015 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* Copyright 2008-2016 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
||||
* This project is released under the MIT License.
|
||||
*/
|
||||
#include "ExpressionsCodeGeneration.h"
|
||||
#include "GDCore/PlatformDefinition/Project.h"
|
||||
#include "GDCore/PlatformDefinition/Layout.h"
|
||||
#include "GDCore/PlatformDefinition/Platform.h"
|
||||
#include "GDCore/PlatformDefinition/PlatformExtension.h"
|
||||
#include "GDCore/IDE/MetadataProvider.h"
|
||||
#include "GDCore/Events/ExpressionParser.h"
|
||||
#include "GDCore/Events/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Events/ExpressionMetadata.h"
|
||||
#include "GDCore/Events/ObjectMetadata.h"
|
||||
#include "GDCore/Events/BehaviorMetadata.h"
|
||||
#include "GDCore/Project/Project.h"
|
||||
#include "GDCore/Project/Layout.h"
|
||||
#include "GDCore/Extensions/Platform.h"
|
||||
#include "GDCore/Extensions/PlatformExtension.h"
|
||||
#include "GDCore/Extensions/Metadata/MetadataProvider.h"
|
||||
#include "GDCore/Events/Parsers/ExpressionParser.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerator.h"
|
||||
#include "GDCore/Events/Tools/EventsCodeNameMangler.h"
|
||||
#include "GDCore/Events/CodeGeneration/EventsCodeGenerationContext.h"
|
||||
#include "GDCore/Extensions/Metadata/ExpressionMetadata.h"
|
||||
#include "GDCore/Extensions/Metadata/ObjectMetadata.h"
|
||||
#include "GDCore/Extensions/Metadata/BehaviorMetadata.h"
|
||||
#include "GDCore/CommonTools.h"
|
||||
|
||||
using namespace std;
|
||||
@@ -40,7 +40,7 @@ void CallbacksForGeneratingExpressionCode::OnConstantToken(gd::String text)
|
||||
|
||||
void CallbacksForGeneratingExpressionCode::OnStaticFunction(gd::String functionName, const std::vector<gd::Expression> & parameters, const gd::ExpressionMetadata & expressionInfo)
|
||||
{
|
||||
codeGenerator.AddIncludeFile(expressionInfo.codeExtraInformation.optionalIncludeFile);
|
||||
codeGenerator.AddIncludeFiles(expressionInfo.codeExtraInformation.GetIncludeFiles());
|
||||
|
||||
//Launch custom code generator if needed
|
||||
if (expressionInfo.codeExtraInformation.HasCustomCodeGenerator())
|
||||
@@ -76,7 +76,7 @@ void CallbacksForGeneratingExpressionCode::OnObjectFunction(gd::String functionN
|
||||
const gd::Project & project = codeGenerator.GetProject();
|
||||
const gd::Layout & scene = codeGenerator.GetLayout();
|
||||
|
||||
codeGenerator.AddIncludeFile(expressionInfo.codeExtraInformation.optionalIncludeFile);
|
||||
codeGenerator.AddIncludeFiles(expressionInfo.codeExtraInformation.GetIncludeFiles());
|
||||
if ( parameters.empty() ) return;
|
||||
|
||||
//Launch custom code generator if needed
|
||||
@@ -119,7 +119,7 @@ void CallbacksForGeneratingExpressionCode::OnObjectBehaviorFunction(gd::String f
|
||||
const gd::Project & project = codeGenerator.GetProject();
|
||||
const gd::Layout & scene = codeGenerator.GetLayout();
|
||||
|
||||
codeGenerator.AddIncludeFile(expressionInfo.codeExtraInformation.optionalIncludeFile);
|
||||
codeGenerator.AddIncludeFiles(expressionInfo.codeExtraInformation.GetIncludeFiles());
|
||||
if ( parameters.size() < 2 ) return;
|
||||
|
||||
//Launch custom code generator if needed
|