Compare commits
669 Commits
0.0.7
...
godot-kill
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
296d39bee6 | ||
|
|
772b680723 | ||
|
|
e2c7a0086c | ||
|
|
6dc5b09005 | ||
|
|
e538ca3879 | ||
|
|
d621b1a611 | ||
|
|
130e8b7cf1 | ||
|
|
702f38e1fd | ||
|
|
1a54d5f513 | ||
|
|
39eeab14ea | ||
|
|
ca97a46387 | ||
|
|
f4b0b69cbb | ||
|
|
1b3cc8aba6 | ||
|
|
d74151d242 | ||
|
|
0d00a6a659 | ||
|
|
b2067da28f | ||
|
|
2d418eddf0 | ||
|
|
5fe0bd6e55 | ||
|
|
dabc3194b0 | ||
|
|
7053fb15f8 | ||
|
|
a5a3a539dc | ||
|
|
faf99d2231 | ||
|
|
55fb70af8b | ||
|
|
33480f5527 | ||
|
|
ce052d4db3 | ||
|
|
28290614a1 | ||
|
|
25926a17b7 | ||
|
|
3aec6eb561 | ||
|
|
02f2e051dc | ||
|
|
aa5581f10f | ||
|
|
8875b88e0f | ||
|
|
0a3b2e9bf7 | ||
|
|
39bfa9f0c3 | ||
|
|
6b8311100b | ||
|
|
e9b45adf1c | ||
|
|
a2c1ddb22c | ||
|
|
613ad10f29 | ||
|
|
eec287c19a | ||
|
|
fb21726dfa | ||
|
|
4b663fd508 | ||
|
|
277647e0c7 | ||
|
|
5c7a8624c4 | ||
|
|
f6b7601575 | ||
|
|
afc8048d8a | ||
|
|
dd60ca8883 | ||
|
|
25615842c5 | ||
|
|
b172a47d9e | ||
|
|
e40cda6c99 | ||
|
|
d58d576677 | ||
|
|
e689da51ba | ||
|
|
42e883c097 | ||
|
|
a890957d30 | ||
|
|
1640eb2b6b | ||
|
|
506d9a8c22 | ||
|
|
1b72be9923 | ||
|
|
685f9dc07a | ||
|
|
7e6b5ec290 | ||
|
|
6db4722a13 | ||
|
|
fa15950b91 | ||
|
|
9ff6a7ec02 | ||
|
|
c8d939a732 | ||
|
|
b1bf694c35 | ||
|
|
0c1c9fae33 | ||
|
|
5e711072d9 | ||
|
|
0c93f3756a | ||
|
|
322fb06be1 | ||
|
|
d71218943d | ||
|
|
d7d0363cc3 | ||
|
|
2bb73aa93d | ||
|
|
d4cd328f96 | ||
|
|
633eaade45 | ||
|
|
c176392599 | ||
|
|
78fc0af6cb | ||
|
|
c1ec11b4c2 | ||
|
|
859a39b41b | ||
|
|
e5ee9c19ab | ||
|
|
9e9508937a | ||
|
|
d337fda1e9 | ||
|
|
25a485aea7 | ||
|
|
b5635201c2 | ||
|
|
e758c114bd | ||
|
|
4fda7867b1 | ||
|
|
b72962ac14 | ||
|
|
5069a2b1a9 | ||
|
|
65e3b0d0d9 | ||
|
|
f4cd69139d | ||
|
|
92bb1d05ba | ||
|
|
0852561cc1 | ||
|
|
d4c56c7e9f | ||
|
|
20f29fa899 | ||
|
|
a30334fc74 | ||
|
|
8a478326a0 | ||
|
|
287dfceb81 | ||
|
|
9661c4490c | ||
|
|
a2e9e0d15f | ||
|
|
6481a22a71 | ||
|
|
72fcf86227 | ||
|
|
84b4b3d6b5 | ||
|
|
14bfb8aa5b | ||
|
|
6d4612e40b | ||
|
|
4c3ed1181d | ||
|
|
0763f949a5 | ||
|
|
46a89686bc | ||
|
|
b26bab1361 | ||
|
|
27a91e3880 | ||
|
|
2043a1e345 | ||
|
|
2850bc80d1 | ||
|
|
5942e6fba6 | ||
|
|
458a5a05b2 | ||
|
|
8efd997810 | ||
|
|
0dd5f72b3b | ||
|
|
ab9f9a99d6 | ||
|
|
7870a540cf | ||
|
|
74e002b5a0 | ||
|
|
eac17e5b25 | ||
|
|
df6feae7f4 | ||
|
|
120beb29ad | ||
|
|
522ce2fe59 | ||
|
|
bc9b490169 | ||
|
|
34a5649462 | ||
|
|
1ff08f70ef | ||
|
|
cc0948c1e2 | ||
|
|
e3117263ac | ||
|
|
83baaea8f1 | ||
|
|
75ebdb4a00 | ||
|
|
f4983cc1cc | ||
|
|
00694aa46b | ||
|
|
8e80e3a5c3 | ||
|
|
1f42e9672d | ||
|
|
6328fb86b3 | ||
|
|
226ec200ca | ||
|
|
1c460e1d85 | ||
|
|
54c920b2d4 | ||
|
|
422fe4666e | ||
|
|
ae21b98d9a | ||
|
|
a74f8c9787 | ||
|
|
de50dcf49c | ||
|
|
dd37e54e43 | ||
|
|
43c06c81c0 | ||
|
|
4767b23fb8 | ||
|
|
9e0c33c9bf | ||
|
|
ab1dfed25c | ||
|
|
e467df24f8 | ||
|
|
bc79f07395 | ||
|
|
94e5561157 | ||
|
|
ee3c017104 | ||
|
|
c73cb9fefc | ||
|
|
5d855b7aec | ||
|
|
3222574b61 | ||
|
|
dd3bd307ed | ||
|
|
cf7c401ee0 | ||
|
|
41cd4ca888 | ||
|
|
21be226b33 | ||
|
|
3c8ee48d3f | ||
|
|
d382f7e6ab | ||
|
|
2dc42a7b75 | ||
|
|
fdc414975b | ||
|
|
75d13cc8a1 | ||
|
|
c5f6f9b12a | ||
|
|
39dffd6d9e | ||
|
|
2195c1653a | ||
|
|
505f6b2fd7 | ||
|
|
3cf0a19c36 | ||
|
|
c5c74d7f1d | ||
|
|
824e071eb6 | ||
|
|
6d523f8551 | ||
|
|
fc7ca1471c | ||
|
|
88a0ba7172 | ||
|
|
492ffe159b | ||
|
|
a6d21996c7 | ||
|
|
a236193e24 | ||
|
|
835dba99a4 | ||
|
|
379d653117 | ||
|
|
9eb6a75290 | ||
|
|
67528e9c20 | ||
|
|
ff2a642b4a | ||
|
|
19784b4c31 | ||
|
|
d524d3138f | ||
|
|
b8a7c36f0c | ||
|
|
2d127a476b | ||
|
|
ee54f35185 | ||
|
|
a1425e03fc | ||
|
|
fca69233ea | ||
|
|
437f01bd14 | ||
|
|
01b781ac03 | ||
|
|
19c47e93dc | ||
|
|
1c3b7fe242 | ||
|
|
8f966e2c83 | ||
|
|
866f96b912 | ||
|
|
b092aa2ccf | ||
|
|
369e6d4f11 | ||
|
|
370302ce59 | ||
|
|
c2782cb0b9 | ||
|
|
b73df4c478 | ||
|
|
73bd4f6301 | ||
|
|
34821b7e9b | ||
|
|
fde75ad02a | ||
|
|
13ce078126 | ||
|
|
fef7fe1980 | ||
|
|
a3594b2ded | ||
|
|
8c184864e2 | ||
|
|
5bc9073b26 | ||
|
|
70d18a13b1 | ||
|
|
68a5e75ea8 | ||
|
|
80900ba708 | ||
|
|
9fbaf144a6 | ||
|
|
8d78fc41e7 | ||
|
|
010d32424a | ||
|
|
ae0d34cd7e | ||
|
|
db45961936 | ||
|
|
b2bb711dbb | ||
|
|
d139203367 | ||
|
|
ec314a64b2 | ||
|
|
ebbcd36524 | ||
|
|
4874254acc | ||
|
|
af186959db | ||
|
|
f6e4dd6a00 | ||
|
|
d025065d40 | ||
|
|
7919be26f1 | ||
|
|
82d1a24f78 | ||
|
|
bff03cd2b8 | ||
|
|
cf32f0874d | ||
|
|
24b6240f3b | ||
|
|
12896f306c | ||
|
|
40a037a97a | ||
|
|
b533968531 | ||
|
|
88572c5bae | ||
|
|
8b23a80357 | ||
|
|
06675cd956 | ||
|
|
20e5fe9b4d | ||
|
|
19a7e21d47 | ||
|
|
2ff15f7fb0 | ||
|
|
2848d40d5d | ||
|
|
f8359a38e0 | ||
|
|
975439c388 | ||
|
|
94e744b751 | ||
|
|
5c57ce1118 | ||
|
|
c751bff500 | ||
|
|
df2e2af7f2 | ||
|
|
ba59e71b7a | ||
|
|
274dfb769d | ||
|
|
12a61918ab | ||
|
|
28e60109f0 | ||
|
|
e24f55476e | ||
|
|
8c5a2dedb9 | ||
|
|
07880f4352 | ||
|
|
4b104c01a1 | ||
|
|
278e1299b8 | ||
|
|
46e1b10269 | ||
|
|
9f24bf2602 | ||
|
|
15350e7969 | ||
|
|
88b6a7f4da | ||
|
|
4a8fdf744e | ||
|
|
37f51a9dd1 | ||
|
|
9352ccf82d | ||
|
|
200bc572bf | ||
|
|
de5f3d8870 | ||
|
|
5505ee91f0 | ||
|
|
7340e1212c | ||
|
|
2ec0ae41fe | ||
|
|
9e718a01d8 | ||
|
|
45efe4f29f | ||
|
|
acd0299f1e | ||
|
|
11b0c871c3 | ||
|
|
3fb791bd0d | ||
|
|
fb4b325f59 | ||
|
|
85da2b9a19 | ||
|
|
9858004de8 | ||
|
|
47180ab2d5 | ||
|
|
fa8f4b697f | ||
|
|
68a2543020 | ||
|
|
76f47e07df | ||
|
|
4e71bd541f | ||
|
|
8747d68ee3 | ||
|
|
0a84fca028 | ||
|
|
66bf5d7c48 | ||
|
|
4a7b39bc84 | ||
|
|
5f3b1414f8 | ||
|
|
0984befcae | ||
|
|
91854cfd0b | ||
|
|
90c351bb21 | ||
|
|
6bd84abaf4 | ||
|
|
f753b131e0 | ||
|
|
1d23df6d79 | ||
|
|
72788cc263 | ||
|
|
60d0e9c62b | ||
|
|
1fd2cfa7fd | ||
|
|
e463718917 | ||
|
|
5890e08bb3 | ||
|
|
a1840b9732 | ||
|
|
43430b458c | ||
|
|
c99622c2f8 | ||
|
|
2462caf25a | ||
|
|
bbef6657c1 | ||
|
|
096ac8624e | ||
|
|
f9753e80ac | ||
|
|
b3e3066c53 | ||
|
|
99cd2adfc7 | ||
|
|
052125e62a | ||
|
|
8f61b898b7 | ||
|
|
eed8b670d1 | ||
|
|
2e608e2e52 | ||
|
|
6f5d16b55a | ||
|
|
13b5b365e3 | ||
|
|
96a622f94f | ||
|
|
016fbc1e70 | ||
|
|
7bba1b52eb | ||
|
|
7ef499c1da | ||
|
|
0b0a5d4887 | ||
|
|
8fe579a104 | ||
|
|
2c8a76a8ea | ||
|
|
2e774c5b68 | ||
|
|
acfb56dca2 | ||
|
|
8bd30ce72e | ||
|
|
b517481014 | ||
|
|
c8f8fbf964 | ||
|
|
79806c397c | ||
|
|
31d0bec93e | ||
|
|
c8b793a8fb | ||
|
|
1c46a156c4 | ||
|
|
e3ff9bf4a7 | ||
|
|
5af16c2ef4 | ||
|
|
7462aeb8f3 | ||
|
|
d838f568af | ||
|
|
73a1f2ec61 | ||
|
|
793ae245ac | ||
|
|
e44c4275e7 | ||
|
|
af1137418a | ||
|
|
052feee756 | ||
|
|
a73e966175 | ||
|
|
40f635483b | ||
|
|
a30de7659f | ||
|
|
b202cc196d | ||
|
|
386fc519e3 | ||
|
|
8730d6a867 | ||
|
|
97fc8d6392 | ||
|
|
e0beaf638f | ||
|
|
9d3f501240 | ||
|
|
4804b2de2c | ||
|
|
00d7717c82 | ||
|
|
0a2a1420b1 | ||
|
|
5612e589e0 | ||
|
|
b5a3ef0ffb | ||
|
|
a31f9223e7 | ||
|
|
d6625f9c6a | ||
|
|
0f935fc925 | ||
|
|
19e767031d | ||
|
|
7e22d724fe | ||
|
|
b5d9c54893 | ||
|
|
525cee8058 | ||
|
|
5b278e54e1 | ||
|
|
3ccb1a4f2b | ||
|
|
63988e6554 | ||
|
|
ffda71dae2 | ||
|
|
0b4173def9 | ||
|
|
02d4e4cf10 | ||
|
|
e88daac8b7 | ||
|
|
4fae142722 | ||
|
|
7aeb868f38 | ||
|
|
f829896da5 | ||
|
|
f40a65a0f2 | ||
|
|
4ce9da7af6 | ||
|
|
9c7adb7248 | ||
|
|
f6d8c5506b | ||
|
|
3c3396c461 | ||
|
|
a4d567a3ec | ||
|
|
efc47ee3f5 | ||
|
|
0eb702d68d | ||
|
|
2a9769ff4f | ||
|
|
e7b5e2a9bb | ||
|
|
e1d064158c | ||
|
|
b8c6100ab7 | ||
|
|
c7fe2bb876 | ||
|
|
0c9d6f0f91 | ||
|
|
605b541010 | ||
|
|
f7147464c6 | ||
|
|
eedeb5214b | ||
|
|
f40d94f39f | ||
|
|
c70df3f504 | ||
|
|
8fa3f25f98 | ||
|
|
2c0589166a | ||
|
|
1f28850477 | ||
|
|
484fa31b23 | ||
|
|
60518cdc3a | ||
|
|
84e6ad230b | ||
|
|
985a9a798e | ||
|
|
8f6fc42207 | ||
|
|
773ad46165 | ||
|
|
f26b109126 | ||
|
|
08c2737d58 | ||
|
|
e6191dd823 | ||
|
|
ccca5b69ea | ||
|
|
673c2705ac | ||
|
|
86175c7b6f | ||
|
|
deb86273fe | ||
|
|
a54382f9b7 | ||
|
|
86da0fc88d | ||
|
|
d92cb2603c | ||
|
|
a583de32bc | ||
|
|
d21863abb9 | ||
|
|
55efca6b7d | ||
|
|
411495ce95 | ||
|
|
307c94b399 | ||
|
|
f79e733b1e | ||
|
|
5b3511b951 | ||
|
|
38cab68f89 | ||
|
|
cdbf95bbc8 | ||
|
|
0b76613f38 | ||
|
|
9fd3fdf21a | ||
|
|
10cc81ca5a | ||
|
|
5072873ea1 | ||
|
|
10470c65ef | ||
|
|
b541a3c40a | ||
|
|
c99807e9c9 | ||
|
|
93277e2333 | ||
|
|
e87ee17ada | ||
|
|
79c7b0164d | ||
|
|
006342e4d8 | ||
|
|
4efca634b2 | ||
|
|
3c587eec49 | ||
|
|
c170345b7f | ||
|
|
5dda42868c | ||
|
|
c8a949d115 | ||
|
|
32f4e8c410 | ||
|
|
8d8dc9f3ce | ||
|
|
d2b230c6a4 | ||
|
|
2f93d8855e | ||
|
|
0ac9b94099 | ||
|
|
ecd88b3752 | ||
|
|
48069ad519 | ||
|
|
6df91d5b19 | ||
|
|
6b5cbc5494 | ||
|
|
165538c265 | ||
|
|
705a3dbfcc | ||
|
|
ff16ee1472 | ||
|
|
1943cfd1b4 | ||
|
|
093a68dbc4 | ||
|
|
0683202ce4 | ||
|
|
23305e53a7 | ||
|
|
5c05ef98de | ||
|
|
563dcc804e | ||
|
|
a55ef4268f | ||
|
|
0269a74bc7 | ||
|
|
250d80eb8b | ||
|
|
b460404b7f | ||
|
|
88b8705b7b | ||
|
|
76280f46f9 | ||
|
|
5eabe39fc4 | ||
|
|
3de36d7a38 | ||
|
|
492d0b14d0 | ||
|
|
6a08536f7c | ||
|
|
361fdbe684 | ||
|
|
67c962b612 | ||
|
|
dbc88e253b | ||
|
|
58fb11a989 | ||
|
|
8d58ad304a | ||
|
|
6d9a1a4e43 | ||
|
|
6873ad70f4 | ||
|
|
21ddbc1433 | ||
|
|
68a9b3e6ce | ||
|
|
6ee26df088 | ||
|
|
aa36a9e378 | ||
|
|
a500a42d6f | ||
|
|
d8ee7249e9 | ||
|
|
a330deb249 | ||
|
|
8813d90bcb | ||
|
|
3cd7690c58 | ||
|
|
4d9a243685 | ||
|
|
c76f791799 | ||
|
|
921a9de1fa | ||
|
|
468accfb08 | ||
|
|
028b8cabb9 | ||
|
|
7c4eeb136f | ||
|
|
6fd5e166b6 | ||
|
|
e427373f16 | ||
|
|
94b8359644 | ||
|
|
0fcfe1c2a4 | ||
|
|
d478e2fdbb | ||
|
|
d0e8ed10b8 | ||
|
|
4a5e330be5 | ||
|
|
a57d9910f1 | ||
|
|
6ea25f95df | ||
|
|
6dc2b4ca0e | ||
|
|
7aa2acf652 | ||
|
|
c3b857343f | ||
|
|
4f48774a26 | ||
|
|
50d6097c51 | ||
|
|
535905d993 | ||
|
|
e3f702781f | ||
|
|
04396b4397 | ||
|
|
bfba5c4f94 | ||
|
|
2c41750dad | ||
|
|
f1fd386614 | ||
|
|
88fa4072f3 | ||
|
|
8397c955a8 | ||
|
|
1e00b864b4 | ||
|
|
e0f8c10978 | ||
|
|
21fd3e5d96 | ||
|
|
baff29362a | ||
|
|
861aabbe9b | ||
|
|
8baf7e46a4 | ||
|
|
ba072c2abd | ||
|
|
a00e20b91c | ||
|
|
812a9066e5 | ||
|
|
10b2073f21 | ||
|
|
73715552e4 | ||
|
|
18133af09f | ||
|
|
2c05701c8a | ||
|
|
e3449e454b | ||
|
|
67b766b07e | ||
|
|
5c977b6f07 | ||
|
|
8320339ab0 | ||
|
|
fcc405e6b6 | ||
|
|
153b57ed56 | ||
|
|
1fc18c3538 | ||
|
|
8c093b827e | ||
|
|
91b8312e99 | ||
|
|
cfda72b771 | ||
|
|
69c0d409c8 | ||
|
|
62aeb8b1e3 | ||
|
|
448042afdd | ||
|
|
b3515d1b0b | ||
|
|
872e9cf43f | ||
|
|
5ae665c3d2 | ||
|
|
307030ec8f | ||
|
|
d8ca95db0c | ||
|
|
a6d2a3497a | ||
|
|
c4c6c67599 | ||
|
|
bc99875979 | ||
|
|
61185f3bde | ||
|
|
96802bdbe0 | ||
|
|
60e6a56b30 | ||
|
|
8e5f8d1125 | ||
|
|
f801511d5c | ||
|
|
7156e3ee74 | ||
|
|
c28547490c | ||
|
|
6efcfaeaa1 | ||
|
|
8d119549c7 | ||
|
|
504ffd55ab | ||
|
|
27dd1055f5 | ||
|
|
28e4573afe | ||
|
|
ba3e944f44 | ||
|
|
e8ff251b12 | ||
|
|
5eee3de527 | ||
|
|
a7800348d7 | ||
|
|
16dc444dbe | ||
|
|
bf9b0e8aef | ||
|
|
136b470b36 | ||
|
|
833c6ec37d | ||
|
|
a4ebf7d31a | ||
|
|
894c52db09 | ||
|
|
e118888f96 | ||
|
|
5ff85123d5 | ||
|
|
7ee48c4a7b | ||
|
|
99ab6fce9c | ||
|
|
bf9315358d | ||
|
|
4e236be85d | ||
|
|
11394c5fea | ||
|
|
9d1dc0b61e | ||
|
|
1e06c8181f | ||
|
|
512d99c900 | ||
|
|
d74a6e41d9 | ||
|
|
02c844a396 | ||
|
|
afdfd9ed5c | ||
|
|
87f3a1f6e3 | ||
|
|
dbe18df32e | ||
|
|
ae408d7674 | ||
|
|
aa61eb3483 | ||
|
|
df21d0db14 | ||
|
|
7f12355f34 | ||
|
|
0d9e748cd0 | ||
|
|
5d1f34a3c9 | ||
|
|
6bb34e9456 | ||
|
|
7f74ae7b61 | ||
|
|
8ca36380ce | ||
|
|
03075641ab | ||
|
|
b6ec18fa6b | ||
|
|
428596312e | ||
|
|
2ef1839304 | ||
|
|
e1d1a8ea9d | ||
|
|
9e888ab28e | ||
|
|
76df7dda88 | ||
|
|
ef77ae14f6 | ||
|
|
a56f9b7dc5 | ||
|
|
f2bac93c18 | ||
|
|
04bf1782e9 | ||
|
|
4c0e9bf1c7 | ||
|
|
0079fea2d3 | ||
|
|
796626b7d8 | ||
|
|
ec02d6480a | ||
|
|
16d56bc810 | ||
|
|
523e4d8c49 | ||
|
|
dbb9fb8cf3 | ||
|
|
43a270d486 | ||
|
|
cc89b3af0d | ||
|
|
850e48d118 | ||
|
|
f23f2f5a95 | ||
|
|
6e95476156 | ||
|
|
a1f3c5fdbb | ||
|
|
230032421b | ||
|
|
f266afbd4d | ||
|
|
5dfeb7c8aa | ||
|
|
41e955e980 | ||
|
|
0fdbb48f9d | ||
|
|
f5d9b64db5 | ||
|
|
a750db22df | ||
|
|
a7b6509d9f | ||
|
|
a6f4aacc37 | ||
|
|
4624051540 | ||
|
|
b3a3bbfc22 | ||
|
|
7225e24e1c | ||
|
|
b5bbbd9dde | ||
|
|
01daf9561a | ||
|
|
f49768e15a | ||
|
|
74705b5a66 | ||
|
|
71121f8fef | ||
|
|
22fdca62bb | ||
|
|
d8a5a617fe | ||
|
|
1c1c003b80 | ||
|
|
bddd355f17 | ||
|
|
0c66313255 | ||
|
|
900e2c94e8 | ||
|
|
ba04fa0ae1 | ||
|
|
4a85a2a397 | ||
|
|
051e661cb6 | ||
|
|
1503a8b1f4 | ||
|
|
b2e378359a | ||
|
|
be10df217e | ||
|
|
21b00df2b1 | ||
|
|
5b52d75a94 | ||
|
|
dcb22bf546 | ||
|
|
830ff0f5b1 | ||
|
|
786db099d1 | ||
|
|
c019e24a3a | ||
|
|
4bc36834a9 | ||
|
|
6b7a7d16e6 | ||
|
|
4e8d1c6b4f | ||
|
|
c79c01189f | ||
|
|
c15288bfec | ||
|
|
8e3f641155 | ||
|
|
d3af9fcd1b | ||
|
|
8c4b3635ac | ||
|
|
0ce3a8f233 | ||
|
|
0fb6cab703 | ||
|
|
00b16c63ac | ||
|
|
5d2d56bc64 | ||
|
|
8aa6d1ccc3 | ||
|
|
4679b853f7 | ||
|
|
051f4a6399 | ||
|
|
b57b416d50 | ||
|
|
696bf486a6 | ||
|
|
f6c771f8ce | ||
|
|
bceda76bf8 | ||
|
|
5c2bd4049c | ||
|
|
2b69075bc2 | ||
|
|
22520fc1cf | ||
|
|
44946d9be2 | ||
|
|
05b4e64a29 | ||
|
|
92f12334b4 | ||
|
|
fec7d6481b | ||
|
|
d1e4b259bb | ||
|
|
0a397dc4d5 | ||
|
|
4c8be76aa9 | ||
|
|
63f56252f9 | ||
|
|
a418bde812 | ||
|
|
86ddf5989b | ||
|
|
f6d01c5d61 | ||
|
|
c7d56759b3 | ||
|
|
3d128747c4 |
@@ -15,18 +15,17 @@ install:
|
||||
if (-Not $env:APPVEYOR_PULL_REQUEST_NUMBER -And $env:APPVEYOR_REPO_BRANCH -Eq "master")
|
||||
{
|
||||
cinst msbuild-sonarqube-runner;
|
||||
cinst opencover.portable;
|
||||
}
|
||||
|
||||
before_build:
|
||||
- cmd: py -3.5 -m pip install --user requests
|
||||
- cmd: py -3.5 Tools\download_godotsharp.py
|
||||
- cmd: py -3.5 RUN_THIS.py --no-prompt
|
||||
- cmd: nuget restore SpaceStation14.sln
|
||||
- cmd: nuget restore RobustToolbox.sln
|
||||
- ps: >
|
||||
if (-Not $env:APPVEYOR_PULL_REQUEST_NUMBER -And $env:APPVEYOR_REPO_BRANCH -Eq "master")
|
||||
{
|
||||
SonarScanner.MSBuild.exe begin /k:"ss14" /d:"sonar.host.url=https://sonarqube.com" /d:"sonar.login=$env:sonarqubekey" /d:"sonar.organization=space-wizards" /d:"sonar.exclusions=SFML/**" /d:sonar.cs.nunit.reportsPaths="$(Get-Location)\nunitTestResult.xml" /d:sonar.cs.opencover.reportsPaths="$(Get-Location)\coverage_report.xml";
|
||||
SonarScanner.MSBuild.exe begin /k:"ss14" /d:"sonar.host.url=https://sonarqube.com" /d:"sonar.login=$env:sonarqubekey" /o:"space-wizards" /d:"sonar.exclusions=SFML/**" /d:sonar.cs.nunit.reportsPaths="$(Get-Location)\nunitTestResult.xml";
|
||||
}
|
||||
|
||||
platform: x64
|
||||
@@ -35,27 +34,21 @@ configuration: Debug
|
||||
cache:
|
||||
- packages -> **\packages.config
|
||||
- Dependencies
|
||||
- SS14.Client.Godot\.mono\assemblies\GodotSharp.dll
|
||||
- SS14.Client.Godot\.mono\assemblies\LAST_MODIFIED
|
||||
- Robust.Client.Godot\.mono\assemblies\GodotSharp.dll
|
||||
- Robust.Client.Godot\.mono\assemblies\LAST_MODIFIED
|
||||
|
||||
build:
|
||||
project: SpaceStation14.sln
|
||||
project: RobustToolbox.sln
|
||||
parallel: false
|
||||
verbosity: minimal
|
||||
|
||||
build_script:
|
||||
- ps: msbuild SpaceStation14.sln /verbosity:minimal /nologo /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /p:Platform=x64 /p:Configuration=Debug /p:AppVeyor=yes
|
||||
- ps: msbuild RobustToolbox.sln /verbosity:minimal /nologo /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /p:Platform=x64 /p:Configuration=Debug /p:AppVeyor=yes
|
||||
|
||||
test_script:
|
||||
- ps: >
|
||||
if (-Not $env:APPVEYOR_PULL_REQUEST_NUMBER -And $env:APPVEYOR_REPO_BRANCH -Eq "master")
|
||||
{
|
||||
OpenCover.Console.exe -register:user -target:"nunit3-console.exe" -targetargs:".\bin\UnitTesting\SS14.UnitTesting.dll --result:nunitTestResult.xml" -output:".\coverage_report.xml";
|
||||
}
|
||||
else
|
||||
{
|
||||
nunit3-console.exe .\bin\UnitTesting\SS14.UnitTesting.dll;
|
||||
}
|
||||
- ps: nunit3-console.exe .\bin\UnitTesting\Robust.UnitTesting.dll;
|
||||
|
||||
|
||||
|
||||
after_test:
|
||||
- ps: >
|
||||
|
||||
3
.gitignore
vendored
@@ -71,6 +71,9 @@ project.lock.json
|
||||
|
||||
# MacOS finder makes these.
|
||||
.DS_Store
|
||||
# KDE Dolphin makes these, maybe it's even XDG standard, kinda hard to Google.
|
||||
# I do know it doesn't make them by merely opening the directory like some other file manager *cough* *cough*
|
||||
.directory
|
||||
|
||||
# Created by NUnit.
|
||||
TestResult.xml
|
||||
|
||||
3
.gitmodules
vendored
@@ -1,3 +0,0 @@
|
||||
[submodule "SS14.Shared.Bsdiff"]
|
||||
path = SS14.Shared.Bsdiff
|
||||
url = https://github.com/space-wizards/ss14.shared.bsdiff.git
|
||||
25
.travis.yml
@@ -9,30 +9,33 @@ os:
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- deadsnakes
|
||||
#sources:
|
||||
#- deadsnakes
|
||||
|
||||
packages:
|
||||
- python3.6
|
||||
- python3.5
|
||||
- python3-pip
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- packages/
|
||||
- Dependencies/
|
||||
- SS14.Client.Godot/.mono/assemblies/
|
||||
- Robust.Client.Godot/.mono/assemblies/
|
||||
|
||||
#before_install:
|
||||
# - if [ $TRAVIS_OS_NAME = osx ]; then brew update && brew upgrade python; fi
|
||||
|
||||
before_script:
|
||||
- "if [ $TRAVIS_OS_NAME = linux ]; then pyenv shell 3.6; fi"
|
||||
- "pip3 install --user requests"
|
||||
- "nuget restore SpaceStation14.sln"
|
||||
- "python3.6 RUN_THIS.py --no-prompt"
|
||||
#- "pyenv versions"
|
||||
#- "if [ $TRAVIS_OS_NAME = linux ]; then pyenv shell 3.6; fi"
|
||||
#- "python3.6 -m pip --v"
|
||||
#- "python3.6 -m pip install --user --upgrade requests"
|
||||
- "python3.5 -m pip install --user requests"
|
||||
- "nuget restore RobustToolbox.sln"
|
||||
- "python3.5 RUN_THIS.py --no-prompt"
|
||||
- "Tools/download_godotsharp.py"
|
||||
|
||||
script:
|
||||
- "msbuild /p:Configuration=Debug /p:Platform=x64 /p:HEADLESS=1 /nologo /m /p:AllowMissingMacNatives=yes SpaceStation14.sln /p:Python=python3.6"
|
||||
- "cd packages/NUnit.ConsoleRunner.3.7.0/tools"
|
||||
- "mono --debug nunit3-console.exe ../../../bin/UnitTesting/SS14.UnitTesting.dll"
|
||||
- "msbuild /p:Configuration=Debug /p:Platform=x64 /p:HEADLESS=1 /nologo /m /p:AllowMissingMacNatives=yes RobustToolbox.sln /p:Python=python3.5"
|
||||
- "mono --debug packages/nunit.consolerunner/3.9.0/tools/nunit3-console.exe bin/UnitTesting/Robust.UnitTesting.dll"
|
||||
|
||||
|
||||
19
LICENSE-MIT.TXT
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2019 Space Station 14 Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -10,7 +10,7 @@
|
||||
<ApplicationIcon />
|
||||
<AssemblyKeyContainerName />
|
||||
<AssemblyName>Lidgren.Network</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.7.1</TargetFrameworkVersion>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder />
|
||||
<RootNamespace>Lidgren.Network</RootNamespace>
|
||||
@@ -34,6 +34,8 @@
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<DebugType Condition="'$(AppVeyor)' != 'yes'">portable</DebugType>
|
||||
<DebugType Condition="'$(AppVeyor)' == 'yes'">full</DebugType>
|
||||
<Optimize>False</Optimize>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
@@ -46,6 +48,8 @@
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<DebugType Condition="'$(AppVeyor)' != 'yes'">portable</DebugType>
|
||||
<DebugType Condition="'$(AppVeyor)' == 'yes'">full</DebugType>
|
||||
<Optimize>False</Optimize>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
@@ -56,7 +60,9 @@
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugSymbols>True</DebugSymbols>
|
||||
<DebugType Condition="'$(AppVeyor)' != 'yes'">portable</DebugType>
|
||||
<DebugType Condition="'$(AppVeyor)' == 'yes'">full</DebugType>
|
||||
<DefineConstants>TRACE;DEBUG</DefineConstants>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
@@ -285,4 +291,4 @@
|
||||
<PostBuildEvent>
|
||||
</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -130,7 +130,7 @@ namespace Lidgren.Network
|
||||
om.Write(now);
|
||||
|
||||
WriteLocalHail(om);
|
||||
|
||||
|
||||
m_peer.SendLibrary(om, m_remoteEndPoint);
|
||||
|
||||
m_connectRequested = false;
|
||||
@@ -285,7 +285,7 @@ namespace Lidgren.Network
|
||||
}
|
||||
else
|
||||
{
|
||||
m_remoteHailMessage = null;
|
||||
m_remoteHailMessage = null;
|
||||
}
|
||||
|
||||
if (m_peerConfiguration.IsMessageTypeEnabled(NetIncomingMessageType.ConnectionApproval))
|
||||
@@ -376,7 +376,7 @@ namespace Lidgren.Network
|
||||
break;
|
||||
case NetConnectionStatus.RespondedConnect:
|
||||
// awesome
|
||||
|
||||
|
||||
NetIncomingMessage msg = m_peer.SetupReadHelperMessage(ptr, payloadLength);
|
||||
InitializeRemoteTimeOffset(msg.ReadSingle());
|
||||
|
||||
@@ -453,7 +453,7 @@ namespace Lidgren.Network
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Disconnect from the remote peer
|
||||
/// </summary>
|
||||
|
||||
@@ -114,7 +114,13 @@ namespace Lidgren.Network
|
||||
iep = new IPEndPoint(m_configuration.LocalAddress, m_configuration.Port);
|
||||
EndPoint ep = (EndPoint)iep;
|
||||
|
||||
m_socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
|
||||
m_socket = new Socket(ep.AddressFamily, SocketType.Dgram, ProtocolType.Udp);
|
||||
if (ep.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
// Disable IPv4 -> IPv6 mapping.
|
||||
// SS14 handles IPv6 & IPv4 concurrently with a different net peer.
|
||||
m_socket.SetSocketOption(SocketOptionLevel.IPv6, SocketOptionName.IPv6Only, true);
|
||||
}
|
||||
m_socket.ReceiveBufferSize = m_configuration.ReceiveBufferSize;
|
||||
m_socket.SendBufferSize = m_configuration.SendBufferSize;
|
||||
m_socket.Blocking = false;
|
||||
|
||||
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Threading;
|
||||
using System.Collections.Generic;
|
||||
using System.Net;
|
||||
using System.Net.Sockets;
|
||||
|
||||
namespace Lidgren.Network
|
||||
{
|
||||
@@ -27,8 +28,8 @@ namespace Lidgren.Network
|
||||
|
||||
/// <summary>
|
||||
/// Signalling event which can be waited on to determine when a message is queued for reading.
|
||||
/// Note that there is no guarantee that after the event is signaled the blocked thread will
|
||||
/// find the message in the queue. Other user created threads could be preempted and dequeue
|
||||
/// Note that there is no guarantee that after the event is signaled the blocked thread will
|
||||
/// find the message in the queue. Other user created threads could be preempted and dequeue
|
||||
/// the message before the waiting thread wakes up.
|
||||
/// </summary>
|
||||
public AutoResetEvent MessageReceivedEvent { get { return m_messageReceivedEvent; } }
|
||||
@@ -102,9 +103,16 @@ namespace Lidgren.Network
|
||||
m_connections = new List<NetConnection>();
|
||||
m_connectionLookup = new Dictionary<IPEndPoint, NetConnection>();
|
||||
m_handshakes = new Dictionary<IPEndPoint, NetConnection>();
|
||||
m_senderRemote = (EndPoint)new IPEndPoint(IPAddress.Any, 0);
|
||||
if (m_configuration.LocalAddress.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
m_senderRemote = (EndPoint)new IPEndPoint(IPAddress.IPv6Any, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_senderRemote = (EndPoint)new IPEndPoint(IPAddress.Any, 0);
|
||||
}
|
||||
m_status = NetPeerStatus.NotRunning;
|
||||
m_receivedFragmentGroups = new Dictionary<NetConnection, Dictionary<int, ReceivedFragmentGroup>>();
|
||||
m_receivedFragmentGroups = new Dictionary<NetConnection, Dictionary<int, ReceivedFragmentGroup>>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -129,7 +137,7 @@ namespace Lidgren.Network
|
||||
}
|
||||
|
||||
InitializeNetwork();
|
||||
|
||||
|
||||
// start network thread
|
||||
m_networkThread = new Thread(new ThreadStart(NetworkLoop));
|
||||
m_networkThread.Name = m_configuration.NetworkThreadName;
|
||||
|
||||
@@ -27,6 +27,7 @@ using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Text.RegularExpressions;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Lidgren.Network
|
||||
{
|
||||
@@ -85,7 +86,8 @@ namespace Lidgren.Network
|
||||
IPAddress ipAddress = null;
|
||||
if (IPAddress.TryParse(ipOrHost, out ipAddress))
|
||||
{
|
||||
if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
|
||||
if (ipAddress.AddressFamily == AddressFamily.InterNetwork
|
||||
|| ipAddress.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
callback(ipAddress);
|
||||
return;
|
||||
@@ -123,16 +125,23 @@ namespace Lidgren.Network
|
||||
}
|
||||
|
||||
// check each entry for a valid IP address
|
||||
IPAddress bestAddress = null;
|
||||
foreach (IPAddress ipCurrent in entry.AddressList)
|
||||
{
|
||||
if (ipCurrent.AddressFamily == AddressFamily.InterNetwork)
|
||||
// Prefer IPv6 addresses.
|
||||
if (ipCurrent.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
callback(ipCurrent);
|
||||
return;
|
||||
}
|
||||
|
||||
if (ipCurrent.AddressFamily == AddressFamily.InterNetwork)
|
||||
{
|
||||
bestAddress = ipCurrent;
|
||||
}
|
||||
}
|
||||
|
||||
callback(null);
|
||||
callback(bestAddress);
|
||||
}, null);
|
||||
}
|
||||
catch (SocketException ex)
|
||||
@@ -148,6 +157,34 @@ namespace Lidgren.Network
|
||||
}
|
||||
}
|
||||
|
||||
public static async Task<IPAddress[]> ResolveAsync(string ipOrHost)
|
||||
{
|
||||
if (string.IsNullOrEmpty(ipOrHost))
|
||||
throw new ArgumentException("Supplied string must not be empty", "ipOrHost");
|
||||
|
||||
ipOrHost = ipOrHost.Trim();
|
||||
|
||||
if (IPAddress.TryParse(ipOrHost, out var ipAddress))
|
||||
{
|
||||
if (ipAddress.AddressFamily == AddressFamily.InterNetwork
|
||||
|| ipAddress.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
return new[] {ipAddress};
|
||||
}
|
||||
throw new ArgumentException("This method will not currently resolve other than IPv4 or IPv6 addresses");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
var entry = await Task.Factory.FromAsync(Dns.BeginGetHostEntry, Dns.EndGetHostEntry, ipOrHost, null);
|
||||
return entry.AddressList;
|
||||
}
|
||||
catch (SocketException)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get IPv4 address from notation (xxx.xxx.xxx.xxx) or hostname
|
||||
/// </summary>
|
||||
@@ -161,7 +198,8 @@ namespace Lidgren.Network
|
||||
IPAddress ipAddress = null;
|
||||
if (IPAddress.TryParse(ipOrHost, out ipAddress))
|
||||
{
|
||||
if (ipAddress.AddressFamily == AddressFamily.InterNetwork)
|
||||
if (ipAddress.AddressFamily == AddressFamily.InterNetwork
|
||||
|| ipAddress.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
return ipAddress;
|
||||
throw new ArgumentException("This method will not currently resolve other than ipv4 addresses");
|
||||
}
|
||||
@@ -175,13 +213,22 @@ namespace Lidgren.Network
|
||||
return null;
|
||||
|
||||
// check each entry for a valid IP address
|
||||
IPAddress bestAddress = null;
|
||||
foreach (IPAddress ipCurrent in entry.AddressList)
|
||||
{
|
||||
if (ipCurrent.AddressFamily == AddressFamily.InterNetwork)
|
||||
if (ipCurrent.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
return ipCurrent;
|
||||
}
|
||||
|
||||
// Prefer IPv6 addresses.
|
||||
if (ipCurrent.AddressFamily == AddressFamily.InterNetwork)
|
||||
{
|
||||
bestAddress = ipCurrent;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return bestAddress;
|
||||
}
|
||||
catch (SocketException ex)
|
||||
{
|
||||
@@ -391,6 +438,11 @@ namespace Lidgren.Network
|
||||
/// </summary>
|
||||
public static bool IsLocal(IPAddress remote)
|
||||
{
|
||||
if (remote.AddressFamily == AddressFamily.InterNetworkV6)
|
||||
{
|
||||
// TODO: Can this be made to work? Do we even care for SS14?
|
||||
return false;
|
||||
}
|
||||
IPAddress mask;
|
||||
IPAddress local = GetMyAddress(out mask);
|
||||
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
</When>
|
||||
<When Condition="'$(TargetOS)' == 'MacOS'" >
|
||||
<PropertyGroup>
|
||||
<DefineConstants>$(DefineConstants);MACOS</DefineConstants>
|
||||
<DefineConstants>$(DefineConstants);MACOS;UNIX</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</When>
|
||||
<Otherwise>
|
||||
<PropertyGroup>
|
||||
<DefineConstants>$(DefineConstants);LINUX</DefineConstants>
|
||||
<DefineConstants>$(DefineConstants);LINUX;UNIX</DefineConstants>
|
||||
</PropertyGroup>
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
20
MSBuild/Robust.Engine.targets
Normal file
@@ -0,0 +1,20 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
|
||||
<Target Name="CopyResourcesFromShared">
|
||||
<ItemGroup>
|
||||
<_ResourceFiles Include="$(SolutionDir)bin\Shared\Resources\**\*.*" />
|
||||
</ItemGroup>
|
||||
<RemoveDir Directories="$(OutputPath)Resources" />
|
||||
<Copy SourceFiles="@(_ResourceFiles)" DestinationFolder="$(OutputPath)Resources\%(RecursiveDir)" />
|
||||
</Target>
|
||||
<Target Name="CopySS14Noise">
|
||||
<Exec Condition="'$(Platform)' == 'x64'" Command="$(Python) ../Tools/download_ss14_noise.py $(Platform) $(TargetOS) $(OutputPath)" CustomErrorRegularExpression="^Error" />
|
||||
<Warning Condition="'$(Platform)' != 'x64'" Text="Did not download ss14_noise because the platform is not set to x64. Only use this build for unit testing!" />
|
||||
</Target>
|
||||
<Target Name="CopyMiscDependencies">
|
||||
<Exec Condition="'$(Platform)' == 'x64'" Command="$(Python) ../Tools/download_misc_dependencies.py $(Platform) $(TargetOS) $(OutputPath)" CustomErrorRegularExpression="^Error" />
|
||||
<Warning Condition="'$(Platform)' != 'x64'" Text="Did not download misc dependencies because the platform is not set to x64. Only use this build for unit testing!" />
|
||||
</Target>
|
||||
<Target Name="DownloadGodotSharp">
|
||||
<Exec Command="$(Python) ../Tools/download_godotsharp.py" CustomErrorRegularExpression="^Error" />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -1,9 +0,0 @@
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="12.0">
|
||||
<Target Name="CopyResourcesFromShared">
|
||||
<ItemGroup>
|
||||
<_ResourceFiles Include="$(SolutionDir)bin\Shared\Resources\**\*.*" />
|
||||
</ItemGroup>
|
||||
<RemoveDir Directories="$(OutputPath)Resources" />
|
||||
<Copy SourceFiles="@(_ResourceFiles)" DestinationFolder="$(OutputPath)Resources\%(RecursiveDir)" />
|
||||
</Target>
|
||||
</Project>
|
||||
8
Resources/.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
# .import files are made by Godot because the assets are exposed if using symlinks.
|
||||
# IF you need to persist a .import file because of something used Godot-side (GUI-side),
|
||||
# you can do a negation with !.
|
||||
*.import
|
||||
# Negation would be like this:
|
||||
#!/Textures/UserInterface/1pxwhite.png.import
|
||||
!/Scenes/SS14Window/closewindow.png.import
|
||||
/I_MADE_THE_SYMLINK
|
||||
@@ -1,31 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_janitor_suit
|
||||
name: "[engine] Janitor Jumpsuit"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Items/janitorsuit.png
|
||||
|
||||
- type: Icon
|
||||
texture: Items/janitorsuit.png
|
||||
|
||||
- type: BoundingBox
|
||||
- type: Physics
|
||||
mass: 5
|
||||
|
||||
- type: entity
|
||||
id: __engine_shoes
|
||||
name: "[engine] shoes"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Items/janitorsuit.png
|
||||
|
||||
- type: Icon
|
||||
texture: Items/shoes.png
|
||||
|
||||
- type: BoundingBox
|
||||
- type: Physics
|
||||
mass: 5
|
||||
@@ -1,15 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_toolbox
|
||||
name: "[engine] toolbox"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Items/toolbox_r.png
|
||||
|
||||
- type: Icon
|
||||
texture: Items/toolbox_r.png
|
||||
|
||||
- type: BoundingBox
|
||||
- type: Physics
|
||||
mass: 5
|
||||
@@ -1,19 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_door
|
||||
name: "[engine] Real Fake Door"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
drawdepth: Objects
|
||||
texture: Objects/door_ew.png
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/door_ew.png
|
||||
|
||||
- type: BoundingBox
|
||||
- type: Collidable
|
||||
|
||||
placement:
|
||||
snap:
|
||||
- Wall
|
||||
@@ -1,15 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_mop
|
||||
name: "[engine] mop"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Items/mop.png
|
||||
|
||||
- type: Icon
|
||||
texture: Items/mop.png
|
||||
|
||||
- type: BoundingBox
|
||||
- type: Physics
|
||||
- type: Clickable
|
||||
@@ -1,23 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_wall_light
|
||||
name: "[engine] Wall Light"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Objects/wall_light.png
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/wall_light.png
|
||||
|
||||
- type: BoundingBox
|
||||
|
||||
- type: PointLight
|
||||
radius: 8
|
||||
energy: 1.2
|
||||
offset: "0, -16"
|
||||
color: "#DCDCC6"
|
||||
|
||||
placement:
|
||||
snap:
|
||||
- Wallmount
|
||||
@@ -1,26 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_human
|
||||
name: "[engine] Urist McHuman"
|
||||
save: false
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
sprite: Mob/greyshirt.rsi
|
||||
state: greyshirt
|
||||
scale: 2, 2
|
||||
drawdepth: Mobs
|
||||
|
||||
- type: Icon
|
||||
sprite: Mob/greyshirt.rsi
|
||||
state: greyshirt
|
||||
|
||||
- type: BoundingBox
|
||||
aabb: "0.15,-0.45,1.05,0.45"
|
||||
|
||||
- type: Physics
|
||||
mass: 5
|
||||
|
||||
- type: Collidable
|
||||
DebugColor: "#0000FF"
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_worktop
|
||||
name: "[engine] worktop"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Objects/worktop_single.png
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/worktop_single.png
|
||||
|
||||
- type: BoundingBox
|
||||
aabb: "-0.45,-1,0.95,1"
|
||||
DebugColor: "#0000FF"
|
||||
|
||||
- type: Collidable
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_extinguisher
|
||||
name: "[engine] Extinguisher Cabinet"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Objects/fire_extinguisher.png
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/fire_extinguisher.png
|
||||
|
||||
placement:
|
||||
mode: AlignWall
|
||||
range: 200
|
||||
nodes:
|
||||
- 18
|
||||
- 26
|
||||
- 32
|
||||
snap:
|
||||
- Wallmount
|
||||
|
||||
- type: entity
|
||||
id: __engine_fire_alarm
|
||||
name: "[engine] Fire Alarm"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Objects/fire_alarm_off.png
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/fire_alarm_off.png
|
||||
|
||||
placement:
|
||||
mode: AlignWall
|
||||
range: 180
|
||||
nodes:
|
||||
- 5
|
||||
- 10
|
||||
- 15
|
||||
snap:
|
||||
- Wallmount
|
||||
|
||||
- type: entity
|
||||
id: __engine_med_cabinet
|
||||
name: "[engine] Medical Cabinet"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
texture: Objects/med_cabinet.png
|
||||
|
||||
- type: Icon
|
||||
texture: Objects/med_cabinet.png
|
||||
|
||||
placement:
|
||||
mode: AlignWall
|
||||
snap:
|
||||
- Wallmount
|
||||
@@ -1,22 +0,0 @@
|
||||
- type: entity
|
||||
id: __engine_wall
|
||||
name: "[engine] Wall"
|
||||
components:
|
||||
- type: Transform
|
||||
- type: Clickable
|
||||
- type: Sprite
|
||||
drawdepth: Walls
|
||||
texture: Tiles/wall_texture.png
|
||||
|
||||
- type: Icon
|
||||
texture: Tiles/wall_texture.png
|
||||
|
||||
- type: BoundingBox
|
||||
- type: Collidable
|
||||
- type: Occluder
|
||||
sizeX: 32
|
||||
sizeY: 32
|
||||
|
||||
placement:
|
||||
snap:
|
||||
- Wall
|
||||
@@ -1,7 +1,15 @@
|
||||
- type: shader
|
||||
id: selection_outline
|
||||
kind: source
|
||||
path: "/Shaders/outline.gdsl"
|
||||
path: "/Shaders/outline.swsl"
|
||||
params:
|
||||
outline_width: 1
|
||||
outline_color: "#FF000055"
|
||||
|
||||
- type: shader
|
||||
id: selection_outline_unshaded
|
||||
kind: source
|
||||
path: "/Shaders/outline_unshaded.swsl"
|
||||
params:
|
||||
outline_width: 1
|
||||
outline_color: "#FF000055"
|
||||
|
||||
@@ -3,3 +3,7 @@
|
||||
id: unshaded
|
||||
kind: canvas
|
||||
light_mode: unshaded
|
||||
|
||||
- type: shader
|
||||
id: shaded
|
||||
kind: canvas
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Scenes/SS14Window/SS14Window.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Engine/Scenes/SS14Window/SS14Window.tscn" type="PackedScene" id=1]
|
||||
|
||||
[node name="SS14Window" instance=ExtResource( 1 )]
|
||||
|
||||
@@ -19,7 +19,7 @@ rect_pivot_offset = Vector2( 0, 0 )
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
size_flags_vertical = 1
|
||||
custom_styles/panel = SubResource( 1 )
|
||||
_sections_unfolded = [ "Grow Direction", "Mouse", "Rect", "Size Flags", "custom_styles" ]
|
||||
|
||||
@@ -75,6 +75,7 @@ mouse_filter = 2
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
rect_clip_content = true
|
||||
_sections_unfolded = [ "Mouse", "Rect" ]
|
||||
|
||||
[node name="TextureRect" type="TextureRect" parent="HBoxContainer/TextureWrap" index="0"]
|
||||
@@ -84,7 +85,6 @@ anchor_top = 0.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = true
|
||||
mouse_filter = 2
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 4
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Scenes/SS14Window/SS14Window.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Engine/Scenes/SS14Window/SS14Window.tscn" type="PackedScene" id=1]
|
||||
|
||||
[node name="SS14Window" instance=ExtResource( 1 )]
|
||||
|
||||
@@ -40,7 +40,7 @@ margin_bottom = 310.0
|
||||
rect_min_size = Vector2( 200, 0 )
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = true
|
||||
mouse_filter = 2
|
||||
mouse_filter = 1
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 1
|
||||
@@ -19,7 +19,7 @@ rect_pivot_offset = Vector2( 0, 0 )
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 3
|
||||
size_flags_vertical = 3
|
||||
size_flags_vertical = 1
|
||||
custom_styles/panel = SubResource( 1 )
|
||||
_sections_unfolded = [ "Grow Direction", "Mouse", "Rect", "Size Flags", "custom_styles" ]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://Scenes/SS14Window/SS14Window.tscn" type="PackedScene" id=1]
|
||||
[ext_resource path="res://Engine/Scenes/SS14Window/SS14Window.tscn" type="PackedScene" id=1]
|
||||
|
||||
[node name="SS14Window" index="0" instance=ExtResource( 1 )]
|
||||
|
||||
53
Resources/Scenes/SS14Window/SS14Window.tscn
Normal file
@@ -0,0 +1,53 @@
|
||||
[gd_scene load_steps=3 format=2]
|
||||
|
||||
[ext_resource path="res://Engine/Scenes/SS14Window/closewindow.png" type="Texture" id=1]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id=1]
|
||||
|
||||
bg_color = Color( 0.234375, 0.234375, 0.234375, 1 )
|
||||
|
||||
[node name="SS14Window" type="Panel"]
|
||||
margin_left = 100.0
|
||||
margin_top = 38.0
|
||||
margin_right = 878.0
|
||||
margin_bottom = 519.0
|
||||
|
||||
[node name="Contents" type="MarginContainer" parent="."]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = 0.0
|
||||
margin_top = 30.0
|
||||
margin_right = 0.0
|
||||
margin_bottom = 0.0
|
||||
rect_min_size = Vector2( 50, 50 )
|
||||
rect_clip_content = true
|
||||
mouse_filter = 2
|
||||
custom_constants/margin_right = 10
|
||||
custom_constants/margin_left = 10
|
||||
custom_constants/margin_bottom = 10
|
||||
custom_constants/margin_top = 10
|
||||
|
||||
[node name="Header" type="Panel" parent="."]
|
||||
anchor_right = 1.0
|
||||
margin_bottom = 25.0
|
||||
mouse_filter = 2
|
||||
custom_styles/panel = SubResource( 1 )
|
||||
|
||||
[node name="Header Text" type="Label" parent="Header"]
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_right = -25.0
|
||||
text = "Exemplary Window Title Here"
|
||||
align = 1
|
||||
valign = 1
|
||||
clip_text = true
|
||||
|
||||
[node name="CloseButton" type="TextureButton" parent="Header"]
|
||||
anchor_left = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
margin_left = -25.0
|
||||
texture_normal = ExtResource( 1 )
|
||||
expand = true
|
||||
stretch_mode = 5
|
||||
|
||||
|
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 239 B |
@@ -2,18 +2,19 @@
|
||||
|
||||
importer="texture"
|
||||
type="StreamTexture"
|
||||
path="res://.import/closewindow.png-7b2f9cb6cf73c832ec12a5ebfba82490.stex"
|
||||
path="res://.import/closewindow.png-27200ff550a4cc91ea5c13546f44ca18.stex"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://Scenes/SS14Window/closewindow.png"
|
||||
dest_files=[ "res://.import/closewindow.png-7b2f9cb6cf73c832ec12a5ebfba82490.stex" ]
|
||||
source_file="res://Engine/Scenes/SS14Window/closewindow.png"
|
||||
dest_files=[ "res://.import/closewindow.png-27200ff550a4cc91ea5c13546f44ca18.stex" ]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/lossy_quality=0.7
|
||||
compress/hdr_mode=0
|
||||
compress/bptc_ldr=0
|
||||
compress/normal_map=0
|
||||
flags/repeat=0
|
||||
flags/filter=false
|
||||
@@ -23,6 +24,7 @@ flags/srgb=2
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/HDR_as_SRGB=false
|
||||
process/invert_color=false
|
||||
stream=false
|
||||
size_limit=0
|
||||
detect_3d=true
|
||||
17
Resources/Scenes/SpriteMirror/SpriteView.tscn
Normal file
@@ -0,0 +1,17 @@
|
||||
[gd_scene load_steps=2 format=2]
|
||||
|
||||
[ext_resource path="res://SpriteView.cs" type="Script" id=1]
|
||||
|
||||
[node name="SpriteView" type="Control"]
|
||||
anchor_left = 0.0
|
||||
anchor_top = 0.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
rect_pivot_offset = Vector2( 0, 0 )
|
||||
rect_clip_content = false
|
||||
mouse_filter = 0
|
||||
mouse_default_cursor_shape = 0
|
||||
size_flags_horizontal = 1
|
||||
size_flags_vertical = 1
|
||||
script = ExtResource( 1 )
|
||||
|
||||
3
Resources/Shaders/Internal/default-sprite.swsl
Normal file
@@ -0,0 +1,3 @@
|
||||
void fragment() {
|
||||
COLOR = texture(TEXTURE, UV);
|
||||
}
|
||||
26
Resources/Shaders/Internal/light.frag
Normal file
@@ -0,0 +1,26 @@
|
||||
#version 330 core
|
||||
|
||||
out vec4 FragColor;
|
||||
|
||||
const float LIGHTING_HEIGHT = 1;
|
||||
|
||||
// Position of the fragment, in world coordinates.
|
||||
in vec2 worldPosition;
|
||||
|
||||
uniform vec4 lightColor;
|
||||
// Position of the light, in world coordinates.
|
||||
uniform vec2 lightCenter;
|
||||
uniform float lightRange;
|
||||
uniform float lightPower;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 diff = worldPosition - lightCenter;
|
||||
float dist = dot(diff, diff) + 1;
|
||||
|
||||
float val = clamp((1 - clamp(sqrt(dist) / lightRange, 0, 1)) * (1 / (sqrt(dist + 1))), 0, 1);
|
||||
|
||||
val *= lightPower;
|
||||
|
||||
FragColor = vec4(lightColor.rgb, val);
|
||||
}
|
||||
23
Resources/Shaders/Internal/light.vert
Normal file
@@ -0,0 +1,23 @@
|
||||
#version 330 core
|
||||
|
||||
// Vertex position.
|
||||
layout (location = 0) in vec2 aPos;
|
||||
|
||||
out vec2 worldPosition;
|
||||
|
||||
uniform mat3 modelMatrix;
|
||||
|
||||
layout (std140) uniform projectionViewMatrices
|
||||
{
|
||||
mat3 projectionMatrix;
|
||||
mat3 viewMatrix;
|
||||
};
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 transformed = modelMatrix * vec3(aPos, 1.0);
|
||||
worldPosition = transformed.xy;
|
||||
transformed = projectionMatrix * viewMatrix * transformed;
|
||||
|
||||
gl_Position = vec4(transformed, 1.0);
|
||||
}
|
||||
33
Resources/Shaders/Internal/sprite.frag
Normal file
@@ -0,0 +1,33 @@
|
||||
#version 330 core
|
||||
|
||||
out vec4 FragColor;
|
||||
|
||||
in vec2 UV;
|
||||
|
||||
uniform sampler2D TEXTURE;
|
||||
uniform sampler2D lightMap;
|
||||
uniform vec4 modulate;
|
||||
|
||||
layout (std140) uniform uniformConstants
|
||||
{
|
||||
vec2 SCREEN_PIXEL_SIZE;
|
||||
float TIME;
|
||||
};
|
||||
|
||||
uniform vec2 TEXTURE_PIXEL_SIZE;
|
||||
|
||||
[SHADER_HEADER_CODE]
|
||||
|
||||
void main()
|
||||
{
|
||||
vec4 FRAGCOORD = gl_FragCoord;
|
||||
|
||||
vec4 COLOR;
|
||||
|
||||
[SHADER_CODE]
|
||||
|
||||
vec2 lightSampleUv = (FRAGCOORD.xy * SCREEN_PIXEL_SIZE);
|
||||
vec3 lightSample = texture(lightMap, lightSampleUv).rgb;
|
||||
|
||||
FragColor = COLOR * modulate * vec4(lightSample, 1);
|
||||
}
|
||||
47
Resources/Shaders/Internal/sprite.vert
Normal file
@@ -0,0 +1,47 @@
|
||||
#version 330 core
|
||||
|
||||
// Vertex position.
|
||||
layout (location = 0) in vec2 aPos;
|
||||
// Texture coordinates.
|
||||
layout (location = 1) in vec2 tCoord;
|
||||
|
||||
out vec2 UV;
|
||||
|
||||
// Maybe we should merge these CPU side.
|
||||
// idk yet.
|
||||
uniform mat3 modelMatrix;
|
||||
layout (std140) uniform projectionViewMatrices
|
||||
{
|
||||
mat3 projectionMatrix;
|
||||
mat3 viewMatrix;
|
||||
};
|
||||
|
||||
layout (std140) uniform uniformConstants
|
||||
{
|
||||
vec2 SCREEN_PIXEL_SIZE;
|
||||
float TIME;
|
||||
};
|
||||
|
||||
// Allows us to do texture atlassing with texture coordinates 0->1
|
||||
// Input texture coordinates get mapped to this range.
|
||||
uniform vec4 modifyUV;
|
||||
|
||||
[SHADER_HEADER_CODE]
|
||||
|
||||
void main()
|
||||
{
|
||||
vec3 transformed = projectionMatrix * viewMatrix * modelMatrix * vec3(aPos, 1.0);
|
||||
vec2 VERTEX = transformed.xy;
|
||||
|
||||
[SHADER_CODE]
|
||||
|
||||
// Pixel snapping to avoid sampling issues on nvidia.
|
||||
VERTEX += 1;
|
||||
VERTEX /= SCREEN_PIXEL_SIZE*2;
|
||||
VERTEX = floor(VERTEX + 0.5);
|
||||
VERTEX *= SCREEN_PIXEL_SIZE*2;
|
||||
VERTEX -= 1;
|
||||
|
||||
gl_Position = vec4(VERTEX, 0.0, 1.0);
|
||||
UV = mix(modifyUV.xy, modifyUV.zw, tCoord);
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
shader_type canvas_item;
|
||||
//shader_type canvas_item;
|
||||
uniform float outline_width = 2.0;
|
||||
uniform vec4 outline_color: hint_color;
|
||||
// TODO: implement that hint_color thingy.
|
||||
//uniform vec4 outline_color: hint_color;
|
||||
uniform vec4 outline_color=vec4(1,0,0,0.33);
|
||||
|
||||
void fragment() {
|
||||
// I, for some reason, cannot put this comment in the top of the file.
|
||||
@@ -55,5 +57,5 @@ void fragment() {
|
||||
maxa = max(a, maxa);
|
||||
mina = min(a, mina);
|
||||
|
||||
COLOR = mix(col, outline_color, maxa-mina);
|
||||
COLOR = mix(col, outline_color, maxa-col.a);
|
||||
}
|
||||
56
Resources/Shaders/outline_unshaded.swsl
Normal file
@@ -0,0 +1,56 @@
|
||||
render_mode unshaded;
|
||||
uniform float outline_width = 2.0;
|
||||
// TODO: implement that hint_color thingy.
|
||||
//uniform vec4 outline_color: hint_color;
|
||||
uniform vec4 outline_color=vec4(1,0,0,0.33);
|
||||
|
||||
void fragment() {
|
||||
// I, for some reason, cannot put this comment in the top of the file.
|
||||
// Taken from the godot-demo-projects repo.
|
||||
// GODOT ENGINE
|
||||
// http://www.godotengine.org
|
||||
//
|
||||
// ************************************************************************
|
||||
//
|
||||
// Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining
|
||||
// a copy of this software and associated documentation files (the
|
||||
// "Software"), to deal in the Software without restriction, including
|
||||
// without limitation the rights to use, copy, modify, merge, publish,
|
||||
// distribute, sublicense, and/or sell copies of the Software, and to
|
||||
// permit persons to whom the Software is furnished to do so, subject to
|
||||
// the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be
|
||||
// included in all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
//************************************************************************
|
||||
|
||||
vec4 col = texture(TEXTURE, UV);
|
||||
vec2 ps = TEXTURE_PIXEL_SIZE;
|
||||
float a;
|
||||
float maxa = col.a;
|
||||
|
||||
a = texture(TEXTURE, UV + vec2(0, -outline_width)*ps).a;
|
||||
maxa = max(a, maxa);
|
||||
|
||||
a = texture(TEXTURE, UV + vec2(0, outline_width)*ps).a;
|
||||
maxa = max(a, maxa);
|
||||
|
||||
a = texture(TEXTURE, UV + vec2(-outline_width,0)*ps).a;
|
||||
maxa = max(a, maxa);
|
||||
|
||||
a = texture(TEXTURE, UV + vec2(outline_width, 0)*ps).a;
|
||||
maxa = max(a, maxa);
|
||||
|
||||
COLOR = mix(col, outline_color, maxa-col.a);
|
||||
}
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 668 B |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 800 B |
|
Before Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 259 B |
|
Before Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 402 B |
|
Before Width: | Height: | Size: 230 B |
|
Before Width: | Height: | Size: 251 B |
|
Before Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 432 B |
|
Before Width: | Height: | Size: 220 B |
|
Before Width: | Height: | Size: 220 B |
|
Before Width: | Height: | Size: 205 B |
|
Before Width: | Height: | Size: 365 B |
|
Before Width: | Height: | Size: 213 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 214 B |
|
Before Width: | Height: | Size: 255 B |
|
Before Width: | Height: | Size: 299 B |
|
Before Width: | Height: | Size: 473 B |
|
Before Width: | Height: | Size: 185 B |
|
Before Width: | Height: | Size: 553 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 210 B |
|
Before Width: | Height: | Size: 241 B |
|
Before Width: | Height: | Size: 256 B |
|
Before Width: | Height: | Size: 718 B |
|
Before Width: | Height: | Size: 286 B |
|
Before Width: | Height: | Size: 675 B |
|
Before Width: | Height: | Size: 701 B |
|
Before Width: | Height: | Size: 281 B |
|
Before Width: | Height: | Size: 391 B |
|
Before Width: | Height: | Size: 366 B |
|
Before Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 2.8 KiB |