mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-10-22 07:06:23 -04:00
Compare commits
601
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4588b55aa | ||
|
|
33a2a0a8e0 | ||
|
|
dac1b3cbf0 | ||
|
|
052fee56a1 | ||
|
|
15970f2ab0 | ||
|
|
3874867b74 | ||
|
|
ed6485f1d3 | ||
|
|
c7b1036bdf | ||
|
|
8730ff3a3e | ||
|
|
c8bd7c8604 | ||
|
|
b049a39680 | ||
|
|
6503b0806a | ||
|
|
ef0e785855 | ||
|
|
cccd30a284 | ||
|
|
be35e937d9 | ||
|
|
5a73456202 | ||
|
|
089e6c15da | ||
|
|
4f63c40096 | ||
|
|
218d33d78d | ||
|
|
dae5445c3a | ||
|
|
57f9d5b6dc | ||
|
|
fdfa10f5fe | ||
|
|
e12a1df252 | ||
|
|
69e74be5e5 | ||
|
|
8c9ee22547 | ||
|
|
c8074dd825 | ||
|
|
bda5e2ade2 | ||
|
|
0c5118b840 | ||
|
|
0d0eaf2465 | ||
|
|
4eb90400aa | ||
|
|
7387612f0e | ||
|
|
5188318f20 | ||
|
|
627ee5e9b2 | ||
|
|
7f3bd8bec2 | ||
|
|
db70a0f816 | ||
|
|
ab9a66c556 | ||
|
|
f5e1dfe080 | ||
|
|
175aa93284 | ||
|
|
b7926a70ab | ||
|
|
28f2caff58 | ||
|
|
128451785f | ||
|
|
0171ed9747 | ||
|
|
1fb09e27fc | ||
|
|
30a3d6ed83 | ||
|
|
18cecc68dd | ||
|
|
5036ed0db1 | ||
|
|
3b3150fc72 | ||
|
|
b9fb970ec4 | ||
|
|
761b306590 | ||
|
|
1e7dfce918 | ||
|
|
a453199eae | ||
|
|
f5267c832f | ||
|
|
7f6e0c0377 | ||
|
|
420d42b36d | ||
|
|
a45028d83b | ||
|
|
76ab7e998b | ||
|
|
cbbfa974aa | ||
|
|
9dc6649eb7 | ||
|
|
97ef0dda0a | ||
|
|
71334dc889 | ||
|
|
4d8c4b1d7b | ||
|
|
0701380a36 | ||
|
|
2b03e5660e | ||
|
|
b44a53efce | ||
|
|
5678776938 | ||
|
|
f3985d8250 | ||
|
|
b497c603ca | ||
|
|
b9807773ee | ||
|
|
aba02d7b53 | ||
|
|
0eef30af4a | ||
|
|
3a064c7269 | ||
|
|
1cece70687 | ||
|
|
c2d85df3e0 | ||
|
|
a7c0242575 | ||
|
|
97a7554e79 | ||
|
|
77108ae687 | ||
|
|
413271546f | ||
|
|
75e3c4be7a | ||
|
|
7891347d90 | ||
|
|
0a9b1c5c97 | ||
|
|
89d86aa6e3 | ||
|
|
fd45dacad2 | ||
|
|
a336f0968a | ||
|
|
df852ace9b | ||
|
|
9d6ae6952c | ||
|
|
19c6f98ea4 | ||
|
|
dbc1674416 | ||
|
|
3e8c0ed14e | ||
|
|
5f8ee45f1e | ||
|
|
5f3e1fb395 | ||
|
|
4befb0a16a | ||
|
|
aab55966a8 | ||
|
|
746c29c6f6 | ||
|
|
0c31f14b15 | ||
|
|
e565426291 | ||
|
|
6f115e44e3 | ||
|
|
dd161c2d53 | ||
|
|
50500ab204 | ||
|
|
169c406f03 | ||
|
|
985691958f | ||
|
|
d972b2f998 | ||
|
|
5dc03a71f6 | ||
|
|
6535dd950a | ||
|
|
840d7f50ee | ||
|
|
1d7da21e69 | ||
|
|
c33adf3a8b | ||
|
|
c39eeb69f4 | ||
|
|
32d6811884 | ||
|
|
fa7eb0d98c | ||
|
|
242fa3fed8 | ||
|
|
9364992979 | ||
|
|
488f9b995a | ||
|
|
05f58f86c2 | ||
|
|
3fa3f06a02 | ||
|
|
0a80269670 | ||
|
|
5e2373c656 | ||
|
|
60b95b6fa5 | ||
|
|
77d7bb0fe4 | ||
|
|
bf78e68831 | ||
|
|
49a6dd826a | ||
|
|
b0d80d6c96 | ||
|
|
ca1f008319 | ||
|
|
d22d7cc5b4 | ||
|
|
1ceba8973f | ||
|
|
558daea446 | ||
|
|
6f5a298a5c | ||
|
|
e016d48584 | ||
|
|
9540a4b3eb | ||
|
|
e7234daff6 | ||
|
|
7fbc2b5143 | ||
|
|
9d50dae3d1 | ||
|
|
655a467193 | ||
|
|
cbc6c56c9e | ||
|
|
360de79482 | ||
|
|
8e7ceae7e1 | ||
|
|
92221e0e98 | ||
|
|
27285e3e7f | ||
|
|
04612d58f3 | ||
|
|
ffd5dbb717 | ||
|
|
d7242d2895 | ||
|
|
51c2a418ce | ||
|
|
882a5921e8 | ||
|
|
9b58e229d6 | ||
|
|
d357c2cbcb | ||
|
|
5621326c43 | ||
|
|
9fd2b3f1d6 | ||
|
|
a89d428699 | ||
|
|
91eda647fa | ||
|
|
c0da612281 | ||
|
|
7dc76fdeb3 | ||
|
|
7e11497c64 | ||
|
|
81978f025b | ||
|
|
8dc3eaafc7 | ||
|
|
c0af1abf9f | ||
|
|
b2d56c339c | ||
|
|
bc49537e16 | ||
|
|
c4c59e6aa5 | ||
|
|
de3cac46fb | ||
|
|
995ad49336 | ||
|
|
1abe38f97b | ||
|
|
ff7fa49baa | ||
|
|
92b2612350 | ||
|
|
ba17f0d35f | ||
|
|
5a628b4c39 | ||
|
|
0b46516ed1 | ||
|
|
715b5d1a08 | ||
|
|
44ca37207f | ||
|
|
cd363e4ef7 | ||
|
|
9d234fa556 | ||
|
|
47e49993ad | ||
|
|
7afdbd2d4b | ||
|
|
38e699aa44 | ||
|
|
2b26e47876 | ||
|
|
2f07f33a71 | ||
|
|
eaec3612aa | ||
|
|
db0c2a0cc2 | ||
|
|
c431cf7b1e | ||
|
|
a5dd0eb924 | ||
|
|
466d91fcbf | ||
|
|
e1a3077780 | ||
|
|
5936ced1d7 | ||
|
|
3d6967d3c7 | ||
|
|
449a8cdb53 | ||
|
|
c91d4a9515 | ||
|
|
793f059f3c | ||
|
|
7200e87886 | ||
|
|
a1dc5c8340 | ||
|
|
2345e7efcc | ||
|
|
d32ed6309c | ||
|
|
72e9481946 | ||
|
|
f3ba7ef121 | ||
|
|
e9aca93f70 | ||
|
|
6f8e3bca29 | ||
|
|
49349848b8 | ||
|
|
bfe1afda4b | ||
|
|
bd54020c9c | ||
|
|
605d44f2c2 | ||
|
|
5c42b441fd | ||
|
|
2211232652 | ||
|
|
4ef8c40a83 | ||
|
|
99ca941c73 | ||
|
|
e5b977ff1a | ||
|
|
0e381ac098 | ||
|
|
ace08a5673 | ||
|
|
de00622235 | ||
|
|
e652b5773d | ||
|
|
ae1f6393b7 | ||
|
|
ddb0ad4dda | ||
|
|
83bc1292ea | ||
|
|
39075b843e | ||
|
|
7db59cc3bd | ||
|
|
5e5f35b306 | ||
|
|
65ef2076eb | ||
|
|
e8f6bbd742 | ||
|
|
5256bf1267 | ||
|
|
d2a5dfcdc0 | ||
|
|
124eb876de | ||
|
|
7b1f50b183 | ||
|
|
2c9705e230 | ||
|
|
b78d05611d | ||
|
|
4574e9ae65 | ||
|
|
4508f47c93 | ||
|
|
683d62f9e0 | ||
|
|
217b1cc561 | ||
|
|
b72f90551e | ||
|
|
30b146a59d | ||
|
|
1e4afe36be | ||
|
|
a76ec37e63 | ||
|
|
c3f397b508 | ||
|
|
d4f5b1c0ca | ||
|
|
ae4680f546 | ||
|
|
b0c14c686c | ||
|
|
4a59c02340 | ||
|
|
9754515ec6 | ||
|
|
f810cdb090 | ||
|
|
af8cfa8b3d | ||
|
|
c9de2b2bf1 | ||
|
|
f3bd112f3e | ||
|
|
2d3bd8c2af | ||
|
|
8a9a59fd3c | ||
|
|
c738f55078 | ||
|
|
2e39aa7f7f | ||
|
|
c65aaf03eb | ||
|
|
d3e18cb8c0 | ||
|
|
8de519ad3f | ||
|
|
d06c735585 | ||
|
|
c820a01db0 | ||
|
|
0d6f6221cb | ||
|
|
77e6070e78 | ||
|
|
46c5849842 | ||
|
|
72bca5b6fc | ||
|
|
94d12f69fe | ||
|
|
1f68bab455 | ||
|
|
390d214976 | ||
|
|
5b40c8bab2 | ||
|
|
7eee9117c0 | ||
|
|
49e1b6ac00 | ||
|
|
d356ad3a3d | ||
|
|
0f38eb5bca | ||
|
|
1d3e54a54a | ||
|
|
4792b14051 | ||
|
|
66d87d68de | ||
|
|
5d60825c7d | ||
|
|
4ca40b59d9 | ||
|
|
a9b6e02a71 | ||
|
|
055eaab819 | ||
|
|
1f467a72a6 | ||
|
|
14ee434e13 | ||
|
|
d317a4488e | ||
|
|
3b78d68ed0 | ||
|
|
2d234931d7 | ||
|
|
ff01cc1551 | ||
|
|
4ae49291ad | ||
|
|
268f219754 | ||
|
|
6d819a0507 | ||
|
|
41e0c1bf2d | ||
|
|
db8b5ab631 | ||
|
|
d7c531d51f | ||
|
|
03f690e450 | ||
|
|
6ffc6b98e5 | ||
|
|
a99865e0c6 | ||
|
|
2c7d5a937f | ||
|
|
37c9c7970a | ||
|
|
a9c1c318dc | ||
|
|
4e74e85976 | ||
|
|
30f9e506b2 | ||
|
|
72b17e3c04 | ||
|
|
ca00521ba8 | ||
|
|
3f289b1deb | ||
|
|
cbd86be78c | ||
|
|
c62e1bcc28 | ||
|
|
6c91bc273e | ||
|
|
76d9fae579 | ||
|
|
76de1f6076 | ||
|
|
b1971f90be | ||
|
|
e702d0088d | ||
|
|
332a0a6e1b | ||
|
|
58bf92eeab | ||
|
|
7787d749c9 | ||
|
|
b075145090 | ||
|
|
afe7fff061 | ||
|
|
6f3abd0986 | ||
|
|
2da2c41011 | ||
|
|
252a223e89 | ||
|
|
dcf8b22592 | ||
|
|
5c1dbfff7b | ||
|
|
e8c9ae1a64 | ||
|
|
b1f9796e21 | ||
|
|
02847c428d | ||
|
|
7552038d48 | ||
|
|
84d6a8b110 | ||
|
|
e9be40848a | ||
|
|
d8dd485d3f | ||
|
|
b27924bd4a | ||
|
|
be61d2d2ad | ||
|
|
647989944e | ||
|
|
e80facfd3b | ||
|
|
43dbc87a1e | ||
|
|
4b4ef77d4e | ||
|
|
cb431c0b5f | ||
|
|
f56960d15b | ||
|
|
41017342c9 | ||
|
|
9b218bb4f7 | ||
|
|
fbe37cf81a | ||
|
|
6ec091dfa5 | ||
|
|
e6a9c8e32e | ||
|
|
ba034be048 | ||
|
|
157fe0435b | ||
|
|
1123d10b05 | ||
|
|
8f7fa9a324 | ||
|
|
7cf60159c4 | ||
|
|
c5add81e90 | ||
|
|
5a6ada47b9 | ||
|
|
f4336c9227 | ||
|
|
123562c672 | ||
|
|
493101850e | ||
|
|
6bba26a848 | ||
|
|
46474f67b8 | ||
|
|
14f0a4643c | ||
|
|
037e667411 | ||
|
|
0a25c286cd | ||
|
|
5561270a60 | ||
|
|
1d499bbce8 | ||
|
|
6e8bf6999c | ||
|
|
5da8977ec0 | ||
|
|
fcb32062d3 | ||
|
|
9e74c7fd18 | ||
|
|
d3d73cc30d | ||
|
|
d9f76677c0 | ||
|
|
151999c2cd | ||
|
|
0460f17c1f | ||
|
|
2c69513d2b | ||
|
|
617efe6a58 | ||
|
|
2734f1d00c | ||
|
|
e66069b270 | ||
|
|
a661575451 | ||
|
|
a23017cd1f | ||
|
|
0df19ce18a | ||
|
|
5a751546ec | ||
|
|
ee9e1cabc1 | ||
|
|
d78b46155f | ||
|
|
1afd61d517 | ||
|
|
97a5083ff5 | ||
|
|
0d31e74790 | ||
|
|
02214196f4 | ||
|
|
aae268cfc5 | ||
|
|
20f37d8799 | ||
|
|
0b825bcda3 | ||
|
|
aba3bd22c7 | ||
|
|
b1fc33f5a1 | ||
|
|
f2033f5e33 | ||
|
|
6c600b7bdb | ||
|
|
e93bfb7f0f | ||
|
|
8976909742 | ||
|
|
30a9c2f53e | ||
|
|
ea60790865 | ||
|
|
f906fac8f3 | ||
|
|
05b324a3cb | ||
|
|
8ce1c7ccf5 | ||
|
|
a37f93241f | ||
|
|
6689663ca9 | ||
|
|
959b81a58f | ||
|
|
62e607b44e | ||
|
|
407bb6b977 | ||
|
|
a9efd327b8 | ||
|
|
64cb4d2ff8 | ||
|
|
54786fa82e | ||
|
|
ecab1b7825 | ||
|
|
75d7106f46 | ||
|
|
6f82c09afa | ||
|
|
778e5e219c | ||
|
|
f4682e0bd2 | ||
|
|
906d487ffc | ||
|
|
817b801bf7 | ||
|
|
e401b11ab9 | ||
|
|
165f70e01d | ||
|
|
fddfbfb4ed | ||
|
|
03e229c511 | ||
|
|
0b08372407 | ||
|
|
6d26b5de20 | ||
|
|
ef179410f9 | ||
|
|
194f6e019a | ||
|
|
1f933827b9 | ||
|
|
28765bb2ce | ||
|
|
136391db04 | ||
|
|
0cc39e71fc | ||
|
|
d65cc08793 | ||
|
|
a1729a0266 | ||
|
|
8505634df3 | ||
|
|
02047c1ec0 | ||
|
|
068fa4b2ef | ||
|
|
bfd266a40e | ||
|
|
6367d4e2aa | ||
|
|
f8a680f381 | ||
|
|
81750e6eb9 | ||
|
|
818cf682bf | ||
|
|
3112a0650f | ||
|
|
747ef94f04 | ||
|
|
dbacada48c | ||
|
|
26db8a40cc | ||
|
|
6e5feda00e | ||
|
|
f04330074b | ||
|
|
80d733d329 | ||
|
|
0099dcf5c5 | ||
|
|
0a30551b7d | ||
|
|
e4ee0227fd | ||
|
|
4ec7168499 | ||
|
|
650647e94b | ||
|
|
a5371f4b5d | ||
|
|
d47e7fb3c4 | ||
|
|
ef983e17fe | ||
|
|
d78975be6e | ||
|
|
19a264870c | ||
|
|
ee1753de67 | ||
|
|
742354b2cb | ||
|
|
e2f6aaa4de | ||
|
|
abc2911059 | ||
|
|
d76caf7093 | ||
|
|
bf859f8435 | ||
|
|
b31c10cc52 | ||
|
|
89e3c7d8b0 | ||
|
|
167b09f24f | ||
|
|
39165266d5 | ||
|
|
7405f2de75 | ||
|
|
762fe87454 | ||
|
|
ebbc81b605 | ||
|
|
12d41aada1 | ||
|
|
61fe9c23ce | ||
|
|
945c9c60a9 | ||
|
|
8413b0392e | ||
|
|
868edcd392 | ||
|
|
a3b2f9b6fc | ||
|
|
12b444bb41 | ||
|
|
0e814fd567 | ||
|
|
7b083aa038 | ||
|
|
4e0a4c84b5 | ||
|
|
2d9b47e645 | ||
|
|
39a2182736 | ||
|
|
5a996abbf3 | ||
|
|
a20def5161 | ||
|
|
030f370290 | ||
|
|
f3ade3cb82 | ||
|
|
315cb6a1ac | ||
|
|
60615d32f5 | ||
|
|
1d27d9cf5b | ||
|
|
2ba760d0f9 | ||
|
|
c31ec3b418 | ||
|
|
d0afab9604 | ||
|
|
4e9f8fe1c0 | ||
|
|
803f93aa73 | ||
|
|
853940d009 | ||
|
|
6ddb746d49 | ||
|
|
2b86b15132 | ||
|
|
5f0f5d0aa5 | ||
|
|
136aab872a | ||
|
|
a1d4702af0 | ||
|
|
b2777c13b8 | ||
|
|
26cb473b9d | ||
|
|
907c639e28 | ||
|
|
80d2eafed7 | ||
|
|
519122e5be | ||
|
|
c211768d5c | ||
|
|
908f318eeb | ||
|
|
0143f93577 | ||
|
|
f8615aeb82 | ||
|
|
b113448a9c | ||
|
|
2930a11c75 | ||
|
|
982de7f5c7 | ||
|
|
bfdb5e9787 | ||
|
|
d5ea945c6b | ||
|
|
5a18d038a2 | ||
|
|
d0389d6c9c | ||
|
|
c9bc6e24fe | ||
|
|
8b4a8e9534 | ||
|
|
5adfd00509 | ||
|
|
4090e038ae | ||
|
|
f3ab282fd1 | ||
|
|
40b97d3c1e | ||
|
|
829b97270d | ||
|
|
61111c8038 | ||
|
|
1f4fbaa177 | ||
|
|
9e8ef7e875 | ||
|
|
190d90a966 | ||
|
|
5a07c82a5d | ||
|
|
9c2e56ee8b | ||
|
|
c83f194dc9 | ||
|
|
b9bcb66d2a | ||
|
|
b72050da1d | ||
|
|
82522ad6ab | ||
|
|
d40e2e6103 | ||
|
|
96715770a7 | ||
|
|
48fa67c2e4 | ||
|
|
9a6217f755 | ||
|
|
f1f035b5f9 | ||
|
|
19aa53effc | ||
|
|
be7cb4583c | ||
|
|
887891f74d | ||
|
|
d83cd34bf4 | ||
|
|
bee41a90f9 | ||
|
|
79afe9d812 | ||
|
|
9fe55c5692 | ||
|
|
feddce2575 | ||
|
|
4ddc5e3a93 | ||
|
|
f63f1764ab | ||
|
|
7c694e9733 | ||
|
|
21b6977387 | ||
|
|
408735399c | ||
|
|
f6c856d161 | ||
|
|
8173cf13a8 | ||
|
|
7d0becf1bd | ||
|
|
9b4a87ce68 | ||
|
|
464c4d349d | ||
|
|
a35d3131f8 | ||
|
|
9d99d3c331 | ||
|
|
b100516b24 | ||
|
|
8da5396443 | ||
|
|
5d2a727311 | ||
|
|
d7f03215e2 | ||
|
|
d366471e71 | ||
|
|
e5163f154a | ||
|
|
cfc497d8ed | ||
|
|
35f8ab0257 | ||
|
|
e890743c86 | ||
|
|
ffec6e307d | ||
|
|
7c35db7eaa | ||
|
|
9f0c2296bc | ||
|
|
6b0a06c64d | ||
|
|
160186931f | ||
|
|
22c4a14fbe | ||
|
|
241a82764b | ||
|
|
6e4d48bb07 | ||
|
|
7a383f419a | ||
|
|
933b99d349 | ||
|
|
72d78084f6 | ||
|
|
fcee4d2774 | ||
|
|
61c7f3bc13 | ||
|
|
3830637f3c | ||
|
|
45f8049521 | ||
|
|
823774bcfe | ||
|
|
920e5211c0 | ||
|
|
7da61e3d8d | ||
|
|
754b60b15c | ||
|
|
839454bfd6 | ||
|
|
3b6a0667d6 | ||
|
|
f298adaea8 | ||
|
|
641206b811 | ||
|
|
93a94b4900 | ||
|
|
40363c2ea1 | ||
|
|
6f15d65d90 | ||
|
|
02f9b21cff | ||
|
|
79cf154304 | ||
|
|
a650683d45 | ||
|
|
311dc3dc9c | ||
|
|
bda1f80ecc | ||
|
|
817796bf40 | ||
|
|
8a48eeab8b | ||
|
|
0061104c0d | ||
|
|
5110a1be17 | ||
|
|
4cbb998106 | ||
|
|
17de3f496c | ||
|
|
b54181e93a | ||
|
|
eaf7edcd94 | ||
|
|
cdf1631e2b | ||
|
|
841f49553e | ||
|
|
57d7d5a1b9 | ||
|
|
b1f2ab2ed7 | ||
|
|
f629d95844 | ||
|
|
30904fbdda | ||
|
|
9a3be6a85a | ||
|
|
88c91d9bdd | ||
|
|
5d2efe3e6b | ||
|
|
d6354d3d94 | ||
|
|
4ddfdd828c | ||
|
|
06b70c6204 | ||
|
|
2dc9d11f79 | ||
|
|
fbb161c511 | ||
|
|
f84bc62d61 | ||
|
|
2e20554d1e | ||
|
|
bb9fcc64ed | ||
|
|
2d908468ea | ||
|
|
c9ae148d86 |
@@ -8,15 +8,104 @@
|
||||
- Added molang particle queries for getting distance to targeted entities.
|
||||
- Added debug renderer for poseable entity locators.
|
||||
- Added `baseScale` property to NPCs.
|
||||
- Added cry for Spinda.
|
||||
- Added the player to `PokerodReelEvent`.
|
||||
- Pokédex and Dialogue API screens now close when the inventory keybind is pressed.
|
||||
- Added Galarica Nuts, used for crafting Galarica Cuffs and Wreaths. Dropped from certain Pokémon.
|
||||
- Added specific compatibility with Repurposed Structures. (Thank you, TelepathicGrunt!)
|
||||
- Added an evolution method for Karrablast to evolve into Escavalier in single-player mode.
|
||||
- Pokédexes can now be placed in Chiseled Bookshelves.
|
||||
- Added crossover paintings from Close Combat, Premonition, Altar, Slumber, and Nomad.
|
||||
- Added optional box argument to the /pc command
|
||||
|
||||
### Changes
|
||||
- Pokémon will now be dynamically revealed to the Pokédex as they're seen instead of revealing entire parties at the end of battle regardless.
|
||||
- Unseen wild Pokémon will update their name from '???' to their real name as soon as a battle starts to reflect the battle UI showing the actual species name.
|
||||
- Pokémon under the illusion effect will reveal their disguise to the Pokédex first and then the base Pokémon once the disguise is broken.
|
||||
- Added more support for a variety of Fabric/NeoForge Convention tags.
|
||||
- Reformatted some tags to be more consistent.
|
||||
- Edited some recipes to utilize tags instead of direct item ids, for greater mod compatibility.
|
||||
- Berries will drop if broken at age 0
|
||||
- Improved Fortune drops on Mint Seeds
|
||||
- New Slowpoke shiny texture.
|
||||
- Updated drops for many Pokémon.
|
||||
- Completely resynced Pokémon move and stat data based on later games. Learnsets have changed considerably to maximise available moves.
|
||||
|
||||
### Pokémon Added
|
||||
|
||||
#### Gen 5
|
||||
- Ducklett
|
||||
- Swanna
|
||||
- Shelmet
|
||||
- Accelgor
|
||||
- Karrablast
|
||||
- Escavalier
|
||||
- Rufflet
|
||||
- Braviary
|
||||
- Foongus
|
||||
- Amoonguss
|
||||
|
||||
#### Gen 6
|
||||
- Binacle
|
||||
- Barbaracle
|
||||
|
||||
#### Gen 7
|
||||
- Dewpider
|
||||
- Araquanid
|
||||
- Alolan Geodude
|
||||
- Alolan Graveler
|
||||
- Alolan Golem
|
||||
|
||||
#### Gen 8
|
||||
- Galarian Slowpoke
|
||||
- Galarian Slowbro
|
||||
- Galarian Slowking
|
||||
|
||||
#### Gen 9
|
||||
- Paldean Tauros's
|
||||
|
||||
### Added cries to the following Pokémon
|
||||
- All Nidorans
|
||||
- Shellder, Cloyster
|
||||
- Pinsir
|
||||
- Tyrogue, Hitmontop
|
||||
- Spinda
|
||||
|
||||
### Animation updates for the following Pokémon
|
||||
- Primeape
|
||||
- Munchlax
|
||||
- Snorlax
|
||||
- Poliwrath
|
||||
- Goldeen
|
||||
- Seaking
|
||||
- Dondozo
|
||||
- Wobbuffet
|
||||
- Charcadet
|
||||
- Armarouge
|
||||
- Ceruledge
|
||||
- Geodude
|
||||
- Graveler
|
||||
- Golem
|
||||
- Sandile
|
||||
- Krokorok
|
||||
- Krookodile
|
||||
|
||||
### Model updates for the following Pokémon
|
||||
- Slowpoke
|
||||
- Slowbro
|
||||
- Slowking
|
||||
- Eiscue
|
||||
- Tauros
|
||||
- Goldeen
|
||||
- Seaking
|
||||
- Charcadet
|
||||
- Pinsir
|
||||
- Geodude
|
||||
- Graveler
|
||||
- Golem
|
||||
|
||||
### Cry updates for the following Pokémon
|
||||
- Sceptile
|
||||
|
||||
### Fixes
|
||||
- Fixed Pokédex sometimes crashing when switching forms.
|
||||
@@ -63,6 +152,12 @@
|
||||
- Fixed Vivichoke Dip and Leek and Potato Stew not returning a bowl upon consumption.
|
||||
- Fixed Fossil Restoration Machine not accepting Hay Bales.
|
||||
- Fixed Potion items so that they no longer apply over double their intended healing value.
|
||||
- Fixed Fast Ball capture rate applying to all Pokémon.
|
||||
- Fix "learned new move" messages appearing for already known moves on Pokémon evolutions.
|
||||
- Fix Pokémon Item Models breaking shadows nearby when being placed in Display Cases or Item Frames.
|
||||
|
||||
### Developer
|
||||
- Updated the Pokédex data updated events to always include a Pokemon instance, and optionally a DisguiseData instance.
|
||||
|
||||
### Molang & Datapacks
|
||||
- Added flows for:
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.cobblemon.mod.common.api.events.CobblemonEvents;
|
||||
import com.cobblemon.mod.common.api.events.item.LeftoversCreatedEvent;
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies;
|
||||
import com.cobblemon.mod.common.api.storage.party.PartyStore;
|
||||
import com.cobblemon.mod.common.api.storage.party.PlayerPartyStore;
|
||||
import com.cobblemon.mod.common.api.tags.CobblemonItemTags;
|
||||
import com.cobblemon.mod.common.pokedex.scanner.PokedexEntityData;
|
||||
import com.cobblemon.mod.common.pokedex.scanner.ScannableEntity;
|
||||
@@ -178,10 +179,10 @@ public abstract class PlayerMixin extends LivingEntity implements ScannableEntit
|
||||
|
||||
@Override @Nullable
|
||||
public PokedexEntityData resolvePokemonScan() {
|
||||
if(CompoundTagUtilities.isShoulderPokemon(this.getShoulderEntityRight())){
|
||||
if (CompoundTagUtilities.isShoulderPokemon(this.getShoulderEntityRight())){
|
||||
return getDataFromShoulderPokemon(this.getShoulderEntityRight());
|
||||
}
|
||||
if(CompoundTagUtilities.isShoulderPokemon(this.getShoulderEntityLeft())){
|
||||
if (CompoundTagUtilities.isShoulderPokemon(this.getShoulderEntityLeft())){
|
||||
return getDataFromShoulderPokemon(this.getShoulderEntityLeft());
|
||||
}
|
||||
return null;
|
||||
@@ -190,30 +191,34 @@ public abstract class PlayerMixin extends LivingEntity implements ScannableEntit
|
||||
@Nullable @Unique
|
||||
private PokedexEntityData getDataFromShoulderPokemon(CompoundTag shoulderTag) {
|
||||
CompoundTag pokemonTag = shoulderTag.getCompound(DataKeys.POKEMON);
|
||||
if(pokemonTag.isEmpty()) return null;
|
||||
if (pokemonTag.isEmpty()) return null;
|
||||
Species species = PokemonSpecies.INSTANCE.getByIdentifier(ResourceLocation.parse(pokemonTag.getString(DataKeys.POKEMON_SPECIES_IDENTIFIER)));
|
||||
if(species == null) return null;
|
||||
if (species == null) return null;
|
||||
String formId = pokemonTag.getString(DataKeys.POKEMON_FORM_ID);
|
||||
FormData form = species.getStandardForm();
|
||||
List<FormData> formList = species.getForms().stream().filter(it -> it.formOnlyShowdownId().equals(formId)).toList();
|
||||
if(!formList.isEmpty()) form = formList.getFirst();
|
||||
if(form == null) return null;
|
||||
if (!formList.isEmpty()) form = formList.getFirst();
|
||||
if (form == null) return null;
|
||||
String genderString = pokemonTag.getString(DataKeys.POKEMON_GENDER);
|
||||
if(genderString.isEmpty()) return null;
|
||||
if (genderString.isEmpty()) return null;
|
||||
Gender gender = Gender.valueOf(genderString);
|
||||
boolean shiny = pokemonTag.getBoolean(DataKeys.POKEMON_SHINY);
|
||||
int level = pokemonTag.getInt(DataKeys.POKEMON_LEVEL);
|
||||
Set<String> aspects = shoulderTag.getList(DataKeys.SHOULDER_ASPECTS, Tag.TAG_STRING).stream().map(Tag::getAsString).collect(Collectors.toSet());
|
||||
|
||||
return new PokedexEntityData(
|
||||
species,
|
||||
form,
|
||||
gender,
|
||||
aspects,
|
||||
shiny,
|
||||
level,
|
||||
this.getUUID()
|
||||
);
|
||||
Pokemon pokemon = new Pokemon();
|
||||
if (level().isClientSide) {
|
||||
pokemon.setSpecies(species);
|
||||
pokemon.setForm(form);
|
||||
pokemon.setGender(gender);
|
||||
pokemon.setShiny(shiny);
|
||||
pokemon.setLevel(level);
|
||||
pokemon.setForcedAspects(aspects);
|
||||
} else {
|
||||
PlayerPartyStore party = Cobblemon.INSTANCE.getStorage().getParty(this.getUUID(), this.registryAccess());
|
||||
pokemon = party.get(shoulderTag.getUUID(DataKeys.SHOULDER_UUID));
|
||||
}
|
||||
return new PokedexEntityData(pokemon, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.cobblemon.mod.common.api.SeasonResolver
|
||||
import com.cobblemon.mod.common.api.data.DataProvider
|
||||
import com.cobblemon.mod.common.api.drop.CommandDropEntry
|
||||
import com.cobblemon.mod.common.api.drop.DropEntry
|
||||
import com.cobblemon.mod.common.api.drop.EvolutionItemDropEntry
|
||||
import com.cobblemon.mod.common.api.drop.ItemDropEntry
|
||||
import com.cobblemon.mod.common.api.events.CobblemonEvents
|
||||
import com.cobblemon.mod.common.api.events.CobblemonEvents.DATA_SYNCHRONIZED
|
||||
@@ -200,6 +201,7 @@ object Cobblemon {
|
||||
|
||||
DropEntry.register("command", CommandDropEntry::class.java)
|
||||
DropEntry.register("item", ItemDropEntry::class.java, isDefault = true)
|
||||
DropEntry.register("evolution", EvolutionItemDropEntry::class.java)
|
||||
|
||||
ExperienceGroups.registerDefaults()
|
||||
CaptureCalculators.registerDefaults()
|
||||
|
||||
@@ -32,6 +32,7 @@ object CobblemonCommands {
|
||||
HealPokemonCommand.register(dispatcher)
|
||||
StopBattleCommand.register(dispatcher)
|
||||
CheckSpawnsCommand.register(dispatcher)
|
||||
CheckFishingSpawnsCommand.register(dispatcher)
|
||||
GetNBT.register(dispatcher)
|
||||
OpenStarterScreenCommand.register(dispatcher)
|
||||
SpawnAllPokemon.register(dispatcher)
|
||||
|
||||
@@ -317,6 +317,7 @@ object CobblemonItems : PlatformRegistry<Registry<Item>, ResourceKey<Registry<It
|
||||
@JvmField val RAZOR_FANG = noSettingsItem("razor_fang")
|
||||
@JvmField val AUSPICIOUS_ARMOR = heldItem("auspicious_armor")
|
||||
@JvmField val MALICIOUS_ARMOR = heldItem("malicious_armor")
|
||||
@JvmField val SHELL_HELMET = heldItem("shell_helmet")
|
||||
|
||||
private val berries = mutableMapOf<ResourceLocation, BerryItem>()
|
||||
// Plants
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.api.drop
|
||||
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
@@ -40,17 +41,23 @@ interface DropEntry {
|
||||
* to be dropped.
|
||||
*/
|
||||
val percentage: Float
|
||||
|
||||
/**
|
||||
* The drop's quantity when doing selection from the [DropTable]. See the drop table documentation for more on how
|
||||
* this works.
|
||||
*/
|
||||
val quantity: Int
|
||||
|
||||
/**
|
||||
* The maximum number of times the item can be selected drop the [DropTable]. In most cases this will just be 1,
|
||||
* meaning that the item, once picked, cannot be picked again. A larger value will allow the same [DropEntry] from
|
||||
* appearing multiple times in a drop action.
|
||||
*/
|
||||
val maxSelectableTimes: Int
|
||||
|
||||
/** Whether this is considered a possible drop at the moment or not */
|
||||
fun canDrop(pokemon: Pokemon?): Boolean = true
|
||||
|
||||
/** The logic to use to actually drop the thing. */
|
||||
fun drop(entity: LivingEntity?, world: ServerLevel, pos: Vec3, player: ServerPlayer?)
|
||||
}
|
||||
@@ -11,11 +11,13 @@ package com.cobblemon.mod.common.api.drop
|
||||
import com.cobblemon.mod.common.api.events.CobblemonEvents.LOOT_DROPPED
|
||||
import com.cobblemon.mod.common.api.events.drops.LootDroppedEvent
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import kotlin.random.Random
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
/**
|
||||
@@ -45,9 +47,11 @@ class DropTable {
|
||||
* Gets a drop list from this table as a list of [DropEntry]. You can specify the range of drop quantity totals
|
||||
* that will be possible, or if you leave it blank it will use [DropTable.amount].
|
||||
*/
|
||||
fun getDrops(amount: IntRange = this.amount): List<DropEntry> {
|
||||
fun getDrops(amount: IntRange = this.amount, pokemon: Pokemon? = null): List<DropEntry> {
|
||||
val chosenAmount = amount.random()
|
||||
val possibleDrops = entries.filter { it.quantity <= chosenAmount }.toMutableList()
|
||||
val possibleDrops = entries.filter {
|
||||
it.quantity <= chosenAmount && it.canDrop(pokemon)
|
||||
}.toMutableList()
|
||||
|
||||
if (possibleDrops.isEmpty()) {
|
||||
return emptyList()
|
||||
@@ -87,11 +91,12 @@ class DropTable {
|
||||
world: ServerLevel,
|
||||
pos: Vec3,
|
||||
player: ServerPlayer?,
|
||||
amount: IntRange = this.amount
|
||||
amount: IntRange = this.amount,
|
||||
pokemon: Pokemon? = null,
|
||||
) {
|
||||
val drops = getDrops(amount).toMutableList()
|
||||
val heldItem = (entity as PokemonEntity).pokemon.heldItemNoCopy()
|
||||
if (!heldItem.isEmpty) entity.spawnAtLocation(heldItem.item)
|
||||
val drops = getDrops(amount, pokemon).toMutableList()
|
||||
val heldItem = (entity as PokemonEntity?)?.pokemon?.heldItemNoCopy() ?: ItemStack.EMPTY
|
||||
if (!heldItem.isEmpty) entity?.spawnAtLocation(heldItem.item)
|
||||
LOOT_DROPPED.postThen(
|
||||
event = LootDroppedEvent(this, player, entity, drops),
|
||||
ifSucceeded = { it.drops.forEach { it.drop(entity, world, pos, player) } }
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.api.drop
|
||||
|
||||
import com.cobblemon.mod.common.api.pokemon.evolution.requirement.EvolutionRequirement
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
|
||||
class EvolutionItemDropEntry : ItemDropEntry() {
|
||||
val requirements: MutableSet<EvolutionRequirement> = mutableSetOf()
|
||||
|
||||
override fun canDrop(pokemon: Pokemon?): Boolean = pokemon != null && requirements.all { it.check(pokemon) }
|
||||
}
|
||||
+4
-6
@@ -18,19 +18,17 @@ import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.entity.LivingEntity
|
||||
|
||||
data class PokemonScannedEvent(val player: ServerPlayer, val scannedPokemonEntityData: PokedexEntityData, val scannedEntity: ScannableEntity) {
|
||||
val pokedexEntityData: PokedexEntityData
|
||||
get() = scannedPokemonEntityData
|
||||
|
||||
val isOwned: Boolean
|
||||
get() = scannedPokemonEntityData.ownerUUID == player.uuid
|
||||
get() = scannedPokemonEntityData.pokemon.getOwnerUUID() == player.uuid
|
||||
|
||||
val context = mutableMapOf(
|
||||
"player" to player.asMoLangValue(),
|
||||
"pokemon" to scannedPokemonEntityData.struct,
|
||||
"pokemon" to scannedPokemonEntityData.pokemon.struct,
|
||||
"disguise" to (scannedPokemonEntityData.disguise?.struct ?: DoubleValue.ZERO),
|
||||
"entity" to {
|
||||
when (scannedEntity) {
|
||||
is LivingEntity -> scannedEntity.asMostSpecificMoLangValue()
|
||||
else -> DoubleValue(0.0)
|
||||
else -> DoubleValue.ZERO
|
||||
}
|
||||
},
|
||||
)
|
||||
|
||||
+5
-7
@@ -17,16 +17,14 @@ import com.cobblemon.mod.common.api.pokedex.AbstractPokedexManager
|
||||
import com.cobblemon.mod.common.api.pokedex.FormDexRecord
|
||||
import com.cobblemon.mod.common.api.pokedex.PokedexEntryProgress
|
||||
import com.cobblemon.mod.common.pokedex.scanner.PokedexEntityData
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import com.cobblemon.mod.common.util.getPlayer
|
||||
import com.mojang.datafixers.util.Either
|
||||
import java.util.UUID
|
||||
|
||||
/**
|
||||
* Event that fires when a Pokémon's information is gained or updated in the Pokédex.
|
||||
*/
|
||||
sealed interface PokedexDataChangedEvent {
|
||||
val dataSource: Either<PokedexEntityData, Pokemon>
|
||||
val dataSource: PokedexEntityData
|
||||
val knowledge: PokedexEntryProgress
|
||||
val playerUUID: UUID
|
||||
val record: FormDexRecord
|
||||
@@ -37,22 +35,22 @@ sealed interface PokedexDataChangedEvent {
|
||||
fun getContext(): MutableMap<String, MoValue> {
|
||||
return mutableMapOf(
|
||||
"player" to (playerUUID.getPlayer()?.asMoLangValue() ?: DoubleValue.ZERO),
|
||||
"pokemon" to dataSource.map({ DoubleValue.ZERO }, { it.struct }),
|
||||
"data" to dataSource.map({ it.struct }, { DoubleValue.ZERO }),
|
||||
"pokemon" to dataSource.pokemon.struct,
|
||||
"disguise" to (dataSource.disguise?.struct ?: DoubleValue.ZERO),
|
||||
"knowledge" to StringValue(knowledge.name.lowercase()),
|
||||
"pokedex" to pokedexManager.struct
|
||||
)
|
||||
}
|
||||
|
||||
class Pre(
|
||||
override val dataSource: Either<PokedexEntityData, Pokemon>,
|
||||
override val dataSource: PokedexEntityData,
|
||||
override val knowledge: PokedexEntryProgress,
|
||||
override val playerUUID: UUID,
|
||||
override val record: FormDexRecord
|
||||
) : PokedexDataChangedEvent, Cancelable()
|
||||
|
||||
class Post(
|
||||
override val dataSource: Either<PokedexEntityData, Pokemon>,
|
||||
override val dataSource: PokedexEntityData,
|
||||
override val knowledge: PokedexEntryProgress,
|
||||
override val playerUUID: UUID,
|
||||
override val record: FormDexRecord
|
||||
|
||||
@@ -54,7 +54,15 @@ class BenchedMoves : Iterable<BenchedMove> {
|
||||
}
|
||||
}
|
||||
|
||||
fun add(benchedMove: BenchedMove) = doThenEmit { benchedMoves.add(benchedMove) }
|
||||
fun add(benchedMove: BenchedMove): Boolean {
|
||||
if (any { it.moveTemplate == benchedMove.moveTemplate }) {
|
||||
return false
|
||||
}
|
||||
|
||||
doThenEmit { benchedMoves.add(benchedMove) }
|
||||
return true
|
||||
}
|
||||
|
||||
fun addAll(benchedMoves: Iterable<BenchedMove>) = doThenEmit { this.benchedMoves.addAll(benchedMoves) }
|
||||
fun clear() = doThenEmit { benchedMoves.clear() }
|
||||
fun remove(benchedMove: BenchedMove) = doThenEmit { benchedMoves.remove(benchedMove) }
|
||||
|
||||
@@ -134,18 +134,21 @@ class MoveSet : Iterable<Move> {
|
||||
return json
|
||||
}
|
||||
|
||||
fun add(move: Move) {
|
||||
fun add(move: Move): Boolean {
|
||||
if (any { it.template == move.template }) {
|
||||
return
|
||||
return false
|
||||
}
|
||||
|
||||
for (i in 0 until MOVE_COUNT) {
|
||||
if (moves[i] == null) {
|
||||
moves[i] = move
|
||||
move.observable.subscribe { this.update() }
|
||||
update()
|
||||
return
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
fun update() {
|
||||
|
||||
+4
-1
@@ -42,7 +42,10 @@ class BaseStatModifier(
|
||||
|
||||
override fun behavior(thrower: LivingEntity, pokemon: Pokemon): CatchRateModifier.Behavior = CatchRateModifier.Behavior.MULTIPLY
|
||||
|
||||
override fun isValid(thrower: LivingEntity, pokemon: Pokemon): Boolean = pokemon.form.baseStats[this.stat] != null
|
||||
override fun isValid(thrower: LivingEntity, pokemon: Pokemon): Boolean {
|
||||
val valStat = pokemon.form.baseStats[this.stat] ?: return false
|
||||
return comparator(valStat)
|
||||
}
|
||||
|
||||
override fun modifyCatchRate(currentCatchRate: Float, thrower: LivingEntity, pokemon: Pokemon): Float = this.behavior(thrower, pokemon).mutator(currentCatchRate, this.value(thrower, pokemon))
|
||||
|
||||
|
||||
+9
-3
@@ -96,15 +96,21 @@ abstract class AbstractPokedexManager {
|
||||
}
|
||||
|
||||
fun getNewInformation(pokedexEntityData: PokedexEntityData): PokedexLearnedInformation {
|
||||
val speciesRecord = getSpeciesRecord(pokedexEntityData.species.resourceIdentifier)
|
||||
val speciesRecord = getSpeciesRecord(pokedexEntityData.getApparentSpecies().resourceIdentifier)
|
||||
if (speciesRecord == null || speciesRecord.getKnowledge() == PokedexEntryProgress.NONE) {
|
||||
return PokedexLearnedInformation.SPECIES
|
||||
}
|
||||
val formRecord = speciesRecord.getFormRecord(pokedexEntityData.form.name)
|
||||
val formRecord = speciesRecord.getFormRecord(pokedexEntityData.getApparentForm().name)
|
||||
if (formRecord == null || formRecord.knowledge == PokedexEntryProgress.NONE) {
|
||||
return PokedexLearnedInformation.FORM
|
||||
}
|
||||
if (pokedexEntityData.aspects.any{ !speciesRecord.hasAspect(it) } || pokedexEntityData.gender !in formRecord.getGenders() || !formRecord.hasSeenShinyState(pokedexEntityData.shiny)) {
|
||||
|
||||
// Can't update aspects on a disguise
|
||||
if (pokedexEntityData.disguise != null) {
|
||||
return PokedexLearnedInformation.NONE
|
||||
}
|
||||
|
||||
if (pokedexEntityData.pokemon.aspects.any { !speciesRecord.hasAspect(it) } || pokedexEntityData.pokemon.gender !in formRecord.getGenders() || !formRecord.hasSeenShinyState(pokedexEntityData.pokemon.shiny)) {
|
||||
return PokedexLearnedInformation.VARIATION
|
||||
}
|
||||
return PokedexLearnedInformation.NONE
|
||||
|
||||
@@ -89,21 +89,15 @@ class FormDexRecord {
|
||||
it.knowledge = knowledge
|
||||
}
|
||||
|
||||
fun encountered(pokemon: Pokemon) {
|
||||
if (wouldBeDifferent(pokemon, PokedexEntryProgress.ENCOUNTERED)) {
|
||||
addInformation(pokemon, PokedexEntryProgress.ENCOUNTERED)
|
||||
}
|
||||
}
|
||||
|
||||
fun encountered(pokedexEntityData: PokedexEntityData) {
|
||||
if (wouldBeDifferent(pokedexEntityData, PokedexEntryProgress.ENCOUNTERED)) {
|
||||
addInformation(pokedexEntityData, PokedexEntryProgress.ENCOUNTERED)
|
||||
}
|
||||
}
|
||||
|
||||
fun caught(pokemon: Pokemon) {
|
||||
if (wouldBeDifferent(pokemon, PokedexEntryProgress.CAUGHT)) {
|
||||
addInformation(pokemon, PokedexEntryProgress.CAUGHT)
|
||||
fun caught(pokedexEntityData: PokedexEntityData) {
|
||||
if (wouldBeDifferent(pokedexEntityData, PokedexEntryProgress.CAUGHT)) {
|
||||
addInformation(pokedexEntityData, PokedexEntryProgress.CAUGHT)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,47 +119,18 @@ class FormDexRecord {
|
||||
speciesDexRecord.onFormRecordUpdated(this)
|
||||
}
|
||||
|
||||
private fun addInformation(pokemon: Pokemon, knowledge: PokedexEntryProgress) {
|
||||
(speciesDexRecord.pokedexManager as? PokedexManager)?.let { pokedexManager ->
|
||||
CobblemonEvents.POKEDEX_DATA_CHANGED_PRE.postThen(
|
||||
PokedexDataChangedEvent.Pre(
|
||||
Either.right(pokemon),
|
||||
knowledge,
|
||||
pokedexManager.uuid,
|
||||
this
|
||||
),
|
||||
ifSucceeded = {
|
||||
genders.add(pokemon.gender)
|
||||
seenShinyStates.add(if (pokemon.shiny) "shiny" else "normal")
|
||||
if (knowledge.ordinal > this.knowledge.ordinal) {
|
||||
this.knowledge = knowledge
|
||||
}
|
||||
speciesDexRecord.addInformation(pokemon, knowledge)
|
||||
speciesDexRecord.onFormRecordUpdated(this)
|
||||
CobblemonEvents.POKEDEX_DATA_CHANGED_POST.post(
|
||||
PokedexDataChangedEvent.Post(
|
||||
Either.right(pokemon),
|
||||
knowledge,
|
||||
pokedexManager.uuid,
|
||||
this
|
||||
)
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private fun addInformation(pokedexEntityData: PokedexEntityData, knowledge: PokedexEntryProgress) {
|
||||
(speciesDexRecord.pokedexManager as? PokedexManager)?.let { pokedexManager ->
|
||||
CobblemonEvents.POKEDEX_DATA_CHANGED_PRE.postThen(
|
||||
PokedexDataChangedEvent.Pre(
|
||||
Either.left(pokedexEntityData),
|
||||
knowledge,
|
||||
pokedexManager.uuid,
|
||||
this
|
||||
pokedexEntityData,
|
||||
knowledge,
|
||||
pokedexManager.uuid,
|
||||
this
|
||||
),
|
||||
ifSucceeded = {
|
||||
genders.add(pokedexEntityData.gender)
|
||||
seenShinyStates.add(if (pokedexEntityData.shiny) "shiny" else "normal")
|
||||
genders.add(pokedexEntityData.pokemon.gender)
|
||||
seenShinyStates.add(if (pokedexEntityData.pokemon.shiny) "shiny" else "normal")
|
||||
if (knowledge.ordinal > this.knowledge.ordinal) {
|
||||
this.knowledge = knowledge
|
||||
}
|
||||
@@ -173,10 +138,10 @@ class FormDexRecord {
|
||||
speciesDexRecord.onFormRecordUpdated(this)
|
||||
CobblemonEvents.POKEDEX_DATA_CHANGED_POST.post(
|
||||
PokedexDataChangedEvent.Post(
|
||||
Either.left(pokedexEntityData),
|
||||
knowledge,
|
||||
pokedexManager.uuid,
|
||||
this
|
||||
pokedexEntityData,
|
||||
knowledge,
|
||||
pokedexManager.uuid,
|
||||
this
|
||||
)
|
||||
)
|
||||
}
|
||||
@@ -184,19 +149,10 @@ class FormDexRecord {
|
||||
}
|
||||
}
|
||||
|
||||
/** Returns whether the given [Pokemon] and [knowledge] would add new information to the Pokédex.*/
|
||||
fun wouldBeDifferent(pokemon: Pokemon, knowledge: PokedexEntryProgress): Boolean {
|
||||
return pokemon.gender !in genders
|
||||
|| (pokemon.shiny && "shiny" !in seenShinyStates)
|
||||
|| (!pokemon.shiny && "normal" !in seenShinyStates)
|
||||
|| knowledge.ordinal > this.knowledge.ordinal
|
||||
|| speciesDexRecord.wouldBeDifferent(pokemon)
|
||||
}
|
||||
|
||||
fun wouldBeDifferent(pokedexEntityData: PokedexEntityData, knowledge: PokedexEntryProgress): Boolean {
|
||||
return pokedexEntityData.gender !in genders
|
||||
|| (pokedexEntityData.shiny && "shiny" !in seenShinyStates)
|
||||
|| (!pokedexEntityData.shiny && "normal" !in seenShinyStates)
|
||||
return pokedexEntityData.pokemon.gender !in genders
|
||||
|| (pokedexEntityData.pokemon.shiny && "shiny" !in seenShinyStates)
|
||||
|| (!pokedexEntityData.pokemon.shiny && "normal" !in seenShinyStates)
|
||||
|| knowledge.ordinal > this.knowledge.ordinal
|
||||
|| speciesDexRecord.wouldBeDifferent(pokedexEntityData)
|
||||
}
|
||||
|
||||
@@ -30,19 +30,19 @@ class PokedexManager(
|
||||
fun encounter(pokemon: Pokemon) {
|
||||
val speciesId = pokemon.species.resourceIdentifier
|
||||
val formName = pokemon.form.name
|
||||
getOrCreateSpeciesRecord(speciesId).getOrCreateFormRecord(formName).encountered(pokemon)
|
||||
getOrCreateSpeciesRecord(speciesId).getOrCreateFormRecord(formName).encountered(PokedexEntityData(pokemon = pokemon, disguise = null))
|
||||
}
|
||||
|
||||
fun encounter(pokedexEntityData: PokedexEntityData) {
|
||||
val speciesId = pokedexEntityData.species.resourceIdentifier
|
||||
val formName = pokedexEntityData.form.name
|
||||
val speciesId = pokedexEntityData.getApparentSpecies().resourceIdentifier
|
||||
val formName = pokedexEntityData.getApparentForm().name
|
||||
getOrCreateSpeciesRecord(speciesId).getOrCreateFormRecord(formName).encountered(pokedexEntityData)
|
||||
}
|
||||
|
||||
fun catch(pokemon: Pokemon) {
|
||||
val speciesId = pokemon.species.resourceIdentifier
|
||||
val formName = pokemon.form.name
|
||||
getOrCreateSpeciesRecord(speciesId).getOrCreateFormRecord(formName).caught(pokemon)
|
||||
getOrCreateSpeciesRecord(speciesId).getOrCreateFormRecord(formName).caught(PokedexEntityData(pokemon = pokemon, disguise = null))
|
||||
}
|
||||
|
||||
override fun markDirty() {
|
||||
|
||||
@@ -97,7 +97,7 @@ class SpeciesDexRecord {
|
||||
}
|
||||
|
||||
fun addInformation(pokedexEntityData: PokedexEntityData, knowledge: PokedexEntryProgress) {
|
||||
aspects.addAll(pokedexEntityData.aspects)
|
||||
aspects.addAll(pokedexEntityData.pokemon.aspects)
|
||||
}
|
||||
|
||||
fun addAspects(addedAspects: Set<String>) {
|
||||
@@ -107,7 +107,7 @@ class SpeciesDexRecord {
|
||||
/** Returns true if the given Pokémon contains new information. Internal because it's only to be called from [FormDexRecord.wouldBeDifferent]. */
|
||||
internal fun wouldBeDifferent(pokemon: Pokemon) = pokemon.aspects.any { it !in aspects }
|
||||
|
||||
internal fun wouldBeDifferent(pokedexEntityData: PokedexEntityData) = pokedexEntityData.aspects.any { it !in aspects }
|
||||
internal fun wouldBeDifferent(pokedexEntityData: PokedexEntityData) = pokedexEntityData.pokemon.aspects.any { it !in aspects }
|
||||
|
||||
fun getOrCreateFormRecord(formName: String): FormDexRecord {
|
||||
return formRecords.getOrPut(formName.lowercase()) {
|
||||
|
||||
@@ -468,6 +468,10 @@ open class PokemonProperties {
|
||||
return this.commonMatches(pokemonEntity.pokemon) && this.customProperties.none { !it.matches(pokemonEntity) }
|
||||
}
|
||||
|
||||
fun matches(properties: PokemonProperties): Boolean {
|
||||
return properties.asString() == this.asString()
|
||||
}
|
||||
|
||||
private fun commonMatches(pokemon: Pokemon): Boolean {
|
||||
level?.takeIf { it != pokemon.level }?.let { return false }
|
||||
shiny?.takeIf { it != pokemon.shiny }?.let { return false }
|
||||
|
||||
+33
-10
@@ -13,6 +13,7 @@ import com.cobblemon.mod.common.CobblemonItems
|
||||
import com.cobblemon.mod.common.CobblemonSounds
|
||||
import com.cobblemon.mod.common.advancement.CobblemonCriteria
|
||||
import com.cobblemon.mod.common.advancement.criterion.EvolvePokemonContext
|
||||
import com.cobblemon.mod.common.api.drop.DropTable
|
||||
import com.cobblemon.mod.common.api.events.CobblemonEvents
|
||||
import com.cobblemon.mod.common.api.events.pokemon.PokemonGainedEvent
|
||||
import com.cobblemon.mod.common.api.events.pokemon.evolution.EvolutionCompleteEvent
|
||||
@@ -32,9 +33,8 @@ import com.cobblemon.mod.common.pokemon.evolution.variants.LevelUpEvolution
|
||||
import com.cobblemon.mod.common.pokemon.evolution.variants.TradeEvolution
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import com.cobblemon.mod.common.util.party
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.core.registries.BuiltInRegistries
|
||||
import net.minecraft.network.protocol.game.ClientboundSoundPacket
|
||||
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.sounds.SoundSource
|
||||
import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.item.ItemStack
|
||||
@@ -80,6 +80,11 @@ interface Evolution : EvolutionLike {
|
||||
*/
|
||||
val learnableMoves: MutableSet<MoveTemplate>
|
||||
|
||||
/**
|
||||
* The items that will drop once the evolution finishes.
|
||||
*/
|
||||
val drops: DropTable
|
||||
|
||||
/**
|
||||
* Checks if the given [Pokemon] passes all the conditions and is ready to evolve.
|
||||
*
|
||||
@@ -198,19 +203,37 @@ interface Evolution : EvolutionLike {
|
||||
|
||||
val movesToLearn = previousSpeciesLearnableMoves + this.learnableMoves
|
||||
movesToLearn.forEach { move ->
|
||||
if (pokemon.moveSet.hasSpace()) {
|
||||
pokemon.moveSet.add(move.create())
|
||||
} else {
|
||||
pokemon.benchedMoves.add(BenchedMove(move, 0))
|
||||
}
|
||||
val couldAddMove =
|
||||
if (pokemon.moveSet.hasSpace()) {
|
||||
pokemon.moveSet.add(move.create())
|
||||
} else {
|
||||
pokemon.benchedMoves.add(BenchedMove(move, 0))
|
||||
}
|
||||
|
||||
pokemon.getOwnerPlayer()?.sendSystemMessage(lang("experience.learned_move", pokemon.getDisplayName(), move.displayName))
|
||||
val previousSpeciesKnewMove = previousSpeciesLearnableMoves.any { move.name == it.name }
|
||||
|
||||
if (couldAddMove && !previousSpeciesKnewMove) {
|
||||
pokemon.getOwnerPlayer()?.sendSystemMessage(lang("experience.learned_move", pokemon.getDisplayName(), move.displayName))
|
||||
}
|
||||
}
|
||||
|
||||
// we want to instantly tick for example you might only evolve your Bulbasaur at level 34 so Venusaur should be immediately available
|
||||
pokemon.evolutions.filterIsInstance<PassiveEvolution>().forEach { evolution -> evolution.attemptEvolution(pokemon) }
|
||||
pokemon.lockedEvolutions.filterIsInstance<PassiveEvolution>().forEach { evolution -> evolution.attemptEvolution(pokemon) }
|
||||
|
||||
this.shed(pokemon)
|
||||
|
||||
val ownerPlayer = pokemon.getOwnerPlayer()
|
||||
if (ownerPlayer != null && ownerPlayer.level().gameRules.getBoolean(CobblemonGameRules.DO_POKEMON_LOOT)) {
|
||||
drops.drop(
|
||||
pokemon.entity,
|
||||
ownerPlayer.level() as ServerLevel,
|
||||
pokemon.entity?.position() ?: ownerPlayer.position(),
|
||||
ownerPlayer,
|
||||
pokemon = pokemon
|
||||
)
|
||||
}
|
||||
|
||||
CobblemonEvents.EVOLUTION_COMPLETE.post(EvolutionCompleteEvent(pokemon, this))
|
||||
CobblemonEvents.POKEMON_GAINED.post(PokemonGainedEvent(pokemon.getOwnerUUID()!!, pokemon))
|
||||
}
|
||||
@@ -218,4 +241,4 @@ interface Evolution : EvolutionLike {
|
||||
fun applyTo(pokemon: Pokemon) {
|
||||
result.apply(pokemon)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+54
-26
@@ -21,6 +21,12 @@ object CobblemonPokemonLabels {
|
||||
*/
|
||||
const val LEGENDARY = "legendary"
|
||||
|
||||
/**
|
||||
* Represents a Pokémon who is typically banned or has restricted usage in competitive sanctions.
|
||||
* For example usage see this [VGC](https://www.pokemon.com/us/pokemon-news/trainers-can-once-again-use-a-restricted-pokemon-in-ranked-battles-series-10-starting-august-1-2021) page.
|
||||
*/
|
||||
const val RESTRICTED = "restricted"
|
||||
|
||||
/**
|
||||
* Represents a mythical Pokémon.
|
||||
* In Cobblemon terms they do not exist since we do not share the concept of timed event only Pokémon but the official ones are still tagged.
|
||||
@@ -28,14 +34,21 @@ object CobblemonPokemonLabels {
|
||||
const val MYTHICAL = "mythical"
|
||||
|
||||
/**
|
||||
* Represents Pokémon that originate from Ultra Space.
|
||||
* Represents Pokémon that receive a boosted catch rate from the Beast Ball. (Due to Beast Boost)
|
||||
* Does not include [thematically related](https://bulbapedia.bulbagarden.net/wiki/Ultra_Beast#Related_Pok%C3%A9mon) beasts.
|
||||
*/
|
||||
const val ULTRA_BEAST = "ultra_beast"
|
||||
|
||||
/**
|
||||
* Represents the pseudo legendary Pokémon.
|
||||
* Represents a Pokémon whose family could be derived from resurrecting a fossil.
|
||||
*/
|
||||
const val PSEUDO_LEGENDARY = "pseudo_legendary"
|
||||
const val FOSSIL = "fossil"
|
||||
|
||||
/**
|
||||
* Represents the "pseudo-legendary" Pokémon. (Slow-rate three-stage lines with a base stat total of 600)
|
||||
* Term reference on this [Pokémon Center](https://www.pokemoncenter.com/search/powerhouse) page.
|
||||
*/
|
||||
const val POWERHOUSE = "powerhouse"
|
||||
|
||||
/**
|
||||
* Represents a baby Pokémon, this is not just a first stage Pokémon species, it is also unable to breed.
|
||||
@@ -52,52 +65,55 @@ object CobblemonPokemonLabels {
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
*/
|
||||
const val REGIONAL_OF_KANTO = "kanto_regional"
|
||||
const val KANTONIAN_FORM = "kantonian_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
* Source for adjectival form: [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Johto#Trivia)
|
||||
*/
|
||||
const val JOHTONIAN_FORM = "johtonian_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
* Source for adjectival form:[Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Hoenn#Trivia)
|
||||
*/
|
||||
const val HOENNIAN_FORM = "hoennian_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
* Source for adjectival form:[Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Sinnoh#Trivia)
|
||||
*/
|
||||
const val SINNOHAN_FORM = "sinnohan_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
*/
|
||||
const val REGIONAL_OF_JOHTO = "johto_regional"
|
||||
const val UNOVAN_FORM = "unovan_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
*/
|
||||
const val REGIONAL_OF_HOENN = "hoenn_regional"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
*/
|
||||
const val REGIONAL_OF_SINNOH = "sinnoh_regional"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
*/
|
||||
const val REGIONAL_OF_UNOVA = "unova_regional"
|
||||
|
||||
/**
|
||||
* See [REGIONAL], this has no official regionals but it consists of the "base" form that comes from the region.
|
||||
*/
|
||||
const val REGIONAL_OF_KALOS = "kalos_regional"
|
||||
const val KALOSIAN_FORM = "kalosian_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL] and this [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Regional_form#Alolan_Form) page.
|
||||
*/
|
||||
const val REGIONAL_OF_ALOLA = "alola_regional"
|
||||
const val ALOLAN_FORM = "alolan_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL] and this [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Regional_form#Galarian_Form) page.
|
||||
*/
|
||||
const val REGIONAL_OF_GALAR = "galar_regional"
|
||||
const val GALARIAN_FORM = "galarian_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL] and this [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Regional_form#Hisuian_Form) page.
|
||||
*/
|
||||
const val REGIONAL_OF_HISUI = "hisui_regional"
|
||||
const val HISUIAN_FORM = "hisuian_form"
|
||||
|
||||
/**
|
||||
* See [REGIONAL] and this [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Regional_form#Paldean_Form) page.
|
||||
*/
|
||||
const val REGIONAL_OF_PALDEA = "paldea_regional"
|
||||
const val PALDEAN_FORM = "paldean_form"
|
||||
|
||||
/**
|
||||
* Represents a mega evolution.
|
||||
@@ -124,7 +140,7 @@ object CobblemonPokemonLabels {
|
||||
const val TOTEM = "totem"
|
||||
|
||||
/**
|
||||
* Represents a Paradox species.
|
||||
* Represents Pokémon that trigger the Booster Energy item (due to Protosynthesis/Quark Drive)
|
||||
* For more information see the [Bulbapedia](https://bulbapedia.bulbagarden.net/wiki/Paradox_Pok%C3%A9mon) page.
|
||||
*/
|
||||
const val PARADOX = "paradox"
|
||||
@@ -171,12 +187,24 @@ object CobblemonPokemonLabels {
|
||||
*/
|
||||
const val GENERATION_7 = "gen7"
|
||||
|
||||
/**
|
||||
* The "official" designation for Pokémon from Gen 7 (Unknown) and not the Alola region
|
||||
* This may also include forms of Pokémon that had been previously introduced
|
||||
*/
|
||||
const val GENERATION_7B = "gen7b"
|
||||
|
||||
/**
|
||||
* Pokémon from the national Pokédex of 810 to 905
|
||||
* This may also include forms of Pokémon that had been previously introduced
|
||||
*/
|
||||
const val GENERATION_8 = "gen8"
|
||||
|
||||
/**
|
||||
* The "official" designation for Pokémon from Gen 8 (Hisui) and not the Galar region
|
||||
* This may also include forms of Pokémon that had been previously introduced
|
||||
*/
|
||||
const val GENERATION_8A = "gen8a"
|
||||
|
||||
/**
|
||||
* Pokémon from the national Pokédex from 906 to 1008
|
||||
* This may also include forms of Pokémon that had been previously introduced
|
||||
|
||||
@@ -53,7 +53,7 @@ enum class Stats(override val identifier: ResourceLocation, override val display
|
||||
fun getStat(statKey: String) = when(statKey.lowercase()) {
|
||||
"hp" -> HP
|
||||
"atk", "attack" -> ATTACK // Hyper Cutter states the full stat name "Attack"
|
||||
"def", "defense" -> DEFENCE // Big Pecks states the full stat name "Defense"
|
||||
"def", "defense", "defence" -> DEFENCE // Big Pecks states the full stat name "Defense"
|
||||
"spa" -> SPECIAL_ATTACK
|
||||
"spd" -> SPECIAL_DEFENCE
|
||||
"spe", "speed" -> SPEED
|
||||
|
||||
+14
-14
@@ -27,15 +27,15 @@ import net.minecraft.world.entity.player.Player
|
||||
* @since February 21, 2024
|
||||
*/
|
||||
|
||||
class PlayerInstancedDataStoreManager {
|
||||
open class PlayerInstancedDataStoreManager {
|
||||
val factories = mutableMapOf<PlayerInstancedDataStoreType, PlayerInstancedDataFactory<*>>()
|
||||
val saveTasks = mutableMapOf<PlayerInstancedDataStoreType, ScheduledTask>()
|
||||
fun setFactory(factory: PlayerInstancedDataFactory<*>, dataType: PlayerInstancedDataStoreType) {
|
||||
open fun setFactory(factory: PlayerInstancedDataFactory<*>, dataType: PlayerInstancedDataStoreType) {
|
||||
factories[dataType] = factory
|
||||
}
|
||||
|
||||
|
||||
fun setup(server: MinecraftServer) {
|
||||
open fun setup(server: MinecraftServer) {
|
||||
factories.values.forEach {
|
||||
it.setup(server)
|
||||
}
|
||||
@@ -57,62 +57,62 @@ class PlayerInstancedDataStoreManager {
|
||||
.build()
|
||||
}
|
||||
|
||||
fun get(playerId: UUID, dataType: PlayerInstancedDataStoreType): InstancedPlayerData {
|
||||
open fun get(playerId: UUID, dataType: PlayerInstancedDataStoreType): InstancedPlayerData {
|
||||
if (!factories.contains(dataType)) {
|
||||
throw UnsupportedOperationException("No factory registered for $dataType")
|
||||
}
|
||||
return factories[dataType]!!.getForPlayer(playerId)
|
||||
}
|
||||
|
||||
fun get(player: Player, dataType: PlayerInstancedDataStoreType): InstancedPlayerData {
|
||||
open fun get(player: Player, dataType: PlayerInstancedDataStoreType): InstancedPlayerData {
|
||||
return get(player.uuid, dataType)
|
||||
}
|
||||
|
||||
fun saveAllOfOneType(dataType: PlayerInstancedDataStoreType) {
|
||||
open fun saveAllOfOneType(dataType: PlayerInstancedDataStoreType) {
|
||||
if (!factories.contains(dataType)) {
|
||||
throw UnsupportedOperationException("No factory registered for $dataType")
|
||||
}
|
||||
return factories[dataType]!!.saveAll()
|
||||
}
|
||||
|
||||
fun saveSingle(playerData: InstancedPlayerData, dataType: PlayerInstancedDataStoreType) {
|
||||
open fun saveSingle(playerData: InstancedPlayerData, dataType: PlayerInstancedDataStoreType) {
|
||||
if (!factories.contains(dataType)) {
|
||||
throw UnsupportedOperationException("No factory registered for $dataType")
|
||||
}
|
||||
return factories[dataType]!!.saveSingle(playerData.uuid)
|
||||
}
|
||||
|
||||
fun onPlayerDisconnect(player: ServerPlayer) {
|
||||
open fun onPlayerDisconnect(player: ServerPlayer) {
|
||||
factories.values.forEach {
|
||||
it.onPlayerDisconnect(player)
|
||||
}
|
||||
}
|
||||
|
||||
fun syncAllToPlayer(player: ServerPlayer) {
|
||||
open fun syncAllToPlayer(player: ServerPlayer) {
|
||||
factories.values.forEach {
|
||||
it.sendToPlayer(player)
|
||||
}
|
||||
}
|
||||
|
||||
fun saveAllStores() {
|
||||
open fun saveAllStores() {
|
||||
factories.values.forEach {
|
||||
it.saveAll()
|
||||
}
|
||||
}
|
||||
|
||||
fun getGenericData(player: ServerPlayer): GeneralPlayerData {
|
||||
open fun getGenericData(player: ServerPlayer): GeneralPlayerData {
|
||||
return getGenericData(player.uuid)
|
||||
}
|
||||
|
||||
fun getGenericData(playerId: UUID): GeneralPlayerData {
|
||||
open fun getGenericData(playerId: UUID): GeneralPlayerData {
|
||||
return get(playerId, PlayerInstancedDataStoreTypes.GENERAL) as GeneralPlayerData
|
||||
}
|
||||
|
||||
fun getPokedexData(player: ServerPlayer): PokedexManager {
|
||||
open fun getPokedexData(player: ServerPlayer): PokedexManager {
|
||||
return getPokedexData(player.uuid)
|
||||
}
|
||||
|
||||
fun getPokedexData(playerId: UUID): PokedexManager {
|
||||
open fun getPokedexData(playerId: UUID): PokedexManager {
|
||||
return get(playerId, PlayerInstancedDataStoreTypes.POKEDEX) as PokedexManager
|
||||
}
|
||||
}
|
||||
@@ -23,30 +23,72 @@ object CobblemonBlockTags {
|
||||
|
||||
@JvmField val ALL_HANGING_SIGNS = createTag("all_hanging_signs")
|
||||
@JvmField val ALL_SIGNS = createTag("all_signs")
|
||||
@JvmField val ANCIENT_CITY_BLOCKS = createTag("ancient_city_blocks")
|
||||
@JvmField val APRICORN_LEAVES = createTag("apricorn_leaves")
|
||||
@JvmField val APRICORN_LOGS = createTag("apricorn_logs")
|
||||
@JvmField val APRICORN_SAPLINGS = createTag("apricorn_saplings")
|
||||
@JvmField val APRICORNS = createTag("apricorns")
|
||||
@JvmField val BERRY_WILD_SOIL = createTag("berry_wild_soil")
|
||||
@JvmField val BERRY_SOIL = createTag("berry_soil")
|
||||
@JvmField val BERRIES = createTag("berries")
|
||||
@JvmField val BERRY_REPLACEABLE = createTag("berry_replaceable")
|
||||
@JvmField val BERRY_SOIL = createTag("berry_soil")
|
||||
@JvmField val BERRY_WILD_SOIL = createTag("berry_wild_soil")
|
||||
@JvmField val BLACK_TUMBLESTONE_BRICKS = createTag("black_tumblestone_bricks")
|
||||
@JvmField val BLACK_TUMBLESTONES = createTag("black_tumblestones")
|
||||
@JvmField val BLUE_FLOWERS = createTag("blue_flowers")
|
||||
@JvmField val CEILING_HANGING_SIGNS = createTag("ceiling_hanging_signs")
|
||||
@JvmField val CROPS = createTag("crops")
|
||||
@JvmField val DAWN_STONE_ORES = createTag("dawn_stone_ores")
|
||||
@JvmField val DESERT_PYRAMID_BLOCKS = createTag("desert_pyramid_blocks")
|
||||
@JvmField val DRIPSTONE_GROWABLE = createTag("dripstone_growable")
|
||||
@JvmField val DRIPSTONE_REPLACEABLES = createTag("dripstone_replaceables")
|
||||
@JvmField val DUSK_STONE_ORES = createTag("dusk_stone_ores")
|
||||
@JvmField val END_CITY_BLOCKS = createTag("end_city_blocks")
|
||||
@JvmField val EVOLUTION_STONE_BLOCKS = createTag("evolution_stone_blocks")
|
||||
@JvmField val FIRE_STONE_ORES = createTag("fire_stone_ores")
|
||||
@JvmField val FLOWERS = createTag("flowers")
|
||||
@JvmField val FOSSIL_MACHINE_PARTS = createTag("fossil_machine_parts")
|
||||
@JvmField val GEMSTONES = createTag("gemstones")
|
||||
@JvmField val GILDED_CHESTS = createTag("gilded_chests")
|
||||
@JvmField val GLAZED_TERRACOTTA_BLOCKS = createTag("glazed_terracotta_blocks")
|
||||
@JvmField val ICE_STONE_ORES = createTag("ice_stone_ores")
|
||||
@JvmField val JUNGLE_PYRAMID_BLOCKS = createTag("jungle_pyramid_blocks")
|
||||
@JvmField val LEAF_STONE_ORES = createTag("leaf_stone_ores")
|
||||
@JvmField val MACHINES = createTag("machines")
|
||||
@JvmField val MANSION_BLOCKS = createTag("mansion_blocks")
|
||||
@JvmField val MEDICINAL_LEEK_PLANTABLE = createTag("medicinal_leek_plantable")
|
||||
@JvmField val MINTS = createTag("mints")
|
||||
@JvmField val ROOTS_SPREADABLE = createTag("roots_spreadable")
|
||||
@JvmField val SIGNS = createTag("signs")
|
||||
@JvmField val SMALL_FLOWERS = createTag("small_flowers")
|
||||
@JvmField val SEES_SKY = createTag("sees_sky")
|
||||
@JvmField val SNOW_BLOCK = createTag("snow_block")
|
||||
@JvmField val MOON_STONE_ORES = createTag("moon_stone_ores")
|
||||
@JvmField val NATURAL = createTag("natural")
|
||||
@JvmField val NETHER_STRUCTURE_BLOCKS = createTag("nether_structure_blocks")
|
||||
@JvmField val PINK_FLOWERS = createTag("pink_flowers")
|
||||
@JvmField val RED_FLOWERS = createTag("red_flowers")
|
||||
@JvmField val RED_TUMBLESTONE_BRICKS = createTag("red_tumblestone_bricks")
|
||||
@JvmField val RED_TUMBLESTONES = createTag("red_tumblestones")
|
||||
@JvmField val REDSTONE_BLOCKS = createTag("redstone_blocks")
|
||||
@JvmField val ROOTS = createTag("roots")
|
||||
@JvmField val ROOTS_SPREADABLE = createTag("roots_spreadable")
|
||||
@JvmField val RUINED_PORTAL_BLOCKS = createTag("ruined_portal_blocks")
|
||||
@JvmField val SEES_SKY = createTag("sees_sky")
|
||||
@JvmField val SHINY_STONE_ORES = createTag("shiny_stone_ores")
|
||||
@JvmField val SIGNS = createTag("signs")
|
||||
@JvmField val SKY_TUMBLESTONE_BRICKS = createTag("sky_tumblestone_bricks")
|
||||
@JvmField val SKY_TUMBLESTONES = createTag("sky_tumblestones")
|
||||
@JvmField val SMALL_FLOWERS = createTag("small_flowers")
|
||||
@JvmField val SNOW_BLOCK = createTag("snow_block")
|
||||
@JvmField val STANDING_SIGNS = createTag("standing_signs")
|
||||
@JvmField val SUN_STONE_ORES = createTag("sun_stone_ores")
|
||||
@JvmField val THUNDER_STONE_ORES = createTag("thunder_stone_ores")
|
||||
@JvmField val TRAIL_RUINS_BLOCKS = createTag("trail_ruins_blocks")
|
||||
@JvmField val TRASH = createTag("trash")
|
||||
@JvmField val TREES = createTag("trees")
|
||||
@JvmField val TUMBLESTONE_BRICKS = createTag("tumblestone_bricks")
|
||||
@JvmField val TUMBLESTONES = createTag("tumblestones")
|
||||
@JvmField val TUMBLESTONE_HEAT_SOURCE = createTag("tumblestone_heat_source")
|
||||
@JvmField val WALL_HANGING_SIGNS = createTag("wall_hanging_signs")
|
||||
@JvmField val WALL_SIGNS = createTag("wall_signs")
|
||||
@JvmField val WATER_STONE_ORES = createTag("water_stone_ores")
|
||||
@JvmField val WHITE_FLOWERS = createTag("white_flowers")
|
||||
@JvmField val YELLOW_FLOWERS = createTag("yellow_flowers")
|
||||
|
||||
private fun createTag(name: String) = TagKey.create(Registries.BLOCK, cobblemonResource(name))
|
||||
|
||||
|
||||
@@ -21,137 +21,108 @@ import net.minecraft.tags.TagKey
|
||||
*/
|
||||
@Suppress("unused", "HasPlatformType")
|
||||
object CobblemonItemTags {
|
||||
@JvmField
|
||||
val ANCIENT_POKE_BALLS = create("ancient_poke_balls")
|
||||
@JvmField
|
||||
val APRICORN_LOGS = create("apricorn_logs")
|
||||
@JvmField
|
||||
val APRICORN_SPROUTS = create("apricorn_sprouts")
|
||||
@JvmField
|
||||
val APRICORNS = create("apricorns")
|
||||
@JvmField
|
||||
val POKEDEX = create("pokedex")
|
||||
/**
|
||||
* This tag is only used for a Torterra aspect based easter egg evolution at the moment.
|
||||
* It simply includes the 'minecraft:azalea' and 'minecraft:flowering_azalea' items by default.
|
||||
*/
|
||||
@JvmField
|
||||
val AZALEA_TREE = create("azalea_tree")
|
||||
@JvmField
|
||||
val BERRIES = create("berries")
|
||||
@JvmField
|
||||
val BOATS = create("boats")
|
||||
@JvmField
|
||||
val COBBLEMON_SEEDS = create("cobblemon_seeds")
|
||||
/**
|
||||
* This tag is used for Fossil Machine natural materials
|
||||
*/
|
||||
@JvmField
|
||||
val COOKED_MEAT = create("cooked_meat")
|
||||
@JvmField
|
||||
val DAWN_STONE_ORES = create("dawn_stone_ores")
|
||||
@JvmField
|
||||
val DUSK_STONE_ORES = create("dusk_stone_ores")
|
||||
@JvmField
|
||||
val EVOLUTION_ITEMS = create("evolution_items")
|
||||
@JvmField
|
||||
val EVOLUTION_STONES = create("evolution_stones")
|
||||
@JvmField
|
||||
val EXPERIENCE_CANDIES = create("experience_candies")
|
||||
@JvmField
|
||||
val FIRE_STONE_ORES = create("fire_stone_ores")
|
||||
@JvmField
|
||||
val FOSSILS = create("fossils")
|
||||
@JvmField
|
||||
val HANGING_SIGNS = create("hanging_signs")
|
||||
@JvmField
|
||||
val HERBS = create("herbs")
|
||||
@JvmField
|
||||
val ICE_STONE_ORES = create("ice_stone_ores")
|
||||
@JvmField
|
||||
val LEAF_STONE_ORES = create("leaf_stone_ores")
|
||||
@JvmField
|
||||
val MINT_LEAF = create("mint_leaf")
|
||||
@JvmField
|
||||
val MINT_SEEDS = create("mint_seeds")
|
||||
@JvmField
|
||||
val MINTS = create("mints")
|
||||
@JvmField
|
||||
val MOON_STONE_ORES = create("moon_stone_ores")
|
||||
@JvmField
|
||||
val MUTATED_BERRIES = create("mutated_berries")
|
||||
@JvmField
|
||||
val PLANTS = create("plants")
|
||||
@JvmField
|
||||
val POKE_BALLS = create("poke_balls")
|
||||
@JvmField
|
||||
val PROTEIN_INGREDIENTS = create("protein_ingredients")
|
||||
@JvmField val ABILITY_CHANGERS = create("ability_changers")
|
||||
@JvmField val ANCIENT_POKE_BALLS = create("ancient_poke_balls")
|
||||
@JvmField val APPLES = create("apples")
|
||||
@JvmField val APRICORN_LOGS = create("apricorn_logs")
|
||||
@JvmField val APRICORN_POKE_BALLS = create("apricorn_poke_balls")
|
||||
@JvmField val APRICORN_SPROUTS = create("apricorn_sprouts")
|
||||
@JvmField val APRICORNS = create("apricorns")
|
||||
/** This tag is only used for a Torterra aspect based easter egg evolution at the moment.
|
||||
* It simply includes the 'minecraft:azalea' and 'minecraft:flowering_azalea' items by default. */
|
||||
@JvmField val AZALEA_TREE = create("azalea_tree")
|
||||
@JvmField val BATTLE_ITEMS = create("battle_items")
|
||||
@JvmField val BERRIES = create("berries")
|
||||
@JvmField val BLACK_TUMBLESTONE_BRICKS = create("black_tumblestone_bricks")
|
||||
@JvmField val BLACK_TUMBLESTONES = create("black_tumblestones")
|
||||
@JvmField val BOATS = create("boats")
|
||||
/** This tag is used for Fossil Machine natural materials */
|
||||
@JvmField val COOKED_MEAT = create("cooked_meat")
|
||||
@JvmField val DAWN_STONE_ORES = create("dawn_stone_ores")
|
||||
@JvmField val POTTERY_SHERDS = create("decorated_pot_sherds")
|
||||
@JvmField val DEEP_SEAS = create("deep_seas")
|
||||
@JvmField val DUSK_STONE_ORES = create("dusk_stone_ores")
|
||||
@JvmField val ETHERS = create("ethers")
|
||||
@JvmField val EVOLUTION_ITEMS = create("evolution_items")
|
||||
@JvmField val EVOLUTION_STONE_BLOCKS = create("evolution_stone_blocks")
|
||||
@JvmField val EVOLUTION_STONES = create("evolution_stones")
|
||||
@JvmField val EXPERIENCE_CANDIES = create("experience_candies")
|
||||
@JvmField val FEATHERS = create("feathers")
|
||||
@JvmField val FIRE_STONE_ORES = create("fire_stone_ores")
|
||||
@JvmField val FOSSIL_MACHINE_PARTS = create("fossil_machine_parts")
|
||||
@JvmField val FOSSILS = create("fossils")
|
||||
@JvmField val GILDED_CHESTS = create("gilded_chests")
|
||||
@JvmField val HANGING_SIGNS = create("hanging_signs")
|
||||
@JvmField val HERBS = create("herbs")
|
||||
@JvmField val ICE_STONE_ORES = create("ice_stone_ores")
|
||||
@JvmField val LEAF_STONE_ORES = create("leaf_stone_ores")
|
||||
@JvmField val MACHINES = create("machines")
|
||||
@JvmField val MINT_LEAF = create("mint_leaf")
|
||||
@JvmField val MINT_SEEDS = create("mint_seeds")
|
||||
@JvmField val MINTS = create("mints")
|
||||
@JvmField val MOON_STONE_ORES = create("moon_stone_ores")
|
||||
@JvmField val MUTATED_BERRIES = create("mutated_berries")
|
||||
@JvmField val PLANTS = create("plants")
|
||||
@JvmField val POKE_BALLS = create("poke_balls")
|
||||
@JvmField val POKE_RODS = create("poke_rods")
|
||||
@JvmField val POKEDEX = create("pokedex")
|
||||
@JvmField val POKEDEX_SCREEN = create("pokedex_screen")
|
||||
@JvmField val POTIONS = create("potions")
|
||||
@JvmField val PROTEIN_INGREDIENTS = create("protein_ingredients")
|
||||
/** See [COOKED_MEAT] */
|
||||
@JvmField
|
||||
val RAW_MEAT = create("raw_meat")
|
||||
@JvmField
|
||||
val SEEDS = create("seeds")
|
||||
@JvmField
|
||||
val SHINY_STONE_ORES = create("shiny_stone_ores")
|
||||
@JvmField
|
||||
val SIGNS = create("signs")
|
||||
@JvmField
|
||||
val SUN_STONE_ORES = create("sun_stone_ores")
|
||||
@JvmField
|
||||
val THUNDER_STONE_ORES = create("thunder_stone_ores")
|
||||
@JvmField
|
||||
val TUMBLESTONES = create("tumblestones")
|
||||
@JvmField
|
||||
val WATER_STONE_ORES = create("water_stone_ores")
|
||||
@JvmField
|
||||
val ZINC_INGREDIENTS = create("zinc_ingredients")
|
||||
@JvmField val RAW_MEAT = create("raw_meat")
|
||||
@JvmField val RED_TUMBLESTONE_BRICKS = create("red_tumblestone_bricks")
|
||||
@JvmField val RED_TUMBLESTONES = create("red_tumblestones")
|
||||
@JvmField val REMEDIES = create("remedies")
|
||||
@JvmField val RESTORES = create("restores")
|
||||
@JvmField val REVIVES = create("revives")
|
||||
@JvmField val SEEDS = create("seeds")
|
||||
@JvmField val SHINY_STONE_ORES = create("shiny_stone_ores")
|
||||
@JvmField val SIGNS = create("signs")
|
||||
@JvmField val SKY_TUMBLESTONE_BRICKS = create("sky_tumblestone_bricks")
|
||||
@JvmField val SKY_TUMBLESTONES = create("sky_tumblestones")
|
||||
@JvmField val SUN_STONE_ORES = create("sun_stone_ores")
|
||||
@JvmField val SWEETS = create("sweets")
|
||||
@JvmField val TEACUPS = create("teacups")
|
||||
@JvmField val TEAPOTS = create("teapots")
|
||||
@JvmField val THUNDER_STONE_ORES = create("thunder_stone_ores")
|
||||
@JvmField val TIER_1_POKE_BALL_MATERIALS = create("tier_1_poke_ball_materials")
|
||||
@JvmField val TIER_1_POKE_BALLS = create("tier_1_poke_balls")
|
||||
@JvmField val TIER_2_POKE_BALL_MATERIALS = create("tier_2_poke_ball_materials")
|
||||
@JvmField val TIER_2_POKE_BALLS = create("tier_2_poke_balls")
|
||||
@JvmField val TIER_3_POKE_BALL_MATERIALS = create("tier_3_poke_ball_materials")
|
||||
@JvmField val TIER_3_POKE_BALLS = create("tier_3_poke_balls")
|
||||
@JvmField val TIER_4_POKE_BALL_MATERIALS = create("tier_4_poke_ball_materials")
|
||||
@JvmField val TIER_4_POKE_BALLS = create("tier_4_poke_balls")
|
||||
@JvmField val TIER_5_POKE_BALLS = create("tier_5_poke_balls")
|
||||
@JvmField val TUMBLESTONE_BRICKS = create("tumblestone_bricks")
|
||||
@JvmField val TUMBLESTONES = create("tumblestones")
|
||||
@JvmField val TYPE_GEMS = create("type_gems")
|
||||
@JvmField val VITAMINS = create("vitamins")
|
||||
@JvmField val WATER_STONE_ORES = create("water_stone_ores")
|
||||
@JvmField val ZINC_INGREDIENTS = create("zinc_ingredients")
|
||||
|
||||
// Held Item Tags
|
||||
@JvmField
|
||||
val ANY_HELD_ITEM = create("held/is_held_item")
|
||||
@JvmField
|
||||
val EXPERIENCE_SHARE = create("held/experience_share")
|
||||
@JvmField
|
||||
val LUCKY_EGG = create("held/lucky_egg")
|
||||
@JvmField
|
||||
val DESTINY_KNOT = create("held/destiny_knot")
|
||||
@JvmField
|
||||
val EVERSTONE = create("held/everstone")
|
||||
@JvmField
|
||||
val POWER_ANKLET = create("held/power_anklet")
|
||||
@JvmField
|
||||
val POWER_BAND = create("held/power_band")
|
||||
@JvmField
|
||||
val POWER_BELT = create("held/power_belt")
|
||||
@JvmField
|
||||
val POWER_BRACER = create("held/power_bracer")
|
||||
@JvmField
|
||||
val POWER_LENS = create("held/power_lens")
|
||||
@JvmField
|
||||
val POWER_WEIGHT = create("held/power_weight")
|
||||
@JvmField
|
||||
val CONSUMED_IN_NPC_BATTLE = create("held/consumed_in_npc_battle")
|
||||
@JvmField
|
||||
val CONSUMED_IN_PVP_BATTLE = create("held/consumed_in_pvp_battle")
|
||||
@JvmField
|
||||
val CONSUMED_IN_WILD_BATTLE = create("held/consumed_in_wild_battle")
|
||||
@JvmField
|
||||
val TERRAIN_SEEDS = create("held/terrain_seeds")
|
||||
@JvmField val CONSUMED_IN_NPC_BATTLE = create("held/consumed_in_npc_battle")
|
||||
@JvmField val CONSUMED_IN_PVP_BATTLE = create("held/consumed_in_pvp_battle")
|
||||
@JvmField val CONSUMED_IN_WILD_BATTLE = create("held/consumed_in_wild_battle")
|
||||
@JvmField val DESTINY_KNOT = create("held/destiny_knot")
|
||||
@JvmField val EVERSTONE = create("held/everstone")
|
||||
@JvmField val EXPERIENCE_SHARE = create("held/experience_share")
|
||||
@JvmField val IS_FRIENDSHIP_BOOSTER = create("is_friendship_booster")
|
||||
@JvmField val ANY_HELD_ITEM = create("held/is_held_item")
|
||||
/** Tag that flags items as being able to "create" [CobblemonItems.LEFTOVERS]. */
|
||||
@JvmField val LEAVES_LEFTOVERS = create("held/leaves_leftovers")
|
||||
@JvmField val LUCKY_EGG = create("held/lucky_egg")
|
||||
@JvmField val POWER_ANKLET = create("held/power_anklet")
|
||||
@JvmField val POWER_BAND = create("held/power_band")
|
||||
@JvmField val POWER_BELT = create("held/power_belt")
|
||||
@JvmField val POWER_BRACER = create("held/power_bracer")
|
||||
@JvmField val POWER_LENS = create("held/power_lens")
|
||||
@JvmField val POWER_WEIGHT = create("held/power_weight")
|
||||
@JvmField val TERRAIN_SEEDS = create("held/terrain_seeds")
|
||||
|
||||
/**
|
||||
* Tag that flags items as being able to "create" [CobblemonItems.LEFTOVERS].
|
||||
*/
|
||||
@JvmField
|
||||
val LEAVES_LEFTOVERS = create("held/leaves_leftovers")
|
||||
|
||||
@JvmField
|
||||
val POTTERY_SHERDS = create("decorated_pot_sherds")
|
||||
|
||||
@JvmField
|
||||
val ABILITY_CHANGERS = create("ability_changers")
|
||||
|
||||
@JvmField
|
||||
val IS_FRIENDSHIP_BOOSTER = create("is_friendship_booster")
|
||||
|
||||
private fun create(path: String) = TagKey.create(Registries.ITEM, cobblemonResource(path))
|
||||
|
||||
|
||||
@@ -17,6 +17,10 @@ class GrabbedStorageSlot(
|
||||
private val pokemon: Pokemon
|
||||
) : StorageSlot(x, y, parent, {}) {
|
||||
|
||||
init {
|
||||
isSelected = true
|
||||
}
|
||||
|
||||
override fun renderWidget(context: GuiGraphics, mouseX: Int, mouseY: Int, delta: Float) {
|
||||
renderSlot(context = context, posX = mouseX - (width / 2), posY = mouseY - (height / 2), partialTicks = delta)
|
||||
}
|
||||
|
||||
@@ -40,7 +40,8 @@ import net.minecraft.sounds.SoundEvent
|
||||
class PCGUI(
|
||||
val pc: ClientPC,
|
||||
val party: ClientParty,
|
||||
val configuration: PCGUIConfiguration
|
||||
val configuration: PCGUIConfiguration,
|
||||
val openOnBox: Int = 0
|
||||
) : Screen(Component.translatable("cobblemon.ui.pc.title")), CobblemonRenderable {
|
||||
|
||||
companion object {
|
||||
@@ -110,6 +111,7 @@ class PCGUI(
|
||||
pc = pc,
|
||||
party = party
|
||||
)
|
||||
this.storageWidget.box = openOnBox
|
||||
|
||||
this.setPreviewPokemon(null)
|
||||
this.addRenderableWidget(storageWidget)
|
||||
|
||||
@@ -46,6 +46,8 @@ open class StorageSlot(
|
||||
private val slotOverlayMoveIconResource = cobblemonResource("textures/gui/pasture/pc_slot_icon_move.png")
|
||||
}
|
||||
|
||||
protected var isSelected = false;
|
||||
|
||||
override fun playDownSound(soundManager: SoundManager) {
|
||||
}
|
||||
|
||||
@@ -82,50 +84,52 @@ open class StorageSlot(
|
||||
|
||||
context.disableScissor()
|
||||
|
||||
// Ensure elements are not hidden behind Pokémon render
|
||||
matrices.pushPose()
|
||||
matrices.translate(0.0, 0.0, 100.0)
|
||||
// Level
|
||||
drawScaledText(
|
||||
context = context,
|
||||
text = lang("ui.lv.number", pokemon.level),
|
||||
x = posX + 1,
|
||||
y = posY + 1,
|
||||
shadow = true,
|
||||
scale = PCGUI.SCALE
|
||||
)
|
||||
|
||||
if (pokemon.gender != Gender.GENDERLESS) {
|
||||
blitk(
|
||||
matrixStack = matrices,
|
||||
texture = if (pokemon.gender == Gender.MALE) genderIconMale else genderIconFemale,
|
||||
x = (posX + 21) / PCGUI.SCALE,
|
||||
y = (posY + 1) / PCGUI.SCALE,
|
||||
width = 6,
|
||||
height = 8,
|
||||
if (!isSelected) {
|
||||
// Ensure elements are not hidden behind Pokémon render
|
||||
matrices.pushPose()
|
||||
matrices.translate(0.0, 0.0, 100.0)
|
||||
// Level
|
||||
drawScaledText(
|
||||
context = context,
|
||||
text = lang("ui.lv.number", pokemon.level),
|
||||
x = posX + 1,
|
||||
y = posY + 1,
|
||||
shadow = true,
|
||||
scale = PCGUI.SCALE
|
||||
)
|
||||
}
|
||||
|
||||
// Held Item
|
||||
val heldItem = pokemon.heldItemNoCopy()
|
||||
if (!heldItem.isEmpty) {
|
||||
renderScaledGuiItemIcon(
|
||||
itemStack = heldItem,
|
||||
x = posX + 16.0,
|
||||
y = posY + 16.0,
|
||||
scale = 0.5,
|
||||
matrixStack = matrices
|
||||
)
|
||||
if (pokemon.gender != Gender.GENDERLESS) {
|
||||
blitk(
|
||||
matrixStack = matrices,
|
||||
texture = if (pokemon.gender == Gender.MALE) genderIconMale else genderIconFemale,
|
||||
x = (posX + 21) / PCGUI.SCALE,
|
||||
y = (posY + 1) / PCGUI.SCALE,
|
||||
width = 6,
|
||||
height = 8,
|
||||
scale = PCGUI.SCALE
|
||||
)
|
||||
}
|
||||
|
||||
// Held Item
|
||||
val heldItem = pokemon.heldItemNoCopy()
|
||||
if (!heldItem.isEmpty) {
|
||||
renderScaledGuiItemIcon(
|
||||
itemStack = heldItem,
|
||||
x = posX + 16.0,
|
||||
y = posY + 16.0,
|
||||
scale = 0.5,
|
||||
matrixStack = matrices
|
||||
)
|
||||
}
|
||||
matrices.popPose()
|
||||
}
|
||||
matrices.popPose()
|
||||
|
||||
// Ensure overlay elements are on top
|
||||
matrices.pushPose()
|
||||
matrices.translate(0.0, 0.0, 500.0)
|
||||
|
||||
val config = parent.pcGui.configuration
|
||||
if (pokemon.tetheringId != null) {
|
||||
if (pokemon.tetheringId != null && !isSelected) {
|
||||
if (isStationary()) {
|
||||
blitk(
|
||||
matrixStack = matrices,
|
||||
|
||||
@@ -286,7 +286,10 @@ class StorageWidget(
|
||||
}
|
||||
|
||||
pastureWidget?.render(context, mouseX, mouseY, delta)
|
||||
matrices.pushPose()
|
||||
matrices.translate(0.0, 0.0, 1000.0)
|
||||
grabbedSlot?.render(context, mouseX, mouseY, delta)
|
||||
matrices.popPose()
|
||||
}
|
||||
|
||||
override fun mouseClicked(pMouseX: Double, pMouseY: Double, pButton: Int): Boolean {
|
||||
|
||||
+1
-1
@@ -18,6 +18,6 @@ import net.minecraft.client.Minecraft
|
||||
object OpenPCHandler : ClientNetworkPacketHandler<OpenPCPacket> {
|
||||
override fun handle(packet: OpenPCPacket, client: Minecraft) {
|
||||
val pc = CobblemonClient.storage.pcStores[packet.storeID] ?: return
|
||||
Minecraft.getInstance().setScreen(PCGUI(pc, CobblemonClient.storage.myParty, PCGUIConfiguration()))
|
||||
Minecraft.getInstance().setScreen(PCGUI(pc, CobblemonClient.storage.myParty, PCGUIConfiguration(), packet.box))
|
||||
}
|
||||
}
|
||||
+7
-7
@@ -116,7 +116,7 @@ class PokedexScannerRenderer {
|
||||
drawScaledText(
|
||||
context = graphics,
|
||||
font = CobblemonResources.DEFAULT_LARGE,
|
||||
text = lang("ui.lv.number", pokedexEntityData.level).bold(),
|
||||
text = lang("ui.lv.number", pokedexEntityData.pokemon.level).bold(),
|
||||
x = centerX + xOffset + xOffsetText,
|
||||
y = centerY + yOffset + yOffsetText,
|
||||
shadow = true,
|
||||
@@ -126,7 +126,7 @@ class PokedexScannerRenderer {
|
||||
|
||||
if (infoDisplayedCounter == 2) {
|
||||
val hasTrainer = (usageContext.scannableEntityInFocus?.resolveEntityScan() as? PokemonEntity)?.ownerUUID !== null
|
||||
val speciesName = pokedexEntityData.species.translatedName.bold()
|
||||
val speciesName = pokedexEntityData.getApparentSpecies().translatedName.bold()
|
||||
var yOffsetName = if (hasTrainer) 2 else 0
|
||||
if (hasTrainer) {
|
||||
drawScaledText(
|
||||
@@ -149,7 +149,7 @@ class PokedexScannerRenderer {
|
||||
centered = true
|
||||
)
|
||||
|
||||
val gender = pokedexEntityData.gender
|
||||
val gender = pokedexEntityData.pokemon.gender
|
||||
val speciesNameWidth = Minecraft.getInstance().font.width(speciesName.font(CobblemonResources.DEFAULT_LARGE))
|
||||
if (gender != Gender.GENDERLESS) {
|
||||
val isMale = gender == Gender.MALE
|
||||
@@ -179,14 +179,14 @@ class PokedexScannerRenderer {
|
||||
}
|
||||
|
||||
if (infoDisplayedCounter == 3) {
|
||||
val typeText = lang("type.suffix", pokedexEntityData.form.types.map { it.displayName.copy() }.reduce { acc, next -> acc.plus("/").plus(next) }).bold()
|
||||
val typeText = lang("type.suffix", pokedexEntityData.getApparentForm().types.map { it.displayName.copy() }.reduce { acc, next -> acc.plus("/").plus(next) }).bold()
|
||||
val typeWidth = Minecraft.getInstance().font.width(typeText.font(CobblemonResources.DEFAULT_LARGE))
|
||||
// Split into 2 lines if text width is too long
|
||||
if (typeWidth > (OUTER_INFO_FRAME_WIDTH - 8) && pokedexEntityData.form.secondaryType !== null) {
|
||||
if (typeWidth > (OUTER_INFO_FRAME_WIDTH - 8) && pokedexEntityData.getApparentForm().secondaryType !== null) {
|
||||
drawScaledText(
|
||||
context = graphics,
|
||||
font = CobblemonResources.DEFAULT_LARGE,
|
||||
text = lang("type.suffix", pokedexEntityData.form.primaryType.displayName).bold(),
|
||||
text = lang("type.suffix", pokedexEntityData.getApparentForm().primaryType.displayName).bold(),
|
||||
x = centerX + xOffset + xOffsetText,
|
||||
y = centerY + yOffset + yOffsetText - 4,
|
||||
shadow = true,
|
||||
@@ -196,7 +196,7 @@ class PokedexScannerRenderer {
|
||||
drawScaledText(
|
||||
context = graphics,
|
||||
font = CobblemonResources.DEFAULT_LARGE,
|
||||
text = lang("type.suffix", pokedexEntityData.form.secondaryType!!.displayName).bold(),
|
||||
text = lang("type.suffix", pokedexEntityData.getApparentForm().secondaryType!!.displayName).bold(),
|
||||
x = centerX + xOffset + xOffsetText,
|
||||
y = centerY + yOffset + yOffsetText + 3,
|
||||
shadow = true,
|
||||
|
||||
+12
-6
@@ -15,12 +15,12 @@ import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.item.PokemonItem
|
||||
import com.cobblemon.mod.common.util.math.fromEulerXYZDegrees
|
||||
import com.mojang.blaze3d.platform.Lighting
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture
|
||||
import net.minecraft.client.renderer.RenderType
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer
|
||||
import net.minecraft.client.renderer.MultiBufferSource
|
||||
import com.mojang.blaze3d.vertex.PoseStack
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer
|
||||
import net.minecraft.client.renderer.LightTexture
|
||||
import net.minecraft.client.renderer.MultiBufferSource
|
||||
import net.minecraft.client.renderer.RenderType
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture
|
||||
import net.minecraft.world.item.ItemDisplayContext
|
||||
import net.minecraft.world.item.ItemStack
|
||||
import org.joml.Quaternionf
|
||||
@@ -50,7 +50,10 @@ class PokemonItemRenderer : CobblemonBuiltinItemRenderer {
|
||||
|
||||
val transformations = positions[mode]!!
|
||||
|
||||
Lighting.setupForFlatItems()
|
||||
if (mode == ItemDisplayContext.GUI) {
|
||||
Lighting.setupForFlatItems()
|
||||
}
|
||||
|
||||
matrices.scale(transformations.scale.x, transformations.scale.y, transformations.scale.z)
|
||||
matrices.translate(transformations.translation.x, transformations.translation.y, transformations.translation.z)
|
||||
state.setPoseToFirstSuitable(PoseType.PORTRAIT)
|
||||
@@ -84,7 +87,10 @@ class PokemonItemRenderer : CobblemonBuiltinItemRenderer {
|
||||
model.setDefault()
|
||||
matrices.popPose()
|
||||
matrices.popPose()
|
||||
Lighting.setupFor3DItems()
|
||||
|
||||
if (mode == ItemDisplayContext.GUI) {
|
||||
Lighting.setupFor3DItems()
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
+3
@@ -13,6 +13,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedW
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
@@ -40,6 +41,8 @@ class NidokingModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, B
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nidoking", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nidoking", "blink")}
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -14,6 +14,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedW
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
@@ -40,6 +41,8 @@ class NidoqueenModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame,
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nidoqueen", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nidoqueen", "blink")}
|
||||
val spg = quirk(secondsBetweenOccurrences = 600F to 900F) { bedrockStateful("nidoqueen", "spgs_happy_place") }
|
||||
|
||||
+3
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
@@ -37,6 +38,8 @@ class NidoranfModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, Q
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nidoranf", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nidoranf", "blink") }
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
@@ -37,6 +38,8 @@ class NidoranmModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, Q
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nidoranm", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nidoranm", "blink") }
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
@@ -40,6 +41,8 @@ class NidorinaModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, Q
|
||||
lateinit var walk: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nidorina", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nidorina", "blink")}
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -12,6 +12,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonP
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
|
||||
@@ -36,6 +37,8 @@ class NidorinoModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, Q
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nidorino", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nidorino", "blink")}
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
@@ -32,6 +33,8 @@ class PinsirModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
lateinit var battleidle: CobblemonPose
|
||||
lateinit var sleep: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("pinsir", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("pinsir", "blink")}
|
||||
sleep = registerPose(
|
||||
|
||||
-100
@@ -1,100 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import com.cobblemon.mod.common.util.isUnderWater
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SlowbroModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("slowbro")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 2.0F
|
||||
override var portraitTranslation = Vec3(-0.23, -0.1, 0.0)
|
||||
|
||||
override var profileScale = 0.95F
|
||||
override var profileTranslation = Vec3(0.0, 0.3, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
lateinit var float: Pose
|
||||
lateinit var swim: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("slowbro", "blink1") }
|
||||
val blink2 = quirk { bedrockStateful("slowbro", "blink2") }
|
||||
val bite = quirk(secondsBetweenOccurrences = 60F to 120F) { bedrockStateful("slowbro", "bite_quirk") }
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = UI_POSES + PoseType.STAND,
|
||||
quirks = arrayOf(blink, blink2, bite),
|
||||
condition = { !it.isBattling },
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowbro", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseType = PoseType.WALK,
|
||||
quirks = arrayOf(blink, blink2, bite),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowbro", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
float = registerPose(
|
||||
poseName = "float",
|
||||
poseType = PoseType.FLOAT,
|
||||
quirks = arrayOf(blink, blink2, bite),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowbro", "water_idle")
|
||||
)
|
||||
)
|
||||
|
||||
swim = registerPose(
|
||||
poseName = "swim",
|
||||
poseType = PoseType.SWIM,
|
||||
quirks = arrayOf(blink, blink2, bite),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowbro", "water_swim")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, blink2, bite),
|
||||
condition = { it.isBattling && !it.isUnderWater },
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowbro", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("slowbro", "faint") else null
|
||||
}
|
||||
-96
@@ -1,96 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.QuadrupedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.QuadrupedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SlowpokeModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("slowpoke")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val foreLeftLeg= getPart("leftfrontleg")
|
||||
override val foreRightLeg = getPart("rightfrontleg")
|
||||
override val hindLeftLeg = getPart("leftbackleg")
|
||||
override val hindRightLeg = getPart("rightbackleg")
|
||||
|
||||
override var portraitScale = 2.2F
|
||||
override var portraitTranslation = Vec3(-0.6, -1.6, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.52, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
lateinit var float: Pose
|
||||
lateinit var swim: Pose
|
||||
lateinit var sleep: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("slowpoke", "blink") }
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("slowpoke", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = UI_POSES + PoseType.STAND,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowpoke", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseType = PoseType.WALK,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
QuadrupedWalkAnimation(this, periodMultiplier = 3.6F, amplitudeMultiplier = 2.2F),
|
||||
singleBoneLook(),
|
||||
bedrock("slowpoke", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
float = registerPose(
|
||||
poseName = "float",
|
||||
poseType = PoseType.FLOAT,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowpoke", "water_idle")
|
||||
)
|
||||
)
|
||||
|
||||
swim = registerPose(
|
||||
poseName = "swim",
|
||||
poseType = PoseType.SWIM,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowpoke", "water_swim")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("slowpoke", "faint") else null
|
||||
}
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SnorlaxModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("snorlax")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 2.3F
|
||||
override var portraitTranslation = Vec3(-0.45, 0.75, 0.0)
|
||||
|
||||
override var profileScale = 0.75F
|
||||
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("snorlax", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("snorlax", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("snorlax", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("snorlax", "faint") else null
|
||||
}
|
||||
-65
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class TaurosModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("tauros")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 1.9F
|
||||
override var portraitTranslation = Vec3(-0.7, -0.25, 0.0)
|
||||
|
||||
override var profileScale = 0.75F
|
||||
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("tauros", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("tauros", "blink")}
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("tauros", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("tauros", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("tauros", "faint") else null
|
||||
}
|
||||
+1
-1
@@ -25,7 +25,7 @@ import net.minecraft.world.phys.Vec3
|
||||
|
||||
class FeraligatrModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("feraligatr")
|
||||
override val head = getPart("head")
|
||||
override val head = getPart("head_ai")
|
||||
|
||||
override val leftLeg = getPart("leg_left")
|
||||
override val rightLeg = getPart("leg_right")
|
||||
|
||||
+2
-1
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
@@ -32,7 +33,7 @@ class HitmontopModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
lateinit var walk: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
// override val cryAnimation = CryProvider { bedrockStateful("hitmontop", "cry") }
|
||||
override val cryAnimation = CryProvider { bedrockStateful("hitmontop", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("hitmontop", "blink") }
|
||||
|
||||
-99
@@ -1,99 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen2
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import com.cobblemon.mod.common.util.isInWater
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SlowkingModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("slowking")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 2.0F
|
||||
override var portraitTranslation = Vec3(-0.1, 0.1, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
lateinit var float: Pose
|
||||
lateinit var swim: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("slowking", "blink") }
|
||||
val blink2 = quirk { bedrockStateful("slowking", "blink2") }
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = UI_POSES + PoseType.STAND,
|
||||
quirks = arrayOf(blink, blink2),
|
||||
condition = { !it.isBattling },
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowking", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseType = PoseType.WALK,
|
||||
quirks = arrayOf(blink, blink2),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowking", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
float = registerPose(
|
||||
poseName = "float",
|
||||
poseType = PoseType.FLOAT,
|
||||
quirks = arrayOf(blink, blink2),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowking", "water_idle")
|
||||
)
|
||||
)
|
||||
|
||||
swim = registerPose(
|
||||
poseName = "swim",
|
||||
poseType = PoseType.SWIM,
|
||||
quirks = arrayOf(blink, blink2),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowking", "water_swim")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, blink2),
|
||||
condition = { it.isBattling },
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("slowking", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("slowking", "faint") else null
|
||||
}
|
||||
-83
@@ -1,83 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.util.asExpressionLike
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class KrokorokModel (root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("krokorok")
|
||||
|
||||
override var portraitScale = 1.86F
|
||||
override var portraitTranslation = Vec3(-0.43, 0.98, 0.0)
|
||||
|
||||
override var profileScale = 0.55F
|
||||
override var profileTranslation = Vec3(0.05, 0.93, 0.0)
|
||||
|
||||
lateinit var sleep: CobblemonPose
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
lateinit var battleidle: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
// animations["physical"] = "q.bedrock_primary('krokorok', 'physical', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
|
||||
// animations["special"] = "q.bedrock_primary('krokorok', 'special', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
|
||||
// animations["status"] = "q.bedrock_primary('krokorok', 'status', q.curve('symmetrical_wide'))".asExpressionLike()
|
||||
// animations["recoil"] = "q.bedrock_stateful('krokorok', 'recoil')".asExpressionLike()
|
||||
animations["cry"] = "q.bedrock_stateful('krokorok', 'cry')".asExpressionLike()
|
||||
|
||||
val faint = "q.bedrock_primary('krokorok', 'faint', q.curve('one'))".asExpressionLike()
|
||||
|
||||
val blink = quirk { bedrockStateful("krokorok", "blink") }
|
||||
val look = quirk { bedrockStateful("krokorok", "look_quirk") }
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(bedrock("krokorok", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
quirks = arrayOf(blink, look),
|
||||
condition = { !it.isBattling },
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(
|
||||
bedrock("krokorok", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(
|
||||
bedrock("krokorok", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
quirks = arrayOf(blink, look),
|
||||
condition = { it.isBattling },
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(
|
||||
bedrock("krokorok", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.util.asExpressionLike
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SandileModel (root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("sandile")
|
||||
|
||||
override var portraitScale = 2.54F
|
||||
override var portraitTranslation = Vec3(-0.5, -1.9, 0.0)
|
||||
|
||||
override var profileScale = 0.84F
|
||||
override var profileTranslation = Vec3(0.05, 0.48, 0.0)
|
||||
|
||||
lateinit var sleep: CobblemonPose
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
lateinit var battle_idle: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
// animations["physical"] = "q.bedrock_primary('sandile', 'physical', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
|
||||
// animations["special"] = "q.bedrock_primary('sandile', 'special', 'look', q.curve('symmetrical_wide'))".asExpressionLike()
|
||||
// animations["status"] = "q.bedrock_primary('sandile', 'status', q.curve('symmetrical_wide'))".asExpressionLike()
|
||||
// animations["recoil"] = "q.bedrock_stateful('sandile', 'recoil')".asExpressionLike()
|
||||
animations["cry"] = "q.bedrock_stateful('sandile', 'cry')".asExpressionLike()
|
||||
|
||||
val faint = "q.bedrock_primary('sandile', 'faint', q.curve('one'))".asExpressionLike()
|
||||
|
||||
val blink = quirk { bedrockStateful("sandile", "blink") }
|
||||
val bite = quirk { bedrockStateful("sandile", "bite_quirk") }
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
quirks = arrayOf(bite),
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(bedrock("sandile", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
quirks = arrayOf(blink, bite),
|
||||
condition = { !it.isBattling },
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(
|
||||
bedrock("sandile", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(
|
||||
bedrock("sandile", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
battle_idle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
quirks = arrayOf(blink, bite),
|
||||
condition = { it.isBattling },
|
||||
namedAnimations = mutableMapOf("faint" to faint),
|
||||
animations = arrayOf(
|
||||
bedrock("sandile", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
+6
-3
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen8
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
@@ -21,15 +22,17 @@ class EiscueModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 2.0F
|
||||
override var portraitTranslation = Vec3(-0.1, -0.2, 0.0)
|
||||
override var portraitTranslation = Vec3(-0.1, 0.31, 0.0)
|
||||
|
||||
override var profileScale = 1.0F
|
||||
override var profileTranslation = Vec3(0.0, 0.3, 0.0)
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.55, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
lateinit var sleep: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("eiscue_ice", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("eiscue_ice", "blink")}
|
||||
sleep = registerPose(
|
||||
|
||||
+1
-1
@@ -71,7 +71,7 @@ class RabootModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
condition = { it.isBattling },
|
||||
quirks = arrayOf(blink, hipQuirk),
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("raboot", "battle_idle")
|
||||
|
||||
-91
@@ -1,91 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen9
|
||||
|
||||
// import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class ArmarougeModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("armarouge")
|
||||
override val head = getPart("head")
|
||||
override val rightArm = getPart("arm_right")
|
||||
override val leftArm = getPart("arm_left")
|
||||
override val rightLeg = getPart("leg_right")
|
||||
override val leftLeg = getPart("leg_left")
|
||||
|
||||
override var portraitScale = 1.8F
|
||||
override var portraitTranslation = Vec3(-0.2, 1.8, 0.0)
|
||||
|
||||
override var profileScale = 0.5F
|
||||
override var profileTranslation = Vec3(0.0, 1.0, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walking: Pose
|
||||
lateinit var sleep: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("armarouge", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("armarouge", "blink") }
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("armarouge", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
transformTicks = 10,
|
||||
condition = { !it.isBattling },
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("armarouge", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walking = registerPose(
|
||||
poseName = "walking",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("armarouge", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
condition = { it.isBattling },
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("armarouge", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("armarouge", "faint") else null
|
||||
}
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Cobblemon Contributors
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen9
|
||||
|
||||
// import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BimanualFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.HeadedFrame
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.MOVING_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.STATIONARY_POSES
|
||||
import com.cobblemon.mod.common.entity.PoseType.Companion.UI_POSES
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class CeruledgeModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("ceruledge")
|
||||
override val head = getPart("head")
|
||||
override val rightArm = getPart("arm_right")
|
||||
override val leftArm = getPart("arm_left")
|
||||
override val rightLeg = getPart("leg_right")
|
||||
override val leftLeg = getPart("leg_left")
|
||||
val bladeright = getPart("blade_right")
|
||||
val bladeleft = getPart("blade_left")
|
||||
val passivebladeright = getPart("passive_blade_right")
|
||||
val passivebladeleft = getPart("passive_blade_left")
|
||||
|
||||
override var portraitScale = 1.8F
|
||||
override var portraitTranslation = Vec3(-0.2, 1.9, 0.0)
|
||||
|
||||
override var profileScale = 0.5F
|
||||
override var profileTranslation = Vec3(0.0, 1.0, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walking: Pose
|
||||
lateinit var sleep: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("ceruledge", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("ceruledge", "blink") }
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
transformedParts = arrayOf(
|
||||
bladeright.createTransformation().withVisibility(visibility = false),
|
||||
bladeleft.createTransformation().withVisibility(visibility = false),
|
||||
passivebladeright.createTransformation().withVisibility(visibility = true),
|
||||
passivebladeleft.createTransformation().withVisibility(visibility = true)
|
||||
),
|
||||
animations = arrayOf(bedrock("ceruledge", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
condition = { !it.isBattling },
|
||||
transformedParts = arrayOf(
|
||||
bladeright.createTransformation().withVisibility(visibility = false),
|
||||
bladeleft.createTransformation().withVisibility(visibility = false),
|
||||
passivebladeright.createTransformation().withVisibility(visibility = true),
|
||||
passivebladeleft.createTransformation().withVisibility(visibility = true)
|
||||
),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ceruledge", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walking = registerPose(
|
||||
poseName = "walking",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
transformedParts = arrayOf(
|
||||
bladeright.createTransformation().withVisibility(visibility = false),
|
||||
bladeleft.createTransformation().withVisibility(visibility = false),
|
||||
passivebladeright.createTransformation().withVisibility(visibility = true),
|
||||
passivebladeleft.createTransformation().withVisibility(visibility = true)
|
||||
),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ceruledge", "ground_walk")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
condition = { it.isBattling },
|
||||
transformedParts = arrayOf(
|
||||
bladeright.createTransformation().withVisibility(visibility = true),
|
||||
bladeleft.createTransformation().withVisibility(visibility = true),
|
||||
passivebladeright.createTransformation().withVisibility(visibility = false),
|
||||
passivebladeleft.createTransformation().withVisibility(visibility = false)
|
||||
),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ceruledge", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walking, battleidle, sleep)) bedrockStateful("ceruledge", "faint2") else null
|
||||
}
|
||||
+2
-2
@@ -33,8 +33,8 @@ class CharcadetModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame,
|
||||
override val rightLeg = getPart("leg_right")
|
||||
override val leftLeg = getPart("leg_left")
|
||||
|
||||
override var portraitScale = 2.5F
|
||||
override var portraitTranslation = Vec3(-0.15, -0.45, 0.0)
|
||||
override var portraitScale = 1.7F
|
||||
override var portraitTranslation = Vec3(-0.15, 0.08, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
|
||||
|
||||
-11
@@ -96,11 +96,8 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("fearow", ::FearowModel)
|
||||
inbuilt("flareon", ::FlareonModel)
|
||||
inbuilt("gengar", ::GengarModel)
|
||||
inbuilt("geodude", ::GeodudeModel)
|
||||
inbuilt("golbat", ::GolbatModel)
|
||||
inbuilt("golduck", ::GolduckModel)
|
||||
inbuilt("golem", ::GolemModel)
|
||||
inbuilt("graveler", ::GravelerModel)
|
||||
inbuilt("grimer", ::GrimerModel)
|
||||
inbuilt("growlithe", ::GrowlitheModel)
|
||||
inbuilt("hitmonchan", ::HitmonchanModel)
|
||||
@@ -146,14 +143,11 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("sandslash", ::SandslashModel)
|
||||
inbuilt("scyther", ::ScytherModel)
|
||||
inbuilt("seel", ::SeelModel)
|
||||
inbuilt("slowbro", ::SlowbroModel)
|
||||
inbuilt("slowpoke", ::SlowpokeModel)
|
||||
inbuilt("spearow", ::SpearowModel)
|
||||
inbuilt("starmie", ::StarmieModel)
|
||||
inbuilt("staryu", ::StaryuModel)
|
||||
inbuilt("steelix", ::SteelixModel)
|
||||
inbuilt("tangela", ::TangelaModel)
|
||||
inbuilt("tauros", ::TaurosModel)
|
||||
inbuilt("tentacool", ::TentacoolModel)
|
||||
inbuilt("tentacruel", ::TentacruelModel)
|
||||
inbuilt("vaporeon", ::VaporeonModel)
|
||||
@@ -179,7 +173,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("blissey", ::BlisseyModel)
|
||||
inbuilt("piloswine", ::PiloswineModel)
|
||||
inbuilt("quagsire", ::QuagsireModel)
|
||||
inbuilt("slowking", ::SlowkingModel)
|
||||
inbuilt("swinub", ::SwinubModel)
|
||||
inbuilt("wooper", ::WooperModel)
|
||||
inbuilt("wooper_paldean", ::WooperPaldeanModel)
|
||||
@@ -343,8 +336,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("shroomish", ::ShroomishModel)
|
||||
inbuilt("breloom", ::BreloomModel)
|
||||
inbuilt("charcadet", ::CharcadetModel)
|
||||
inbuilt("armarouge", ::ArmarougeModel)
|
||||
inbuilt("ceruledge", ::CeruledgeModel)
|
||||
inbuilt("flittle", ::FlittleModel)
|
||||
inbuilt("espathra", ::EspathraModel)
|
||||
inbuilt("surskit", ::SurskitModel)
|
||||
@@ -559,8 +550,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("roserade", ::RoseradeModel)
|
||||
inbuilt("woobat", ::WoobatModel)
|
||||
inbuilt("swoobat", ::SwoobatModel)
|
||||
inbuilt("sandile", ::SandileModel)
|
||||
inbuilt("krokorok", ::KrokorokModel)
|
||||
inbuilt("frillish", ::FrillishModel)
|
||||
inbuilt("jellicent", ::JellicentModel)
|
||||
inbuilt("cubchoo", ::CubchooModel)
|
||||
|
||||
@@ -0,0 +1,116 @@
|
||||
package com.cobblemon.mod.common.command
|
||||
|
||||
import com.cobblemon.mod.common.Cobblemon.config
|
||||
import com.cobblemon.mod.common.api.permission.CobblemonPermissions
|
||||
import com.cobblemon.mod.common.api.spawning.fishing.FishingSpawnCause
|
||||
import com.cobblemon.mod.common.api.spawning.fishing.FishingSpawner
|
||||
import com.cobblemon.mod.common.api.text.add
|
||||
import com.cobblemon.mod.common.api.text.green
|
||||
import com.cobblemon.mod.common.api.text.lightPurple
|
||||
import com.cobblemon.mod.common.api.text.plus
|
||||
import com.cobblemon.mod.common.api.text.red
|
||||
import com.cobblemon.mod.common.api.text.text
|
||||
import com.cobblemon.mod.common.api.text.underline
|
||||
import com.cobblemon.mod.common.api.text.yellow
|
||||
import com.cobblemon.mod.common.command.argument.SpawnBucketArgumentType
|
||||
import com.cobblemon.mod.common.util.lang
|
||||
import com.cobblemon.mod.common.util.permission
|
||||
import com.cobblemon.mod.common.util.toBlockPos
|
||||
import com.mojang.brigadier.Command
|
||||
import com.mojang.brigadier.CommandDispatcher
|
||||
import com.mojang.brigadier.context.CommandContext
|
||||
import net.minecraft.commands.CommandSourceStack
|
||||
import net.minecraft.commands.Commands
|
||||
import net.minecraft.network.chat.MutableComponent
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import java.text.DecimalFormat
|
||||
import kotlin.collections.component1
|
||||
import kotlin.collections.component2
|
||||
|
||||
object CheckFishingSpawnsCommand {
|
||||
const val PURPLE_THRESHOLD = 0.01F
|
||||
const val RED_THRESHOLD = 0.1F
|
||||
const val YELLOW_THRESHOLD = 5F
|
||||
val df = DecimalFormat("#.##")
|
||||
|
||||
fun register(dispatcher : CommandDispatcher<CommandSourceStack>) {
|
||||
dispatcher.register(Commands.literal("checkfishingspawn")
|
||||
.permission(CobblemonPermissions.CHECKSPAWNS)
|
||||
.then(
|
||||
Commands.argument("bucket", SpawnBucketArgumentType.spawnBucket())
|
||||
.requires { it.player != null }
|
||||
.executes { execute(it, it.source.playerOrException) }
|
||||
))
|
||||
}
|
||||
|
||||
private fun execute(context: CommandContext<CommandSourceStack>, player: ServerPlayer) : Int {
|
||||
if (!config.enableSpawning) {
|
||||
return 0
|
||||
}
|
||||
|
||||
val spawner = FishingSpawner()
|
||||
val bucket = SpawnBucketArgumentType.getSpawnBucket(context, "bucket")
|
||||
val cause = FishingSpawnCause(spawner, bucket, player, player.mainHandItem)
|
||||
|
||||
val level = player.commandSenderWorld as? ServerLevel ?: return 0
|
||||
val context = spawner.parseContext(
|
||||
cause,
|
||||
level,
|
||||
player.position().toBlockPos()
|
||||
) ?: return 0
|
||||
|
||||
val spawnProbabilities = spawner.getSpawningSelector()
|
||||
.getProbabilities(
|
||||
spawner,
|
||||
listOf(context)
|
||||
)
|
||||
|
||||
val spawnNames = mutableMapOf<String, MutableComponent>()
|
||||
val namedProbabilities = mutableMapOf<MutableComponent, Float>()
|
||||
|
||||
spawnProbabilities.entries.forEach {
|
||||
val nameText = it.key.getName()
|
||||
val nameString = nameText.string
|
||||
if (!spawnNames.containsKey(nameString)) {
|
||||
spawnNames[nameString] = it.key.getName()
|
||||
}
|
||||
|
||||
val standardizedNameText = spawnNames[nameString]!!
|
||||
namedProbabilities[standardizedNameText] = (namedProbabilities[standardizedNameText] ?: 0F) + it.value
|
||||
}
|
||||
|
||||
val sortedEntries = namedProbabilities.entries.sortedByDescending { it.value }
|
||||
val messages = mutableListOf<MutableComponent>()
|
||||
sortedEntries.forEach { (name, percentage) ->
|
||||
val message = name + ": " + applyColour("${df.format(percentage)}%".text(), percentage)
|
||||
// player.sendMessage()
|
||||
messages.add(message)
|
||||
}
|
||||
|
||||
if (messages.isEmpty()) {
|
||||
player.sendSystemMessage(lang("command.checkspawns.nothing").red())
|
||||
} else {
|
||||
player.sendSystemMessage(lang("command.checkspawns.spawns").underline())
|
||||
val msg = messages[0]
|
||||
for (nextMessage in messages.subList(1, messages.size)) {
|
||||
msg.add(", ".text() + nextMessage)
|
||||
}
|
||||
player.sendSystemMessage(msg)
|
||||
}
|
||||
|
||||
return Command.SINGLE_SUCCESS
|
||||
}
|
||||
|
||||
fun applyColour(name: MutableComponent, percentage: Float): MutableComponent {
|
||||
return if (percentage < PURPLE_THRESHOLD) {
|
||||
name.lightPurple()
|
||||
} else if (percentage < RED_THRESHOLD) {
|
||||
name.red()
|
||||
} else if (percentage < YELLOW_THRESHOLD) {
|
||||
name.yellow()
|
||||
} else {
|
||||
name.green()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,10 +17,12 @@ import com.cobblemon.mod.common.net.messages.client.storage.pc.OpenPCPacket
|
||||
import com.cobblemon.mod.common.util.*
|
||||
import com.mojang.brigadier.Command
|
||||
import com.mojang.brigadier.CommandDispatcher
|
||||
import com.mojang.brigadier.arguments.IntegerArgumentType
|
||||
import com.mojang.brigadier.context.CommandContext
|
||||
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType
|
||||
import net.minecraft.commands.CommandSourceStack
|
||||
import net.minecraft.commands.Commands.literal
|
||||
import net.minecraft.commands.Commands.argument
|
||||
|
||||
object PcCommand {
|
||||
|
||||
@@ -30,25 +32,36 @@ object PcCommand {
|
||||
fun register(dispatcher : CommandDispatcher<CommandSourceStack>) {
|
||||
dispatcher.register(literal(NAME)
|
||||
.permission(CobblemonPermissions.PC)
|
||||
.then(argument("box", IntegerArgumentType.integer(1))
|
||||
.executes(this::execute)
|
||||
)
|
||||
.executes(this::execute)
|
||||
)
|
||||
}
|
||||
|
||||
private fun execute(context: CommandContext<CommandSourceStack>): Int {
|
||||
val player = context.source.playerOrException
|
||||
val box = try {
|
||||
IntegerArgumentType.getInteger(context, "box")
|
||||
} catch (e: IllegalArgumentException) {
|
||||
1
|
||||
}
|
||||
val pc = player.pc()
|
||||
if (player.isInBattle()) {
|
||||
throw IN_BATTLE_EXCEPTION.create()
|
||||
}
|
||||
if (pc.boxes.size < box) {
|
||||
throw SimpleCommandExceptionType(lang("command.pc.invalid-box", box, pc.boxes.size).red()).create()
|
||||
}
|
||||
PCLinkManager.addLink(PermissiblePcLink(pc, player, CobblemonPermissions.PC))
|
||||
OpenPCPacket(pc.uuid).sendToPlayer(player)
|
||||
OpenPCPacket(pc.uuid, box - 1).sendToPlayer(player)
|
||||
context.source.level.playSoundServer(
|
||||
position = context.source.player!!.position(),
|
||||
sound = CobblemonSounds.PC_ON,
|
||||
volume = 0.5F,
|
||||
pitch = 1F
|
||||
position = context.source.player!!.position(),
|
||||
sound = CobblemonSounds.PC_ON,
|
||||
volume = 0.5F,
|
||||
pitch = 1F
|
||||
)
|
||||
return Command.SINGLE_SUCCESS
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1583,17 +1583,15 @@ open class PokemonEntity(
|
||||
private fun sidedCodec(): Codec<Pokemon> = if (this.level().isClientSide) Pokemon.CLIENT_CODEC else Pokemon.CODEC
|
||||
|
||||
override fun resolvePokemonScan(): PokedexEntityData? {
|
||||
return PokemonSpecies.getByIdentifier(this.exposedSpecies.resourceIdentifier)?.let { species ->
|
||||
PokedexEntityData(
|
||||
species = species,
|
||||
form = this.form,
|
||||
gender = this.pokemon.gender,
|
||||
aspects = this.aspects,
|
||||
shiny = this.pokemon.shiny,
|
||||
level = this.labelLevel(),
|
||||
ownerUUID = this.ownerUUID
|
||||
)
|
||||
}
|
||||
return PokedexEntityData(
|
||||
pokemon = pokemon,
|
||||
disguise = this.effects.mockEffect?.let {
|
||||
PokedexEntityData.DisguiseData(
|
||||
species = it.exposedSpecies ?: pokemon.species,
|
||||
form = it.exposedForm ?: pokemon.form,
|
||||
)
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
override fun resolveEntityScan(): LivingEntity {
|
||||
|
||||
@@ -488,6 +488,7 @@ object CobblemonItemGroups {
|
||||
entries.accept(CobblemonItems.RIBBON_SWEET)
|
||||
entries.accept(CobblemonItems.AUSPICIOUS_ARMOR)
|
||||
entries.accept(CobblemonItems.MALICIOUS_ARMOR)
|
||||
entries.accept(CobblemonItems.SHELL_HELMET)
|
||||
}
|
||||
|
||||
private fun heldItemEntries(displayContext: ItemDisplayParameters, entries: Output) {
|
||||
|
||||
@@ -20,6 +20,13 @@ class LinkCableItem : CobblemonItem(Properties()), PokemonEntityInteraction {
|
||||
override fun processInteraction(player: ServerPlayer, entity: PokemonEntity, stack: ItemStack): Boolean {
|
||||
val pokemon = entity.pokemon
|
||||
pokemon.lockedEvolutions.filterIsInstance<TradeEvolution>().forEach { evolution ->
|
||||
// Prevent Pokémon that require a specific trading partner for evolution (e.g., Shelmet and Karrablast)
|
||||
// from evolving via link cable. These Pokémon must either be traded with another player or use an
|
||||
// alternative single-player evolution method.
|
||||
if (!evolution.requiredContext.originalString.isEmpty()) {
|
||||
return@forEach
|
||||
}
|
||||
|
||||
// If an evolution is possible non-optional or has been successfully queued we will consume the item and stop
|
||||
// validate requirements to respect required held items and such.
|
||||
if (evolution.requirements.all { it.check(pokemon) } && evolution.evolve(pokemon)) {
|
||||
|
||||
+3
-2
@@ -26,16 +26,17 @@ import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
* @author Hiroku
|
||||
* @since June 20th, 2022
|
||||
*/
|
||||
class OpenPCPacket(val storeID: UUID) : NetworkPacket<OpenPCPacket> {
|
||||
class OpenPCPacket(val storeID: UUID, val box: Int = 1) : NetworkPacket<OpenPCPacket> {
|
||||
|
||||
override val id = ID
|
||||
|
||||
override fun encode(buffer: RegistryFriendlyByteBuf) {
|
||||
buffer.writeUUID(storeID)
|
||||
buffer.writeInt(box)
|
||||
}
|
||||
|
||||
companion object {
|
||||
val ID = cobblemonResource("open_pc")
|
||||
fun decode(buffer: RegistryFriendlyByteBuf) = OpenPCPacket(buffer.readUUID())
|
||||
fun decode(buffer: RegistryFriendlyByteBuf) = OpenPCPacket(buffer.readUUID(), buffer.readInt())
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -43,7 +43,7 @@ object FinishScanningHandler : ServerNetworkPacketHandler<FinishScanningPacket>
|
||||
val scannableEntity = targetEntity as? ScannableEntity ?: return
|
||||
val dex = Cobblemon.playerDataManager.getPokedexData(player)
|
||||
val pokedexEntityData = scannableEntity.resolvePokemonScan()
|
||||
if(pokedexEntityData != null){
|
||||
if (pokedexEntityData != null){
|
||||
val newInformation = dex.getNewInformation(pokedexEntityData)
|
||||
if ((scannableEntity as? PokemonEntity)?.owner === player) {
|
||||
dex.catch(scannableEntity.pokemon)
|
||||
@@ -52,7 +52,7 @@ object FinishScanningHandler : ServerNetworkPacketHandler<FinishScanningPacket>
|
||||
}
|
||||
|
||||
POKEMON_SCANNED.post(PokemonScannedEvent(player, pokedexEntityData, scannableEntity))
|
||||
ServerConfirmedRegisterPacket(pokedexEntityData.species.resourceIdentifier, newInformation).sendToPlayer(player)
|
||||
ServerConfirmedRegisterPacket((pokedexEntityData.getApparentSpecies()).resourceIdentifier, newInformation).sendToPlayer(player)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+14
-18
@@ -9,28 +9,24 @@
|
||||
package com.cobblemon.mod.common.pokedex.scanner
|
||||
|
||||
import com.bedrockk.molang.runtime.struct.QueryStruct
|
||||
import com.bedrockk.molang.runtime.value.DoubleValue
|
||||
import com.bedrockk.molang.runtime.value.StringValue
|
||||
import com.cobblemon.mod.common.pokemon.FormData
|
||||
import com.cobblemon.mod.common.pokemon.Gender
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import com.cobblemon.mod.common.pokemon.Species
|
||||
import com.cobblemon.mod.common.util.asArrayValue
|
||||
import java.util.UUID
|
||||
|
||||
data class PokedexEntityData(
|
||||
val species: Species,
|
||||
val form: FormData,
|
||||
val gender: Gender,
|
||||
val aspects: Set<String>,
|
||||
val shiny: Boolean,
|
||||
val level: Int,
|
||||
val ownerUUID: UUID?
|
||||
val pokemon: Pokemon,
|
||||
val disguise: DisguiseData?
|
||||
) {
|
||||
val struct = QueryStruct(hashMapOf())
|
||||
.addFunction("species") { species.struct }
|
||||
.addFunction("gender") { StringValue(gender.name.lowercase()) }
|
||||
.addFunction("aspects") { aspects.asArrayValue(::StringValue) }
|
||||
.addFunction("shiny") { DoubleValue(shiny) }
|
||||
.addFunction("level") { DoubleValue(level.toDouble()) }
|
||||
.addFunction("has_owner") { DoubleValue(ownerUUID != null) }
|
||||
class DisguiseData(
|
||||
val species: Species,
|
||||
val form: FormData,
|
||||
) {
|
||||
val struct = QueryStruct(hashMapOf())
|
||||
.addFunction("species") { species.struct }
|
||||
.addFunction("form") { StringValue(form.name) }
|
||||
}
|
||||
|
||||
fun getApparentSpecies() = disguise?.species ?: pokemon.species
|
||||
fun getApparentForm() = disguise?.form ?: pokemon.form
|
||||
}
|
||||
+6
-6
@@ -18,6 +18,9 @@ import com.cobblemon.mod.common.client.pokedex.PokedexType
|
||||
import com.cobblemon.mod.common.net.messages.client.pokedex.ServerConfirmedRegisterPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokedex.scanner.FinishScanningPacket
|
||||
import com.cobblemon.mod.common.net.messages.server.pokedex.scanner.StartScanningPacket
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
import kotlin.random.Random
|
||||
import net.minecraft.client.DeltaTracker
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.client.gui.GuiGraphics
|
||||
@@ -26,9 +29,6 @@ import net.minecraft.client.resources.sounds.SimpleSoundInstance
|
||||
import net.minecraft.resources.ResourceLocation
|
||||
import net.minecraft.sounds.SoundEvent
|
||||
import net.minecraft.util.Mth.clamp
|
||||
import kotlin.math.max
|
||||
import kotlin.math.min
|
||||
import kotlin.random.Random
|
||||
|
||||
class PokedexUsageContext {
|
||||
companion object {
|
||||
@@ -85,7 +85,7 @@ class PokedexUsageContext {
|
||||
if (transitionIntervals == TRANSITION_INTERVALS) playSound(CobblemonSounds.POKEDEX_SCAN_CLOSE)
|
||||
transitionIntervals = max(transitionIntervals - updateInterval, 0F)
|
||||
if (transitionIntervals <= 0) {
|
||||
if (viewInfoTicks >= VIEW_INFO_BUFFER_TICKS) openPokedexGUI(type, scannableEntityInFocus!!.resolvePokemonScan()?.species?.resourceIdentifier)
|
||||
if (viewInfoTicks >= VIEW_INFO_BUFFER_TICKS) openPokedexGUI(type, scannableEntityInFocus!!.resolvePokemonScan()?.getApparentSpecies()?.resourceIdentifier)
|
||||
resetState()
|
||||
}
|
||||
}
|
||||
@@ -155,7 +155,7 @@ class PokedexUsageContext {
|
||||
}
|
||||
|
||||
// Check if Pokémon in focus is owned
|
||||
isPokemonInFocusOwned = CobblemonClient.clientPokedexData.getHighestKnowledgeForSpecies(resolvedPokemon.species.resourceIdentifier) == PokedexEntryProgress.CAUGHT
|
||||
isPokemonInFocusOwned = CobblemonClient.clientPokedexData.getHighestKnowledgeForSpecies(resolvedPokemon.getApparentSpecies().resourceIdentifier) == PokedexEntryProgress.CAUGHT
|
||||
|
||||
// Randomize info frames for render
|
||||
if (focusIntervals == 0F) {
|
||||
@@ -170,7 +170,7 @@ class PokedexUsageContext {
|
||||
// Check if Pokémon in focus is new or has new data
|
||||
newPokemonInfo = CobblemonClient.clientPokedexData.getNewInformation(resolvedPokemon)
|
||||
if (newPokemonInfo == PokedexLearnedInformation.NONE) playSound(CobblemonSounds.POKEDEX_SCAN_DETAIL)
|
||||
else scannedSpecies = resolvedPokemon.species.resourceIdentifier
|
||||
else scannedSpecies = resolvedPokemon.getApparentSpecies().resourceIdentifier
|
||||
}
|
||||
} else {
|
||||
resetFocusedPokemonState()
|
||||
|
||||
+7
@@ -73,10 +73,17 @@ class ServerEvolutionController(
|
||||
}
|
||||
|
||||
override fun add(element: Evolution): Boolean {
|
||||
// Removes duplicate evolutions that result in the same outcome, keeping only the most recent evolution.
|
||||
// For example, Karrablast can evolve via trade or link cable, which otherwise creates duplicate
|
||||
// entries in the summary screen.
|
||||
val duplicatedEvolutions = this.filter { element.result.matches(it.result) }
|
||||
duplicatedEvolutions.forEach { it -> this.remove(it) }
|
||||
|
||||
if (this.evolutions.add(element)) {
|
||||
this.pokemon.notify(AddEvolutionPacket(this.pokemon, element, this.pokemon.getOwnerEntity()?.registryAccess() ?: server()?.registryAccess() ?: throw IllegalStateException("No registry access available")))
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
+5
-2
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.pokemon.evolution.variants
|
||||
|
||||
import com.cobblemon.mod.common.api.conditional.RegistryLikeCondition
|
||||
import com.cobblemon.mod.common.api.drop.DropTable
|
||||
import com.cobblemon.mod.common.api.moves.MoveTemplate
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
import com.cobblemon.mod.common.api.pokemon.evolution.ContextEvolution
|
||||
@@ -36,7 +37,8 @@ open class BlockClickEvolution(
|
||||
override var optional: Boolean,
|
||||
override var consumeHeldItem: Boolean,
|
||||
override val requirements: MutableSet<EvolutionRequirement>,
|
||||
override val learnableMoves: MutableSet<MoveTemplate>
|
||||
override val learnableMoves: MutableSet<MoveTemplate>,
|
||||
override val drops: DropTable,
|
||||
) : ContextEvolution<BlockClickEvolution.BlockInteractionContext, RegistryLikeCondition<Block>> {
|
||||
constructor(): this(
|
||||
id = "id",
|
||||
@@ -46,7 +48,8 @@ open class BlockClickEvolution(
|
||||
optional = true,
|
||||
consumeHeldItem = true,
|
||||
requirements = mutableSetOf(),
|
||||
learnableMoves = mutableSetOf()
|
||||
learnableMoves = mutableSetOf(),
|
||||
drops = DropTable(),
|
||||
)
|
||||
|
||||
override fun testContext(pokemon: Pokemon, context: BlockInteractionContext): Boolean {
|
||||
|
||||
+2
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.pokemon.evolution.variants
|
||||
|
||||
import com.cobblemon.mod.common.api.drop.DropTable
|
||||
import com.cobblemon.mod.common.api.moves.MoveTemplate
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
import com.cobblemon.mod.common.api.pokemon.evolution.Evolution
|
||||
@@ -24,6 +25,7 @@ internal class DummyEvolution : Evolution {
|
||||
override var consumeHeldItem = false
|
||||
override val requirements: MutableSet<EvolutionRequirement> = mutableSetOf()
|
||||
override val learnableMoves: MutableSet<MoveTemplate> = mutableSetOf()
|
||||
override val drops: DropTable = DropTable()
|
||||
|
||||
override fun test(pokemon: Pokemon) = false
|
||||
|
||||
|
||||
+4
-1
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.pokemon.evolution.variants
|
||||
|
||||
import com.cobblemon.mod.common.api.drop.DropTable
|
||||
import com.cobblemon.mod.common.api.moves.MoveTemplate
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
import com.cobblemon.mod.common.api.pokemon.evolution.ContextEvolution
|
||||
@@ -37,6 +38,7 @@ open class ItemInteractionEvolution(
|
||||
override var consumeHeldItem: Boolean,
|
||||
override val requirements: MutableSet<EvolutionRequirement>,
|
||||
override val learnableMoves: MutableSet<MoveTemplate>,
|
||||
override val drops: DropTable,
|
||||
) : ContextEvolution<ItemInteractionEvolution.ItemInteractionContext, NbtItemPredicate> {
|
||||
constructor(): this(
|
||||
id = "id",
|
||||
@@ -46,7 +48,8 @@ open class ItemInteractionEvolution(
|
||||
optional = true,
|
||||
consumeHeldItem = true,
|
||||
requirements = mutableSetOf(),
|
||||
learnableMoves = mutableSetOf()
|
||||
learnableMoves = mutableSetOf(),
|
||||
drops = DropTable(),
|
||||
)
|
||||
|
||||
override fun testContext(pokemon: Pokemon, context: ItemInteractionContext): Boolean =
|
||||
|
||||
+4
-1
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.pokemon.evolution.variants
|
||||
|
||||
import com.cobblemon.mod.common.api.drop.DropTable
|
||||
import com.cobblemon.mod.common.api.moves.MoveTemplate
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
import com.cobblemon.mod.common.api.pokemon.evolution.PassiveEvolution
|
||||
@@ -30,6 +31,7 @@ open class LevelUpEvolution(
|
||||
override var consumeHeldItem: Boolean,
|
||||
override val requirements: MutableSet<EvolutionRequirement>,
|
||||
override val learnableMoves: MutableSet<MoveTemplate>,
|
||||
override val drops: DropTable,
|
||||
override val permanent: Boolean
|
||||
) : PassiveEvolution {
|
||||
|
||||
@@ -42,7 +44,8 @@ open class LevelUpEvolution(
|
||||
consumeHeldItem = true,
|
||||
requirements = mutableSetOf(),
|
||||
learnableMoves = mutableSetOf(),
|
||||
permanent = false
|
||||
drops = DropTable(),
|
||||
permanent = false,
|
||||
)
|
||||
|
||||
override fun equals(other: Any?) = other is LevelUpEvolution && other.id.equals(this.id, true)
|
||||
|
||||
+5
-2
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.pokemon.evolution.variants
|
||||
|
||||
import com.cobblemon.mod.common.api.drop.DropTable
|
||||
import com.cobblemon.mod.common.api.moves.MoveTemplate
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
|
||||
import com.cobblemon.mod.common.api.pokemon.evolution.ContextEvolution
|
||||
@@ -31,7 +32,8 @@ open class TradeEvolution(
|
||||
override var optional: Boolean,
|
||||
override var consumeHeldItem: Boolean,
|
||||
override val requirements: MutableSet<EvolutionRequirement>,
|
||||
override val learnableMoves: MutableSet<MoveTemplate>
|
||||
override val learnableMoves: MutableSet<MoveTemplate>,
|
||||
override val drops: DropTable,
|
||||
) : ContextEvolution<Pokemon, PokemonProperties> {
|
||||
constructor(): this(
|
||||
id = "id",
|
||||
@@ -41,7 +43,8 @@ open class TradeEvolution(
|
||||
optional = true,
|
||||
consumeHeldItem = true,
|
||||
requirements = mutableSetOf(),
|
||||
learnableMoves = mutableSetOf()
|
||||
learnableMoves = mutableSetOf(),
|
||||
drops = DropTable(),
|
||||
)
|
||||
|
||||
override fun testContext(pokemon: Pokemon, context: Pokemon) = this.requiredContext.matches(context)
|
||||
|
||||
+8
@@ -43,6 +43,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.nidoranf.cry": {
|
||||
"animation_length": 1.2,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.nidoranf.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.nidoranf.blink": {
|
||||
"animation_length": 0.16667,
|
||||
"bones": {
|
||||
|
||||
+1
-1
@@ -354,7 +354,7 @@
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.nidorina.cry"
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -105,8 +105,8 @@
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"effect": "nidoqueen_ambient"
|
||||
"0.04": {
|
||||
"effect": "pokemon.nidoqueen.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+8
@@ -47,6 +47,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.nidoranm.cry": {
|
||||
"animation_length": 1.2,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.nidoranm.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.nidoranm.blink": {
|
||||
"animation_length": 0.16667,
|
||||
"bones": {
|
||||
|
||||
+8
@@ -46,6 +46,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.nidorino.cry": {
|
||||
"animation_length": 1.2,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.nidorino.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.nidorino.blink": {
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
|
||||
+1
-1
@@ -132,7 +132,7 @@
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"effect": "nidoking_ambient"
|
||||
"effect": "pokemon.nidoking.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1754
-35
File diff suppressed because it is too large
Load Diff
+2357
-130
File diff suppressed because it is too large
Load Diff
+4077
-225
File diff suppressed because it is too large
Load Diff
+3536
File diff suppressed because it is too large
Load Diff
+5535
-186
File diff suppressed because it is too large
Load Diff
+5726
File diff suppressed because it is too large
Load Diff
+1795
-54
File diff suppressed because it is too large
Load Diff
+3190
File diff suppressed because it is too large
Load Diff
+55
-77
@@ -27,9 +27,6 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-60)*4", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-60)*4", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.sin(q.anim_time*90*1.5-60)*2", 0, 0]
|
||||
}
|
||||
@@ -62,13 +59,10 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.sin(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"leftfrontleg": {
|
||||
"leg_front_left": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
"1.5": ["10-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
@@ -76,7 +70,7 @@
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2+180)*0.8,0,1)", "0-math.sin(q.anim_time*90*2+180)*0.8"]
|
||||
},
|
||||
"leftbackleg": {
|
||||
"leg_back_left": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
"0.5": ["10-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
@@ -84,7 +78,7 @@
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2)*0.8,0,1)", "0-math.sin(q.anim_time*90*2)*0.3"]
|
||||
},
|
||||
"rightfrontleg": {
|
||||
"leg_front_right": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
"0.5": ["10-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
@@ -92,7 +86,7 @@
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2)*0.8,0,1)", "0-math.sin(q.anim_time*90*2)*0.8"]
|
||||
},
|
||||
"rightbackleg": {
|
||||
"leg_back_right": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
"1.5": ["10-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
@@ -123,21 +117,21 @@
|
||||
"head": {
|
||||
"rotation": ["-2.5-math.sin(q.anim_time*90*1.5-30)*2", 0, 0]
|
||||
},
|
||||
"leftfrontleg": {
|
||||
"leg_front_left": {
|
||||
"rotation": [-90, -37.5, 0],
|
||||
"position": [0, -0.5, -2]
|
||||
"position": [0, -1, -2]
|
||||
},
|
||||
"leftbackleg": {
|
||||
"leg_back_left": {
|
||||
"rotation": [-90, -60, 0],
|
||||
"position": [0, -0.5, -0.5]
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"rightfrontleg": {
|
||||
"leg_front_right": {
|
||||
"rotation": [-90, 37.5, 0],
|
||||
"position": [0, -0.5, -2]
|
||||
"position": [0, -1, -2]
|
||||
},
|
||||
"rightbackleg": {
|
||||
"leg_back_right": {
|
||||
"rotation": [-90, 60, 0],
|
||||
"position": [0, -0.5, -0.5]
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*1.5)*0.5", 0, 0]
|
||||
@@ -145,9 +139,6 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-90)*7", 0, "0+math.sin(q.anim_time*90*1.5-90)*3"]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-90)*7", 0, "0-math.sin(q.anim_time*90*1.5-90)*3"]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["32.5-math.sin(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
}
|
||||
@@ -162,16 +153,16 @@
|
||||
"tail3": {
|
||||
"rotation": ["17.5+math.cos(q.anim_time*90*1-180)*4", "math.sin(q.anim_time*90*1-180)*8", 0]
|
||||
},
|
||||
"leftfrontleg": {
|
||||
"leg_front_left": {
|
||||
"rotation": [-15, 0, "-60-math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"rightfrontleg": {
|
||||
"leg_front_right": {
|
||||
"rotation": [-15, 0, "60+math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"leftbackleg": {
|
||||
"leg_back_left": {
|
||||
"rotation": [15, 0, "-60-math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"rightbackleg": {
|
||||
"leg_back_right": {
|
||||
"rotation": [15, 0, "60+math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"body": {
|
||||
@@ -204,16 +195,16 @@
|
||||
"tail3": {
|
||||
"rotation": ["-5-math.cos(q.anim_time*90*2*2-120)*4", "0+math.sin(q.anim_time*90*2*2-180)*15", 0]
|
||||
},
|
||||
"leftfrontleg": {
|
||||
"leg_front_left": {
|
||||
"rotation": ["37.5-math.cos(q.anim_time*90*2*2-60)*7", 0, "-60-math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"rightfrontleg": {
|
||||
"leg_front_right": {
|
||||
"rotation": ["37.5-math.cos(q.anim_time*90*2*2-60)*7", 0, "60+math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"leftbackleg": {
|
||||
"leg_back_left": {
|
||||
"rotation": ["42.5-math.cos(q.anim_time*90*2*2-120)*5", 0, "-60-math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"rightbackleg": {
|
||||
"leg_back_right": {
|
||||
"rotation": ["42.5-math.cos(q.anim_time*90*2*2-120)*5", 0, "60+math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"body": {
|
||||
@@ -237,9 +228,6 @@
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2+150)*9", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2+150)*9", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -264,27 +252,21 @@
|
||||
"head": {
|
||||
"rotation": ["4+math.sin(q.anim_time*90*1-60)*1", 0, 0]
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": [0.1, 0, -0.1]
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": [-0.1, 0, -0.1]
|
||||
},
|
||||
"leftfrontleg": {
|
||||
"leg_front_left": {
|
||||
"rotation": [-90, -37.5, 0],
|
||||
"position": [0, -0.5, 0]
|
||||
"position": [0, -1, 0]
|
||||
},
|
||||
"leftbackleg": {
|
||||
"leg_back_left": {
|
||||
"rotation": [-90, -60, 0],
|
||||
"position": [0, -0.5, -0.5]
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"rightfrontleg": {
|
||||
"leg_front_right": {
|
||||
"rotation": [-90, 37.5, 0],
|
||||
"position": [0, -0.5, -2]
|
||||
"position": [0, -1, 0]
|
||||
},
|
||||
"rightbackleg": {
|
||||
"leg_back_right": {
|
||||
"rotation": [-90, 60, 0],
|
||||
"position": [0, -0.5, -0.5]
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["0+math.sin(q.anim_time*90*1)*1/2", 0, 0]
|
||||
@@ -292,11 +274,14 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0+math.sin(q.anim_time*90*1-120)*8", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0+math.sin(q.anim_time*90*1-120)*8", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["7.5+math.sin(q.anim_time*90*1-120)*4", 0, 0]
|
||||
},
|
||||
"eye_left": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eye_right": {
|
||||
"position": [0.1, 0, 0.1]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -306,15 +291,27 @@
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.125": [0.1, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0.1, 0, -0.1],
|
||||
"post": [0.1, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0.1, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.125": [-0.1, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [-0.1, 0, -0.1],
|
||||
"post": [-0.1, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [-0.1, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -374,30 +371,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.25": {
|
||||
"post": [9, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6667": {
|
||||
"post": [-13, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0833": {
|
||||
"post": [-13, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
@@ -418,6 +391,11 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.5": {
|
||||
"effect": "pokemon.slowpoke.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+396
@@ -0,0 +1,396 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.slowpoke_galarian.ground_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": ["-17.5-math.sin(q.anim_time*90*1.5-30)*3", "-math.cos(q.anim_time*90*1.5/2-30)*2", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["10-math.sin(q.anim_time*90*1.5-90)*3", "0-math.cos(q.anim_time*90*1.5/2-90)*2", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["5-math.sin(q.anim_time*90*1.5-120)*5", "0-math.cos(q.anim_time*90*1.5/2-120)*5", 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5)*0.5", "0-math.cos(q.anim_time*90*1.5/2)*1", 0],
|
||||
"position": [0, "0+math.cos(q.anim_time*90*1.5)*0.2", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["10-math.sin(q.anim_time*90*1.5-160)*2", "0-math.cos(q.anim_time*90*1.5/2-160)*6", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-30)*2", "0-math.cos(q.anim_time*90*1.5/2-60)*1", 0],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-60)*4", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.sin(q.anim_time*90*1.5-60)*2", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.ground_walk": {
|
||||
"loop": true,
|
||||
"animation_length": 2,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": ["-17.5-math.sin(q.anim_time*90*2*2-60)*2", "-math.cos(q.anim_time*90*2-60)*5", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["5-math.sin(q.anim_time*90*2*2-120)*1", "0-math.cos(q.anim_time*90*2-120)*6", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["17.5-math.sin(q.anim_time*90*2*2-180)*4", "-math.cos(q.anim_time*90*2-160)*6", 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2*2)*1", "0-math.cos(q.anim_time*90*2)*2", "0+math.cos(q.anim_time*90*2)*2"],
|
||||
"position": [0, "0+math.cos(q.anim_time*90*2*2)*0.2", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["10-math.sin(q.anim_time*90*2*2-210)*5", "0-math.cos(q.anim_time*90*2-210)*6", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2*2-60)*2", "0-math.sin(q.anim_time*90*2-60)*5", 0],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.sin(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
"1.5": ["10-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
"2.0": ["0-math.sin(q.anim_time*90*2+180)*10", 0, 0]
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2+180)*0.8,0,1)", "0-math.sin(q.anim_time*90*2+180)*0.8"]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
"0.5": ["10-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
"2.0": ["0-math.sin(q.anim_time*90*2)*10", 0, 0]
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2)*0.8,0,1)", "0-math.sin(q.anim_time*90*2)*0.3"]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
"0.5": ["10-math.sin(q.anim_time*90*2)*10", 0, 0],
|
||||
"2.0": ["0-math.sin(q.anim_time*90*2)*10", 0, 0]
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2)*0.8,0,1)", "0-math.sin(q.anim_time*90*2)*0.8"]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": {
|
||||
"0.0": ["0-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
"1.5": ["10-math.sin(q.anim_time*90*2+180)*10", 0, 0],
|
||||
"2.0": ["0-math.sin(q.anim_time*90*2+180)*10", 0, 0]
|
||||
},
|
||||
"position": [0, "0+math.clamp(math.cos(q.anim_time*90*2+180)*0.8,0,1)", "0-math.sin(q.anim_time*90*2+180)*0.3"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.floor_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"position": [0, -1.5, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-15-math.sin(q.anim_time*90*1.5-30)*1", "10-math.cos(q.anim_time*90*1.5-30)*1", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["5-math.sin(q.anim_time*90*1.5-60)*1", "20-math.cos(q.anim_time*90*1.5-30)*4", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["2.5-math.sin(q.anim_time*90*1.5-90)*1", "32.5-math.cos(q.anim_time*90*1.5-30)*3", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["-7.5-math.sin(q.anim_time*90*1.5-120)*1", "22.5-math.cos(q.anim_time*90*1.5-30)*4", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-2.5-math.sin(q.anim_time*90*1.5-30)*2", 0, 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": [-90, -37.5, 0],
|
||||
"position": [0, -1, -2]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": [-90, -60, 0],
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [-90, 37.5, 0],
|
||||
"position": [0, -1, -2]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": [-90, 60, 0],
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*1.5)*0.5", 0, 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-90)*7", 0, "0+math.sin(q.anim_time*90*1.5-90)*3"]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["32.5-math.sin(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.water_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail2": {
|
||||
"rotation": ["7.5+math.cos(q.anim_time*90*1-120)*2", "0+math.sin(q.anim_time*90*1-120)*10", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["17.5+math.cos(q.anim_time*90*1-180)*4", "math.sin(q.anim_time*90*1-180)*8", 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": [-15, 0, "-60-math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [-15, 0, "60+math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": [15, 0, "-60-math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": [15, 0, "60+math.cos(q.anim_time*90*1-60)*6"]
|
||||
},
|
||||
"body": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1)*2", 0, 0],
|
||||
"position": [0, "0-math.sin(q.anim_time*90*1)*0.3", 0]
|
||||
},
|
||||
"torso": {
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-10+math.cos(q.anim_time*90*1-60)*2", "math.sin(q.anim_time*90*1-60)*4", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["15+math.cos(q.anim_time*90*1-210)*3", "0+math.sin(q.anim_time*90*1-210)*9", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1-60)*3", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["27.5-math.cos(q.anim_time*90*1-120)*5", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.water_swim": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail2": {
|
||||
"rotation": ["-math.cos(q.anim_time*90*2*2-60)*5", "math.sin(q.anim_time*90*2*2-120)*5", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["-5-math.cos(q.anim_time*90*2*2-120)*4", "0+math.sin(q.anim_time*90*2*2-180)*15", 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": ["37.5-math.cos(q.anim_time*90*2*2-60)*7", 0, "-60-math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": ["37.5-math.cos(q.anim_time*90*2*2-60)*7", 0, "60+math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": ["42.5-math.cos(q.anim_time*90*2*2-120)*5", 0, "-60-math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": ["42.5-math.cos(q.anim_time*90*2*2-120)*5", 0, "60+math.cos(q.anim_time*90*2-60)*6"]
|
||||
},
|
||||
"body": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2+120)*2", "0-math.cos(q.anim_time*90*2*2)*5", "0-math.cos(q.anim_time*90*2)*1"],
|
||||
"position": ["math.cos(q.anim_time*90*2*2)*0.5", "0-math.sin(q.anim_time*90*2*2)*0.3", "0-math.sin(q.anim_time*90*1*2)*1"]
|
||||
},
|
||||
"torso": {
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-2.5-math.cos(q.anim_time*90*2*2+60)*5", "0+math.sin(q.anim_time*90*2*2-60)*10", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": [-2.5, "math.sin(q.anim_time*90*2*2-210)*10", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*4+180)*0.2", "0-math.cos(q.anim_time*90*2*2+120)*6", "0-math.cos(q.anim_time*90*2+60)*3"]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["27.5-math.cos(q.anim_time*90*2*2-120)*5", 0, 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2+150)*9", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.sleep": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"position": [0, -1.5, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-15+math.sin(q.anim_time*90*1-60)*1", "10+math.sin(q.anim_time*90*1-60)*1", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["11.7924+math.sin(q.anim_time*90*1-120)*2", "19.5613+math.sin(q.anim_time*90*1-120)*2", 5.29326]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["3.158+math.sin(q.anim_time*90*1-180)*4", "32.144+math.sin(q.anim_time*90*1-180)*4", 5.90251]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["0.5+math.sin(q.anim_time*90*1-210)*4", "22.5+math.sin(q.anim_time*90*1-210)*4", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["4+math.sin(q.anim_time*90*1-60)*1", 0, 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": [-90, -37.5, 0],
|
||||
"position": [0, -1, 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": [-90, -60, 0],
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [-90, 37.5, 0],
|
||||
"position": [0, -1, 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": [-90, 60, 0],
|
||||
"position": [0, -1, -0.5]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["0+math.sin(q.anim_time*90*1)*1/2", 0, 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0+math.sin(q.anim_time*90*1-120)*8", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["7.5+math.sin(q.anim_time*90*1-120)*4", 0, 0]
|
||||
},
|
||||
"eye_left": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eye_right": {
|
||||
"position": [0.1, 0, 0.1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.125": [0.1, 0, -0.1],
|
||||
"0.1667": {
|
||||
"pre": [0.1, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.125": [-0.1, 0, -0.1],
|
||||
"0.1667": {
|
||||
"pre": [-0.1, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowpoke_galarian.cry": {
|
||||
"animation_length": 1.75,
|
||||
"bones": {
|
||||
"head": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.25": {
|
||||
"post": [4, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6667": {
|
||||
"post": [-13, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0": {
|
||||
"post": [-13, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.3333": {
|
||||
"post": [1, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.75": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.25": {
|
||||
"post": [9, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.6667": {
|
||||
"post": [-13, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0833": {
|
||||
"post": [-13, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [36, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.1667": {
|
||||
"post": [28.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.5": {
|
||||
"effect": "pokemon.slowpoke.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+191
-134
@@ -38,35 +38,32 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5-60)*6", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5-60)*6", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.cos(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
"rotation": ["50-math.cos(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
},
|
||||
"finger_left": {
|
||||
"finger_front_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_left2": {
|
||||
"finger_middle_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_left3": {
|
||||
"finger_back_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_right": {
|
||||
"finger_front_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right2": {
|
||||
"finger_middle_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right3": {
|
||||
"finger_back_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5)*0.5", "0-math.cos(q.anim_time*90*1.5-120)*0.5", 0]
|
||||
"rotation": ["-15-math.cos(q.anim_time*90*1.5)*0.5", "0-math.cos(q.anim_time*90*1.5-120)*0.5", 0]
|
||||
},
|
||||
"shell_jaw": {
|
||||
"rotation": ["-7.5-math.cos(q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
"rotation": ["10-math.cos(q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [0, -7.5, 0]
|
||||
@@ -113,35 +110,32 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5-60)*6", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5-60)*6", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.cos(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
"rotation": ["50-math.cos(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
},
|
||||
"finger_left": {
|
||||
"finger_front_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_left2": {
|
||||
"finger_middle_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_left3": {
|
||||
"finger_back_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_right": {
|
||||
"finger_front_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right2": {
|
||||
"finger_middle_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right3": {
|
||||
"finger_back_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": ["-4.5236-math.cos(q.anim_time*90*1.5)*0.5", "17.6892-math.cos(q.anim_time*90*1.5-120)*0.5", -27.73805]
|
||||
"rotation": ["-17.0236-math.cos(q.anim_time*90*1.5)*0.5", "17.6892-math.cos(q.anim_time*90*1.5-120)*0.5", -27.73805]
|
||||
},
|
||||
"shell_jaw": {
|
||||
"rotation": ["-7.5-math.cos(q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
"rotation": ["0.3427-math.cos(q.anim_time*90*1.5-30)*1", 4.34473, 9.01551]
|
||||
},
|
||||
"body": {
|
||||
"rotation": [0, -15, 0]
|
||||
@@ -168,11 +162,8 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["20+math.cos(q.anim_time*90*2*2-60)*2", 0, 0]
|
||||
"rotation": ["45+math.cos(q.anim_time*90*2*2-60)*2", 0, 0]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": ["-20+math.sin(q.anim_time*90*2-30)*4", 48, 41]
|
||||
@@ -186,13 +177,13 @@
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-50-math.sin(q.anim_time*90*2-60)*2"]
|
||||
},
|
||||
"finger_right": {
|
||||
"finger_front_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right2": {
|
||||
"finger_middle_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right3": {
|
||||
"finger_back_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"tail": {
|
||||
@@ -202,7 +193,7 @@
|
||||
"rotation": ["20+math.sin(q.anim_time*90*2*2-120)*1", "0-math.cos(q.anim_time*90*2-120)*4", 0]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2*2-180)*2", "0-math.cos(q.anim_time*90*2-120)*1", 0]
|
||||
"rotation": ["-7.5-math.sin(q.anim_time*90*2*2-180)*2", "-math.cos(q.anim_time*90*2-120)*1", 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["0.0577+math.cos(q.anim_time*90*2)*5", -9.98078, -0.44192],
|
||||
@@ -258,17 +249,17 @@
|
||||
"2.0": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"finger_left": {
|
||||
"finger_front_left": {
|
||||
"rotation": [0, 0, "40+math.sin(q.anim_time*90*3-90)*2"]
|
||||
},
|
||||
"finger_left2": {
|
||||
"finger_middle_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"finger_left3": {
|
||||
"finger_back_left": {
|
||||
"rotation": [0, 0, 40]
|
||||
},
|
||||
"shell_jaw": {
|
||||
"rotation": ["-2.5+math.sin(q.anim_time*90*2*2-180)*2", 0, 0]
|
||||
"rotation": ["math.sin(q.anim_time*90*2*2-180)*2", 0, 0]
|
||||
},
|
||||
"body": {
|
||||
"rotation": [0, "0-math.cos(q.anim_time*90*2)*3", 0]
|
||||
@@ -277,7 +268,7 @@
|
||||
},
|
||||
"animation.slowbro.water_idle": {
|
||||
"loop": true,
|
||||
"animation_length": 2.66667,
|
||||
"animation_length": 2.6667,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": ["60-math.sin(q.anim_time*90*1.5)*2", 0, 0],
|
||||
@@ -316,7 +307,7 @@
|
||||
"rotation": [-67.29, "-18.56-math.sin(q.anim_time*90*1.5-30)*4", -24.46]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.sin(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
"rotation": ["35-math.sin(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, 0, "10+math.sin(q.anim_time*90*1.5-60)*2"]
|
||||
@@ -348,11 +339,8 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-30)*4", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-30)*4", 0, 0]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-90)*1", 0, 0]
|
||||
"rotation": ["-5-math.sin(q.anim_time*90*1.5-90)*1", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -395,41 +383,38 @@
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2.5-60)*6", 0, 0]
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2.5-60)*6", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["15-math.sin(q.anim_time*90*2.5-30)*5", 0, 0]
|
||||
"rotation": ["25-math.sin(q.anim_time*90*2.5-30)*5", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, "0+math.cos(q.anim_time*90*2.5-30)*4", 17.5]
|
||||
},
|
||||
"finger_left": {
|
||||
"finger_front_left": {
|
||||
"rotation": [0, 0, "12.5-math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"finger_left2": {
|
||||
"finger_middle_left": {
|
||||
"rotation": [0, 0, "12.5-math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"finger_left3": {
|
||||
"finger_back_left": {
|
||||
"rotation": [0, 0, "12.5-math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-17.5-math.cos(q.anim_time*90*2.5-30)*4"]
|
||||
},
|
||||
"finger_right": {
|
||||
"finger_front_right": {
|
||||
"rotation": [0, 0, "-12.5+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"finger_right2": {
|
||||
"finger_middle_right": {
|
||||
"rotation": [0, 0, "-12.5+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"finger_right3": {
|
||||
"finger_back_right": {
|
||||
"rotation": [0, 0, "-12.5+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": [15, 0, 0]
|
||||
"rotation": [-2.5, 0, 0]
|
||||
},
|
||||
"shell_jaw": {
|
||||
"rotation": ["-19.76-math.sin(q.anim_time*90*2.5-90)*2", -0.32, -1.48]
|
||||
"rotation": ["-7.26-math.sin(q.anim_time*90*2.5-90)*2", -0.32, -1.48]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["-30-math.cos(q.anim_time*90*2.5)*15", 0, 0]
|
||||
@@ -453,6 +438,7 @@
|
||||
},
|
||||
"animation.slowbro.sleep": {
|
||||
"loop": true,
|
||||
"animation_length": 2.44,
|
||||
"bones": {
|
||||
"body": {
|
||||
"position": [0, -2.5, 0]
|
||||
@@ -463,25 +449,19 @@
|
||||
"head": {
|
||||
"rotation": ["12.5+math.sin(q.anim_time*90*1-30)*2", 0, 0]
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": [0.1, 0, -0.1]
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": [-0.1, 0, -0.1]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [-20, 48, "41-math.cos(q.anim_time*90*1)*3"]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [9.42, 6, "65-math.sin(q.anim_time*90*1)*2"]
|
||||
},
|
||||
"finger_left": {
|
||||
"finger_front_left": {
|
||||
"rotation": [0, 0, 27.5]
|
||||
},
|
||||
"finger_left2": {
|
||||
"finger_middle_left": {
|
||||
"rotation": [0, 0, 27.5]
|
||||
},
|
||||
"finger_left3": {
|
||||
"finger_back_left": {
|
||||
"rotation": [0, 0, 27.5]
|
||||
},
|
||||
"arm_right": {
|
||||
@@ -490,13 +470,13 @@
|
||||
"arm_right2": {
|
||||
"rotation": [9.42, -6, "-65+math.sin(q.anim_time*90*1)*2"]
|
||||
},
|
||||
"finger_right": {
|
||||
"finger_front_right": {
|
||||
"rotation": [0, 0, -27.5]
|
||||
},
|
||||
"finger_right2": {
|
||||
"finger_middle_right": {
|
||||
"rotation": [0, 0, -27.5]
|
||||
},
|
||||
"finger_right3": {
|
||||
"finger_back_right": {
|
||||
"rotation": [0, 0, -27.5]
|
||||
},
|
||||
"tail": {
|
||||
@@ -506,17 +486,17 @@
|
||||
"rotation": [27.5, 0, 0]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": [-2.5, 0, 0],
|
||||
"rotation": [-17.5, 0, 0],
|
||||
"position": [0, 0, -0.5]
|
||||
},
|
||||
"shell_eyelid_left": {
|
||||
"eyelid_shell_left": {
|
||||
"position": [0, 0.1, 0]
|
||||
},
|
||||
"shell_eyelid_right": {
|
||||
"eyelid_shell_right": {
|
||||
"position": [0, 0.1, 0]
|
||||
},
|
||||
"shell_jaw": {
|
||||
"rotation": ["-20+math.sin(q.anim_time*90*1-120)*2", 0, 0]
|
||||
"rotation": ["math.sin(q.anim_time*90*1-120)*2", 0, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [-90, -25, 0]
|
||||
@@ -525,25 +505,75 @@
|
||||
"rotation": [-90, 25, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["17.5+math.sin(q.anim_time*90*1-60)*4", 0, 0]
|
||||
"rotation": ["37.5+math.sin(q.anim_time*90*1-60)*4", 0, 0]
|
||||
},
|
||||
"eye_left": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eye_right": {
|
||||
"position": [0.1, 0, 0.1]
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": [0.1, 0, -0.1]
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": [-0.1, 0, -0.1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro.blink1": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eye_left": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, 0.1],
|
||||
"0.125": {
|
||||
"pre": [-0.1, 0, 0.1],
|
||||
"post": [-0.1, 0, 0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [-0.1, 0, 0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eye_right": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, 0.1],
|
||||
"0.125": {
|
||||
"pre": [0.1, 0, 0.1],
|
||||
"post": [0.1, 0, 0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0.1, 0, 0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.125": [0.1, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0.1, 0, -0.1],
|
||||
"post": [0.1, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0.1, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.125": [-0.1, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [-0.1, 0, -0.1],
|
||||
"post": [-0.1, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [-0.1, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -551,18 +581,56 @@
|
||||
"animation.slowbro.blink2": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"shell_eyelid_left": {
|
||||
"eyelid_shell_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0.1, 0],
|
||||
"0.125": [0, 0.1, 0],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0, 0.1, 0],
|
||||
"post": [0, 0.1, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0.1, 0],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"shell_eyelid_right": {
|
||||
"eyelid_shell_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0.1, 0],
|
||||
"0.125": [0, 0.1, 0],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0, 0.1, 0],
|
||||
"post": [0, 0.1, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0.1, 0],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eye_shell_left": {
|
||||
"position": {
|
||||
"0.0": [0, -0.1, 0],
|
||||
"0.125": {
|
||||
"pre": [0, -0.1, 0],
|
||||
"post": [0, -0.1, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, -0.1, 0],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eye_shell_right": {
|
||||
"position": {
|
||||
"0.0": [0, -0.1, 0],
|
||||
"0.125": {
|
||||
"pre": [0, -0.1, 0],
|
||||
"post": [0, -0.1, 0]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, -0.1, 0],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -612,25 +680,6 @@
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [-2, 0, 0],
|
||||
"post": [-2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
@@ -649,11 +698,19 @@
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"shell_jaw": {
|
||||
"rotation": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.4167": {
|
||||
"effect": "pokemon.slowbro.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro.bite_quirk": {
|
||||
"animation_length": 1.66667,
|
||||
"animation_length": 1.6667,
|
||||
"bones": {
|
||||
"shell": {
|
||||
"rotation": {
|
||||
@@ -672,10 +729,10 @@
|
||||
"0.75": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"shell_eye_left": {
|
||||
"eye_shell_left": {
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"shell_eyelid_left": {
|
||||
"eyelid_shell_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": [0, 0, 0],
|
||||
@@ -684,7 +741,7 @@
|
||||
"0.2917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"shell_eyelid_right": {
|
||||
"eyelid_shell_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.0833": [0, 0, 0],
|
||||
@@ -731,24 +788,6 @@
|
||||
"1.6667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.25": [0, 0, 0],
|
||||
"0.2917": [0.1, 0, -0.1],
|
||||
"0.4167": [0.1, 0, -0.1],
|
||||
"0.4583": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.25": [0, 0, 0],
|
||||
"0.2917": [-0.1, 0, -0.1],
|
||||
"0.4167": [-0.1, 0, -0.1],
|
||||
"0.4583": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
@@ -772,6 +811,21 @@
|
||||
"tail": {
|
||||
"rotation": [0, 0, 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [0, -1, 0],
|
||||
"post": [0, -1, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"post": [0, 1, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.6667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"pupil_right": {
|
||||
"position": {
|
||||
"0.25": [0, 0, 0],
|
||||
@@ -802,19 +856,22 @@
|
||||
"1.625": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"torso": {
|
||||
"rotation": {
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [0, -1, 0],
|
||||
"post": [0, -1, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"post": [0, 1, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.6667": [0, 0, 0]
|
||||
"0.25": [0, 0, 0],
|
||||
"0.2917": [0.1, 0, -0.1],
|
||||
"0.4167": [0.1, 0, -0.1],
|
||||
"0.4583": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.25": [0, 0, 0],
|
||||
"0.2917": [-0.1, 0, -0.1],
|
||||
"0.4167": [-0.1, 0, -0.1],
|
||||
"0.4583": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+548
@@ -0,0 +1,548 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.slowbro_galarian.ground_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"leftarm": {
|
||||
"rotation": [110.94102, 40.7895, 110.3612]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [110.94102, -40.78947, -110.3612]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["10-math.cos(q.anim_time*90*1.5)*1", 0, 0],
|
||||
"position": [0, "0-math.sin(q.anim_time*90*1.5)*0.3", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-5-math.cos(q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [-27.76008, 60.42863, "20.7959-math.cos(q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [-20, -48, "-41+math.cos(q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-62.5+math.cos(q.anim_time*90*1.5-60)*2"]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5-60)*6", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["50-math.cos(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right2": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right3": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [0, -7.5, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": [0, 12.5, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [-15, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, 0, "25-math.cos(q.anim_time*90*1.5-60)*2"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.battle_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"leftarm": {
|
||||
"rotation": [110.94102, 40.7895, 110.3612]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [110.94102, -40.78947, -110.3612]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["12.5-math.cos(q.anim_time*90*1.5)*1", 0, 0],
|
||||
"position": [0, "0-math.sin(q.anim_time*90*1.5)*0.3", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-7.8959-math.cos(q.anim_time*90*1.5-30)*1", 17.33034, -2.40854]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [-20, 53, "26-math.cos(q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [-20, -48, "-41+math.cos(q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-62.5+math.cos(q.anim_time*90*1.5-60)*2"]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*1.5-60)*6", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["50-math.cos(q.anim_time*90*1.5-60)*5", 0, 0]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right2": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right3": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"body": {
|
||||
"rotation": [0, -15, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [0, -12.5, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": [0, 22.5, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [-15, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, 0, "27.5-math.cos(q.anim_time*90*1.5-60)*2"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.ground_walk": {
|
||||
"loop": true,
|
||||
"animation_length": 2,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": ["12.5+math.cos(q.anim_time*90*2*2)*2", "-math.cos(q.anim_time*90*2)*5", "-math.sin(q.anim_time*90*2)*5"],
|
||||
"position": [0, "0+math.sin(q.anim_time*90*2*2)*0.2", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-10-math.cos(q.anim_time*90*2*2-60)*3", "0+math.cos(q.anim_time*90*2-60)*8", "0+math.sin(q.anim_time*90*2-60)*2"]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.cos(q.anim_time*90*2*2-120)*4", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["45+math.cos(q.anim_time*90*2*2-60)*2", 0, 0]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": ["-26.7971+math.sin(q.anim_time*90*2-30)*4", 53.71545, 32.32408]
|
||||
},
|
||||
"shell": {
|
||||
"rotation": [0, 0, "47.5+math.sin(q.anim_time*90*2-60)*2"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": ["-20+math.sin(q.anim_time*90*2-30)*4", -48, -41]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-50-math.sin(q.anim_time*90*2-60)*2"]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right2": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"finger_right3": {
|
||||
"rotation": [0, 0, -40]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["0.0577+math.cos(q.anim_time*90*2)*5", -9.98078, -0.44192],
|
||||
"position": {
|
||||
"0.0": [0, "-0.1+math.clamp(math.sin(q.anim_time*90*2)*1,0,2)", "0.3+math.cos(q.anim_time*90*2)*0.5"],
|
||||
"0.8333": [0, "0+math.clamp(math.sin(q.anim_time*90*2)*1,0,2)", "0.3+math.cos(q.anim_time*90*2)*0.5"],
|
||||
"0.9167": [0, 0, "0.3+math.cos(q.anim_time*90*2)*0.5"],
|
||||
"2.0": [0, "-0.1+math.clamp(math.sin(q.anim_time*90*2)*1,0,2)", "0.3+math.cos(q.anim_time*90*2)*0.5"]
|
||||
}
|
||||
},
|
||||
"leg_left2": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2)*5", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"rotation": {
|
||||
"0.0": ["-10-math.clamp(math.sin(q.anim_time*90*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2+30)*12,0,12)", 0, 0],
|
||||
"0.8333": ["1.5-math.clamp(math.sin(q.anim_time*90*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2+30)*12,0,12)", 0, 0],
|
||||
"0.9583": [5, 0, 0],
|
||||
"1.5": [-5.3, 0, 0],
|
||||
"2.0": ["-10-math.clamp(math.sin(q.anim_time*90*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2+30)*12,0,12)", 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"1.5": [0, -0.15, 0],
|
||||
"1.75": [0, -0.15, 0],
|
||||
"1.9167": [0, -0.15, 0],
|
||||
"2.0": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": ["-0.0239+math.cos(q.anim_time*90*2-180)*5", 7.49044, -0.21969],
|
||||
"position": {
|
||||
"0.0": [0, "0+math.clamp(math.sin(q.anim_time*90*2+180)*1,0,2)", "0.3+math.cos(q.anim_time*90*2+180)*0.5"],
|
||||
"1.875": [0, "0+math.clamp(math.sin(q.anim_time*90*2+180)*1,0,2)", "0.3+math.cos(q.anim_time*90*2+180)*0.5"],
|
||||
"1.9167": [0, 0, "0.3+math.cos(q.anim_time*90*2+180)*0.5"]
|
||||
}
|
||||
},
|
||||
"leg_right2": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2)*5", 0, 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"rotation": {
|
||||
"0.0": ["5-math.clamp(math.sin(q.anim_time*90*2-180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2-150)*12,0,12)", 0, 0],
|
||||
"0.375": ["5-math.clamp(math.sin(q.anim_time*90*2-180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2-150)*12,0,12)", 0, 0],
|
||||
"0.8333": ["-2-math.clamp(math.sin(q.anim_time*90*2-180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2-150)*12,0,12)", 0, 0],
|
||||
"1.0": ["-9.5-math.clamp(math.sin(q.anim_time*90*2-180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2-150)*12,0,12)", 0, 0],
|
||||
"1.7917": ["-math.clamp(math.sin(q.anim_time*90*2-180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2-150)*12,0,12)", 0, 0],
|
||||
"1.9583": ["5-math.clamp(math.sin(q.anim_time*90*2-180)*10,0,10)+math.clamp(math.sin(q.anim_time*90*2-150)*12,0,12)", 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.8333": [0, -0.1, 0],
|
||||
"2.0": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"body": {
|
||||
"rotation": [0, "0-math.cos(q.anim_time*90*2)*3", 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.water_idle": {
|
||||
"loop": true,
|
||||
"animation_length": 2.6667,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": ["60-math.sin(q.anim_time*90*1.5)*2", 0, 0],
|
||||
"position": [0, "0+math.cos(q.anim_time*90*1.5)*0.3", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-60-math.sin(q.anim_time*90*1.5-30)*1", 0, 0],
|
||||
"position": [0, 1, -3]
|
||||
},
|
||||
"fesh": {
|
||||
"rotation": [5, 0, 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [0, 15, 30]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [0, -15, -30]
|
||||
},
|
||||
"leftleg": {
|
||||
"rotation": [0, 0, 15]
|
||||
},
|
||||
"rightleg": {
|
||||
"rotation": [0, 0, -15]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [-67.29, "18.56+math.sin(q.anim_time*90*1.5-30)*4", 24.46]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [-67.29, "-18.56-math.sin(q.anim_time*90*1.5-30)*4", -24.46]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["45+math.cos(q.anim_time*90*2*2-60)*2", 0, 0]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-10-math.sin(q.anim_time*90*1.5-60)*2"]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["-30.21-math.sin(q.anim_time*90*1.5-30)*3", -6.49, 3.77]
|
||||
},
|
||||
"leg_left2": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": ["-30.21-math.sin(q.anim_time*90*1.5-30)*3", 6.49, -3.77]
|
||||
},
|
||||
"leg_right2": {
|
||||
"rotation": [10, 0, 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5)*1", 0, 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*1.5-30)*4", 0, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [-47.5, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0],
|
||||
"position": [0, -1, -1]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [12.5, "-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, 0, "10+math.sin(q.anim_time*90*1.5-60)*2"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.water_swim": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": ["75-math.sin(q.anim_time*90*2.5)*2", 0, "0-math.cos(q.anim_time*90*2.5-30)*1"],
|
||||
"position": [0, "0+math.cos(q.anim_time*90*2.5)*0.3", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-70-math.sin(q.anim_time*90*2.5-30)*1.5", 0, 0],
|
||||
"position": [0, 2, -3]
|
||||
},
|
||||
"fesh": {
|
||||
"rotation": [5, 0, 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [0, 15, 45]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [0, -15, -45]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [0, "27.5+math.cos(q.anim_time*90*2.5-30)*8", "4.5-math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [0, "-27.5-math.cos(q.anim_time*90*2.5-30)*8", "-32+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2.5)*1", "0-math.cos(q.anim_time*90*2.5)*3", 0]
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": ["0-math.sin(q.anim_time*90*2.5-60)*6", 0, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["25-math.sin(q.anim_time*90*2.5-30)*5", 0, 0]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, 0, "-17.5-math.cos(q.anim_time*90*2.5-30)*4"]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, "-12.5+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"finger_right2": {
|
||||
"rotation": [0, 0, "-12.5+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"finger_right3": {
|
||||
"rotation": [0, 0, "-12.5+math.sin(q.anim_time*90*2.5-30)*20"]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["-30-math.cos(q.anim_time*90*2.5)*15", 0, 0]
|
||||
},
|
||||
"leg_left2": {
|
||||
"rotation": ["15-math.cos(q.anim_time*90*2.5-30)*8", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"rotation": ["7.5-math.cos(q.anim_time*90*2.5-60)*4", 0, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": ["-30-math.cos(q.anim_time*90*2.5+180)*15", 0, 0]
|
||||
},
|
||||
"leg_right2": {
|
||||
"rotation": ["15-math.cos(q.anim_time*90*2.5+150)*8", 0, 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"rotation": ["7.5-math.cos(q.anim_time*90*2.5+120)*4", 0, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [-57.5, "0-math.cos(Q.anim_time*90*2.5-60)*15", "0+math.cos(Q.anim_time*90*2.5-60)*10"],
|
||||
"position": [0, -1, -1]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [7.85546, "-0.7603-math.cos(Q.anim_time*90*2.5-120)*15", 1.20833]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*2.5-120)*15", 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, "0+math.cos(q.anim_time*90*2.5-30)*4", 5]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.sleep": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"position": [0, -2.5, 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-7.5+math.sin(q.anim_time*90*1)*1", 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["12.5+math.sin(q.anim_time*90*1-30)*2", 0, 0]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [-29.40881, 53.79771, "32.9341-math.cos(q.anim_time*90*1)*3"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [-20, -48, "-41+math.cos(q.anim_time*90*1)*3"]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [9.42, -6, "-65+math.sin(q.anim_time*90*1)*2"]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -27.5]
|
||||
},
|
||||
"finger_right2": {
|
||||
"rotation": [0, 0, -27.5]
|
||||
},
|
||||
"finger_right3": {
|
||||
"rotation": [0, 0, -27.5]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [-90, -25, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": [-90, 25, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["37.5+math.sin(q.anim_time*90*1-60)*4", 0, 0]
|
||||
},
|
||||
"eye_left": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eye_right": {
|
||||
"position": [0.1, 0, 0.1]
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": [0.1, 0, -0.1]
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": [-0.1, 0, -0.1]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [8.56337, 7.17385, "22.543-math.sin(q.anim_time*90*1)*2"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.125": [0.1, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.125": [-0.1, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowbro_galarian.cry": {
|
||||
"animation_length": 2,
|
||||
"bones": {
|
||||
"head": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [-2, 0, 0],
|
||||
"post": [-2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": {
|
||||
"post": [1, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.0": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"ear_left": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [-2, 0, 0],
|
||||
"post": [-2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [-2, 0, 0],
|
||||
"post": [-2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [2, 0, 0],
|
||||
"post": [2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [25, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.125": {
|
||||
"post": [25, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.4167": {
|
||||
"effect": "pokemon.slowbro.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -371,7 +371,7 @@
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.1667": {
|
||||
"effect": "horsea_cry"
|
||||
"effect": "pokemon.horsea.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+8
@@ -234,6 +234,14 @@
|
||||
"scale": [1, 0.7, 1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.seadra.cry": {
|
||||
"animation_length": 1.2,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.seadra.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+4536
-8
File diff suppressed because it is too large
Load Diff
+2290
-36
File diff suppressed because it is too large
Load Diff
+676
-670
File diff suppressed because it is too large
Load Diff
+898
@@ -0,0 +1,898 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.tauros_paldean_aqua.ground_walk": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
|
||||
"position": [0, "-1.75+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*0.5+0.5", 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [
|
||||
"-math.sin(q.anim_time*90*4-90)*0.5+math.sin(q.anim_time*90*4*2-45)*1",
|
||||
0,
|
||||
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
|
||||
],
|
||||
"position": ["math.sin(q.anim_time*90*4-45)*0.1", "math.sin(-q.anim_time*90*4*2-45)*0.1", 0]
|
||||
},
|
||||
"mane_top": {
|
||||
"rotation": ["math.sin(q.anim_time*90*8+90)*4-4", 0, 0]
|
||||
},
|
||||
"mane_bottom": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*8+90)*4-4", 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5+120)*6", "-math.sin(q.anim_time*90*1.5-33*5+120)*2", 0]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": ["-5-math.sin(q.anim_time*90*3-33*6+120)*8", "math.sin(q.anim_time*90*1.5-33*6+120)*3", 0]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7+120)*8", "-15+math.sin(q.anim_time*90*1.5-33*4+120)*8", 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8+120)*8", "-15+math.sin(q.anim_time*90*1.5-33*3+120)*8", 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*10", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_middle2": {
|
||||
"rotation": ["15-math.sin(q.anim_time*90*3-33*6-120)*8", "math.sin(q.anim_time*90*1.5-33*6-120)*3", 0]
|
||||
},
|
||||
"tail_middle3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7-120)*8", "math.sin(q.anim_time*90*1.5-33*4-120)*4", 0]
|
||||
},
|
||||
"tail_middle4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8-120)*8", "math.sin(q.anim_time*90*1.5-33*3-120)*6", 0]
|
||||
},
|
||||
"tail_middle5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9-120)*10", "-math.sin(q.anim_time*90*1.5-33*2-120)*10", 0]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5)*6", "-math.sin(q.anim_time*90*1.5-33*5)*2", 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": ["-5-math.sin(q.anim_time*90*3-33*6)*8", "math.sin(q.anim_time*90*1.5-33*6)*3", 0]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7)*8", "15+math.sin(q.anim_time*90*1.5-33*4)*8", 0]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8)*8", "15+math.sin(q.anim_time*90*1.5-33*3)*8", 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*10", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [
|
||||
"20-math.clamp(20*(math.sin(q.anim_time*90*4-90+33+180)*1+1),-0,60)",
|
||||
0,
|
||||
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180*0)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)-math.clamp(math.sin(q.anim_time*90*4)*1,0,0.75)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4-180*1+33)*40,0,40)+(math.clamp(math.sin(q.anim_time*90*2-90*3)*1,0.5,1)*1-0.5)*30+(math.clamp(math.sin(q.anim_time*90*2-90*1)*1,0.5,1)*1-0.5)*30",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": ["-20+math.clamp(10*(math.sin(q.anim_time*90*4-90-180*1)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4-180*1+10)*30,-2.5,30)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+90)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": [
|
||||
"20-math.clamp(20*(math.sin(q.anim_time*90*4-90+33)*1+1),-0,60)",
|
||||
0,
|
||||
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)-math.clamp(math.sin(q.anim_time*90*4-180)*1,0,0.75)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4-180*0+33)*40,0,40)+(math.clamp(math.sin(q.anim_time*90*2-90*0)*1,0.5,1)*1-0.5)*30+(math.clamp(math.sin(q.anim_time*90*2-90*2)*1,0.5,1)*1-0.5)*30",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": ["-20+math.clamp(10*(math.sin(q.anim_time*90*4-90-180*0)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4-180*0+10)*30,-5,30)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": [
|
||||
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
|
||||
0,
|
||||
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180*0)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"-math.clamp(-math.sin(q.anim_time*90*4+90+180*1)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180*1)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180*1)*1.5,0.4,0.6)-0.3+(math.clamp(-math.sin(q.anim_time*90*2+70+180*1)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2+70+180*0)*1,0.5,1)+0.5)*0.5",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*10,0,45)-math.clamp(math.sin(q.anim_time*90*4+180*0)*10,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40+180)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4+180*1)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4+10+180*0)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4-90+180*1)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-130+180*1)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180*0)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": [
|
||||
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
|
||||
0,
|
||||
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"-math.clamp(-math.sin(q.anim_time*90*4+90+180*0)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180*0)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180*0)*1.5,0.4,0.6)-0.3+(math.clamp(-math.sin(q.anim_time*90*2+70+180*0)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2+70+180*1)*1,0.5,1)+0)*0.5",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_back_left2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*10,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_left3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4+180*0)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4+10+180*1)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4-90+180*0)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-130+180*0)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"tail_right6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_middle6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_left6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*6", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"tail_middle": {
|
||||
"rotation": [2, 0, 0]
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_aqua.ground_run": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2+45)*6", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.4,1.1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.4,1.1)",
|
||||
"math.sin(q.anim_time*90*4*2-33)*1"
|
||||
]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": [0, 0, 0],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4*2+45)*6+math.sin(q.anim_time*90*4*2-45)*4", 0, 0],
|
||||
"position": ["math.sin(q.anim_time*90*4-45)*0.1", "math.sin(-q.anim_time*90*4*2-45)*0.1", 0]
|
||||
},
|
||||
"mane_top": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-45)*20-5", 0, 0]
|
||||
},
|
||||
"mane_bottom": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2)*20+10", 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*4+45)*10+5", "math.sin(q.anim_time*90*2-33*4)*1+5", 0]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*5+45)*12", "-math.sin(q.anim_time*90*2-33*5)*2+5", 0]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*6+45)*14", "-math.sin(q.anim_time*90*2-33*6)*3+2.5", 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*16", "-math.sin(q.anim_time*90*2-33*7)*3+5", 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*8+45)*16", "-math.sin(q.anim_time*90*2-33*8)*6", 0]
|
||||
},
|
||||
"tails": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*5+45)*10+5", "-math.sin(q.anim_time*90*4-33*6+45)*2", 0]
|
||||
},
|
||||
"tail_middle2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*6+45)*12", "-math.sin(q.anim_time*90*4-33*7+45)*2", 0]
|
||||
},
|
||||
"tail_middle3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*14", "-math.sin(q.anim_time*90*4-33*8+45)*2", 0]
|
||||
},
|
||||
"tail_middle4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*8+45)*16", "-math.sin(q.anim_time*90*4-33*9+45)*2", 0]
|
||||
},
|
||||
"tail_middle5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*9+45)*16", "-math.sin(q.anim_time*90*4-33*10+45)*4", 0]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*3+45)*12+5", "-math.sin(q.anim_time*90*2-33*3+180)*1-5", 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*4+45)*10", "math.sin(q.anim_time*90*2-33*4+180)*2-5", 0]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*5+45)*14", "math.sin(q.anim_time*90*2-33*5+180)*3-2.5", 0]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*6+45)*16", "math.sin(q.anim_time*90*2-33*6+180)*3-5", 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*16", "math.sin(q.anim_time*90*2-33*7+180)*6", 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": ["15-math.clamp(30*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,60)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4*2-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4*2-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4*2)*1.4,1,1.4)+1)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": [
|
||||
"5+math.clamp(math.sin(q.anim_time*90*4*2-180*0)*50,-10,50)+(math.clamp(math.sin(q.anim_time*90*2*2-180*0)*1,0.6,1)*1-0.5)*50+(math.clamp(math.sin(q.anim_time*90*2*2-180*1)*1,0.6,1)*1-0.5)*50",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": ["-12.5+math.clamp(30*(math.sin(q.anim_time*90*4*2-90-180*0)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4*2-180*0+10)*70,0,100)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4*2-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2*2-130)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": ["15-math.clamp(30*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,60)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4*2-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4*2-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4*2)*1.4,1,1.4)+1)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": [
|
||||
"5+math.clamp(math.sin(q.anim_time*90*4*2-180*0)*50,-10,50)+(math.clamp(math.sin(q.anim_time*90*2*2-180*0)*1,0.6,1)*1-0.5)*50+(math.clamp(math.sin(q.anim_time*90*2*2-180*1)*1,0.6,1)*1-0.5)*50",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": ["-12.5+math.clamp(30*(math.sin(q.anim_time*90*4*2-90-180*0)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4*2-180*0+10)*70,0,100)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4*2-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2*2-130)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": ["-20+math.clamp(25*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,48)+5*math.sin(q.anim_time*90*4*2-90)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"-(math.clamp(-math.sin(q.anim_time*90*4*2+50)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*0)*1,0.5,1)-0.5)*2+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*1)*1,0.5,1)-0.5)*2",
|
||||
-0.1
|
||||
]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2-95)*20,0,45)-math.clamp(math.sin(q.anim_time*90*4*2+180)*50,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4*2+180*0)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2+10+180*1)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4*2-90+180*0)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4*2-130+180*0)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": ["-20+math.clamp(25*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,48)+5*math.sin(q.anim_time*90*4*2-90)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"-(math.clamp(-math.sin(q.anim_time*90*4*2+50)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*0)*1,0.5,1)-0.5)*2+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*1)*1,0.5,1)-0.5)*2",
|
||||
-0.1
|
||||
]
|
||||
},
|
||||
"leg_back_left2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2-95)*20,0,45)-math.clamp(math.sin(q.anim_time*90*4*2+180)*50,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_left3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4*2+180*0)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2+10+180*1)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4*2-90+180*0)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4*2-130+180*0)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"head_angle": {
|
||||
"rotation": [15, 0, 0]
|
||||
},
|
||||
"tail_right6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*8+45)*14", "-math.sin(q.anim_time*90*2-33*8)*10", 0]
|
||||
},
|
||||
"tail_middle6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*9+45)*14", "-math.sin(q.anim_time*90*4-33*10+45)*6", 0]
|
||||
},
|
||||
"tail_left6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*14", "math.sin(q.anim_time*90*2-33*7+180)*10", 0]
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_aqua.ground_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*0.5+1", "math.sin(q.anim_time*90*2+33*1)*1", 0],
|
||||
"position": [0, "-math.sin(q.anim_time*90*4-45)*0.15", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4+45)*1", 0, 0]
|
||||
},
|
||||
"head_correction": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-90)*0.5-1", 0, 0]
|
||||
},
|
||||
"mane_top": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-45)*4-4", 0, 0]
|
||||
},
|
||||
"mane_bottom": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-45)*4-4", 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5+120)*6", "-math.sin(q.anim_time*90*1.5-33*5+120)*2", 0]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": ["-5-math.sin(q.anim_time*90*3-33*6+120)*8", "math.sin(q.anim_time*90*1.5-33*6+120)*3", 0]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7+120)*8", "-15+math.sin(q.anim_time*90*1.5-33*4+120)*8", 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8+120)*8", "-15+math.sin(q.anim_time*90*1.5-33*3+120)*8", 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*10", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_middle2": {
|
||||
"rotation": ["15-math.sin(q.anim_time*90*3-33*6-120)*8", "math.sin(q.anim_time*90*1.5-33*6-120)*3", 0]
|
||||
},
|
||||
"tail_middle3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7-120)*8", "math.sin(q.anim_time*90*1.5-33*4-120)*4", 0]
|
||||
},
|
||||
"tail_middle4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8-120)*8", "math.sin(q.anim_time*90*1.5-33*3-120)*6", 0]
|
||||
},
|
||||
"tail_middle5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9-120)*10", "-math.sin(q.anim_time*90*1.5-33*2-120)*10", 0]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5)*6", "-math.sin(q.anim_time*90*1.5-33*5)*2", 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": ["-5-math.sin(q.anim_time*90*3-33*6)*8", "math.sin(q.anim_time*90*1.5-33*6)*3", 0]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7)*8", "15+math.sin(q.anim_time*90*1.5-33*4)*8", 0]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8)*8", "15+math.sin(q.anim_time*90*1.5-33*3)*8", 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*10", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*3-3", 0, "-math.sin(q.anim_time*90*2+66)*0.5-math.sin(q.anim_time*90*2-45)*0.2"],
|
||||
"position": [
|
||||
"-math.sin(q.anim_time*90*2+33*1)*0.2",
|
||||
"-0.15-math.sin(q.anim_time*90*4-75)*0.14-math.sin(q.anim_time*90*4+15)*0.02",
|
||||
"math.sin(q.anim_time*90*4-66)*0.13"
|
||||
]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-66)*5+5", 0, 0],
|
||||
"position": ["-0.1*(math.sin(q.anim_time*90*2+33*6)*1+1)+0.1", 0, 0]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*2-2", 0, 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*3-3", 0, "-math.sin(q.anim_time*90*2+66)*0.5-math.sin(q.anim_time*90*2-45)*0.2"],
|
||||
"position": [
|
||||
"-math.sin(q.anim_time*90*2+33*1)*0.2",
|
||||
"-0.15-math.sin(q.anim_time*90*4-75)*0.14-math.sin(q.anim_time*90*4+15)*0.02",
|
||||
"math.sin(q.anim_time*90*4-66)*0.13"
|
||||
]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-66)*5+5", 0, 0],
|
||||
"position": ["-0.1*(math.sin(q.anim_time*90*2+33*6)*1+1)+0.1", 0, 0]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*2-2", 0, 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*1+3", 0, 0],
|
||||
"position": [0, "-math.sin(q.anim_time*90*4-75)*0.15-0.25-math.sin(q.anim_time*90*4+15)*0.04", "math.sin(q.anim_time*90*4+60)*0.02"]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-90)*2-6.5", 0, 0],
|
||||
"position": [0, "(math.sin(q.anim_time*90*4-33*1)*1+1)*0.1-0.1", 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": ["-3.5-1*(math.sin(q.anim_time*90*4-90)*1+1+math.sin(q.anim_time*90*4-90)*2-2-math.sin(q.anim_time*90*4-90)*4-6)", 0, 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*1+3", 0, 0],
|
||||
"position": [0, "-math.sin(q.anim_time*90*4-75)*0.15-0.25-math.sin(q.anim_time*90*4+15)*0.04", "math.sin(q.anim_time*90*4+60)*0.02"]
|
||||
},
|
||||
"leg_back_left2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-90)*2-6.5", 0, 0],
|
||||
"position": [0, "(math.sin(q.anim_time*90*4-33*1)*1+1)*0.1-0.1", 0]
|
||||
},
|
||||
"leg_back_left3": {
|
||||
"rotation": ["-3.5-1*(math.sin(q.anim_time*90*4-90)*1+1+math.sin(q.anim_time*90*4-90)*2-2-math.sin(q.anim_time*90*4-90)*4-6)", 0, 0]
|
||||
},
|
||||
"tail_right6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_middle6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_left6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*6", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"tail_middle": {
|
||||
"rotation": [2, 0, 0]
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_aqua.render": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": [5, 0, 0]
|
||||
},
|
||||
"head_angle": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": [28.49002, 17.28889, 10.8585]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": [-2.61298, -9.65594, 15.22074]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": [0, -15, 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": [0, -27.5, 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": [0, -17.5, 0]
|
||||
},
|
||||
"tails": {
|
||||
"rotation": [47.5, 0, 0]
|
||||
},
|
||||
"tail_middle2": {
|
||||
"rotation": [10.15375, 12.42297, 0.88796]
|
||||
},
|
||||
"tail_middle3": {
|
||||
"rotation": [-5.03364, 9.99043, -0.22117]
|
||||
},
|
||||
"tail_middle4": {
|
||||
"rotation": [0, 7.5, 0]
|
||||
},
|
||||
"tail_middle5": {
|
||||
"rotation": [17.5, -5, -5]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": [-5, 0, 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": [17.61435, 9.91358, -6.18155]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": [12.92638, 14.63639, 3.31914]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": [0, 37.5, 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": [0, 52.5, 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [-7.5, 0, 0]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": [22.5, 0, 0]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": [22.5, 0, 0]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": [-7.5, 0, 0]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": [-10, 0, 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": [10, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_aqua.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.125": {"pre": [-0.1, 0, -0.1], "post": [-0.1, 0, -0.1]},
|
||||
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.125": {"pre": [0.1, 0, -0.1], "post": [0.1, 0, -0.1]},
|
||||
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_aqua.cry": {
|
||||
"animation_length": 2.125,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"post": [10, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"post": [3, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.625": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7917": {
|
||||
"post": [0.41, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.2917": {
|
||||
"post": [2.54, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"head": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"post": [17.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"post": [15, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"post": [-25.0209, 2.26564, -1.0571],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": [-28.97053, 1.96592, -0.90958],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7917": {
|
||||
"post": [-27.05903, 1.51496, -0.69057],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8333": {
|
||||
"post": [-29.04105, 1.01977, -0.45016],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.9167": {
|
||||
"post": [-28.03083, -0.29418, 0.18797],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0833": {
|
||||
"post": [-29.39821, -3.12415, 1.55957],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.4583": {
|
||||
"post": [-9.4956, -1.78923, 0.88879],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.75": {
|
||||
"post": [2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.125": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.5417": {
|
||||
"pre": [0, 0, 0],
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"post": [35, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.4167": {
|
||||
"post": [35, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [-22.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [0, -1, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [55, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-20, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [0, -1, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [28, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-7.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-0.00259, -0.29316, -0.18789],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"body": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.5833": [0, 0, 0],
|
||||
"0.625": [0, -0.4, 0],
|
||||
"0.6667": [0, 0, 0],
|
||||
"0.7083": [0, -0.1, 0],
|
||||
"0.75": [0, 0, 0],
|
||||
"0.7917": [0, -0.1, 0],
|
||||
"0.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.625": {
|
||||
"effect": "pokemon.tauros.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+916
@@ -0,0 +1,916 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.tauros_paldean_blaze.ground_walk": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": [0, 0, "math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180)*1"],
|
||||
"position": [0, "-1.75+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.5,1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.5,1)", 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*0.5+0.5", 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [
|
||||
"-math.sin(q.anim_time*90*4-90)*0.5+math.sin(q.anim_time*90*4*2-45)*1",
|
||||
0,
|
||||
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
|
||||
],
|
||||
"position": ["math.sin(q.anim_time*90*4-45)*0.1", "math.sin(-q.anim_time*90*4*2-45)*0.1", 0]
|
||||
},
|
||||
"mane_top": {
|
||||
"rotation": ["math.sin(q.anim_time*90*8+90)*4-4", 0, 0]
|
||||
},
|
||||
"mane_bottom": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*8+90)*4-4", 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5+120)*10+5", "-math.sin(q.anim_time*90*1.5-33*5+120)*4", 0]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*6+120)*8", "math.sin(q.anim_time*90*1.5-33*6+120)*6", 0]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7+120)*8", "math.sin(q.anim_time*90*1.5-33*4+120)*8", 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8+120)*8", "math.sin(q.anim_time*90*1.5-33*3+120)*8", 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*10", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5-120)*10+5", "-math.sin(q.anim_time*90*1.5-33*5-120)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*6-120)*8", "math.sin(q.anim_time*90*1.5-33*6-120)*6", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7-120)*8", "math.sin(q.anim_time*90*1.5-33*4-120)*8", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8-120)*8", "math.sin(q.anim_time*90*1.5-33*3-120)*8", 0]
|
||||
},
|
||||
"tail5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9-120)*10", "-math.sin(q.anim_time*90*1.5-33*2-120)*10", 0]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5)*10+5", "-math.sin(q.anim_time*90*1.5-33*5)*4", 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*6)*8", "math.sin(q.anim_time*90*1.5-33*6)*6", 0]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7)*8", "math.sin(q.anim_time*90*1.5-33*4)*8", 0]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8)*8", "math.sin(q.anim_time*90*1.5-33*3)*8", 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*10", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [
|
||||
"20-math.clamp(20*(math.sin(q.anim_time*90*4-90+33+180)*1+1),-0,60)",
|
||||
0,
|
||||
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180*0)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4-155+180)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75+180)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4+180)*1.4,1,1.4)+1)-math.clamp(math.sin(q.anim_time*90*4)*1,0,0.75)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4-180*1+33)*40,0,40)+(math.clamp(math.sin(q.anim_time*90*2-90*3)*1,0.5,1)*1-0.5)*30+(math.clamp(math.sin(q.anim_time*90*2-90*1)*1,0.5,1)*1-0.5)*30",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": ["-20+math.clamp(10*(math.sin(q.anim_time*90*4-90-180*1)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4-180*1+10)*30,-2.5,30)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120+180)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130+90)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": [
|
||||
"20-math.clamp(20*(math.sin(q.anim_time*90*4-90+33)*1+1),-0,60)",
|
||||
0,
|
||||
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4)*1.4,1,1.4)+1)-math.clamp(math.sin(q.anim_time*90*4-180)*1,0,0.75)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4-180*0+33)*40,0,40)+(math.clamp(math.sin(q.anim_time*90*2-90*0)*1,0.5,1)*1-0.5)*30+(math.clamp(math.sin(q.anim_time*90*2-90*2)*1,0.5,1)*1-0.5)*30",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": ["-20+math.clamp(10*(math.sin(q.anim_time*90*4-90-180*0)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4-180*0+10)*30,-5,30)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2-130)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": [
|
||||
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90+180)*1+1),-0,60)",
|
||||
0,
|
||||
"math.clamp(math.sin(q.anim_time*90*4-90+180)*1,-0.8,0.8)+math.sin(q.anim_time*90*4-180*0)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"-math.clamp(-math.sin(q.anim_time*90*4+90+180*1)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180*1)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180*1)*1.5,0.4,0.6)-0.3+(math.clamp(-math.sin(q.anim_time*90*2+70+180*1)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2+70+180*0)*1,0.5,1)+0.5)*0.5",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4+180)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95+180)*10,0,45)-math.clamp(math.sin(q.anim_time*90*4+180*0)*10,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130+180)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40+180)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4+180*1)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4+10+180*0)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4-90+180*1)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-130+180*1)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180*0)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": [
|
||||
"-20+math.clamp(15*(math.sin(q.anim_time*90*4-90)*1+1),-0,60)",
|
||||
0,
|
||||
"-math.clamp(math.sin(q.anim_time*90*4-90)*1,-0.8,0.8)-math.sin(q.anim_time*90*4-180)*1"
|
||||
],
|
||||
"position": [
|
||||
0,
|
||||
"-math.clamp(-math.sin(q.anim_time*90*4+90+180*0)*0.01,0,0.01)+math.clamp(-math.sin(q.anim_time*90*4+20+180*0)*1,0.4,1)-0.4+math.clamp(math.sin(q.anim_time*90*4-130+180*0)*1.5,0.4,0.6)-0.3+(math.clamp(-math.sin(q.anim_time*90*2+70+180*0)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2+70+180*1)*1,0.5,1)+0)*0.5",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_back_left2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4)*10,0,10)-math.clamp(math.sin(q.anim_time*90*4-95)*10,0,45)-math.clamp(math.sin(q.anim_time*90*4+180)*10,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_left3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4+180*0)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4+10+180*1)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4-90+180*0)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4-130+180*0)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"tail_right6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail_left6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*6", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_blaze.ground_run": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2+45)*6", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"-1.5+math.clamp(math.sin(q.anim_time*90*4)*1.1,0.4,1.1)+math.clamp(math.sin(q.anim_time*90*4+180)*1.1,0.4,1.1)",
|
||||
"math.sin(q.anim_time*90*4*2-33)*1"
|
||||
]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": [0, 0, 0],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4*2+45)*6+math.sin(q.anim_time*90*4*2-45)*4", 0, 0],
|
||||
"position": ["math.sin(q.anim_time*90*4-45)*0.1", "math.sin(-q.anim_time*90*4*2-45)*0.1", 0]
|
||||
},
|
||||
"mane_top": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-45)*20-5", 0, 0]
|
||||
},
|
||||
"mane_bottom": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2)*20+10", 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*4+45)*10+5", "math.sin(q.anim_time*90*2-33*4)*1+5", 0]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*5+45)*12", "-math.sin(q.anim_time*90*2-33*5)*2+5", 0]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*6+45)*14", "-math.sin(q.anim_time*90*2-33*6)*3+2.5", 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*16", "-math.sin(q.anim_time*90*2-33*7)*3+5", 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*8+45)*16", "-math.sin(q.anim_time*90*2-33*8)*6", 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*5+45)*5+5", "-math.sin(q.anim_time*90*4-33*6+45)*2", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*6+45)*10", "-math.sin(q.anim_time*90*4-33*7+45)*2", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*12", "-math.sin(q.anim_time*90*4-33*8+45)*2", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*8+45)*10", "-math.sin(q.anim_time*90*4-33*9+45)*2", 0]
|
||||
},
|
||||
"tail5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*9+45)*10", "-math.sin(q.anim_time*90*4-33*10+45)*4", 0]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*3+45)*12+5", "-math.sin(q.anim_time*90*2-33*3+180)*1-5", 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*4+45)*10", "math.sin(q.anim_time*90*2-33*4+180)*2-5", 0]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*5+45)*14", "math.sin(q.anim_time*90*2-33*5+180)*3-2.5", 0]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*6+45)*16", "math.sin(q.anim_time*90*2-33*6+180)*3-5", 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*16", "math.sin(q.anim_time*90*2-33*7+180)*6", 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": ["15-math.clamp(30*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,60)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4*2-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4*2-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4*2)*1.4,1,1.4)+1)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": [
|
||||
"5+math.clamp(math.sin(q.anim_time*90*4*2-180*0)*50,-10,50)+(math.clamp(math.sin(q.anim_time*90*2*2-180*0)*1,0.6,1)*1-0.5)*50+(math.clamp(math.sin(q.anim_time*90*2*2-180*1)*1,0.6,1)*1-0.5)*50",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": ["-12.5+math.clamp(30*(math.sin(q.anim_time*90*4*2-90-180*0)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4*2-180*0+10)*70,0,100)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4*2-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2*2-130)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": ["15-math.clamp(30*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,60)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"0.8*(math.clamp(math.sin(q.anim_time*90*4*2-155)*1.6,1,1.6)-0.2)+0.5*(math.clamp(math.sin(q.anim_time*90*4*2-75)*1.8,1,1.8)-1)-0.2*(math.clamp(math.sin(q.anim_time*90*4*2)*1.4,1,1.4)+1)",
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": [
|
||||
"5+math.clamp(math.sin(q.anim_time*90*4*2-180*0)*50,-10,50)+(math.clamp(math.sin(q.anim_time*90*2*2-180*0)*1,0.6,1)*1-0.5)*50+(math.clamp(math.sin(q.anim_time*90*2*2-180*1)*1,0.6,1)*1-0.5)*50",
|
||||
0,
|
||||
0
|
||||
]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": ["-12.5+math.clamp(30*(math.sin(q.anim_time*90*4*2-90-180*0)*1+1),-0,60)+math.clamp(math.sin(q.anim_time*90*4*2-180*0+10)*70,0,100)", 0, 0],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4*2-120)*1.1,0.9,1)-0.9+math.clamp(math.sin(q.anim_time*90*2*2-130)*1.3,0.9,1)-0.9", 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": ["-20+math.clamp(25*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,48)+5*math.sin(q.anim_time*90*4*2-90)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"-(math.clamp(-math.sin(q.anim_time*90*4*2+50)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*0)*1,0.5,1)-0.5)*2+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*1)*1,0.5,1)-0.5)*2",
|
||||
-0.1
|
||||
]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2-95)*20,0,45)-math.clamp(math.sin(q.anim_time*90*4*2+180)*50,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4*2+180*0)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2+10+180*1)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4*2-90+180*0)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4*2-130+180*0)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": ["-20+math.clamp(25*(math.sin(q.anim_time*90*4*2-90)*1+1),-0,48)+5*math.sin(q.anim_time*90*4*2-90)", 0, 0],
|
||||
"position": [
|
||||
0,
|
||||
"-(math.clamp(-math.sin(q.anim_time*90*4*2+50)*1,0.5,1)-0.5)*0.5+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*0)*1,0.5,1)-0.5)*2+(math.clamp(-math.sin(q.anim_time*90*2*2+70+180*1)*1,0.5,1)-0.5)*2",
|
||||
-0.1
|
||||
]
|
||||
},
|
||||
"leg_back_left2": {
|
||||
"rotation": [
|
||||
"math.clamp(math.sin(q.anim_time*90*4*2)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2-95)*20,0,45)-math.clamp(math.sin(q.anim_time*90*4*2+180)*50,0,45)",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "math.clamp(math.sin(q.anim_time*90*4-130)*1,0.5,1)-math.clamp(math.sin(q.anim_time*90*4-40)*1,0.75,1)+0.25", 0]
|
||||
},
|
||||
"leg_back_left3": {
|
||||
"rotation": [
|
||||
"-math.clamp(math.sin(q.anim_time*90*4*2+180*0)*10,0,10)+math.clamp(math.sin(q.anim_time*90*4*2+10+180*1)*25,0,45)-(-20+math.clamp(11*(math.sin(q.anim_time*90*4*2-90+180*0)*1+1),-0,60))+math.clamp(math.sin(q.anim_time*90*4*2-130+180*0)*00,50,100)-50",
|
||||
0,
|
||||
0
|
||||
],
|
||||
"position": [0, "(math.clamp(math.sin(q.anim_time*90*4-110+180)*1,0.5,1)-0.5)*0.7", 0]
|
||||
},
|
||||
"head_angle": {
|
||||
"rotation": [15, 0, 0]
|
||||
},
|
||||
"tail_right6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*8+45)*14", "-math.sin(q.anim_time*90*2-33*8)*10", 0]
|
||||
},
|
||||
"tail6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*9+45)*10", "-math.sin(q.anim_time*90*4-33*10+45)*6", 0]
|
||||
},
|
||||
"tail_left6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4*2-33*7+45)*14", "math.sin(q.anim_time*90*2-33*7+180)*10", 0]
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_blaze.ground_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*0.5+1", "math.sin(q.anim_time*90*2+33*1)*1", 0],
|
||||
"position": [0, "-math.sin(q.anim_time*90*4-45)*0.15", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4+45)*1", 0, 0]
|
||||
},
|
||||
"head_correction": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-90)*0.5-1", 0, 0]
|
||||
},
|
||||
"mane_top": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-45)*4-4", 0, 0]
|
||||
},
|
||||
"mane_bottom": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-45)*4-4", 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5+120)*10+5", "-math.sin(q.anim_time*90*1.5-33*5+120)*4", 0]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*6+120)*8", "math.sin(q.anim_time*90*1.5-33*6+120)*6", 0]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7+120)*8", "math.sin(q.anim_time*90*1.5-33*4+120)*8", 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8+120)*8", "math.sin(q.anim_time*90*1.5-33*3+120)*8", 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*10", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5-120)*10+5", "-math.sin(q.anim_time*90*1.5-33*5-120)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*6-120)*8", "math.sin(q.anim_time*90*1.5-33*6-120)*6", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7-120)*8", "math.sin(q.anim_time*90*1.5-33*4-120)*8", 0]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8-120)*8", "math.sin(q.anim_time*90*1.5-33*3-120)*8", 0]
|
||||
},
|
||||
"tail5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9-120)*10", "-math.sin(q.anim_time*90*1.5-33*2-120)*10", 0]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*5)*10+5", "-math.sin(q.anim_time*90*1.5-33*5)*4", 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*6)*8", "math.sin(q.anim_time*90*1.5-33*6)*6", 0]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*7)*8", "math.sin(q.anim_time*90*1.5-33*4)*8", 0]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*8)*8", "math.sin(q.anim_time*90*1.5-33*3)*8", 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*10", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*3-3", 0, "-math.sin(q.anim_time*90*2+66)*0.5-math.sin(q.anim_time*90*2-45)*0.2"],
|
||||
"position": [
|
||||
"-math.sin(q.anim_time*90*2+33*1)*0.2",
|
||||
"-0.15-math.sin(q.anim_time*90*4-75)*0.14-math.sin(q.anim_time*90*4+15)*0.02",
|
||||
"math.sin(q.anim_time*90*4-66)*0.13"
|
||||
]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-66)*5+5", 0, 0],
|
||||
"position": ["-0.1*(math.sin(q.anim_time*90*2+33*6)*1+1)+0.1", 0, 0]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*2-2", 0, 0]
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*3-3", 0, "-math.sin(q.anim_time*90*2+66)*0.5-math.sin(q.anim_time*90*2-45)*0.2"],
|
||||
"position": [
|
||||
"-math.sin(q.anim_time*90*2+33*1)*0.2",
|
||||
"-0.15-math.sin(q.anim_time*90*4-75)*0.14-math.sin(q.anim_time*90*4+15)*0.02",
|
||||
"math.sin(q.anim_time*90*4-66)*0.13"
|
||||
]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-66)*5+5", 0, 0],
|
||||
"position": ["-0.1*(math.sin(q.anim_time*90*2+33*6)*1+1)+0.1", 0, 0]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-66)*2-2", 0, 0]
|
||||
},
|
||||
"leg_back_right": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*1+3", 0, 0],
|
||||
"position": [0, "-math.sin(q.anim_time*90*4-75)*0.15-0.25-math.sin(q.anim_time*90*4+15)*0.04", "math.sin(q.anim_time*90*4+60)*0.02"]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-90)*2-6.5", 0, 0],
|
||||
"position": [0, "(math.sin(q.anim_time*90*4-33*1)*1+1)*0.1-0.1", 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": ["-3.5-1*(math.sin(q.anim_time*90*4-90)*1+1+math.sin(q.anim_time*90*4-90)*2-2-math.sin(q.anim_time*90*4-90)*4-6)", 0, 0]
|
||||
},
|
||||
"leg_back_left": {
|
||||
"rotation": ["math.sin(q.anim_time*90*4-90)*1+3", 0, 0],
|
||||
"position": [0, "-math.sin(q.anim_time*90*4-75)*0.15-0.25-math.sin(q.anim_time*90*4+15)*0.04", "math.sin(q.anim_time*90*4+60)*0.02"]
|
||||
},
|
||||
"leg_back_left2": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*4-90)*2-6.5", 0, 0],
|
||||
"position": [0, "(math.sin(q.anim_time*90*4-33*1)*1+1)*0.1-0.1", 0]
|
||||
},
|
||||
"leg_back_left3": {
|
||||
"rotation": ["-3.5-1*(math.sin(q.anim_time*90*4-90)*1+1+math.sin(q.anim_time*90*4-90)*2-2-math.sin(q.anim_time*90*4-90)*4-6)", 0, 0]
|
||||
},
|
||||
"tail_right6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9+120)*6", "-math.sin(q.anim_time*90*1.5-33*2+120)*10", 0]
|
||||
},
|
||||
"tail6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9-120)*6", "-math.sin(q.anim_time*90*1.5-33*2-120)*10", 0]
|
||||
},
|
||||
"tail_left6": {
|
||||
"rotation": ["-math.sin(q.anim_time*90*3-33*9)*6", "-math.sin(q.anim_time*90*1.5-33*2)*10", 0]
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_blaze.render": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": [5, 0, 0]
|
||||
},
|
||||
"head_angle": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"tail_right": {
|
||||
"rotation": [28.49002, 17.28889, 10.8585]
|
||||
},
|
||||
"tail_right2": {
|
||||
"rotation": [-2.61298, -9.65594, 15.22074]
|
||||
},
|
||||
"tail_right3": {
|
||||
"rotation": [0, -15, 0]
|
||||
},
|
||||
"tail_right4": {
|
||||
"rotation": [0, -27.5, 0]
|
||||
},
|
||||
"tail_right5": {
|
||||
"rotation": [0, -17.5, 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [47.5, 0, 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [10.15375, 12.42297, 0.88796]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [-5.03364, 9.99043, -0.22117]
|
||||
},
|
||||
"tail4": {
|
||||
"rotation": [0, 7.5, 0]
|
||||
},
|
||||
"tail5": {
|
||||
"rotation": [17.5, -5, -5]
|
||||
},
|
||||
"tail_left": {
|
||||
"rotation": [-5, 0, 0]
|
||||
},
|
||||
"tail_left2": {
|
||||
"rotation": [17.61435, 9.91358, -6.18155]
|
||||
},
|
||||
"tail_left3": {
|
||||
"rotation": [12.92638, 14.63639, 3.31914]
|
||||
},
|
||||
"tail_left4": {
|
||||
"rotation": [0, 37.5, 0]
|
||||
},
|
||||
"tail_left5": {
|
||||
"rotation": [0, 52.5, 0]
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": [-7.5, 0, 0]
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": [22.5, 0, 0]
|
||||
},
|
||||
"leg_front_right3": {
|
||||
"rotation": [22.5, 0, 0]
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": [-7.5, 0, 0]
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"leg_back_right2": {
|
||||
"rotation": [-10, 0, 0]
|
||||
},
|
||||
"leg_back_right3": {
|
||||
"rotation": [10, 0, 0]
|
||||
},
|
||||
"horn_glow_left": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_left3": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right2": {
|
||||
"scale": 0
|
||||
},
|
||||
"horn_glow_right3": {
|
||||
"scale": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_blaze.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [-0.1, 0, -0.1],
|
||||
"0.125": {"pre": [-0.1, 0, -0.1], "post": [-0.1, 0, -0.1]},
|
||||
"0.1667": {"pre": [-0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
}
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0.1, 0, -0.1],
|
||||
"0.125": {"pre": [0.1, 0, -0.1], "post": [0.1, 0, -0.1]},
|
||||
"0.1667": {"pre": [0.1, 0, -0.1], "post": [0, 0, 0]}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.tauros_paldean_blaze.cry": {
|
||||
"animation_length": 2.125,
|
||||
"bones": {
|
||||
"torso": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"post": [10, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"post": [3, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.625": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7917": {
|
||||
"post": [0.41, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.2917": {
|
||||
"post": [2.54, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"head": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.2083": {
|
||||
"post": [17.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4167": {
|
||||
"post": [15, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"post": [-25.0209, 2.26564, -1.0571],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.75": {
|
||||
"post": [-28.97053, 1.96592, -0.90958],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7917": {
|
||||
"post": [-27.05903, 1.51496, -0.69057],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.8333": {
|
||||
"post": [-29.04105, 1.01977, -0.45016],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.9167": {
|
||||
"post": [-28.03083, -0.29418, 0.18797],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0833": {
|
||||
"post": [-29.39821, -3.12415, 1.55957],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.4583": {
|
||||
"post": [-9.4956, -1.78923, 0.88879],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.75": {
|
||||
"post": [2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"2.125": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.5417": {
|
||||
"pre": [0, 0, 0],
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.7083": {
|
||||
"post": [35, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.4167": {
|
||||
"post": [35, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"leg_front_right": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [-22.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [0, -1, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_right2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.4583": {
|
||||
"post": [55, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_left": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-20, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [0, -1, 1.25],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_left2": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [28, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
},
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.5417": [0, 0, 0],
|
||||
"1.7917": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"leg_front_left3": {
|
||||
"rotation": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-7.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
},
|
||||
"position": {
|
||||
"0.0": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.3333": {
|
||||
"post": [-0.00259, -0.29316, -0.18789],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5417": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.7917": {
|
||||
"post": [0, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
}
|
||||
}
|
||||
},
|
||||
"body": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.5833": [0, 0, 0],
|
||||
"0.625": [0, -0.4, 0],
|
||||
"0.6667": [0, 0, 0],
|
||||
"0.7083": [0, -0.1, 0],
|
||||
"0.75": [0, 0, 0],
|
||||
"0.7917": [0, -0.1, 0],
|
||||
"0.8333": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.625": {
|
||||
"effect": "pokemon.tauros.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1924
-310
File diff suppressed because it is too large
Load Diff
+65
-38
@@ -4,15 +4,6 @@
|
||||
"animation.slowking.ground_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": [-15, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [90, 0, 50]
|
||||
},
|
||||
@@ -20,7 +11,8 @@
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [1.5741, -17.4313, "49.7586-math.sin(Q.anim_time*90*1.5-30)*3"]
|
||||
"rotation": [1.5741, -17.4313, "49.7586-math.sin(Q.anim_time*90*1.5-30)*3"],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [1.5741, 17.43127, "-49.7586+math.sin(Q.anim_time*90*1.5-30)*3"]
|
||||
@@ -81,6 +73,15 @@
|
||||
},
|
||||
"foot_right": {
|
||||
"position": [0, "0-math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [-15, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -103,10 +104,12 @@
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [33.28261, -71.10238, 44.64832]
|
||||
"rotation": [33.28261, -71.10238, 44.64832],
|
||||
"position": [0, -0.5, 0]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [33.28261, 71.10238, -44.64832]
|
||||
"rotation": [33.28261, 71.10238, -44.64832],
|
||||
"position": [0, -0.5, 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-5-math.cos(Q.anim_time*90*1.5)*0.8", 0, 0],
|
||||
@@ -169,7 +172,7 @@
|
||||
},
|
||||
"animation.slowking.ground_walk": {
|
||||
"loop": true,
|
||||
"animation_length": 1.33333,
|
||||
"animation_length": 1.3333,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": ["-15-math.cos(Q.anim_time*90*1.5*4-60)*2", "0-math.cos(Q.anim_time*90*1.5*2-60)*12", 0]
|
||||
@@ -426,10 +429,10 @@
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"right_frill": {
|
||||
"rotation": [0, 0, "0+math.sin(Q.anim_time*90*2.5)*1.5"]
|
||||
"rotation": [0, 0, "1+math.sin(Q.anim_time*90*2.5)*1.5"]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*2.5)*1.5"]
|
||||
"rotation": [0, 0, "-1-math.sin(Q.anim_time*90*2.5)*1.5"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0+math.sin(Q.anim_time*90*2.5)*2", 0, 0]
|
||||
@@ -540,38 +543,45 @@
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -25]
|
||||
},
|
||||
"eye_left": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eye_right": {
|
||||
"position": [0.1, 0, 0.1]
|
||||
},
|
||||
"slowking": {
|
||||
"position": [0, 1, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"crown_eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0.1],
|
||||
"0.125": [0, 0, 0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"crown_eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0.1],
|
||||
"0.125": [0, 0, 0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, -0.1],
|
||||
"0.125": [0, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, -0.1],
|
||||
"0.125": [0, 0, -0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -582,15 +592,27 @@
|
||||
"crown_eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0.1],
|
||||
"0.125": [0, 0, 0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0, 0, 0.1],
|
||||
"post": [0, 0, 0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0, 0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"crown_eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0.1],
|
||||
"0.125": [0, 0, 0.1],
|
||||
"0.1667": [0, 0, 0]
|
||||
"0.125": {
|
||||
"pre": [0, 0, 0.1],
|
||||
"post": [0, 0, 0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0, 0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -668,7 +690,7 @@
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [25, 0, 0],
|
||||
"post": [30, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.2917": {
|
||||
@@ -678,6 +700,11 @@
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.5": {
|
||||
"effect": "pokemon.slowking.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+759
@@ -0,0 +1,759 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.slowking_galarian.ground_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"leftarm": {
|
||||
"rotation": [90, 0, 50]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [1.5741, -17.4313, "49.7586-math.sin(Q.anim_time*90*1.5-30)*3"],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [1.5741, 17.43127, "-49.7586+math.sin(Q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-1.6-math.cos(Q.anim_time*90*1.5)*0.8", 0, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.2", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["2.5-math.cos(Q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, "5-math.sin(Q.anim_time*90*1.5-60)*3", 2.5]
|
||||
},
|
||||
"finger_left": {
|
||||
"rotation": [0, 0, 20]
|
||||
},
|
||||
"thumb_left": {
|
||||
"rotation": [0, -45, 0]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, "-5+math.sin(Q.anim_time*90*1.5-60)*3", -2.5]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -17.5]
|
||||
},
|
||||
"thumb_right": {
|
||||
"rotation": [0, 45, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [0, -17.5, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": [0, 17.5, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["17.5-math.cos(Q.anim_time*90*1.5-60)*3", 0, 0]
|
||||
},
|
||||
"front_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*1.5-30)*1"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5-30)*-1", 0, 0]
|
||||
},
|
||||
"crown": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1.5-60)*1", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"position": [0, "0-math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"position": [0, "0-math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [-15, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"front_frill2": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5-60)*1", 0, 0]
|
||||
},
|
||||
"left_frill2": {
|
||||
"rotation": [0, 0, "52.2586-math.sin(Q.anim_time*90*1.5-30)*3"],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"right_frill2": {
|
||||
"rotation": [0, 0, "-52.2586+math.sin(Q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"back_frill2": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5-60)*-1", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.battle_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": [-15, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [90, 0, 50]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [0.18545, 10.17123, "-7.6177-1*(-50.4968+math.sin(Q.anim_time*90*1.5-30)*3)"],
|
||||
"position": [0, -0.5, 0]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [1.52525, -10.05906, "-50.4968+math.sin(Q.anim_time*90*1.5-30)*3"],
|
||||
"position": [0, -0.5, 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-5-math.cos(Q.anim_time*90*1.5)*0.8", 0, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.2", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["15-math.cos(Q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, 30, 17.5]
|
||||
},
|
||||
"finger_left": {
|
||||
"rotation": [0, 0, 20]
|
||||
},
|
||||
"thumb_left": {
|
||||
"rotation": [70.73445, -72.69069, -37.97075]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, -30, -17.5]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -20]
|
||||
},
|
||||
"thumb_right": {
|
||||
"rotation": [0, 40, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [0, -35, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": [0, 17.5, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["17.5-math.cos(Q.anim_time*90*1.5-60)*3", 0, 0]
|
||||
},
|
||||
"front_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5)*1", 0, 0]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*1.5)*1"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0+math.sin(Q.anim_time*90*1.5)*1", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"position": [0, "0-math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"position": [0, "0-math.sin(Q.anim_time*90*1.5)*0.1", 0]
|
||||
},
|
||||
"crown": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1.5-60)*2", 0, 0]
|
||||
},
|
||||
"body": {
|
||||
"rotation": [0, -17.5, 0]
|
||||
},
|
||||
"front_frill2": {
|
||||
"rotation": ["5-math.sin(Q.anim_time*90*1.5)*1", 0, 0]
|
||||
},
|
||||
"left_frill2": {
|
||||
"rotation": [0, 0, "50-math.sin(Q.anim_time*90*1.5)*1"]
|
||||
},
|
||||
"right_frill2": {
|
||||
"rotation": [0, 0, "-1*(50-math.sin(Q.anim_time*90*1.5)*1)"]
|
||||
},
|
||||
"back_frill2": {
|
||||
"rotation": [22.5, 0, 0]
|
||||
},
|
||||
"pupil_left": {
|
||||
"position": [-0.1, 0, 0]
|
||||
},
|
||||
"undefined": {
|
||||
"position": [-0.1, 0, 0]
|
||||
},
|
||||
"pupil_right": {
|
||||
"position": [-0.1, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.ground_walk": {
|
||||
"loop": true,
|
||||
"animation_length": 1.3333,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": ["-15-math.cos(Q.anim_time*90*1.5*4-60)*2", "0-math.cos(Q.anim_time*90*1.5*2-60)*12", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": ["15-math.cos(Q.anim_time*90*1.5*4-120)*2", "0-math.cos(Q.anim_time*90*1.5*2-120)*10", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": ["15-math.cos(Q.anim_time*90*1.5*4-180)*2", "0-math.cos(Q.anim_time*90*1.5*2-180)*8", 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [90, 0, 50]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [5.5, "-16.5-math.cos(Q.anim_time*90*1.5*2)*20", "36.5-math.sin(Q.anim_time*90*1.5*2-30)*4"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [5.5, "16.5-math.cos(Q.anim_time*90*1.5*2)*20", "-36.5-math.sin(Q.anim_time*90*1.5*2-30)*4"]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["5+math.cos(Q.anim_time*90*1.5*4)*1", "0+math.cos(Q.anim_time*90*1.5*2)*4", "0-math.sin(Q.anim_time*90*1.5*2)*2"],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5*4-30)*0.2", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-5+math.cos(Q.anim_time*90*1.5*4-60)*1", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, "20+math.sin(Q.anim_time*90*1.5*2-60)*20", "2.5-math.sin(Q.anim_time*90*1.5*2-60)*1"]
|
||||
},
|
||||
"finger_left": {
|
||||
"rotation": [0, 0, 20]
|
||||
},
|
||||
"thumb_left": {
|
||||
"rotation": [0, -42.5, 0]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, "-20+math.sin(Q.anim_time*90*1.5*2-60)*20", "-2.5-math.sin(Q.anim_time*90*1.5*2-60)*1"]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -20]
|
||||
},
|
||||
"thumb_right": {
|
||||
"rotation": [0, 42.5, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["0+math.cos(q.anim_time*90*1.5*2-180)*6", -17.5, 0],
|
||||
"position": [0, "0+math.clamp(math.sin(q.anim_time*90*1.5*2-180)*0.7,0,1)", "0+math.cos(q.anim_time*90*1.5*2-180)*0.6"]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": ["0+math.cos(q.anim_time*90*1.5*2)*6", 17.5, 0],
|
||||
"position": [0, "0+math.clamp(math.sin(q.anim_time*90*1.5*2)*0.7,0,1)", "0+math.cos(q.anim_time*90*1.5*2)*0.6"]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["17.5-math.cos(Q.anim_time*90*1.5*4-60)*3", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"rotation": {
|
||||
"0.0417": ["2.5+math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)", 0, 0],
|
||||
"0.1667": ["-1+math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)", 0, 0],
|
||||
"0.5417": ["-5+math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)", 0, 0],
|
||||
"1.1667": [-13.03, 0, 0],
|
||||
"1.3333": ["1+math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)", 0, 0]
|
||||
}
|
||||
},
|
||||
"foot_right": {
|
||||
"rotation": {
|
||||
"0.0": ["-5+math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)", 0, 0],
|
||||
"0.5417": ["-5+math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)", 0, 0],
|
||||
"0.6667": ["5+math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)", 0, 0],
|
||||
"1.3333": ["-5+math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)-math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)", 0, 0]
|
||||
},
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"front_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5*4-30)*1", 0, 0]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*1.5*4-30)*1"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0+math.sin(Q.anim_time*90*1.5*4-30)*1", 0, 0]
|
||||
},
|
||||
"crown": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1.5*4-60)*1", 0, 0]
|
||||
},
|
||||
"leg_left2": {
|
||||
"rotation": ["5-math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)+math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)", 0, 0]
|
||||
},
|
||||
"leg_right2": {
|
||||
"rotation": ["0-math.clamp(math.cos(q.anim_time*90*1.5*2+60)*6,0,6)+math.clamp(math.cos(q.anim_time*90*1.5*2-60)*6,0,6)", 0, 0]
|
||||
},
|
||||
"neck": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1.5*4)*3", 0, "0-math.sin(Q.anim_time*90*1.5*2-60)*2"]
|
||||
},
|
||||
"front_frill2": {
|
||||
"rotation": ["5+math.cos(Q.anim_time*90*1.5*4)*1", 0, 0]
|
||||
},
|
||||
"left_frill2": {
|
||||
"rotation": [0, 0, "36.5-math.sin(Q.anim_time*90*1.5*2-30)*4"]
|
||||
},
|
||||
"right_frill2": {
|
||||
"rotation": [0, 0, "-36.5-math.sin(Q.anim_time*90*1.5*2-30)*4"]
|
||||
},
|
||||
"back_frill2": {
|
||||
"rotation": ["5+math.cos(Q.anim_time*90*1.5*4)*1", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.water_idle": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": [-27.5, "0-math.cos(Q.anim_time*90*1.5-60)*4", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [12.5, "-math.cos(Q.anim_time*90*1.5-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*1.5-180)*8", 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [90, 0, 50]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [3.76055, -7.0945, "42.5963-math.sin(Q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [3.76055, 7.09452, "-42.5963+math.sin(Q.anim_time*90*1.5-30)*3"]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-1.6-math.cos(Q.anim_time*90*1.5)*0.8", 0, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.2", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-17.5-math.cos(Q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, "5+math.sin(Q.anim_time*90*1.5-60)*3", 2.5]
|
||||
},
|
||||
"finger_left": {
|
||||
"rotation": [0, 0, 20]
|
||||
},
|
||||
"thumb_left": {
|
||||
"rotation": [0, -45, 0]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, -5, "-2.5+math.sin(Q.anim_time*90*1.5-60)*3"]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -17.5]
|
||||
},
|
||||
"thumb_right": {
|
||||
"rotation": [0, 45, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["10+math.cos(Q.anim_time*90*1.5)*3", -17.5, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": ["10+math.cos(Q.anim_time*90*1.5)*3", 17.5, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["17.5-math.cos(Q.anim_time*90*1.5-60)*3", 0, 0]
|
||||
},
|
||||
"front_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1.5)*1", 0, 0]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*1.5)*1"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0+math.sin(Q.anim_time*90*1.5)*1", 0, 0]
|
||||
},
|
||||
"crown": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1.5-30)*1", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"rotation": [20, 0, 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"rotation": [20, 0, 0]
|
||||
},
|
||||
"body": {
|
||||
"rotation": ["32.5+math.sin(Q.anim_time*90*1.5)*1", 0, 0],
|
||||
"position": [0, "0+math.cos(Q.anim_time*90*1.5)*0.3", 0]
|
||||
},
|
||||
"leg_left2": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"leg_right2": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"front_frill2": {
|
||||
"rotation": ["-1*(22.5963-math.sin(Q.anim_time*90*1.5-90)*3)", 0, 0]
|
||||
},
|
||||
"left_frill2": {
|
||||
"rotation": [0, 0, "22.5963-math.sin(Q.anim_time*90*1.5-90)*3"]
|
||||
},
|
||||
"right_frill2": {
|
||||
"rotation": [0, 0, "-1*(22.5963-math.sin(Q.anim_time*90*1.5-90)*3)"]
|
||||
},
|
||||
"back_frill2": {
|
||||
"rotation": ["22.5963-math.sin(Q.anim_time*90*1.5-90)*3", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.water_swim": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"tail": {
|
||||
"rotation": [-45, "-math.cos(Q.anim_time*90*2.5-60)*15", "math.cos(Q.anim_time*90*2.5-60)*10"]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [7.85546, "-0.7603-math.cos(Q.anim_time*90*2.5-120)*15", 1.20833]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [15, "0-math.cos(Q.anim_time*90*2.5-120)*15", 0]
|
||||
},
|
||||
"leftarm": {
|
||||
"rotation": [90, 0, 50]
|
||||
},
|
||||
"rightarm": {
|
||||
"rotation": [90, 0, -50]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [3.76055, -7.0945, "42.5963-math.sin(Q.anim_time*90*2.5-30)*3"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [3.76055, 7.09452, "-42.5963+math.sin(Q.anim_time*90*2.5-30)*3"]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-1.6-math.cos(Q.anim_time*90*2.5)*0.8", 0, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1.5)*0.2", 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["-17.5+math.cos(Q.anim_time*90*2.5-60)*2", 0, 0]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, "10-math.sin(Q.anim_time*90*2.5-60)*3", 2.5]
|
||||
},
|
||||
"finger_left": {
|
||||
"rotation": [0, 0, 20]
|
||||
},
|
||||
"thumb_left": {
|
||||
"rotation": [0, -45, 0]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, "-10+math.sin(Q.anim_time*90*2.5-60)*3", -2.5]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -17.5]
|
||||
},
|
||||
"thumb_right": {
|
||||
"rotation": [0, 45, 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": ["2.5+math.cos(Q.anim_time*90*2.5)*3", -17.5, 0]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": ["2.5+math.cos(Q.anim_time*90*2.5)*3", 17.5, 0]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["17.5-math.cos(Q.anim_time*90*2.5-6-90)*3", 0, 0]
|
||||
},
|
||||
"front_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*2.5)*2", 0, 0],
|
||||
"position": [0, 0, 0]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*2.5)*1.5"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0+math.sin(Q.anim_time*90*2.5)*2", 0, 0]
|
||||
},
|
||||
"crown": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1.5-3-60)*1", 0, 0]
|
||||
},
|
||||
"foot_left": {
|
||||
"rotation": [20, 0, 0]
|
||||
},
|
||||
"foot_right": {
|
||||
"rotation": [20, 0, 0]
|
||||
},
|
||||
"body": {
|
||||
"rotation": ["42.5+math.sin(Q.anim_time*90*2.5)*2", 0, 0],
|
||||
"position": [0, "0+math.cos(Q.anim_time*90*2.5)*0.4", 0]
|
||||
},
|
||||
"leg_left2": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"leg_right2": {
|
||||
"rotation": [7.5, 0, 0]
|
||||
},
|
||||
"neck": {
|
||||
"rotation": ["-10-math.cos(Q.anim_time*90*2.5-30)*0.5", 0, 0]
|
||||
},
|
||||
"front_frill2": {
|
||||
"rotation": ["-1.6-math.cos(Q.anim_time*90*2.5)*5", 0, 0]
|
||||
},
|
||||
"left_frill2": {
|
||||
"rotation": [0, 0, "28.4-math.cos(Q.anim_time*90*2.5)*5"]
|
||||
},
|
||||
"right_frill2": {
|
||||
"rotation": [0, 0, "-1*(28.4-math.cos(Q.anim_time*90*2.5)*5)"]
|
||||
},
|
||||
"back_frill2": {
|
||||
"rotation": ["3.4-math.cos(Q.anim_time*90*2.5)*-5", 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.sleep": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"body": {
|
||||
"rotation": [-2.5, 0, 0],
|
||||
"position": [0, -3, 0]
|
||||
},
|
||||
"torso": {
|
||||
"rotation": ["-7.5-math.cos(Q.anim_time*90*1)*0.8", 0, 0],
|
||||
"position": [0, "0+math.sin(Q.anim_time*90*1)*0.2", 0]
|
||||
},
|
||||
"front_frill": {
|
||||
"rotation": ["0-math.sin(Q.anim_time*90*1-30)*1", 0, 0]
|
||||
},
|
||||
"left_frill": {
|
||||
"rotation": [0, 0, "0-math.sin(Q.anim_time*90*1-30)*1"]
|
||||
},
|
||||
"back_frill": {
|
||||
"rotation": ["0+math.sin(Q.anim_time*90*1-30)*1", 0, 0]
|
||||
},
|
||||
"head": {
|
||||
"rotation": ["5-math.cos(Q.anim_time*90*1-60)*2", 0, 0]
|
||||
},
|
||||
"crown": {
|
||||
"rotation": ["0-math.cos(Q.anim_time*90*1-90)*2", 0, 0]
|
||||
},
|
||||
"crown_eyelid_left": {
|
||||
"position": [0, 0, 0.1]
|
||||
},
|
||||
"crown_eyelid_right": {
|
||||
"position": [0, 0, 0.1]
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": ["5-math.cos(Q.anim_time*90*1-90)*7", 0, 0]
|
||||
},
|
||||
"arm_left": {
|
||||
"rotation": [12.2, -24.89, "37.2528-math.sin(Q.anim_time*90*1-30)*2"]
|
||||
},
|
||||
"arm_left2": {
|
||||
"rotation": [0, 30, "-5-math.sin(Q.anim_time*90*1-60)*2"]
|
||||
},
|
||||
"arm_right": {
|
||||
"rotation": [12.2, 24.89, "-37.2528+math.sin(Q.anim_time*90*1-30)*2"]
|
||||
},
|
||||
"arm_right2": {
|
||||
"rotation": [0, -30, "5+math.sin(Q.anim_time*90*1-60)*2"]
|
||||
},
|
||||
"thumb_right": {
|
||||
"rotation": [48.6, 77.55, 27.35]
|
||||
},
|
||||
"tail": {
|
||||
"rotation": [0, "0-math.cos(Q.anim_time*90*1-60)*5", 0]
|
||||
},
|
||||
"tail2": {
|
||||
"rotation": [10, "0-math.cos(Q.anim_time*90*1-120)*8", 0]
|
||||
},
|
||||
"tail3": {
|
||||
"rotation": [12.5, "0-math.cos(Q.anim_time*90*1-180)*10", 0]
|
||||
},
|
||||
"leg_left": {
|
||||
"rotation": [-81.73489, -24.7716, -3.483]
|
||||
},
|
||||
"leg_right": {
|
||||
"rotation": [-81.73489, 24.77164, 3.48303]
|
||||
},
|
||||
"finger_left": {
|
||||
"rotation": [0, 0, 25]
|
||||
},
|
||||
"thumb_left": {
|
||||
"rotation": [48.6, -77.55, -27.35]
|
||||
},
|
||||
"finger_right": {
|
||||
"rotation": [0, 0, -25]
|
||||
},
|
||||
"eye_left": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"slowking": {
|
||||
"position": [0, 1, 0]
|
||||
},
|
||||
"front_frill2": {
|
||||
"rotation": ["9.7528-math.sin(Q.anim_time*90*1-30)*4", 0, 0]
|
||||
},
|
||||
"left_frill2": {
|
||||
"rotation": [0, 0, "37.2528-math.sin(Q.anim_time*90*1-30)*2"]
|
||||
},
|
||||
"right_frill2": {
|
||||
"rotation": [0, 0, "-37.2528+math.sin(Q.anim_time*90*1-30)*2"]
|
||||
},
|
||||
"back_frill2": {
|
||||
"rotation": ["9.7528-math.sin(Q.anim_time*90*1-30)*4", 0, 0]
|
||||
},
|
||||
"undefined": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eye_right": {
|
||||
"position": [-0.1, 0, 0.1]
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": [0, 0, -0.1]
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": [0, 0, -0.1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eye_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0.1],
|
||||
"0.125": [0, 0, 0.1],
|
||||
"0.1667": {
|
||||
"pre": [0, 0, 0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eye_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, 0.1],
|
||||
"0.125": [0, 0, 0.1],
|
||||
"0.1667": {
|
||||
"pre": [0, 0, 0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, -0.1],
|
||||
"0.125": [0, 0, -0.1],
|
||||
"0.1667": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, -0.1],
|
||||
"0.125": [0, 0, -0.1],
|
||||
"0.1667": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.slowking_galarian.cry": {
|
||||
"animation_length": 1.75,
|
||||
"bones": {
|
||||
"ear_left": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [-2, 0, 0],
|
||||
"post": [-2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"ear_right": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [-2, 0, 0],
|
||||
"post": [-2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.0417": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"head": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [5.5, 0, 0],
|
||||
"post": [5.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.375": {
|
||||
"post": [-12.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.875": {
|
||||
"post": [-16.5, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.375": {
|
||||
"post": [1, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.75": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"jaw": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.125": {
|
||||
"pre": [2, 0, 0],
|
||||
"post": [2, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"0.5833": {
|
||||
"post": [25, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.2917": {
|
||||
"post": [21, 0, 0],
|
||||
"lerp_mode": "catmullrom"
|
||||
},
|
||||
"1.5": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+4281
-93
File diff suppressed because it is too large
Load Diff
+1
-1
@@ -1802,7 +1802,7 @@
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.0": {
|
||||
"effect": "tyrogue_ambient"
|
||||
"effect": "pokemon.tyrogue.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+1
-1
@@ -1600,7 +1600,7 @@
|
||||
},
|
||||
"sound_effects": {
|
||||
"0.4167": {
|
||||
"effect": "hitmontop_ambient"
|
||||
"effect": "pokemon.hitmontop.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
+13
-25
@@ -109,33 +109,29 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.mudkip.cry": {
|
||||
"animation_length": 1.2,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.mudkip.cry"
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.mudkip.blink": {
|
||||
"animation_length": 0.1667,
|
||||
"bones": {
|
||||
"eyelid_left": {
|
||||
"position": {
|
||||
"0.0": [0, 0, -0.1],
|
||||
"0.125": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, -0.1]
|
||||
}
|
||||
"0.125": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
|
||||
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]}
|
||||
}
|
||||
},
|
||||
"eyelid_right": {
|
||||
"position": {
|
||||
"0.0": [0, 0, -0.1],
|
||||
"0.125": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, -0.1]
|
||||
},
|
||||
"0.1667": {
|
||||
"pre": [0, 0, -0.1],
|
||||
"post": [0, 0, -0.1]
|
||||
}
|
||||
"0.125": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]},
|
||||
"0.1667": {"pre": [0, 0, -0.1], "post": [0, 0, -0.1]}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -190,7 +186,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.mudkip.recoil": {
|
||||
"animation.mudkip.hurt": {
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"eyelid_recoil_left": {
|
||||
@@ -200,14 +196,6 @@
|
||||
"position": [0, 0, -0.1]
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.mudkip.cry": {
|
||||
"animation_length": 1.2,
|
||||
"sound_effects": {
|
||||
"0.04": {
|
||||
"effect": "pokemon.mudkip.cry"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user