mirror of
https://gitlab.com/cable-mc/cobblemon.git
synced 2026-10-20 22:26:24 -04:00
Compare commits
258
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6d67256632 | ||
|
|
be0753109c | ||
|
|
0ee36b705e | ||
|
|
396a827b37 | ||
|
|
b146892b50 | ||
|
|
5797838711 | ||
|
|
e048e8a58d | ||
|
|
3656513255 | ||
|
|
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 | ||
|
|
117f13b056 | ||
|
|
93a94b4900 | ||
|
|
40363c2ea1 | ||
|
|
056252d2bb | ||
|
|
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 |
+202
-5
@@ -13,13 +13,12 @@
|
||||
- Added support for Double Battles, Triple Battles, and Multi-battles.
|
||||
- CriticalCaptures and Pokédex progress capture multiplier now work with the Pokédex.
|
||||
- Added extra visuals to early berry growth stages.
|
||||
- Hidden Power now displays its effective typing.
|
||||
- Moves impacted by the abilities Pixelate, Refrigerate, Aerilate, Galvanize, and Normalize now display as their altered typing.
|
||||
- Added Polished Tumblestone and Tumblestone Brick block sets from Tumblestone, Black Tumblestone, and Sky Tumblestone.
|
||||
- Added Metronome, Protective Pads, Punching Glove, Room Service, Scope Lens, Shed Shell, Terrain Extender, Throat Spray, Utility Umbrella, Wide Lens, and Zoom Lens held items
|
||||
- Added particles for moves: Watersport, Mud Sport, and Psychic.
|
||||
- Added Fire, Water, Thunder, Leaf, Ice, Sun, Moon, Shiny, Dawn, and Dusk Stone storage blocks.
|
||||
- Added Eject Pack, Metronome, Protective Pads, Punching Glove, Room Service, Scope Lens, Shed Shell, Terrain Extender, Throat Spray, Utility Umbrella, Wide Lens, and Zoom Lens held items
|
||||
- Moves can now be benched without specifying a replacement move, allowing for empty move slots.
|
||||
- Moves learned via Sketch now persist after battle.
|
||||
- Added `stonjourner_henge_ruins`, `luna_henge_ruins`, and `sol_henge_ruins` structures.
|
||||
- Added a `battleInvulnerability` gamerule to make players invulnerable to any damage during a battle.
|
||||
- Added a `mobTargetInBattle` gamerule to exclude players from being targeted by mobs during a battle.
|
||||
@@ -33,8 +32,16 @@
|
||||
- Added `no_ai` and `freeze_frame` options to the `/spawnpokemon` command.
|
||||
- Added shiny Pokémon particles with sound effects.
|
||||
- Added animation for trading.
|
||||
- Added shiny Pokémon effects.
|
||||
- Added effects for the burn status effect.
|
||||
- Added effects for the moves: Psychic, Water Sport, and Mud Sport.
|
||||
- Added a new universal locator called "top".
|
||||
|
||||
### Pokémon Added
|
||||
#### Gen 1
|
||||
- Alola Bias Cubone
|
||||
- Alolan Marowak
|
||||
|
||||
#### Gen 2
|
||||
- Ledyba
|
||||
- Ledian
|
||||
@@ -42,13 +49,39 @@
|
||||
- Sunflora
|
||||
- Wobbuffet
|
||||
- Girafarig
|
||||
- Corsola
|
||||
- Remoraid
|
||||
- Octillery
|
||||
- Mantine
|
||||
- Smeargle
|
||||
- Remoraid
|
||||
- Octillery
|
||||
- Mantine
|
||||
- Corsola
|
||||
|
||||
#### Gen 3
|
||||
- Slakoth
|
||||
- Vigoroth
|
||||
- Slaking
|
||||
- Corphish
|
||||
- Crawdaunt
|
||||
- Feebas
|
||||
- Milotic
|
||||
- Wynaut
|
||||
- Absol
|
||||
- Spheal
|
||||
- Sealeo
|
||||
- Walrein
|
||||
- Bagon
|
||||
- Shelgon
|
||||
- Salamence
|
||||
|
||||
#### Gen 4
|
||||
- Shellos [East Sea form]
|
||||
- Gastrodon [East Sea form]
|
||||
- Finneon
|
||||
- Lumineon
|
||||
- Mantyke
|
||||
- Feebas
|
||||
- Milotic
|
||||
- Spheal
|
||||
@@ -67,12 +100,28 @@
|
||||
#### Gen 5
|
||||
- Purrloin
|
||||
- Liepard
|
||||
- Scraggy
|
||||
- Scrafty
|
||||
|
||||
#### Gen 6
|
||||
- Clauncher
|
||||
- Clawitzer
|
||||
|
||||
#### Gen 7
|
||||
- Pikipek
|
||||
- Trumbeak
|
||||
- Toucannon
|
||||
- Mareanie
|
||||
- Toxapex
|
||||
- Sandygast
|
||||
- Palossand
|
||||
- Bruxish
|
||||
|
||||
#### Gen 8
|
||||
- Cramorant
|
||||
- Hatenna
|
||||
- Hattrem
|
||||
- Hatterene
|
||||
- Bruxish
|
||||
- Mareanie
|
||||
- Toxapex
|
||||
@@ -82,16 +131,156 @@
|
||||
- Pincurchin
|
||||
|
||||
#### Gen 9
|
||||
- Wattrel
|
||||
- Kilowattrel
|
||||
- Wiglett
|
||||
- Wugtrio
|
||||
- Flamigo
|
||||
- Veluza
|
||||
- Farigiraf
|
||||
- Klawf
|
||||
- Finizen
|
||||
- Palafin
|
||||
- Wiglett
|
||||
- Wugtrio
|
||||
- Flamigo
|
||||
|
||||
#### Unique Forms
|
||||
- Magikarp Jump Variants
|
||||
- Gyarados Jump Variants
|
||||
|
||||
### Added cries to the following Pokémon
|
||||
- Sandshrew, Sandslash
|
||||
- Magnemite, Magneton, Magnezone
|
||||
- Gastly, Haunter, Gengar
|
||||
- Rhyhorn, Rhydon, Rhyperior
|
||||
- Happiny, Chansey
|
||||
- Horsea, Seadra, Kingdra
|
||||
- Magby, Magmar, Magmortar
|
||||
- Porygon, Porygon2, Porygon-Z
|
||||
- Sentret, Furret
|
||||
- Misdreavus, Mismagius
|
||||
- Corsola
|
||||
- Mantyke, Mantine
|
||||
- Girafarig, Farigiraf
|
||||
- Wynaut, Wobbuffet
|
||||
- Lunatone
|
||||
- Solrock
|
||||
- Corphish, Crawdaunt
|
||||
- Feebas, Milotic
|
||||
- Kecleon
|
||||
- Absol
|
||||
- Spheal, Sealeo, Walrein
|
||||
- Relicanth
|
||||
- Bagon, Shelgon, Salamence
|
||||
- Munchlax
|
||||
- Finneon, Lumineon
|
||||
- Purrloin, Liepard
|
||||
- Timburr, Gurdurr, Conkeldurr
|
||||
- Joltik, Galvantula
|
||||
- Elgyem, Beheeyem
|
||||
- Golett, Golurk
|
||||
- Deino, Zweilous, Hydreigon
|
||||
- Flabébé, Floette, Florges
|
||||
- Clauncher, Clawitzer
|
||||
- Mareanie, Toxapex
|
||||
- Wimpod, Golisopod
|
||||
- Bruxish
|
||||
- Hatenna, Hattrem, Hatterene
|
||||
- Pincurchin
|
||||
- Klawf
|
||||
- Finizen, Palafin [Zero], Palafin [Hero]
|
||||
- Dondozo
|
||||
|
||||
### Added shoulder mounts for the following Pokémon
|
||||
- Weedle
|
||||
- Caterpie
|
||||
- Spearow
|
||||
- Mew
|
||||
- Murkrow
|
||||
- Smoochum
|
||||
- Larvitar
|
||||
- Tailow
|
||||
- Plusle
|
||||
- Minun
|
||||
- Beldum
|
||||
- Starly
|
||||
- Buneary
|
||||
- Combee
|
||||
- Pachirisu
|
||||
- Pidove
|
||||
- Petilil, Hisui Bias Petilil
|
||||
- Zorua, Hisui Bias Zorua
|
||||
- Elgyem
|
||||
- Fletchling
|
||||
- Skrelp
|
||||
- Klefki
|
||||
- Fomantis
|
||||
- Morelull
|
||||
- Dreepy
|
||||
- Shroodle
|
||||
- Tatsugiri
|
||||
- Glimmet
|
||||
- Gimmighoul [Roaming]
|
||||
|
||||
### Animation updates for the following Pokémon
|
||||
- Bellsprout, Weepinbel, Victreebel
|
||||
- Shellder, Cloyster
|
||||
- Porygon, Porygon2, Porygon-Z
|
||||
- Furret
|
||||
- Swinub, Piloswine, Mamoswine
|
||||
- Skarmory
|
||||
- Spinda
|
||||
- Torkoal
|
||||
- Nincada, Ninjask
|
||||
- Lunatone
|
||||
- Solrock
|
||||
- Buneary, Lopunny
|
||||
- Alomomola
|
||||
- Dreepy, Drakloak
|
||||
- Kleavor
|
||||
|
||||
### Model updates for the following Pokémon
|
||||
- Bulbasaur, Ivysaur, Venusaur
|
||||
- Charmander, Charmeleon, Charizard
|
||||
- Kakuna, Beedrill
|
||||
- Porygon, Porygon2, Porygon-Z
|
||||
- Igglybuff, Jigglypuff, Wigglytuff
|
||||
- Poliwhirl, Poliwrath
|
||||
- Bellsprout, Weepinbell, Victreebel
|
||||
- Shellder, Cloyster
|
||||
- Gastly, Haunter
|
||||
- Onix
|
||||
- Krabby, Kingler
|
||||
- Rhyhorn, Rhydon, Rhyperior
|
||||
- Horsea, Seadra, Kingdra
|
||||
- Goldeen, Seaking
|
||||
- Magby, Magmar, Magmortar
|
||||
- Magikarp, Gyarados
|
||||
- Munchlax, Snorlax
|
||||
- Swinub, Piloswine, Mamoswine
|
||||
- Mudkip, Marshtomp, Swampert
|
||||
- Baltoy, Claydol
|
||||
- Carvanha
|
||||
- Relicanth
|
||||
- Prinplup, Empoleon
|
||||
- Gible, Gabite, Garchomp
|
||||
- Riolu, Lucario
|
||||
- Snivy, Servine, Serperior
|
||||
- Tepig, Pignite, Emboar
|
||||
- Krookodile
|
||||
- Dwebble, Crustle
|
||||
- Joltik, Galvantula
|
||||
- Klink, Klang, Klinglang
|
||||
- Golett, Golurk
|
||||
- Fennekin, Braixen, Delphox
|
||||
- Phantump, Trevenant
|
||||
- Litten, Torracat, Incineroar
|
||||
- Popplio, Brionne, Primarina
|
||||
- Lurantis
|
||||
- Scorbunny, Cinderace
|
||||
- Quaxly
|
||||
- Tatsugiri
|
||||
|
||||
### Changes
|
||||
- Buffed Dusk Ball catch multipliers: Increased multiplier to 3.5 (from 3.0) in light level 0. Increased multiplier to 3.0 (from 1.5) in light levels 1-7.
|
||||
@@ -99,9 +288,7 @@
|
||||
- Adjusted some berry balance values like yield and growth times.
|
||||
- Adjusted volumes of sounds made by Display Cases, Berry Bushes, Energy Root, Medicinal Leek, Vivichoke, Mints, Revival Herbs and Gilded Chests.
|
||||
- Changes to mulch buffs/durations.
|
||||
- Dreepy is now shoulder mountable.
|
||||
- Updated potion sprites.
|
||||
- Weedle, Caterpie, Spearow, Smoochum, Mew, Murkrow, Larvitar, Taillow, Plusle, Minun, Beldum, Starly, Buneary, Combee, Pachirisu, Pidove, Petilil, Hisui Bias Petilil, Zorua, Hisuian Zorua, Elgyem, Fletchling, Skrelp, Klefki, Fomantis, Morelull, Dreepy, Shroodle, Tatsugiri, Glimmet, and Roaming Gimmighoul are now shoulder mountable.
|
||||
- Link Cable recipe has been redesigned.
|
||||
- Updated sounds for Medicinal Leeks, Big Roots, Energy Roots and Revival Herbs.
|
||||
- Updated UI sounds for clicking and evolving Pokémon.
|
||||
@@ -124,6 +311,15 @@
|
||||
- The default number of digits for the Pokédex number in the summary has been increased, from 3 to 4.
|
||||
- The pasture block model's screen is now off by default.
|
||||
- The Poké Balls creative tab is now named Utility Items as it also encompasses Poké Rod and Pokédex items.
|
||||
- Moves can now be benched without specifying a replacement move, allowing for empty move slots.
|
||||
- Moves learned via Sketch now persist after battle.
|
||||
- Updated potion sprites
|
||||
- Removed the interchangeable evolution results for the first stage Hisuian starters to prevent confusion. The method still exists for stage 2 to 3, but stage 1 to 2 was not distinguishable enough for many users.
|
||||
- Hidden Power now displays its effective typing.
|
||||
- Updated particles for moves: Confusion, Protect, Sand Attack, and Quick Attack.
|
||||
- Updated particles for status effects: Paralysis, Poison, and Sleep.
|
||||
- Updated particles on Gastly.
|
||||
- Revamped stat buff and de-buff particles.
|
||||
|
||||
### Fixes
|
||||
- Scaled down Amaura's fetus model to avoid clipping through the tank while animating.
|
||||
@@ -179,6 +375,7 @@
|
||||
- Fixed Slowking's battle idle.
|
||||
- Fixed Grafaiai's walk speed to prevent model sliding.
|
||||
- Fixed Alolan Exeggutor's tail not showing in the party UI. It will now also stand in front of all Pokémon in the party menu :)
|
||||
- Fixed Timburr duplicating its log while fainting.
|
||||
- Fixed reviving items throwing an exception when used in battle.
|
||||
- Fixed messages for Focus Sash, Confusion, Mummy, Ice Face, Own Tempo, and Revive.
|
||||
- Improve error handling when loading spawn-sets to ensure invalid configurations don't crash the server.
|
||||
|
||||
@@ -277,6 +277,7 @@ object CobblemonNetwork {
|
||||
list.add(PacketRegisterInfo(BattleChallengeExpiredPacket.ID, BattleChallengeExpiredPacket::decode, BattleChallengeExpiredHandler))
|
||||
list.add(PacketRegisterInfo(BattleReplacePokemonPacket.ID, BattleReplacePokemonPacket::decode, BattleReplacePokemonHandler))
|
||||
list.add(PacketRegisterInfo(BattleTransformPokemonPacket.ID, BattleTransformPokemonPacket::decode, BattleTransformPokemonHandler))
|
||||
list.add(PacketRegisterInfo(BattleAppendTargetedEntityPacket.ID, BattleAppendTargetedEntityPacket::decode, BattleSetTargetedEntityHandler))
|
||||
|
||||
// MultiBattleTeam Packets
|
||||
list.add(PacketRegisterInfo(TeamRequestNotificationPacket.ID, TeamRequestNotificationPacket::decode, TeamRequestNotificationHandler))
|
||||
|
||||
+28
@@ -9,11 +9,16 @@
|
||||
package com.cobblemon.mod.common.battles.interpreter.instructions
|
||||
|
||||
import com.bedrockk.molang.runtime.MoLangRuntime
|
||||
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.CobblemonNetwork.sendPacket
|
||||
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
|
||||
import com.cobblemon.mod.common.api.battles.interpreter.Effect
|
||||
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
|
||||
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addEntityFunctions
|
||||
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addPokemonEntityFunctions
|
||||
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addPokemonFunctions
|
||||
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addStandardFunctions
|
||||
import com.cobblemon.mod.common.api.moves.Moves
|
||||
import com.cobblemon.mod.common.api.moves.animations.ActionEffectContext
|
||||
@@ -26,9 +31,14 @@ import com.cobblemon.mod.common.battles.dispatch.InstructionSet
|
||||
import com.cobblemon.mod.common.battles.dispatch.InterpreterInstruction
|
||||
import com.cobblemon.mod.common.battles.dispatch.UntilDispatch
|
||||
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
|
||||
import com.cobblemon.mod.common.net.messages.client.battle.BattleAppendTargetedEntityPacket
|
||||
import com.cobblemon.mod.common.pokemon.evolution.progress.UseMoveEvolutionProgress
|
||||
import com.cobblemon.mod.common.util.battleLang
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.server.level.ServerLevel
|
||||
import net.minecraft.server.level.ServerPlayer
|
||||
import net.minecraft.world.entity.ai.targeting.TargetingConditions
|
||||
import net.minecraft.world.phys.AABB
|
||||
import java.util.concurrent.CompletableFuture
|
||||
|
||||
/**
|
||||
@@ -97,6 +107,13 @@ class MoveInstruction(
|
||||
val runtime = MoLangRuntime().also {
|
||||
battle.addQueryFunctions(it.environment.query).addStandardFunctions()
|
||||
}
|
||||
userPokemon.effectedPokemon.entity?.let {
|
||||
val queryStruct = QueryStruct(hashMapOf())
|
||||
queryStruct.addEntityFunctions(it)
|
||||
queryStruct.addPokemonEntityFunctions(it)
|
||||
queryStruct.addPokemonFunctions(it.pokemon)
|
||||
runtime.environment.variable.setDirectly("user", queryStruct)
|
||||
}
|
||||
|
||||
actionEffect ?: return@dispatch GO
|
||||
val context = ActionEffectContext(
|
||||
@@ -130,6 +147,17 @@ class MoveInstruction(
|
||||
runtime.environment.query.addFunction("move") { move.struct }
|
||||
runtime.environment.query.addFunction("instruction_id") { StringValue(cobblemonResource("move").toString()) }
|
||||
|
||||
if (userPokemon.entity != null && targetPokemon?.entity != null) {
|
||||
//Not the most elegant solution, maybe we should just make the targeted entity a piece of SyncedData
|
||||
val serverLevel = userPokemon.entity!!.level() as? ServerLevel
|
||||
serverLevel?.getNearbyPlayers(
|
||||
TargetingConditions.forNonCombat(),
|
||||
userPokemon.entity!!,
|
||||
AABB.ofSize(userPokemon.entity!!.position(), 128.0, 128.0, 128.0)
|
||||
)?.mapNotNull { it as? ServerPlayer }?.forEach { it.sendPacket(BattleAppendTargetedEntityPacket(userPokemon.entity!!.id, targetPokemon.entity!!.id)) }
|
||||
|
||||
battle.sendUpdate(BattleAppendTargetedEntityPacket(userPokemon.entity!!.id, targetPokemon.entity!!.id))
|
||||
}
|
||||
this.future = actionEffect.run(context)
|
||||
holds = context.holds // Reference so future things can check on this action effect's holds
|
||||
future.thenApply { holds.clear() }
|
||||
|
||||
+4
-2
@@ -14,6 +14,7 @@ import com.bedrockk.molang.runtime.value.StringValue
|
||||
import com.cobblemon.mod.common.Cobblemon
|
||||
import com.cobblemon.mod.common.CobblemonSounds
|
||||
import com.cobblemon.mod.common.api.entity.PokemonSideDelegate
|
||||
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addEntityFunctions
|
||||
import com.cobblemon.mod.common.api.molang.MoLangFunctions.addFunctions
|
||||
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
|
||||
import com.cobblemon.mod.common.api.scheduling.ScheduledTask
|
||||
@@ -45,8 +46,6 @@ import net.minecraft.world.InteractionHand
|
||||
import net.minecraft.world.entity.Entity
|
||||
import net.minecraft.world.entity.player.Player
|
||||
import net.minecraft.world.phys.Vec3
|
||||
import java.util.UUID
|
||||
import java.util.concurrent.ConcurrentHashMap
|
||||
|
||||
class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
|
||||
companion object {
|
||||
@@ -94,6 +93,8 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
|
||||
private var scaleAnimTask: ScheduledTask? = null
|
||||
private var cryAnimation: ActiveAnimation? = null
|
||||
|
||||
var targetedEntityId: Int? = null
|
||||
|
||||
override fun onSyncedDataUpdated(data: EntityDataAccessor<*>) {
|
||||
super.onSyncedDataUpdated(data)
|
||||
if (this::currentEntity.isInitialized) {
|
||||
@@ -339,6 +340,7 @@ class PokemonClientDelegate : PosableState(), PokemonSideDelegate {
|
||||
struct.addFunctions(functions.functions)
|
||||
struct.addFunctions(ClientMoLangFunctions.clientFunctions)
|
||||
runtime.environment.query = struct
|
||||
addEnemyFunctions(struct)
|
||||
}
|
||||
|
||||
override fun initialize(entity: PokemonEntity) {
|
||||
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
package com.cobblemon.mod.common.client.net.battle
|
||||
|
||||
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
|
||||
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.net.messages.client.battle.BattleAppendTargetedEntityPacket
|
||||
import net.minecraft.client.Minecraft
|
||||
|
||||
object BattleSetTargetedEntityHandler : ClientNetworkPacketHandler<BattleAppendTargetedEntityPacket> {
|
||||
override fun handle(packet: BattleAppendTargetedEntityPacket, client: Minecraft) {
|
||||
val sourceEntity = Minecraft.getInstance().level?.getEntity(packet.sourceEntityId)
|
||||
val sourcePokemon = sourceEntity as? PokemonEntity
|
||||
if (sourcePokemon != null) {
|
||||
(sourcePokemon.delegate as PokemonClientDelegate).targetedEntityId = packet.targetedEntityId
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+50
-3
@@ -16,12 +16,10 @@ import com.cobblemon.mod.common.client.particle.BedrockParticleOptionsRepository
|
||||
import com.cobblemon.mod.common.client.particle.ParticleStorm
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.entity.PosableEntity
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormEntityParticlePacket
|
||||
import com.cobblemon.mod.common.pokemon.Pokemon
|
||||
import net.minecraft.client.Minecraft
|
||||
import net.minecraft.world.entity.Entity
|
||||
import kotlin.text.get
|
||||
import kotlin.math.pow
|
||||
|
||||
object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSnowstormEntityParticlePacket> {
|
||||
override fun handle(packet: SpawnSnowstormEntityParticlePacket, client: Minecraft) {
|
||||
@@ -35,6 +33,55 @@ object SpawnSnowstormEntityParticleHandler : ClientNetworkPacketHandler<SpawnSno
|
||||
|
||||
val particleRuntime = MoLangRuntime().setup().setupClient()
|
||||
particleRuntime.environment.query.addFunction("entity") { state.runtime.environment.query }
|
||||
particleRuntime.environment.query.addFunction("point_on_curve") {
|
||||
//All this just finds a curve that goes through the given points + 0, 0
|
||||
//And calcs where we are on it at t
|
||||
val t = it.getDouble(0)
|
||||
val x1 = it.getDouble(1)
|
||||
val y1 = it.getDouble(2)
|
||||
val x2 = it.getDouble(3)
|
||||
val y2 = it.getDouble(4)
|
||||
|
||||
val a0 = 0.0
|
||||
val a1 = x1.pow(2)
|
||||
val a2 = x2.pow(2)
|
||||
val b0 = 0.0
|
||||
val b1 = x1
|
||||
val b2 = x2
|
||||
val c0 = 1.0
|
||||
val c1 = 1.0
|
||||
val c2 = 1.0
|
||||
val d0 = 0.0
|
||||
val d1 = y1
|
||||
val d2 = y2
|
||||
|
||||
val matrix = arrayOf(
|
||||
arrayOf(a2, b2, c2, d2),
|
||||
arrayOf(a1, b1, c1, d1),
|
||||
arrayOf(a0, b0, c0, d0)
|
||||
)
|
||||
|
||||
for (i in 0 until 3) {
|
||||
var pivot = matrix[i][i]
|
||||
if (pivot != 0.0) {
|
||||
for (j in 0 until 4) {
|
||||
matrix[i][j] /= pivot
|
||||
}
|
||||
}
|
||||
|
||||
// Make other elements in the current column 0
|
||||
for (k in 0 until 3) {
|
||||
if (k != i) {
|
||||
val factor = matrix[k][i]
|
||||
for (j in 0 until 4) {
|
||||
matrix[k][j] -= factor * matrix[i][j]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return@addFunction matrix[0][3] * t.pow(2) + matrix[1][3] * t + matrix[2][3]
|
||||
}
|
||||
|
||||
val storm = ParticleStorm(
|
||||
effect = effect,
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.cobblemon.mod.common.api.snowstorm.BedrockParticleOptions
|
||||
import com.cobblemon.mod.common.api.snowstorm.ParticleEmitterAction
|
||||
import com.cobblemon.mod.common.client.render.MatrixWrapper
|
||||
import com.cobblemon.mod.common.client.render.SnowstormParticle
|
||||
import com.cobblemon.mod.common.entity.AttackingEntity
|
||||
import com.cobblemon.mod.common.entity.PosableEntity
|
||||
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
|
||||
import com.cobblemon.mod.common.particle.SnowstormParticleOptions
|
||||
@@ -62,6 +63,9 @@ class ParticleStorm(
|
||||
}
|
||||
if (entity is PosableEntity) {
|
||||
runtime.environment.query.addFunction("entity") { entity.struct }
|
||||
if (entity is AttackingEntity) {
|
||||
addAttackingFunctions()
|
||||
}
|
||||
} else if (entity is Player) {
|
||||
runtime.environment.query.addFunction("entity") { entity.asMoLangValue() }
|
||||
}
|
||||
@@ -76,6 +80,33 @@ class ParticleStorm(
|
||||
Minecraft.getInstance().particleEngine.add(this)
|
||||
}
|
||||
|
||||
fun addAttackingFunctions(attackingEntity: AttackingEntity) {
|
||||
attackingEntity as Entity
|
||||
runtime.environment.query.addFunction("target_deltax") {
|
||||
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
|
||||
matrixWrapper.transformWorldToParticle(attackingEntity.position()).x - matrixWrapper.transformWorldToParticle(targetedEntity.position()).x
|
||||
}
|
||||
runtime.environment.query.addFunction("target_deltay") {
|
||||
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
|
||||
matrixWrapper.transformWorldToParticle(attackingEntity.position()).y - matrixWrapper.transformWorldToParticle(targetedEntity.position()).y
|
||||
}
|
||||
runtime.environment.query.addFunction("target_deltaz") {
|
||||
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 1.0
|
||||
matrixWrapper.transformWorldToParticle(attackingEntity.position()).z - matrixWrapper.transformWorldToParticle(targetedEntity.position()).z
|
||||
}
|
||||
runtime.environment.query.addFunction("target_distance") {
|
||||
val targetedEntity = getEntityById(attackingEntity.getAttackingEntityId())?: return@addFunction 2.0
|
||||
targetedEntity.position().distanceTo(attackingEntity.position())
|
||||
}
|
||||
}
|
||||
|
||||
private fun getEntityById(entityId: Int?): Entity? {
|
||||
if (entityId != null) {
|
||||
Minecraft.getInstance().level?.getEntity(entityId)
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
fun getX() = x
|
||||
fun getY() = y
|
||||
fun getZ() = z
|
||||
|
||||
@@ -33,4 +33,5 @@ class MatrixWrapper {
|
||||
|
||||
fun getOrigin() = position.add(matrix.getOrigin())
|
||||
fun transformPosition(position: Vec3) = this.position.add(matrix.transformPosition(position))
|
||||
fun transformWorldToParticle(position: Vec3) = Matrix4f(matrix).invertAffine().transformPosition(position.subtract(this.position))
|
||||
}
|
||||
+6
@@ -96,6 +96,12 @@ class LocatorAccess(
|
||||
state.getOrPut("middle") { MatrixWrapper() }.updateMatrix(matrixStack.last().pose())
|
||||
matrixStack.popPose()
|
||||
|
||||
// If we have the entity, put in a "top" locator for top center of hitbox.
|
||||
matrixStack.pushPose()
|
||||
matrixStack.translate(0.0, -entity.boundingBox.ysize, 0.0)
|
||||
matrixStack.scale(-1F, -1F, 1F)
|
||||
state.getOrPut("top") { MatrixWrapper() }.updateMatrix(matrixStack.last().pose())
|
||||
matrixStack.popPose()
|
||||
}
|
||||
|
||||
for ((name, locator) in locators) {
|
||||
|
||||
-74
@@ -1,74 +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.BimanualSwingAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.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 AlakazamModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("alakazam")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftArm = getPart("left_shoulder")
|
||||
override val rightArm = getPart("right_shoulder")
|
||||
override val leftLeg = getPart("left_upper_leg")
|
||||
override val rightLeg = getPart("right_upper_leg")
|
||||
|
||||
override var portraitScale = 1.75F
|
||||
override var portraitTranslation = Vec3(-0.25, 0.85, 0.0)
|
||||
|
||||
override var profileScale = 0.73F
|
||||
override var profileTranslation = Vec3(0.0, 0.65, 0.0)
|
||||
|
||||
lateinit var sleep: Pose
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("alakazam", "blink")}
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook() ,
|
||||
bedrock("alakazam", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("alakazam", "ground_idle"),
|
||||
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
|
||||
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("alakazam", "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.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 BellsproutModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("bellsprout")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 2.0F
|
||||
override var portraitTranslation = Vec3(-0.1, 0.41, 0.0)
|
||||
|
||||
override var profileScale = 0.75F
|
||||
override var profileTranslation = Vec3(0.0, 0.64, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("bellsprout", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("bellsprout", "ground_idle")
|
||||
//bedrock("bellsprout", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("bellsprout", "faint") else null
|
||||
}
|
||||
+3
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
|
||||
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
|
||||
@@ -33,6 +34,8 @@ class GengarModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame {
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("gengar", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
|
||||
-68
@@ -1,68 +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.BimanualSwingAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.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 MagmarModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("magmar")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftArm = getPart("leftarm")
|
||||
override val rightArm = getPart("rightarm")
|
||||
override val leftLeg = getPart("leftleg")
|
||||
override val rightLeg = getPart("rightleg")
|
||||
|
||||
override var portraitScale = 2.8F
|
||||
override var portraitTranslation = Vec3(-0.1, 0.3, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.58, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("magmar", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("magmar", "ground_idle"),
|
||||
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
|
||||
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("magmar", "faint") else null
|
||||
}
|
||||
+3
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
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.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
@@ -28,6 +29,8 @@ class MagnemiteModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
lateinit var walk: Pose
|
||||
lateinit var sleep: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("magnemite", "cry") }
|
||||
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("magnemite", "blink") }
|
||||
|
||||
+3
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
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.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
@@ -28,6 +29,8 @@ class MagnetonModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
lateinit var walk: Pose
|
||||
lateinit var sleep: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("magneton", "cry") }
|
||||
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("magneton", "blink") }
|
||||
|
||||
-102
@@ -1,102 +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.PosableState
|
||||
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 OnixModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("onix")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 1.1F
|
||||
override var portraitTranslation = Vec3(-0.2, 1.4, 0.0)
|
||||
|
||||
override var profileScale = 0.55F
|
||||
override var profileTranslation = Vec3(-0.1, 0.9, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
lateinit var ui: Pose
|
||||
lateinit var sleep: Pose
|
||||
lateinit var battleidle: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("onix", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("onix", "blink") }
|
||||
ui = registerPose(
|
||||
poseName = "ui",
|
||||
poseTypes = UI_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("onix", "summary_idle")
|
||||
)
|
||||
)
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
transformTicks = 0,
|
||||
animations = arrayOf(
|
||||
bedrock("onix", "sleep"),
|
||||
bedrock("onix", "slow_boulder_rotation")
|
||||
)
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES,
|
||||
transformTicks = 1,
|
||||
condition = { !it.isBattling },
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("onix", "ground_idle"),
|
||||
bedrock("onix", "boulder_rotation")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 1,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("onix", "ground_walk"),
|
||||
bedrock("onix", "boulder_rotation")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
condition = { it.isBattling },
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("onix", "battle_idle"),
|
||||
bedrock("onix", "boulder_rotation")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
override fun getFaintAnimation(state: PosableState) = bedrockStateful("onix", "faint")
|
||||
}
|
||||
-72
@@ -1,72 +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.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 PoliwhirlModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("poliwhirl")
|
||||
|
||||
override var portraitScale = 1.4F
|
||||
override var portraitTranslation = Vec3(-0.1, 0.2, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
|
||||
|
||||
lateinit var sleep: Pose
|
||||
lateinit var standing: Pose
|
||||
lateinit var float: Pose
|
||||
lateinit var swim: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("poliwhirl", "blink")}
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("poliwhirl", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STANDING_POSES + UI_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("poliwhirl", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
float = registerPose(
|
||||
poseName = "float",
|
||||
poseType = PoseType.FLOAT,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("poliwhirl", "water_idle")
|
||||
)
|
||||
)
|
||||
|
||||
swim = registerPose(
|
||||
poseName = "swim",
|
||||
poseType = PoseType.SWIM,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("poliwhirl", "water_swim")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("poliwhirl", "faint") else null
|
||||
}
|
||||
-72
@@ -1,72 +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.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 PoliwrathModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("poliwrath")
|
||||
|
||||
override var portraitScale = 1.3F
|
||||
override var portraitTranslation = Vec3(-0.1, 0.36, 0.0)
|
||||
|
||||
override var profileScale = 0.85F
|
||||
override var profileTranslation = Vec3(0.0, 0.42, 0.0)
|
||||
|
||||
lateinit var sleep: Pose
|
||||
lateinit var standing: Pose
|
||||
lateinit var float: Pose
|
||||
lateinit var swim: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("poliwrath", "blink")}
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STANDING_POSES + UI_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("poliwrath", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("poliwrath", "sleep"))
|
||||
)
|
||||
|
||||
float = registerPose(
|
||||
poseName = "float",
|
||||
poseType = PoseType.FLOAT,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("poliwrath", "water_idle")
|
||||
)
|
||||
)
|
||||
|
||||
swim = registerPose(
|
||||
poseName = "swim",
|
||||
poseType = PoseType.SWIM,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("poliwrath", "water_swim")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("poliwrath", "faint") else null
|
||||
}
|
||||
+3
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen1
|
||||
|
||||
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.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
|
||||
@@ -33,6 +34,8 @@ class SandshrewModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("sandshrew", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("sandshrew", "blink")}
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -9,6 +9,7 @@
|
||||
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
|
||||
@@ -32,6 +33,8 @@ class SandslashModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("sandslash", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("sandslash", "blink")}
|
||||
standing = registerPose(
|
||||
|
||||
-56
@@ -1,56 +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.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 VictreebelModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("victreebel")
|
||||
|
||||
override var portraitScale = 2.0F
|
||||
override var portraitTranslation = Vec3(-0.1, -0.2, 0.0)
|
||||
|
||||
override var profileScale = 0.92F
|
||||
override var profileTranslation = Vec3(0.0, 0.35, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
bedrock("victreebel", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
bedrock("victreebel", "ground_idle")
|
||||
//bedrock("victreebel", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("victreebel", "faint") else null
|
||||
}
|
||||
-54
@@ -1,54 +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.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 WeepinbellModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("weepinbell")
|
||||
|
||||
override var portraitScale = 1.73F
|
||||
override var portraitTranslation = Vec3(0.0, -1.0, 0.0)
|
||||
|
||||
override var profileScale = 1.1F
|
||||
override var profileTranslation = Vec3(0.0, 0.2, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
bedrock("weepinbell", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
bedrock("weepinbell", "ground_idle")
|
||||
//bedrock("weepinbell", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("weepinbell", "faint") else null
|
||||
}
|
||||
-63
@@ -1,63 +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.animation.QuadrupedWalkAnimation
|
||||
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.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class FurretModel (root: ModelPart) : PokemonPosableModel(root), QuadrupedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("furret")
|
||||
|
||||
override val foreLeftLeg = getPart("arm_left")
|
||||
override val foreRightLeg = getPart("arm_right")
|
||||
override val hindLeftLeg = getPart("leg_left")
|
||||
override val hindRightLeg = getPart("leg_right")
|
||||
|
||||
override var portraitScale = 2.1F
|
||||
override var portraitTranslation = Vec3(-0.6, 0.2, 0.0)
|
||||
|
||||
override var profileScale = 0.82F
|
||||
override var profileTranslation = Vec3(0.0, 0.54, 0.0)
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("furret", "blink") }
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("furret", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
QuadrupedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
|
||||
bedrock("furret", "pose")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("furret", "faint") else null
|
||||
}
|
||||
-68
@@ -1,68 +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.animation.BimanualSwingAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.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 MagbyModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("magby")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftArm = getPart("lefthand")
|
||||
override val rightArm = getPart("righthand")
|
||||
override val leftLeg = getPart("leftleg")
|
||||
override val rightLeg = getPart("rightleg")
|
||||
|
||||
override var portraitScale = 2.4F
|
||||
override var portraitTranslation = Vec3(-0.05, -0.45, 0.0)
|
||||
|
||||
override var profileScale = 0.78F
|
||||
override var profileTranslation = Vec3(-0.03, 0.61, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("magby", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("magby", "ground_idle"),
|
||||
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
|
||||
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("magby", "faint") else null
|
||||
}
|
||||
+3
@@ -9,6 +9,7 @@
|
||||
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.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
|
||||
@@ -28,6 +29,8 @@ class MisdreavusModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("misdreavus", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("misdreavus", "blink") }
|
||||
standing = registerPose(
|
||||
|
||||
+3
@@ -12,6 +12,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.animation.Bimanu
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.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
|
||||
@@ -35,6 +36,8 @@ class SentretModel (root: ModelPart) : PokemonPosableModel(root), BipedFrame, Bi
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("sentret", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("sentret", "blink") }
|
||||
|
||||
|
||||
-106
@@ -1,106 +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.animation.BipedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
|
||||
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.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.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SkarmoryModel (root: ModelPart) : PokemonPosableModel(root), BipedFrame, BiWingedFrame, HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("skarmory")
|
||||
override val head = getPart("lower_neck")
|
||||
|
||||
override val leftLeg = getPart("left_thigh")
|
||||
override val rightLeg = getPart("right_thigh")
|
||||
|
||||
override val leftWing = getPart("left_wing")
|
||||
override val rightWing = getPart("right_wing")
|
||||
|
||||
override var portraitScale = 2.49F
|
||||
override var portraitTranslation = Vec3(-1.05, 1.1, 0.0)
|
||||
|
||||
override var profileScale = 0.69F
|
||||
override var profileTranslation = Vec3(0.0, 0.7, 0.0)
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
lateinit var sleeping: CobblemonPose
|
||||
lateinit var hovering: CobblemonPose
|
||||
lateinit var flying: CobblemonPose
|
||||
lateinit var battleidle: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("skarmory", "blink") }
|
||||
|
||||
sleeping = registerPose(
|
||||
poseName = "sleeping",
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(
|
||||
bedrock("skarmory", "sleep")
|
||||
)
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES - PoseType.HOVER + PoseType.UI_POSES,
|
||||
condition = { !it.isBattling },
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("skarmory", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES - PoseType.FLY,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("skarmory", "ground_idle"),
|
||||
BipedWalkAnimation(this,0.6F, 1F)
|
||||
)
|
||||
)
|
||||
|
||||
hovering = registerPose(
|
||||
poseName = "hovering",
|
||||
poseType = PoseType.HOVER,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("skarmory", "air_idle")
|
||||
)
|
||||
)
|
||||
|
||||
flying = registerPose(
|
||||
poseName = "flying",
|
||||
poseType = PoseType.FLY,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("skarmory", "air_idle")
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battleidle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
condition = { it.isBattling },
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("skarmory", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
+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.animation.BipedWalkAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.CryProvider
|
||||
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.PokemonPosableModel
|
||||
@@ -34,7 +35,7 @@ class SmeargleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, B
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
//override val cryAnimation = CryProvider { _, _ -> bedrockStateful("smeargle", "cry") }
|
||||
override val cryAnimation = CryProvider { bedrockStateful("smeargle", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("smeargle", "blink") }
|
||||
|
||||
+3
@@ -10,6 +10,7 @@ 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.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
|
||||
@@ -35,6 +36,8 @@ class StantlerModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame,
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("stantler", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("stantler", "blink") }
|
||||
|
||||
|
||||
-49
@@ -1,49 +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.gen3
|
||||
|
||||
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 net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class LunatoneModel (root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("lunatone")
|
||||
|
||||
override var portraitScale = 1.05F
|
||||
override var portraitTranslation = Vec3(0.23, 0.53, 0.0)
|
||||
|
||||
override var profileScale = 0.73F
|
||||
override var profileTranslation = Vec3(0.05, 0.68, 0.0)
|
||||
|
||||
lateinit var sleep: CobblemonPose
|
||||
lateinit var standing: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("lunatone", "blink") }
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("lunatone", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.ALL_POSES - PoseType.SLEEP,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("lunatone", "ground_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(sleep)) bedrockStateful("lunatone", "faint") else null
|
||||
}
|
||||
-74
@@ -1,74 +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.gen3
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
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.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
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class NincadaModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("nincada")
|
||||
override val head = getPart("head")
|
||||
override val foreLeftLeg= getPart("leg_front_left")
|
||||
override val foreRightLeg = getPart("leg_front_right")
|
||||
override val hindLeftLeg = getPart("leg_back_left")
|
||||
override val hindRightLeg = getPart("leg_back_right")
|
||||
|
||||
override var portraitScale = 2.0F
|
||||
override var portraitTranslation = Vec3(-0.26, -1.0, 0.0)
|
||||
override var profileScale = 0.7F
|
||||
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
|
||||
|
||||
lateinit var sleep: Pose
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("nincada", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("nincada", "blink") }
|
||||
val flutter = quirk { bedrockStateful("nincada", "quirk_wingflutter") }
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(bedrock("nincada", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = setOf(PoseType.NONE, PoseType.STAND, PoseType.PORTRAIT, PoseType.PROFILE),
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, flutter),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("nincada", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walking",
|
||||
poseTypes = setOf(PoseType.SWIM, PoseType.WALK),
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, flutter),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("nincada", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
override fun getFaintAnimation(state: PosableState) = if (state.isPosedIn(standing, walk)) bedrockStateful("nincada", "faint") else null
|
||||
}
|
||||
-93
@@ -1,93 +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.gen3
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
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.CryProvider
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class NinjaskModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("ninjask")
|
||||
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 1.8F
|
||||
override var portraitTranslation = Vec3(-0.2, -0.4, 0.0)
|
||||
|
||||
override var profileScale = 0.9F
|
||||
override var profileTranslation = Vec3(0.0, 0.3, 0.0)
|
||||
|
||||
lateinit var sleep: Pose
|
||||
lateinit var stand: Pose
|
||||
lateinit var walk: Pose
|
||||
lateinit var hover: Pose
|
||||
lateinit var fly: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("ninjask", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("ninjask", "blink") }
|
||||
val barrelRoll = quirk { bedrockStateful("ninjask", "run_quirk") }
|
||||
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("ninjask", "sleep"))
|
||||
)
|
||||
|
||||
stand = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.UI_POSES + PoseType.STATIONARY_POSES - PoseType.HOVER,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ninjask", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
hover = registerPose(
|
||||
poseName = "hover",
|
||||
poseType = PoseType.HOVER,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, barrelRoll),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ninjask", "air_idle")
|
||||
)
|
||||
)
|
||||
|
||||
fly = registerPose(
|
||||
poseName = "fly",
|
||||
poseType = PoseType.FLY,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, barrelRoll),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ninjask", "air_fly")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walking",
|
||||
poseTypes = PoseType.MOVING_POSES - PoseType.FLY,
|
||||
transformTicks = 10,
|
||||
quirks = arrayOf(blink, barrelRoll),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("ninjask", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
override fun getFaintAnimation(state: PosableState) = bedrockStateful("ninjask", "faint")
|
||||
}
|
||||
-49
@@ -1,49 +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.gen3
|
||||
|
||||
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 net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SolrockModel (root: ModelPart) : PokemonPosableModel(root) {
|
||||
override val rootPart = root.registerChildWithAllChildren("solrock")
|
||||
|
||||
override var portraitScale = 1.6F
|
||||
override var portraitTranslation = Vec3(-0.08, 0.31, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.74, 0.0)
|
||||
|
||||
lateinit var sleep: CobblemonPose
|
||||
lateinit var standing: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("solrock", "blink") }
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
animations = arrayOf(bedrock("solrock", "sleep"))
|
||||
)
|
||||
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.ALL_POSES - PoseType.SLEEP,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
bedrock("solrock", "ground_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(sleep)) bedrockStateful("solrock", "faint") else null
|
||||
}
|
||||
-57
@@ -1,57 +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.gen3
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class SpindaModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("spinda")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftLeg = getPart("leg_left")
|
||||
override val rightLeg = getPart("leg_right")
|
||||
|
||||
override var portraitScale = 1.9F
|
||||
override var portraitTranslation = Vec3(-0.5, -0.1, 0.0)
|
||||
|
||||
override var profileScale = 0.76F
|
||||
override var profileTranslation = Vec3(0.0, 0.6, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("spinda", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("spinda", "ground_idle"),
|
||||
BipedWalkAnimation(this, periodMultiplier = 0.7F)
|
||||
//bedrock("spinda", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-74
@@ -1,74 +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.gen3
|
||||
|
||||
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.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class TorkoalModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, QuadrupedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("torkoal")
|
||||
override val head = getPart("neck")
|
||||
|
||||
override val foreLeftLeg= getPart("leg_front_left")
|
||||
override val foreRightLeg = getPart("leg_front_right")
|
||||
override val hindLeftLeg = getPart("leg_back_left")
|
||||
override val hindRightLeg = getPart("leg_back_right")
|
||||
|
||||
override var portraitScale = 2.5F
|
||||
override var portraitTranslation = Vec3(-1.3, -0.5, 0.0)
|
||||
|
||||
override var profileScale = 0.8F
|
||||
override var profileTranslation = Vec3(0.0, 0.43, 0.0)
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
lateinit var battleidle: CobblemonPose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
condition = { !it.isBattling },
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("torkoal", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("torkoal", "ground_idle"),
|
||||
QuadrupedWalkAnimation(this, periodMultiplier = 0.7F, amplitudeMultiplier = 0.7F)
|
||||
)
|
||||
)
|
||||
|
||||
battleidle = registerPose(
|
||||
poseName = "battleidle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
condition = { it.isBattling },
|
||||
transformTicks = 10,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("torkoal", "battle_idle")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
+3
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.PosableState
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BipedFrame
|
||||
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
|
||||
@@ -36,6 +37,8 @@ class HappinyModel(root: ModelPart) : PokemonPosableModel(root), BipedFrame {
|
||||
lateinit var sleep: CobblemonPose
|
||||
lateinit var battle_idle: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("happiny", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("happiny", "blink") }
|
||||
val hairQuirk = quirk { bedrockStateful("happiny", "hairshake_quirk") }
|
||||
|
||||
-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.gen4
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.CobblemonPose
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.util.isBattling
|
||||
import net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class LucarioModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("lucario")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftArm = getPart("arm_left")
|
||||
override val rightArm = getPart("arm_right")
|
||||
override val leftLeg = getPart("leg_left")
|
||||
override val rightLeg = getPart("leg_right")
|
||||
|
||||
override var portraitScale = 2.2F
|
||||
override var portraitTranslation = Vec3(-0.2, 2.2, 0.0)
|
||||
|
||||
override var profileScale = 0.6F
|
||||
override var profileTranslation = Vec3(0.0, 0.83, 0.0)
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
lateinit var battleIdle: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("lucario", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("lucario", "blink") }
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
condition = { !it.isBattling },
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("lucario", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("lucario", "ground_idle"),
|
||||
BimanualSwingAnimation(this),
|
||||
BipedWalkAnimation(this)
|
||||
)
|
||||
)
|
||||
|
||||
battleIdle = registerPose(
|
||||
poseName = "battle_idle",
|
||||
poseTypes = PoseType.STATIONARY_POSES,
|
||||
condition = { it.isBattling },
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("lucario", "ground_idle"),
|
||||
bedrock("lucario", "battle_idle_aura_left"),
|
||||
bedrock("lucario", "battle_idle_aura_right")
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
-68
@@ -1,68 +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.gen4
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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.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 MagmortarModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("magmortar")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftArm = getPart("leftarm")
|
||||
override val rightArm = getPart("rightarm")
|
||||
override val leftLeg = getPart("leftleg")
|
||||
override val rightLeg = getPart("rightleg")
|
||||
|
||||
override var portraitScale = 2.2F
|
||||
override var portraitTranslation = Vec3(-0.35, 1.2, 0.0)
|
||||
|
||||
override var profileScale = 0.65F
|
||||
override var profileTranslation = Vec3(0.0, 0.73, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("magmortar", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("magmortar", "ground_idle"),
|
||||
BipedWalkAnimation(this, periodMultiplier = 0.6F, amplitudeMultiplier = 0.9F),
|
||||
BimanualSwingAnimation(this, swingPeriodMultiplier = 0.6F, amplitudeMultiplier = 0.9F)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("magmortar", "faint") else null
|
||||
}
|
||||
+3
@@ -8,6 +8,7 @@
|
||||
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
|
||||
|
||||
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
|
||||
@@ -27,6 +28,8 @@ class MagnezoneModel(root: ModelPart) : PokemonPosableModel(root) {
|
||||
lateinit var walk: Pose
|
||||
lateinit var sleep: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("magnezone", "cry") }
|
||||
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("magnezone", "blink") }
|
||||
|
||||
+3
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen4
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pokemon.PokemonPosableModel
|
||||
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 net.minecraft.client.model.geom.ModelPart
|
||||
@@ -28,6 +29,8 @@ class MismagiusModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("mismagius", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("mismagius", "blink") }
|
||||
standing = registerPose(
|
||||
|
||||
-67
@@ -1,67 +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.gen4
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BimanualSwingAnimation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.BipedWalkAnimation
|
||||
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 net.minecraft.client.model.geom.ModelPart
|
||||
import net.minecraft.world.phys.Vec3
|
||||
|
||||
class RioluModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, BipedFrame, BimanualFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("riolu")
|
||||
override val head = getPart("head")
|
||||
|
||||
override val leftArm = getPart("arm_left")
|
||||
override val rightArm = getPart("arm_right")
|
||||
override val leftLeg = getPart("leg_left")
|
||||
override val rightLeg = getPart("leg_right")
|
||||
|
||||
override var portraitScale = 2.8F
|
||||
override var portraitTranslation = Vec3(0.0, -0.3, 0.0)
|
||||
|
||||
override var profileScale = 0.85F
|
||||
override var profileTranslation = Vec3(0.0, 0.5, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("riolu", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("riolu", "blink") }
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = PoseType.STATIONARY_POSES + PoseType.UI_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("riolu", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = PoseType.MOVING_POSES,
|
||||
quirks = arrayOf(blink),
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("riolu", "ground_idle"),
|
||||
BipedWalkAnimation(this),
|
||||
BimanualSwingAnimation(this)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
+3
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5
|
||||
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
|
||||
@@ -35,6 +36,8 @@ class BeheeyemModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame,
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("beheeyem", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
sleep = registerPose(
|
||||
poseType = PoseType.SLEEP,
|
||||
|
||||
-61
@@ -1,61 +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.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.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 CrustleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("crustle")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 4.0F
|
||||
override var portraitTranslation = Vec3(-0.55, -4.0, 0.0)
|
||||
|
||||
override var profileScale = 1.0F
|
||||
override var profileTranslation = Vec3(0.0, 0.1, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("crustle", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("crustle", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("crustle", "ground_idle")
|
||||
//bedrock("crustle", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("crustle", "faint") else null
|
||||
}
|
||||
+2
-1
@@ -11,6 +11,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5
|
||||
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
|
||||
@@ -35,7 +36,7 @@ class DeinoModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, Qua
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
// override val cryAnimation = CryProvider { bedrockStateful("deino", "cry") }
|
||||
override val cryAnimation = CryProvider { bedrockStateful("deino", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
|
||||
-61
@@ -1,61 +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.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 DwebbleModel(root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
override val rootPart = root.registerChildWithAllChildren("dwebble")
|
||||
override val head = getPart("head")
|
||||
|
||||
override var portraitScale = 2.6F
|
||||
override var portraitTranslation = Vec3(-0.2, -1.9, 0.0)
|
||||
|
||||
override var profileScale = 1.0F
|
||||
override var profileTranslation = Vec3(0.0, 0.2, 0.0)
|
||||
|
||||
lateinit var standing: Pose
|
||||
lateinit var walk: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("dwebble", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
standing = registerPose(
|
||||
poseName = "standing",
|
||||
poseTypes = STATIONARY_POSES + UI_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("dwebble", "ground_idle")
|
||||
)
|
||||
)
|
||||
|
||||
walk = registerPose(
|
||||
poseName = "walk",
|
||||
poseTypes = MOVING_POSES,
|
||||
animations = arrayOf(
|
||||
singleBoneLook(),
|
||||
bedrock("dwebble", "ground_idle")
|
||||
//bedrock("dwebble", "ground_walk")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// override fun getFaintAnimation(
|
||||
// pokemonEntity: PokemonEntity,
|
||||
// state: PosableState<PokemonEntity>
|
||||
// ) = if (state.isPosedIn(standing, walk)) bedrockStateful("dwebble", "faint") else null
|
||||
}
|
||||
+3
@@ -13,6 +13,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.createTransforma
|
||||
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.ModelPartTransformation
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Pose
|
||||
@@ -42,6 +43,8 @@ class ElgyemModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame, Bi
|
||||
lateinit var shoulderLeft: Pose
|
||||
lateinit var shoulderRight: Pose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("elgyem", "cry") }
|
||||
|
||||
val shoulderOffset = 5.6
|
||||
|
||||
override fun registerPoses() {
|
||||
|
||||
+2
-1
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen5
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.frame.BiWingedFrame
|
||||
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.client.render.models.blockbench.pose.ModelPartTransformation
|
||||
@@ -33,7 +34,7 @@ class HydreigonModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
// override val cryAnimation = CryProvider { bedrockStateful("hydreigon", "cry") }
|
||||
override val cryAnimation = CryProvider { bedrockStateful("hydreigon", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("hydreigon", "blink") }
|
||||
|
||||
+2
-1
@@ -12,6 +12,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.animation.Quadru
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.animation.SingleBoneLookAnimation
|
||||
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
|
||||
@@ -41,7 +42,7 @@ class ZweilousModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame,
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
// override val cryAnimation = CryProvider { bedrockStateful("zweilous", "cry") }
|
||||
override val cryAnimation = CryProvider { bedrockStateful("zweilous", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
|
||||
|
||||
+3
@@ -10,6 +10,7 @@ package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
|
||||
|
||||
import com.cobblemon.mod.common.client.render.models.blockbench.createTransformation
|
||||
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
|
||||
@@ -31,6 +32,8 @@ class FlabebeModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
lateinit var shoulderLeft: CobblemonPose
|
||||
lateinit var shoulderRight: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("flabebe", "cry") }
|
||||
|
||||
val shoulderOffset = 10.5
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("flabebe", "blink") }
|
||||
|
||||
+4
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
|
||||
|
||||
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
|
||||
@@ -27,6 +28,9 @@ class FloetteModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("floette", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("floette", "blink") }
|
||||
|
||||
|
||||
+4
@@ -9,6 +9,7 @@
|
||||
package com.cobblemon.mod.common.client.render.models.blockbench.pokemon.gen6
|
||||
|
||||
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
|
||||
@@ -27,6 +28,9 @@ class FlorgesModel (root: ModelPart) : PokemonPosableModel(root), HeadedFrame {
|
||||
|
||||
lateinit var standing: CobblemonPose
|
||||
lateinit var walk: CobblemonPose
|
||||
|
||||
override val cryAnimation = CryProvider { bedrockStateful("florges", "cry") }
|
||||
|
||||
override fun registerPoses() {
|
||||
val blink = quirk { bedrockStateful("florges", "blink") }
|
||||
|
||||
|
||||
-22
@@ -74,11 +74,9 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("machop", ::MachopModel)
|
||||
inbuilt("machoke", ::MachokeModel)
|
||||
inbuilt("machamp", ::MachampModel)
|
||||
inbuilt("alakazam", ::AlakazamModel)
|
||||
inbuilt("arbok", ::ArbokModel)
|
||||
inbuilt("arcanine", ::ArcanineModel)
|
||||
inbuilt("articuno", ::ArticunoModel)
|
||||
inbuilt("bellsprout", ::BellsproutModel)
|
||||
inbuilt("chansey", ::ChanseyModel)
|
||||
inbuilt("crobat", ::CrobatModel)
|
||||
inbuilt("cubone", ::CuboneModel)
|
||||
@@ -118,7 +116,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("koffing", ::KoffingModel)
|
||||
inbuilt("krabby", ::KrabbyModel)
|
||||
inbuilt("lickitung", ::LickitungModel)
|
||||
inbuilt("magmar", ::MagmarModel)
|
||||
inbuilt("magnemite", ::MagnemiteModel)
|
||||
inbuilt("magneton", ::MagnetonModel)
|
||||
inbuilt("marowak", ::MarowakModel)
|
||||
@@ -137,13 +134,10 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("ninetales", ::NinetalesModel)
|
||||
inbuilt("omanyte", ::OmanyteModel)
|
||||
inbuilt("omastar", ::OmastarModel)
|
||||
inbuilt("onix", ::OnixModel)
|
||||
inbuilt("persian", ::PersianModel)
|
||||
inbuilt("pikachu", ::PikachuModel)
|
||||
inbuilt("pinsir", ::PinsirModel)
|
||||
inbuilt("poliwag", ::PoliwagModel)
|
||||
inbuilt("poliwhirl", ::PoliwhirlModel)
|
||||
inbuilt("poliwrath", ::PoliwrathModel)
|
||||
inbuilt("politoed", ::PolitoedModel)
|
||||
inbuilt("ponyta", ::PonytaModel)
|
||||
inbuilt("psyduck", ::PsyduckModel)
|
||||
@@ -167,13 +161,10 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("vaporeon", ::VaporeonModel)
|
||||
inbuilt("venomoth", ::VenomothModel)
|
||||
inbuilt("venonat", ::VenonatModel)
|
||||
inbuilt("victreebel", ::VictreebelModel)
|
||||
inbuilt("vulpix", ::VulpixModel)
|
||||
inbuilt("weepinbell", ::WeepinbellModel)
|
||||
inbuilt("weezing", ::WeezingModel)
|
||||
inbuilt("zapdos", ::ZapdosModel)
|
||||
inbuilt("elekid", ::ElekidModel)
|
||||
inbuilt("magby", ::MagbyModel)
|
||||
inbuilt("pichu", ::PichuModel)
|
||||
inbuilt("smoochum", ::SmoochumModel)
|
||||
inbuilt("tyrogue", ::TyrogueModel)
|
||||
@@ -183,7 +174,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("happiny", ::HappinyModel)
|
||||
inbuilt("leafeon", ::LeafeonModel)
|
||||
inbuilt("lickilicky", ::LickilickyModel)
|
||||
inbuilt("magmortar", ::MagmortarModel)
|
||||
inbuilt("magnezone", ::MagnezoneModel)
|
||||
inbuilt("mimejr", ::MimejrModel)
|
||||
inbuilt("scizor", ::ScizorModel)
|
||||
@@ -214,8 +204,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("piplup", ::PiplupModel)
|
||||
inbuilt("yanmega", ::YanmegaModel)
|
||||
inbuilt("basculin", ::BasculinModel)
|
||||
inbuilt("crustle", ::CrustleModel)
|
||||
inbuilt("dwebble", ::DwebbleModel)
|
||||
inbuilt("emolga", ::EmolgaModel)
|
||||
inbuilt("maractus", ::MaractusModel)
|
||||
inbuilt("bounsweet", ::BounsweetModel)
|
||||
@@ -256,8 +244,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("klinklang", :: KlinklangModel)
|
||||
inbuilt("morelull", :: MorelullModel)
|
||||
inbuilt("shiinotic", :: ShiinoticModel)
|
||||
inbuilt("riolu", :: RioluModel)
|
||||
inbuilt("lucario", :: LucarioModel)
|
||||
inbuilt("treecko", :: TreeckoModel)
|
||||
inbuilt("grovyle", :: GrovyleModel)
|
||||
inbuilt("sceptile", :: SceptileModel)
|
||||
@@ -302,7 +288,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("popplio", :: PopplioModel)
|
||||
inbuilt("brionne", :: BrionneModel)
|
||||
inbuilt("primarina", ::PrimarinaModel)
|
||||
inbuilt("spinda", ::SpindaModel)
|
||||
inbuilt("seedot", ::SeedotModel)
|
||||
inbuilt("nuzleaf", ::NuzleafModel)
|
||||
inbuilt("shiftry", ::ShiftryModel)
|
||||
@@ -315,7 +300,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("walkingwake", ::WalkingwakeModel)
|
||||
inbuilt("ironleaves", ::IronleavesModel)
|
||||
inbuilt("miltank", ::MiltankModel)
|
||||
inbuilt("torkoal", ::TorkoalModel)
|
||||
inbuilt("froakie", ::FroakieModel)
|
||||
inbuilt("frogadier", ::FrogadierModel)
|
||||
inbuilt("greninja", ::GreninjaModel)
|
||||
@@ -503,8 +487,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("crabominable", ::CrabominableModel)
|
||||
inbuilt("wimpod", ::WimpodModel)
|
||||
inbuilt("golisopod", ::GolisopodModel)
|
||||
inbuilt("nincada", ::NincadaModel)
|
||||
inbuilt("ninjask", ::NinjaskModel)
|
||||
inbuilt("shedinja", ::ShedinjaModel)
|
||||
inbuilt("ralts", ::RaltsModel)
|
||||
inbuilt("kirlia", ::KirliaModel)
|
||||
@@ -569,7 +551,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("voltorb_hisuian", ::VoltorbHisuianModel)
|
||||
inbuilt("electrode_hisuian", ::ElectrodeHisuianModel)
|
||||
inbuilt("sentret", ::SentretModel)
|
||||
inbuilt("furret", ::FurretModel)
|
||||
inbuilt("qwilfish", ::QwilfishModel)
|
||||
inbuilt("qwilfish_hisuian", ::QwilfishHisuianModel)
|
||||
inbuilt("overqwil", ::OverqwilModel)
|
||||
@@ -590,8 +571,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("budew", ::BudewModel)
|
||||
inbuilt("roselia", ::RoseliaModel)
|
||||
inbuilt("roserade", ::RoseradeModel)
|
||||
inbuilt("solrock", ::SolrockModel)
|
||||
inbuilt("lunatone", ::LunatoneModel)
|
||||
inbuilt("woobat", ::WoobatModel)
|
||||
inbuilt("swoobat", ::SwoobatModel)
|
||||
inbuilt("sandile", ::SandileModel)
|
||||
@@ -628,7 +607,6 @@ object PokemonModelRepository : VaryingModelRepository<PokemonPosableModel>() {
|
||||
inbuilt("goodra", ::GoodraModel)
|
||||
inbuilt("goodra_hisuian", ::GoodraHisuianModel)
|
||||
inbuilt("heracross", ::HeracrossModel)
|
||||
inbuilt("skarmory", ::SkarmoryModel)
|
||||
inbuilt("salandit", ::SalanditModel)
|
||||
inbuilt("salazzle", ::SalazzleModel)
|
||||
inbuilt("jangmo-o", ::JangmoOModel)
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.cobblemon.mod.common.entity
|
||||
|
||||
interface AttackingEntity {
|
||||
fun getAttackingEntityId(): Int?
|
||||
}
|
||||
@@ -34,7 +34,7 @@ class NPCBattleActor(
|
||||
) : AIBattleActor(
|
||||
gameId = npc.uuid,
|
||||
pokemonList = party.toBattleTeam(),
|
||||
battleAI = StrongBattleAI(skill)
|
||||
battleAI = RandomBattleAI()
|
||||
), EntityBackedBattleActor<NPCEntity> {
|
||||
override val entity = npc
|
||||
override val type = ActorType.NPC
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.cobblemon.mod.common.battles.BattleBuilder
|
||||
import com.cobblemon.mod.common.battles.BattleRegistry
|
||||
import com.cobblemon.mod.common.block.entity.PokemonPastureBlockEntity
|
||||
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
|
||||
import com.cobblemon.mod.common.entity.AttackingEntity
|
||||
import com.cobblemon.mod.common.entity.PosableEntity
|
||||
import com.cobblemon.mod.common.entity.PoseType
|
||||
import com.cobblemon.mod.common.entity.generic.GenericBedrockEntity
|
||||
@@ -131,7 +132,7 @@ open class PokemonEntity(
|
||||
world: Level,
|
||||
pokemon: Pokemon = Pokemon().apply { isClient = world.isClientSide },
|
||||
type: EntityType<out PokemonEntity> = CobblemonEntities.POKEMON,
|
||||
) : ShoulderRidingEntity(type, world), PosableEntity, Shearable, Schedulable, ScannableEntity {
|
||||
) : ShoulderRidingEntity(type, world), PosableEntity, Shearable, Schedulable, ScannableEntity, AttackingEntity {
|
||||
companion object {
|
||||
@JvmStatic val SPECIES = SynchedEntityData.defineId(PokemonEntity::class.java, EntityDataSerializers.STRING)
|
||||
@JvmStatic val NICKNAME = SynchedEntityData.defineId(PokemonEntity::class.java, EntityDataSerializers.COMPONENT)
|
||||
@@ -1429,4 +1430,13 @@ open class PokemonEntity(
|
||||
override fun resolveEntityScan(): LivingEntity {
|
||||
return this
|
||||
}
|
||||
|
||||
override fun getAttackingEntityId(): Int? {
|
||||
if (pokemon.isClient) {
|
||||
return (delegate as PokemonClientDelegate).targetedEntityId
|
||||
}
|
||||
else {
|
||||
TODO("Currently there is nothing that needs to know this on the server")
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
package com.cobblemon.mod.common.net.messages.client.battle
|
||||
|
||||
import com.cobblemon.mod.common.api.net.NetworkPacket
|
||||
import com.cobblemon.mod.common.util.cobblemonResource
|
||||
import net.minecraft.network.RegistryFriendlyByteBuf
|
||||
|
||||
class BattleAppendTargetedEntityPacket(val sourceEntityId: Int, val targetedEntityId: Int) : NetworkPacket<BattleAppendTargetedEntityPacket> {
|
||||
override val id = ID
|
||||
override fun encode(buffer: RegistryFriendlyByteBuf) {
|
||||
buffer.writeVarInt(sourceEntityId)
|
||||
buffer.writeVarInt(targetedEntityId)
|
||||
}
|
||||
|
||||
companion object {
|
||||
val ID = cobblemonResource("battle_append_targeted")
|
||||
fun decode(buffer: RegistryFriendlyByteBuf) = BattleAppendTargetedEntityPacket(buffer.readVarInt(), buffer.readVarInt())
|
||||
}
|
||||
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.psychic.target": {
|
||||
"animation_length": 1.70833,
|
||||
"bones": {
|
||||
"root_part": {
|
||||
"rotation": {
|
||||
"0.0": [0, 0, 0],
|
||||
"0.5": [0, "math.sin(q.anim_time*90*5-90)*5", 0],
|
||||
"0.9583": [0, "math.sin(q.anim_time*90*12-90)*5", 0],
|
||||
"1.0833": [0, 0, 0]
|
||||
},
|
||||
"scale": {
|
||||
"0.0": [1, 1, 1],
|
||||
"0.5": ["1+math.sin(q.anim_time*90*7-135)*0.15", "1+math.sin(q.anim_time*90*7)*0.15", 1],
|
||||
"0.9583": ["1+math.sin(q.anim_time*90*7-135)*0.15", "1+math.sin(q.anim_time*90*7)*0.15", 1],
|
||||
"1.0833": [
|
||||
"1.2+math.sin(q.anim_time*90*7-135)*0.2+math.sin(q.anim_time*90*350)*0.4",
|
||||
"1.2+math.sin(q.anim_time*90*7)*0.2+math.sin(q.anim_time*90*350)*0.25",
|
||||
1.2
|
||||
],
|
||||
"1.3333": [1, 1, 1]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+67
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:burn_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/large-flame"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.burnflicker": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [0, 0.79, 1, 0.97, 0.88, 0.71, 0.5, 0.25, -0.05]
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": "90*(q.entity_radius*1.2)",
|
||||
"max_particles": 120
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.2
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["math.random(-1.5,1.5)*0.4", "math.random(1,2)", "math.random(-1.5,1.5)*0.4"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": "math.random(0.3,0.5)"
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(3.75,4.75)*1",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 4
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.1*v.burnflicker+(v.particle_random_2*0.1)", "0.15*v.burnflicker+(v.particle_random_2*0.1)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 56,
|
||||
"texture_height": 10,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [8, 10],
|
||||
"step_UV": [8, 0],
|
||||
"frames_per_second": 10,
|
||||
"max_frame": 7,
|
||||
"stretch_to_lifetime": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFFFFFF",
|
||||
"0.63": "#ffffffff",
|
||||
"1.0": "#00B23000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:burn_actorresidual",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/ember"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 40,
|
||||
"max_particles": 20
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.5
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["math.random(-1.5,1.5)", "math.random(0,2)", "math.random(-1.5,1.5)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.25
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(2.75,4.75)*0.45",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 6, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.12, 0.12],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 25,
|
||||
"texture_height": 5,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [5, 5],
|
||||
"step_UV": [5, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFFC8B3",
|
||||
"1.0": "#FFB23000"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-10
@@ -10,28 +10,24 @@
|
||||
},
|
||||
"events": {
|
||||
"paraSparks": {
|
||||
"particle_effect": {
|
||||
"effect": "cobblemon:paralysis_actorresidual",
|
||||
"type": "emitter"
|
||||
},
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:status.nonvolatile.paralysis.actor"
|
||||
"event_name": "cobblemon:status.paralysis.actor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 28,
|
||||
"max_particles": 14
|
||||
"spawn_rate": "math.clamp(30*(q.entity_radius*1.5),30,120)",
|
||||
"max_particles": 140
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.5
|
||||
"active_time": 0.3
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "paraSparks"
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"radius": "math.clamp(q.entity_radius*0.9,0.7,1.5)",
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["(math.random(-2,2))*math.random(2,4)", "math.random(12,15)", "(math.random(-2,2))*math.random(2,4)"]
|
||||
},
|
||||
@@ -44,7 +40,7 @@
|
||||
"minecraft:particle_initial_speed": "math.random(0.55,0.85)*0.8",
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.225-(variable.particle_random_3*0.075))*math.clamp(q.entity_height,1,1.25)", "(0.225-(variable.particle_random_3*0.075))*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 80,
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, 0],
|
||||
"radius": "math.clamp(q.entity_radius*0.95,0.75,1.55)",
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["(math.random(-2,2))*math.random(2,4)", "math.random(12,15)", "(math.random(-2,2))*math.random(2,4)"]
|
||||
},
|
||||
@@ -31,7 +31,7 @@
|
||||
"minecraft:particle_initial_speed": "math.random(0.55,0.85)*1",
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.3-(variable.particle_random_3*0.085))*math.clamp(q.entity_height,1,1.25)", "(0.3-(variable.particle_random_3*0.085))*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 32,
|
||||
|
||||
+1
-1
@@ -18,7 +18,7 @@
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, 0],
|
||||
"radius": "math.clamp(q.entity_radius*0.9,0.7,1.5)",
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["(math.random(-2,2))*math.random(2,4)", "math.random(12,15)", "(math.random(-2,2))*math.random(2,4)"]
|
||||
},
|
||||
|
||||
+8
-13
@@ -10,42 +10,37 @@
|
||||
},
|
||||
"events": {
|
||||
"poisonHit": {
|
||||
"particle_effect": {
|
||||
"effect": "cobblemon:poison_actorresidual",
|
||||
"type": "emitter_bound"
|
||||
},
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:status.nonvolatile.poison.actor"
|
||||
"event_name": "cobblemon:status.poison.actor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 24,
|
||||
"max_particles": 12
|
||||
"spawn_rate": "math.clamp(30*(q.entity_radius*1.5),30,120)",
|
||||
"max_particles": 120
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.7
|
||||
"active_time": 0.2
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "poisonHit"
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, "((variable.particle_random_3-(variable.particle_random_3*0.5))*math.clamp(q.entity_height*0.6,1,2))", 0],
|
||||
"radius": "math.clamp(q.entity_radius*0.55,0.65,1.3)",
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["(math.random(-1,1))*math.random(3.75,5.0)", "math.random(3,15)", "(math.random(-1,1))*math.random(3.75,5.0)"]
|
||||
"direction": ["math.random(-1.5,1.5)*0.4", "math.random(1,2)", "math.random(-1.5,1.5)*0.4"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.7
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(2.55,3.75)+(q.entity_height*0.1)",
|
||||
"minecraft:particle_initial_speed": "math.random(1.55,3.75)+(q.entity_height*0.1)",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, -0.125, 0],
|
||||
"linear_drag_coefficient": 3
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.15+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)", "(0.15+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 80,
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.1+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)", "(0.1+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.1+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.1+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 8,
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@
|
||||
"linear_drag_coefficient": 0.4
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.125+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)", "(0.125+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.07+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.07+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 80,
|
||||
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:sleep_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/sleep_zzz"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 1.6,
|
||||
"max_particles": 3
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 2
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, "q.entity_height*0.5", 0],
|
||||
"direction": ["math.random(-4,-1)", 0.5, "math.random(-4,-1)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 2.25
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0.5,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 1, 0],
|
||||
"linear_drag_coefficient": 0.5
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.15+(v.particle_age*0.125)", "0.15+(v.particle_age*0.125)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 192,
|
||||
"texture_height": 12,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [12, 12],
|
||||
"step_UV": [12, 0],
|
||||
"frames_per_second": 7,
|
||||
"max_frame": 16
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#ffffffff",
|
||||
"0.61": "#ffffffff",
|
||||
"1.0": "#00FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:sleep_actorresidual",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/sleep_bubble"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": "math.random(2.075,2.15)",
|
||||
"max_particles": 16
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 2.1
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": ["math.random(-0.125,0.125)", "q.entity_height*0.5+math.random(0,0.125)", "math.random(-0.125,0.125)"],
|
||||
"direction": ["math.random(-1.9,1.9)", "math.random(0.6,0.8)", "math.random(-1.9,1.9)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 1.5
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(0.21,0.66)",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, "0.8-(v.particle_random_3*0.33)", 0],
|
||||
"linear_drag_coefficient": 0.5
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(v.particle_random_3*0.1)+math.clamp(v.particle_age*0.5, 0, 0.1)", "(v.particle_random_3*0.1)+math.clamp(v.particle_age*0.5, 0, 0.1)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 48,
|
||||
"texture_height": 8,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [8, 0],
|
||||
"frames_per_second": 4,
|
||||
"max_frame": 6
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#ffffffff",
|
||||
"0.85": "#ffffffff",
|
||||
"1.0": "#00FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:sleep_passive",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/sleep_passive"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 1.9,
|
||||
"max_particles": 6
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 2.25
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, "q.entity_height*0.5", 0],
|
||||
"direction": ["math.random(-2,-0.5)", 1, "math.random(-2,-0.5)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 1.25
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0.5,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 0.55, 0],
|
||||
"linear_drag_coefficient": 0.5
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.075+(v.particle_age*0.075)", "0.075+(v.particle_age*0.075)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 48,
|
||||
"texture_height": 8,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [8, 0],
|
||||
"frames_per_second": 5,
|
||||
"max_frame": 6
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#ffffffff",
|
||||
"0.61": "#ffffffff",
|
||||
"1.0": "#00FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+10
-14
@@ -10,42 +10,37 @@
|
||||
},
|
||||
"events": {
|
||||
"toxicHit": {
|
||||
"particle_effect": {
|
||||
"effect": "cobblemon:toxpoison_actorresidual",
|
||||
"type": "emitter_bound"
|
||||
},
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:status.nonvolatile.toxpoison.actor"
|
||||
"event_name": "cobblemon:status.badlypoison.actor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 24,
|
||||
"max_particles": 12
|
||||
"spawn_rate": "math.clamp(30*(q.entity_radius*1.5),30,120)",
|
||||
"max_particles": 120
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.7
|
||||
"active_time": 0.2
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "toxicHit"
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, "((variable.particle_random_3-(variable.particle_random_3*0.5))*math.clamp(q.entity_height*0.6,1,2))", 0],
|
||||
"radius": "math.clamp(q.entity_radius*0.6,0.65,1.3)",
|
||||
"radius": "(q.entity_radius*(0.95+v.emitter_age))/math.clamp(q.entity_scale*1.1-0.1,1,2)",
|
||||
"surface_only": true,
|
||||
"direction": ["(math.random(-1,1))*math.random(3.75,5.0)", "math.random(3,15)", "(math.random(-1,1))*math.random(3.75,5.0)"]
|
||||
"direction": ["math.random(-1.5,1.5)*0.4", "math.random(1,2)", "math.random(-1.5,1.5)*0.4"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.7
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(2.55,3.75)+(q.entity_height*0.1)",
|
||||
"minecraft:particle_initial_speed": "math.random(1.55,3.75)+(q.entity_height*0.1)",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, -0.125, 0],
|
||||
"linear_drag_coefficient": 3
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.15+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)", "(0.15+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.125+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 80,
|
||||
@@ -70,7 +65,8 @@
|
||||
"1.0": "#FF7F00C7"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_lighting": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-4
@@ -41,10 +41,7 @@
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [
|
||||
"(0.1+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)",
|
||||
"(0.1+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)"
|
||||
],
|
||||
"size": ["0.1+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.1+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 8,
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@
|
||||
"linear_drag_coefficient": 0.4
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.125+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)", "(0.125+0.25*v.particle_random_2)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"size": ["0.07+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)", "0.07+(v.particle_random_2*0.1)*math.clamp(q.entity_height,1,1.25)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 80,
|
||||
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:stat_down_circles",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/statdown_orb"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 35,
|
||||
"max_particles": 150
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_disc": {
|
||||
"offset": [0, "(q.entity_height+(0.4-(q.entity_height/3.5)))-(v.particle_random_3/2)", 0],
|
||||
"radius": "math.clamp(q.entity_radius*0.8,0.6,999)",
|
||||
"surface_only": true,
|
||||
"direction": [0, -1, 0]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.625
|
||||
},
|
||||
"minecraft:particle_initial_speed": "(q.entity_height*1.5)+(math.random(0.4,1.95)*(q.entity_height/2))",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 1.05
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.05+0.15*v.particle_random_2", "0.05+0.15*v.particle_random_2"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 99,
|
||||
"texture_height": 9,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [9, 9],
|
||||
"step_UV": [9, 0],
|
||||
"frames_per_second": 18,
|
||||
"max_frame": 11
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FF116FFF",
|
||||
"0.4": "#ffffffff",
|
||||
"1.0": "#FF116FFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:stat_down_lines",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/statdown_line"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 21,
|
||||
"max_particles": 125
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_disc": {
|
||||
"offset": ["math.sin(v.emitter_age/v.emitter_lifetime*270*9+v.emitter_random_1*360)", "(q.entity_height+(5.5+(q.entity_height/7))) * v.particle_random_1 * 0.2 - 0.15", "math.cos(v.emitter_age/v.emitter_lifetime*270*9+v.emitter_random_1*360)"],
|
||||
"radius": "q.entity_radius*0.4",
|
||||
"surface_only": true,
|
||||
"direction": [0, -1, 0]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.34
|
||||
},
|
||||
"minecraft:particle_initial_speed": 3.5,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 1
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.06, 0.6],
|
||||
"facing_camera_mode": "lookat_y",
|
||||
"uv": {
|
||||
"texture_width": 27,
|
||||
"texture_height": 31,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [3, 31],
|
||||
"step_UV": [3, 0],
|
||||
"frames_per_second": 24,
|
||||
"max_frame": 9
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FF116FFF",
|
||||
"0.4": "#ffffffff",
|
||||
"1.0": "#FF116FFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-59
@@ -1,59 +0,0 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:stat_up_circles",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/statup_orb"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 35,
|
||||
"max_particles": 150
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_disc": {
|
||||
"offset": [0, "(q.entity_height-(q.entity_height*1.5))+(v.particle_random_3/2)", 0],
|
||||
"radius": "math.clamp(q.entity_radius*0.8,0.6,999)",
|
||||
"surface_only": true,
|
||||
"direction": [0, 10, 0]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.625
|
||||
},
|
||||
"minecraft:particle_initial_speed": "(q.entity_height*1.5)+(math.random(0.4,1.95)*(q.entity_height/2))",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 1.05
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.05+0.15*v.particle_random_2", "0.05+0.15*v.particle_random_2"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 99,
|
||||
"texture_height": 9,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [9, 9],
|
||||
"step_UV": [9, 0],
|
||||
"frames_per_second": 18,
|
||||
"max_frame": 11
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFF814B",
|
||||
"0.43": "#ffffffff",
|
||||
"1.0": "#FFFF814B"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-58
@@ -1,58 +0,0 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:stat_up_lines",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/statup_line"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 21,
|
||||
"max_particles": 125
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_disc": {
|
||||
"offset": ["math.sin(v.emitter_age/v.emitter_lifetime*270*9+v.emitter_random_1*360)", "((math.random(-2,1)/4)+(q.entity_height/7))", "math.cos(v.emitter_age/v.emitter_lifetime*360*9+v.emitter_random_1*360)"],
|
||||
"radius": "q.entity_radius*0.4",
|
||||
"direction": [0, 1, 0]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.34
|
||||
},
|
||||
"minecraft:particle_initial_speed": 3.5,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 1
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.06, 0.6],
|
||||
"facing_camera_mode": "lookat_y",
|
||||
"uv": {
|
||||
"texture_width": 27,
|
||||
"texture_height": 31,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [3, 31],
|
||||
"step_UV": [3, 0],
|
||||
"frames_per_second": 24,
|
||||
"max_frame": 9
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFF814B",
|
||||
"0.43": "#ffffffff",
|
||||
"1.0": "#FFFF814B"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:statdown_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/xs-unboost"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.shrink": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [0, 0.75, 0.94, 1, 1, 1, 1, 1, 0.93, 0.7, 0]
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 30,
|
||||
"max_particles": 100
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_point": {},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": "math.random(0.48,0.52)"
|
||||
},
|
||||
"minecraft:particle_motion_parametric": {
|
||||
"relative_position": ["(math.sin(v.particle_age*(280-(q.entity_height*8))+(v.particle_random_1*360))*(math.clamp(q.entity_radius*1.1,0.2,4)+(v.particle_age*0.5)))", "(0.15+(v.particle_random_1*0.25)-(v.particle_age*math.clamp(q.entity_height*2,1.5,5))-(v.particle_random_2*0.25))", "(math.cos(v.particle_age*(280-(q.entity_height*8))+(v.particle_random_1*360))*(math.clamp(q.entity_radius*1.1,0.2,4)+(v.particle_age*0.5)))"],
|
||||
"direction": [0, 1, 0]
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.15*math.clamp(q.entity_height*0.85,1,1.75))*variable.shrink", "0.15*math.clamp(q.entity_height*0.85,1,1.75)*variable.shrink"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 45,
|
||||
"texture_height": 5,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [5, 5],
|
||||
"step_UV": [5, 0],
|
||||
"frames_per_second": 10,
|
||||
"max_frame": 9,
|
||||
"stretch_to_lifetime": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:statup_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/xs-boost"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.shrink": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [0, 0.75, 0.94, 1, 1, 1, 1, 1, 0.93, 0.7, 0]
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 30,
|
||||
"max_particles": 100
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_point": {},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": "math.random(0.48,0.52)"
|
||||
},
|
||||
"minecraft:particle_motion_parametric": {
|
||||
"relative_position": ["(math.sin(v.particle_age*(280-(q.entity_height*8))+(v.particle_random_1*360))*(math.clamp(q.entity_radius*1.1,0.2,4)+(v.particle_age*0.5)))", "-0.05+(v.particle_random_1*0.25)+(v.particle_age*math.clamp(q.entity_height*2.5,1.5,5))+(v.particle_random_2*0.25))", "(math.cos(v.particle_age*(280-(q.entity_height*8))+(v.particle_random_1*360))*(math.clamp(q.entity_radius*1.1,0.2,4)+(v.particle_age*0.5)))"],
|
||||
"direction": [0, 1, 0]
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.15*math.clamp(q.entity_height,1,1.75))*variable.shrink", "0.15*math.clamp(q.entity_height,1,1.75)*variable.shrink"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 45,
|
||||
"texture_height": 5,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [5, 5],
|
||||
"step_UV": [5, 0],
|
||||
"frames_per_second": 10,
|
||||
"max_frame": 9,
|
||||
"stretch_to_lifetime": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+23
-34
@@ -5,51 +5,38 @@
|
||||
"identifier": "cobblemon:confusion_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/medium-fadeorb"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"event_sound": {
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:move.confusion.actor"
|
||||
}
|
||||
"texture": "textures/particles/psyring1"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_instant": {
|
||||
"num_particles": 12
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 8.5,
|
||||
"max_particles": 100
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 0.4
|
||||
"active_time": 1.25
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "event_sound"
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, -0.4],
|
||||
"radius": "1.075-math.clamp(q.entity_height*0.2,0.2,0.35)",
|
||||
"surface_only": true,
|
||||
"direction": "inwards"
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": ["math.random(-0.03,0.03)", "math.random(-0.03,0.03)", -0.3],
|
||||
"direction": ["math.random(-1,1)", "math.random(-1,1)", -10]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.5
|
||||
},
|
||||
"minecraft:particle_initial_speed": 2.8,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 2
|
||||
"max_lifetime": 0.65
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0.6,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.3+(v.emitter_age/2)", "0.3+(v.emitter_age/2)"],
|
||||
"size": ["0.35+(v.particle_age*0.175)", "0.35+(v.particle_age*0.175)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 99,
|
||||
"texture_height": 9,
|
||||
"texture_width": 117,
|
||||
"texture_height": 13,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [9, 9],
|
||||
"step_UV": [9, 0],
|
||||
"frames_per_second": 24,
|
||||
"max_frame": 11
|
||||
"size_UV": [13, 13],
|
||||
"step_UV": [13, 0],
|
||||
"frames_per_second": 12,
|
||||
"max_frame": 9
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -57,9 +44,11 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.1": "#7088F5FF",
|
||||
"0.4": "#A0FFABDE",
|
||||
"1.0": "#00BA16FF"
|
||||
"0.0": "#009148FF",
|
||||
"0.2": "#C0C377FF",
|
||||
"0.6": "#A0EEE4FF",
|
||||
"0.8": "#A09148FF",
|
||||
"1.0": "#009148FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+15
-16
@@ -2,10 +2,10 @@
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:confusion_releasering",
|
||||
"identifier": "cobblemon:confusion_actorglint",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/medium-ring"
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/medium-sparkle"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
@@ -16,25 +16,25 @@
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0, -0.4]
|
||||
"offset": ["math.random(-0.03,0.03)", "math.random(-0.03,0.03)", -0.3]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.4
|
||||
"max_lifetime": 0.3
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.8, 0.8],
|
||||
"size": [0.25, 0.25],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 90,
|
||||
"texture_height": 15,
|
||||
"texture_width": 63,
|
||||
"texture_height": 9,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [15, 15],
|
||||
"step_UV": [15, 0],
|
||||
"frames_per_second": 16,
|
||||
"max_frame": 6
|
||||
"size_UV": [9, 9],
|
||||
"step_UV": [9, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 5
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -42,10 +42,9 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFFFFFF",
|
||||
"0.2": "#F0FFABDE",
|
||||
"0.5": "#90DE64FF",
|
||||
"1.0": "#00AC31FF"
|
||||
"0.0": "#FFFFD2F8",
|
||||
"0.65": "#FFFF6DD0",
|
||||
"1.0": "#FFA946FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
-15
@@ -5,34 +5,36 @@
|
||||
"identifier": "cobblemon:confusion_impact",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/large-smokeorb"
|
||||
"texture": "textures/particles/psyring2"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_instant": {
|
||||
"num_particles": 1
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.4
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0, -0.4]
|
||||
"offset": [0, 0.1, -0.4]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.45
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.75, 0.75],
|
||||
"size": [0.65, 0.65],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 143,
|
||||
"texture_height": 13,
|
||||
"texture_width": 153,
|
||||
"texture_height": 17,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [13, 13],
|
||||
"step_UV": [13, 0],
|
||||
"frames_per_second": 24,
|
||||
"max_frame": 11
|
||||
"size_UV": [17, 17],
|
||||
"step_UV": [17, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 9
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -40,10 +42,12 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.1": "#FFFFFFFF",
|
||||
"0.6": "#9089E4FF",
|
||||
"0.8": "#6B4BAAFF",
|
||||
"1.0": "#001E94FF"
|
||||
"0.0": "#009148FF",
|
||||
"0.2": "#A09148FF",
|
||||
"0.4": "#A0EEE4FF",
|
||||
"0.6": "#A0EEE4FF",
|
||||
"0.8": "#A09148FF",
|
||||
"1.0": "#009148FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+19
-18
@@ -5,40 +5,40 @@
|
||||
"identifier": "cobblemon:confusion_impactdots",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/small-fadeorb"
|
||||
"texture": "textures/particles/xs-fadeorb"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 300,
|
||||
"max_particles": 16
|
||||
"spawn_rate": 150,
|
||||
"max_particles": 12
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 0.2
|
||||
"active_time": 0.5
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, -0.4],
|
||||
"radius": 0.2,
|
||||
"offset": [0, 0.1, -0.4],
|
||||
"radius": 0.5,
|
||||
"surface_only": true,
|
||||
"direction": "outwards"
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.45
|
||||
"max_lifetime": 0.55
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(0.6,1.2)*7",
|
||||
"minecraft:particle_initial_speed": "math.random(0.75,1.5)*2.8",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 4
|
||||
"linear_drag_coefficient": 3.5
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.225-(v.particle_random_3*0.125)", "0.225-(v.particle_random_3*0.125)"],
|
||||
"size": [0.15, 0.15],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 63,
|
||||
"texture_height": 7,
|
||||
"texture_width": 45,
|
||||
"texture_height": 5,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [7, 7],
|
||||
"step_UV": [7, 0],
|
||||
"size_UV": [5, 5],
|
||||
"step_UV": [5, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 9
|
||||
}
|
||||
@@ -48,10 +48,11 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.1": "#FFFFFFFF",
|
||||
"0.6": "#9089E4FF",
|
||||
"0.8": "#6B4BAAFF",
|
||||
"1.0": "#001E94FF"
|
||||
"0.0": "#00CB48FF",
|
||||
"0.2": "#80CB48FF",
|
||||
"0.5": "#A0FF6DD0",
|
||||
"0.8": "#80CB48FF",
|
||||
"1.0": "#00CB48FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+24
-33
@@ -5,51 +5,39 @@
|
||||
"identifier": "cobblemon:confusion_target",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/medium-fadeorb"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"event_sound": {
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:move.confusion.target"
|
||||
}
|
||||
"texture": "textures/particles/psyswirl"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "event_sound"
|
||||
},
|
||||
"minecraft:emitter_rate_instant": {
|
||||
"num_particles": 12
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 9,
|
||||
"max_particles": 100
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 1
|
||||
"active_time": 0.6
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, -0.4],
|
||||
"radius": "1.2-math.clamp(q.entity_height*0.2,0.2,0.4)",
|
||||
"surface_only": true,
|
||||
"direction": "inwards"
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": ["math.sin(v.emitter_age*1080)*0.03", "0.1+math.cos(v.emitter_age*1080)*0.03", -0.5],
|
||||
"direction": [0, 0, -10]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.55
|
||||
},
|
||||
"minecraft:particle_initial_speed": 4.25,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 3
|
||||
"max_lifetime": 0.9
|
||||
},
|
||||
"minecraft:particle_initial_speed": -0.05,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.275+(v.emitter_age*0.75)", "0.275+(v.emitter_age*0.75)"],
|
||||
"size": [0.55, 0.55],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 99,
|
||||
"texture_height": 9,
|
||||
"texture_width": 68,
|
||||
"texture_height": 17,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [9, 9],
|
||||
"step_UV": [9, 0],
|
||||
"size_UV": [17, 17],
|
||||
"step_UV": [17, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 11
|
||||
"max_frame": 4,
|
||||
"loop": true
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -57,9 +45,12 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#40FFE563",
|
||||
"0.35": "#B0FFABDE",
|
||||
"1.0": "#00BD21FF"
|
||||
"0.0": "#00CB48FF",
|
||||
"0.2": "#A09148FF",
|
||||
"0.35": "#80FF6DD0",
|
||||
"0.55": "#906E86FF",
|
||||
"0.8": "#90BF31FF",
|
||||
"1.0": "#00CB48FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:ember_froth",
|
||||
"identifier": "cobblemon:ember_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/ember"
|
||||
+4
-4
@@ -10,20 +10,20 @@
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 50,
|
||||
"max_particles": 25
|
||||
"spawn_rate": "50*math.clamp(q.entity.entity_distance*0.3,1,2)",
|
||||
"max_particles": 500
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.45
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": ["math.random(-0.41,0.41)*(v.emitter_age*3.5)", "math.random(-0.41,0.41)*(v.emitter_age*3.5)", "math.random(-0.35,0.35)-v.emitter_age*7"],
|
||||
"offset": ["(math.random(-0.41,0.41)*2)*(0.2+(v.emitter_age*0.5))", "(math.random(-0.41,0.41)*2)*(0.2+(v.emitter_age*0.5))", "(q.entity.entity_distance*0.1)+math.random(-0.25,0.25)-v.emitter_age*(q.entity.entity_distance*2.25)"],
|
||||
"direction": ["math.random(-0.45,0.45)*(v.emitter_age*3)", "math.random(-0.45,0.45)*(v.emitter_age*3)", "math.random(-2.05,-0.55)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": "math.random(22,32)/100"
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*1.95",
|
||||
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*(q.entity.entity_distance/2.5)",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 4, 0],
|
||||
"linear_drag_coefficient": 3
|
||||
|
||||
+5
-5
@@ -10,14 +10,14 @@
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 20,
|
||||
"max_particles": 10
|
||||
"spawn_rate": "20*math.clamp(q.entity.entity_distance*0.2,1,2)",
|
||||
"max_particles": 1000
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.4
|
||||
"active_time": 0.45
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": ["math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.35,0.35)-v.emitter_age*9"],
|
||||
"offset": ["math.random(-0.31,0.31)*(v.emitter_age*3)", "math.random(-0.31,0.31)*(v.emitter_age*3)", "(q.entity.entity_distance*0.15)+math.random(-0.35,0.35)-v.emitter_age*(q.entity.entity_distance*2.25)"],
|
||||
"direction": ["math.random(-0.25,0.25)*(v.emitter_age*2)", "math.random(-0.25,0.25)*(v.emitter_age*2)", "math.random(-2.05,-0.55)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
@@ -26,7 +26,7 @@
|
||||
"minecraft:particle_initial_spin": {
|
||||
"rotation": "math.random_integer(0,3)*90"
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*0.75",
|
||||
"minecraft:particle_initial_speed": "math.random(2.75,4.25)*(q.entity.entity_distance/5)",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 3, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:ember_impact",
|
||||
"identifier": "cobblemon:ember_target",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/ember"
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:ember_impactlinger",
|
||||
"identifier": "cobblemon:ember_targetlinger",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/ember"
|
||||
+74
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:mudsport_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/mud_splash"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.mudsize": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [1, 1, 1, 1, 1, 1, 0.5, 0]
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"event_sound": {
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:move.mudsport.actor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 160,
|
||||
"max_particles": 60
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.5
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "event_sound"
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0, 0.1],
|
||||
"direction": ["math.random(-10,10)*1", "math.random(1.5,20)*1.75", "math.random(-10,10)*1"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.7
|
||||
},
|
||||
"minecraft:particle_initial_spin": {
|
||||
"rotation": "math.random_integer(0,3)*90"
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(6.3,11.2)*1.75",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, -15, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.15+(v.particle_random_1*0.2))*v.mudsize", "(0.15+(v.particle_random_1*0.2))*v.mudsize"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 8,
|
||||
"texture_height": 56,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [0, 8],
|
||||
"frames_per_second": 12,
|
||||
"max_frame": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_motion_collision": {
|
||||
"collision_drag": 1.8,
|
||||
"coefficient_of_restitution": 0.1,
|
||||
"collision_radius": 0.01
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+62
@@ -0,0 +1,62 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:mudsport_actorbubbles",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/mud_bubble"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.mudsize": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [1, 1, 1, 1, 1, 1, 0.5, 0]
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 60,
|
||||
"max_particles": 30
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.5
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0, 0.1],
|
||||
"direction": ["math.random(-10,10)*1.1", "math.random(5,20)*1.5", "math.random(-10,10)*1.1"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": "math.random(0.4,0.7)"
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(6.3,11.2)*1.75",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, -15, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.1+(v.particle_random_1*0.05))*v.mudsize", "(0.1+(v.particle_random_1*0.05))*v.mudsize"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 80,
|
||||
"texture_height": 8,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [8, 0],
|
||||
"frames_per_second": 8,
|
||||
"max_frame": 10,
|
||||
"stretch_to_lifetime": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_motion_collision": {
|
||||
"collision_drag": 1.1,
|
||||
"coefficient_of_restitution": 0.5,
|
||||
"collision_radius": 0.01
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:mudsport_target",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/mud_splash"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.mudsize": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [1, 1, 1, 1, 1, 1, 0.5, 0]
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_instant": {
|
||||
"num_particles": 1
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.5
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0.04, 0],
|
||||
"direction": ["math.random(-10,10)*1.1", 10, "math.random(-10,10)*1.1"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 1
|
||||
},
|
||||
"minecraft:particle_initial_spin": {
|
||||
"rotation": "math.random_integer(0,3)*90"
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(6.3,9.2)*0.4",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, -7, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.2+(v.particle_random_1*0.1))*v.mudsize", "(0.2+(v.particle_random_1*0.1))*v.mudsize"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 8,
|
||||
"texture_height": 56,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [0, 8],
|
||||
"frames_per_second": 12,
|
||||
"max_frame": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_motion_collision": {
|
||||
"collision_drag": 1.1,
|
||||
"coefficient_of_restitution": 0.3,
|
||||
"collision_radius": 0.01
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+76
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:mudsport_targetbubbles",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/mud_splash"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.mudsize": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [0, 0, 0, 0, 1, 1, 1, 1, 1, 0]
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"puddling": {
|
||||
"particle_effect": {
|
||||
"effect": "cobblemon:mudsport_target",
|
||||
"type": "particle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 100,
|
||||
"max_particles": 3000
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1.75
|
||||
},
|
||||
"minecraft:emitter_shape_disc": {
|
||||
"offset": ["(v.particle_random_3-0.5)*1", 6, "(v.particle_random_4-0.5)*1"],
|
||||
"radius": 2.5,
|
||||
"direction": ["math.random(-0.1,0.1)*6", 0, "math.random(-0.1,0.1)*6"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": "math.random(0.5,0.7)*1.7"
|
||||
},
|
||||
"minecraft:particle_lifetime_events": {
|
||||
"expiration_event": "puddling"
|
||||
},
|
||||
"minecraft:particle_initial_spin": {
|
||||
"rotation": "math.random_integer(0,3)*90"
|
||||
},
|
||||
"minecraft:particle_initial_speed": 1,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, -30, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["(0.15+(v.particle_random_1*0.15))*v.mudsize", "(0.15+(v.particle_random_1*0.15))*v.mudsize"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 8,
|
||||
"texture_height": 56,
|
||||
"flipbook": {
|
||||
"base_UV": [0, "math.random_integer(0,1)*8"],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [0, 0],
|
||||
"max_frame": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_motion_collision": {
|
||||
"collision_drag": 1.1,
|
||||
"coefficient_of_restitution": 0.1,
|
||||
"collision_radius": 0.01,
|
||||
"expire_on_contact": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
-64
@@ -1,64 +0,0 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:protect-rings",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_alpha",
|
||||
"texture": "textures/particles/large-ring"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"event_sound": {
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:move.protect.actor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 5,
|
||||
"max_particles": 2
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.45
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "event_sound"
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, "1-(math.clamp(q.entity_height*0.33,0,1))", -0.62]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.55
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [1.25, 1.25],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 160,
|
||||
"texture_height": 20,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [20, 20],
|
||||
"step_UV": [20, 0],
|
||||
"frames_per_second": 16,
|
||||
"max_frame": 8
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFD8FDFF",
|
||||
"0.57": "#FF6FCCFF",
|
||||
"1.0": "#FF2C91FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+22
-9
@@ -4,10 +4,17 @@
|
||||
"description": {
|
||||
"identifier": "cobblemon:protect-shine",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"material": "particles_add",
|
||||
"texture": "textures/particles/protect-shine"
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"event_sound": {
|
||||
"sound_effect": {
|
||||
"event_name": "cobblemon:move.protect.actor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_instant": {
|
||||
"num_particles": 1
|
||||
@@ -15,21 +22,20 @@
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_lifetime_events": {
|
||||
"creation_event": "event_sound"
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, "1-(math.clamp(q.entity_height*0.33,0,1))", -0.621]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.6
|
||||
"max_lifetime": 0.65
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [1.25, 1.25],
|
||||
"facing_camera_mode": "lookat_direction",
|
||||
"direction": {
|
||||
"mode": "custom",
|
||||
"custom_direction": [-1, 0, 0]
|
||||
},
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 200,
|
||||
"texture_height": 20,
|
||||
@@ -37,13 +43,20 @@
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [20, 20],
|
||||
"step_UV": [20, 0],
|
||||
"frames_per_second": 18,
|
||||
"frames_per_second": 16,
|
||||
"max_frame": 10
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": [1, 1, 1, 0.6902]
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#70FFFFFF",
|
||||
"0.5": "#A0FFFFFF",
|
||||
"1.0": "#70FFFFFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+36
-20
@@ -8,41 +8,58 @@
|
||||
"texture": "textures/particles/small-sparkle"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.size": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime / 1.5",
|
||||
"nodes": [0.2, 0.69, 0.26, 0.78, 0.26, 0.8, 0]
|
||||
}
|
||||
},
|
||||
"events": {
|
||||
"event_ambient": {
|
||||
"sound_effect": {
|
||||
"event_name": "q.sound"
|
||||
},
|
||||
"expression": "q.sound('particle.shiny_ambient',0.05,q.random(0.8,1.2))"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_local_space": {
|
||||
"position": true,
|
||||
"rotation": false
|
||||
},
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 28,
|
||||
"max_particles": 20
|
||||
"spawn_rate": 30,
|
||||
"max_particles": 100
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 0.7
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.5
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": ["(1.1/math.clamp(q.entity_scale*1.1-0.1,1,9))*math.sin(v.emitter_age*360*643)", "(1.1/math.clamp(q.entity_scale*1.1-0.1,1,9))*-math.cos(v.emitter_age*360*643)+(1-(math.clamp(q.entity_height*0.33,0,1)))", -0.625],
|
||||
"direction": ["math.random(-2,2)", "math.random(1,2)", "math.random(-2,2)"]
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0.05, 0],
|
||||
"radius": "q.entity_radius*1.3/math.clamp((q.entity_scale*1.1)-0.1,0.8,5)",
|
||||
"surface_only": true,
|
||||
"direction": ["math.random(-1,1)", 1, "math.random(-1,1)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.325
|
||||
"max_lifetime": 0.3
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0.2,
|
||||
"minecraft:particle_lifetime_events": {
|
||||
"creation_event": "event_ambient"
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0.5,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 0.4, 0]
|
||||
"linear_drag_coefficient": 0.1
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.25, 0.25],
|
||||
"size": ["math.clamp(q.entity_size * 0.1, 0.15,0.3)", "math.clamp(q.entity_size * 0.1, 0.15,0.3)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 49,
|
||||
"texture_height": 7,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"base_UV": [7, 0],
|
||||
"size_UV": [7, 7],
|
||||
"step_UV": [7, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 7
|
||||
"frames_per_second": 12,
|
||||
"max_frame": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -51,8 +68,7 @@
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#ffffffff",
|
||||
"0.5": "#FFE6FFFE",
|
||||
"1.0": "#FFAEF1FF"
|
||||
"1.0": "#FF95FFF9"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:psychic_actor",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/psychicsend"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_instant": {
|
||||
"num_particles": 1
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 1.5
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0, -0.3]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 1
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [1, 1],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 768,
|
||||
"texture_height": 32,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [32, 32],
|
||||
"step_UV": [32, 0],
|
||||
"frames_per_second": 24,
|
||||
"max_frame": 24
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": [1, 0.7451, 0.97255, 0.62745]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+18
-16
@@ -2,7 +2,7 @@
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:confusion_releasedots",
|
||||
"identifier": "cobblemon:psychic_actordots",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/xs-fadeorb"
|
||||
@@ -10,27 +10,27 @@
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 150,
|
||||
"max_particles": 12
|
||||
"spawn_rate": 30,
|
||||
"max_particles": 60
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 0.5
|
||||
"active_time": 1
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, -0.4],
|
||||
"radius": 0.45,
|
||||
"offset": [0, 0.1, -0.4],
|
||||
"radius": 0.1,
|
||||
"surface_only": true,
|
||||
"direction": "outwards"
|
||||
"direction": ["math.sin(v.emitter_age*2560)*30", "math.cos(v.emitter_age*2560)*30", "math.random(-75,10)*1.1"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.55
|
||||
"max_lifetime": 0.5
|
||||
},
|
||||
"minecraft:particle_initial_speed": "math.random(0.75,1.5)*2.75",
|
||||
"minecraft:particle_initial_speed": "math.random(1.05,1.5)*4.5",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_drag_coefficient": 4
|
||||
"linear_drag_coefficient": 3.5
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.175, 0.175],
|
||||
"size": [0.15, 0.15],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 45,
|
||||
@@ -39,7 +39,7 @@
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [5, 5],
|
||||
"step_UV": [5, 0],
|
||||
"frames_per_second": 20,
|
||||
"frames_per_second": 16,
|
||||
"max_frame": 9
|
||||
}
|
||||
}
|
||||
@@ -48,10 +48,12 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFFFFFF",
|
||||
"0.2": "#F0FFABDE",
|
||||
"0.5": "#90DE64FF",
|
||||
"1.0": "#00AC31FF"
|
||||
"0.0": "#00AE00FF",
|
||||
"0.25": "#A0FF51CD",
|
||||
"0.45": "#C0FF87E9",
|
||||
"0.6": "#D0DD00FF",
|
||||
"0.75": "#A0B702FF",
|
||||
"1.0": "#009600FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
+19
-17
@@ -2,10 +2,10 @@
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:confusion_release",
|
||||
"identifier": "cobblemon:psychic_impact",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_add",
|
||||
"texture": "textures/particles/medium-fadeorb"
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/psychichit"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
@@ -13,26 +13,28 @@
|
||||
"num_particles": 1
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.55
|
||||
"active_time": 1.5
|
||||
},
|
||||
"minecraft:emitter_shape_point": {
|
||||
"offset": [0, 0, -0.4]
|
||||
"offset": [0, 0.15, -0.3]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.45
|
||||
"max_lifetime": 1
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.45, 0.45],
|
||||
"size": [1, 1],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 99,
|
||||
"texture_height": 9,
|
||||
"texture_width": 704,
|
||||
"texture_height": 32,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [9, 9],
|
||||
"step_UV": [9, 0],
|
||||
"frames_per_second": 24,
|
||||
"max_frame": 11
|
||||
"size_UV": [32, 32],
|
||||
"step_UV": [32, 0],
|
||||
"frames_per_second": 22,
|
||||
"max_frame": 22
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -40,10 +42,10 @@
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#FFFFFFFF",
|
||||
"0.25": "#F0FFBED2",
|
||||
"0.55": "#90E77EFF",
|
||||
"1.0": "#00B531FF"
|
||||
"0.0": "#70FFC6D4",
|
||||
"0.25": "#AAFFD5ED",
|
||||
"0.5": "#80FFFFFF",
|
||||
"1.0": "#30E3ADFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:psychic_impactdots",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/small-psychichit"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 25,
|
||||
"max_particles": 25
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.6
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0.15, -0.4],
|
||||
"radius": "1.1/math.clamp(q.entity_scale*1.1-0.1,1,9)",
|
||||
"surface_only": true,
|
||||
"direction": "outwards"
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.55
|
||||
},
|
||||
"minecraft:particle_initial_speed": 0.15,
|
||||
"minecraft:particle_motion_dynamic": {},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": ["0.2+(v.particle_age*0.2)", "0.2+(v.particle_age*0.2)"],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 192,
|
||||
"texture_height": 16,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [16, 16],
|
||||
"step_UV": [16, 0],
|
||||
"frames_per_second": 20,
|
||||
"max_frame": 12
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#70FFC6D4",
|
||||
"0.25": "#AAFFD5ED",
|
||||
"0.5": "#80FFFFFF",
|
||||
"1.0": "#30E3ADFF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+65
@@ -0,0 +1,65 @@
|
||||
{
|
||||
"format_version": "1.10.0",
|
||||
"particle_effect": {
|
||||
"description": {
|
||||
"identifier": "cobblemon:psychic_target",
|
||||
"basic_render_parameters": {
|
||||
"material": "particles_blend",
|
||||
"texture": "textures/particles/spiral"
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": "math.clamp(40*q.entity_height,15,40)",
|
||||
"max_particles": 200
|
||||
},
|
||||
"minecraft:emitter_lifetime_looping": {
|
||||
"active_time": 1.13
|
||||
},
|
||||
"minecraft:emitter_shape_disc": {
|
||||
"offset": [0, "math.random(0.2,(q.entity_height*0.9))/math.clamp(q.entity_scale*1.1-0.1,1,9)", 0],
|
||||
"radius": "(q.entity_radius*0.95)/math.clamp(q.entity_scale*1.1-0.1,1,9)",
|
||||
"direction": ["math.random(-0.5,0.5)", 0, "math.random(-0.5,0.5)"]
|
||||
},
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.95
|
||||
},
|
||||
"minecraft:particle_initial_spin": {
|
||||
"rotation": "math.random_integer(0,3)*90"
|
||||
},
|
||||
"minecraft:particle_initial_speed": 1,
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 3, 0],
|
||||
"linear_drag_coefficient": 2
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.225, 0.225],
|
||||
"facing_camera_mode": "rotate_xyz",
|
||||
"uv": {
|
||||
"texture_width": 64,
|
||||
"texture_height": 8,
|
||||
"flipbook": {
|
||||
"base_UV": [56, 0],
|
||||
"size_UV": [8, 8],
|
||||
"step_UV": [-8, 0],
|
||||
"frames_per_second": 8,
|
||||
"max_frame": 8
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
"color": {
|
||||
"interpolant": "v.particle_age / v.particle_lifetime",
|
||||
"gradient": {
|
||||
"0.0": "#00AE00FF",
|
||||
"0.25": "#A0FF51CD",
|
||||
"0.45": "#C0FF87E9",
|
||||
"0.6": "#D0DD00FF",
|
||||
"0.75": "#A0B702FF",
|
||||
"1.0": "#009600FF"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+21
-8
@@ -8,13 +8,21 @@
|
||||
"texture": "textures/particles/quickattack_dashlines"
|
||||
}
|
||||
},
|
||||
"curves": {
|
||||
"variable.qsquish": {
|
||||
"type": "linear",
|
||||
"input": "v.particle_age",
|
||||
"horizontal_range": "v.particle_lifetime",
|
||||
"nodes": [0, 1, 1, 0]
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"minecraft:emitter_rate_steady": {
|
||||
"spawn_rate": 50,
|
||||
"spawn_rate": 100,
|
||||
"max_particles": 100
|
||||
},
|
||||
"minecraft:emitter_lifetime_once": {
|
||||
"active_time": 0.2
|
||||
"active_time": 0.25
|
||||
},
|
||||
"minecraft:emitter_shape_sphere": {
|
||||
"offset": [0, 0, -1],
|
||||
@@ -24,18 +32,23 @@
|
||||
"minecraft:particle_lifetime_expression": {
|
||||
"max_lifetime": 0.2
|
||||
},
|
||||
"minecraft:particle_initial_speed": 8,
|
||||
"minecraft:particle_initial_speed": "9+v.particle_age",
|
||||
"minecraft:particle_motion_dynamic": {
|
||||
"linear_acceleration": [0, 0, 1]
|
||||
},
|
||||
"minecraft:particle_appearance_billboard": {
|
||||
"size": [0.4, 0.4],
|
||||
"size": ["0.2*v.qsquish", 0.02],
|
||||
"facing_camera_mode": "lookat_direction",
|
||||
"uv": {
|
||||
"texture_width": 64,
|
||||
"texture_height": 16,
|
||||
"uv": ["math.floor(variable.particle_random_2 * 4) * 16", 0],
|
||||
"uv_size": [16, 16]
|
||||
"texture_width": 14,
|
||||
"texture_height": 1,
|
||||
"flipbook": {
|
||||
"base_UV": [0, 0],
|
||||
"size_UV": [2, 1],
|
||||
"step_UV": [2, 0],
|
||||
"frames_per_second": 16,
|
||||
"max_frame": 7
|
||||
}
|
||||
}
|
||||
},
|
||||
"minecraft:particle_appearance_tinting": {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user