Compare commits

...
3007 Commits
Author SHA1 Message Date
Islana 17ca9a31f1 Fix for forewarn not displaying moves with spaces in them. 2023-08-19 03:55:54 -04:00
Islana c851f57e36 Fix for forewarn not displaying moves with spaces in them. 2023-08-19 03:53:31 -04:00
Islana 2b3497e63d Fix for forewarn not displaying moves with spaces in them. 2023-08-19 03:47:11 -04:00
Islana c014efa9a6 Merge remote-tracking branch 'origin/main' 2023-08-18 23:48:01 -04:00
Hiroku 6dc4b6af24 Merge branch 'Zackghast7-main-patch-07680' into 'main'
Updated evYield for overqwil.json

See merge request cable-mc/cobblemon!586
2023-08-14 05:12:06 +00:00
Zack 071278caa2 Updated evYield for overqwil.json 2023-08-12 16:37:57 +00:00
Hiroku 12a29d1289 Merge branch 'Zackghast7-main-patch-64696' into 'main'
Update wyrdeer.json with the correct evs

See merge request cable-mc/cobblemon!585
2023-08-11 22:05:15 +00:00
Zack bc85fdb778 Update wyrdeer.json with the correct evs 2023-08-11 22:00:37 +00:00
Hiroku 0d0d659ce5 Merge branch 'added-sounds' into 'main'
New Healing Machine sound, shortened Healing Machine's heal time, updated PC and UI sounds

See merge request cable-mc/cobblemon!584
2023-08-11 21:42:15 +00:00
SterrezoandHiroku 535e0b6f87 New Healing Machine sound, shortened Healing Machine's heal time, updated PC and UI sounds 2023-08-11 21:42:15 +00:00
Licious dd8cb49295 Merge branch 'spawning-improvements' into 'main'
Fixed Pokémon spawning in walls, improve canSeeSky spawn condition, use new...

See merge request cable-mc/cobblemon!583
2023-08-11 19:24:56 +00:00
Paul 2c5968986d Fixed Pokémon spawning in walls, improve canSeeSky spawn condition, use new FlatSelector selection algorithm, remove terrible width spawn condition 2023-08-11 21:12:27 +10:00
Licious 7b29d31009 Merge branch 'pokemon_loot_gamerule' into 'main'
Add doPokemonLoot gamerule

See merge request cable-mc/cobblemon!576
2023-08-09 07:53:17 +00:00
MiaandLicious 8820a546db Add doPokemonLoot gamerule 2023-08-09 07:53:17 +00:00
Nick c4eb422722 Merge branch 'new-held-items' into 'main'
Added in five more held items

See merge request cable-mc/cobblemon!581
2023-08-08 22:48:19 +00:00
DeltricandNick d8f4638806 Added in five more held items 2023-08-08 22:48:19 +00:00
Hiroku f92aa1777c Merge branch 'fix/pokemon-property-extractor' into 'main'
add createPokemonProperties(List)

See merge request cable-mc/cobblemon!578
2023-08-07 03:35:13 +00:00
FawksXandHiroku 8d864a3ff8 add createPokemonProperties(List) 2023-08-07 03:35:13 +00:00
Paul 17a1409619 Fixed stat hex colour bleeding into text 2023-08-06 16:18:56 +10:00
Paul 51f92e1635 Further improvements to stat hex 2023-08-06 16:14:51 +10:00
Hiroku 9c3f8c9e8f Merge branch 'main' into 'main'
Fixes issue #394. Also fixes an (unlisted?) issue where special ivs/evs are not allocatable via pokegive

Closes #394

See merge request cable-mc/cobblemon!574
2023-08-06 00:44:12 +00:00
ApionandHiroku 923f40ab68 Fixes issue #394. Also fixes an (unlisted?) issue where special ivs/evs are not allocatable via pokegive 2023-08-06 00:44:12 +00:00
Paul cd7c3a0319 Merge remote-tracking branch 'origin/main' 2023-08-06 10:17:02 +10:00
Paul 8311dd8785 Fixed chance of sheared Pokémon dropping no wool 2023-08-06 09:37:53 +10:00
Hiroku f489cd096f Merge branch 'solve_playerdata_cache' into 'main'
Solve playerdata cache

See merge request cable-mc/cobblemon!575
2023-08-05 21:46:43 +00:00
Pedro SouzaandHiroku 0a4dc34895 Solve playerdata cache 2023-08-05 21:46:42 +00:00
Paul b1bc867ef8 Merge remote-tracking branch 'origin/main' 2023-08-05 17:17:29 +10:00
Paul 3f6af25afa Added dire hit and guard spec to creative menu 2023-08-05 17:17:17 +10:00
Hiroku 9946c39de0 Merge branch 'sound_updates' into 'main'
Sound updates

See merge request cable-mc/cobblemon!573
2023-08-04 21:48:21 +00:00
LilyandHiroku 037ba953b7 Sound updates 2023-08-04 21:48:21 +00:00
Hiroku 5b7b9342e5 Merge branch 'plant-issues' into 'main'
Various new crop fixes

Closes #396 and #347

See merge request cable-mc/cobblemon!569
2023-08-04 06:35:03 +00:00
LiciousandHiroku c52b99270b Various new crop fixes 2023-08-04 06:35:03 +00:00
Licious 2e67e804a7 Merge branch 'healing-items' into 'main'
Added healing items / bag items

See merge request cable-mc/cobblemon!333
2023-07-31 12:01:18 +00:00
LandonandLicious de58d11f9e Added healing items / bag items 2023-07-31 12:01:17 +00:00
Paul ede62cc049 Fixed some Pokémon having eyelids blending into their eyes in GUIs (gross) 2023-07-25 21:01:05 +10:00
Hiroku ee92206b43 Merge branch '323-broken-spawn-file-spawns-random-species' into 'main'
Fixed name typos in the spawn_pool_world files result in any pokemon spawning

Closes #323

See merge request cable-mc/cobblemon!570
2023-07-25 09:29:33 +00:00
selfdotandHiroku e47dbd7b71 Fixed name typos in the spawn_pool_world files result in any pokemon spawning 2023-07-25 09:29:33 +00:00
Hiroku 3548ee1172 Merge branch '355-switch-menu-retains-species-name' into 'main'
Changed battle switch menu to show pokemon display name

Closes #355

See merge request cable-mc/cobblemon!571
2023-07-24 21:45:06 +00:00
David Sadler e20eb6963f Changed battle switch menu to show pokemon display name 2023-07-24 19:37:58 +01:00
Licious 0d8589daad Merge branch 'ai-improvements' into 'main'
Various AI pathing improvements

See merge request cable-mc/cobblemon!568
2023-07-24 10:55:57 +00:00
HirokuandLicious 69fd7f5b99 Various AI pathing improvements 2023-07-24 10:55:57 +00:00
Hiroku 52a6a51d5e Merge branch 'main' into 'main'
Add player data store factory

See merge request cable-mc/cobblemon!565
2023-07-23 21:37:48 +00:00
Pedro SouzaandHiroku 7583e865ee Add player data store factory 2023-07-23 21:37:47 +00:00
Hiroku 651ed9cbcf Merge branch 'missing_messages' into 'main'
Missing messages

See merge request cable-mc/cobblemon!566
2023-07-23 21:33:26 +00:00
LilyandHiroku d45a654433 Missing messages 2023-07-23 21:33:26 +00:00
Hiroku a69042d892 Merge branch 'ghost-bug-item-dupe-fix' into 'main'
Ghost bug item dupe fix

See merge request cable-mc/cobblemon!567
2023-07-21 23:28:01 +00:00
MoeBoy76andHiroku 9007a75d69 Ghost bug item dupe fix 2023-07-21 23:28:01 +00:00
Hiroku bbf9836212 Merge branch 'pc-upgrade-moar-ram' into 'main'
PC Recipe Update

See merge request cable-mc/cobblemon!559
2023-07-20 21:54:43 +00:00
dhi_holoandHiroku 0b08044298 PC Recipe Update 2023-07-20 21:54:42 +00:00
Hiroku e53aa10f79 Merge branch 'added-sounds' into 'main'
Renamed cries for the new system, added cries for Gen 9 starters and evos, made all ambients blank

See merge request cable-mc/cobblemon!564
2023-07-20 21:54:33 +00:00
SterrezoandHiroku 1393904bc0 Renamed cries for the new system, added cries for Gen 9 starters and evos, made all ambients blank 2023-07-20 21:54:33 +00:00
Paul 90d51385b3 Nicknaming fixes 2023-07-18 19:09:31 +10:00
Hiroku 960454794d Merge branch 'cry-more' into 'main'
Implemented improved Pokémon cry system for battles and sendout, migrated Treecko and Pidgeot to it

See merge request cable-mc/cobblemon!563
2023-07-18 07:29:11 +00:00
Hiroku 0648185b38 Implemented improved Pokémon cry system for battles and sendout, migrated Treecko and Pidgeot to it 2023-07-18 07:29:11 +00:00
Licious efb202070c Merge branch 'main-patch-ce51' into 'main'
add mulch to creative inventory

See merge request cable-mc/cobblemon!560
2023-07-16 18:09:08 +00:00
Lily 23fdda700c add mulch to creative inventory 2023-07-16 16:40:31 +00:00
Licious 67251d3724 Merge branch 'shedninja-ball-fix' into 'main'
make Shedninja be in the actualy Pokeball consumed when evolving from Nincada

See merge request cable-mc/cobblemon!558
2023-07-14 22:07:23 +00:00
MoeBoy76 9fba594ca5 make Shedninja be in the actualy Pokeball consumed when evolving from Nincada 2023-07-15 07:50:21 +10:00
Licious 967e714c37 Uncomment code used for debug. 2023-07-14 10:10:22 +01:00
Nick 8fac0e0697 Merge branch 'healing-machine-fixes' into 'main'
Healing machine rendering fixes

See merge request cable-mc/cobblemon!555
2023-07-13 21:42:42 +00:00
LiciousandNick cdde54c483 Healing machine rendering fixes 2023-07-13 21:42:42 +00:00
Nick 59ea3bb3f4 Merge branch 'party-swap-click-sound' into 'main'
Add missing sound to the party swap icon.

Closes #350

See merge request cable-mc/cobblemon!554
2023-07-13 21:39:34 +00:00
Licious cc4456e1e3 Add missing sound to the party swap icon. 2023-07-13 16:17:56 +01:00
Hiroku 36331c733b Merge branch 'pasture-connect-to-fence' into 'main'
Pasture block fence connection support

See merge request cable-mc/cobblemon!551
2023-07-12 11:44:10 +00:00
LiciousandHiroku be25dc8999 Pasture block fence connection support 2023-07-12 11:44:10 +00:00
Hiroku 1770b44547 Merge branch 'stat-submenu-click-sounds' into 'main'
Stat submenu click sounds

Closes #342

See merge request cable-mc/cobblemon!552
2023-07-12 09:01:33 +00:00
LiciousandHiroku e058a4ac86 Stat submenu click sounds 2023-07-12 09:01:33 +00:00
Hiroku 09f4d17e15 Merge branch 'who-let-dhi-cook' into 'main'
Vivichoke, Roasted Leek, Pasture Particle, and Saturation

See merge request cable-mc/cobblemon!550
2023-07-12 07:49:43 +00:00
dhi_holoandHiroku 5d57465a5f Vivichoke, Roasted Leek, Pasture Particle, and Saturation 2023-07-12 07:49:43 +00:00
Nick e1e0635d5d Merge branch 'pasture-safe-block-detection-improvement' into 'main'
Improve pasture spawn conditions

Closes #327

See merge request cable-mc/cobblemon!549
2023-07-11 22:31:12 +00:00
LiciousandNick 2652cfa6fa Improve pasture spawn conditions 2023-07-11 22:31:12 +00:00
Hiroku a33978d5a5 Merge branch 'apricorn-seed-rename' into 'main'
Rename Apricorn seeds to sprouts

Closes #324

See merge request cable-mc/cobblemon!548
2023-07-11 21:29:32 +00:00
LiciousandHiroku 78ff7628a6 Rename Apricorn seeds to sprouts 2023-07-11 21:29:32 +00:00
Hiroku bfa685a434 Merge branch 'pasture-item-drop' into 'main'
Fixes the pasture block not dropping itself on break and having no dedicate...

Closes #339

See merge request cable-mc/cobblemon!547
2023-07-11 20:53:53 +00:00
LiciousandHiroku c9aad028ac Fixes the pasture block not dropping itself on break and having no dedicate... 2023-07-11 20:53:53 +00:00
Nick 551b2f9ea6 Merge branch 'no-more-ghost-cries' into 'main'
Prevent Pokémon cries from playing while a Pokémon is inside a Pokéball being captured.

See merge request cable-mc/cobblemon!546
2023-07-11 18:21:24 +00:00
Licious 3bc44b3ba3 Prevent Pokémon cries from playing while a Pokémon is inside a Pokéball being captured. 2023-07-11 18:47:50 +01:00
Nick ea89e64e73 Merge branch 'remove-clones-after-battle' into 'main'
Fix battle clones persisting in the world

Closes #328

See merge request cable-mc/cobblemon!545
2023-07-10 17:17:25 +00:00
LiciousandNick dd788d9851 Fix battle clones persisting in the world 2023-07-10 17:17:25 +00:00
Nick 7894e1895b Merge branch 'battle-stat-awards-fix' into 'main'
Fix EV calculation

Closes #231

See merge request cable-mc/cobblemon!544
2023-07-10 17:05:23 +00:00
Licious 70ee9617ed Fix another crash due to usage of param before init 2023-07-10 12:52:07 +01:00
Licious 848cdcfc66 Fix crash due to usage of param before init 2023-07-10 12:27:54 +01:00
Hiroku dd4c289755 Merge branch '247-master-1-19-3-shoulder-pokemon-issues' into 'main'
Shoulder fixes & changes.

See merge request cable-mc/cobblemon!538
2023-07-10 10:52:49 +00:00
LiciousandHiroku 57cb10d5ce Shoulder fixes & changes. 2023-07-10 10:52:49 +00:00
Licious 9282f94a85 Fix EV calculation 2023-07-10 11:31:49 +01:00
Hiroku 8c7eddccbe Merge branch 'loadFromJSON/NBT-companions' into 'main'
add companion object methods for these for better syntax

See merge request cable-mc/cobblemon!542
2023-07-10 02:56:17 +00:00
Oliver Whitehead 06be0cc40b add companion object methods for these for better syntax 2023-07-10 03:21:50 +01:00
Hiroku 67fe5d0822 Merge branch 'fix-pipeline' into 'main'
fix pipeline

See merge request cable-mc/cobblemon!541
2023-07-10 02:16:45 +00:00
Oliver Whitehead eba4162db4 fix pipeline 2023-07-10 03:14:26 +01:00
Hiroku 5dcbb271a5 Merge branch 'render-refactor' into 'main'
Render refactor

See merge request cable-mc/cobblemon!537
2023-07-09 23:48:57 +00:00
Hiroku e7a5c23204 Render refactor 2023-07-09 23:48:56 +00:00
Hiroku e9d4827a9b Merge branch 'pasture-not-graveyard' into 'main'
Fix being able to place fainted Pokémon in the pasture.

Closes #334

See merge request cable-mc/cobblemon!540
2023-07-09 22:37:18 +00:00
LiciousandHiroku 02898701b9 Fix being able to place fainted Pokémon in the pasture. 2023-07-09 22:37:17 +00:00
Hiroku 0b8488ab0f Merge branch 'terralith-tag-fixes' into 'main'
Update Terralith biome tags

Closes #331

See merge request cable-mc/cobblemon!539
2023-07-09 21:35:50 +00:00
LiciousandHiroku bd3968c7c5 Update Terralith biome tags 2023-07-09 21:35:49 +00:00
Hiroku a5cb807bfa Merge branch '1.20.x' into 'main'
1.20.1

See merge request cable-mc/cobblemon!535
2023-07-08 23:10:22 +00:00
LiciousandHiroku afafe35d16 1.20.1 2023-07-08 23:10:22 +00:00
Hiroku 99c94a1765 Merge branch 'p4-leaves' into 'main'
New colour

See merge request cable-mc/cobblemon!536
2023-07-08 23:04:03 +00:00
dhi_holoandHiroku f12fd1bb93 New colour 2023-07-08 23:04:02 +00:00
Hiroku 621280df50 Merge branch 'added-sounds' into 'main'
New UI sounds, new evolution sounds, cries for Caterpie, Weedle and Pidgey lines

See merge request cable-mc/cobblemon!534
2023-07-08 12:48:20 +00:00
SterrezoandHiroku 68d13abb1d New UI sounds, new evolution sounds, cries for Caterpie, Weedle and Pidgey lines 2023-07-08 12:48:20 +00:00
Paul 897bf4e132 Import fix 2023-07-08 11:01:54 +10:00
Paul 5944313fe8 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
2023-07-08 11:00:42 +10:00
Hiroku aa078c1269 Merge branch 'ys/fix-waterloggable-pasture' into 'main'
Make pasture block implement waterloggable (dk how I missed this)

See merge request cable-mc/cobblemon!533
2023-07-07 23:03:09 +00:00
YaseenandHiroku 5ce0c2a749 Make pasture block implement waterloggable (dk how I missed this) 2023-07-07 23:03:09 +00:00
Nick 1665032341 Merge branch 'added-sounds' into 'main'
New Pokeball sounds, tweaks to volumes in code

See merge request cable-mc/cobblemon!531
2023-07-07 15:45:25 +00:00
SterrezoandNick 6739b2d1ac New Pokeball sounds, tweaks to volumes in code 2023-07-07 15:45:25 +00:00
Hiroku 0bb782f314 Merge branch 'Vivichoke' into 'main'
Added Vivichokes

See merge request cable-mc/cobblemon!527
2023-07-07 00:43:42 +00:00
Hiroku 452ff46815 Added Vivichokes 2023-07-07 00:43:42 +00:00
Paul ee9fafe4fb Merge remote-tracking branch 'origin/main'
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
2023-07-07 09:31:03 +10:00
Hiroku 65a193bb84 Merge branch 'ai-fix' into 'main'
Ai fix

See merge request cable-mc/cobblemon!526
2023-07-06 23:09:20 +00:00
LilyandHiroku 0a922a91b0 Ai fix 2023-07-06 23:09:19 +00:00
Paul 98810914fa Merge remote-tracking branch 'origin/main' into tethers 2023-07-07 09:01:55 +10:00
Paul 75062f5c16 Removed debug stuff 2023-07-07 08:57:02 +10:00
Paul adaf17ee4f Merge remote-tracking branch 'origin/main' 2023-07-06 21:26:12 +10:00
Hiroku 307196e201 Merge branch 'aspects-are-triggering' into 'main'
Aspects are (not) triggering

See merge request cable-mc/cobblemon!499
2023-07-06 11:15:55 +00:00
MoeBoy76andHiroku 4e225afc6e Aspects are (not) triggering 2023-07-06 11:15:55 +00:00
Hiroku 9ccff2e547 Merge branch 'added-sounds' into 'main'
Added cries for Gen 1-4 and 8 starters and evolutions

See merge request cable-mc/cobblemon!525
2023-07-05 10:41:21 +00:00
SterrezoandHiroku 673baa178f Added cries for Gen 1-4 and 8 starters and evolutions 2023-07-05 10:41:21 +00:00
Paul 59242d3020 Little cleanup with mints 2023-07-05 20:15:10 +10:00
Hiroku 53156bcfdb Merge branch 'ys/waterlog-fix' into 'main'
make default state of pc water logged false

See merge request cable-mc/cobblemon!524
2023-07-03 21:16:17 +00:00
YaseenandHiroku 7fae9ac61f make default state of pc water logged false 2023-07-03 21:16:17 +00:00
Paul e9924a8920 Fixed R key glitchiness 2023-07-03 13:26:43 +10:00
Paul d2590b05c5 Remove PC -> pasture icon hover if there's no room to add more pokemon 2023-07-03 11:50:35 +10:00
Hiroku 8557096359 Merge branch 'implement_pokemon' into 'main'
Implemented and Updated MANY models.

See merge request cable-mc/cobblemon!522
2023-07-02 23:52:40 +00:00
TyzillionandHiroku 66592af8ef Implemented and Updated MANY models. 2023-07-02 23:52:40 +00:00
Paul 8c5fe15835 Fixed diameter vs radius issue in anticluster pasture code 2023-07-02 19:51:17 +10:00
Paul 30dbaa0585 Changelog for pastures [skip-ci] 2023-07-02 19:03:31 +10:00
Paul 480a3894f8 Added pasture block to blocks creative tab 2023-07-02 19:02:15 +10:00
Paul d3ffbd654b Merge remote-tracking branch 'origin/main' into tethers
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonItems.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonNetwork.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/CobblemonClient.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/VaryingRenderableResolver.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/command/TestCommand.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/config/CobblemonConfig.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/pokemon/Pokemon.kt
2023-07-02 18:56:34 +10:00
Paul 43fcdf3f1b Finalized pasture block pass 1 2023-07-02 18:53:14 +10:00
Village 75f36825af 🌱 2023-07-01 14:21:06 -04:00
Hiroku 182f5ce1f9 Merge branch 'pokeball-despawn' into 'main'
poke-balls now despawn after 30 seconds to prevent potential lag machines

See merge request cable-mc/cobblemon!521
2023-07-01 02:00:38 +00:00
LilyandHiroku a05bc8887e poke-balls now despawn after 30 seconds to prevent potential lag machines 2023-07-01 02:00:36 +00:00
Veraxiel 76640c40ae Fixed 0601_klinklang.json 2023-06-29 21:50:55 +00:00
Hiroku 3404065bf0 Merge branch 'background-fixup' into 'main'
it works!!

See merge request cable-mc/cobblemon!519
2023-06-28 10:16:44 +00:00
dhi_holoandHiroku ba6eec0fad it works!! 2023-06-28 10:16:44 +00:00
Hiroku ff81bee266 Merge branch '314-shedinjarecoverissue' into 'main'
Resolve "Shedinja cannot recover naturally."

Closes #314

See merge request cable-mc/cobblemon!520
2023-06-28 10:16:21 +00:00
IslanaandHiroku 6926ae1be1 Resolve "Shedinja cannot recover naturally." 2023-06-28 10:16:21 +00:00
Hiroku 5ce290e792 Merge branch 'animation-refreactor' into 'main'
Animation refractor

See merge request cable-mc/cobblemon!480
2023-06-28 09:54:17 +00:00
WaterpickerandHiroku 5a7391ff69 Animation refractor 2023-06-28 09:54:17 +00:00
Islana f63970163a Merge remote-tracking branch 'origin/main' 2023-06-28 00:08:07 -04:00
Islana b34adc6b57 Shedinja revive Fix 2023-06-28 00:07:13 -04:00
Hiroku 0cd33621b2 Merge branch 'forge-maven-deployment-fix' into 'main'
Fixes forge maven deployments being hit with a missing access widener error

See merge request cable-mc/cobblemon!518
2023-06-27 08:28:10 +00:00
Nick 765421fc5f Fixes forge maven deployments being hit with a missing access widener error 2023-06-26 23:03:49 -07:00
Hiroku 4b6cef26bd Merge branch 'ys/pokeedit-command-2.0' into 'main'
Add support for editing IVs and EVs in pokeedit

Closes #306

See merge request cable-mc/cobblemon!501
2023-06-25 22:59:51 +00:00
YaseenandHiroku ccbae294f4 Add support for editing IVs and EVs in pokeedit 2023-06-25 22:59:51 +00:00
Hiroku 82f1ce8931 Merge branch 'creative-categories' into 'main'
Creative categories

See merge request cable-mc/cobblemon!514
2023-06-25 21:49:10 +00:00
LilyandHiroku 474491ebff Creative categories 2023-06-25 21:49:10 +00:00
Hiroku 60b36a03d4 Merge branch 'text_changes_and_fixes' into 'main'
small text changes:

See merge request cable-mc/cobblemon!515
2023-06-25 21:47:44 +00:00
LilyandHiroku 25bb99b68d small text changes: 2023-06-25 21:47:44 +00:00
Hiroku c644f610da Merge branch 'main-patch-15d5' into 'main'
changed healing machine messages to action bar

See merge request cable-mc/cobblemon!512
2023-06-25 03:36:35 +00:00
Hiroku 88c38f59b0 Merge branch 'mimikyu-shoulder' into 'main'
mimikyu shoulder mount!!!

See merge request cable-mc/cobblemon!513
2023-06-25 03:36:12 +00:00
LilyandHiroku 36f9062f45 mimikyu shoulder mount!!! 2023-06-25 03:36:11 +00:00
Lily 26a49c8327 changed healing machine messages to action bar 2023-06-25 01:19:16 +00:00
Hiroku d8b66e01df Merge branch 'battle-crash-logs' into 'main'
Handle battle crashes and log them

See merge request cable-mc/cobblemon!509
2023-06-25 00:18:51 +00:00
DeltricandHiroku af14c7d505 Handle battle crashes and log them 2023-06-25 00:18:51 +00:00
Hiroku 4148773881 Merge branch 'fixes-and-api' into 'main'
Various fixes and API enhancements

See merge request cable-mc/cobblemon!508
2023-06-24 06:11:40 +00:00
DeltricandHiroku 6ffdd5c3c7 Various fixes and API enhancements 2023-06-24 06:11:40 +00:00
Hiroku 7d253c505a Merge branch 'whatsy-main-patch-45454' into 'main'
Update CHANGELOG.md

See merge request cable-mc/cobblemon!507
2023-06-23 23:56:17 +00:00
Lily 827ea20bd7 Update CHANGELOG.md 2023-06-23 23:41:04 +00:00
Nick 63689e14a0 Merge branch 'fix-battle-messages' into 'main'
Fix battle messages

See merge request cable-mc/cobblemon!506
2023-06-23 21:44:33 +00:00
LilyandNick b82c40feb2 Fix battle messages 2023-06-23 21:44:33 +00:00
Paul ed85324b3a Removed a bunch of angry recipes and advancements that I already deleted once already 2023-06-23 22:15:06 +10:00
Paul 0ab9b19c4b Merge remote-tracking branch 'origin/main' into revival-herbs
# Conflicts:
#	CHANGELOG.md
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonItems.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonMechanics.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/block/BigRootBlock.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/block/EnergyRootBlock.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/item/interactive/RemedyItem.kt
#	common/src/main/resources/data/cobblemon/loot_tables/blocks/medicinal_leek_crop.json
2023-06-23 22:06:33 +10:00
Paul 50a33598e8 Resolved startup errors by removing advancements and recipes that aren't in yet 2023-06-23 22:03:56 +10:00
Hiroku ef81050be9 Merge branch 'fix-pc-command' into 'main'
fix no opening sound when using /pc

See merge request cable-mc/cobblemon!505
2023-06-23 02:06:39 +00:00
LilyandHiroku cb95aa2466 fix no opening sound when using /pc 2023-06-23 02:06:39 +00:00
Nick a4fb1e1e6e Merge branch 'revival-herbs' into 'main'
Many crops

See merge request cable-mc/cobblemon!503
2023-06-23 00:48:00 +00:00
HirokuandNick 1c4b146500 Many crops 2023-06-23 00:47:59 +00:00
Hiroku 6fbe1774f8 Update README.md [skip-ci] 2023-06-22 23:26:26 +00:00
Hiroku 85960ff726 Update README.md 2023-06-22 23:26:01 +00:00
Nick 254b4bee80 Merge branch 'species-form-visibility-changes' into 'main'
Species/FormData property visibility changes.

See merge request cable-mc/cobblemon!502
2023-06-21 16:40:15 +00:00
LiciousandNick 489357ee91 Species/FormData property visibility changes. 2023-06-21 16:40:14 +00:00
Paul 600669e1c5 Added a bunch of items, improved PokemonInteractiveItem, remedy datapack logic 2023-06-19 07:53:12 +10:00
Hiroku d3ff4984fe Update CHANGELOG.md [skip-ci] 2023-06-18 00:29:47 +00:00
Paul f61a30ab26 Merge remote-tracking branch 'origin/xvitarecipes' into revival-herbs
# Conflicts:
#	common/src/main/resources/data/cobblemon/loot_tables/blocks/revival_herb.json
2023-06-18 09:10:31 +10:00
Paul aa77473288 Make mints more rare for realsies 2023-06-18 08:36:04 +10:00
Paul 2f837b34fc Fixed energy and big roots not dropping anything 2023-06-17 21:27:06 +10:00
Paul d7ca55597e Made mints rarer 2023-06-17 21:25:45 +10:00
Paul 331278d1b3 Finalized brewing mechanism, added incorrectly-textured medicinal brew w/ recipe 2023-06-17 20:13:35 +10:00
Paul 669a119bf5 Merge remote-tracking branch 'origin/custom-brewing-basis-1.19.3' into revival-herbs
# Conflicts:
#	fabric/src/main/kotlin/com/cobblemon/mod/fabric/CobblemonFabric.kt
#	forge/src/main/kotlin/com/cobblemon/mod/forge/CobblemonForge.kt
2023-06-17 12:24:34 +10:00
Paul 3813cdec4b Big Root / Energy Root polish and API 2023-06-17 12:07:23 +10:00
Paul f6380a72e3 Merge remote-tracking branch 'origin/main' into revival-herbs 2023-06-17 11:58:57 +10:00
Hiroku 6fe48faff8 we are snapshotting (gradle.properties) 2023-06-17 01:37:46 +00:00
Hiroku 68b9f09697 Prevent subsequent stages from running CI if skipped first 2023-06-17 01:21:36 +00:00
Hiroku 2080f2f109 Update CI not to run for forks 2023-06-17 01:18:23 +00:00
Paul 933ba72d04 Merge remote-tracking branch 'origin/main' into revival-herbs 2023-06-16 22:53:22 +10:00
Paul 7f19026c71 Update Big Root / Energy Root behaviours 2023-06-16 22:51:14 +10:00
Paul 64e5e9aeb0 Removed gloom textures that should not have been there 2023-06-16 18:07:39 +10:00
Paul f6635b5575 Merge remote-tracking branch 'origin/main' into new-commands 2023-06-16 17:30:13 +10:00
Paul 77fa5f5787 Improved clear party command 2023-06-16 17:29:58 +10:00
dhi_holo 12ad46935c im sorry
some day i may not forget
2023-06-16 17:19:16 +10:00
dhi_holo c3b54fc55b Merge branch 'main' into xvitarecipes 2023-06-16 17:16:51 +10:00
Hiroku 46101206f7 Merge branch 'chromatemp' into 'main'
Small Changelog fix

See merge request cable-mc/cobblemon!500
2023-06-16 07:14:18 +00:00
HexeChromaandHiroku 81150c5ef6 Small Changelog fix 2023-06-16 07:14:18 +00:00
Paul 10e8d702c2 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/client/CobblemonClient.kt
2023-06-16 15:54:16 +10:00
Paul f5ba14ae65 Hoes for apricorn tree leaves and fixed those leaves looking bad on fast graphics 2023-06-16 15:54:04 +10:00
Hiroku 5ef6c587a8 Merge branch 'HexeChroma-main-patch-93627' into 'main'
Update CobblemonClient.kt

See merge request cable-mc/cobblemon!498
2023-06-16 03:19:52 +00:00
HexeChromaandHiroku 2ba484024c Update CobblemonClient.kt 2023-06-16 03:19:51 +00:00
Paul 687a4aa935 Undo some changes that were not intended for this branch 2023-06-16 12:07:43 +10:00
Paul 5cc297c4af Merge conflict resolution 2023-06-16 11:31:24 +10:00
Hiroku ccd4a5237d Merge branch 'new-commands' into 'new-commands'
New command to adjust pokemon walk speed.

See merge request cable-mc/cobblemon!487
2023-06-16 01:04:11 +00:00
DaBatandHiroku 6ad02118a9 New command to adjust pokemon walk speed. 2023-06-16 01:04:10 +00:00
Paul 89bb983925 Restore changelog work overwritten by last merge 2023-06-16 11:02:15 +10:00
Hiroku de2dc38778 Merge branch 'added-sounds' into 'main'
Added cries for Gen 5-7 starters

See merge request cable-mc/cobblemon!491
2023-06-16 01:00:56 +00:00
SterrezoandHiroku fbcaa7353f Added cries for Gen 5-7 starters 2023-06-16 01:00:56 +00:00
Hiroku abf4f97f00 Merge branch 'interpreter_refactory' into 'main'
Battle window improvements and interpreter refactory

See merge request cable-mc/cobblemon!492
2023-06-16 00:56:37 +00:00
Hiroku a0736e550d Merge branch 'ys/waterlog-pc' into 'main'
implement waterloggable pc

See merge request cable-mc/cobblemon!496
2023-06-15 22:16:26 +00:00
YaseenandHiroku ea46a2973f implement waterloggable pc 2023-06-15 22:16:26 +00:00
Hiroku 26a9d8d07f Merge branch 'ys/draw-triangles-fix' into 'main'
Fix for stats hexagon

See merge request cable-mc/cobblemon!497
2023-06-15 22:09:08 +00:00
YaseenandHiroku 71bba4296b Fix for stats hexagon 2023-06-15 22:09:08 +00:00
Licious eb26ffa7ca Fixed being locked out of healing machines if it goes boom during use. 2023-06-15 22:45:21 +01:00
Hiroku 0038f7428b Merge branch 'ys/waterlogging-tethers' into 'tethers'
Making the tether/pasture block waterloggable

See merge request cable-mc/cobblemon!495
2023-06-15 21:20:15 +00:00
YaseenandHiroku 1fd1cf32a2 Making the tether/pasture block waterloggable 2023-06-15 21:20:15 +00:00
Hiroku 57a7dccd37 Merge branch 'tooltip-changes' into 'main'
Tooltip changes

See merge request cable-mc/cobblemon!494
2023-06-15 21:19:22 +00:00
LiciousandHiroku 5fa56177fc Tooltip changes 2023-06-15 21:19:22 +00:00
Hiroku d68d630175 Merge branch 'french-toast-is-better' into 'main'
Implement toast API

Closes #288

See merge request cable-mc/cobblemon!489
2023-06-15 10:06:04 +00:00
LiciousandHiroku 662ae77944 Implement toast API 2023-06-15 10:06:04 +00:00
dhi_holo b219999945 Update superb_remedy.json 2023-06-15 13:05:56 +10:00
dhi_holo 467ae236b5 Merge branch 'main' into xvitarecipes 2023-06-15 12:55:29 +10:00
dhi_holo 4d2c298c00 Moistch
all 18 mulch recipes+unlock advancements, still not certain on the IDs but just felt like writing them today
2023-06-15 12:55:24 +10:00
Nick 469fb8dd52 Merge branch 'loot-table-appending' into 'main'
Implemented LootTable injection

Closes #217

See merge request cable-mc/cobblemon!490
2023-06-13 17:21:40 +00:00
LiciousandNick 371f2ac08a Implemented LootTable injection 2023-06-13 17:21:39 +00:00
Segfault Guy 3d20d7635b Add color to important langs. Refactor lang construction for -item, -enditem, and more. Broadcast ability activations. 2023-06-13 12:20:17 -04:00
Segfault Guy f67f8007fb Condense battle lang construction and fix lang inconsistencies 2023-06-13 10:34:00 -04:00
Segfault Guy a1516ecf10 Tweak dispatch timing to improve battle window flow 2023-06-13 10:30:31 -04:00
Segfault Guy 6c2ae912d1 Refactor all interpreter handlers to use BattleMessage system 2023-06-13 10:30:31 -04:00
Paul 78711ea675 Fixed revival herb blockstate, I promise I'm a good dev 2023-06-11 11:45:46 +10:00
dhi_holo 0867de8257 Update revival_herb.json
fixed minor oversight
2023-06-11 10:55:51 +10:00
Paul 62720b8d15 Revival herb age should probably start at zero rather than one 2023-06-11 10:53:02 +10:00
Paul 00f7a859f4 Revival herb render and generation 'finished' - needs optimising 2023-06-10 21:56:26 +10:00
dhi_holo 280d144dcf Potentially Functional New Loot table?
I'll be honest, I don't really understand, but I fell down this hill- wait this is a commit and I'm braindying

This loot table should, in theory, work how it's outlined in the document. Hopefully.
I'll probably come back to it in future to investigate fortune mechanics, but we'll come back to that if this file doesn't break everything first
2023-06-10 17:51:56 +10:00
dhi_holo f2daba8ae8 Merge branch 'main' into xvitarecipes 2023-06-10 17:50:01 +10:00
Paul 8076287376 Merge remote-tracking branch 'origin/energy-roots' into revival-herbs
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonItems.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/world/feature/CobblemonPlacedFeatures.kt
2023-06-10 12:44:54 +10:00
Paul d54c4ced74 Added revival herbs mostly and pep up flowers 2023-06-10 12:43:35 +10:00
Paul 4aeedb1751 Merge remote-tracking branch 'origin/main' into revival-herbs 2023-06-09 16:47:45 +10:00
Hiroku 54c591b51f Merge branch 'maven-deployment' into 'main'
Add new maven deployment job

See merge request cable-mc/cobblemon!488
2023-06-07 07:57:55 +00:00
Paul 620ef585ce Changelog for trading completed. Closes #92 2023-06-07 17:56:07 +10:00
Paul 9601cf49ce Merge remote-tracking branch 'origin/main' into trading 2023-06-07 17:55:13 +10:00
Paul 56088e3a40 Make Nick happy 2023-06-07 17:52:56 +10:00
Nick 5b8149ce82 Add new maven deployment job 2023-06-06 21:02:46 -07:00
dhi_holo 2f5b2bc2df Remedying
Remedy/Superb Remedy have the Big and Energy Roots flipped around
Feathers now cost one less mint
Revives redone
Leek and Potato Stew now cooked
2023-06-07 10:47:25 +10:00
dhi_holo 19a3244102 Merge branch 'main' into xvitarecipes 2023-06-07 10:37:06 +10:00
Paul 49987de803 Lang tooltip for energy root 2023-06-05 12:07:25 +10:00
Hiroku 332981a198 Update CHANGELOG.md [skip-ci] 2023-06-04 22:49:31 +00:00
Hiroku 5c026d7494 Merge branch 'add-persistent-data-to-pokemon' into 'main'
add Pokemon Persistent Data

See merge request cable-mc/cobblemon!484
2023-06-04 22:47:59 +00:00
Hiroku bb7342cd2d Merge branch 'added-sounds' into 'main'
Added cries for Braixen, Chatot, Chespin, Conkeldurr, Darmanitan, Darumaka,...

See merge request cable-mc/cobblemon!486
2023-06-04 22:42:40 +00:00
SterrezoandHiroku 90d1797cb4 Added cries for Braixen, Chatot, Chespin, Conkeldurr, Darmanitan, Darumaka,... 2023-06-04 22:42:40 +00:00
Paul 5dab0f060e Energy root fixes 2023-06-04 20:44:39 +10:00
Paul 03b17b050a Added energy root w/ world generation sans testing 2023-06-04 11:35:16 +10:00
Paul 2cc44d32fb Added BeneathHeightmapPlacementModifier 2023-06-04 11:35:09 +10:00
Paul 4be66e4993 Merge remote-tracking branch 'origin/main' into energy-roots 2023-06-03 18:29:02 +10:00
Paul 04cb83b13e Tint the trade and battle challenge icons if a request exists 2023-06-03 11:04:43 +10:00
Paul d8a5ffa567 Fixed langs being broken in many cases (anything with 'pokemon' in the key 2023-06-03 11:04:17 +10:00
Village be2cc7e445 license 2023-06-02 15:19:40 -04:00
Paul 07cfd61ebe Removed debug sound 2023-06-02 14:02:25 +10:00
Paul a7fe48ec20 Show EVs on trade GUI, fixed models display glitching on resize 2023-06-02 14:00:26 +10:00
Oliver Whitehead 1c1cb3e91f add Pokemon Persistent Data 2023-06-02 01:27:22 +01:00
Paul bfb14ff828 Allow multiple trades per active trade 2023-06-02 10:02:52 +10:00
jmmcp 36fcb12add Added potion recipes to access widener and an example recipe for it 2023-05-31 18:04:37 -04:00
Paul c7ff0c7e39 More fixes and implementations of lang for trading 2023-05-31 23:07:45 +10:00
dhi_holo 4a1bbd1e6a Herbal
Braised Vivichoke, Vivichoke Dip, Remedy, Fine Remedy, Superb Remedy, Revive, Max Revive, Heal Powder, recipes and unlock advancements, and typo fix for Roasted Leek
2023-05-31 22:24:25 +10:00
dhi_holo a859ea205b Merge branch 'main' into xvitarecipes 2023-05-31 21:25:39 +10:00
dhi_holo 6b41168626 Leeks!
Leek and Potato Stew, Roasted Leek, and Medicinal Leek to Magenta Dye recipes and advancements
2023-05-31 21:25:24 +10:00
dhi_holo cb4479a7a1 EV Recipes
Updates PP Up and PP Max to new recipes, adds recipes for the six Effort Feathers, adds recipe for the Pasture block, adds a "berries" tag and Berry Juice recipe. All also have an unlock advancement for the recipe book
2023-05-31 20:28:32 +10:00
Paul 3f4d2c7f8c Implement opposite party data in trade GUI 2023-05-30 19:53:48 +10:00
Village aa31776bf3 prevent modification of display name MutableText, nudge gender icon to prevent overlap 2023-05-29 21:22:53 -04:00
dhi_holo 6dbe92e093 Updates, people, updates
Added finalized recipes for the 8 Vitamins, plus unlock recipes for them.
Removed the X-Item recipes for now, they're not needed, was only in the initial branch for critiquing and repos keep copies of that so we good.

Reorganised the Recipe Advancements folders to match the new creative tab layout, that's the majority of the changes, but it's really not anything noteworthy, just keeping it clean for future additions.

Need to look into the advancement tab background stuff, something funky's going on, but I couldn't figure it out tonight
2023-05-29 19:14:15 +10:00
Paul f75c0aeab4 Merge remote-tracking branch 'origin/main' into trading
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonNetwork.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/battles/BattleRegistry.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/keybind/keybinds/PartySendBinding.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/item/PokemonItemRenderer.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/command/TestCommand.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/item/PokemonItem.kt
#	common/src/main/resources/assets/cobblemon/lang/en_us.json
2023-05-29 18:35:11 +10:00
Village 952ad6e0d2 trade 2023-05-29 03:36:41 -04:00
Paul 0f0e6b0142 Pasture GUI work 2023-05-29 15:13:37 +10:00
Village 2a41f431bb trade 2023-05-28 23:38:27 -04:00
Paul 63a779cb1e Fixed custom brewing recipes on Forge I think 2023-05-28 23:15:46 +10:00
dhi_holo 27bcdadac6 damn file didn't save properly 2023-05-28 15:26:12 +10:00
dhi_holo 18e1caff39 WIP Recipes
Adds recipes for the battle and vitamin items (using some items yet to be implemented), as well as two tags for protein/zinc crafting

PP Up/Max needs going over, and Dire Hit needs approving in general, and all recipes still need advancements, but I wanted to make sure it was in team space, not my laptop exclusively, so it was easier to read over
2023-05-28 14:47:57 +10:00
jmmcp d9af350ab6 Merge remote-tracking branch 'origin/main' into custom-brewing-basis-1.19.3
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
#	common/src/main/resources/cobblemon-common.accesswidener
2023-05-28 00:29:30 -04:00
jmmcp ca6461499f Placed/Configured Feature tweaks 2023-05-28 00:06:28 -04:00
Paul 71bee3edd2 Fixed metal coat not being in the creative tabs 2023-05-28 11:06:55 +10:00
Paul 2c50d5f523 Merge remote-tracking branch 'origin/main' into tethers 2023-05-28 11:04:54 +10:00
Paul 721823117a Added trader party to trade GUI initializer 2023-05-28 07:00:28 +10:00
jmmcp e87d6eabab Placed/Configured Feature beginnings 2023-05-27 00:07:19 -04:00
Hiroku 2387639cea See above 2023-05-23 21:59:12 +00:00
Hiroku 83fdcceaa7 You saw nothing 2023-05-23 21:57:48 +00:00
Hiroku 8db77bcaea Say stats instead of nature with mints 2023-05-23 21:53:15 +00:00
jmmcp 6f9b80c3b0 Merge remote-tracking branch 'origin/main' into medicinal_leeks
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonItems.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/CobblemonClient.kt
2023-05-23 17:08:34 -04:00
Paul 85f4345f5c Made apricorn tree placed feature less dumb, improve pasture block collider 2023-05-20 23:17:20 +10:00
Paul 71d0e56c20 Merge corrections, pasture block fixes 2023-05-19 22:57:08 +10:00
Paul 5b78ba6329 Merge remote-tracking branch 'origin/main' into tethers
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/pokemon/update/NatureUpdatePacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/spawn/SpawnPokemonPacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/pokemon/Pokemon.kt
2023-05-19 13:04:52 +10:00
Paul 1dbe2cc993 Added new pasture model 2023-05-19 13:03:53 +10:00
Paul 1c942ce83c Move version number up to 1.4.0 2023-05-17 20:44:06 +10:00
Paul 2d3ff73530 Merge remote-tracking branch 'origin/main' 2023-05-17 20:40:09 +10:00
Paul 4d5bc93702 Fixed Forge runs 2023-05-17 20:39:22 +10:00
Deltric b4dc4f4a05 Setup Pasture Block w/ backend logic + packets 2023-05-17 04:04:17 -05:00
Hiroku cdf41a5b13 Merge branch '1.19.3-particle-camera-modes' into 'main'
1.19.3 particle camera modes

See merge request cable-mc/cobblemon!479
2023-05-15 20:57:09 +00:00
Hiroku 9651025bef 1.19.3 particle camera modes 2023-05-15 20:57:08 +00:00
Paul 54a9412a5c Moved spawn frequency to config option. Closes #260 2023-05-15 18:32:08 +10:00
Paul 4bfeda2031 Substantially reduced default frequency of Pokémon cries (default is now once in 54 seconds). Closes #265 2023-05-15 18:25:18 +10:00
Paul ed136ecabb Fixed invalid action choices from AI causing crashes. Closes #284 2023-05-15 18:05:46 +10:00
Paul 2f0eb7c246 Fixed logging spam when loading shoulder mounted Pokémon on the client. Closes #289 2023-05-15 18:01:46 +10:00
Hiroku ea0c16bf01 Merge branch '#279-heal-wild-pokemon' into 'main'
HealWildOnDefeatOrRun

See merge request cable-mc/cobblemon!476
2023-05-14 00:04:30 +00:00
IslanaandHiroku 18d6917e9f HealWildOnDefeatOrRun 2023-05-14 00:04:30 +00:00
Paul 039c5993f5 Sprite/block texture updates, fix deepslate water stone ore looking like deepslate fire stone ore 2023-05-14 09:09:56 +10:00
Hiroku 8394d9f0f0 Merge branch 'bad-world-squeezewithinbounds' into 'main'
Fixed World.squeezeWithinBounds squeezing z coordinates using border's x coordinates

See merge request cable-mc/cobblemon!478
2023-05-13 11:46:17 +00:00
David Sadler 1b791abbe0 Fixed World.squeezeWithinBounds squeezing z coordinates using border's x coordinates 2023-05-13 12:37:00 +01:00
Hiroku ed07a915dc Merge branch '273-pokemon-spawn-outside-world-border' into 'main'
Fixed pokemon spawning outside world border

Closes #273

See merge request cable-mc/cobblemon!477
2023-05-13 10:28:27 +00:00
selfdotandHiroku 513221a7dd Fixed pokemon spawning outside world border 2023-05-13 10:28:26 +00:00
Paul cd5556f2e3 Added debug components in TestCommand.kt and TradeParticipant.kt for trading GUI testing 2023-05-12 16:13:53 +10:00
Paul db99c7f4b0 Lowered chance of white mints dropping random-colour additional seeds 2023-05-12 15:03:03 +10:00
Paul 581c9b5844 Fixed Pokéball item rendering in inventory (lighting) and player model (everything) 2023-05-11 22:00:17 +10:00
Paul 6403ea5a18 Made mints rarer, fixed calm mint recipe 2023-05-11 21:21:52 +10:00
Paul 36772de3e0 Changelog for mints [skip-ci] 2023-05-11 20:10:37 +10:00
Hiroku 3ccdb48939 Merge branch 'mints' into 'main'
Add mints

See merge request cable-mc/cobblemon!475
2023-05-11 10:07:11 +00:00
LandonandHiroku 058ac88f19 Add mints 2023-05-11 10:07:11 +00:00
jmmcp 23a9399284 Updated licenses 2023-05-10 11:31:37 -04:00
jmmcp f67c35541d Added the basis for Medicinal Leeks and its crop block. This push includes implementation of the item and crop block itself as well as the logic behind them. 2023-05-10 00:15:08 -04:00
Paul 71224066a8 Added structure identifier / tag spawn conditions 2023-05-06 10:34:28 +10:00
Paul 950c5b2c82 Fixed labels and lighting issues with Pokémon item frames 2023-04-29 22:34:04 +10:00
Paul 107252b1dd Added scale animation support, and jump keyframes 2023-04-29 22:32:52 +10:00
Paul 72da390ad4 Fixed faints not working right in add-ons 2023-04-27 22:52:17 +10:00
Hiroku 603336f740 Merge branch 'ys/battle-lang-implementations' into 'main'
Battle lang implementations

See merge request cable-mc/cobblemon!471
2023-04-27 10:35:32 +00:00
YaseenandHiroku 83ab81fd37 Battle lang implementations 2023-04-27 10:35:32 +00:00
Hiroku a0ef28effd Merge branch 'ys/recoil-flee-issue-fix' into 'main'
Dont flee while theres some battle messages left to process

Closes #277

See merge request cable-mc/cobblemon!472
2023-04-27 09:11:47 +00:00
YaseenandHiroku ea20dc7c60 Dont flee while theres some battle messages left to process 2023-04-27 09:11:47 +00:00
Hiroku da473c9951 Merge branch 'main' into 'main'
Add missing shoulderMountable key to Eiscue & Tatsugiri's species files

See merge request cable-mc/cobblemon!470
2023-04-26 22:07:51 +00:00
Xander ForrestandHiroku ae33cf7b5c Add missing shoulderMountable key to Eiscue & Tatsugiri's species files 2023-04-26 22:07:51 +00:00
Hiroku d2626b9a0e Merge branch 'battle_context' into 'main'
Add BattleContext and ContextManager to track battle state. Add BattleFaintedEvent. Refactor ShowdownInterpreter handlers.

See merge request cable-mc/cobblemon!454
2023-04-26 09:38:03 +00:00
Segfault Guy d2f6987ce5 Context for boosts. Finished Minor/Major action history. ContextManager expansion and fixes. 2023-04-26 00:28:38 -04:00
Segfault Guy af142abd90 Fix bug where contexts can't be created from conditions caused by -activate and -ability instructions 2023-04-26 00:28:38 -04:00
Segfault Guy c072b6525c Add BattleContext, ContextManager, and BattleFaintedEvent. 2023-04-26 00:28:18 -04:00
Segfault Guy 73777a3873 resolved conflict 2023-04-26 00:19:46 -04:00
Hiroku ae2ed8e1e6 Merge branch '236-pokeball-animation-issue' into 'main'
Issue Fix 236

Closes #236

See merge request cable-mc/cobblemon!468
2023-04-25 21:25:07 +00:00
Cameron PierceandHiroku 7718bac2e5 Issue Fix 236 2023-04-25 21:25:06 +00:00
Hiroku 1dc6f06b94 Merge branch 'nosepass-points-at-spawn' into 'main'
Made Nosepass point towards spawn while idle

Closes #238

See merge request cable-mc/cobblemon!465
2023-04-25 10:13:29 +00:00
selfdotandHiroku 8bb16b8d00 Made Nosepass point towards spawn while idle 2023-04-25 10:13:29 +00:00
Hiroku 8f8fa7efb7 Merge branch 'fix_leech_seed_messages' into 'main'
Implement Leech Seed messages

See merge request cable-mc/cobblemon!467
2023-04-25 10:09:48 +00:00
paperandHiroku 6d58b69be6 Implement Leech Seed messages 2023-04-25 10:09:48 +00:00
Hiroku 99e501ae3c Merge branch 'main' into 'main'
Properly set the velocity of spawned entities

Closes #223

See merge request cable-mc/cobblemon!466
2023-04-25 10:06:20 +00:00
Justin L. Wells ea41803ccb Properly set the velocity of spawned entities 2023-04-24 20:27:12 -05:00
Paul e1c29b7423 Merged 1.19.3 into main 2023-04-24 22:34:42 +10:00
Paul a1df69c67a Merge remote-tracking branch 'origin/1.19.3'
# Conflicts:
#	common/build.gradle.kts
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonNetwork.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonSounds.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/api/events/CobblemonEvents.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/battles/ShowdownInterpreter.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/ClientPacketRegistrar.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/ai/goals/WildRestGoal.kt
#	common/src/main/resources/assets/cobblemon/lang/en_us.json
2023-04-24 21:43:41 +10:00
Hiroku 2b91acd6ad Merge branch 'ys/fix-test-commands' into '1.19.3'
Fix test commands

See merge request cable-mc/cobblemon!464
2023-04-24 11:15:41 +00:00
Paul 96a6f2adeb Licenses 2023-04-24 18:02:32 +10:00
Hiroku 509e473e4f Merge branch 'battle_music' into 'main'
Battle music system for Pokémon battles

See merge request cable-mc/cobblemon!463
2023-04-24 06:22:07 +00:00
Hiroku ae825f5e29 Merge branch 'main' into 'battle_music'
# Conflicts:
#   common/src/main/kotlin/com/cobblemon/mod/common/CobblemonNetwork.kt
#   common/src/main/kotlin/com/cobblemon/mod/common/battles/ShowdownInterpreter.kt
#   common/src/main/kotlin/com/cobblemon/mod/common/client/net/ClientPacketRegistrar.kt
2023-04-24 06:20:24 +00:00
Paul 36de85ccb0 Syntactical cleaning 2023-04-24 14:14:11 +10:00
Paul b47892892d Fixed battles not starting properly 2023-04-24 11:09:41 +10:00
Yaseen 9bde52c73e Fix test commands 2023-04-23 23:12:26 +01:00
Paul 469a350497 Compilation error fix 2023-04-22 23:36:45 +10:00
Hiroku 5abc147442 Merge branch 'storage-fixes' into '1.19.3'
Miscellaneous Storage fixes

See merge request cable-mc/cobblemon!452
2023-04-22 12:54:39 +00:00
DeltricandHiroku 390d3b5518 Miscellaneous Storage fixes 2023-04-22 12:54:39 +00:00
Hiroku ead25288a0 Merge branch 'ys/fix-sleep' into 'main'
Sleep fix

See merge request cable-mc/cobblemon!456
2023-04-22 12:51:19 +00:00
YaseenandHiroku 030ba82109 Sleep fix 2023-04-22 12:51:19 +00:00
Hiroku 396aaecdb6 Merge branch 'ys/fix-ability-traps' into 'main'
Fix abilities that should trap pokemon

See merge request cable-mc/cobblemon!457
2023-04-22 12:49:36 +00:00
YaseenandHiroku b7e752da64 Fix abilities that should trap pokemon 2023-04-22 12:49:36 +00:00
Hiroku c014362025 Merge branch 'ys/new-commands' into '1.19.3'
Added testpcslot and testpartyslot commands

See merge request cable-mc/cobblemon!461
2023-04-22 12:47:58 +00:00
YaseenandHiroku 1f86abd8db Added testpcslot and testpartyslot commands 2023-04-22 12:47:58 +00:00
Paul b9cf702042 Nicknaming fixing 2023-04-22 22:24:54 +10:00
Hiroku b07b20ef3c Merge branch 'nicknames-1.19.3' into '1.19.3'
Implemented nicknames on 1.19.3 branch

See merge request cable-mc/cobblemon!415
2023-04-22 09:26:20 +00:00
selfdotandHiroku 24692f57f6 Implemented nicknames on 1.19.3 branch 2023-04-22 09:26:20 +00:00
Segfault Guy 8e08782cd1 Fire BattleMusicPacket and BattleMusicHandler on battle start and end 2023-04-22 00:42:54 -04:00
Paul dc4ad24004 changelog [skip-ci] 2023-04-22 12:13:17 +10:00
Hiroku 22171add23 Merge branch 'pokespawn-event' into 'main'
Pokespawn event

See merge request cable-mc/cobblemon!439
2023-04-22 02:12:08 +00:00
amoandHiroku 073901ae7a Pokespawn event 2023-04-22 02:12:08 +00:00
Hiroku 5c092661de Merge branch 'ys/mineable-block-tags' into 'main'
Making blocks mineable using tools

Closes #272 and #263

See merge request cable-mc/cobblemon!458
2023-04-22 01:47:35 +00:00
YaseenandHiroku 4eb130e9fd Making blocks mineable using tools 2023-04-22 01:47:35 +00:00
Hiroku 33fb5a3ab9 Merge branch 'moon-phases' into '1.19.3'
Fixes moon phase spawn condition being checked in reverse

See merge request cable-mc/cobblemon!462
2023-04-22 01:46:23 +00:00
selfdotandHiroku 7bbbddc580 Fixes moon phase spawn condition being checked in reverse 2023-04-22 01:46:23 +00:00
Paul 60fb7231c7 Added isBattle, isTouchingWater to pose JSON, added isVisible to transformed part JSON 2023-04-21 19:37:14 +10:00
Paul 5d84ee5ac6 Merge remote-tracking branch 'origin/tethers' into tethers 2023-04-20 22:15:24 +10:00
Paul 048dcf785d More packets and fixes for pasture blocks 2023-04-20 22:14:09 +10:00
Hiroku a244c56c4c Merge branch 'ys/fix-spawning-prospector' into 'main'
Spawning Prospector fix

Closes #270

See merge request cable-mc/cobblemon!460
2023-04-20 10:20:42 +00:00
YaseenandHiroku 5f793be70d Spawning Prospector fix 2023-04-20 10:20:42 +00:00
Hiroku a5e46e900f Merge branch 'ys/pokemon-item-fix' into 'main'
Fix getSpeciesAndAspects

See merge request cable-mc/cobblemon!455
2023-04-20 09:26:04 +00:00
YaseenandHiroku bb9f4b6a9a Fix getSpeciesAndAspects 2023-04-20 09:26:04 +00:00
Village 03f6b79f0b slot overlay 2023-04-16 20:55:44 -04:00
Hiroku 642fa11cb2 Merge branch '1.19.4' into '1.19.3'
What seems backwards is actually forwards

See merge request cable-mc/cobblemon!453
2023-04-16 14:02:05 +00:00
DeltricandHiroku 22ce696423 What seems backwards is actually forwards 2023-04-16 14:02:04 +00:00
Paul e88cbc1618 Gen 9 french translations 2023-04-12 21:24:54 +10:00
Paul 2f7084ae15 Networking and PC integration for pasture block 2023-04-12 21:17:02 +10:00
Hiroku a392a087dc Merge branch 'misc-battle-interpretations' into '1.19.3'
Disable, Lock On, and Protosynthesis

See merge request cable-mc/cobblemon!451
2023-04-09 11:28:56 +00:00
DeltricandHiroku 0081e60cd5 Disable, Lock On, and Protosynthesis 2023-04-09 11:28:56 +00:00
dhi_holo 3d94cf2c11 Minor Advancement Visual Update
Improved quality of Cobblemon logos, and switched the Shiny achievement icon from Charizard to Gyarados
2023-04-09 17:16:16 +10:00
Hiroku 50588cf372 Merge branch 'misc_fixes' into 'main'
Misc small Fixes

See merge request cable-mc/cobblemon!450
2023-04-09 04:33:39 +00:00
TyzillionandHiroku dd8e4ee0a3 Misc small Fixes 2023-04-09 04:33:38 +00:00
Paul 594d188de7 Pasture block supports limited wandering, save and load logic 2023-04-08 18:20:23 +10:00
Hiroku dd8ff8ef36 Merge branch 'learnset-query-command' into '1.19.3'
Learnset query command for command block/mcfunction use

See merge request cable-mc/cobblemon!449
2023-04-07 18:30:07 +00:00
LiciousandHiroku 7cf46baa98 Learnset query command for command block/mcfunction use 2023-04-07 18:30:07 +00:00
Licious17 6c5efcd69b Fix shouldered Pokémon not gaining passive friendship as if they were sent out. 2023-04-07 10:13:13 +01:00
Hiroku 9d109a9584 Merge branch 'struggle-messages' into 'main'
Implemented messages for struggling

See merge request cable-mc/cobblemon!440
2023-04-07 02:17:28 +00:00
DeltricandHiroku fdef9d9837 Implemented messages for struggling 2023-04-07 02:17:28 +00:00
Hiroku d9cc185052 Merge branch 'main' into 'main'
Update move,ability and pokedex for zh_cn.json

See merge request cable-mc/cobblemon!444
2023-04-07 01:48:29 +00:00
Yyi yunandHiroku 1fdf2b53ff Update move,ability and pokedex for zh_cn.json 2023-04-07 01:48:28 +00:00
Licious17 5c60f2634d Fix starter options in starter screen facing Narnia, closes #243 2023-04-06 14:47:58 +01:00
Paul b082c3e04d Compile error fix and @JvmField on PokemonPropertyExtractors 2023-04-06 22:07:20 +10:00
dhi_holo 424b4dd401 Advancement Tab GUI Background
Another bitching at Mojang's new Atlas system, Closes issue #245
2023-04-06 22:06:12 +10:00
Paul 1437dbebcf Changelog and licenses 2023-04-06 21:14:38 +10:00
dhi_holo cfb49e7f6c Cobblemon Logos Moved
Mojang made atlas stuff which sucks to deal with in 1.19.3+, so I've moved the textures for the Cobblemon icons from GUI into Items, because Mojang loves ruining stuff that worked for years
2023-04-06 20:50:46 +10:00
Hiroku 107baf4d9a Merge branch 'interpreter_instruction_additions' into 'main'
Add handlers for |-sidestart|, |-sideend|, and |-fieldactivate| instructions to ShowdownInterpreter

See merge request cable-mc/cobblemon!442
2023-04-06 10:23:24 +00:00
Hiroku e739be029a Merge branch 'additional_pokemon_events' into 'main'
Added BattleFled, BattleStarted, PokemonRecalled, and PokemonSent events

See merge request cable-mc/cobblemon!404
2023-04-06 10:10:07 +00:00
Licious bfca02c78f Merge branch 'ut_animation_validation' into 'main'
Validate animations are registered via model AND configuration

See merge request cable-mc/cobblemon!436
2023-04-06 10:01:34 +00:00
NickandLicious 007bc4b212 Validate animations are registered via model AND configuration 2023-04-06 10:01:34 +00:00
Paul bfe1d8bb75 Bunch of work on the pasture block 2023-04-06 19:28:05 +10:00
Hiroku d6fc53d42c Merge branch 'pokemon-store-query-command' into '1.19.3'
Add Pokémon store query command for command block/mcfunction use

See merge request cable-mc/cobblemon!446
2023-04-06 09:23:26 +00:00
LiciousandHiroku 787ce28318 Add Pokémon store query command for command block/mcfunction use 2023-04-06 09:23:26 +00:00
Hiroku b5c10ea372 Merge branch 'species-data-fixes' into '1.19.3'
Species data fixes

See merge request cable-mc/cobblemon!445
2023-04-06 09:21:50 +00:00
LiciousandHiroku 7bc0547c66 Species data fixes 2023-04-06 09:21:50 +00:00
Licious17 9c0babf267 Fix Forge client lifecycle stuff, runs work again 2023-04-06 10:16:06 +01:00
Segfault Guy 0b1915946a Specify status cured on shed skin activation 2023-04-05 01:38:16 -04:00
Segfault Guy fc78d64f62 Add handlers for |-sidestart|, |-sideend|, and |-fieldactivate| instructions 2023-04-05 00:45:19 -04:00
jmmcp 2140384e9f Basis for custom brewing recipes (1.19.3 edition) 2023-04-04 15:55:31 -04:00
Hiroku 3785313dd2 Update PlatformEvents.kt to use @jvmField like it was intended oops 2023-04-03 11:20:04 +00:00
Licious f091c08dd3 Merge branch 'ys/handle-cure-status-fix-and-general-status-fix' into 'main'
Status fixes

See merge request cable-mc/cobblemon!434
2023-04-03 07:41:57 +00:00
Deltric 6e5438040e Updated link cable path 2023-04-03 00:43:19 -05:00
Segfault Guy c35213cb3b Fixed BattleVictoryEvent. Spun BattleFledEvent and InterpretFaint to their own branch. 2023-04-02 23:10:49 -04:00
Segfault Guy 7b2e287b89 Added losers to BattleVictoryEvent 2023-04-02 23:10:49 -04:00
Segfault Guy 5b1f32cc57 Added BattleStartedEvent. Included Pokemon that caused faint in BattleFaintedEvent. Added temporary action history to PokemonBattle. 2023-04-02 23:10:49 -04:00
Segfault Guy faa8f5aae6 Included fleeing player in BattleFledEvent. Fixed misc mistakes. 2023-04-02 23:10:49 -04:00
Segfault Guy 7c3ddf6d03 Fixed BattleFaintedEvent to include killer. Tweaked events. 2023-04-02 23:10:49 -04:00
Segfault Guy 80a6a10293 Added BattleFainted, BattleFled, PokemonRecalled, and PokemonSent events 2023-04-02 23:10:49 -04:00
Paul 65ac3319f3 Updated from main 2023-04-01 18:48:22 +10:00
Paul 045b9fbc9a Merge remote-tracking branch 'origin/main' into 1.19.3
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonItems.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonNetwork.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/api/storage/party/PartyStore.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/gui/pc/PCGUI.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/ClientPacketRegistrar.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/effect/SpawnSnowstormParticleHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/MatrixWrapper.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/PoseableEntityModel.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/data/CobblemonDataProvider.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokeball/EmptyPokeBallEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/ai/goals/PokemonInBattleMovementGoal.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/serverhandling/storage/party/ReleasePCPokemonHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/serverhandling/storage/pc/ReleasePartyPokemonHandler.kt
#	common/src/main/resources/assets/cobblemon/models/item/link_cable.json
#	common/src/main/resources/cobblemon-common.accesswidener
2023-04-01 17:54:36 +10:00
Yaseen b97f447169 Status fixes 2023-04-01 06:27:33 +01:00
Hiroku 21e505e7ad Merge branch 'whoopsies' into 'main'
Fixes my mistake

See merge request cable-mc/cobblemon!433
2023-04-01 04:39:49 +00:00
dhi_holoandHiroku 6f30fc3ee3 Fixes my mistake 2023-04-01 04:39:48 +00:00
Hiroku c52822ef3d Merge branch 'last_minute_changes' into 'main'
Fixed Klink line crash

See merge request cable-mc/cobblemon!432
2023-04-01 03:50:09 +00:00
TyzillionandHiroku 5c349f54d5 Fixed Klink line crash 2023-04-01 03:50:06 +00:00
Paul 64b869f365 Fixed crash when faint animations aren't found isn't found 2023-04-01 13:14:51 +10:00
Paul fead7cc367 changelog for 1.3.1 [skip-ci] 2023-04-01 11:16:02 +10:00
Paul 622b06b68b 1.3.1 non-snapshot [skip-ci] 2023-04-01 11:04:28 +10:00
Hiroku af7645feb4 Merge branch 'ys/no-target-pokemon-fix' into 'main'
No target pokemon fix (for moves like Aromatherapy)

See merge request cable-mc/cobblemon!431
2023-04-01 00:38:43 +00:00
YaseenandHiroku ccf7218cfc No target pokemon fix (for moves like Aromatherapy) 2023-04-01 00:38:43 +00:00
Hiroku 9b767f5170 Merge branch 'aromatherapy_crash_&_link_cable_inconsistency' into 'main'
Aromatherapy crash & Link Cable fix

See merge request cable-mc/cobblemon!430
2023-03-31 23:07:30 +00:00
LiciousandHiroku fcb4861e94 Aromatherapy crash & Link Cable fix 2023-03-31 23:07:30 +00:00
Hiroku aa8b0d3fbb Merge branch 'server-client-resource-fix' into 'main'
server crash fix for resource reload fix

See merge request cable-mc/cobblemon!429
2023-03-31 23:07:19 +00:00
MoeBoy76 d4fa5255ec server crash fix for resource reload fix 2023-04-01 09:01:31 +11:00
Hiroku 4f3e874e70 Merge branch 'bucket-influence' into 'main'
Influences can now modify bucket weight

See merge request cable-mc/cobblemon!428
2023-03-31 13:16:16 +00:00
DeltricandHiroku 6df0f17798 Influences can now modify bucket weight 2023-03-31 13:16:16 +00:00
Paul a9e3115b46 Merge remote-tracking branch 'origin/main' 2023-03-31 22:48:12 +10:00
Paul bef8e064f1 1.3.1 in the Cobblemon object 2023-03-31 22:47:18 +10:00
Hiroku 79873c44e7 Merge branch 'GDWR/pokebox_command' into 'main'
Add `pokebox` and `pokeboxall` commands

Closes #169

See merge request cable-mc/cobblemon!401
2023-03-31 12:01:15 +00:00
Paul d4abf9f2b5 Merge remote-tracking branch 'home/main' into GDWR/pokebox_command
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonCommands.kt
#	common/src/main/resources/assets/cobblemon/lang/en_us.json
2023-03-31 22:00:00 +10:00
Hiroku fd8b6c50a5 Merge branch 'qol-switch-to-last-pokemon' into 'main'
Switch selected party Pokemon to the last Pokemon used after a battle

See merge request cable-mc/cobblemon!394
2023-03-31 11:35:10 +00:00
chandler05andHiroku 2b872d85cf Switch selected party Pokemon to the last Pokemon used after a battle 2023-03-31 11:35:10 +00:00
Hiroku d98908b91d Merge branch '206-instant-flee' into 'main'
Added check for fleeDistance == -1 in checkFlee()

Closes #206

See merge request cable-mc/cobblemon!418
2023-03-31 11:34:08 +00:00
selfdotandHiroku f592e6bc05 Added check for fleeDistance == -1 in checkFlee() 2023-03-31 11:34:07 +00:00
Hiroku dad86f3692 Merge branch 'GDWR/add_spawn_pokemon_from_pool' into 'main'
Add `SpawnPokemonFromPool` command

Closes #170

See merge request cable-mc/cobblemon!407
2023-03-31 11:22:54 +00:00
Hiroku 817b55407c Merge branch 'main' into 'GDWR/add_spawn_pokemon_from_pool'
# Conflicts:
#   CHANGELOG.md
2023-03-31 11:10:11 +00:00
Hiroku b2167a9902 Merge branch 'misc-fixes' into 'main'
Misc Fixes

See merge request cable-mc/cobblemon!425
2023-03-31 11:09:36 +00:00
TyzillionandHiroku d3f5ce42a8 Misc Fixes 2023-03-31 11:09:36 +00:00
Hiroku 0eababd67a Merge branch 'more-recipes-already' into 'main'
A few recipes

See merge request cable-mc/cobblemon!427
2023-03-31 09:22:30 +00:00
dhi_holoandHiroku 103f65800f A few recipes 2023-03-31 09:22:30 +00:00
Veraxiel 55925fc4a4 Update BestSpawnerConfig.kt 2023-03-31 08:19:47 +00:00
Paul 63d4176e86 Merge remote-tracking branch 'origin/main' 2023-03-31 13:56:08 +10:00
Hiroku 4709d0f766 Merge branch 'showdownInterpreter' into 'main'
add interpretation for yawn and fixed a bug in silent message interpretation

See merge request cable-mc/cobblemon!422
2023-03-31 03:55:05 +00:00
BobbyandHiroku e1ef1d9bb0 add interpretation for yawn and fixed a bug in silent message interpretation 2023-03-31 03:55:04 +00:00
Paul 5745b394b5 Updated all the translations 2023-03-31 13:53:51 +10:00
Paul 335f6f7104 Merge remote-tracking branch 'origin/main' 2023-03-31 11:33:41 +10:00
Hiroku 2de001f61c Merge branch 'mjkim__-main-patch-41166' into 'main'
Updated Korean Translations

See merge request cable-mc/cobblemon!424
2023-03-31 01:33:11 +00:00
KY4LUandHiroku 9739ed917a Updated Korean Translations 2023-03-31 01:33:11 +00:00
Paul e9e699c60b Merge remote-tracking branch 'origin/main' 2023-03-31 11:32:06 +10:00
Paul 4dd78d5755 Update Showdown with a merge from showdown/master and misc data order fix 2023-03-31 11:27:16 +10:00
Hiroku 1e67385f15 Merge branch 'GDWR/patch_friendship_based_attacks' into 'main'
Correctly format misc data in Showdown team packet

Closes #201

See merge request cable-mc/cobblemon!417
2023-03-31 01:16:35 +00:00
Hiroku f29a26869b Merge branch '191-investigate-crash-with-showdown-move-action-interpretation' into 'main'
Migrated HandleMoveInstruction to use BattleMessage

Closes #191

See merge request cable-mc/cobblemon!423
2023-03-31 01:08:01 +00:00
Hiroku aefdbfcce3 Merge branch 'ys/recall-shoulder-pokemon-on-heal-and-evolve' into 'main'
Recall shoulder pokemon on healer use

See merge request cable-mc/cobblemon!419
2023-03-31 00:13:33 +00:00
YaseenandHiroku 05bce3c058 Recall shoulder pokemon on healer use 2023-03-31 00:13:33 +00:00
Renaissance 8ba622a635 Migrated HandleMoveInstruction to use BattleMessage 2023-03-30 01:47:18 +00:00
GDWR 3b1e8f1624 Correctly format misc data in Showdown team packet 2023-03-29 20:04:52 +01:00
Village eae49b0f7e Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled 2023-03-29 01:00:06 -04:00
Village 9af141e9cd fix lava particles 2023-03-29 00:59:04 -04:00
Hiroku 061a418c90 Merge branch 'showdownInterpreter' into 'main'
add interpretation for -activate -end and -damage instructions for the move wrap

See merge request cable-mc/cobblemon!414
2023-03-29 03:32:32 +00:00
Hiroku bb52d55c80 Merge branch 'feature/add_missing_extractors' into 'main'
feat: amend PokemonPropertyExtractors to match what PokemonProperties can parse from string

See merge request cable-mc/cobblemon!411
2023-03-28 23:56:34 +00:00
PolymetaandHiroku 416affb1c3 feat: amend PokemonPropertyExtractors to match what PokemonProperties can parse from string 2023-03-28 23:56:34 +00:00
RobertLudwick 7061d58333 add interpretation for -activate -end and -damage instructions for the move wrap 2023-03-28 18:41:12 -04:00
Nick b59aab557f Merge branch 'fix-benched-moves-sync' into 'main'
Fix benched moves not syncing correctly on the Pokemon DTO

See merge request cable-mc/cobblemon!413
2023-03-28 20:35:04 +00:00
LiciousandNick 1f98355bec Fix benched moves not syncing correctly on the Pokemon DTO 2023-03-28 20:35:03 +00:00
Licious17 ad6b63055c Add en_us description for all gen 9 moves and abilities. 2023-03-28 19:50:44 +01:00
GDWR 96611b04dc Add SpawnPokemonFromPool command 2023-03-28 19:26:30 +01:00
GDWR 49d1015104 Operate on the party pokemon backwards so the "lead" is kept 2023-03-28 19:25:14 +01:00
GDWR 0eeb992724 If pokebox command would move a Player's last poke while preventCompletePartyDeposit is set, stop and error 2023-03-28 19:25:14 +01:00
GDWR 9e9921098a Add Lang entries for error messages 2023-03-28 19:25:14 +01:00
GDWR 0b23e68786 Add pokebox and pokeboxall commands 2023-03-28 19:25:12 +01:00
Licious 0ce309c37c Merge branch 'thorium-mod-compatibility' into 'main'
Fix incompatibility with the Thorium mod.

See merge request cable-mc/cobblemon!408
2023-03-28 14:23:39 +00:00
Licious 75527fdf40 Fix incompatibility with the Thorium mod. 2023-03-28 14:23:39 +00:00
Licious 2389bdf25d Merge branch 'any_evolution-requirement' into 'main'
Add utility evolution requirement for any match of children requirements

See merge request cable-mc/cobblemon!405
2023-03-28 09:56:34 +00:00
Licious 24c9073c4c Add utility evolution requirement for any match of children requirements 2023-03-28 09:56:34 +00:00
Hiroku b33e2118b4 Merge branch 'showdown-unbundle-tweak' into 'main'
Don't run mkdirs on the zip target, but rather its parent. Fixes an IO exception

See merge request cable-mc/cobblemon!410
2023-03-28 09:01:26 +00:00
Nick 993ca68a5a Don't run mkdirs on the zip target, but rather its parent. Fixes an IO exception 2023-03-27 22:24:05 -07:00
Nick f0d47055c4 Merge branch 'transitive-access-wideners' into 'main'
Use transitive access wideners in favor of side-mod/plugin development

See merge request cable-mc/cobblemon!409
2023-03-28 04:57:49 +00:00
Nick bf331a7471 Use transitive access wideners in favor of side-mod/plugin development 2023-03-28 04:57:48 +00:00
Hiroku f74ba3dc77 Merge branch 'more-poke' into 'main'
Implement Nosepass & Slugma line

Closes #168

See merge request cable-mc/cobblemon!406
2023-03-27 23:49:40 +00:00
LiciousandHiroku 063b627043 Implement Nosepass & Slugma line 2023-03-27 23:49:39 +00:00
Licious17 85335d14ed The great shoulder nerf. 2023-03-27 23:08:16 +01:00
Licious 358b544583 Merge branch 'misc_texture_fixes' into 'main'
Misc Fixes

See merge request cable-mc/cobblemon!403
2023-03-27 19:06:49 +00:00
TyzillionandLicious ac945b4597 Misc Fixes 2023-03-27 19:06:48 +00:00
Paul 8733085232 Fixed all pokemon being lava resistant 2023-03-27 14:33:33 +10:00
Hiroku cbc484a611 Merge branch 'return-before-heal' into 'main'
Return Pokemon to their pokeballs when healing them in a healing machine

See merge request cable-mc/cobblemon!395
2023-03-27 03:35:27 +00:00
chandler05andHiroku e5412a9c3b Return Pokemon to their pokeballs when healing them in a healing machine 2023-03-27 03:35:27 +00:00
Hiroku 3ac325a22e Merge branch '192-disconnecting-from-dedicated-server-causes-pokeballs-to-not-finish-capture-attempt' into 'main'
Fix Pokeballs being able to go through portals & sometimes getting stuck on...

Closes #40 and #192

See merge request cable-mc/cobblemon!400
2023-03-27 03:34:51 +00:00
LiciousandHiroku 6775e30f87 Fix Pokeballs being able to go through portals & sometimes getting stuck on... 2023-03-27 03:34:51 +00:00
Paul 5d30990eb6 Clean duplicate pokemon from data on load 2023-03-27 13:30:38 +10:00
Paul c8917ff02e Fixed best-spawner-config.json being .json.json 2023-03-27 12:00:22 +10:00
Hiroku de151442cd Merge branch 'GDWR/sound_arrow_keys_in_pc' into 'main'
Make GUI click sound when using arrow keys to navigate PC

Closes #198

See merge request cable-mc/cobblemon!402
2023-03-27 00:22:35 +00:00
Paul b09e553557 Added ru_ru.json, applied selfdot's fix for pokemon navigation (they had merge conflicts) 2023-03-27 10:19:07 +10:00
GDWR 11e150e6aa Make GUI click sound when using arrow keys to navigate PC 2023-03-26 19:14:07 +01:00
Licious17 85afe85150 Minor tweak on TeachCommand 2023-03-26 18:29:38 +01:00
Licious 4f73361565 Merge branch 'GDWR/teach_command_bug' into 'main'
Make /teach correctly use player argument

Closes #181

See merge request cable-mc/cobblemon!388
2023-03-26 17:01:46 +00:00
GDWRandLicious 34d2de0319 Make /teach correctly use player argument 2023-03-26 17:01:46 +00:00
Test e8be1c9ccf Merge branch '196-apricorn-leaves-cannot-be-composted' into 'main'
Resolve "Apricorn Leaves cannot be Composted"

Closes #196

See merge request cable-mc/cobblemon!399
2023-03-26 14:50:12 +00:00
LiciousandTest 9c36b9449c Resolve "Apricorn Leaves cannot be Composted" 2023-03-26 14:50:12 +00:00
Licious17 1a7695f844 Fix data for Pokémon who have a gender requirement behind their evolution. 2023-03-26 13:53:16 +01:00
Hiroku 7c5e9c43f2 Merge branch 'interaction-wheel-ui' into 'trading'
Refactor interaction wheel GUIs

See merge request cable-mc/cobblemon!396
2023-03-26 06:27:56 +00:00
landonjw b10c09b740 Refactor interaction wheel GUIs 2023-03-26 02:07:43 -04:00
Hiroku 134ebe1c2f Merge branch 'exp_yield_fix' into 'main'
Fix for exp yield 0 Pokémon

Closes #184

See merge request cable-mc/cobblemon!393
2023-03-26 05:04:25 +00:00
MoeBoy76andHiroku 923ef08db4 Fix for exp yield 0 Pokémon 2023-03-26 05:04:25 +00:00
Licious17 c962aceed2 Backport fix to clientside Pokémon locating. 2023-03-25 22:44:51 +00:00
Licious ebeebeeee7 Merge branch 'GDWR/capture_poke_sprite_bug' into 'main'
Update state on client side when capture fails

Closes #188

See merge request cable-mc/cobblemon!391
2023-03-25 22:03:37 +00:00
GDWRandLicious 6d6867fb09 Update state on client side when capture fails 2023-03-25 22:03:37 +00:00
Licious17 113e423af1 Merge remote-tracking branch 'origin/1.19.3' into 1.19.3 2023-03-25 21:59:47 +00:00
Licious17 f9cdd9d002 Several fixes & tweaks, Forge currently broken 2023-03-25 21:59:34 +00:00
Licious e98084343d Merge branch 'pc-command-fix' into 'main'
Need to throw exception to stop flow

See merge request cable-mc/cobblemon!390
2023-03-25 11:34:37 +00:00
DeltricandLicious 19dad2daa7 Need to throw exception to stop flow 2023-03-25 11:34:36 +00:00
Hiroku f513475267 Merge branch 'spawns-and-drops' into 'main'
Added and fixed spawns and drops.

See merge request cable-mc/cobblemon!389
2023-03-25 11:24:40 +00:00
VeraxielandHiroku 80fbf4a300 Added and fixed spawns and drops. 2023-03-25 11:24:40 +00:00
Paul 6904e302ff Added fr_ca translation, updated ja_jp and removed dead line 2023-03-25 20:09:46 +10:00
Paul faf3858a5e Added th_th translation 2023-03-25 19:52:08 +10:00
Paul 501dd51e29 Merge remote-tracking branch 'origin/main' 2023-03-25 19:50:43 +10:00
Licious 7b23ce055c Merge branch '177-investigate-reload-preventing-moves-from-being-learnt' into 'main'
Resolve "Investigate /reload preventing moves from being learnt"

Closes #177

See merge request cable-mc/cobblemon!385
2023-03-25 09:13:06 +00:00
Licious ec8b9be4f6 Resolve "Investigate /reload preventing moves from being learnt" 2023-03-25 09:13:06 +00:00
Paul e62e08aafb Added ja_jp translation 2023-03-25 17:50:34 +10:00
Paul db6a60d3cb Fixed Pokémon not looking at each other in battle 2023-03-25 14:21:35 +10:00
Paul 94ca3808ed Maybe fixed particle effect issues where they overlap or occur after death 2023-03-25 14:21:00 +10:00
Hiroku 9eec283036 Merge branch 'feature/release_events' into 'main'
feat(api): implement ReleasePokemon pre and post event

See merge request cable-mc/cobblemon!380
2023-03-24 23:05:38 +00:00
PolymetaandHiroku 3a0c801ffd feat(api): implement ReleasePokemon pre and post event 2023-03-24 23:05:38 +00:00
Test ab795a4c6c Merge branch '178-disable-psysical-collision-on-1st-stage-apricorn-buds' into 'main'
Resolve "Disable psysical collision on 1st stage apricorn buds"

Closes #178

See merge request cable-mc/cobblemon!384
2023-03-24 18:49:54 +00:00
LiciousandTest 0db41c1f9b Resolve "Disable psysical collision on 1st stage apricorn buds" 2023-03-24 18:49:54 +00:00
Hiroku 2d315920f8 Merge branch 'icon-fix' into 'main'
Fixed Advancement Branch Icon

See merge request cable-mc/cobblemon!374
2023-03-24 06:56:39 +00:00
dhi_holoandHiroku 7449bc2377 Fixed Advancement Branch Icon 2023-03-24 06:56:39 +00:00
Paul 15065e621f Protect pokeballs from causing duplicate Pokemon 2023-03-24 16:22:19 +10:00
Hiroku 59fdd41c46 Merge branch 'Added-ShowdownInterpreter-Instructions' into 'main'
Added ShowdownInterpreter Instructions

Closes #179 and #165

See merge request cable-mc/cobblemon!383
2023-03-24 06:08:01 +00:00
RenaissanceandHiroku fa04e168ac Added ShowdownInterpreter Instructions 2023-03-24 06:08:00 +00:00
Test 94b28c025a Merge branch '176-prevent-pokemon-entity-travel-between-dimensions' into 'main'
Resolve "Prevent Pokémon entity travel between dimensions"

Closes #176

See merge request cable-mc/cobblemon!382
2023-03-23 22:13:10 +00:00
LiciousandTest 6ed4938028 Resolve "Prevent Pokémon entity travel between dimensions" 2023-03-23 22:13:10 +00:00
Paul d2284a8b3b Merge remote-tracking branch 'origin/main' into 1.19.3
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/util/PlayerExtensions.kt
2023-03-23 19:24:45 +10:00
Licious 99d03b16b2 Merge branch 'teach-command-expansion' into 'main'
Expand teach command functionality

See merge request cable-mc/cobblemon!381
2023-03-22 20:31:57 +00:00
Licious f70f7fe354 Expand teach command functionality 2023-03-22 20:31:56 +00:00
Hiroku 878c31fac7 Merge branch 'held-item-full-inv-fix' into 'main'
Held item give/remove fixes

See merge request cable-mc/cobblemon!379
2023-03-22 11:03:57 +00:00
LiciousandHiroku 9945143dd9 Held item give/remove fixes 2023-03-22 11:03:56 +00:00
Licious17 770d248b3a Merge remote-tracking branch 'origin/main' 2023-03-21 23:07:03 +00:00
Licious17 345dd60e11 Fix lack of healing message with the black sludge 2023-03-21 23:06:53 +00:00
Licious 7b48ddf418 Merge branch 'Fixing-various-shinies' into 'main'
Fixed various shinies and a couple misc. bugs

See merge request cable-mc/cobblemon!377
2023-03-21 22:12:50 +00:00
JMMCPandLicious e8ea697caa Fixed various shinies and a couple misc. bugs 2023-03-21 22:12:50 +00:00
Licious 33021e2cb8 Merge branch 'json-bug-fixes' into 'main'
Fixes wrongly-formatted JSON files

See merge request cable-mc/cobblemon!378
2023-03-21 20:48:28 +00:00
MelonSpeedrunsandLicious d577687a87 Fixes wrongly-formatted JSON files 2023-03-21 20:48:28 +00:00
Hiroku e603238339 Merge branch 'misc-fixes' into 'main'
Misc fixes & additions

See merge request cable-mc/cobblemon!376
2023-03-20 21:32:57 +00:00
LiciousandHiroku a62f1fe560 Misc fixes & additions 2023-03-20 21:32:57 +00:00
Paul 96dd007db9 Merge remote-tracking branch 'origin/main' 2023-03-19 21:18:49 +10:00
Paul c339e36f9a Fixed custom Pokémon not being usable in battle by properly fixing ground type moves hitting flying types etc 2023-03-19 21:17:56 +10:00
Hiroku 2798487106 Merge branch 'modify-global-influences' into 'main'
Updated Global Influences

See merge request cable-mc/cobblemon!375
2023-03-19 11:05:41 +00:00
DeltricandHiroku 252139d07f Updated Global Influences 2023-03-19 11:05:40 +00:00
Licious17 671c96856f Doc ServerPlayerEvent.RightClickEntity 2023-03-18 22:49:57 +00:00
Licious17 ec625ebc60 Fix bad merge imports 2023-03-18 21:39:09 +00:00
Licious17 ece0347973 Merge branch 'main' into 1.19.3
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/gui/battle/widgets/BattleMessagePane.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/pokemon/update/NatureUpdatePacket.kt
#	fabric/src/main/resources/fabric.mod.json
#	forge/src/main/resources/META-INF/mods.toml
#	gradle/libs.versions.yml
2023-03-18 21:18:47 +00:00
Paul e55c54fb24 Fixed log spam when rendering pokemon model items 2023-03-18 17:25:42 +10:00
Paul 74c4e2ae04 Fixed a crash when killing Dodrio 2023-03-18 14:10:59 +10:00
Paul 49671f7867 1.3.0 finalising 2023-03-18 12:35:04 +10:00
Hiroku 70b1431c44 Merge branch 'advancement-quick-fix' into 'main'
Update craft_poke_ball.json

See merge request cable-mc/cobblemon!373
2023-03-18 00:50:39 +00:00
dhi_holoandHiroku 90a0135f94 Update craft_poke_ball.json 2023-03-18 00:50:39 +00:00
Paul 1a3790a071 Fixed held item crash with Fling 2023-03-18 10:48:34 +10:00
Paul f62a875c52 Merge remote-tracking branch 'origin/main' 2023-03-18 10:23:48 +10:00
Paul c11d8f7d84 Fixed Showdown mechanics being botched again, the true problem is Showdown battle instances not having gen: 9 2023-03-18 10:22:56 +10:00
Hiroku f49c4c0b6c Merge branch 'dependency-updates' into 'main'
Update architectury + fabric API dependency requirements

See merge request cable-mc/cobblemon!372
2023-03-17 23:25:32 +00:00
NickandHiroku e633c5f1b0 Update architectury + fabric API dependency requirements 2023-03-17 23:25:32 +00:00
Paul 30d2c4ddfc Merge remote-tracking branch 'origin/main'
# Conflicts:
#	common/src/main/resources/data/cobblemon/species/generation3/carvanha.json
2023-03-18 08:44:49 +10:00
Paul 14e721c81f Fixed Carvanha + Sharpedo swimming AI and made surface slightly rarer to counteract Gyarados spawns 2023-03-18 08:44:04 +10:00
Hiroku 4675a47bc6 Merge branch 'hide-tooltip-tag' into 'main'
Add Hide Tooltip tag for pokeballs

See merge request cable-mc/cobblemon!370
2023-03-17 22:23:22 +00:00
Hiroku de55ec98a0 Merge branch 'drops' into 'main'
Drops

See merge request cable-mc/cobblemon!369
2023-03-17 22:21:51 +00:00
XylopiaandHiroku 2e6d7509a6 Drops 2023-03-17 22:21:51 +00:00
Hiroku e30ca8bc23 Merge branch 'lang-fix' into 'main'
Lang fixes

See merge request cable-mc/cobblemon!366
2023-03-17 22:20:11 +00:00
LiciousandHiroku 9b485ee8ad Lang fixes 2023-03-17 22:20:11 +00:00
Licious 631d6ab776 Merge branch 'model-fixes-for-1.3' into 'main'
Model fixes for 1.3

See merge request cable-mc/cobblemon!368
2023-03-17 22:06:58 +00:00
XylopiaandLicious ccacd18a23 Model fixes for 1.3 2023-03-17 22:06:58 +00:00
Licious17 bca0812d0c Fix Nature sync packet interpreting identifiers incorrectly. 2023-03-17 22:04:53 +00:00
Deltric 5518b5c66c Add Hide Tooltip tag for pokeballs 2023-03-17 16:57:59 -05:00
Licious17 fef2db118e Fix Miltank milking implementation. 2023-03-17 16:43:42 +00:00
Paul cbcc9c65d9 More changelog [skip-ci] 2023-03-17 20:20:43 +10:00
Paul 3d3ce6fa0f Merge remote-tracking branch 'origin/main' 2023-03-17 20:08:22 +10:00
Paul b5d05c4c55 Loads of changelog updates, fix for beam rendering of PokeBalls, @JvmStatic on PokemonItem functions 2023-03-17 20:07:28 +10:00
Hiroku ec6dcdb21a Merge branch 'quick-fixes' into 'main'
Fixed Advancement and Added Item to Tag

See merge request cable-mc/cobblemon!365
2023-03-17 08:45:16 +00:00
dhi_holoandHiroku b5f2e260ea Fixed Advancement and Added Item to Tag 2023-03-17 08:45:15 +00:00
Hiroku 60c0c97722 Merge branch 'spawn_fixes' into 'main'
Added Spawn files for all newly implemented Pokemon.

See merge request cable-mc/cobblemon!364
2023-03-17 04:06:19 +00:00
TyzillionandHiroku ddb78d1467 Added Spawn files for all newly implemented Pokemon. 2023-03-17 04:06:19 +00:00
Hiroku 0878abc9f4 Merge branch 'Starter_Implementation' into 'main'
Implemented Gen 5,6,7, and 8 starters.

See merge request cable-mc/cobblemon!363
2023-03-17 03:54:54 +00:00
TyzillionandHiroku c466d5e0cb Implemented Gen 5,6,7, and 8 starters. 2023-03-17 03:54:54 +00:00
Hiroku 0778014d80 Merge branch 'leftover-fix' into 'main'
Leftovers now drop on the floor if the players inventory is full.

See merge request cable-mc/cobblemon!357
2023-03-17 03:46:38 +00:00
amoandHiroku 3f9cb4037a Leftovers now drop on the floor if the players inventory is full. 2023-03-17 03:46:37 +00:00
Paul 8794dcf0cd Changelog for langs [skip-ci] 2023-03-17 12:33:08 +10:00
Paul 161d3acf0c Merge remote-tracking branch 'origin/main' 2023-03-17 12:27:05 +10:00
Paul f914d1e38e Updated heaps of langs 2023-03-17 12:26:13 +10:00
Hiroku 47282fcf82 Merge branch 'healer-patch' into 'main'
clamp healing machine config values

See merge request cable-mc/cobblemon!362
2023-03-17 02:15:47 +00:00
TestandHiroku 54a719da91 clamp healing machine config values 2023-03-17 02:15:47 +00:00
Paul 890c6c94d9 Minor English correction to held item lang 2023-03-17 11:59:26 +10:00
Paul d23363e427 Fixed moving a Pokémon to an empty later space in the party causing a crash 2023-03-17 11:38:10 +10:00
Hiroku f17fb5da25 Merge branch 'implemented_new_pokemon' into 'main'
Multiple fixes and changes to various Pokemon and implemented 2.

See merge request cable-mc/cobblemon!360
2023-03-17 00:53:42 +00:00
TyzillionandHiroku 8d091d905f Multiple fixes and changes to various Pokemon and implemented 2. 2023-03-17 00:53:42 +00:00
Paul 4cc78ba4c6 Many corrections from merge but why are pokeballs doing that thing when thrown 2023-03-16 21:54:30 +10:00
Hiroku 6bc413f4d6 Merge branch 'drag-scroll' into 'main'
Fix not being able to drag scrollbar

See merge request cable-mc/cobblemon!361
2023-03-16 11:52:51 +00:00
TestandHiroku 59768de4d6 Fix not being able to drag scrollbar 2023-03-16 11:52:51 +00:00
Hiroku b1b435c464 Merge branch 'scaled-difficulty-calc' into 'main'
Scale difficulty on configurable max pokemon level + limit difficulty to a max of 1 bonus

See merge request cable-mc/cobblemon!358
2023-03-15 21:30:15 +00:00
Nick 5fe7bb0097 Scale difficulty on configurable max pokemon level + limit difficulty to a max of 1 bonus 2023-03-14 19:50:02 -07:00
Paul 9b29c800b2 Merge remote-tracking branch 'origin/main' into 1.19.3 2023-03-13 22:00:25 +10:00
Hiroku 2f1f33f802 Fix dragon fang recipe 2023-03-13 11:58:40 +00:00
Paul 2aa85c4254 Compile errors and general patching for 1.3 -> 1.4 2023-03-13 21:48:59 +10:00
Paul d576022219 Merge conflict stuff 2023-03-13 16:19:15 +10:00
Paul 749c12f1ae Licenses 2023-03-13 14:42:09 +10:00
Paul 1e4258811c Remaining backend trade logic 2023-03-13 13:20:19 +10:00
Paul 7cc5bd6dc8 Fixed pokemon item renderer spamming errors in console 2023-03-12 21:31:15 +10:00
Hiroku 51f6cf1ed3 Merge branch 'recipe-sprint' into 'main'
Held Item Recipes

See merge request cable-mc/cobblemon!352
2023-03-12 06:15:09 +00:00
dhi_holoandHiroku e487dd2cde Held Item Recipes 2023-03-12 06:15:09 +00:00
Paul bfef29b11a Added Razor Fang 2023-03-12 12:36:19 +10:00
Paul e22bcd9fb3 Fixed model items not rendering layers 2023-03-12 12:19:34 +10:00
Paul 167b70d237 Added tooltip to healing machine 2023-03-12 11:14:23 +10:00
Paul ac8ffc2ca1 More logic for handling requests for battle challenges and trade offer on server and client 2023-03-12 10:10:08 +10:00
Hiroku e60fd588f8 Merge branch 'socket-showdown-fix' into 'main'
Fix socket showdown for changes in MR 353

See merge request cable-mc/cobblemon!355
2023-03-11 23:23:30 +00:00
LandonandHiroku 90f446455f Fix socket showdown for changes in MR 353 2023-03-11 23:23:30 +00:00
Hiroku 1368f1ed76 Merge branch 'more-player-extensions' into 'main'
Added player extensions for PC and extra data

See merge request cable-mc/cobblemon!354
2023-03-11 22:53:44 +00:00
DeltricandHiroku ef10c62114 Added player extensions for PC and extra data 2023-03-11 22:53:44 +00:00
Hiroku fb01cd0302 Merge branch 'showdown-species-fixes' into 'main'
Showdown species fixes

See merge request cable-mc/cobblemon!353
2023-03-11 13:11:01 +00:00
LiciousandHiroku 2fae30206c Showdown species fixes 2023-03-11 13:11:01 +00:00
Paul ea3a1f16f3 Fixed apple eating mixin on Forge 2023-03-11 18:51:46 +10:00
Paul 20b6f44e63 Updated Showdown version 2023-03-11 17:53:04 +10:00
Paul d61656afe9 Licenses 2023-03-11 14:13:12 +10:00
Paul cc69f04afa Merge remote-tracking branch 'origin/main' 2023-03-11 14:10:19 +10:00
Paul 397e9a2b5f Added leftovers from eating apples 2023-03-11 14:09:25 +10:00
Hiroku dbd7714a26 Merge branch 'Added-Razor-Claw' into 'main'
Added Razor Claw item.

See merge request cable-mc/cobblemon!351
2023-03-11 03:49:48 +00:00
JMMCPandHiroku 33cfe3b981 Added Razor Claw item. 2023-03-11 03:49:48 +00:00
Hiroku 391283a604 Merge branch 'Fixed-incorrect-luxury-ball-recipe' into 'main'
Fixed incorrect Luxury Ball crafting recipe.

See merge request cable-mc/cobblemon!350
2023-03-11 02:26:42 +00:00
JMMCPandHiroku a56f313957 Fixed incorrect Luxury Ball crafting recipe. 2023-03-11 02:26:42 +00:00
Paul 93261ada2b Fixed move names not being translated in battle messages 2023-03-11 12:20:16 +10:00
Hiroku 6f3797a8db Merge branch 'showdown-interpreter-held-item-additions' into 'main'
Added ShowdownInterpreter support for activation of Leftovers and Quick Claw held items.

See merge request cable-mc/cobblemon!349
2023-03-11 02:03:39 +00:00
JMMCPandHiroku 73751c083d Added ShowdownInterpreter support for activation of Leftovers and Quick Claw held items. 2023-03-11 02:03:38 +00:00
Hiroku f9aa09c654 Merge branch 'walking-leaves' into 'main'
Add Walking Wake and Iron Leaves

See merge request cable-mc/cobblemon!334
2023-03-11 01:23:54 +00:00
LiciousandHiroku 1e92ac4603 Add Walking Wake and Iron Leaves 2023-03-11 01:23:54 +00:00
Paul fb1c1170b3 Corrected mistaken spaces in some lang entries 2023-03-10 23:00:30 +10:00
Licious 5ec7c0f16e Merge branch 'kotlin4forge-compat' into 'main'
Kotlin4forge compat

See merge request cable-mc/cobblemon!340
2023-03-10 12:15:32 +00:00
HirokuandLicious 1e33b4fc1d Kotlin4forge compat 2023-03-10 12:15:32 +00:00
Paul 9d4251ac98 Merge remote-tracking branch 'origin/main' into added-held-items 2023-03-10 21:33:33 +10:00
Paul 07b182f044 Fixed capture calculator bugs 2023-03-10 21:30:39 +10:00
Licious 1619cc117f Merge branch 'added-held-items' into 'main'
Added/Updated many held items.

See merge request cable-mc/cobblemon!348
2023-03-10 11:29:40 +00:00
JMMCPandLicious 574f0cfe1c Added/Updated many held items. 2023-03-10 11:29:40 +00:00
Paul d3e51c9211 Added remapping from charcoal stick to charcoal for Showdown 2023-03-10 20:21:15 +10:00
Paul 6dbaba2895 Removed auspicious armour from is_held_item tag since item was removed 2023-03-10 19:40:34 +10:00
jmmcp 036f1af99f Added held items Leftovers, Light Clay, Magnet, Miracle Seed, Mystic Water, Never-Melt Ice, Poison Barb, Quick Claw, Sharp Beak, Silver Powder, Soft Sand, Spell Tag, and Twisted Spoon.
Updated item sprites for Muscle Band, Safety Goggles, and Wise Glasses.
Changed Charcoal to Charcoal Stick.
2023-03-10 00:59:02 -05:00
Hiroku c3592183fb Merge branch '#145-pokemon-damage-changes' into 'main'
Pokemon invulnerability adjustments

See merge request cable-mc/cobblemon!346
2023-03-10 02:16:19 +00:00
DeltricandHiroku bf322930e7 Pokemon invulnerability adjustments 2023-03-10 02:16:19 +00:00
Paul 9a9885adef Merge remote-tracking branch 'origin/main'
# Conflicts:
#	CHANGELOG.md
2023-03-10 11:46:05 +10:00
Paul 0e22e56ca8 Added block tag support for neededBaseBlocks 2023-03-10 11:45:24 +10:00
Hiroku 0d9b639247 Merge branch 'apricorn-event' into 'main'
Apricorn harvest event

See merge request cable-mc/cobblemon!345
2023-03-10 01:44:45 +00:00
DeltricandHiroku c59733b8ae Apricorn harvest event 2023-03-10 01:44:45 +00:00
Paul 2df57c3166 Client packet handlers for trading 2023-03-10 11:26:21 +10:00
Hiroku c3f28b01f9 Merge branch 'summary-screen-cleanup' into 'main'
Summary screen safety and clean up

See merge request cable-mc/cobblemon!344
2023-03-10 01:25:37 +00:00
LiciousandHiroku 7707530b2f Summary screen safety and clean up 2023-03-10 01:25:37 +00:00
Hiroku e7774a2737 Merge branch '#109-config-pokemon-damage' into 'main'
Config option to disable pokemon player damage

See merge request cable-mc/cobblemon!347
2023-03-10 01:24:53 +00:00
DeltricandHiroku fc3c01aac6 Config option to disable pokemon player damage 2023-03-10 01:24:53 +00:00
Licious 0b5fffae3d Merge branch 'even-more-items' into 'main'
Add/change various evolution items

See merge request cable-mc/cobblemon!343
2023-03-07 21:15:17 +00:00
Licious 2f0f9e9f9a Add/change various evolution items 2023-03-07 21:15:17 +00:00
Hiroku c3201effc7 Merge branch 'nametag-disabling' into 'main'
Handle name tags in the context of the mod

See merge request cable-mc/cobblemon!341
2023-03-07 11:44:56 +00:00
LiciousandHiroku c11074b828 Handle name tags in the context of the mod 2023-03-07 11:44:55 +00:00
Hiroku cb62ebb524 Update CHANGELOG.md [skip-ci] 2023-03-07 09:07:37 +00:00
Hiroku 1eda4884b3 Merge branch 'milk' into 'main'
milk

See merge request cable-mc/cobblemon!342
2023-03-07 09:03:44 +00:00
Village 52ead1d48a milk 2023-03-06 20:22:57 -05:00
Paul 8eabd03a2b Fixed more instances of capture calculator not doing the division correctly 2023-03-06 17:31:10 +10:00
Paul 4ec1e27b09 Changelog [skip-ci] 2023-03-06 17:29:43 +10:00
Paul 5a6671e988 Merge branch 'main' into milky-capture-calculator
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen6/HonedgeModel.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/repository/PokemonModelRepository.kt
2023-03-06 17:25:54 +10:00
Paul ae6def9d5f A bunch of fixes to capture calculation, use gen9 but with difficulty scaler and halving of catch when outside of battle 2023-03-06 17:25:18 +10:00
Paul cadb313ff8 Wooloo and Dubwool eat animations, fixed some pokemon sleeping on beds when they shouldn't, shadow size tweak 2023-03-06 12:50:17 +10:00
Paul 36f70fffb2 Created S2C packets for trading 2023-03-05 18:26:43 +10:00
Paul 7170537dcf Merge remote-tracking branch 'origin/trading' into trading 2023-03-05 17:49:04 +10:00
Village 49c578d999 interact icons 2023-03-05 02:36:09 -05:00
Paul ce94877c8b Licenses 2023-03-05 12:59:22 +10:00
Paul 2826bea987 Swapped recall and send out beam colours again 2023-03-05 12:15:36 +10:00
Paul baa81cef03 Some trade logic, storing trade state and requests 2023-03-05 12:10:19 +10:00
Licious a698725324 Merge branch 'misc-fixes' into 'main'
Misc fixes

See merge request cable-mc/cobblemon!335
2023-03-04 09:07:57 +00:00
HirokuandLicious e6b3b6fae1 Misc fixes 2023-03-04 09:07:57 +00:00
Paul 06c5eae339 Merge remote-tracking branch 'origin/main' 2023-03-04 17:05:28 +10:00
Hiroku d70f0d2b8a Merge branch 'implemented_new_pokemon' into 'main'
Framings fixed, emissives added, and model tweaks.

See merge request cable-mc/cobblemon!339
2023-03-04 07:04:29 +00:00
TyzillionandHiroku b2e56130cf Framings fixed, emissives added, and model tweaks. 2023-03-04 07:04:28 +00:00
Paul 6ce1288506 Improve safe-positioning of spawning Pokémon 2023-03-04 16:41:31 +10:00
Hiroku b32a949c56 Merge branch 'implementing-missing-shinies' into 'main'
Added/Updated shinies and models for many Pokemon.

See merge request cable-mc/cobblemon!337
2023-03-04 04:45:58 +00:00
JMMCPandHiroku 3f994e761a Added/Updated shinies and models for many Pokemon. 2023-03-04 04:45:57 +00:00
Paul 7891c3e9d8 Fixed water counting as air for spawning 2023-03-04 12:28:42 +10:00
Hiroku e2d6933f8a Merge branch 'more-held-items' into 'main'
Update existing assets and add new held items

See merge request cable-mc/cobblemon!336
2023-03-04 00:59:27 +00:00
LiciousandHiroku d78fda0b9d Update existing assets and add new held items 2023-03-04 00:59:27 +00:00
Hiroku 64d910e10b Merge branch 'pokemon-property-additions' into 'main'
Added the Ability property in PokemonProperties as well as suggestions for values of abilities.

See merge request cable-mc/cobblemon!331
2023-03-03 10:05:38 +00:00
RenaissanceandHiroku f1e83aa039 Added the Ability property in PokemonProperties as well as suggestions for values of abilities. 2023-03-03 10:05:38 +00:00
Hiroku f2fc1b234d Merge branch 'showdown-tech-debt' into 'main'
Improve Showdown Debuggability

See merge request cable-mc/cobblemon!329
2023-03-03 07:17:06 +00:00
LandonandHiroku 9bc4648807 Improve Showdown Debuggability 2023-03-03 07:17:05 +00:00
Paul 0a07058511 Compile error fix 2023-03-03 12:25:38 +10:00
Paul 09cbe63a94 Moved CobblemonItemTags to use public static fields in bytecode 2023-03-03 12:23:05 +10:00
Hiroku 52c4f65927 Merge branch 'main-patch-48f2' into 'main'
Added evolution stones & items tags

See merge request cable-mc/cobblemon!332
2023-03-03 02:21:41 +00:00
GioandHiroku f67a1e1784 Added evolution stones & items tags 2023-03-03 02:21:41 +00:00
Hiroku 55cddf8ded Merge branch 'further-ability-changes' into 'main'
More ability data struc changes

See merge request cable-mc/cobblemon!330
2023-03-03 02:15:31 +00:00
LiciousandHiroku 6879b7ce1a More ability data struc changes 2023-03-03 02:15:31 +00:00
Paul fb40bc0d3c Merge remote-tracking branch 'origin/main' 2023-03-03 12:12:58 +10:00
Paul a8429018ea Made CobblemonEvents etc compile to public static fields instead of getter crap 2023-03-03 12:12:39 +10:00
Paul c445b26639 Fix Deerling/Sawsbuck not appearing with the right season during world spawning 2023-03-03 12:11:28 +10:00
Licious17 715d7643b7 Merge remote-tracking branch 'origin/main' 2023-03-02 21:41:48 +00:00
Licious17 a937b842e9 Remove LA moves learnset blocker, these are now implemented in Showdown. 2023-03-02 21:41:33 +00:00
Emmett de Bruin 0f978ade5a Attempted linearly increasing capture calculator 2023-03-02 13:33:35 -08:00
Paul 9bd5866ef7 Potential fix for old PC blocks causing crashes 2023-03-02 22:15:19 +10:00
Paul 1ec94b0ebe Probable fix for pokeball animation issues with high ping 2023-03-02 22:15:06 +10:00
Paul 8974769f87 Don't spawn particles for entities that are invisible 2023-03-02 22:14:54 +10:00
Paul c20d147838 Fixed absurdly large Turtwig shadow 2023-03-02 21:00:20 +10:00
Paul e28d590dc3 Fixed bidoof spawn file loading a non-contexted preset with conditions before the contexted preset 2023-03-02 20:04:55 +10:00
Xylopia c0f998eb82 Added the ClearParty Command, not tested yet due to spawn file messes 2023-03-01 23:23:05 -05:00
Xylopia 69a3ad59cd Merge remote-tracking branch 'origin/spawn-event' into new-commands
# Conflicts:
#	CHANGELOG.md
#	common/src/main/kotlin/com/cobblemon/mod/common/api/spawning/detail/PokemonSpawnAction.kt
2023-03-01 23:14:16 -05:00
Xylopia ebe9c7243d Merge remote-tracking branch 'origin/spawn_fixes' into new-commands
# Conflicts:
#	common/src/main/resources/data/cobblemon/spawn_pool_world/0399_bidoof.json
2023-03-01 23:13:25 -05:00
Veraxiel 3e28bac830 Updated spawn files. Updated Evo-Stone ore files. 2023-02-28 21:36:01 -05:00
Veraxiel df320ab978 Added presets for derelict, treetop, and wilderness. Updated presets foliage and urban. 2023-02-28 14:01:13 -05:00
Veraxiel fe3dbdcdd8 Update 0399_bidoof.json 2023-02-28 18:50:37 +00:00
tyzillion 1d145f78eb Fixed Pokemon Spawns. 2023-02-28 12:45:04 -05:00
Veraxiel 77828008fa Fixed spawn files. 2023-02-28 10:36:23 -05:00
Hiroku fd13d9400c Merge branch 'ability-evolution-fix' into 'main'
Ability structure fix

See merge request cable-mc/cobblemon!326
2023-02-28 11:12:01 +00:00
LiciousandHiroku 9603713fcb Ability structure fix 2023-02-28 11:12:01 +00:00
Hiroku cc6ba92d42 Merge branch 'ball_models' into 'main'
Updated Poké Ball mechanics and visuals

See merge request cable-mc/cobblemon!325
2023-02-28 09:36:55 +00:00
Hiroku 8316537e90 Updated Poké Ball mechanics and visuals 2023-02-28 09:36:55 +00:00
Paul 6b396c4fc8 Fixed the shift click thing but for real 2023-02-27 18:56:03 +10:00
Hiroku e5fe46eb4d Merge branch 'implemented_new_pokemon' into 'main'
Implemented many Pokemon.

See merge request cable-mc/cobblemon!324
2023-02-27 08:54:24 +00:00
TyzillionandHiroku f2cbf78144 Implemented many Pokemon. 2023-02-27 08:54:24 +00:00
Hiroku 8aafbd54f5 Merge branch 'new-ball-recipes' into 'main'
updated three balls and added a cable

See merge request cable-mc/cobblemon!322
2023-02-24 05:17:11 +00:00
dhi_holoandHiroku 169145656a updated three balls and added a cable 2023-02-24 05:17:11 +00:00
Hiroku 97bb85e9f5 Merge branch 'zerobreaker000-main-patch-48926' into 'main'
Adopted a portion of Yyiyun's translations for zh_cn.json

See merge request cable-mc/cobblemon!323
2023-02-24 02:27:21 +00:00
Paul 7f35f46705 Fixed potential issue when making a Showdown backup folder 2023-02-23 23:57:20 +10:00
Paul e8b23fd0be Fixed spawn packets esp on Forge, fixed various other packets, fixed party overlay again 2023-02-23 23:56:19 +10:00
Licious17 a9e261da03 Fix SpawnExtraDataEntityPacket spawning the entity before applying our data. 2023-02-23 00:17:14 +00:00
Paul 348dd14fc5 Added icon_shiny and move_select that were deleted, fixed math util 2023-02-23 10:04:19 +10:00
Paul 426962aa6b Fixed access widener number 2.0 2023-02-22 21:20:37 +10:00
Paul 40f377f78e Fixed access widener 2023-02-22 20:33:31 +10:00
Paul 39dcae9cb1 Licenses update for 2022 -> 2023 2023-02-22 20:21:59 +10:00
Paul fd8bdf51f2 Licenses 2023-02-22 20:04:30 +10:00
Paul 5eba2230ea Many many corrections from merging main into bye-architectury 2023-02-22 19:35:43 +10:00
Hiroku 2164a59a84 Merge branch 'advancements-reboot' into 'main'
Advancement Reboot

See merge request cable-mc/cobblemon!320
2023-02-22 04:22:09 +00:00
dhi_holoandHiroku 6a65035823 Advancement Reboot 2023-02-22 04:22:09 +00:00
Paul 080a7f76bc Merge remote-tracking branch 'origin/main' into bye-architectury
# Conflicts:
#	common/src/main/java/com/cobblemon/mod/common/mixin/ArgumentTypesMixin.java
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonClientImplementation.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonConfiguredFeatures.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonEntities.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonFeatures.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonImplementation.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonNetwork.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonPlacements.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonSounds.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/api/battles/model/PokemonBattle.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/api/events/entity/EntityAttributeEvent.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/api/events/net/MessageBuiltEvent.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/api/tags/CobblemonItemTags.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/battles/ShowdownInterpreter.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/block/PCBlock.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/CobblemonClient.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/gui/summary/Summary.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/ClientPacketHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/ClientPacketRegistrar.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/pokemon/update/EvolutionUpdatePacketHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/net/pokemon/update/SingleUpdatePacketHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/pokemon/PokemonRenderer.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/pokemon/SpeciesAssetResolver.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokeball/EmptyPokeBallEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/ai/goals/PokemonInBattleMovementGoal.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/item/CobblemonItemGroups.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/PacketHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/SidedPacketRegistrar.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/battle/BattleHealthChangePacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/battle/BattleSwitchPokemonPacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/pokemon/update/StringUpdatePacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/pokemon/update/evolution/EvolutionUpdatePacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/storage/EvolutionLikeUpdatePacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/storage/SetPokemonPacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/server/pokemon/update/evolution/EvolutionDisplayUpdatePacket.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/serverhandling/ServerPacketHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/serverhandling/ServerPacketRegistrar.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/net/serverhandling/evolution/EvolutionDisplayUpdatePacketHandler.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/pokemon/Pokemon.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/registry/CompletableRegistry.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/util/EventExtensions.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/util/math/geometry/TransformationMatrix.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/world/feature/CobblemonOreConfiguredFeatures.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/world/feature/CobblemonOrePlacedFeatures.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/world/placement/BiomeTagModifier.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/world/placement/CobblemonPlacementTypes.kt
#	common/src/main/resources/assets/cobblemon/textures/gui/interact/move_select.png
#	common/src/main/resources/assets/cobblemon/textures/gui/summary/icon_shiny.png
#	common/src/main/resources/cobblemon-common.accesswidener
#	fabric/src/main/kotlin/com/cobblemon/mod/fabric/CobblemonFabric.kt
#	fabric/src/main/kotlin/com/cobblemon/mod/fabric/client/CobblemonFabricClient.kt
#	fabric/src/main/kotlin/com/cobblemon/mod/fabric/net/CobblemonNetworkFabric.kt
#	forge/src/main/kotlin/com/cobblemon/mod/forge/CobblemonForge.kt
#	forge/src/main/kotlin/com/cobblemon/mod/forge/client/CobblemonForgeClient.kt
#	forge/src/main/kotlin/com/cobblemon/mod/forge/net/CobblemonNetworkForge.kt
#	gradle/libs.versions.yml
2023-02-22 11:37:37 +10:00
Paul f0fb20f701 Made bones optional in animations so one can add temporary animation files 2023-02-21 10:46:04 +10:00
Paul 7ed179edd2 Added license adding script to utilityscripts because woops I didn't add this [skip-ci] 2023-02-20 22:40:16 +10:00
Paul 2d242af211 Fixed rendering of layers on shoulders 2023-02-20 22:38:34 +10:00
Paul c1f5b6e2b9 Fixed Pokémon kicking their legs super fast 2023-02-20 22:29:35 +10:00
Zero Breaker f8521fe238 Adopted a portion of Yyiyun's translations for zh_cn.json 2023-02-20 12:14:04 +00:00
Hiroku ca66e1e0a7 Merge branch 'Fixed-players-using-multiple-healers-at-once' into 'main'
Fixed issues caused by players being able to use multiple healer machines at once.

See merge request cable-mc/cobblemon!315
2023-02-20 06:47:12 +00:00
JMMCPandHiroku fc2a23ebf4 Fixed issues caused by players being able to use multiple healer machines at once. 2023-02-20 06:47:12 +00:00
Hiroku 7df91c2608 Merge branch 'ys/heal-on-sleep' into 'main'
Heal party on sleep

Closes #143

See merge request cable-mc/cobblemon!317
2023-02-20 05:55:59 +00:00
Yaseen SultanandHiroku 5b67155112 Heal party on sleep 2023-02-20 05:55:59 +00:00
Hiroku a241ac5653 Merge branch 'zerobreaker000-main-patch-82306' into 'main'
Reverted changes to colored pokeball names in zh_cn.json

See merge request cable-mc/cobblemon!321
2023-02-20 03:04:29 +00:00
Zero Breaker ac743f9f43 Reverted changes to colored pokeball names in zh_cn.json 2023-02-20 03:01:58 +00:00
Paul 9a2cfe040c Kdoc correction 2023-02-20 13:00:55 +10:00
Hiroku a703687bed Merge branch 'IseFallen-main-patch-07712' into 'main'
Update zh_cn.json

See merge request cable-mc/cobblemon!318
2023-02-20 02:58:44 +00:00
Fallen IseandHiroku 16dd7d6fa2 Update zh_cn.json 2023-02-20 02:58:44 +00:00
Paul 47194659fa Various 1.19.3 fixes and packet errors 2023-02-20 12:57:38 +10:00
Hiroku d1da3aee57 Merge branch 'charmander_line_particles' into 'main'
Added texture animation to Charmander line and added new translucent option for layers.

See merge request cable-mc/cobblemon!319
2023-02-20 02:29:42 +00:00
TyzillionandHiroku e4818da893 Added texture animation to Charmander line and added new translucent option for layers. 2023-02-20 02:29:42 +00:00
Nick 1cdc5aa3c7 Pull in correct fabric loader, fixes fabric 1.19.3 debug launch 2023-02-19 17:59:40 -08:00
Paul 413dafd681 Fix Forge decoding of packets not knowing the actual packet identifier 2023-02-20 10:49:13 +10:00
Hiroku 85c3582d78 Merge branch 'zerobreaker000-main-patch-41538' into 'main'
Changed advancement translations in zh_cn.json to Kinoshita's versions with modification

See merge request cable-mc/cobblemon!312
2023-02-19 11:39:51 +00:00
Zero BreakerandHiroku 95b11cae28 Changed advancement translations in zh_cn.json to Kinoshita's versions with modification 2023-02-19 11:39:51 +00:00
Hiroku 809718a89b Merge branch 'switch-move-battle-lock' into 'main'
Force switch battle lock fix

See merge request cable-mc/cobblemon!313
2023-02-19 11:39:19 +00:00
LiciousandHiroku 0dd87a8ac4 Force switch battle lock fix 2023-02-19 11:39:19 +00:00
Hiroku 82a9ad7756 Merge branch 'further-apricorn-changes' into 'main'
Update Apricorn block to use loot tables instead

See merge request cable-mc/cobblemon!310
2023-02-18 10:40:52 +00:00
LiciousandHiroku 99e326a720 Update Apricorn block to use loot tables instead 2023-02-18 10:40:52 +00:00
Licious 15d034bb60 Merge branch 'spawning-held-items' into 'main'
Added held item support to spawning

See merge request cable-mc/cobblemon!309
2023-02-18 10:39:12 +00:00
Hiroku 100ba9cff3 Merge branch 'zerobreaker000-main-patch-53499' into 'main'
Update zh_cn.json based off draft version by mask868

See merge request cable-mc/cobblemon!311
2023-02-18 08:15:23 +00:00
Zero BreakerandHiroku f86d88a7b9 Update zh_cn.json based off draft version by mask868 2023-02-18 08:15:23 +00:00
Village eac4afb1c4 standardize texture resolutions 2023-02-17 11:06:49 -05:00
Licious17 c94e176b06 Label render position offset fix 2023-02-17 12:19:51 +00:00
Paul 009a5c554b Added held item support to spawning 2023-02-17 14:43:40 +10:00
Hiroku 6829b65f5e Merge branch 'gastly-particles' into 'main'
Added Gastly animations and particle effects, fixed various particle issues

See merge request cable-mc/cobblemon!307
2023-02-17 01:27:49 +00:00
Hiroku 1ea27c6c4c Added Gastly animations and particle effects, fixed various particle issues 2023-02-17 01:27:49 +00:00
Hiroku 36e0fb8ca0 Merge branch 'milky-pokemon-implementation' into 'main'
Implemented honedge

See merge request cable-mc/cobblemon!301
2023-02-17 00:55:47 +00:00
EmmettandHiroku 690615b39b Implemented honedge 2023-02-17 00:55:46 +00:00
Hiroku b31352e229 Merge branch 'Pokemon-Implementation' into 'main'
Implemented Spiritomb

See merge request cable-mc/cobblemon!300
2023-02-17 00:24:13 +00:00
XylopiaandHiroku c08e683e32 Implemented Spiritomb 2023-02-17 00:24:13 +00:00
Hiroku 4a7ef9170d Merge branch 'Implementing-many-sleep-animations' into 'main'
Implementing many sleep animations

See merge request cable-mc/cobblemon!308
2023-02-16 14:00:08 +00:00
JMMCPandHiroku d0d5db4327 Implementing many sleep animations 2023-02-16 14:00:07 +00:00
Hiroku 328c682b08 Merge branch 'evo-notify' into 'main'
Evolution Notification Sounds

Closes #105

See merge request cable-mc/cobblemon!231
2023-02-16 13:48:00 +00:00
Paul 83024e9451 Removed unused can_evolve.ogg 2023-02-16 23:13:13 +10:00
Hiroku 59339775ac Merge branch 'carry-on-disable' into 'main'
Disable Carry On mod interaction

See merge request cable-mc/cobblemon!304
2023-02-16 13:03:32 +00:00
LiciousandHiroku c4b7fad8e8 Disable Carry On mod interaction 2023-02-16 13:03:31 +00:00
Hiroku f289c7945b Merge branch 'apricorn-harvest-changes' into 'main'
Apricorn harvest changes

See merge request cable-mc/cobblemon!305
2023-02-16 13:02:41 +00:00
LiciousandHiroku d7b29c6938 Apricorn harvest changes 2023-02-16 13:02:41 +00:00
Paul 08e94d23ea Fixed turn number declaration not being a lang line 2023-02-16 23:01:19 +10:00
Licious 0f59920a3f Merge branch 'Added-Belly-Drum-Message' into 'main'
Added an instruction for -setboost messages in battle (used for Belly Drum)...

See merge request cable-mc/cobblemon!299
2023-02-16 09:49:47 +00:00
RenaissanceandLicious 2f58fc530f Added an instruction for -setboost messages in battle (used for Belly Drum)... 2023-02-16 09:49:47 +00:00
Hiroku e64294a71a Merge branch 'showdown-update-fix' into 'main'
Fix showdown updating failing due to moved target directory, rewrite some of the loading logic

See merge request cable-mc/cobblemon!306
2023-02-16 02:47:39 +00:00
NickandHiroku 8512c13e6d Fix showdown updating failing due to moved target directory, rewrite some of the loading logic 2023-02-16 02:47:39 +00:00
Licious17 1759249a89 Fix processResources task on forge 2023-02-15 17:10:13 +00:00
Hiroku 4b4534aea1 Merge branch 'zero_breaker000-zh_cn' into 'main'
Update zh_cn.json

See merge request cable-mc/cobblemon!303
2023-02-15 14:16:03 +00:00
Zero BreakerandHiroku 63bd6d8d08 Update zh_cn.json 2023-02-15 14:16:03 +00:00
Licious17 6e83f9f7be Licenses 2023-02-15 13:37:39 +00:00
Licious17 50ac79281a Finished Forge implementation. 2023-02-15 13:37:15 +00:00
Licious17 4b9071d183 Finished all platform abstract stuff, finished Fabric implementation. 2023-02-15 11:54:16 +00:00
Emmett de Bruin 2ea661a6ea Implemented honedge 2023-02-14 21:44:23 -08:00
Hiroku 6d931c6a8a Merge branch 'pokemon-particles' into 'main'
Particle keyframe support for Bedrock animations

See merge request cable-mc/cobblemon!298
2023-02-14 12:44:33 +00:00
Hiroku ad71a445ba Particle keyframe support for Bedrock animations 2023-02-14 12:44:32 +00:00
Hiroku a77d74c352 Merge branch 'Fixed-Crashes-with-empty-party-summaries' into 'main'
Fixed crashes involving opening the Pokémon summary with an empty party.

See merge request cable-mc/cobblemon!297
2023-02-12 23:50:27 +00:00
Hiroku bda35d6bbd Merge branch 'label-render-fix' into 'main'
Fix Pokémon label constantly rendering

See merge request cable-mc/cobblemon!296
2023-02-12 23:50:00 +00:00
LiciousandHiroku 8852752c07 Fix Pokémon label constantly rendering 2023-02-12 23:50:00 +00:00
Licious17 76a04a0df9 Remove ArgumentTypesMixin and implement platform specific registration 2023-02-12 22:32:56 +00:00
Licious17 e2506f95a6 Implement worldgen feature registration 2023-02-12 21:03:53 +00:00
jmmcp 788009e14a Fixed crashes involving opening the Pokémon summary with an empty party. 2023-02-12 14:37:46 -05:00
Licious17 f3ad759c25 Implement worldgen feature registration 2023-02-12 15:43:39 +00:00
Licious17 0785ce1c71 Implement sound event registration, add stripped block functionality to apricorn logs 2023-02-12 15:25:14 +00:00
Licious17 805fe12600 Implement block entity registration 2023-02-12 13:29:37 +00:00
Licious17 26182bdf10 Remove leftover code 2023-02-12 13:07:46 +00:00
Licious17 14d71200ec Implemented Entity types registration. 2023-02-12 13:07:18 +00:00
Paul 296c618377 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	CHANGELOG.md
2023-02-12 18:48:40 +10:00
Hiroku 47fa5bda68 Merge branch 'showdown-priority' into 'main'
Showdown Launch Priority

See merge request cable-mc/cobblemon!295
2023-02-12 08:47:50 +00:00
NickandHiroku a0e18a6037 Showdown Launch Priority 2023-02-12 08:47:50 +00:00
Paul 2522a87a22 Merge remote-tracking branch 'origin/main' 2023-02-12 17:22:05 +10:00
Paul 99db2e8f24 Fixed Showdown insertions happening exactly as many times as you've joined a world in this session 2023-02-12 17:21:05 +10:00
Paul 6a53bb2ecb Fixed soft-dupe from boats and other vehicles 2023-02-12 17:19:50 +10:00
Hiroku e40ff82366 Merge branch 'Truly_Fixed_Pokemon_in_Trees' into 'main'
Fixed Pokemon spawning in trees

See merge request cable-mc/cobblemon!294
2023-02-12 05:29:27 +00:00
jmmcp bec0d11fcb Fixed Pokemon spawning in trees 2023-02-12 00:13:45 -05:00
Hiroku 0d9f49af52 Merge branch 'pikachu_fix' into 'main'
Fixed Pikachu's animation.

See merge request cable-mc/cobblemon!293
2023-02-12 00:52:28 +00:00
TyzillionandHiroku b6c6cd855c Fixed Pikachu's animation. 2023-02-12 00:52:28 +00:00
Licious17 150e6685ef Implemented item and block registration, fixed Forge mods.toml requiring 1.19.2 instead of 1.19.3 2023-02-11 23:31:02 +00:00
MoeBoy76 f15d4ae709 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into evo-notify
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/api/pokemon/evolution/Evolution.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/pokemon/evolution/controller/ServerEvolutionController.kt
#	common/src/main/resources/assets/cobblemon/sounds.json
2023-02-12 07:56:24 +11:00
MoeBoy76 76738cfd26 Updated sounds 2023-02-12 07:46:09 +11:00
Hiroku ef60725cfa Merge branch 'locators' into 'main'
Added locators support to Bedrock models

See merge request cable-mc/cobblemon!292
2023-02-11 02:17:42 +00:00
Hiroku 639571f139 Added locators support to Bedrock models 2023-02-11 02:17:42 +00:00
Hiroku 94b14c6c36 Merge branch 'we-were-too-hasty' into 'main'
Bad Blinks Disabled and Invalid Animation Handling

See merge request cable-mc/cobblemon!291
2023-02-10 03:31:23 +00:00
NickandHiroku 3fdd9fcb3c Bad Blinks Disabled and Invalid Animation Handling 2023-02-10 03:31:23 +00:00
Paul 16bc02528e Fixed shiny Gyarados not using the shiny texture 2023-02-10 10:49:57 +10:00
Hiroku e742f8f4ab Merge branch 'snowstorm-particles' into 'main'
Snowstorm particles

See merge request cable-mc/cobblemon!274
2023-02-09 23:57:36 +00:00
Paul 40dfe91f18 Updated licenses 2023-02-10 09:28:42 +10:00
Paul 6a9632731c Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
2023-02-10 09:23:29 +10:00
Hiroku 1a12cd7fb7 Merge branch 'pokemon-label-changes' into 'main'
Pokemon entity display name changes

See merge request cable-mc/cobblemon!287
2023-02-09 23:22:40 +00:00
Hiroku 43d5be4825 Merge branch 'Create-Dripstone-Fix' into 'main'
Fix our dripstone mixin being broken by Create's overwrite

See merge request cable-mc/cobblemon!290
2023-02-09 23:21:13 +00:00
NickandHiroku 2ffe69cae2 Fix our dripstone mixin being broken by Create's overwrite 2023-02-09 23:21:13 +00:00
Hiroku 7b07ffdb7f Merge branch 'no-wheat-allowed' into 'main'
No more breeding

See merge request cable-mc/cobblemon!289
2023-02-09 23:17:59 +00:00
Hiroku 30a658e54d Merge branch 'species-encode-decode-fix' into 'main'
Species encoding/decoding fixes

See merge request cable-mc/cobblemon!288
2023-02-09 23:17:42 +00:00
Licious17 aed8e08a0c No more breeding 2023-02-09 17:35:26 +00:00
Licious17 c0302a69c1 Fix up stuff 2023-02-09 17:27:06 +00:00
Licious17 b69a09c5ab Touch up inconsistencies in the entity display name implementation to better suit our needs and keep expected compatibility with other mods 2023-02-09 17:21:00 +00:00
Hiroku 1f84f38f6c Merge branch 'command-block-support' into 'main'
Pokespawn non player CommandExecutor support

See merge request cable-mc/cobblemon!283
2023-02-09 11:45:37 +00:00
Licious a22f427988 Merge branch 'main' into 'command-block-support'
# Conflicts:
#   CHANGELOG.md
2023-02-09 11:11:56 +00:00
Hiroku 17490019b1 Merge branch 'pokeheal-in-battle-fix' into 'main'
Fix Pokeheal in battle and switching into fainted party members

See merge request cable-mc/cobblemon!285
2023-02-09 11:09:24 +00:00
Hiroku 510ddd5850 Merge branch 'Fixed-Drastic-Stat-Bonuses' into 'main'
Updated the getSeverity method to have a fallback for any boost above 3

See merge request cable-mc/cobblemon!286
2023-02-09 11:00:39 +00:00
Hiroku d061e3fa60 Merge branch 'main' into 'Fixed-Drastic-Stat-Bonuses'
# Conflicts:
#   CHANGELOG.md
2023-02-09 10:29:51 +00:00
nlingebretson ed43a0a414 Updated the getSeverity method to have a fallback for any boost above 3 i.e. having the ability Simple or if custom moves were to be added 2023-02-08 18:53:44 -06:00
nlingebretson 17c917b4eb Updated the getSeverity method to have a fallback for any boost above 3 i.e. having the ability Simple or if custom moves were to be added 2023-02-08 18:47:23 -06:00
Licious bf48b04efe Merge branch 'main' into 'command-block-support'
# Conflicts:
#   CHANGELOG.md
2023-02-08 21:59:42 +00:00
Licious ea48eefc9f Merge branch 'main' into 'pokeheal-in-battle-fix'
# Conflicts:
#   CHANGELOG.md
2023-02-08 21:58:57 +00:00
Hiroku a91cabab11 Merge branch 'fix-experience-load' into 'main'
Fix Pokemon experience loading

See merge request cable-mc/cobblemon!284
2023-02-08 21:35:26 +00:00
Licious17 e98dc35224 Fix & changelog 2023-02-08 16:33:07 +00:00
Licious17 1e9e17d32c Fix & changelog 2023-02-08 16:02:29 +00:00
Licious17 d4958c362f Changelog 2023-02-08 15:34:21 +00:00
Licious17 84a0a504f2 Add compatibility with any command source for the pokemon spawn command, add secondary command for specific spawn coordinates 2023-02-08 15:31:52 +00:00
Hiroku a16e5ea8b7 Merge branch 'move-sourced-healing-display-fix' into 'main'
Fix heal related battle action interpretation

See merge request cable-mc/cobblemon!282
2023-02-08 12:23:36 +00:00
Licious17 8f145b8565 Merge branch 'main' into move-sourced-healing-display-fix
# Conflicts:
#	CHANGELOG.md
2023-02-08 12:09:53 +00:00
Licious17 8fce820e22 Disable battle dev logging 2023-02-08 12:07:25 +00:00
Licious17 b82f9ec790 Wrap exceptions in interpreter to prevent ctd 2023-02-08 12:03:40 +00:00
Licious17 01b424994c Added interpretation for -sethp battle action 2023-02-08 11:55:25 +00:00
Hiroku a11ce41e11 Merge branch 'blink_implementation' into 'main'
Added blink animations to many Pokemon.

See merge request cable-mc/cobblemon!281
2023-02-08 11:16:53 +00:00
Paul 36f8b695c1 Update Showdown for fix of wrong gen of scripts being used (ground hitting flying) 2023-02-08 21:14:51 +10:00
Licious17 c021b76700 Fix crash with fieldstart interpretation, added fieldend interpretation and other interpretations connected to field effects. 2023-02-08 10:48:26 +00:00
tyzillion 8765a8a5e5 Added blink animations to the rest of the Pokemon that Bro had made and gave those Pokemon the blink quirk. 2023-02-07 18:10:14 -05:00
tyzillion 87fa04c6b3 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into blink_implementation
# Conflicts:
#	common/src/main/resources/data/cobblemon/species/generation4/grotle.json
#	common/src/main/resources/data/cobblemon/species/generation4/torterra.json
2023-02-07 12:09:48 -05:00
Paul 4faf75a763 Merge remote-tracking branch 'origin/main' into spawn-event 2023-02-07 23:35:13 +10:00
Hiroku d997e03829 Merge branch 'Impemented-more-pokemon' into 'main'
Implemented Pokemon

See merge request cable-mc/cobblemon!279
2023-02-07 13:33:24 +00:00
Paul 4ef0b4ea85 Merge remote-tracking branch 'origin/main' into Impemented-more-pokemon
# Conflicts:
#	CHANGELOG.md
2023-02-07 22:49:49 +10:00
Paul ada2cb77c3 I really do always forget the license 2023-02-07 22:46:24 +10:00
Paul 50acc65b64 Added spawn event and check spawn condition for Pokemon, allowing Magnum Torch (fabric) to work 2023-02-07 22:05:06 +10:00
Hiroku bf2ecb3080 Merge branch 'Fixed_Pokemon_not_spawning_on_snow_and_others' into 'main'
Fixed issues with Pokémon not spawning on blocks such as snow layers

See merge request cable-mc/cobblemon!280
2023-02-07 12:01:37 +00:00
jmmcp 566dbb0e33 Fixed issues with Pokémon not spawning in blocks such as snow layers, as well as Pokémon spawning inside of trees. 2023-02-07 01:30:43 -05:00
Test 168e40034d Merge branch 'animated-textures' into 'main'
Added animated textures

Closes #6

See merge request cable-mc/cobblemon!278
2023-02-07 04:24:32 +00:00
Xylopia 554914fc30 Added in Galvantula, and updated Joltik's resource files 2023-02-06 22:12:30 -05:00
tyzillion cfd1e234dc Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into blink_implementation 2023-02-06 18:57:59 -05:00
tyzillion 374ab5f40c Fixed aerodactyls frame, framed all new Pokemon added by Xylopia, added saturation shoulder effect, allowed Alcremie and Milcery to shoulder. No effect, for now. 2023-02-06 18:30:05 -05:00
Licious17 ebb92d4771 Finish healing lang 2023-02-06 21:51:00 +00:00
tyzillion a179ca4091 Merge remote-tracking branch 'origin/Impemented-more-pokemon' into Impemented-more-pokemon 2023-02-06 16:25:53 -05:00
Licious17 1d01f3fffe Licenses 2023-02-06 20:38:54 +00:00
Licious17 7644b49a32 Implement lang for some healing sources. 2023-02-06 20:38:08 +00:00
tyzillion 673cbffbbe Merge remote-tracking branch 'origin/Impemented-more-pokemon' into Impemented-more-pokemon
# Conflicts:
#	CHANGELOG.md
2023-02-06 12:44:38 -05:00
Licious17 71e1462897 Implement heal instruction, update hp values networking to prevent cheating 2023-02-06 15:38:22 +00:00
Xylopia e97f7cecd7 Forgot to add Turtwig, Grotle, and Torterra to the Changelog 2023-02-06 07:17:29 -05:00
Xylopia 2ec4fd8aeb Fixed Missing Copyright in Grotle, Torterra, and Turtwig 2023-02-06 07:16:39 -05:00
Xylopia 25ba62eb31 Implemented Joltik
Added New Haste and Water Breathing effects
Changed HitBoxes and Size definitions for Dhelmise
Updated Changelog
2023-02-06 06:54:34 -05:00
Paul d5888935b3 Merge remote-tracking branch 'origin/main' into snowstorm-particles 2023-02-06 17:28:14 +10:00
Paul 553a633451 Cleared some redundant comments 2023-02-06 17:28:06 +10:00
Paul 0b7719946e Added animated textures 2023-02-06 17:02:55 +10:00
Xylopia fa94d60505 Added Shiinotic and Morelull, aswell as adjusted sizes and hitboxes for pokemon, and decluttered the 'PokemonModelReposity.kt' by replacing all the individually imported mons with just importing their gen file and calling all of the files within. 2023-02-05 23:43:49 -05:00
tyzillion dc4a9d9392 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into Impemented-more-pokemon 2023-02-05 23:26:59 -05:00
tyzillion c1e51ffd72 Merge branch 'Impemented-more-pokemon' of https://gitlab.com/cable-mc/cobblemon into Impemented-more-pokemon 2023-02-05 23:26:24 -05:00
tyzillion 711901cda2 Added blink animations to all Pokemon that had blink animations available.
Implemented blink quirks to all gen 1 Pokemon that had blink animations.
2023-02-05 23:24:52 -05:00
Paul c4137d179a Fixed PokemonProperties[random] not using the implemented flag 2023-02-06 14:03:07 +10:00
Hiroku 1441d870b6 Merge branch '#138-pokeballs-midair' into 'main'
Pokeballs Falling Forever

See merge request cable-mc/cobblemon!277
2023-02-06 04:01:59 +00:00
Xylopia f962cde3a9 Changed branch name cause the misstype was finnaly getting to me
Added the Klink line and it's animations
Fixed hitboxes for newly added pokemon aswell as scaling where it was needed.
2023-02-05 22:09:46 -05:00
Xylopia 91fa0fb73e fixed push issue of xerneas missing from 'PokemonModelReposity' 2023-02-05 20:27:39 -05:00
jmmcp 48b5999337 Fixed issues with Pokeballs falling forever 2023-02-05 20:20:20 -05:00
jmmcp 39e03173e0 Fixed issues with Pokeballs falling forever 2023-02-05 20:06:59 -05:00
tyzillion febac0bec6 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into Impemented-more-pokemon 2023-02-05 14:44:05 -05:00
Test 4fcc2c386e Merge branch 'healer-single-charge' into 'main'
Disable healer consuming charge after the first full charge

Closes #139

See merge request cable-mc/cobblemon!276
2023-02-05 15:59:56 +00:00
LiciousandTest d5b71cd4ab Disable healer consuming charge after the first full charge 2023-02-05 15:59:56 +00:00
Test dca38c3ad3 Merge branch 'friendship-reset-fix' into 'main'
Fix friendship being capped to the max level defined in config instead of friendship value between Pokémon loads

Closes #136

See merge request cable-mc/cobblemon!275
2023-02-05 15:46:44 +00:00
LiciousandTest 7c084aeca2 Fix friendship being capped to the max level defined in config instead of friendship value between Pokémon loads 2023-02-05 15:46:43 +00:00
Licious17 867cf0faab Fix client side evolution display. 2023-02-05 13:55:52 +00:00
Licious17 42ab6ce174 Fix Grotle evolutions, add item tag to API class, move up feature related data registries loading, fixed SpeciesFeatureAssignments not firing their observable. 2023-02-05 13:43:09 +00:00
Paul 59efce5e55 License update 2023-02-05 22:23:14 +10:00
tyzillion f924034fab Implemented Turtwig, Grotle, and Torterra. As well as all of Torterra's Minecraft tree forms. 2023-02-05 07:13:04 -05:00
Paul 0ec23d65b3 Fixed blits being all black because of the wrong shader program being used 2023-02-05 22:08:03 +10:00
Paul 849ab32c5d Fixed party overlay not rendering 2023-02-05 21:55:59 +10:00
Paul 9fcb767743 CI fixes 2023-02-05 19:28:53 +10:00
Paul 9a4beb597f Update copyright 2023-02-05 19:23:57 +10:00
Paul 8309c60154 Resolve merge conflict issues 2023-02-05 19:20:49 +10:00
Paul 01a82c5e74 Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
#	common/build.gradle.kts
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
2023-02-05 19:17:04 +10:00
Paul ed55dd21af Final fixes to particles, updated copyright to 2023 2023-02-05 19:02:37 +10:00
tyzillion 96be99880c Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into Impemented-more-pokemon 2023-02-05 01:53:40 -05:00
tyzillion 9099781c86 Added Milcery and Alcremie. Added Alcremie forms. 2023-02-05 00:53:50 -05:00
tyzillion 9065420d61 Added Milcery and Alcremie. Added Alcremie forms. 2023-02-05 00:52:14 -05:00
Xylopia 9c4accaa55 Added Copyright to xerneas 2023-02-04 23:54:01 -05:00
Xylopia 596ddd0391 went ahead and added the copyright to the models, aswell as implemented Naclstack.
Added Xerneas, and updated some models to have blinking animations.
2023-02-04 23:19:26 -05:00
Hiroku 2de7076156 Merge branch 'more-Langed-moves' into 'main'
more-move-lang

See merge request cable-mc/cobblemon!266
2023-02-05 03:07:27 +00:00
Hiroku 93895a5e1a Merge branch 'framed-pokemon' into 'main'
Fixed ui frames for all pokemon currently modeled in game.

See merge request cable-mc/cobblemon!273
2023-02-05 02:55:06 +00:00
tyzillion 09c38b71b5 Fixed Frames for Abra, Beedrill, Bellsprout,and Magikarp. Fixed Frames for current Pokemon from gen 2,3,4,5,6,7,8. 2023-02-04 20:30:54 -05:00
Xylopia 3767d3f770 went ahead and added the copyright to the models, aswell as implemented Naclstack. 2023-02-04 20:27:54 -05:00
Village 97e4fd55f5 update type icons 2023-02-04 19:05:07 -05:00
jmmcp 0368c79a28 Updated type icons 2023-02-04 18:19:48 -05:00
Licious17 29f1319834 Fix compile errors in models 2023-02-04 09:13:41 +00:00
Hiroku 35ed67be98 Merge branch 'modding' into 'main'
Restructure publishing logic, provide forge/fabric modules for debugging

See merge request cable-mc/cobblemon!271
2023-02-04 08:28:05 +00:00
NickandHiroku 3991a52f3e Restructure publishing logic, provide forge/fabric modules for debugging 2023-02-04 08:28:05 +00:00
Hiroku acd04e6451 Merge branch 'framed-pokemon' into 'main'
Framed Gen 1 Pokemon

See merge request cable-mc/cobblemon!272
2023-02-04 08:13:55 +00:00
Tyler Astry f0afeb6647 Framed Gen 1 Pokemon 2023-02-04 08:04:20 +00:00
Paul d2a38ca33c Added quirks to Json posers 2023-02-04 12:01:38 +10:00
Hiroku 150e132ad6 Merge branch 'pc-fix' into 'main'
Various things

See merge request cable-mc/cobblemon!268
2023-02-03 11:19:36 +00:00
TestandHiroku b81e262998 Various things 2023-02-03 11:19:36 +00:00
Hiroku 93a5c81aa0 Merge branch 'item-interaction-fix' into 'main'
Fix experience candies interactions

See merge request cable-mc/cobblemon!269
2023-02-03 11:16:28 +00:00
Hiroku 9eec02cd23 Merge branch 'fix-label-display' into 'main'
Fix label rendering

See merge request cable-mc/cobblemon!270
2023-02-03 11:15:29 +00:00
Licious17 e4e209437d Fix label rendering 2023-02-03 10:40:46 +00:00
Licious17 f8bfb5ad4d Fix experience group deserialization 2023-02-03 10:31:10 +00:00
Xylopia eb91dc7eed went ahead and added the copyright to the models, aswell as implemented Naclstack. 2023-02-02 22:03:02 -05:00
Xylopia 76fad53bbf Implemented the start of Sprigatito, Fuecoco, and Quaxly
Fully Implemented Nacli with its animations and emissive textures.
2023-02-02 21:18:08 -05:00
Paul 13e3ba28a0 Fixed held items in survival mode 2023-02-03 11:34:35 +10:00
Paul ee01de09e7 Removed broken AT 2023-02-03 10:39:39 +10:00
Licious17 f710c5ceb5 Fixed cobblemon:apricorn_trees placed feature JSON 2023-02-02 19:55:13 +00:00
Licious17 fe81edca50 Fixed cobblemon:apricorn_trees configured feature JSON 2023-02-02 19:32:07 +00:00
Licious17 650303de58 Port Quaternion#fromEulerXyzDegrees functionality 2023-02-02 19:03:22 +00:00
Licious17 c76c577b91 Update Pokemon label rendering 2023-02-02 16:46:18 +00:00
Licious17 eb95595af0 Fix implementations trying to access changed texture directories 2023-02-02 16:36:31 +00:00
Licious17 137d082e1a Update UI assets to match Minecraft standards 2023-02-02 16:30:03 +00:00
Licious17 ceb9fd0cf6 Fix item and block texture rendering 2023-02-02 16:15:23 +00:00
Licious17 fce087979a Added all features, game boots 2023-02-02 15:57:22 +00:00
Licious17 939ce328b9 Update item creative tabs 2023-02-01 23:41:31 +00:00
Licious17 d86366a04a Add in evolution ore feature JSON, update internal access 2023-02-01 23:22:06 +00:00
Licious17 7234dc0788 Merge branch 'main' into 1.19.3
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonBlocks.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/world/feature/ApricornTreeFeature.kt
2023-02-01 22:21:40 +00:00
Licious17 851591de3f Fix some evolution requirements in data. 2023-02-01 20:09:34 +00:00
Xylopia f5b10c8cb6 Fully implemented Charcadet, missing some basic animation atm however, it requires a proper idle and walking animation, however it's blinking animation does work.
pidgey animation updated to including it's blinking animation.
Note for others - This is simply so others can see what i've done, i shall not make a merge request untill i update alot more models (cause this is super easy for me todo)
2023-02-01 05:45:57 -05:00
Xylopia edba5a6633 Began the initial process of learning the implementation, needed to sync to a branch to get inteliJ to stop yelling at me 2023-02-01 04:43:59 -05:00
Hiroku 98c4baad5e Merge branch 'main' into 'more-Langed-moves'
# Conflicts:
#   CHANGELOG.md
2023-02-01 09:28:23 +00:00
Xylopia ca66fc3fc2 updated changelog and fixed my acedently push of the edited 'pokemonbattle.kt' which allows the viewage of non langed moves 2023-02-01 03:49:52 -05:00
Xylopia 5efefe9ceb Change the interpretation a little and added an else fallback, can't figure out that 'battlemessage' will need assistance 2023-02-01 03:46:32 -05:00
Paul d2b9949b29 Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
#	common/src/main/kotlin/com/cobblemon/mod/common/Cobblemon.kt
2023-02-01 08:31:08 +10:00
Paul 17c6608203 Pretty much completed Snowstorm particle implementation 2023-02-01 08:30:12 +10:00
Hiroku b8c287e48f Merge branch 'moveset-init' into 'main'
Moveset initialization fix

Closes #135

See merge request cable-mc/cobblemon!267
2023-01-31 21:41:16 +00:00
Licious17 c5c448a5ed Update changelog 2023-01-31 16:10:52 +00:00
Licious17 1cd2254958 Fix lack of moveset initialization on PokemonProperties#create 2023-01-31 16:06:38 +00:00
Hiroku d0feab0830 Merge branch 'catch-rate-fix' into 'main'
Capture Calculator improvements

See merge request cable-mc/cobblemon!262
2023-01-31 13:18:19 +00:00
LiciousandHiroku 922a1420e2 Capture Calculator improvements 2023-01-31 13:18:19 +00:00
Xylopia 321ccacdb3 Added Interpretation for 'FieldStart' and Interpretation of abilities that activate while in battle, also added lang for some field moves and 'speed boost' in for the battle 'ability' 2023-01-31 03:03:01 -05:00
Hiroku 61a84eb039 Merge branch 'custom-pokemon-battle-fix' into 'main'
Custom Pokémon Showdown conversion fix

See merge request cable-mc/cobblemon!265
2023-01-30 21:39:57 +00:00
LiciousandHiroku 224d2b38b7 Custom Pokémon Showdown conversion fix 2023-01-30 21:39:56 +00:00
Hiroku 059dc4ce95 Merge branch 'pokemon-entity-display-fix' into 'main'
PokemonEntity names fix.

See merge request cable-mc/cobblemon!263
2023-01-30 13:12:09 +00:00
Hiroku d846ad6545 Merge branch 'pokedex-entry-fix' into 'main'
Fix pokedex entries

See merge request cable-mc/cobblemon!264
2023-01-30 13:05:06 +00:00
Licious17 bb68cea310 Fix pokedex entries 2023-01-30 12:28:25 +00:00
Licious17 3882b26d93 Fix display name of the Pokémon entity 2023-01-30 11:46:50 +00:00
Hiroku 41906f6b1c Merge branch 'species-data-appending' into 'main'
Species data appending

See merge request cable-mc/cobblemon!254
2023-01-29 11:03:09 +00:00
Licious17 1e862be75a Update standard form automatic assignment to work with new form IDs 2023-01-29 10:37:36 +00:00
Licious17 117048ea37 Merge branch 'main' into species-data-appending
# Conflicts:
#	CHANGELOG.md
2023-01-29 10:35:58 +00:00
Hiroku 30cf97e2fe Merge branch 'bind-lang' into 'main'
bide-lang

See merge request cable-mc/cobblemon!261
2023-01-29 09:40:47 +00:00
Xylopia a4e7b53d71 text fix 2023-01-28 23:59:47 -05:00
Xylopia 071b797e51 text fix 2023-01-28 23:52:01 -05:00
Xylopia b15decd5c5 bide lang interprited 2023-01-28 23:46:58 -05:00
Hiroku a584db1445 Merge branch 'gen9-data-prep' into 'main'
Generation 9 data

See merge request cable-mc/cobblemon!260
2023-01-29 02:08:01 +00:00
Licious17 936c95e188 Updated changelog 2023-01-28 17:36:31 +00:00
Licious17 00ca1dcbab Updated data to accommodate for Species.name and FormData.name changes. 2023-01-28 17:21:15 +00:00
Licious17 fe016f4ffa Implement ShowdownIdentifiable and redo usages of Species.name and FormData.name to use it instead. 2023-01-28 17:09:34 +00:00
Licious17 10ff034801 Remove unnecessary check. 2023-01-28 12:48:00 +00:00
Licious17 50eda62025 Implement WalkedStepsRequirement. 2023-01-28 12:46:54 +00:00
Licious17 fab6aed2d5 Implement DefeatRequirement and DefeatEvolutionProgress. 2023-01-28 12:09:34 +00:00
Licious17 41bb92d4d4 Updated DamageTakenRequirement. 2023-01-28 11:57:18 +00:00
Licious17 d00bdc3d21 Updated UseMoveRequirement. 2023-01-28 11:29:16 +00:00
Licious17 d72801facc Updated BattleCriticalHitsRequirement. 2023-01-28 11:14:13 +00:00
Licious17 65dbb4baca Implement EvolutionProgress system, add RecoilRequirement. 2023-01-28 11:00:56 +00:00
Licious17 5977827b06 Revert MoveTarget changes. 2023-01-28 00:05:25 +00:00
Licious17 466567eec1 Add lang for species names, abilities and moves for all new data and update existing entries. 2023-01-27 22:30:21 +00:00
Licious17 363dcd31c5 Remove invalid japanese with kanji lang. 2023-01-27 21:41:49 +00:00
Licious17 3d3ffe3c10 Fix issue due to inconsistency in showdown data structure. 2023-01-27 15:03:33 +00:00
Licious17 85b17bb8ff Add effect chances to moves. 2023-01-27 14:46:13 +00:00
Licious17 ed14ddb4a3 Updated CobblemonPokemonLabels documentation to better reflect the usage of the generation label. 2023-01-27 14:14:13 +00:00
Licious17 17bd787d9f Remake Moves registry to dynamically take values from Showdown. 2023-01-27 13:46:19 +00:00
Licious17 a19fb83337 Various species data fixes to use showdown IDs correctly. 2023-01-27 12:56:53 +00:00
Licious17 34023187ef Remake Abilities registry to dynamically take values from Showdown. 2023-01-27 12:49:31 +00:00
Licious17 cb4e4ee071 Fix Basculin having typo aspects. 2023-01-27 12:09:07 +00:00
Licious17 859c041a6c Add in penguin lost to the war. 2023-01-27 00:34:16 +00:00
Licious17 e212c113c5 Added generation 9 Pokémon species data, updated generation 1 to 8 Pokémon species data 2023-01-27 00:29:53 +00:00
Licious17 df9852fcc5 Added species features for hisuian Basculin, paldean forms, and paldean Tauros breeds 2023-01-25 12:58:35 +00:00
Licious17 3d383151be Implement MoonPhaseRequirement 2023-01-25 12:08:06 +00:00
Licious17 8304009c47 Implement the necessary stuff for UseMoveCountRequirement. 2023-01-25 11:53:57 +00:00
Licious17 44947814ba Fix GlobalSpeciesFeatures#getCodeFeature and GlobalSpeciesFeatures#getResourceFeature accessing the opposite mapping. 2023-01-25 10:06:14 +00:00
Licious17 8747f46f5e Implement Evolution#consumeHeldItem 2023-01-25 09:36:02 +00:00
Licious17 370c08fa31 Updated HeldItemRequirement to function as intended. 2023-01-25 09:34:43 +00:00
Licious17 e3732ef15f Updated Pokémon labels. 2023-01-25 09:22:28 +00:00
Hiroku 0c651cc4f0 Merge branch 'Pancakes0228-main-patch-60421' into 'main'
Update zh_tw

See merge request cable-mc/cobblemon!259
2023-01-25 09:08:11 +00:00
李 煎餅 e08cfc493f Update zh_tw.json 2023-01-24 19:55:08 +00:00
李 煎餅 21035fa445 Delete zh_tw.json 2023-01-24 19:51:51 +00:00
李 煎餅 2de7f98190 Update zh_tw 2023-01-24 19:48:56 +00:00
Hiroku d497a72088 Merge branch 'exp-gain-fix' into 'main'
Experience gain fix

See merge request cable-mc/cobblemon!258
2023-01-22 11:44:54 +00:00
Licious17 453e31931f Fixed every Pokémon gaining experience at the end of a battle. 2023-01-22 11:17:55 +00:00
Hiroku 46dc76e6a2 Merge branch 'exordium-fix' into 'main'
Fix incompatibilty with Exordium

See merge request cable-mc/cobblemon!257
2023-01-22 00:09:36 +00:00
Licious17 91923f3ba7 Fix incompat with Exordium 2023-01-21 13:36:10 +00:00
Paul 8907f0f091 Fixed forms displaying incorrectly on servers 2023-01-21 10:46:32 +10:00
Paul e58b0e8347 A lot more Snowstorm stuff 2023-01-21 10:41:00 +10:00
Hiroku 689da5bd5c Merge branch 'machines' into 'main'
Machines

See merge request cable-mc/cobblemon!256
2023-01-20 01:56:16 +00:00
TestandHiroku 948ffbc404 Machines 2023-01-20 01:56:16 +00:00
Paul 196cae58dd Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
#	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/bedrock/animation/BedrockAnimation.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/util/math/SimpleMathExtensions.kt
2023-01-16 18:16:17 +10:00
Paul 9a4ed01c7a Started the 1.19.3 port, TODO: itemgroups, placed features 2023-01-16 18:09:16 +10:00
Hiroku a1bba3cb61 Merge branch 'pokeedit-other-fix' into 'main'
Pokeedit other fix

See merge request cable-mc/cobblemon!255
2023-01-15 13:25:12 +00:00
Licious17 deb9088d94 Changelog update 2023-01-15 13:01:34 +00:00
Licious17 0b7e671527 Update to use PartySlotArgumentType#getPokemonOf 2023-01-15 13:00:27 +00:00
Licious17 3349bc81be Merge branch 'main' into pokeedit-other-fix 2023-01-15 12:59:45 +00:00
Licious17 9b113a4a3e Changelog update 2023-01-15 12:55:19 +00:00
Licious17 de81a0b165 Merge branch 'main' into species-data-appending
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/api/pokemon/PokemonSpecies.kt
2023-01-15 12:23:17 +00:00
Hiroku 35a1e57bd9 Merge branch 'gen9-battles' into 'main'
Gen9 battles

See merge request cable-mc/cobblemon!252
2023-01-15 09:24:35 +00:00
Test 22d33a23a5 Merge branch 'party-item' into 'main'
Party item

See merge request cable-mc/cobblemon!253
2023-01-15 09:07:11 +00:00
HirokuandTest 026af46945 Party item 2023-01-15 09:07:11 +00:00
Paul 741b4afe8a Merge remote-tracking branch 'origin/main' into gen9-battles 2023-01-15 13:57:07 +10:00
Paul f006880586 Added gen9 moves and abilities 2023-01-15 13:56:51 +10:00
Hiroku dacb0c920a Merge branch 'pokelabel-&-remap' into 'main'
Viewbobbing fix, Remap extension functions, potential camera rotation query.

See merge request cable-mc/cobblemon!245
2023-01-15 02:24:30 +00:00
Hiroku d5579fb75c Merge branch 'pokeball-tag-fixes' into 'main'
Pokéball tag fixes

See merge request cable-mc/cobblemon!251
2023-01-15 01:55:07 +00:00
Paul 161263846d Merge conflict resolution 2023-01-15 10:08:37 +10:00
Paul b32f13cdbf Merge remote-tracking branch 'origin/main' into pokeball-tag-fixes
# Conflicts:
#	CHANGELOG.md
2023-01-15 10:08:20 +10:00
Hiroku fd200e2400 Merge branch 'pokemon-items' into 'main'
Pokemon Model Items (Server Utility)

See merge request cable-mc/cobblemon!250
2023-01-15 00:07:45 +00:00
NickandHiroku e0da4b8535 Pokemon Model Items (Server Utility) 2023-01-15 00:07:45 +00:00
Hiroku 502fe10713 Merge branch 'held-items' into 'main'
Held Item functionality

See merge request cable-mc/cobblemon!247
2023-01-14 23:20:14 +00:00
Village 47730b9bb1 update changelog 2023-01-14 15:09:14 -05:00
Village 9bdc2c881b Merge remote-tracking branch 'origin/held-items' into held-items 2023-01-14 14:42:28 -05:00
Village fc41f8ecc3 update interact assets 2023-01-14 14:41:33 -05:00
Licious17 a9012d0205 Fixed the not all Pokéballs being associated with the cobblemon:pokeballs item tag 2023-01-14 10:22:27 +00:00
Licious17 7aa712b574 Clarify Pokemon#swapHeldItem, add optional property to prevent stack decrement. 2023-01-14 10:18:05 +00:00
Licious17 6f3b569b04 Correct EVs being given to the original Pokémon instead of effected in battle. 2023-01-14 09:46:49 +00:00
Licious17 b08a60fc4f Remove unnecessary filter every iteration 2023-01-14 09:45:38 +00:00
Licious17 f8548c6f33 Merge remote-tracking branch 'origin/held-items' into held-items 2023-01-14 09:41:27 +00:00
Licious17 9e201122ea Revert PokemonBattle#onFaint experience awarding to PokemonBattle#end 2023-01-14 09:41:16 +00:00
Paul f0de0d1177 Fixed Pokémon battles instantly fleeing, improve held item lang 2023-01-14 15:16:27 +10:00
Paul 58b90c71be Fixed shoulder mounts 2023-01-14 13:58:08 +10:00
Paul 563842f392 Merge remote-tracking branch 'origin/main' into snowstorm-particles 2023-01-14 12:01:38 +10:00
Paul f8cf70a42c Much more work on Snowstorm effects 2023-01-14 12:01:20 +10:00
Licious17 1c3def7ae8 Merge branch 'main' into held-items
# Conflicts:
#	CHANGELOG.md
2023-01-13 11:19:25 +00:00
Hiroku 60b82b436d Merge branch 'redstone-support' into 'main'
Redstone Support

See merge request cable-mc/cobblemon!249
2023-01-12 20:24:05 +00:00
Licious17 ae4cb1c771 Add dispenser support for Apricorn harvesting with shears, allow apricorn seeds to be compostable, add comparator compatibility for the healing machine. 2023-01-12 19:27:18 +00:00
Licious17 0dbe65fcc1 Remove debug log, fix experience being awarded to wrong actor, trigger PokemonBattle#onFaint from ShowdownInterpreter 2023-01-11 11:32:22 +00:00
Licious17 d764f05dc7 Partial fix await held item merge 2023-01-11 11:14:15 +00:00
Licious17 e51b6e432b Exp. Share implementation. 2023-01-10 15:13:21 +00:00
Licious17 e46d54d5ae Fixed missing multiplier on the experience calculator based on Pokémon affection 2023-01-10 13:11:04 +00:00
Licious17 873307cc41 Move tag classes to API, mark no longer existing tags as deprecated, add missing tags, add Lucky Egg. 2023-01-10 13:09:27 +00:00
Licious17 1a47712541 Create CobblemonItemTags, add misc held item related item tags. 2023-01-09 17:25:30 +00:00
Licious17 6ed9cd9111 Added missing experience multiplier based on pending evolution. 2023-01-09 17:17:35 +00:00
Licious17 647a9df2ef Changelog contents added 2023-01-09 15:21:13 +00:00
Licious17 a7178ac0a0 Merge branch 'main' into held-items
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/CobblemonCommands.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/battles/ShowdownInterpreter.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/entity/pokemon/PokemonEntity.kt
2023-01-09 15:10:37 +00:00
Licious 21b84f487c Kill evil mac file skip-ci 2023-01-09 15:05:02 +00:00
Licious 85ea797064 Kill evil mac file skip-ci 2023-01-09 15:01:36 +00:00
Licious17 b408b208ed Fixed magician, pickpocket, covet and bestow not having manual item removal. 2023-01-09 14:52:06 +00:00
Licious17 2d4da2c44b Implement various default HeldItemManagers. 2023-01-08 14:22:11 +00:00
Licious17 06c212a313 Add Pokemon#removeHeldItem 2023-01-08 14:07:46 +00:00
Licious17 5cd4fe72dd Update pokeball ID fetching on Battle Registry. 2023-01-08 14:03:29 +00:00
Licious17 c188db7ac6 Add check if Pokemon can be mounted on the shoulder in InteractPokemonHandler, improve held item already holding check 2023-01-08 13:24:26 +00:00
Village ef74e16949 add license 2023-01-08 04:34:27 -05:00
Paul dbe6363d96 Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
2023-01-08 14:27:37 +10:00
Paul ea6f46503c Sped up PokéBall capture process 2023-01-08 14:20:32 +10:00
Paul f9a6da8b0c Applied a cap of Pokémon per region to prevent super clustering 2023-01-08 14:04:59 +10:00
Paul f0fdb65557 Added config mechanism for changing our defaults 2023-01-08 14:00:40 +10:00
Village d15816bbb5 update interact menu 2023-01-07 14:23:01 -05:00
Village 76e0e02c02 menu assets 2023-01-07 04:58:05 -05:00
Village 2d6c40deea basic interact menu 2023-01-07 04:48:25 -05:00
Paul 0ab9e52b3d Fixed nether portal soft-dupe, improved world save logic for Pokémon so wild Pokémon save to the world (+config) 2023-01-07 17:51:44 +10:00
Paul 498fc013dc Added /giveallpokemon 2023-01-07 12:01:40 +10:00
Village 9143a52da5 move slot renders up to match profile renders a bit more 2023-01-06 16:41:00 -05:00
Licious17 4b4623ac53 Updated unnecessary usages of Pokemon#heldItem to Pokemon#heldItemNoCopy 2023-01-06 10:47:54 +00:00
Licious17 bac71d9267 Add held item to PokemonDTO 2023-01-06 10:45:47 +00:00
Village 0bf42d14cf show items in PC/Summary slots 2023-01-05 23:59:39 -05:00
Paul 0e955824d7 Fixed GL scissors on some Macs 2023-01-06 10:47:06 +10:00
Paul 2b74b23bf1 Missed a little of the aspect fix stuff 2023-01-06 10:35:31 +10:00
Paul 8f2df565d2 Possible fix for optional aspects not saving and loading properly 2023-01-06 10:24:28 +10:00
Paul 334b03b6dd Used a different GL scissor technique for parties as a test 2023-01-06 09:29:55 +10:00
Village 2620ad51ad item overlay 2023-01-05 18:05:19 -05:00
Village 6c5e7adb03 UI 2023-01-05 17:05:24 -05:00
Licious17 d28ba6d85e Implement held item give/take/swap 2023-01-04 12:03:15 +00:00
Paul e273e4228e Fixed forms not being able to unset the secondary type of a Pokémon in the stat JSON 2023-01-04 21:13:33 +10:00
Paul 7ce03ad732 Fixed Sliggoo and Goodra not having conditions on their Hisuian form 2023-01-04 21:00:14 +10:00
Paul 5f4748d82f Fixed poison damage underflowing HP updates and making them appear on full health on the client 2023-01-04 20:47:18 +10:00
Paul fd209a3892 Probable fix for issues with model texture layers 2023-01-04 20:29:41 +10:00
Paul 6cc03a5d0b More definitions and structure for Snowstorm support 2023-01-04 20:00:42 +10:00
Licious17 01fcc9271c Docs and movement of BattleMessage and Effect to the API package 2023-01-02 13:16:34 +00:00
Paul e81ab88909 Fixed the minimumDistanceBetweenEntities config option effectively being half of what it's set as 2023-01-02 19:48:50 +10:00
Paul 00f2420e09 Migrated to better molang library 2023-01-02 12:37:23 +10:00
Paul cd4e83da8c Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
2023-01-02 12:21:11 +10:00
Licious17 331371128a Added some held items 2023-01-01 21:08:13 +00:00
Licious17 5716e609da Implemented all '-enditem' action interpretations 2023-01-01 20:31:55 +00:00
Test f70322d479 fix header format [skip-ci] 2023-01-01 04:18:39 +00:00
Test d5771a5802 update changelog [skip-ci] 2023-01-01 04:11:00 +00:00
Paul 30137a9308 When referring to a discretely counted thing, 'less' is actually meant to be 'fewer'. [skip-ci] 2023-01-01 14:04:26 +10:00
Paul c853644c16 Changelog for 1.2.0 [skip-ci] 2023-01-01 13:59:52 +10:00
Paul 794d1b391d Non-snapshot 1.2.0 2023-01-01 13:44:51 +10:00
Paul 3ac2687f1e Merge remote-tracking branch 'origin/main' 2023-01-01 11:19:29 +10:00
Paul 511fd00652 Add last saved Cobblemon version to Pokemon data so we can do data migrations 2023-01-01 11:19:18 +10:00
Licious17 b36e93fa9b Implemented all '-item' action interpretations 2022-12-31 19:08:04 +00:00
Test 405d3fd774 fix framing for Beedrill/Butterfree line 2022-12-31 15:20:55 +00:00
Licious17 e6d3bbac3a Start of BattleMessage, lang for '-item' action interpretation 2022-12-31 14:14:41 +00:00
Paul 7a26d613fd Fixed zero PP turning into max-maxPP when entering battle 2022-12-31 20:16:34 +10:00
Paul 0a02edf6f3 Fixed hitboxes not changing when a Pokémon evolves 2022-12-31 19:22:30 +10:00
Paul e8c7b31144 Added explicit dependency on Architectury so we get fewer crash reports 2022-12-31 18:59:35 +10:00
Paul d6f6742658 Fixed Eevee positioning on shoulders 2022-12-31 13:16:35 +10:00
Paul c76dfe9e96 Doubled default charge rate of healers 2022-12-31 13:16:06 +10:00
Paul 3ba88265eb Fixed variations not showing in battle tiles, start battles with choice menu open 2022-12-31 13:04:57 +10:00
Hiroku dcc8975757 Fixed pyu size 2022-12-31 02:22:44 +00:00
Licious17 9d930b9ff1 Misc stuff 2022-12-30 23:39:11 +00:00
Hiroku e824234057 Merge branch 'hit-count-interpret' into 'main'
Add support for '-hitcount' to ShowdownInterpreter

See merge request cable-mc/cobblemon!244
2022-12-30 23:32:41 +00:00
Licious 0cc8bd6e0f Remove unused import 2022-12-30 18:22:52 +00:00
Licious17 1e45ff34f0 Added support for '-hitcount' to ShowdownInterpreter 2022-12-30 17:20:38 +00:00
Licious17 bca83a8cdc Start battle interpret 2022-12-30 17:09:52 +00:00
Licious17 bdb5afde9d Attach HeldItemManager to BattlePokemon when packing the team in the BattleRegistry 2022-12-30 16:27:20 +00:00
Licious17 7e8b448f48 Implemented CobblemonHeldItemManager 2022-12-30 16:09:06 +00:00
amo 697dee2f28 Rewrote PokemonRenderer.renderLabel, potentially added q.camera_rotation to MolangBoneValue.resolve, added remap functions to SimpleMathExtensions.kt 2022-12-30 14:14:36 +00:00
Licious17 00e746adc7 Updated Pokemon#loadFromJSON and Pokemon#saveToJSON to use the ItemStack Codec, added held item manager and provider 2022-12-30 13:16:03 +00:00
Hiroku 2532511d53 Merge branch 'fix-capture-effects' into 'main'
Fix capture effects

See merge request cable-mc/cobblemon!243
2022-12-30 12:39:12 +00:00
Licious17 14f7c5ecc3 Fixed CaptureEffect not triggering after a successful capture 2022-12-30 12:14:09 +00:00
Licious17 3b62b7773b Added HeldItemCommand 2022-12-30 00:22:48 +00:00
Licious17 06d9d06bab Implemented held item stack in Pokemon 2022-12-29 23:40:48 +00:00
Hiroku 1ec6af6d34 Merge branch 'pokemon-cry-fixes' into 'main'
Fix connection to server with cries

See merge request cable-mc/cobblemon!242
2022-12-29 21:04:19 +00:00
Licious17 e472ee5fbd Fixed S2C crash due to missing cry sound events, made the sound event identifier adapt to the namespace of the registered species for better expected datapack functionality, added the ability to create sounds for every form. 2022-12-29 20:50:11 +00:00
Paul 7fc651c947 Outlining snowstorm particle stuff 2022-12-29 17:42:59 +10:00
Test 7b4f43fd12 update labels 2022-12-28 21:45:36 +00:00
Hiroku 8a49b88c7a Merge branch 'spawn-pos-change' into 'main'
Fix ModifiableWorld#spawnEntity and Entity#setPosition inconsistencies

See merge request cable-mc/cobblemon!241
2022-12-28 13:02:15 +00:00
Licious17 2138022f6d Fixed usages of ModifiableWorld#spawnEntity before Entity#setPosition 2022-12-28 12:38:31 +00:00
Paul fd3bc667a9 Changelog for cry change [skip-ci] 2022-12-28 17:46:21 +10:00
Paul 4db5e54d88 Added blank sounds for Pokémon ambient cries so they can be set via RP 2022-12-28 17:41:07 +10:00
Paul 62748437de Corrected evo displays I think 2022-12-28 14:17:27 +10:00
Paul 163b2df7f6 Fixed many bugged forms that didn't have aspect conditions 2022-12-28 14:17:04 +10:00
Paul 386bad2c1c More missed stuff from last commit (illegal abilities) 2022-12-28 14:15:32 +10:00
Paul d304028389 Missed stuff from last commit (illegal abilities) 2022-12-28 14:14:53 +10:00
Paul 964894f376 Fixed abilities being illegal when they shouldn't be illegal 2022-12-28 14:14:33 +10:00
Paul ec8dfd746d Fixed moves that only work in double battles not being selectable at all 2022-12-28 13:47:09 +10:00
Hiroku 732547213a Merge branch 'mod-menu-compat' into 'main'
Added necessary data

See merge request cable-mc/cobblemon!239
2022-12-27 22:03:01 +00:00
Hiroku df888a7f36 Merge branch 'graal-relocation' into 'main'
Relocate IBM package, add pipes for Graal logging

See merge request cable-mc/cobblemon!240
2022-12-27 22:02:29 +00:00
Nick bd01b9d682 Relocate IBM package, add pipes for Graal logging 2022-12-27 13:10:38 -08:00
Licious17 ab390703da Updated mods.toml and fabric.mod.json with our new website. 2022-12-27 17:38:09 +00:00
Licious17 28cd8f0265 Added necessary data 2022-12-27 17:33:46 +00:00
Licious17 9fb91f8f6a Merge branch 'main' into species-data-appending 2022-12-27 13:37:17 +00:00
Paul ca47636ffe Merge remote-tracking branch 'origin/main' into snowstorm-particles 2022-12-27 21:14:31 +10:00
Paul a852b8e535 Fixed multiple variant JSON issues 2022-12-27 21:14:13 +10:00
Test fa6f52d305 update click.ogg 2022-12-26 22:27:20 +00:00
Paul 3e8d8daa9b Merge remote-tracking branch 'origin/main' into snowstorm-particles 2022-12-26 21:32:21 +10:00
Paul 8196a686df Fixed arbok variants, other variants need restoring ): 2022-12-26 21:31:59 +10:00
Veraxiel da157a1b28 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon 2022-12-26 02:17:14 -05:00
Veraxiel 167191a135 Added spawn files for Natu, Murkrow, and Wailord families. Updated spawn files of the Gen 1 fossil Pokémon. 2022-12-26 02:16:31 -05:00
Paul e6f881df6e Merge remote-tracking branch 'origin/main' into snowstorm-particles
# Conflicts:
#	CHANGELOG.md
2022-12-26 14:35:35 +10:00
Paul 53f82b1971 Fixed form and alolan stuff 2022-12-26 14:25:18 +10:00
Hiroku 9f775f2c92 Merge branch 'model-fix-balls-healmach' into 'main'
Fixes In Hand Pokeball and Healing Machine Display Settings

See merge request cable-mc/cobblemon!238
2022-12-25 08:57:15 +00:00
dhi_holo 07f89dc691 Update CHANGELOG.md 2022-12-25 18:33:19 +10:00
dhi_holo 0c70a5cbac Fixes In Hand Pokeball and Healing Machine Display Settings
The rendering of the pokeball and healing machine items, mainly when dropped but in other places, were not matching to how other things in Minecraft work, so were brought slightly more inline. Slight model tweak to the Pokeball In Hand model to make the visuals cleaner, but every change directly links to the display settings.
2022-12-25 18:26:15 +10:00
Paul 3ceda765c9 Updated framing for starters, pichu line, zubat 2022-12-25 17:16:51 +10:00
Paul e3360e2d18 Updated various models and textures, fixed Rattata + Nidoqueen texture, updated Sableye animations 2022-12-25 14:33:19 +10:00
Licious17 6fbd4c16e3 Licenses 2022-12-24 12:11:47 +00:00
Paul b4e2ecc8f1 Added Wailmer, Wailord, Murkrow, Honchkrow, and fixed various framings 2022-12-24 22:04:45 +10:00
Paul bdd6ea48a0 Added scissoring of pokemon renders in PC GUI, update click sound to be a bit quieter 2022-12-24 11:44:26 +10:00
Licious17 64b624c1a7 Merge branch 'main' into species-data-appending 2022-12-23 14:00:01 +00:00
Licious17 ffd3afb8d9 Added addition system 2022-12-23 13:59:15 +00:00
Paul 84244c0376 Added Natu and Xatu 2022-12-23 19:03:38 +10:00
Paul 6fec1417b1 Don't despawn a pokemon that has a vehicle 2022-12-23 16:13:04 +10:00
Paul 142c47de1c Changelog for pokemon look change during battle 2022-12-23 13:13:35 +10:00
Paul e796883660 Merge remote-tracking branch 'origin/main' into pc 2022-12-23 13:13:03 +10:00
Paul c6779385a7 Added emissive texture support to Pokémon render layers 2022-12-23 13:12:44 +10:00
Hiroku 1a0ea5db72 Merge branch 'pc' into 'main'
PC

See merge request cable-mc/cobblemon!237
2022-12-23 03:07:36 +00:00
TestandHiroku 342a1ceb6d PC 2022-12-23 03:07:36 +00:00
Hiroku 0e7d3438a5 Merge branch 'main' into 'main'
Pokémon look at eachother in battle & halt all other goals.

Closes #131

See merge request cable-mc/cobblemon!233
2022-12-23 02:55:25 +00:00
amo cadcdab39b fix bug 2022-12-23 02:52:08 +00:00
Paul 0bc7614809 Merge remote-tracking branch 'origin/pc' into pc 2022-12-23 12:42:56 +10:00
Paul ecbde40aa6 Fixed production issue on Forge caused by Graal 2022-12-23 12:42:46 +10:00
Village 672ed74309 rm unused imports 2022-12-22 21:25:12 -05:00
Village 469e9e9065 set preview on hover, remove debounce for grab 2022-12-22 21:20:50 -05:00
Paul 2dba103c14 Fixed text glitching on ability and nature 2022-12-23 10:37:15 +10:00
Village be7c0220d4 update sounds 2022-12-22 15:01:23 -05:00
MoeBoy76 feaf87f615 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into evo-notify 2022-12-22 22:00:30 +11:00
Village 14f9640556 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into pc 2022-12-22 02:59:05 -05:00
Village 3b2940ac59 rm unused imports 2022-12-22 02:58:46 -05:00
Village 036d9c5e6b PC 2022-12-22 02:34:25 -05:00
Paul 76cdecbb94 Fixed Mewtwo always being Mega Mewtwo X actually 2022-12-21 22:15:02 +10:00
Paul 1d6317b5d6 Fixed an instance of using CheckedRandom unsafely 2022-12-21 22:13:07 +10:00
Paul 26f963f9b9 Improved initializing logic so we don't get nasty invis pokemon again 2022-12-21 22:06:20 +10:00
Paul 9ee90508ed Changelog update [skip-ci] 2022-12-21 17:44:03 +10:00
Hiroku 9b6da631ee Merge branch 'stat-calculation-fix' into 'main'
Apply level multiplier in correct location, fixes invalid stats outside of HP calculation

See merge request cable-mc/cobblemon!236
2022-12-21 07:38:00 +00:00
Hiroku c26edc55f5 Merge branch 'spawn-validator' into 'main'
Fix Magmortar spawn definitions and add validator for future default configurations

See merge request cable-mc/cobblemon!235
2022-12-21 07:37:50 +00:00
Nick f1c306051c Apply level multiplier in correct location, fixes invalid stats outside of HP calculation 2022-12-20 19:18:32 -08:00
Nick dacb16044d License 2022-12-20 18:04:51 -08:00
Nick 68478f84d8 Fix Magmortar spawn definitions and add validator for future default configurations 2022-12-20 18:01:59 -08:00
Hiroku 6272bfe2d6 Merge branch 'battle-engine' into 'main'
Replaced Javet with Graal

See merge request cable-mc/cobblemon!234
2022-12-20 19:52:14 +00:00
Paul e561bfd148 Fixed bad directory reference in PokemonSpecies showdown export 2022-12-20 07:06:59 +10:00
amo 2f9cc2b41c pokemon look at eachother in battle & dont move 2022-12-19 16:08:12 +00:00
Paul 8d39e2536b Fixed graal issue in production jars 2022-12-19 22:08:45 +10:00
Paul 17fa80e752 Upped compile-time RAM requisition to 4gb 2022-12-19 21:59:10 +10:00
Paul 4d2641308a licenses 2022-12-19 21:02:34 +10:00
Paul 27e02963eb Implemented Showdown messaging using Graal 2022-12-19 21:01:12 +10:00
Paul d71c03e48a Merge remote-tracking branch 'origin/main' into battle-engine 2022-12-19 18:28:09 +10:00
Paul 43b69ba860 Merge remote-tracking branch 'origin/main' 2022-12-17 10:08:36 +10:00
Paul 64bfb72c53 Documentation correction 2022-12-17 10:08:25 +10:00
Paul 6810232183 Updated licenses 2022-12-17 10:08:03 +10:00
Licious17 6e25c2591e Changed the default Apricorn seed chance config value from 6% to 10% 2022-12-16 12:42:22 +00:00
Paul 0be43ec28c Added waning and waxing moonphase ranges 2022-12-16 21:08:20 +10:00
Paul 78f0f572b2 Added range support to moon phase conditions and allowed single-value interpretation for time range 2022-12-16 21:05:10 +10:00
Paul 6d99c7e643 Fixed showdown shutting down after logging out of singleplayer 2022-12-16 12:56:03 +10:00
Paul c6f4fc8992 Prevent all motion on dying pokemon 2022-12-16 12:37:40 +10:00
Paul 320c471b4e Changelog for chunk load fix 2022-12-16 12:33:10 +10:00
Paul 0ea8d8932e Merge branch '1.1.1-log-world-gen' of gitlab.com:cable-mc/pokemon-cobbled
# Conflicts:
#	gradle.properties
2022-12-16 12:32:27 +10:00
Hiroku 7325f4b6ac Merge branch 'surface-spawning' into 'main'
Added surface spawning context

See merge request cable-mc/cobblemon!232
2022-12-16 02:21:57 +00:00
Paul 4fd035aa16 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into surface-spawning 2022-12-16 00:21:15 +10:00
Licious 5f1038d7a4 Merge branch 'animations-in-resource-packs' into 'main'
Animations in resource packs

See merge request cable-mc/cobblemon!230
2022-12-15 13:36:17 +00:00
HirokuandLicious 6449cb7295 Animations in resource packs 2022-12-15 13:36:17 +00:00
Paul 1fa0e81b8e Added surface spawning context 2022-12-15 22:34:09 +10:00
Hiroku b243a0a098 Merge branch 'starter-config-maintainability' into 'main'
Starter config maintainability

See merge request cable-mc/cobblemon!229
2022-12-14 21:58:09 +00:00
Paul 139253454c Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into starter-config-maintainability
# Conflicts:
#	CHANGELOG.md
2022-12-15 07:42:26 +10:00
MoeBoy76 f05f586a8e Moved completed sound notification out of AdvancementHandler and into Evolution 2022-12-15 07:43:38 +11:00
MoeBoy76 9da71000d2 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into evo-notify 2022-12-15 07:40:00 +11:00
Paul 7224ac123f Better protect save file loading using the .temps 2022-12-14 22:29:28 +10:00
Paul c53018942b Changelog [skip-ci] 2022-12-13 19:50:34 +10:00
MoeBoy76 56dffd9790 Added placeholder sound files and registered sounds 2022-12-11 18:38:41 +11:00
MoeBoy76 c5c3afc4f0 Added code for Evolution notification on both availability and completion 2022-12-11 17:23:28 +11:00
Licious17 6bf09dbd2a Merge remote-tracking branch 'origin/main' 2022-12-10 13:16:00 +00:00
Licious17 010f9b16f9 Fix Rockruff and Lycanroc data for gimmick form 2022-12-10 13:15:51 +00:00
Paul 45eaf6fb3b Likely fix for world chunk gen hanging 2022-12-10 17:00:26 +10:00
Paul 8e4141ccc1 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into starter-config-maintainability 2022-12-10 15:23:58 +10:00
Paul 41c6accc16 Improved starter config handling so it is opt-in for it to export to a file 2022-12-10 15:23:50 +10:00
Hiroku 470f0d37a4 Merge branch 'spawns-as-data' into 'main'
Moved spawn sets and spawn detail presets to data

See merge request cable-mc/cobblemon!228
2022-12-09 08:01:39 +00:00
Paul f7bd3af13b Licensing fix 2022-12-09 17:46:05 +10:00
Paul f4f7c0f19a Moved spawn sets and spawn detail presets to data 2022-12-09 17:30:34 +10:00
Paul 7ff0a66aae Removed faulty spawn cap 2022-12-09 00:00:23 +10:00
Hiroku 0487d431e1 Merge branch 'healer-advancements-redux' into 'main'
Updated Healing Machine Advancements

See merge request cable-mc/cobblemon!227
2022-12-08 09:42:37 +00:00
Hiroku 5429f70a26 Merge branch 'pkm-properties' into 'main'
Added pokeball and nature pokemon property

See merge request cable-mc/cobblemon!226
2022-12-08 09:05:55 +00:00
Licious17 aa8d0d80f1 Added pokeball and nature pokemon property 2022-12-06 12:49:12 +00:00
dhi_holo 9547be150b New Healing Machine Advancement
Removed full_heal and max_heal (dumb names, sorry), and made a (*slightly* jankily written, but fully functional) advancement which checks for you interacting with a healer with atleast one pokeball in it (any type is detected due to the stuff that makes it mildly janky looking).
A more optimized option advancement might be doable eventually, but this is the only thing I could detect to show the healer successfully being used.
Is possible to cheese it by interacting with a healer someone else is using, but shouldn't be an issue in the long run.

Updated en_us lang with new advancement, removing the prior two (the name from full_heal is kept, with a brand new description)
2022-12-06 20:43:00 +10:00
dhi_holo 346e3a3047 Update en_us.json
Fixed Calcuim (Calcium) misspelling
2022-12-06 16:28:11 +10:00
Licious 594bf59496 Merge branch 'aspect-json-rework' into 'main'
Aspect json rework

See merge request cable-mc/cobblemon!225
2022-12-05 15:11:12 +00:00
Paul 7f6fa2f009 Removed asset resolver converter code that is no longer needed 2022-12-05 19:51:11 +10:00
Paul b7720248ad Refactored asset resolver JSONs to be resource pack friendly 2022-12-05 19:49:35 +10:00
Hiroku 60593c7cdf Merge branch 'fix-aw-generation' into 'main'
Fix access widener generations on compile, remove cached AW

See merge request cable-mc/cobblemon!224
2022-12-05 02:50:58 +00:00
Nick 61e545ace3 Fix access widener generations on compile, remove cached AW 2022-12-04 15:28:19 -08:00
Hiroku 045398d204 Merge branch 'model-loading-fix' into 'main'
Model loading fix

See merge request cable-mc/cobblemon!223
2022-12-04 11:23:25 +00:00
Paul c4e318cb1c Updated aspect JSONs to use new model paths 2022-12-04 11:30:01 +10:00
Paul 048bae7585 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into model-loading-fix 2022-12-03 18:48:46 +10:00
Hiroku fee858e5dc Merge branch 'better-aspects' into 'main'
Reworked species features, complete with new data pack stuff

See merge request cable-mc/cobblemon!222
2022-12-03 00:09:54 +00:00
Paul f938e99036 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into better-aspects
# Conflicts:
#	CHANGELOG.md
2022-12-02 23:15:13 +10:00
Paul 02ecc87608 Fixed max hp display not being correct for allied pokemon 2022-12-02 23:14:34 +10:00
Paul 5a0d46410a Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into better-aspects
# Conflicts:
#	CHANGELOG.md
2022-12-02 23:05:19 +10:00
Paul e516b6dea2 Reworked species features, complete with new data pack stuff 2022-12-02 23:03:50 +10:00
MoeBoy76 3e3a2a7ec0 Fixed model loading for ResourcePacks, updated Abra aspect to match changes 2022-12-02 21:14:19 +11:00
Hiroku bd1f7c59c3 Merge branch 'entity-attributes-fix' into 'main'
Entity attribute registration fix

See merge request cable-mc/cobblemon!221
2022-11-29 10:54:14 +00:00
LiciousandHiroku 1fdf928b7b Entity attribute registration fix 2022-11-29 10:54:13 +00:00
Paul ee863a4e04 Dated the changelog [skip-ci] 2022-11-28 18:34:35 +10:00
Paul 2302d6e59f 1.1.1 non-snapshot 2022-11-28 13:35:08 +10:00
Paul 24f6915cc9 1.1.1 2022-11-28 13:25:14 +10:00
Paul b4207b11ab Fixed sync issue for implemented field in Species 2022-11-28 12:50:32 +10:00
Paul 7ca2003b47 Merge remote-tracking branch 'origin/main' 2022-11-28 09:29:25 +10:00
Paul c3fbcb0c63 Polished changelog [skip-ci] 2022-11-28 09:29:16 +10:00
Hiroku f2e7d5d923 Merge branch 'maven-publication' into 'main'
Add maven publication support

See merge request cable-mc/cobblemon!220
2022-11-27 23:15:12 +00:00
Nick 45ec1a0983 Add maven publication support 2022-11-27 00:55:23 -08:00
Paul b21467f887 Merge remote-tracking branch 'origin/stuff' into stuff
# Conflicts:
#	CHANGELOG.md
2022-11-27 16:07:07 +10:00
Paul 66e8bec6c7 Improve display of HP and fixed stat inconsistency with battles 2022-11-27 16:06:04 +10:00
Village df033453e1 update changelog 2022-11-26 18:59:10 -05:00
Village 0c9d6234ea Add EV vitamin items, add HP label to battle UI, update sounds 2022-11-26 18:45:33 -05:00
Paul f99eb8d7ea 1.1.0 2022-11-26 19:03:52 +10:00
Paul 9b81b68d04 Updated gradle wrapper version to 7.6 2022-11-26 18:31:20 +10:00
Paul 87e10ac6bb Fixed seasons reference deerling sawsbuck 2022-11-26 11:44:59 +10:00
Paul 1e284d1d6b Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled
 Conflicts:
	CHANGELOG.md
2022-11-26 11:33:50 +10:00
Paul b056649d49 Adjusted season feature so un-categorized biomes won't change the pokemon season form 2022-11-26 11:33:33 +10:00
Hiroku adb069a280 Merge branch 'season-tags' into 'main'
Added spawn data and drops for Deerling family and Sableye. Added season tags.

See merge request cable-mc/cobblemon!219
2022-11-26 01:10:18 +00:00
Veraxiel b511863e62 Added spawn data and drops for Deerling family and Sableye. Added season tags. 2022-11-25 20:07:19 -05:00
Paul 4e4ec0c8c2 Sleeping Pokémon don't turn to look at the player 2022-11-26 10:55:17 +10:00
Paul 135a046141 Fix substitute model weirdness 2022-11-26 10:54:37 +10:00
Paul ed5758b7a0 Slowed down passive friendship gain so it only works for sent out Pokémon and is much slower. 2022-11-26 10:42:05 +10:00
Hiroku 8cfe210727 Merge branch 'apricorn-spawn-fix' into 'main'
Apricorn spawn fix

See merge request cable-mc/cobblemon!218
2022-11-25 22:30:28 +00:00
MoeBoy76 c807a2c1a1 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into apricorn-spawn-fix
 Conflicts:
	CHANGELOG.md
2022-11-26 09:13:02 +11:00
MoeBoy76 122bc13030 changelog 2022-11-26 09:09:32 +11:00
MoeBoy76 4ec3cc0dca Apricorn spawning fix 2022-11-26 09:07:16 +11:00
Hiroku 4c5210d174 Merge branch 'new-pokemon-1' into 'main'
Fixed mod incompat with other Arch API mods because of unnecessary call to...

See merge request cable-mc/cobblemon!217
2022-11-25 21:47:28 +00:00
Paul e578e36ca9 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into new-pokemon-1
 Conflicts:
	CHANGELOG.md
2022-11-26 07:22:31 +10:00
Paul 5205e160df Added dhi's fixes for advancements and new max_heal advancement 2022-11-26 07:15:37 +10:00
Paul 7b10e5db62 updated langs with scraped move, ability, species data for de, fr, it, ja, ko, zh_cn 2022-11-25 22:13:13 +10:00
Paul 71497a9854 Full asset update, added seasonal variation Deerling+Sawsbuck, Sableye, Pyuku, 2022-11-25 20:35:57 +10:00
Hiroku f3f9cca774 Merge branch 'refmap-conflict-fix' into 'main'
Unique Refmap Names

See merge request cable-mc/cobblemon!216
2022-11-25 06:56:59 +00:00
Nick 3940514f46 Use unique refmap names, fixes compatiblity with MTR and other mods using default name patterns 2022-11-24 22:40:32 -08:00
Paul d254074a0a Fixed mod incompat with other Arch API mods because of unnecessary call to ArchitecturyClient.init() 2022-11-25 09:45:45 +10:00
Licious 0316ca726e Merge branch 'pokemon-on-zanax' into 'main'
Sleeping pokemon stuff

See merge request cable-mc/cobblemon!215
2022-11-24 13:12:58 +00:00
HirokuandLicious 224a3f7a25 Sleeping pokemon stuff 2022-11-24 13:12:57 +00:00
Hiroku 4543b85401 Merge branch 'ui-updates' into 'main'
some updates

See merge request cable-mc/cobblemon!214
2022-11-23 23:21:13 +00:00
TestandHiroku 844892e059 some updates 2022-11-23 23:21:13 +00:00
Hiroku 8922576b92 Merge branch 'sum' into 'main'
Update Summary UI

See merge request cable-mc/cobblemon!213
2022-11-23 11:06:29 +00:00
TestandHiroku 528c7b57e7 Update Summary UI 2022-11-23 11:06:29 +00:00
Hiroku d51095a4cd Merge branch '#120-pathfinding-fixes' into 'main'
#120 pathfinding fixes

See merge request cable-mc/cobblemon!212
2022-11-23 09:48:52 +00:00
Paul 30568a5ba7 Merge remote-tracking branch 'origin/main' 2022-11-23 16:13:23 +10:00
Paul 4ec48bc2ec Removed SHINY datatracker field since aspects basically do that 2022-11-23 16:13:11 +10:00
Paul 4f5139a5ae Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #120-pathfinding-fixes
 Conflicts:
	changelog.txt
2022-11-23 12:51:40 +10:00
Paul a766af9914 Significantly improved AI, particularly for larger Pokémon and water Pokémon. 2022-11-23 12:50:13 +10:00
Paul 316e931314 Remove debug line from healing machine 2022-11-23 12:25:56 +10:00
Hiroku c31bc6a01b Merge branch 'spawns-and-drops-update' into 'main'
Added spawn files for Alolan Rattata family, Pyukumuku, and all Pokémon...

See merge request cable-mc/cobblemon!211
2022-11-21 08:37:39 +00:00
Veraxiel 20a2e72985 Changes to biome tags to fix Highlands spawns. 2022-11-20 18:41:45 -05:00
Veraxiel 6f68c19f2e Fixed an issue with Arcanine's spawn data. 2022-11-20 18:11:00 -05:00
Veraxiel b4b52a5465 Fix to Pyukumuku species data. 2022-11-20 17:36:16 -05:00
Veraxiel 75a98f2323 Added spawn files for Alolan Rattata family, Pyukumuku, and all Pokémon previously lacking spawns except Legendaries. Added drops for all Pokémon given spawn data. 2022-11-20 03:46:17 -05:00
Veraxiel 26a7352792 Fixed an error in CobblemonConfig. 2022-11-19 02:46:31 -05:00
Veraxiel 74aab55b97 Fixed issues with biome tags. Updated default configs. 2022-11-19 01:14:03 -05:00
Paul 127d394037 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled
 Conflicts:
	changelog.txt
	common/src/main/kotlin/com/cobblemon/mod/common/client/gui/battle/BattleOverlay.kt
2022-11-17 21:18:26 +10:00
Paul eacc49d658 Updated many models, animations, textures, and added Alolan Rattata + Raticate 2022-11-17 21:16:32 +10:00
Paul bd132b17b0 Show battle message pane even when minimised, show moves (disabled) even when PP is run out, moved R prompt in battle upwards 2022-11-17 20:26:57 +10:00
Paul d62f08c0c9 Fixed presets taking priority over same-field declarations in spawn files 2022-11-17 20:11:50 +10:00
Hiroku 743c693772 Merge branch 'magnitude-interpret' into 'main'
Magnitude interpret

See merge request cable-mc/cobblemon!210
2022-11-16 12:40:15 +00:00
LiciousandHiroku fef4d78ddf Magnitude interpret 2022-11-16 12:40:14 +00:00
Licious 7940188643 Merge branch 'forge-keybind-fix' into 'main'
Forge keybind fix

See merge request cable-mc/cobblemon!208
2022-11-15 23:10:03 +00:00
Licious 9e6bd39fa2 Forge keybind fix 2022-11-15 23:10:03 +00:00
Paul 4b0c3c11d1 Fixed Grimer, Muk, Hitmonchan, and Arbok idle animations not looping correctly, causing T-posing 2022-11-15 21:20:29 +10:00
Paul 985ad66022 'random' property and /spawnallpokemon will only spawn implemented pokemon 2022-11-15 21:18:55 +10:00
Paul a433e6fb3c Fixed natures not saving 2022-11-15 19:07:19 +10:00
Paul e5ea130d37 Fix another way that players could challenge themselves in desynced servers 2022-11-14 16:18:56 +10:00
Paul 45c15ac439 Bump to 1.0.1 2022-11-14 12:04:41 +10:00
Hiroku e3fa0243aa Merge branch 'showdown-shutdown' into 'main'
Properly Shutdown Showdown on Server Stop, fixes hung process issue

See merge request cable-mc/cobblemon!207
2022-11-14 02:02:55 +00:00
Nick 2c8d968dda Remove unnecessary line + changelog entry 2022-11-13 17:46:34 -08:00
Nick 99a9db12a5 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into showdown-shutdown 2022-11-13 17:37:44 -08:00
Nick f5b79ab336 Shutdown Showdown client and server, fixes server hanging on shutdown 2022-11-13 17:30:54 -08:00
Paul b036ff463b changelog.txt 2022-11-13 15:31:04 +10:00
Paul 1d944ce183 Fixed resource pack support 2022-11-13 15:22:52 +10:00
Paul b21686ef2e Fixed variation differences not showing in the battle/party GUIs 2022-11-13 15:22:37 +10:00
Paul 5848e7b21c Added more stuff 2022-11-13 13:57:45 +10:00
Paul f67fa4d66b Merge remote-tracking branch 'origin/main' 2022-11-12 15:03:30 +10:00
Paul 380c163de4 Reworked the relationship between PokemonEntity and Pokemon health values 2022-11-12 15:03:16 +10:00
Hiroku 1a4216fc70 Merge branch 'who-needs-to-know-of-death-anyways' into 'main'
Don't inform owner of pokemon being killed out of battle

See merge request cable-mc/cobblemon!206
2022-11-12 04:34:29 +00:00
Nick 5aafbc2a6d Don't inform owner of pokemon being killed out of battle 2022-11-11 20:17:23 -08:00
Paul 1d86b5c13c Fixed join errors when PC is non-empty and has more than 1 pokemon 2022-11-12 13:41:52 +10:00
Paul 846b0787dd Added Tangrowth posing 2022-11-12 12:58:30 +10:00
Paul 53dcf5f85e Added Sandshrew faint animation 2022-11-12 12:58:21 +10:00
Paul 266f1a6da4 Fixed Kakuna, Metapod, Silcoon, and Cascoon being able to move and look around 2022-11-12 12:58:08 +10:00
Paul 9abe2d362f Portrait improvements Pikachu, Snorlax, Zubat 2022-11-12 12:47:48 +10:00
Paul 158027c2fd Fixed Zubat and Pidgey not applying slow fall, player death ends battles 2022-11-12 12:28:26 +10:00
Paul 2a6aa6936d Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into more-portraits-n-profiles 2022-11-12 11:57:56 +10:00
Paul 95629b8582 Slightly improve Victrebeel portrait framing 2022-11-12 11:56:04 +10:00
Licious17 005ae7548b Added portrait for Zapdos, Weepinbell, Vulpix, Victreebel, Venonat and Venomoth 2022-11-11 15:45:47 +00:00
Paul 0582ac62f4 Move storage deregistration later in the shutdown process so that servers can shutdown gracefully 2022-11-11 23:32:22 +10:00
Paul 1a9468fd0f Fixed starter pokemon (and all pokes given with fixed levels) not being interactable 2022-11-11 22:11:58 +10:00
Paul a76e0487aa Fixed moves like Encore still allowing other move choices, fixed stat names not showing correctly in battle 2022-11-11 20:38:29 +10:00
Paul b803c5f223 Merge remote-tracking branch 'origin/main' 2022-11-11 20:08:27 +10:00
Paul c4e1249a95 Display -/- for PP when being forced to use a move 2022-11-11 20:08:15 +10:00
Paul 2a2c0da200 Starting some global type definitions for engine 2022-11-11 19:50:41 +10:00
Hiroku a037da3765 Merge branch 'client-server-exp-desync' into 'main'
Fix desync with client and server experience values due to misaligned experience groups

See merge request cable-mc/cobblemon!205
2022-11-11 08:39:15 +00:00
Nick 0cddab8e71 Remove no longer used code and fix compile 2022-11-11 00:04:53 -08:00
Nick 8f093a17cb Fix desync with client and server experience values due to misaligned experience groups 2022-11-10 23:47:46 -08:00
Paul ad39517812 Added various missing assets for pokeballs 2022-11-11 15:25:47 +10:00
Paul 5fed087bb9 Make the deploy CI step manual because project storage is big 2022-11-11 14:44:56 +10:00
Hiroku aba7594479 Merge branch 'moar_pokeballs' into 'main'
Pokeballs

See merge request cable-mc/cobblemon!203
2022-11-11 03:49:26 +00:00
LiciousandHiroku edab666804 Pokeballs 2022-11-11 03:49:26 +00:00
Veraxiel 993fe6b30f Updated drops in buneary.json 2022-11-11 01:09:49 +00:00
Paul 5f8c4777ed Fixed showdown interpretation happening on a separate thread, causing some mod incompatibility on switches 2022-11-11 10:51:44 +10:00
Hiroku 38aeb98cce Merge branch 'log-packet-output' into 'main'
Log packet output

See merge request cable-mc/cobblemon!204
2022-11-11 00:42:14 +00:00
Paul 71b7de9b34 Fixed dodgy advancement JSON 2022-11-11 10:05:24 +10:00
Paul 9edbbb4923 Remove logging since network stuff is working yay 2022-11-11 10:04:51 +10:00
Paul 471f5c8852 Updated licenses 2022-11-11 07:50:19 +10:00
Paul 0a4f638633 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into log-packet-output 2022-11-10 23:21:40 +10:00
Paul bcb8f1a05d Use PokemonDTO for packets involving full Pokemon instances 2022-11-10 23:21:31 +10:00
Hiroku 7f49356294 Merge branch 'forge-3d-pokeball-fix' into 'main'
Moved erroring mixin to fabric distro only, used forge API for 3d pokeball model

See merge request cable-mc/cobblemon!202
2022-11-10 13:04:06 +00:00
Licious17 26f569d2ac Moved erroring mixin to fabric distro only, used forge API for 3d pokeball model 2022-11-10 12:15:05 +00:00
Hiroku e715f50472 Merge branch 'small-texture-based-errors' into 'main'
Small Texture Based Errors

See merge request cable-mc/cobblemon!201
2022-11-10 12:08:28 +00:00
Licious17 7bd1f9ad95 Fixed white apricorn block texture typo 2022-11-10 11:54:59 +00:00
dhi_holo 48dc45f8fe Yeah
healing_machine particle path fixed

apricorn_stage_0 no longer complains about mipmap levels in log
2022-11-10 21:42:35 +10:00
Paul c3bd45401c Log packets n stuff 2022-11-10 20:52:17 +10:00
Paul 8217d00b4f Fixed Pidgey head turning 2022-11-10 20:24:12 +10:00
Paul a678f8d98e Fixed illegal access to ModelIdentifier in the server 2022-11-10 20:08:11 +10:00
Paul 933f748802 Merge remote-tracking branch 'origin/main' 2022-11-10 19:49:32 +10:00
Paul a5bf3ed76f Mass update of animations, textures, models, and implemented poses for various pokemon 2022-11-10 19:49:21 +10:00
Hiroku bd90307658 Merge branch 'pokeball-n-apricorn-changes' into 'main'
Pokeball and apricorn changes

See merge request cable-mc/cobblemon!200
2022-11-10 08:53:45 +00:00
LiciousandHiroku d4d7a2b47d Pokeball and apricorn changes 2022-11-10 08:53:45 +00:00
Hiroku 02929b2168 Merge branch 'tiny-branch' into 'main'
Ball tag and crafting Advancement fix

See merge request cable-mc/cobblemon!199
2022-11-10 08:51:49 +00:00
Paul aad2e9934a Do a bunch of stuff after data sync instead of after login 2022-11-09 21:08:09 +10:00
Paul 9f3f3e35b5 Script updates to work from new dir [skip-ci] 2022-11-09 18:34:47 +10:00
MoeBoy76 52f04633b1 Merge branch 'main' of https://gitlab.com/cable-mc/cobblemon into tiny-branch 2022-11-09 18:28:59 +11:00
MoeBoy76 c501deefce Ball tag and crafting Advancement fix 2022-11-09 18:28:41 +11:00
Paul 5404f4456a Migrate some of the ps1 scripts so they don't end up in the jar 2022-11-08 21:13:17 +10:00
Hiroku f2e8fcbe23 Merge branch 'model-resizing' into 'main'
Resized models and hitboxes.

See merge request cable-mc/cobblemon!198
2022-11-08 09:39:01 +00:00
Hiroku 11dafaeec7 Merge branch 'plank-recipes' into 'main'
Apricorns and Advancements (Mostly)

See merge request cable-mc/cobblemon!197
2022-11-08 09:38:26 +00:00
Hiroku 66b97b3f82 Merge branch 'data-sync-compression' into 'main'
Data sync compression

See merge request cable-mc/cobblemon!196
2022-11-08 09:37:21 +00:00
Veraxiel ea56433426 Resized many models and hitboxes. Updated Bidoof family spawn data. 2022-11-08 04:19:53 -05:00
Paul ac93c80e93 Fixed Blaziken's legs moving like crazy, fixed Tentacruel being buried in its walk 2022-11-08 17:52:58 +10:00
Paul af12931caa Fixed battle state not being cleared when changing saves, causing a soft lock on many actions 2022-11-07 22:17:00 +10:00
dhi_holo 24045dcf65 Candy XS Down
Moved it down a pixel
2022-11-07 21:55:58 +10:00
dhi_holo 46297dbfb4 Advancement Changes
Changed a couple icons, and made a new advancement for interacting with a healing machine (full_heal)
2022-11-07 21:31:14 +10:00
Licious17 ce336fafdd Clear up merge changes that affect the new StatProvider 2022-11-07 11:31:05 +00:00
Licious17 c4bcee2268 Merge branch 'main' into data-sync-compression
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/pokemon/IVs.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/pokemon/Pokemon.kt
2022-11-07 11:28:39 +00:00
dhi_holo 295b6ba753 Advancements to one tab
Collapsed advancements into a single tab
2022-11-07 20:55:44 +10:00
dhi_holo 00d7170636 Particles
Modified the healing machine and pc models to use different textures for the particles, added a texture for the pc's particles
2022-11-07 20:40:33 +10:00
dhi_holo f860b746bc Loot Tables
Added loot tables for all of the remaining apricorn wood blocks, and the saplings/seeds, as well as the PC and Healing Machine
2022-11-07 18:23:24 +10:00
Paul 5cbebb8136 Fixed Showdown pub/priv messages being mixed up, causing health desync 2022-11-07 17:02:15 +10:00
Paul a8b04d0289 Fixed all pokemon (according to Showdown) being male 2022-11-07 16:59:33 +10:00
Paul 03e079cb3b Fixed 31 IVs being impossible 2022-11-07 16:59:11 +10:00
Paul cc75756a02 Doubled healer charge speed, fixed crucial issue in calculating how much charge is needed to heal a party 2022-11-07 15:25:06 +10:00
Paul 500c9f3f39 Added option for global exp multiplier, default is 2.0 because open world Pokémon is slow 2022-11-07 15:13:12 +10:00
Paul 7bc5221e2c Prevent battles against dead or dying Pokémon (it just makes sense) 2022-11-07 15:11:30 +10:00
Paul a026eece2f Improved logging for failed packet decode/handle, improved hygiene of data sync packets 2022-11-07 15:10:31 +10:00
Paul da2be51db6 Redirect challenge attempts at a player's pokemon to the player themselves 2022-11-07 13:01:56 +10:00
Licious17 d20e8db033 Fix apricorn door render 2022-11-06 16:36:27 +00:00
dhi_holo ed8314545a Big Small Changes
Added a bunch of recipes, fixed up some tags, added the advancements for all of the new recipes, fixed up a few things in the lang in regards to advancements and Apricorn Buttons, slightly reorganised the recipe advancements to match Mojang's system, and hopefully didn't break anything
2022-11-07 02:01:14 +10:00
Licious17 8cc444f6db Fix IV/EV loading with new stat system, fixed duplicate property encoding/decoding in species and forms 2022-11-06 15:22:29 +00:00
Licious17 9184ac3f54 Remove "stat." suffix from the identifier for Stats 2022-11-06 14:29:28 +00:00
Licious17 f0e950312a Remove network constraint on StatProvider, make the CobblemonStatTypeAdapter default to the Cobblemon namespace for convenience sake 2022-11-06 14:23:42 +00:00
Licious17 508884dcbe Add StatProvider#all 2022-11-06 13:15:01 +00:00
Licious17 144690861e License stuff 2022-11-06 13:00:52 +00:00
Licious17 7edcf12ade Major refactor of Stats 2022-11-06 12:57:48 +00:00
Hiroku b4fc371521 Merge branch 'permission-level-changes' into 'main'
Perm level changes

See merge request cable-mc/cobblemon!195
2022-11-06 10:17:27 +00:00
Licious17 878e1e406e Change permission level on general cheat commands to prevent command blocks from using them, fix missing lang on party slot argument type 2022-11-06 09:48:03 +00:00
Paul 97f3174a8a Apricorns drop seeds while harvesting with configurable chance, updated the lang that says to break it 2022-11-06 19:36:36 +10:00
Paul f26dd3503e Fixed size and hitbox not syncing to the client 2022-11-06 19:20:19 +10:00
Paul d9fe3378da Licenses dammit 2022-11-06 15:23:28 +10:00
Paul 3f9ee2fa9d Added striped=red/blue argument for Basculin 2022-11-06 15:15:32 +10:00
Paul b1adfe601c Fixed item interaction evolutions not eating the item when you're in survival 2022-11-06 15:04:32 +10:00
Paul 4d27959ef7 Fixed default permissions sucking 2022-11-06 14:38:45 +10:00
Paul cf9ed881f2 Merge remote-tracking branch 'origin/main' 2022-11-06 12:19:18 +10:00
Paul 1f2135140a Clear an entity of a battle once the battle has ended, even if it stopped suddenly, server should not allow challenges to owned or busy pokemon 2022-11-06 12:19:08 +10:00
Hiroku b6c67d1776 Merge branch 'fabric-permission-api-support' into 'main'
Fabric Permission API support

See merge request cable-mc/cobblemon!194
2022-11-06 01:35:06 +00:00
Paul 529e0dc9f7 Sync labellevel better, the property needs reworking, stop battles when players logout and remove pokemon when owners logout 2022-11-06 11:30:42 +10:00
Licious17 cfa3d1fcf8 Implement support for Lucko' fabric-permission-api 2022-11-06 00:53:55 +00:00
Paul 53d0022392 Merge remote-tracking branch 'origin/main' 2022-11-06 10:50:58 +10:00
Paul 77f132e809 Change "id not set" value to 0 because JSON is being weird in data 2022-11-06 10:50:47 +10:00
Hiroku adc4042b18 Merge branch 'forge-permission-api-support' into 'main'
Forge Permission API support

See merge request cable-mc/cobblemon!193
2022-11-06 00:29:25 +00:00
Paul a1aec2f1c2 Apply ownerUuid canBattle check more broadly 2022-11-06 10:19:26 +10:00
Licious17 d792d71c67 Merge branch 'main' into forge-permission-api-support 2022-11-05 23:57:32 +00:00
Licious17 15eb1b8053 Resolved alias situation 2022-11-05 23:57:08 +00:00
Paul 022a01c370 Fixed gender ratios being ignored in many cases 2022-11-06 09:16:10 +10:00
Paul 19ade7d602 Mute battle logging again 2022-11-06 09:07:38 +10:00
Paul 37c8ce736f Fixed /pokegive being an alias for /checkspawn 2022-11-06 08:34:46 +10:00
Paul a056d73e87 Merge remote-tracking branch 'origin/main' 2022-11-06 08:25:45 +10:00
Paul 01357388b5 Use ugly solution for data registry sync again 2022-11-06 08:25:36 +10:00
Paul aafe7f1cdc Further despawner tweaks 2022-11-06 08:25:22 +10:00
Hiroku e76497f1f7 Merge branch 'mini-release-tweaks' into 'main'
Correct Masterball recipe output and update to Tauros species data

See merge request cable-mc/cobblemon!192
2022-11-05 22:24:40 +00:00
Hiroku ae2a60b7a6 Merge branch 'pokemon-properties-argument-fix' into 'main'
Pokemon Properties argument and general command fixes

See merge request cable-mc/cobblemon!191
2022-11-05 22:11:43 +00:00
MoeBoy76 8f31e2a5a9 Correct Masterball recipe output and update to Tauros species data 2022-11-06 09:07:45 +11:00
Licious17 3678d99e22 Remove alias for commands to prevent permissions being ignored 2022-11-05 20:10:03 +00:00
Licious17 92b53af406 Fix default PermssionResolver 2022-11-05 19:54:21 +00:00
Licious17 d28b1c06cc Fix empty CobblemonPermissions#all 2022-11-05 19:50:01 +00:00
Licious17 b0bcad1275 Start impl 2022-11-05 19:32:32 +00:00
Licious17 f22b8591c6 Cleanup, differentiate self and other targeting commands to avoid brigadier being struggling to suggest arguments 2022-11-05 11:29:45 +00:00
Licious17 f29e5149be Merge branch 'main' into pokemon-properties-argument-fix
# Conflicts:
#	common/src/main/kotlin/com/cobblemon/mod/common/command/PokemonEditCommand.kt
#	common/src/main/kotlin/com/cobblemon/mod/common/command/argument/PokemonPropertiesArgumentType.kt
2022-11-05 10:38:20 +00:00
Hiroku d04d5ea420 Merge branch 'FreeGuy-main-patch-70260' into 'main'
Translated nearly everything for release. Only Pokémon descriptions left.

See merge request cable-mc/cobblemon!190
2022-11-05 10:29:12 +00:00
Fire Guy 415f04ca31 Translated nearly everything for release. Only Pokémon descriptions left. 2022-11-05 10:26:57 +00:00
Paul 428ba5486c Fixed data sync issue properly by blocking the net thread with those packets 2022-11-05 20:24:31 +10:00
Paul e36bd08698 Scaled Pidgeot better and gave it proper posing, fixed hitbox on Golem 2022-11-05 20:18:58 +10:00
Paul 9003512b61 Update licenses 2022-11-05 19:55:22 +10:00
Paul 8295f0ab8a Merge conflicts, scale and hitbox Meowth 2022-11-05 19:54:39 +10:00
Paul 970e9e5243 Merge branch 'stock-animations' of gitlab.com:cable-mc/pokemon-cobbled
 Conflicts:
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/CuboneModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/DrowzeeModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/ExeggutorModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/GengarModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/GolemModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/GravelerModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/HypnoModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/MarowakModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/MeowthModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/PersianModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/SlowbroModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/SlowpokeModel.kt
	common/src/main/kotlin/com/cobblemon/mod/common/client/render/models/blockbench/pokemon/gen1/VenonatModel.kt
2022-11-05 19:49:29 +10:00
Paul 312ed1de0b Implemented status removal, fixed issues showing statuses in battle GUI 2022-11-05 19:46:17 +10:00
Paul 991ceb3953 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into status-effect
 Conflicts:
	common/src/main/kotlin/com/cobblemon/mod/common/client/gui/battle/BattleOverlay.kt
	common/src/main/kotlin/com/cobblemon/mod/common/net/messages/client/battle/BattlePersistentStatusPacket.kt
	common/src/main/resources/assets/cobblemon/ui/battle/battle_status_brn.png
	common/src/main/resources/assets/cobblemon/ui/battle/battle_status_frz.png
	common/src/main/resources/assets/cobblemon/ui/battle/battle_status_par.png
	common/src/main/resources/assets/cobblemon/ui/battle/battle_status_psn.png
	common/src/main/resources/assets/cobblemon/ui/battle/battle_status_slp.png
	common/src/main/resources/assets/cobblemon/ui/battle/battle_status_tox.png
	common/src/main/resources/assets/pokemod/lang/en_us.json
2022-11-05 19:01:26 +10:00
Paul 9cfe75d6e4 Added BattlePersistentStatusPacket 2022-11-05 19:00:33 +10:00
Veraxiel 3c5b7ad490 Fixed behaviors for some Pokémon. 2022-11-05 04:26:58 -04:00
Hiroku 04f4c9ee1f Merge branch 'spawning-improvements' into 'main'
Spawning improvements

See merge request cable-mc/cobblemon!189
2022-11-05 07:36:11 +00:00
Paul d2b6966d17 Fixed canSeeSky being a shit value calculated shittily, breaking submerged spawning entirely 2022-11-05 17:19:43 +10:00
Paul b3d4fb24d2 Fixed wrong save folder for JSON player data 2022-11-05 17:19:16 +10:00
Paul 4ce13959d2 Spawning improvements, rework chunk checker 2022-11-05 16:37:02 +10:00
Village 16804e9f8f battle status 2022-11-05 01:56:22 -04:00
Paul 469a7a4c67 README update [skip-ci] 2022-11-05 13:37:17 +10:00
Paul 8035e3b755 Fixed a few other bits still saying Pokemod 2022-11-05 13:32:45 +10:00
Paul e2d3acfc7a Renamed to Cobblemon 2022-11-05 13:19:53 +10:00
Hiroku b66f17f6c6 Merge branch 'recipe-update' into 'main'
Recipe update

See merge request cable-mc/pokemon-cobbled!188
2022-11-05 01:46:57 +00:00
MoeBoy76 3c86a54d1e Recipe update 2022-11-05 12:43:58 +11:00
Hiroku c7ad5aee41 Merge branch 'poke-ball' into 'main'
Sprites for poke ball items

See merge request cable-mc/pokemon-cobbled!187
2022-11-05 01:43:51 +00:00
TestandHiroku e0811ad1d5 Sprites for poke ball items 2022-11-05 01:43:51 +00:00
Paul bdbcbab492 Fixed a bunch of pokemon lacking normal forms so having empty movesets 2022-11-05 11:13:47 +10:00
Paul 461652b4f8 Ghoulish solution to data sync race condition 2022-11-05 11:12:43 +10:00
Aggrotadpole 3834782e66 Create stock animations for: Cubone, Marowak, Drowzee, Hypno, Exeggutor, Gengar, Graveler, Golem, Meowth, Persian, Slowpoke, Slowbro and Venonat 2022-11-04 20:06:11 -04:00
Paul 5c55b80bca Added some logging lines 2022-11-05 09:54:07 +10:00
Paul dfeee1df21 Detect if IDs should be applied from Moves#reload 2022-11-05 08:33:58 +10:00
Licious17 ae53bcfd3e Add ToDo for later 2022-11-04 20:43:24 +00:00
Licious17 1cde638fbf Synchronize server side move ID with client 2022-11-04 19:39:09 +00:00
Licious17 03177cbe44 Implement ClientDataSynchronizer into Learnset 2022-11-04 18:42:40 +00:00
Licious17 11417ec64b Remove extra ByteBuf write op 2022-11-04 18:33:58 +00:00
Licious17 05a664f4b7 Cleanup some stuff regarding properties argument 2022-11-04 18:30:34 +00:00
Licious 41cdc330cc Merge branch 'data-sync-improvements' into 'main'
Fixed syncing of learnset, stabilize registry sync order, fix client logging...

See merge request cable-mc/pokemon-cobbled!186
2022-11-04 14:09:49 +00:00
Hiroku 48cb07d0f0 Merge branch 'advancements-staging' into 'main'
Recipe book and Advancement tree cleanup

See merge request cable-mc/pokemon-cobbled!185
2022-11-04 13:37:13 +00:00
Paul 7cacd10487 Use writeNullable and readNullable for _moves 2022-11-04 23:27:09 +10:00
Paul 22291bd1c7 Make isClient internal 2022-11-04 23:24:28 +10:00
Paul a286fc0899 Fixed syncing of learnset, stabilize registry sync order, fix client logging warnings for ability parsing when it shouldn't be doing it 2022-11-04 23:17:45 +10:00
Hiroku 01139e9950 Merge branch 'apricorn-equality' into 'main'
Fix apricorn distribution

See merge request cable-mc/pokemon-cobbled!184
2022-11-04 13:04:42 +00:00
MoeBoy76 b1dd6e3a1c Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into advancements-staging 2022-11-05 00:00:18 +11:00
MoeBoy76 a885b39d47 Recipe Advancements and single tree cleanup 2022-11-04 23:59:20 +11:00
Licious17 6c7dfa0dd7 Fix asset typo 2022-11-04 12:53:59 +00:00
Licious17 979d460d41 Fix apricorn distribution 2022-11-04 12:43:34 +00:00
Hiroku 6f9d1aabe7 Merge branch 'la-move-removal' into 'main'
LA move removal

See merge request cable-mc/pokemon-cobbled!183
2022-11-04 12:32:05 +00:00
Licious17 997c3cf34a Merge branch 'main' into la-move-removal 2022-11-04 11:31:19 +00:00
Hiroku 52447ed410 Merge branch 'advancements-staging' into 'main'
Starting Advancements

Closes #106

See merge request cable-mc/pokemon-cobbled!179
2022-11-04 11:29:32 +00:00
Licious17 d938c8cd9d Silently skip currently unimplemented LA moves 2022-11-04 11:28:38 +00:00
Hiroku e527529b30 Merge branch 'we-are-better-than-animals' into 'main'
Server properties allowAnimals no longer affects Pokemon

See merge request cable-mc/pokemon-cobbled!182
2022-11-04 11:24:04 +00:00
Paul 5af905c49f Remove references to un-added hatching mechanics 2022-11-04 21:11:17 +10:00
MoeBoy76 0c6b4ef635 Merge branch 'advancements-staging' of https://gitlab.com/cable-mc/pokemon-cobbled into advancements-staging 2022-11-04 21:53:30 +11:00
MoeBoy76 19eb0b273e Advancement tree sorting 2022-11-04 21:51:29 +11:00
Paul d445e9e25a Updating licenses 2022-11-04 19:06:06 +10:00
Paul 91b37ddd40 Improve advancements by using generic wrapping, parent first_catch with root advancement 2022-11-04 18:51:53 +10:00
Nick ec60c9102a Server properties allowAnimals no longer affects Pokemon 2022-11-03 22:09:59 -07:00
Paul 573e6a8822 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into advancements-staging 2022-11-04 12:18:07 +10:00
Paul 65c12b98dd Merge remote-tracking branch 'origin/main' 2022-11-04 12:02:15 +10:00
Paul 6f3fbfef5f Retuned spawning defaults and despawning variables to allow more activity further from the player 2022-11-04 12:02:00 +10:00
Paul ad2b081dfc Yanma should always be flying 2022-11-04 12:01:40 +10:00
Paul 3c135f4ed9 Allow Pokemon to spawn near the spawn cause, fixing some checkspawn issues 2022-11-04 12:01:28 +10:00
Paul da8facfb45 Fixed tag syntax issue in is_tundra 2022-11-04 12:00:58 +10:00
MoeBoy76 26ca81b77f Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into advancements-staging 2022-11-04 12:58:06 +11:00
MoeBoy76 0095306401 Shiny and Type-specific Advancements 2022-11-04 12:57:51 +11:00
Hiroku c32dae6664 Merge branch 'spawning-optimization' into 'main'
Fine, we'll do it ourselves

See merge request cable-mc/pokemon-cobbled!181
2022-11-04 01:43:48 +00:00
Nick 44d187b9c5 Main merge 2022-11-03 18:41:11 -07:00
Nick 90c76373eb Fine, we'll do it ourselves 2022-11-03 18:36:56 -07:00
Paul 52ca804c9c Removed silly function that was just written to confirm backticks worked lol [skip-ci] 2022-11-04 11:00:54 +10:00
Paul d806d10c15 Fixed pokemon type drawing issues in summary menu, open info page by default 2022-11-04 11:00:13 +10:00
Paul c59d9ffef1 Fixed gender not being corrected in most cases 2022-11-04 09:34:56 +10:00
Paul b7090ac0c0 Merge remote-tracking branch 'origin/main' 2022-11-04 09:23:50 +10:00
Paul 516410fe61 Fixed a bunch of pokemon not having normal forms and so megas were the default 2022-11-04 09:22:11 +10:00
Hiroku 044ff09643 Merge branch 'some-fixes' into 'main'
Some fixes

See merge request cable-mc/pokemon-cobbled!180
2022-11-03 23:16:29 +00:00
Licious17 24480a5b75 Prevent usage of PC and healing machine inside of battle 2022-11-03 21:31:25 +00:00
Licious17 6caf688e3f Fix item interactions being possible on battling Pokemon entities 2022-11-03 21:22:04 +00:00
Licious17 89998d209d Add Pokemon#canBeHealed, fixed HealingMachineBlock#onUse preventing healing if HP is full despite status or move PP 2022-11-03 21:20:28 +00:00
MoeBoy76 a1490db16f Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into advancements-staging 2022-11-04 07:58:07 +11:00
Veraxiel ed7a2d4f0a Fixed spawn files. Edited apricorn gen tags. 2022-11-03 14:42:18 -04:00
Paul 50de006a66 Fixed typo in ore_water_stone_normal.json 2022-11-03 22:00:36 +10:00
Paul 045937ec67 /givepokemon and /spawnpokemon now require a species name or the word 'random' 2022-11-03 22:00:27 +10:00
Paul 4d8ac676b1 Fixed catching a wild pokemon in battle sending the flee message 2022-11-03 21:40:05 +10:00
Paul 337c3c1475 Fixed summary GUI issues with move bench and evo conflicting, unhooked pokenav for now since it's not used for anything 2022-11-03 20:43:08 +10:00
MoeBoy76 92c4d8df5b Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into advancements-staging 2022-11-03 21:24:14 +11:00
MoeBoy76 c315d772fb Battle Victory Advancement base 2022-11-03 21:23:54 +11:00
Paul ca17c571ca Fixed lan worlds betterer 2022-11-03 20:14:09 +10:00
Paul 877ae05bd4 Merge remote-tracking branch 'origin/main' 2022-11-03 19:55:30 +10:00
Paul 3f663e6c81 Fixed lan worlds not handling data syncing properly, preventing starters and causing crashes 2022-11-03 19:55:15 +10:00
Paul d6a459f699 Fixed Cleffa, Eevee, Pidgey, Zubat, and Bellossom not being shoulder mountable 2022-11-03 19:28:51 +10:00
Paul 5e10c74a9f Fixed missing lang for Bold and Quiet natures 2022-11-03 19:23:39 +10:00
Paul fa438556e1 Updated de_de 2022-11-03 19:19:34 +10:00
Paul 0be24b4f03 Fixed pokemon not initializing with a non-Pressure ability 2022-11-03 19:17:44 +10:00
MoeBoy76 7f170f5e5e Licencing 2022-11-03 20:14:12 +11:00
MoeBoy76 920b1aa5b8 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into advancements-staging
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/api/events/PokemodEvents.kt
2022-11-03 20:02:57 +11:00
MoeBoy76 6b6409e0c6 Added Catch and Evolution Advancements and Hatch barebones 2022-11-03 20:00:49 +11:00
Veraxiel f74c0fb593 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled 2022-11-03 04:53:48 -04:00
Veraxiel 613d2b1287 Added biome tags to apricorn genning. Updated species info. Biome and ore tags. 2022-11-03 04:53:36 -04:00
Hiroku c4d2c29ce6 Merge branch 'spawning-optimization' into 'main'
Chunk Caching, avoid chunk generation requests

See merge request cable-mc/pokemon-cobbled!178
2022-11-03 08:34:15 +00:00
Nick afa78382fb Use a chunk skipping cache, and ask the chunk instead of the world for a block state 2022-11-02 19:55:20 -07:00
Hiroku 055a984ad3 Merge branch 'summary-info' into 'main'
Summary GUI, HAs, various fixes

See merge request cable-mc/pokemon-cobbled!177
2022-11-02 22:08:57 +00:00
Paul 8c0533588c Merge remote-tracking branch 'origin/main' 2022-11-02 22:53:02 +10:00
Paul 93d49a8825 Generalised the evolution hint message so it occurs for any optional evolution being unlocked 2022-11-02 22:51:27 +10:00
Licious17 c73bf15952 Added missing dynamaxBlocked property to Eternatus, Zacian and Zamazenta 2022-11-02 12:15:52 +00:00
Licious17 2f40463738 Fix the ominous wind typos in LA assets 2022-11-02 12:03:40 +00:00
Paul 8712fd28c0 Skew level ranges toward the player's even when the ranges don't intersect, don't prevent spawns that are out of range of the player 2022-11-02 21:49:48 +10:00
Paul 496e1a4eec Fixed Caterpie animations, fixed Mankey being very slightly raised off the ground 2022-11-02 21:37:40 +10:00
Paul 9df0e00f4f Fixed apricorns not growing with fully grown apricorns during chunk gen 2022-11-02 21:18:27 +10:00
Paul 542455d0b1 compile error 2022-11-02 20:37:42 +10:00
Paul df48f2050a licenses 2022-11-02 20:09:33 +10:00
Paul 84af6d9f9f Updated de_de 2022-11-02 19:55:36 +10:00
Paul 374b879149 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into summary-info
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/Pokemon.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/Species.kt
	common/src/main/resources/data/pokemod/species/generation1/gyarados.json
2022-11-02 19:32:58 +10:00
Hiroku a4c8a75b8f Merge branch 'species-asset-update' into 'main'
Species asset and properties update

See merge request cable-mc/pokemon-cobbled!176
2022-11-02 09:30:34 +00:00
LiciousandHiroku 9ab908d87b Species asset and properties update 2022-11-02 09:30:34 +00:00
Hiroku 83b1153212 Merge branch 'ore-changes' into 'main'
Ore generation changes

See merge request cable-mc/pokemon-cobbled!173
2022-11-01 13:00:25 +00:00
LiciousandHiroku b283ba7d31 Ore generation changes 2022-11-01 13:00:24 +00:00
Paul e76008ee59 Raised default starter level to 10 2022-11-01 22:59:24 +10:00
Paul 16ba55fb28 Fixed HA's not carrying into evolutions, fixed change of ability not sending to client, added HA spec 2022-11-01 22:59:12 +10:00
Paul accf6828b6 Fixed hidden abilities being as common as regular abilities 2022-11-01 18:20:37 +10:00
Hiroku 1140b9e925 Merge branch 'spawning-optimization' into 'main'
First pass at Spawning Optimization

See merge request cable-mc/pokemon-cobbled!175
2022-11-01 08:17:04 +00:00
Veraxiel 6e6b855ddf Updated species files of Magikarp, Gyarados, and Dragonair. 2022-11-01 02:21:16 -04:00
Nick a5b4c8b7cb First pass at spawning-optimization 2022-10-31 22:16:29 -07:00
Veraxiel 2d7622799a Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled 2022-10-31 18:20:13 -04:00
Veraxiel fc92877fff Added spawn file for Basculin. Updated ore biomes. 2022-10-31 18:19:55 -04:00
Hiroku 28edbad3b1 Merge branch 'player-slice-fix' into 'main'
Player slice fix

See merge request cable-mc/pokemon-cobbled!174
2022-10-31 22:00:41 +00:00
Hiroku 6ac35f1a43 Merge branch 'pc-improvements' into 'main'
Added release button to PC, fixed Ekans summary idle animation having an ending

See merge request cable-mc/pokemon-cobbled!171
2022-10-31 21:25:40 +00:00
Hiroku 07e83743ce Merge branch 'stock-animations' into 'main'
Fix affectAction crash, create initial stock animation for ninetales

See merge request cable-mc/pokemon-cobbled!172
2022-10-31 21:25:32 +00:00
Anne Ominous 9a1d4633b9 Moved min and max Y-level check to AreaSpawner instead of each of its implementations 2022-10-31 17:15:14 -04:00
Anne Ominous 09734201d0 Fix "totally awful slice" from PlayerSpawner 2022-10-31 13:38:31 -04:00
Paul b9e77681a3 Added more details and rearranged summary GUI (info + stats), ability name and desc lang 2022-10-31 21:59:10 +10:00
Paul 71dd02bb2c Fixed Eevee not being animated in UIs 2022-10-31 21:58:02 +10:00
Paul 78c5ef4d6c Fixed stat calculator giving Pokémon some unholy stat totals 2022-10-31 21:45:42 +10:00
Aggrotadpole 3cc91b3bed Simplify affectAction 2022-10-30 23:22:56 -04:00
Aggrotadpole d1a15b76ee Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into stock-animations
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/client/render/models/blockbench/pokemon/gen1/NinetalesModel.kt
2022-10-30 21:17:54 -04:00
Paul e3836f8a3f Added release button to PC, fixed Ekans summary idle animation having an ending 2022-10-31 10:47:41 +10:00
Aggrotadpole ebbced6049 Merge remote-tracking branch 'origin/stock-animations' into stock-animations
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemod/common/api/spawning/influence/PlayerLevelRangeInfluence.kt
2022-10-30 20:46:18 -04:00
Aggrotadpole 41161c2265 Fix affectAction crash + create initial stock animation 2022-10-30 20:26:21 -04:00
Aggrotadpole 8a8829b4cb Fix affectAction crash + create initial stock animation 2022-10-30 19:48:42 -04:00
Hiroku ffe7a44bbc Fixed dedicated servers not registering packets 2022-10-30 23:29:20 +00:00
Paul 367f68fcd2 Merge remote-tracking branch 'origin/main' 2022-10-30 20:31:26 +10:00
Paul c89ce4834d Implemented shiny spawning at 8192, added shiny substitute, and created fallback for unimplemented shinies 2022-10-30 20:30:56 +10:00
Hiroku 0ed90ba0a5 Merge branch 'friendship-fix' into 'main'
Friendship cleanup n fixes

See merge request cable-mc/pokemon-cobbled!170
2022-10-30 09:59:03 +00:00
Paul cc8b5e5aed Remove friendship extractor from the battle initialize packet 2022-10-30 18:45:38 +10:00
Paul 744848cfc4 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into friendship-fix
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/Pokemon.kt
2022-10-30 18:43:46 +10:00
Paul f6a273398f Merge branch 'PortraitAdjustments' of gitlab.com:cable-mc/pokemon-cobbled 2022-10-30 17:46:55 +10:00
Paul af7b129019 Fixed keybinds not working properly on Forge, cleaned up networking to fix Forge clients on login 2022-10-30 17:46:33 +10:00
Hiroku 3aeef73fd9 Fixed crash caused by Zapdos json 2022-10-30 06:53:55 +00:00
Paul 4817323a99 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled 2022-10-30 16:35:17 +10:00
Paul ddc0bbad7f Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into PortraitAdjustments 2022-10-30 15:59:34 +10:00
Paul 9683b0d7aa Merge remote-tracking branch 'origin/PortraitAdjustments' into PortraitAdjustments 2022-10-30 15:55:56 +10:00
Paul 56344cc8ce Animations for Zubat and Ditto, scaled and hitboxes all remaining in-game pokemon 2022-10-30 15:55:44 +10:00
Hiroku 30202739fa Merge branch 'apricorn-creative-clone-fix' into 'main'
Apricorn block changes

See merge request cable-mc/pokemon-cobbled!169
2022-10-30 01:23:29 +00:00
Hiroku a9b2282bc9 Merge branch '#127-experience-gain-level-cap-fix' into 'main'
Level cap checks

Closes #127

See merge request cable-mc/pokemon-cobbled!168
2022-10-30 01:12:02 +00:00
LiciousandHiroku 7078f332d0 Level cap checks 2022-10-30 01:12:01 +00:00
Licious e1c9844a6a Introduce Apricorn utility API 2022-10-29 23:55:45 +01:00
Licious 0d302ef2a7 Add temporary passive friendship increase while Pokémon are in the party 2022-10-29 23:32:52 +01:00
Licious 7b04b965c6 Fix experience causing level up to only trigger one level up friendship mutation regardless of how many levels are gained, fix default config for max friendship not being 255 2022-10-29 23:08:50 +01:00
Licious 11831c31ba Allow mutation of the friendship calculator for level ups 2022-10-29 22:43:26 +01:00
Licious 050e3c2d0d Add friendship query command 2022-10-29 22:42:30 +01:00
Licious 1d2fed90fa Rename generation 8 level up friendship calculator 2022-10-29 22:17:41 +01:00
Licious 700679ce82 Introduce FriendshipMutationCalculator API 2022-10-29 22:16:25 +01:00
Licious 9fefc4b001 Fix oopsie on mutation when earning experience 2022-10-29 22:01:52 +01:00
Licious 0924f4ddd3 Fix CI build 2022-10-29 21:56:40 +01:00
Licious f2e4ed9dfe Sanitize loaded friendship value from disk on server side to respect current config. 2022-10-29 21:54:31 +01:00
Licious e692aaf611 Cleaned up friendship implementation, made max friendship a configurable property instead of a code only mutation, removed unnecessary methods and range creations 2022-10-29 21:53:02 +01:00
Licious 9556427cf4 Added friendship property for easier debug and user friendly :) 2022-10-29 21:08:04 +01:00
Licious 9dd5e94dac License stuff 2022-10-29 17:45:24 +01:00
Licious 856d3894bb Added apricorn pick block functionality, refactored ApricornBlock, allow placement of apricorns using the item in creative mode 2022-10-29 17:42:28 +01:00
Licious 5908a8490a Posed Weezing portrait 2022-10-29 12:56:20 +01:00
Licious f74dd4d55e Posed Wigglytuff portrait 2022-10-29 12:54:27 +01:00
Licious 0597b97d68 License stuff 2022-10-29 12:48:02 +01:00
Licious 67f68637bc Posed Yanma portrait 2022-10-29 12:47:06 +01:00
Licious caf68ae21c Posed Wooper portrait 2022-10-29 12:45:56 +01:00
Licious 6be6d1cb56 Posed Umbreon portrait 2022-10-29 12:44:28 +01:00
Licious 578821bac0 Posed Slowking portrait 2022-10-29 12:37:40 +01:00
Licious 45318c6a11 Posed Quagsire portrait 2022-10-29 12:31:50 +01:00
Licious ff7399bc17 Posed Kingdra portrait 2022-10-29 12:28:47 +01:00
Licious 6ed00b0de4 Posed Igglybuff portrait 2022-10-29 12:27:09 +01:00
Licious 7386e95cf0 Posed Espeon portrait 2022-10-29 12:21:20 +01:00
Licious 54291c2c3d Posed Blissey portrait 2022-10-29 12:17:39 +01:00
Paul 2c9952d563 Scaled more pokemon 2022-10-29 21:11:42 +10:00
Paul a7aaf77a0e Fixed client scheduled tasks not executing when F1 has hidden the GUIs 2022-10-29 19:41:34 +10:00
Paul 912b507b63 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into PortraitAdjustments 2022-10-29 19:32:19 +10:00
Hiroku 48e39c9e3e Merge branch 'NewPokeBalls' into 'main'
Added new pokeballs + recipes. The 6 reskinned pokeballs don't have icons in the party yet.

See merge request cable-mc/pokemon-cobbled!161
2022-10-29 09:32:07 +00:00
Paul c00ff5eab7 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into PortraitAdjustments 2022-10-29 19:31:52 +10:00
Paul b67de1903c Merge branch 'PortraitAdjustments' of gitlab.com:cable-mc/pokemon-cobbled into PortraitAdjustments 2022-10-29 19:31:37 +10:00
Paul daab86a502 Updated heaps of animations and scaled many pokemon with hitboxes 2022-10-29 19:31:27 +10:00
Hiroku ad20bfe2c1 Merge branch 'link-cable-functionality' into 'main'
Link cable impl and cleanup

See merge request cable-mc/pokemon-cobbled!166
2022-10-29 04:44:27 +00:00
Nick b5e7b7a22d Make Hiroku happy 2022-10-28 21:15:52 -07:00
Hiroku bef760a15f Merge branch 'arclight-fix' into 'main'
Fix Arclight Launch Capability

See merge request cable-mc/pokemon-cobbled!167
2022-10-29 04:11:42 +00:00
NickandHiroku 39e3f47574 Fix Arclight Launch Capability 2022-10-29 04:11:42 +00:00
Licious 9d5db12712 Posed Swampert portrait 2022-10-28 18:18:39 +01:00
Licious 8ece28f7e9 Posed Rayquaza portrait 2022-10-28 18:14:00 +01:00
Licious 9e8ffff3cc Posed Minun and Plusle portraits 2022-10-28 18:08:33 +01:00
Licious 3a4910c551 Posed Mudkip portrait 2022-10-28 17:56:02 +01:00
Licious 1136365707 Posed Marshtomp portrait 2022-10-28 17:53:05 +01:00
Licious 53d5dbb576 Posed Combusken portrait 2022-10-28 17:50:02 +01:00
Licious 0586696ed8 Posed Blaziken portrait 2022-10-28 17:32:07 +01:00
Licious e02c1688b9 Posed Yanmega portrait 2022-10-28 17:02:54 +01:00
Licious bb0632a0c8 Posed Prinplup portrait 2022-10-28 17:00:16 +01:00
Licious 9b188486d0 Posed Piplup portrait 2022-10-28 16:57:59 +01:00
Licious c3bcf99bdf Posed Lopunny portrait 2022-10-28 16:52:14 +01:00
Licious 1d013b6784 Posed Leafeon portrait 2022-10-28 16:46:04 +01:00
Licious e8c151a9cb Posed Glaceon portrait 2022-10-28 16:42:04 +01:00
Licious 7ad5d652a9 Posed Empoleon portrait 2022-10-28 16:40:06 +01:00
Licious 448d0fd806 Posed Buneary portrait 2022-10-28 16:36:44 +01:00
Licious e35b838e89 Posed Bibarel portrait 2022-10-28 16:34:32 +01:00
Licious 69472be91b Fix item interaction evolution allowing the continuous consumption of items 2022-10-28 16:25:46 +01:00
Licious 96b385bb90 License stuff 2022-10-28 16:01:38 +01:00
Licious 96022cda00 Implement link cable functionality, remove unnecessary hierarchy in evolution items and evolution stones, add temporary feedback prompts to evolution item usage 2022-10-28 15:59:58 +01:00
Paul c180aeef6c Merge remote-tracking branch 'origin/PortraitAdjustments' into PortraitAdjustments 2022-10-28 23:54:31 +10:00
Paul 0a2076ec96 Updated animations for many pokemon, added valencian forms 2022-10-28 23:54:20 +10:00
Licious d90cf53061 Posed Dwebble line portraits 2022-10-28 13:23:57 +01:00
Licious d81814b974 Posed Maractus portrait 2022-10-28 13:17:55 +01:00
Licious f08789fdb1 Posed Emolga portrait 2022-10-28 13:14:33 +01:00
Licious 19ae2b60b9 Posed Sylveon portrait 2022-10-28 13:11:51 +01:00
Licious f1bc02b7cf Posed Steenee and Tsareena portraits 2022-10-28 13:06:11 +01:00
Licious 16dc3eb408 Posed Poipole line portraits 2022-10-28 12:58:43 +01:00
Paul fc9431a9a5 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into PortraitAdjustments 2022-10-28 21:50:54 +10:00
Licious 92d3640014 Posed Mimikyu portrait 2022-10-28 12:48:38 +01:00
Licious 352e361197 Posed Litten line portraits 2022-10-28 12:45:49 +01:00
Paul 0c133cf001 Added many new shiny textures, updated many models and animations 2022-10-28 21:41:35 +10:00
Licious 3ddd1fae78 Posed Dartrix and Rowlet portrait, pending Decidueye animations 2022-10-28 12:30:10 +01:00
Licious 9d3fc53f0c Posed Kleavor portrait 2022-10-28 12:23:19 +01:00
Paul fe0cf55d0c Many scaled pokemon, added Crobat model 2022-10-28 20:55:42 +10:00
Hiroku 1523a41f4c Merge branch '#119-properties-tab-completion' into 'main'
Pokemon Properties tab completion support

Closes #119

See merge request cable-mc/pokemon-cobbled!165
2022-10-28 02:31:17 +00:00
Paul 7147dfea7f Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled 2022-10-28 12:22:01 +10:00
Paul 07d3cba29e Unnecessary wildcard import 2022-10-28 12:14:28 +10:00
Licious 8b5d0d3127 Implemented a properties' completion registry, sync of server custom properties suggestions on the client added 2022-10-27 17:24:03 +01:00
Licious 9662f03e4b Implemented suggestion for property values 2022-10-27 14:07:38 +01:00
Paul 34b972da6b Fixed upside down pokeballs 2022-10-27 22:59:38 +10:00
Hiroku c94ad1eff1 Merge branch 'apricorn-stuff-n-things' into 'main'
Apricorn Progression clarification

See merge request cable-mc/pokemon-cobbled!164
2022-10-27 11:45:46 +00:00
Paul 4f541abf4c Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into NewPokeBalls 2022-10-27 21:09:45 +10:00
EvanMacMillan 7ac864e394 Updated Abra texture/model, Fixed portrait for abra, aerodactyl, and arbok lines. 2022-10-27 00:47:26 -05:00
Licious d8df1ade1d License stuff 2022-10-26 17:19:40 +01:00
Licious 0bcb1ea7e1 Fix placed features registering under Minecraft namespace 2022-10-26 17:13:50 +01:00
Licious ddb18583ad Added various advancements to clarify Apricorn "progression" 2022-10-26 17:07:41 +01:00
Hiroku ba69b7904e Merge branch 'sp-datapack-sync-prevention' into 'main'
Move SP check from fabric impl to common default

See merge request cable-mc/pokemon-cobbled!163
2022-10-26 12:04:47 +00:00
Licious d40542feb9 Move SP check from fabric impl to common default 2022-10-26 12:33:49 +01:00
Hiroku 9a7f2e216c Merge branch 'bug-hunt-10-21-22' into 'main'
Launch + Pokeheal Bug Fixes

See merge request cable-mc/pokemon-cobbled!162
2022-10-26 11:32:39 +00:00
Nick 3ed37eb970 Fix launch bugs with forge and common, allow pokeheal to delegate to source of command with no args 2022-10-25 18:13:17 -07:00
Paul af4d5df99d Turned off Showdown logging for launch 2022-10-25 18:40:04 +10:00
Village 25751e9932 enable showdown startup 2022-10-24 23:46:27 -04:00
Village b87f08518d summary 2022-10-24 23:43:01 -04:00
Village 48dec20182 icons 2022-10-24 23:37:45 -04:00
Village 7f7c1ce95d Merge branch 'NewPokeBalls' of https://gitlab.com/cable-mc/pokemon-cobbled into NewPokeBalls 2022-10-24 22:16:30 -04:00
Paul b5183edd91 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into adding-models
 Conflicts:
	common/src/main/resources/data/pokemod/species/generation1/lapras.json
2022-10-24 22:39:14 +10:00
Paul 8758870747 Stock animated Kleavor 2022-10-24 22:35:07 +10:00
Paul e4864959ab Stock animated Bounsweet, Steenee, Tsareena, Poipole, Naganadel 2022-10-24 22:21:53 +10:00
Paul 7ff13caab0 Stock animated Rowlet, Dartrix, Decidueye, Litten, Torracat, Incineroar 2022-10-24 19:52:53 +10:00
Paul 7f7c52e960 Stock animated Emolga and Maractus 2022-10-24 19:05:41 +10:00
Paul 78d21223ff Fixed is_overworld tag 2022-10-24 18:36:52 +10:00
Paul 3b012154c3 Added stock animations for Bidoof, Bibarel, Buneary, Lopunny, Pachirisu, Mamoswine 2022-10-24 18:36:42 +10:00
EvanMacMillan 8236239afe Added new pokeballs + recipes. The 6 reskinned pokeballs don't have icons in the party yet. 2022-10-24 01:53:28 -05:00
Paul 2f96ecb3ef Removed stone axe move from Kleavor since that ain't a main gen move and it makes me confused and scared 2022-10-24 12:53:53 +10:00
Paul 9842bb2ad1 Added stock animations for Plusle, Minun, Piplup, Prinplup, Empoleon 2022-10-24 12:52:45 +10:00
Paul 1df7b27694 Fixed issues with data syncing species in singleplayer 2022-10-24 12:52:20 +10:00
Veraxiel 27da98708d Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled 2022-10-22 04:15:08 -04:00
Veraxiel b14dc42b30 Added movement data to species info for current Pokémon. 2022-10-22 04:15:00 -04:00
Paul 6228a437f6 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into adding-models 2022-10-22 16:04:38 +10:00
Paul 0e73ba3176 Updated licenses for Pokemod 2022-10-22 16:03:59 +10:00
Paul fee0ccab2b Fixed yanma and yanmega spawn files 2022-10-22 15:42:42 +10:00
Paul 912431e6eb Convert neededNearbyBlocks to use RegistryLikeCondition 2022-10-22 15:37:17 +10:00
Paul a3540589e5 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into adding-models
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/FormData.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/Species.kt
2022-10-22 15:32:27 +10:00
Veraxiel 259fd38e61 Added and updated spawn files. Added drops for many Pokémon. Updated biome tags. 2022-10-21 23:16:02 -04:00
Paul 9fb48d5461 Stock animated Mudkip, Marshtomp, updated licenses for new model classes 2022-10-22 12:40:48 +10:00
Paul 14fb7b840c Stock animated Torchic, Combusken, Blaziken, Blissey, Slowking, Kingdra 2022-10-22 12:24:40 +10:00
Paul ab2e258b51 Stock animated Yanma, Yanmega, Politoed 2022-10-22 11:43:17 +10:00
Veraxiel c3bea055a2 Updated ore spawn biomes. Updated is_freezing biome tag. 2022-10-21 05:53:43 -04:00
Veraxiel d297c44d2b Added preset foliage 2022-10-21 08:10:24 +00:00
Veraxiel b26765ef81 Updated is_highlands.json 2022-10-21 08:01:29 +00:00
Veraxiel 622dcd505d Updated urban.json 2022-10-21 08:00:42 +00:00
Veraxiel 235634d8cf Updated river.json 2022-10-21 07:27:45 +00:00
Veraxiel 13f5a891d3 Updated river.json 2022-10-21 07:27:28 +00:00
Veraxiel a5fe473ca0 Updated freshwater.json 2022-10-21 07:27:09 +00:00
Veraxiel c4100b9d40 Added tag is_volcanic 2022-10-21 07:22:44 +00:00
Veraxiel 17c7e95baa Updated is_tundra.json 2022-10-21 07:21:16 +00:00
Veraxiel e33b959146 Added tag is_thermal 2022-10-21 07:20:25 +00:00
Veraxiel f5cd94500b Updated is_temperate.json 2022-10-21 07:19:20 +00:00
Veraxiel 2f8f79dd17 Updated is_taiga.json 2022-10-21 07:17:37 +00:00
Veraxiel 3822c6aa01 Updated is_swamp.json 2022-10-21 07:16:11 +00:00
Veraxiel 52eb216325 Updated is_spooky.json 2022-10-21 07:15:41 +00:00
Veraxiel 31c70e2ab8 Updated is_snowy.json 2022-10-21 07:15:03 +00:00
Veraxiel 6d017ef053 Added tag is_sky 2022-10-21 07:12:59 +00:00
Veraxiel aaefc466b6 Added tag is_savanna 2022-10-21 07:10:38 +00:00
Veraxiel 2ea1d6ab02 Updated is_sandy.json 2022-10-21 07:08:37 +00:00
Veraxiel 2a54fb6130 Added tag is_river 2022-10-21 07:07:58 +00:00
Veraxiel 93171a0d8e Updated is_freshwater.json 2022-10-21 07:07:00 +00:00
Veraxiel 86409d8d82 Updated is_reef.json 2022-10-21 07:06:14 +00:00
Veraxiel 0f9b643996 Updated is_plains.json 2022-10-21 07:05:17 +00:00
Veraxiel 00ea6d0551 Updated is_peak.json 2022-10-21 07:04:13 +00:00
Veraxiel 934e2ebb81 Updated is_mushroom.json 2022-10-21 07:03:19 +00:00
Veraxiel adcb615fbb Updated is_mountain.json 2022-10-21 07:02:22 +00:00
Veraxiel 7a84c78980 Updated is_magical.json 2022-10-21 07:01:01 +00:00
Veraxiel 3571f0a5fd Added tag is_lush 2022-10-21 06:59:37 +00:00
Veraxiel 38e542adf5 Added tag is_jungle 2022-10-21 06:58:17 +00:00
Veraxiel 90c3a8d98e Updated is_highlands.json 2022-10-21 06:57:03 +00:00
Veraxiel 19045b524b Delete is_crag.json 2022-10-21 06:56:27 +00:00
Veraxiel a9c7c284f0 Updated is_forest.json 2022-10-21 06:55:50 +00:00
Veraxiel 87c19631ce Added tag is_island 2022-10-21 06:55:31 +00:00
Veraxiel c8e25a8a6d Added tag is_hills 2022-10-21 06:53:01 +00:00
Veraxiel af02e15553 Updated is_highlands 2022-10-21 06:50:41 +00:00
Veraxiel 3a79cb49f3 Added tag is_highlands 2022-10-21 06:50:21 +00:00
Veraxiel 64ffdeba7e Added tag is_forest 2022-10-21 06:48:30 +00:00
Veraxiel ebde8fce7c Updated is_arid.json 2022-10-21 06:46:22 +00:00
Veraxiel f2601bd9e0 Updated is_grassland.json 2022-10-21 06:45:39 +00:00
Veraxiel 17a585f224 Updated is_glacial.json 2022-10-21 06:41:56 +00:00
Veraxiel 7d301288fc Added tag is_freezing 2022-10-21 06:39:52 +00:00
Veraxiel 6494acf06a Updated is_freshwater.json 2022-10-21 06:37:01 +00:00
Veraxiel 8c75dea9e9 Updated is_floral.json 2022-10-21 06:35:42 +00:00
Veraxiel d22295da8a Added tag is_dripstone 2022-10-21 06:32:57 +00:00
Veraxiel 9bf52112cd Updated is_desert.json 2022-10-21 06:31:35 +00:00
Veraxiel 9f1d2925b8 Added tag is_deep 2022-10-21 06:30:08 +00:00
Veraxiel ff0f7e5793 Updated is_cold.json 2022-10-21 06:28:44 +00:00
Veraxiel d1aefb81f5 Updated is_coast.json 2022-10-21 06:26:48 +00:00
Veraxiel 228dfd7d42 Updated is_badlands.json 2022-10-21 06:25:30 +00:00
Veraxiel f355a01310 Updated is_arid.json 2022-10-21 06:24:18 +00:00
Hiroku 87bacfb203 Merge branch 'datapack-sync-fix' into 'main'
Datapack sync fix

See merge request cable-mc/pokemon-cobbled!160
2022-10-21 03:57:11 +00:00
Paul b3dd45d9e7 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into datapack-sync-fix
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/FormData.kt
2022-10-21 13:17:27 +10:00
Paul e8a8316d54 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into adding-models 2022-10-21 13:14:35 +10:00
Paul 507a94bb66 Added Yanma, Yanmega, Politoed, Wooper, Quagsire, Tsareena, Torracat, Litten, Incineroar, Torchic, Combusken, Blaziken, Mudkip, Marshtomp, Swampert, Swinub, Piloswine, Mamoswine, Steenee, Slowking, Sizzlipede, Centiskorch, Rowlet, Dartrix, Decidueye, Rayquaza, Piplup, Prinplup, Empoleon, Poipole, Plusle, Minun, Pachirisu, Naganedel, Mimikyu, Maractus, Dwebble, Crustle, Bunearly, Lopunny, Kleavor, Kingdra, Emolga, Bounsweet, Blissey, Bidoof, Bibarel, and Basculin 2022-10-21 13:14:12 +10:00
Veraxiel fe50f24120 Updated is_abyss.json 2022-10-20 22:41:49 +00:00
Veraxiel cc128c4d80 Updated is_underground.json 2022-10-20 22:39:38 +00:00
Veraxiel bf8c553dc8 Added is_badlands biome tag. 2022-10-20 20:12:27 +00:00
Veraxiel e662069f07 Updated is_arid.json 2022-10-20 20:09:21 +00:00
Veraxiel 634f681444 Updated is_abyss.json 2022-10-20 20:08:21 +00:00
Licious 592fd20927 Add back in file breaking merge 2022-10-20 15:22:37 +01:00
Licious a374cda9fa License stuff 2022-10-20 15:16:54 +01:00
Licious c73cab2585 Revert datapack sync to sync all aspects to the client. 2022-10-20 15:15:17 +01:00
Licious 64336c6a5a Revert asset move 2022-10-20 15:12:49 +01:00
Veraxiel a6156a3114 Edited colors of types. 2022-10-20 04:36:24 +00:00
Paul 1cadfeac7e Added stock animations for Vulpix, Growlithe, Arcanine, Ponyta, Rapidash, Farfetch'd, Doduo, Dodrio, Rhyhorn, Tangela 2022-10-18 14:00:43 +10:00
Paul c69d4a22ba Improve Arbok eye height and cleaned eye height resolving in form and species 2022-10-18 10:49:50 +10:00
Paul c723dbdf12 Fixed Arbok head turning 2022-10-18 10:36:48 +10:00
Hiroku 0aaf419b54 Merge branch 'arbok' into 'main'
Arbok updates

See merge request cable-mc/pokemon-cobbled!159
2022-10-17 03:27:30 +00:00
Paul b552398465 Fixed Arbok legacy pattern, clarified imports in PokemonEntity 2022-10-17 11:37:07 +10:00
Paul a55f34bec6 Arbok corrections and a fix to aspects save/load 2022-10-16 21:46:43 +10:00
Licious 47fe197600 Added sync object interface, moved all default assets of data stuff to prepare for refactor 2022-10-14 15:39:36 +01:00
Licious 3c61a8a44c Fixed mod rename breaking changes, started sync optimization. 2022-10-14 15:14:10 +01:00
Licious c0d7448c19 Merge branch 'main' into datapack-sync-fix
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemod/common/Pokemod.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/PokemodNetwork.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/api/abilities/Abilities.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/api/data/JsonDataRegistry.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/api/moves/Moves.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/api/pokemon/PokemonSpecies.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/FormData.kt
#	common/src/main/kotlin/com/cablemc/pokemod/common/pokemon/Species.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/ClientPacketRegistrar.kt
#	fabric/src/main/kotlin/com/cablemc/pokemoncobbled/fabric/PokemonCobbledFabric.kt
#	forge/src/main/kotlin/com/cablemc/pokemod/forge/mod/PokemodForge.kt
2022-10-14 14:10:45 +01:00
Paul d8a61c6b0d Fixed a compile error 2022-10-14 10:43:54 +10:00
Paul 1137867463 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into arbok 2022-10-14 10:26:34 +10:00
Paul f2752436c1 Added Arbok animation and hood patterns 2022-10-14 10:24:55 +10:00
Hiroku 00ba8432d1 Merge branch 'level-label-display' into 'main'
Level label

See merge request cable-mc/pokemon-cobbled!158
2022-10-13 11:20:01 +00:00
Licious 8aa2f445b5 Fixed some broken loot n tags 2022-10-13 11:53:49 +01:00
Licious 8dde9e6b46 Added exclusive lang entry for level label 2022-10-13 11:26:53 +01:00
Licious af7b1931db Added level label 2022-10-13 10:48:58 +01:00
Hiroku 7ea6927f40 Merge branch 'rename-mod' into 'main'
Rename mod

See merge request cable-mc/pokemon-cobbled!157
2022-10-12 12:07:47 +00:00
Paul 158579bbc8 Merge conflict resolution 2022-10-09 15:11:39 +10:00
Paul 837de45dc9 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into rename-mod
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemod/common/api/storage/adapter/CobbledAdapter.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/api/storage/party/PlayerPartyStore.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/client/PokemodClient.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/client/gui/pc/PCWidget.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/item/ApricornItem.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/world/block/ApricornBlock.kt
	common/src/main/kotlin/com/cablemc/pokemod/common/world/feature/ApricornTreeFeature.kt
	common/src/main/resources/data/pokemod/loot_tables/blocks/black_apricorn.json
	common/src/main/resources/data/pokemod/loot_tables/blocks/blue_apricorn.json
	common/src/main/resources/data/pokemod/loot_tables/blocks/green_apricorn.json
	common/src/main/resources/data/pokemod/loot_tables/blocks/pink_apricorn.json
	common/src/main/resources/data/pokemod/loot_tables/blocks/red_apricorn.json
	common/src/main/resources/data/pokemod/loot_tables/blocks/white_apricorn.json
	common/src/main/resources/data/pokemod/loot_tables/blocks/yellow_apricorn.json
2022-10-09 15:07:37 +10:00
Hiroku e1eef2fb11 Merge branch 'apricorn-improvements' into 'main'
Apricorn cleanup

See merge request cable-mc/pokemon-cobbled!156
2022-10-09 05:05:14 +00:00
Paul 7aebca07d3 Renamed to PokeMod 2022-10-09 14:09:54 +10:00
Paul 0179ae4b1f Unused imports from merge 2022-10-08 21:47:50 +10:00
Paul 77710a33be Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into apricorn-improvements
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
2022-10-08 21:47:17 +10:00
Hiroku 12497466df Merge branch 'evolution-gimmick-support' into 'main'
Evolution gimmicks support

See merge request cable-mc/pokemon-cobbled!154
2022-10-08 11:45:28 +00:00
Hiroku 825c041644 Merge branch 'drops-fixed' into 'main'
Fix overwritten drops

See merge request cable-mc/pokemon-cobbled!155
2022-10-08 11:43:20 +00:00
Paul 670fd4f1e7 Apricorn cleanup:
- Apricorns world gen fully grown
- More apricorns per tree
- Apricorns can drop seeds (1/16)
- Apricorn tree rarity adjusted based on biome tags
2022-10-08 21:33:53 +10:00
NickImpact e4a60d4091 Fix overwritten drops 2022-10-07 17:26:42 -07:00
Licious add9db8661 Cleanup 2022-10-07 18:43:25 +01:00
Licious e9a62efd75 Merge branch 'main' into evolution-gimmick-support
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/battles/ShowdownInterpreter.kt
2022-10-07 18:37:00 +01:00
Paul 6c67ece6be Fixed evo definitions for a bunch of pokemon 2022-10-07 11:45:18 +10:00
Paul 089ab4fc66 Fixed Charizard not flying, Lapras not swimming, Charmander not sleeping 2022-10-07 10:38:59 +10:00
Paul 099dcdfea3 Added posed Sandslash, added Steelix model that was missed 2022-10-06 19:35:15 +10:00
Licious d268ec4fb7 Added eye height syncing for species 2022-10-05 15:15:08 +01:00
Licious 8ff24bfa3e Finished Species and form data S2C sync. 2022-10-05 14:06:39 +01:00
Licious d4d64884ef Register sync packets to CobbledNetwork 2022-10-04 17:41:34 +01:00
Licious 182e3161e9 Added datapack synchronization comm capability. 2022-10-04 17:10:59 +01:00
Licious 4f6a413fd5 Added alternative adapter ID for the level up evolution 2022-10-04 13:35:36 +01:00
Veraxiel 08c67816d3 Update is_abyss 2022-10-04 00:19:23 +00:00
Veraxiel 27b2d1f712 Added is_abyss tag. 2022-10-04 00:14:59 +00:00
Paul a20853940a Fixed several battle issues due to switch and other dispatches not being lined up properly with other battle actions 2022-10-03 19:43:50 +10:00
Paul 706e3d9a81 Interpret miss messages, fix Fabric builds not having Kotlin in them 2022-10-03 18:09:18 +10:00
Paul a46f705aa3 Fixed level range not being set properly in spawn files by expanding json aliases for the field 2022-10-03 17:50:59 +10:00
Hiroku 3a3a0f2074 Merge branch 'more-statuses' into 'main'
More statuses and showdown interpreting and fixes

See merge request cable-mc/pokemon-cobbled!153
2022-10-03 06:49:36 +00:00
Paul b768e9ca2f Update license headers 2022-10-03 16:01:11 +10:00
Paul 5e26b7cd3c Fixed pokemon entities not fainting, again 2022-10-03 15:44:42 +10:00
Paul b22139c9d8 More showdown interpreting including the remaining persistent statuses 2022-10-03 15:41:37 +10:00
Hiroku 3c1b079dd3 Merge branch '#110-last-member-pc-deposit-config' into 'main'
Last party member PC deposit option

Closes #110

See merge request cable-mc/pokemon-cobbled!149
2022-10-02 23:33:18 +00:00
Hiroku 1826eaa46a Merge branch 'showdown-mod-generation-fix' into 'main'
Fix showdown mod data generation

See merge request cable-mc/pokemon-cobbled!152
2022-10-02 22:44:04 +00:00
NickandHiroku 90f730fc59 Fix showdown mod data generation 2022-10-02 22:44:04 +00:00
Licious 2462e4ffde Added evolution complete event, moved Shedinja gimmick, added config option for Shedinja gimmick, added safety to Shedinja gimmick. 2022-10-02 18:14:32 +01:00
Licious 2e616d3d88 Add licenses. 2022-10-02 17:36:49 +01:00
Licious 7a07aa0f9d Added support for battle damage and battle critical hits evolution requirements. 2022-10-02 17:35:54 +01:00
Licious 2a06ba11ce Updated showdown Pokemon data converter to reflect changes on gender ratios, added preliminary support for battle data to sync for evolution context. 2022-10-02 14:36:11 +01:00
Licious c6ae371c01 Merge branch 'main' into #110-last-member-pc-deposit-config 2022-10-02 12:37:22 +01:00
Licious a1f09d9982 Remove leftover mutation of config in ServerSettingsPacketHandler 2022-10-02 12:36:23 +01:00
Hiroku 33012f6e0a Merge branch 'main' into 'main'
Add all available stat jsons, Shedinja evolution capability

See merge request cable-mc/pokemon-cobbled!151
2022-10-02 09:54:11 +00:00
NickandHiroku 24f3391e06 Add all available stat jsons, Shedinja evolution capability 2022-10-02 09:54:11 +00:00
Hiroku 5062899dc4 Merge branch 'model-quirks' into 'main'
Model quirks

See merge request cable-mc/pokemon-cobbled!150
2022-10-02 02:21:13 +00:00
Paul e7a41549c8 Removed another LP reference oops 2022-10-02 12:08:35 +10:00
Paul 291fec6d7a Formatting fix 2022-10-02 11:54:21 +10:00
Paul e87a66fa5a Comment out the LP permission loader thing because it crashin 2022-10-02 11:53:47 +10:00
Paul 61df5fe23e License update 2022-10-01 11:34:16 +10:00
Paul d8e8f9cd62 Implemented looping for model quirks 2022-10-01 09:30:15 +10:00
Paul 6109370b8a Added model quirks for things like blinking 2022-09-30 19:35:54 +10:00
Licious 84537d7dd1 Added ServerSettings client class 2022-09-27 11:22:49 +01:00
Licious aa5933b303 Added license to new classes. 2022-09-27 10:34:24 +01:00
Licious a79dcdf63f Merge branch 'main' into #110-last-member-pc-deposit-config
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
2022-09-27 10:31:20 +01:00
Hiroku dd4c706ebb Merge branch '#118-permission-support' into 'main'
Permission support

Closes #118

See merge request cable-mc/pokemon-cobbled!147
2022-09-26 10:03:18 +00:00
Licious b9068b0fef Merge branch 'main' into #118-permission-support 2022-09-26 10:38:52 +01:00
Licious 6161e7cca4 Differentiate parent permission node from self edit permissions to prevent inheritance. 2022-09-26 10:34:05 +01:00
Paul 08fb107d82 Move fix for pokemon fainting to the Pokemon instead of the showdown interpreter 2022-09-26 17:52:29 +10:00
Paul 3b624215a4 Added animations for Abra and Pinsir, update Tauros animation, fixed pokemon not dying in battle 2022-09-26 17:11:05 +10:00
Hiroku 0e96b4f0f3 Merge branch 'more_battle_logs' into 'main'
More battle msgs

See merge request cable-mc/pokemon-cobbled!148
2022-09-26 03:25:35 +00:00
Hunter df045840f8 Added battle log msgs for
-Protect
-Confusion
-Weather Types
-Failed moves
2022-09-25 23:08:30 -04:00
Paul 8c77fda1cd Removed unnecessary logging of PP changing from battle message 2022-09-26 12:30:02 +10:00
Paul 23a3ad0791 Fixed Elekid model 2022-09-26 12:28:02 +10:00
Licious 5b8c5dc10c Added PermissionLevel and CobbledPermissions, refactored all commands to use appropriate permission level and have a permission 2022-09-25 15:31:57 +01:00
Licious 9b13445351 Added license to permission stuff. 2022-09-25 14:56:45 +01:00
Licious dee89ebbd6 Merge branch 'main' into #118-permission-support 2022-09-25 14:55:32 +01:00
Hiroku 403ed9fee3 Merge branch '#111-pp-comm-support' into 'main'
PP comm expansion

Closes #111

See merge request cable-mc/pokemon-cobbled!146
2022-09-25 11:54:30 +00:00
Paul c5280d91b8 Added license to all new classes for pokemon models 2022-09-25 21:40:53 +10:00
Licious 85b566bef2 Fixed swapping last party Pokémon out being blocked on client. 2022-09-25 12:39:34 +01:00
Licious 35769903e0 Merge branch 'main' into #110-last-member-pc-deposit-config 2022-09-25 12:34:23 +01:00
Licious 7406807eb6 Added settings packet for simple config options sync. Removed server side sync of non permitted PC movements. 2022-09-25 12:34:13 +01:00
Paul 250b3e0f35 Bumped showdown version number 2022-09-25 21:33:09 +10:00
Paul 8a1fa67726 Test fix 2022-09-25 21:31:05 +10:00
Paul c46876ab4f Added all modeled pokemon related to gen1, mostly t-posed 2022-09-25 21:26:47 +10:00
Licious fce4d82168 Preliminary LuckPerms support implementation. 2022-09-24 17:09:25 +01:00
Licious f2758dc34f Added existing requirement optional appending for permission requirements and util for permission and requirement in 1 2022-09-24 16:46:17 +01:00
Licious 2dcecca395 Merge branch 'main' into #111-pp-comm-support
# Conflicts:
#	common/src/main/resources/assets/pokemoncobbled/showdown.json
#	common/src/main/resources/assets/pokemoncobbled/showdown.zip
2022-09-23 17:47:34 +01:00
Licious ba99176833 Merge branch 'main' into #110-last-member-pc-deposit-config 2022-09-23 17:43:18 +01:00
Licious d022520b61 Added config setting to prevent the deposit of the last party member. 2022-09-23 17:42:39 +01:00
Licious 4425d14c77 Document brigadier permission extension function 2022-09-23 13:00:03 +01:00
Licious 476fc77c9d Added PermissionValidator API, implemented default validator for when permissions are unsupported. 2022-09-23 10:41:02 +01:00
Licious 71f2979cd0 Added support for PP updates. 2022-09-23 01:18:11 +01:00
Licious 1bb058d4f0 Fixes showdown zip. 2022-09-23 00:25:05 +01:00
Licious c9ff917482 Attempt at PP update comm, showdown instance not sending message 2022-09-22 23:22:58 +01:00
Paul 8dc6ac73d5 Repackaged pokemon assets to be better sorted and added textures for all gen1 pokemon 2022-09-22 21:44:12 +10:00
Paul e1f465efac File license update /again/ 2022-09-22 17:01:08 +10:00
Hiroku 0c6bd02771 Merge branch 'main' into 'main'
Update Pokemon Propterties Argument Type Parser

See merge request cable-mc/pokemon-cobbled!145
2022-09-22 05:20:29 +00:00
NickandHiroku 0252e425d4 Update Pokemon Propterties Argument Type Parser 2022-09-22 05:20:29 +00:00
Paul 155df5e460 File license update 2022-09-22 11:50:17 +10:00
Paul 11f961692b Updated models/anims/textures for 0001-0020 and added /spawnallpokemon command 2022-09-22 11:34:43 +10:00
Paul bd1dd98b84 Cancel existing wander actions when a battle starts 2022-09-19 17:22:00 +10:00
Paul 99aff499b1 Disable pokemon wandering when they're busy 2022-09-19 17:21:36 +10:00
Hiroku 61c2950370 Merge branch 'improved-shoulder-effects' into 'main'
Improved shoulder effects

See merge request cable-mc/pokemon-cobbled!144
2022-09-19 01:41:33 +00:00
Paul 50453fdfbc Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into improved-shoulder-effects 2022-09-19 00:58:25 +10:00
Paul 7ecaaf4a02 Improved shoulder effect logic 2022-09-19 00:58:12 +10:00
Paul 8d1f1c01ab Fixed previously-saved party stores not being used on login 2022-09-19 00:57:50 +10:00
Hiroku 5f306023e9 Merge branch '#99-entity-hp-vs-pokemon-hp' into 'main'
Set max HP of a pokemon based on its stat, protect entities from damage while...

Closes #99

See merge request cable-mc/pokemon-cobbled!143
2022-09-18 11:52:17 +00:00
Paul 753ed09763 Set max HP of a pokemon based on its stat, protect entities from damage while in battle or otherwise busy 2022-09-18 21:37:26 +10:00
Paul 7397ae559e Update CI scripts for new jar naming 2022-09-18 20:16:06 +10:00
Paul 757969ecc0 Update licenses 2022-09-18 11:43:34 +10:00
Hiroku cce83b89b8 Merge branch 'posed-ai' into 'main'
Implements lots of movement handling for pokemon that can pose across different move controls

See merge request cable-mc/pokemon-cobbled!142
2022-09-17 12:49:05 +00:00
Hiroku 3dfb80fd91 Merge branch 'cleanup/gradle' into 'main'
Gradle Cleanup

See merge request cable-mc/pokemon-cobbled!141
2022-09-17 12:20:58 +00:00
Paul fb23a19ce7 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into posed-ai
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/repository/PokemonModelRepository.kt
2022-09-17 14:35:23 +10:00
Paul 81512812b7 Many pathing fixes 2022-09-17 14:34:16 +10:00
Oliver Whitehead 9eaec5b1da fix: fix clean build 2022-09-17 03:04:58 +01:00
Oliver Whitehead b8b4314265 build: finish cleanup 2022-09-16 18:42:18 +01:00
Oliver Whitehead 35784d532d license: add license headers 2022-09-16 02:34:58 +01:00
Oliver Whitehead 442077ae6c build: initial gradle cleanup (I'm tired) 2022-09-16 02:34:45 +01:00
Hiroku c4887b3e1c Merge branch 'battle-ui-update' into 'main'
UI Update

See merge request cable-mc/pokemon-cobbled!140
2022-09-16 00:22:37 +00:00
TestandHiroku 72a852564c UI Update 2022-09-16 00:22:36 +00:00
Hiroku 39ad710df2 Merge branch 'main' into 'main'
Add support for Reforged/Generations Translators

See merge request cable-mc/pokemon-cobbled!131
2022-09-14 05:15:41 +00:00
NickandHiroku e986661330 Add support for Reforged/Generations Translators 2022-09-14 05:15:41 +00:00
Hiroku 828745d541 Merge branch 'MachopLine' into 'main'
Added Machop Line - Also fixed the FormData *koff* bug. Wait we dont do those here

See merge request cable-mc/pokemon-cobbled!139
2022-09-14 03:25:37 +00:00
EvanMacMillan c02af080a8 Commented out Feints 2022-09-13 22:08:50 -04:00
EvanMacMillan 6310ab22ce Adjusted getPart 2022-09-13 22:00:56 -04:00
EvanMacMillan dfc8badf33 Removed idle-walk, and added singleBoneLook animation 2022-09-13 21:53:11 -04:00
EvanMacMillan ae98cd090f Added Machop Line - Also fixed the FormData *koff* bug. Wait we dont do those here 2022-09-13 21:41:35 -04:00
Hiroku c85f84906d Merge branch 'showdown-custom-pokemon-comm' into 'main'
Custom species Showdown synchronization

See merge request cable-mc/pokemon-cobbled!138
2022-09-13 15:16:48 +00:00
Licious 690b240eb9 Added height and weight attribute to species/forms 2022-09-13 09:43:29 +01:00
Licious e0f868dda2 Fixed non-existing showdown tier data for custom species, fixed showdown instance maxPP 2022-09-12 14:38:38 +01:00
Paul 50de04bc60 Significant smoothing for motion 2022-09-12 22:47:19 +10:00
Licious 00d70770a0 Merge remote-tracking branch 'origin/main' into showdown-custom-pokemon-comm 2022-09-12 13:28:30 +01:00
Licious 4ebc3c4710 Fix form data not creating a correct showdown key. 2022-09-12 13:25:14 +01:00
Licious 2b7bf6a19d Finished form showdown synchronization, added g-max and dynamax possibility properties to species/forms. 2022-09-12 13:10:02 +01:00
Paul 9efc88721a Removed dummy puffer-fish debug code that I forgot about 2022-09-11 21:33:42 +10:00
Paul 4d591ed565 Added land-air AI so birds can switch between poses to reach arbitrary locations (swim AI needs further work) 2022-09-11 21:31:54 +10:00
Paul d5ab4a7c2e Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into posed-ai 2022-09-10 10:10:20 +10:00
Veraxiel 81fb2ae046 Changed spawn biome for 0090-shellder.json 2022-09-09 22:15:40 +00:00
Licious ddde5d496c Showdown synchronization is now working, pending other attributes 2022-09-09 14:48:04 +01:00
Paul ac0db59f11 Merge remote-tracking branch 'origin/main' 2022-09-09 20:44:32 +10:00
Paul 250eeb2c11 Fixed underground spawns doubling up on their conditions 2022-09-09 20:44:16 +10:00
Veraxiel f1521a978a Edited drops for tentacruel.json 2022-09-09 07:39:59 +00:00
Paul 24c9d1d099 Fixed fluid block check in submerged spawning conditions and several biome tags 2022-09-09 17:32:47 +10:00
Paul 8aa4e66f2e Avoid sending too double packet updates for gender assignments in Pokemon 2022-09-09 13:27:57 +10:00
Paul 42c85b9c34 Fixed Pokemon gender assignment leaving many genderless 2022-09-09 13:22:51 +10:00
Hiroku 3f03361e22 Merge branch 'battle-ui' into 'main'
Update Battle UI

See merge request cable-mc/pokemon-cobbled!137
2022-09-09 02:07:23 +00:00
TestandHiroku 26be0c693e Update Battle UI 2022-09-09 02:07:23 +00:00
Licious 0c595a33cc Fix pre evolution showdown data not using the actual Pokémon name. 2022-09-08 18:23:55 +01:00
Licious c7679ab478 Differentiated showdown ID and name for Pokémon, added missing custom formats to Showdown 2022-09-08 18:22:37 +01:00
Licious 824080f799 Fixed showdown mod reloading, temporary change Farfetch'd evolution method. 2022-09-08 17:42:06 +01:00
Licious 7e0727f466 Register AttackDefenceRatioRequirement to the CobbledRequirementAdapter 2022-09-08 16:45:56 +01:00
Licious 61f2b7c5e8 Added more baby Pokémon to fix datapack loading. 2022-09-08 16:44:58 +01:00
Licious f5a82d9240 Add in all baby Pokémon to fix species loading on datapack load, no models added. 2022-09-08 16:27:21 +01:00
Licious 33987bce23 Enabled held item evolution requirement to prevent crash. 2022-09-08 16:08:45 +01:00
Licious 6944390014 Synchronized forms into the base species on showdown. 2022-09-08 15:53:07 +01:00
Licious 98ae483d80 Pass in all ability slots as 'No Ability' to showdown during species synchronization. 2022-09-08 13:52:35 +01:00
Paul 5ada9028e2 Fixed neededNearbyBlocks checks not working 2022-09-08 22:52:16 +10:00
Licious 9f5e8355d4 Added egg group and cycle for Species, added data synchronization for egg groups into showdown. 2022-09-08 13:45:58 +01:00
Paul 143c32f5cb Tweak how drop tables handle 100% drops - drops act without randomizing on the order of checking percentages 2022-09-08 22:28:23 +10:00
Licious 69024ad5dd Start of cobbled -> showdown species data injection 2022-09-08 12:50:14 +01:00
Veraxiel f5319658ac Added drops for weedle.json 2022-09-06 20:11:33 +00:00
Veraxiel 7c5cda0676 Added drops for wartortle.json 2022-09-06 20:11:00 +00:00
Veraxiel 61fab42cb8 Added drops for vulpix.json 2022-09-06 20:10:10 +00:00
Veraxiel bca55bc4b8 Added drops for vulpix.json 2022-09-06 20:09:37 +00:00
Veraxiel 6555921f1b Update vulpix.json 2022-09-06 20:09:24 +00:00
Veraxiel a865ca6530 Added drops for voltorb.json 2022-09-06 20:07:01 +00:00
Veraxiel aa7155706d Added drops for tentacruel.json 2022-09-06 20:06:13 +00:00
Veraxiel f1eb8c90e5 Added drops for tentacool.json 2022-09-06 20:05:07 +00:00
Veraxiel d81d9e9b00 Added drops for tauros.json 2022-09-06 19:57:42 +00:00
Veraxiel e09bdb38a3 Added drops for squirtle.json 2022-09-06 19:48:59 +00:00
Veraxiel 6c604b0d88 Added drops for snorlax.json 2022-09-06 19:48:15 +00:00
Veraxiel d76204f903 Added drops for slowbro.json 2022-09-06 19:46:19 +00:00
Veraxiel 10cab5766f Added drops for seel.json 2022-09-06 19:45:27 +00:00
Veraxiel e4e3026438 Added drops for seaking.json 2022-09-06 19:44:54 +00:00
Veraxiel ddeb4c353b Added drops for scyther.json 2022-09-06 19:44:12 +00:00
Veraxiel 4ba09deec0 Added drops for rhydon.json 2022-09-06 19:42:55 +00:00
Veraxiel 8e3a724e26 Edited drops for seadra.json 2022-09-06 19:42:09 +00:00
Veraxiel 5d7ba4c651 Added drops for seadra.json 2022-09-06 19:41:54 +00:00
Veraxiel 9afae406a9 Added drops for rapidash.json 2022-09-06 19:40:46 +00:00
Veraxiel 9d4b0878c7 Added drops for ponyta.json 2022-09-06 19:40:13 +00:00
Veraxiel 550e18f436 Added drops for poliwhirl.json 2022-09-06 19:39:24 +00:00
Veraxiel 28c7c50832 Added drops for persian.json 2022-09-06 19:38:25 +00:00
Veraxiel 343169e094 Added drops for parasect.json 2022-09-06 19:37:11 +00:00
Veraxiel 1b17b7af9e Added drops for paras.json 2022-09-06 19:36:19 +00:00
Veraxiel d5b9b3f94b Added drops for onix.json 2022-09-06 19:27:58 +00:00
Veraxiel da6e333d20 Added drops for muk.json 2022-09-06 19:26:06 +00:00
Veraxiel 403d2ce946 Added drops for meowth.json 2022-09-06 19:24:25 +00:00
Veraxiel b0f32ec3a4 Added drops for marowak.json 2022-09-06 19:23:06 +00:00
Veraxiel e220017f74 Edited drops for magmar.json 2022-09-06 19:19:48 +00:00
Veraxiel 8c965a156c Edited drops for magmar.json 2022-09-06 19:19:34 +00:00
Veraxiel 80bc12a80e Edited drops for spearow.json 2022-09-06 19:18:33 +00:00
Veraxiel 78d5db5509 Edited drops for pidgeotto.json 2022-09-06 19:17:28 +00:00
Veraxiel af02399fab Edited drops for pidgey.json 2022-09-06 19:17:18 +00:00
Veraxiel 35f3c08809 Edited drops for fearow.json 2022-09-06 19:17:06 +00:00
Veraxiel a96b3baa48 Edited drops for farfetchd.json 2022-09-06 19:16:52 +00:00
Veraxiel 6d7bea1f9a Edited drops for dodrio.json 2022-09-06 19:16:35 +00:00
Veraxiel 49ca06fdce Edited drops for doduo.json 2022-09-06 19:16:20 +00:00
Veraxiel d5364ea0dc Edited drops for electabuzz.json 2022-09-06 19:14:40 +00:00
Veraxiel 8e9a7939ca Edited drops for graveler.json 2022-09-06 19:14:15 +00:00
Veraxiel 4d1151c7c0 Edited drops for kadabra.json 2022-09-06 19:13:42 +00:00
Veraxiel 00c0ed67b4 Added drops for magikarp.json 2022-09-06 19:12:29 +00:00
Veraxiel 4cbe2819ab Added drops for magmar.json 2022-09-06 19:11:34 +00:00
Veraxiel 47fddc26f4 Added drops for machoke.json 2022-09-06 19:06:16 +00:00
Veraxiel d4e29f6572 Added drops for lickitung.json 2022-09-06 19:05:22 +00:00
Veraxiel d99fc32972 Added drops for lapras.json 2022-09-06 19:04:04 +00:00
Veraxiel f5d1390d86 Added drops for metapod.json 2022-09-06 18:54:08 +00:00
Veraxiel 7f902adbda Added drops for kakuna.json 2022-09-06 18:53:40 +00:00
Veraxiel d482390ea6 Added drops for kadabra.json 2022-09-06 18:46:52 +00:00
Veraxiel 28b7c063e3 Added drops for haunter.json 2022-09-06 18:44:20 +00:00
Veraxiel b0196674b3 Edited drops for graveler.json 2022-09-06 18:43:17 +00:00
Veraxiel d2d3e4975e Added drops for ivysaur.json 2022-09-06 18:41:47 +00:00
Veraxiel 5a987affda Edited drops for diglett.json 2022-09-06 18:40:46 +00:00
Veraxiel e88825c0dc Edited drops for dugtrio.json 2022-09-06 18:40:32 +00:00
Veraxiel 57af80c88a Added drops for horsea.json 2022-09-06 18:39:20 +00:00
Veraxiel 5b9d8f7e7f Edited drops for growlithe.json 2022-09-06 18:37:46 +00:00
Veraxiel 104432f498 Added drops for growlithe.json 2022-09-06 18:36:46 +00:00
Veraxiel 773ff5f56d Added drops for grimer.json 2022-09-06 18:35:23 +00:00
Veraxiel 602b62d904 Added drops for graveler.json 2022-09-06 18:33:54 +00:00
Veraxiel c8cf370f61 Added drops for goldeen.json 2022-09-06 18:32:19 +00:00
Veraxiel b51622f87c Added drops for geodude.json 2022-09-06 18:30:33 +00:00
Veraxiel 006cd91cb2 Added drops for pidgeotto.json 2022-09-06 18:29:41 +00:00
Veraxiel ebb7a13e30 Added drops for fearow.json 2022-09-06 18:28:55 +00:00
Veraxiel 6cb4c2eef2 Added drops for spearow.json 2022-09-06 18:27:54 +00:00
Veraxiel c62c7e3b2d Added drops for pidgey.json 2022-09-06 18:27:13 +00:00
Veraxiel 2147c8f786 Added drops for farfetchd.json 2022-09-06 18:26:21 +00:00
Veraxiel 05a5884f6b Added drops for exeggcute.json 2022-09-06 11:11:24 +00:00
Veraxiel f71ca79780 Added drops for electrode.json 2022-09-06 10:27:51 +00:00
Veraxiel 5b59eb3922 Added drops for electabuzz.json 2022-09-06 10:26:45 +00:00
Veraxiel e9dfbde642 Added drops for dratini.json 2022-09-06 10:19:07 +00:00
Veraxiel f541a20a03 Added drops for dragonair.json 2022-09-06 10:18:30 +00:00
Veraxiel 2d132bf592 Added drops for doduo.json 2022-09-06 10:16:54 +00:00
Veraxiel ed01a22d77 Added drops for dodrio.json 2022-09-06 10:16:11 +00:00
Veraxiel ffee4b61e9 Added drops for dugtrio.json 2022-09-06 10:12:40 +00:00
Veraxiel cae3fe8837 Added drops for diglett.json 2022-09-06 10:11:51 +00:00
Veraxiel b1ce00bfd1 Added drops for dewgong.json 2022-09-06 10:02:27 +00:00
Veraxiel 235b14e7bc Added drops for cubone.json 2022-09-06 09:53:38 +00:00
Veraxiel 3e2f124946 Added drops for charmeleon.json 2022-09-06 09:51:01 +00:00
Veraxiel 0ec991477c Added drops for charmander.json 2022-09-06 09:50:12 +00:00
Veraxiel 111c92b89e Added drops for chansey.json 2022-09-06 09:47:07 +00:00
Veraxiel 81cd711dde Edited drops for bulbasaur.json 2022-09-06 09:45:52 +00:00
Veraxiel 5b3ab770c6 Edited drops for abra.json 2022-09-06 09:45:28 +00:00
Veraxiel ef8172e6d7 Added drops for caterpie.json 2022-09-06 09:44:57 +00:00
Veraxiel da8486e8cc Added drops for bulbasaur.json 2022-09-06 09:11:41 +00:00
Veraxiel 4108c89347 Added drops for abra.json 2022-09-06 09:08:39 +00:00
Veraxiel d07d200768 Fixed redundancy in 0130-gyarados.json 2022-09-06 08:15:41 +00:00
Veraxiel 5e9b5a9ae4 Fixed redundancy in 0129-magikarp.json 2022-09-06 08:15:20 +00:00
Veraxiel 09a50b1453 Fixed redundancy in 0119-seaking.json 2022-09-06 08:13:26 +00:00
Veraxiel 6c89fe6a77 Fixed redundancy in 0118-goldeen.json 2022-09-06 08:13:14 +00:00
Veraxiel 3d2cc18958 Fixed redundancy in 0008-wartortle.json 2022-09-06 08:12:32 +00:00
Veraxiel 7af6646dae Fixed redundancy in 0007-squirtle.json 2022-09-06 08:12:13 +00:00
Veraxiel d2e1a1840e Fixed redundancy in 0055-golduck.json 2022-09-06 08:11:39 +00:00
Veraxiel 8ce0982401 Fixed redundancy in 0061-poliwhirl.json 2022-09-06 08:11:12 +00:00
Veraxiel 2a3a16e946 Fixed redundancy in 0060-poliwag.json 2022-09-06 08:10:39 +00:00
Veraxiel 12c881a9b6 Fixed redundancy in 0055-golduck.json 2022-09-06 08:10:15 +00:00
Veraxiel 43a7cec323 Fixed redundancy in 0054-psyduck.json 2022-09-06 08:09:49 +00:00
Veraxiel 1c34019245 Fixed redundancy in 0008-wartortle.json 2022-09-06 08:08:52 +00:00
Veraxiel 91a9df6a2e Fixed redundancy in 0007-squirtle.json 2022-09-06 08:08:29 +00:00
Paul 0e634e1cb7 Fixed Ekans not showing, vastly improved movement detection for animation, fixed mediumfast not being configured in JSONs 2022-09-04 17:54:41 +10:00
Paul 3c6a99f7de Merge branch 'posed-ai' of gitlab.com:cable-mc/pokemon-cobbled 2022-09-04 08:01:39 +10:00
Paul 6951930d0a Fixed AI stuff not being linked correctly for standardForm pokemon 2022-09-04 08:01:22 +10:00
Paul 36b8b2ee8c Fixed charmander no longer sleeping on beds 2022-09-03 14:56:38 +10:00
Paul cd02d1d84d Improve shoulder effects and made Pidgey and Zubat both do the slow fall 2022-09-03 12:35:44 +10:00
Paul d437861579 Merge branch 'posed-ai' of gitlab.com:cable-mc/pokemon-cobbled into broad-motion
 Conflicts:
	forge/src/main/kotlin/com/cablemc/pokemoncobbled/forge/mod/client/PokemonCobbledForgeClient.kt
2022-09-02 20:54:14 +10:00
Paul 36b95ddf63 Added Lapras 2022-09-02 20:47:17 +10:00
Paul ac71cd6573 Better animation on shoulder mounts, Paras/Parasect look animations, Bellossom and Cleffa shoulder mounts 2022-09-02 12:29:38 +10:00
Paul f2c879fd72 Unused import [skip ci] 2022-09-02 11:01:31 +10:00
Paul 7c56fc479c Fixed Voltorb and Electrode issues, added onTransitionInto for poses, fixed multiword props in commands 2022-09-02 10:52:40 +10:00
Paul 7f8263b36d Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into voltorb-and-electrode
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/repository/PokemonModelRepository.kt
2022-09-02 10:01:18 +10:00
Paul 2429b3b4ff Fixed missing file stuff 2022-09-01 20:43:28 +10:00
Paul 29bb44b1cd Added Oddish, Gloom, Vileplume, and Bellossom with evolutions 2022-09-01 20:43:10 +10:00
Paul 93592e2a66 Added Voltorb and Electrode models but they need help 2022-09-01 19:44:14 +10:00
Paul 912d7988c8 Added Mankey and Primeape models 2022-09-01 18:59:03 +10:00
Paul 7192298dd1 Added Paras and Parasect models 2022-09-01 18:40:10 +10:00
Hiroku c15b1ace5d Merge branch '#88-update-to-119' into 'main'
The great 1.19

Closes #88

See merge request cable-mc/pokemon-cobbled!136
2022-08-29 12:01:28 +00:00
Deltric 1cf49f2d63 Update CommandDropEntry.kt 2022-08-29 06:40:00 -05:00
Deltric 0bcb517191 Fix Forge Overlay 2022-08-29 06:34:14 -05:00
Paul 848e25f485 Fixed wild pokemon fleeing not allowing pokemon to be re-battled 2022-08-29 20:55:20 +10:00
Paul 924391b173 Fixed various 1.19 issues 2022-08-29 20:37:09 +10:00
Paul 035ad5ba29 Merge anomalies 2022-08-29 18:55:53 +10:00
Paul 3cb5e6cdd1 Merge branch '#88-update-to-119' of gitlab.com:cable-mc/pokemon-cobbled into #88-update-to-119
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/spawning/context/SpawningContext.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/ai/goals/WildRestGoal.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/evolution/requirements/BiomeRequirement.kt
	forge/src/main/kotlin/com/cablemc/pokemoncobbled/forge/mod/client/PokemonCobbledForgeClient.kt
2022-08-29 18:55:37 +10:00
Paul 801fbef832 Fixed a bunch of asset loading stuff 2022-08-29 18:54:34 +10:00
Paul 5d89e6971f Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #88-update-to-119
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/repository/PokemonModelRepository.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-08-29 18:21:14 +10:00
Paul 38439d284e Fixed text rendering of evolve stuff and changed the level requirement format since realized it's more confusing the way it was 2022-08-29 18:11:47 +10:00
Hiroku 2168ff1b89 Merge branch 'ClefLine' into 'main'
Cleffa Line

See merge request cable-mc/pokemon-cobbled!135
2022-08-29 04:55:25 +00:00
Paul de76affc30 Rework item evolution so it works with the stones 2022-08-29 14:41:43 +10:00
EvanMacMillan df4bde2295 Cleffa Updates - correct json, located in gen1 folder for now.
Clefairy's evolution item renamed
2022-08-28 20:57:22 -04:00
Hiroku 0ff28fe91e Merge branch '#90-battle-fleeing' into 'main'
#90 battle fleeing

Closes #90

See merge request cable-mc/pokemon-cobbled!134
2022-08-28 09:07:35 +00:00
EvanMacMillan 59d7ccca71 Cleffa Line - NOTE: Cleffa's stat json is not included yet. 2022-08-27 14:53:02 -04:00
Paul d84c1d5ead Send party updates during battle so the switch screen makes sense 2022-08-27 14:00:53 +10:00
Paul 2e77738eaf Added fleeing from battles 2022-08-27 11:43:59 +10:00
Paul adecdd04d2 Various work on a centralized AI thing 2022-08-24 21:30:29 +10:00
Deltric 47a38004ec Resource mess 2022-08-21 20:44:31 -05:00
Deltric e4a6809390 Fix name errors and no need to look into gradle issue fix 2022-08-21 04:04:49 -05:00
Hiroku dad37a2ae0 Merge branch 'various-bits' into 'main'
Fix ability JSONs, upgraded remaining non-aspected models, fixed male ratios...

See merge request cable-mc/pokemon-cobbled!133
2022-08-21 04:27:59 +00:00
Paul 6b0ec729c9 Fix ability JSONs, upgraded remaining non-aspected models, fixed male ratios by re-exporting species JSONs, added various new battle messages 2022-08-20 22:28:26 +10:00
Hiroku a5422d2f8c Merge branch 'Add_showdown_prompts_to_lang_file' into 'main'
Add showdown prompts to lang file

See merge request cable-mc/pokemon-cobbled!132
2022-08-19 01:14:57 +00:00
Hypercharge2 1acd3fa051 Changed function name to follow convention 2022-08-18 20:59:40 -04:00
Paul 5c3eeefa20 Fixed outdated loom version being used 2022-08-18 22:51:59 +10:00
Deltric 42c65ffc11 Added infinite status to creative placed healers 2022-08-15 22:05:39 -05:00
Deltric 3e75019767 Sudo Legendary Krabby has been added, you're welcome. 2022-08-15 21:46:57 -05:00
Deltric 54980924cb Update PokemonCobbledForgeClient.kt 2022-08-15 10:34:02 -05:00
Deltric 159a3b88ca Remove sendServerMessage extension 2022-08-15 08:56:14 -05:00
Deltric 15d790fdd5 Remove send server message import 2022-08-15 08:52:59 -05:00
Deltric ea3c9ea641 Fixed item interact evolutions in species 2022-08-15 08:48:52 -05:00
Deltric 9150b5df7d Merge branch 'main' into #88-update-to-119 2022-08-15 08:36:40 -05:00
Paul a374f848b4 Merge remote-tracking branch 'origin/main' 2022-08-15 21:48:13 +10:00
Paul 5d40a38b90 Added spawn files, added stat JSONs for generation 1 2022-08-15 21:48:03 +10:00
Hiroku 09d70a1c47 Update tr_tr.json 2022-08-15 10:46:48 +00:00
Paul 5e4d94c597 Moved Gyarados to aspect system, fixed starter screen issue of displaying starters 2022-08-15 15:40:25 +10:00
Deltric 4d02fbdca6 Ported new classes from main 2022-08-14 22:45:20 -05:00
Deltric 7819970ac6 Commands ported, more arguments, and apricorn fixes. 2022-08-14 22:42:31 -05:00
Deltric 685da31b70 Port resources, Game rules, and extension 2022-08-14 22:42:31 -05:00
Deltric 96d2064d73 Fixed command argument registration 2022-08-14 22:42:31 -05:00
Deltric 7bd4449215 More classes ported with 73 errors remaining 2022-08-14 22:42:31 -05:00
Deltric c230e93afb Initial update stuff 2022-08-14 22:42:02 -05:00
Hiroku 1316df57e2 Merge branch 'batucagdas-main-patch-69431' into 'main'
Translated the mod for Turkish language.

See merge request cable-mc/pokemon-cobbled!128
2022-08-15 01:53:31 +00:00
Hiroku 4a031f24b3 Merge branch 'more-stat-json-work' into 'main'
Updated learnset format in species, upgraded various evolution configuration...

See merge request cable-mc/pokemon-cobbled!126
2022-08-15 01:53:13 +00:00
Paul a870fcb1a2 Renamed RESTING behaviour flag to SLEEPING 2022-08-15 10:43:16 +10:00
Hiroku ebe9d1d57e Merge branch '#19-pc-gui' into 'main'
Initial version of the PC

See merge request cable-mc/pokemon-cobbled!127
2022-08-15 00:25:11 +00:00
Batuhan 30429cfff2 Translated the mod for Turkish language. I start translating dex entries from the beginning because of one mistake. 2022-08-14 23:37:26 +00:00
Deltric e329423265 Rest of PC movement 2022-08-14 14:39:48 -05:00
Deltric 0bac7ca19f Implemented party render, logic coming next 2022-08-14 14:39:48 -05:00
Deltric 8d28f47b7e Correctly placed navigation buttons 2022-08-14 14:39:48 -05:00
Deltric 8414133496 Implement PC GUI pages 2022-08-14 14:39:48 -05:00
Deltric 79ca620216 Fix PC not saving 2022-08-14 14:39:47 -05:00
Deltric 6c965e70b4 progress from other night 2022-08-14 14:39:47 -05:00
Deltric 87015a030d Start to PC 2022-08-14 14:39:47 -05:00
Paul ee38e691ad Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into more-stat-json-work
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-08-13 19:49:16 +10:00
Paul b4e184fb5b Updated learnset format in species, upgraded various evolution configuration bits, added updated stat JSONs for in-game pokemon, update pokemon lang 2022-08-13 19:47:56 +10:00
Hiroku 3fc0bdb3fa Merge branch 'species-changes-support' into 'main'
Species identifier support

See merge request cable-mc/pokemon-cobbled!125
2022-08-11 12:39:52 +00:00
Licious a2d6c2b14d Add support for identifiers on remaining species references using the old name system. 2022-08-11 12:25:53 +01:00
Licious 5c205c62c6 Add support for identifiers on PokemonProperties, fixed PokemonPropertiesArgumentType not consuming the remaining reader. 2022-08-10 20:49:53 +01:00
Hiroku 16ec76f6ac Merge branch 'label-rename' into 'main'
Renamed Pokémon tags to labels.

See merge request cable-mc/pokemon-cobbled!124
2022-08-10 11:52:45 +00:00
Licious 5840a796d5 Renamed Pokémon tags to labels. 2022-08-10 12:29:29 +01:00
Hiroku 7180199a60 Merge branch 'species-data-pack-support' into 'main'
Species data pack support

See merge request cable-mc/pokemon-cobbled!123
2022-08-10 10:52:29 +00:00
Hiroku 118cabf85d Merge branch 'main' into 'main'
Custom Cobbled Capture Calculator and Busy Lock Fix

See merge request cable-mc/pokemon-cobbled!121
2022-08-10 10:51:54 +00:00
Hiroku baab35c2ea Merge branch 'BulbasaurUpdatedModel' into 'main'
Updated Bulbasaur Model

See merge request cable-mc/pokemon-cobbled!117
2022-08-10 10:50:10 +00:00
Licious d9f3a89959 Merge remote-tracking branch 'origin/species-data-pack-support' into species-data-pack-support 2022-08-10 11:40:07 +01:00
Licious 74a6d07ec6 Changed Pokémon tags to be just strings, cleaned up CobbledDataProvider 2022-08-10 11:39:54 +01:00
Paul 9de29420d5 Merge branch 'species-data-pack-support' of gitlab.com:cable-mc/pokemon-cobbled into species-data-pack-support 2022-08-10 16:15:34 +10:00
Paul 03f0aa198b Added texture layers to pokemon models 2022-08-10 16:15:23 +10:00
Licious b8ee7ff7b0 Fix compile error and remove unused import. 2022-08-09 17:04:08 +01:00
Licious 94a0d7c373 Merge remote-tracking branch 'origin/species-data-pack-support' into species-data-pack-support 2022-08-09 17:02:44 +01:00
Licious a11ee9b8f1 Polished flags system, added flag PokemonProperty. 2022-08-09 17:02:32 +01:00
Paul 86bcd06253 Reload spawn pools when PokemonSpecies reloads 2022-08-09 20:28:23 +10:00
Paul 99c16e3151 Converted abilities to data packs 2022-08-09 20:17:26 +10:00
Paul d0c728bfaf Fix lang for /teach and /healpokemon 2022-08-09 19:46:36 +10:00
Paul 8630c0046e Updated Moves to be a DataRegistry 2022-08-09 19:38:43 +10:00
Paul eec2d94722 Prevent reloading Cobbled registries once in-game 2022-08-09 19:02:31 +10:00
Nick DeGruccio 5caafa9ccf Simplify calculation, 3x maximum difficulty increase, unit test 2022-08-09 01:09:15 -07:00
Nick DeGruccio a3ffa90e38 Implement custom Cobbled catch rate calculator, fix busy locks on pokemon being captured lingering 2022-08-08 21:22:11 -07:00
Licious cf0d076ac7 Added species/form tags. 2022-08-08 15:01:40 +01:00
Licious b47dfece4b Expose Species.resourceIdentifier 2022-08-08 14:03:53 +01:00
Paul 99288211e5 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into species-data-pack-support
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-08-08 20:02:32 +10:00
Paul 63ae8144ec Added flagSpeciesFeatures to config for species-specific no-code species features 2022-08-08 19:38:56 +10:00
Paul f03c855b3a Fix compile error from merge and fixed JSON store adaper letting the save file handle hang 2022-08-08 19:22:44 +10:00
Paul 03f7cd1079 Merge remote-tracking branch 'origin/species-data-pack-support' into species-data-pack-support 2022-08-08 19:03:45 +10:00
Paul 5ab7efcbc6 Converted Pokemon models to be JSON-loadable and totally replaceable via resource packs 2022-08-08 19:03:32 +10:00
Hiroku b8a73d0b92 Merge branch 'sidebar-update' into 'main'
Update party sidebar

See merge request cable-mc/pokemon-cobbled!120
2022-08-08 01:32:33 +00:00
Village 6a42384db3 Update party sidebar 2022-08-07 21:14:57 -04:00
Licious 9f5f2942a6 StarterHandler is no longer a registry, made the starter config reload when Species do. 2022-08-07 14:11:43 +01:00
Licious 368f206bf7 Fixed crash with lateinit property, expanded pokédex number species lookup. 2022-08-07 13:00:10 +01:00
Paul 1df7904303 Merge remote-tracking branch 'origin/species-data-pack-support' into species-data-pack-support
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/data/JsonDataRegistry.kt
2022-08-07 19:22:13 +10:00
Paul 8ff58cd917 Updated pose types to be server-side 2022-08-07 19:13:08 +10:00
Licious 9818160d2f Updated species assets to be grouped by generation. 2022-08-06 11:44:09 +01:00
Licious 2d0f19c303 Added datapack awareness to starter screen. 2022-08-06 11:37:13 +01:00
Hiroku f4f3e268d4 Merge branch 'pvp-battles' into 'main'
Pvp battles

See merge request cable-mc/pokemon-cobbled!118
2022-08-06 07:58:56 +00:00
Paul 1a8d520496 Improved generic handling for DataRegistry 2022-08-06 16:11:14 +10:00
Paul d2b71aee32 Fixed compile error 2022-08-06 16:05:11 +10:00
Paul 512ec9db3b Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into species-data-pack-support 2022-08-06 14:17:09 +10:00
Paul a9932e459e Added Raticate faint animation 2022-08-06 14:16:23 +10:00
Licious 2e1a6b55fe Fixed bad import on merge 2022-08-05 15:25:07 +01:00
Licious 2b12ca9c91 Merge remote-tracking branch 'origin/main' into species-data-pack-support
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
2022-08-05 15:24:21 +01:00
Licious 57437bf0e5 Fixed compile issue, made PokemonArgumentType support the identifier system. 2022-08-05 15:08:10 +01:00
Licious 71f074a8b9 Updated evolutions to support identifiers of species. 2022-08-05 14:45:44 +01:00
Licious 5de1ae5fbc Added DataProvider, reworked DataRegistry. 2022-08-05 14:43:31 +01:00
Paul 93c3e00bbc Fix compile error in EvolutionTest 2022-08-05 21:17:51 +10:00
Hiroku 50e1794756 Merge branch '#102-friendship-changes' into 'main'
Friendship raises/lowers based on leveling up and fainting

Closes #102

See merge request cable-mc/pokemon-cobbled!119
2022-08-05 04:28:36 +00:00
Hypercharge2 09b9cc8eed Changed function name to follow convention 2022-08-05 00:15:19 -04:00
Hypercharge2 b6a24ad824 Friendship raises/lowers based on leveling up and fainting 2022-08-04 23:39:20 -04:00
Paul e68c40b731 Fixed merge anomalies 2022-08-05 12:47:17 +10:00
Paul edaa23843a Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into pvp-battles
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/util/PlayerExtensions.kt
2022-08-05 12:42:32 +10:00
Paul f19d0e87f5 Added pvp battles 2022-08-05 12:42:07 +10:00
Paul af5cd62fab Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #65-starter-selection 2022-08-05 10:54:50 +10:00
Paul 15661cb6f1 Added faint animation for Rattata 2022-08-05 10:54:40 +10:00
Paul 00b5ee7d48 Added starter config option for only showing the starter screen notification once 2022-08-05 10:46:42 +10:00
Veraxiel 30eee9142f Update TickingSpawner.kt 2022-08-04 00:50:39 +00:00
BuildTools bbed9d9ee8 Updated Bulbasaur Model 2022-08-03 13:56:04 -04:00
Paul 0c33a86a69 Fix starter prompt not disappearing after checking the starter screen 2022-08-03 22:27:21 +10:00
Paul 247189e9a7 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #65-starter-selection 2022-08-03 22:20:58 +10:00
Paul 326695542c Unused imports 2022-08-03 22:20:03 +10:00
Paul fda0405a2f Moved starter config to its own config so there's no need for CobbledConfig to have pokemon deserialization 2022-08-03 22:19:32 +10:00
Hiroku e89ab7e1a8 Merge branch '#65-starter-selection' into 'main'
#65 starter selection

Closes #65

See merge request cable-mc/pokemon-cobbled!89
2022-08-03 11:50:38 +00:00
Hiroku b21d00df0a Merge branch 'main' into 'main'
Fix Current Health Synchronization

See merge request cable-mc/pokemon-cobbled!116
2022-08-03 11:49:35 +00:00
Nick DeGruccio bfba9d1c3e Move level initialization up, fixes current health synchronization 2022-08-02 19:50:46 -07:00
Paul 1e9ea510c6 Setup prompt handling for starter screen and reworked opening procedure 2022-08-02 23:01:19 +10:00
Licious 0fafa7daf4 Remove leftover code, prepare models to be DataRegistry. 2022-08-02 12:53:26 +01:00
Licious 85012bf97e Created SynchronousJsonResourceReloader started model loading refactor 2022-08-01 22:40:33 +01:00
Licious 876a49f297 Moved species assets, made PokemonSpecies data pack powered. 2022-08-01 14:46:30 +01:00
Paul 52dc30580f Fixes to various things while playtesting 2022-08-01 11:27:21 +10:00
Paul 09036d9cf2 Fixed starter screen saving not being per-singleplayer world and implemented better data handling 2022-08-01 10:37:21 +10:00
Paul 6b929550fa More starter screen polishing and minor fixes 2022-08-01 10:14:28 +10:00
Paul 72ec397dd3 Starter screen polishing 2022-07-31 23:23:14 +10:00
Paul f281a6097c Merge remote-tracking branch 'origin/#65-starter-selection' into #65-starter-selection 2022-07-31 20:25:29 +10:00
Paul 49b7292f81 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #65-starter-selection 2022-07-31 20:24:56 +10:00
Hiroku b380f42a01 Merge branch 'main' into 'main'
Add setPositionSafely, fixes #89

Closes #89

See merge request cable-mc/pokemon-cobbled!114
2022-07-31 07:22:02 +00:00
Paul bf236abb51 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into battle-switch-animation 2022-07-31 17:16:07 +10:00
Paul 8ca0aba8e9 Fixed Blastoise head turning properly 2022-07-31 17:15:48 +10:00
Hiroku b779d42aa1 Merge branch 'battle-switch-animation' into 'main'
Battle switch animation

See merge request cable-mc/pokemon-cobbled!115
2022-07-31 06:06:40 +00:00
Paul 5b4904ce28 Removed comment 2022-07-31 15:47:12 +10:00
Paul be311c161d Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into battle-switch-animation 2022-07-31 15:28:34 +10:00
Paul c6f677e1f9 Fixed Weedle pose issue 2022-07-31 15:28:22 +10:00
Paul ae1c05e784 Completed the sending and recalling animations in battle, minor cleanup with random model stuff 2022-07-31 14:30:16 +10:00
Nick DeGruccio e504d760a9 Add setPositionSafely, fixes #89 2022-07-30 19:33:16 -07:00
Qumoo 093ecafa2b finishing touches to the StarterSelection 2022-07-30 19:56:06 +02:00
Qumoo 5234ca1afc finishing touches to the PlayerData 2022-07-30 19:55:54 +02:00
Qumoo 767027bfdb translations 2022-07-30 19:55:30 +02:00
Qumoo 79a76f7338 Add command for opening the StarterUI again 2022-07-30 19:55:13 +02:00
Qumoo cf4993f683 Add packets for opening the StarterSelectionUI and telling the server what starter was chosen 2022-07-30 19:54:13 +02:00
Paul 41550fc002 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into battle-switch-animation 2022-07-31 00:19:52 +10:00
Paul a608f029df Fixed rescaling and positional issues for starter carousel 2022-07-31 00:17:07 +10:00
Paul 4f0712b974 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #65-starter-selection
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/config/CobbledConfig.kt
2022-07-30 23:19:36 +10:00
Qumoo afa966ff39 add StarterSelectionUI 2022-07-30 13:13:43 +02:00
Qumoo a1d3e6414a update assets & translation 2022-07-30 13:12:36 +02:00
Paul b913a6080b Updated Weedle and Kakuna assets with faints 2022-07-30 15:57:13 +10:00
Paul abc4d1a2b3 Merge remote-tracking branch 'origin/main' 2022-07-30 13:21:39 +10:00
Paul 4ab9571374 Updated Caterpie and Metapod assets with faints, added inert AI properties and applied to Kakuna and Metapod 2022-07-30 13:20:34 +10:00
Hiroku 47490e3206 Added pt_br template 2022-07-29 00:16:43 +00:00
Hiroku 8a089b451e Merge branch 'drops' into 'main'
Drops

See merge request cable-mc/pokemon-cobbled!112
2022-07-28 23:06:03 +00:00
Paul 3bce8141be Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into drops
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/FormData.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Species.kt
2022-07-29 08:49:18 +10:00
Paul 97193977e8 Rename DroppedEvent to LootDroppedEvent 2022-07-29 08:46:47 +10:00
Hiroku d60df9b44f Merge branch '#41-improved-abilities' into 'main'
Upgraded Abilities

Closes #41

See merge request cable-mc/pokemon-cobbled!113
2022-07-28 22:40:37 +00:00
Paul a825a2ee5d Upgraded Abilities 2022-07-28 23:25:43 +10:00
Licious 26d2a803b5 Added move teach command. 2022-07-25 13:39:55 +01:00
Licious d2d507a87d Removed leftover code in ShowdownInterpreter 2022-07-25 13:20:39 +01:00
Licious 7755c3ab94 Added battle switch animation, added MoveArgumentType 2022-07-25 13:19:36 +01:00
Paul 028375dc65 Altered drop system, added item and command drops, works pretty nice 2022-07-25 21:49:17 +10:00
Licious 20d7aedbb0 Added EntityBattleActor and refactored PlayerBattleActor to account for it. 2022-07-25 11:56:24 +01:00
Paul 9391150005 Added item drop system, still needs drop entry implementations 2022-07-25 00:00:28 +10:00
Paul 459e902dc9 Fixed PC and party storages not saving when a newly-added Pokémon is later changed 2022-07-24 20:58:22 +10:00
Paul cad9ca6f91 Removed detached lang line 2022-07-24 16:42:05 +10:00
Paul 5bd24b1394 Fixed PCs not being initialized with the default number of boxes 2022-07-24 16:41:17 +10:00
Paul 45d2d2d193 Fixed niche crash in flat context weighted selector 2022-07-24 13:21:08 +10:00
Hiroku 8ccd6e78e0 Merge branch 'even-more-spawner-things' into 'main'
Even more spawner things

See merge request cable-mc/pokemon-cobbled!111
2022-07-24 01:31:55 +00:00
Paul a487f88d4d Added spawn bucket lang line 2022-07-24 11:05:57 +10:00
Paul 7fdab732cf Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into even-more-spawner-things 2022-07-24 11:05:16 +10:00
Paul 154e2e3561 Merge remote-tracking branch 'origin/main' 2022-07-24 11:04:35 +10:00
Paul 785096e8a6 Various fixes to things like the friendship event and party dirtying etc 2022-07-24 11:04:23 +10:00
Deltric 951a5f65ee Commented debug code 2022-07-24 01:01:28 +00:00
Hiroku d0a1db8394 Merge branch 'ai' into 'main'
Fainting and sleeping for Pokémon

See merge request cable-mc/pokemon-cobbled!110
2022-07-24 00:54:13 +00:00
Deltric 0dfbb0bd87 Removed commented code 2022-07-24 00:34:08 +00:00
Deltric 226fc88d0f Fixed another glaring issue 2022-07-24 00:29:51 +00:00
Deltric d39aaea7be fixed a very very bad bug 2022-07-24 00:28:40 +00:00
Paul 5aa3d7c2f9 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled 2022-07-23 18:01:56 +10:00
Hiroku bfcd74e217 Merge branch '#83-initial-state-syncing' into 'main'
Health, Non-Volatile status, and PP move info.

Closes #83

See merge request cable-mc/pokemon-cobbled!106
2022-07-22 12:55:54 +00:00
Paul fd0e8ab53b Updated Showdown version with latest of #83 and main 2022-07-22 22:43:29 +10:00
Paul 597283e823 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #83-initial-state-syncing 2022-07-22 22:40:39 +10:00
Paul 0e4a2e5faf Update gitignore to get rid of some temp showdown stuff we have when messing around 2022-07-22 22:31:11 +10:00
Paul 8a475b9d8f Removed debug code 2022-07-22 22:17:58 +10:00
Paul 2a0d520be6 Added lang for /checkspawns 2022-07-22 22:15:43 +10:00
Paul f4dc32031c Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into even-more-spawner-things 2022-07-22 21:58:29 +10:00
Paul cdb785c571 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into ai
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/battles/InBattleMove.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/battles/ShowdownInterpreter.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/pokemon/PokemonPoseableModel.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-07-22 17:22:26 +10:00
Paul ac0c444810 Added Pokémon sleeping and fainting 2022-07-22 17:20:51 +10:00
Hiroku f9b62e6124 Fixed spawn loading on Forge 2022-07-22 07:08:12 +00:00
Paul ad7c49030f Fixed internal spawn loading issues on Forge 2022-07-22 17:06:44 +10:00
Paul bffcca9be0 Added checkspawns draft and updated the flat context weighted selector with a new algorithm 2022-07-10 20:38:51 +10:00
Paul 0ffe325458 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into even-more-spawner-things 2022-07-09 23:58:12 +10:00
Hiroku 25ccdf63d9 Merge branch '#67-battle-capturing' into 'main'
#67 battle capturing

Closes #67

See merge request cable-mc/pokemon-cobbled!107
2022-07-09 12:54:04 +00:00
Paul 23fef5a72e Merge branch '#67-battle-capturing' of gitlab.com:cable-mc/pokemon-cobbled into even-more-spawner-things
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/PokemonServerDelegate.kt
2022-07-09 22:43:52 +10:00
Paul 62f93c422e Merge conflict stuff 2022-07-09 22:31:34 +10:00
Paul dbdbf0b343 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #67-battle-capturing
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/spawning/condition/SpawningCondition.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/spawning/context/SubmergedContexts.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/spawning/context/calculators/SubmergedContextCalculators.kt
2022-07-09 22:24:05 +10:00
Paul cf499f5d84 Fix dead'd pokemon being kept half-alive when /kill'd 2022-07-09 22:16:43 +10:00
Paul f84bbccedd Some improvements to spawner performance and configuration 2022-07-09 22:16:15 +10:00
Hiroku 863fcea9e5 Merge branch 'more-spawner-things' into 'main'
Added spawning presets, a spawner config, more spawner documentation, per...

See merge request cable-mc/pokemon-cobbled!108
2022-07-09 11:08:07 +00:00
Paul bdc36d0aba Merge branch 'more-spawner-things' of gitlab.com:cable-mc/pokemon-cobbled 2022-07-09 17:25:53 +10:00
Paul 49770ad3d4 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled 2022-07-09 17:14:42 +10:00
Paul a66fd5dd83 Removed bad context calculator references, oops 2022-07-09 11:24:43 +10:00
Paul cce6163c35 Merge remote-tracking branch 'origin/more-spawner-things' into more-spawner-things 2022-07-09 11:12:14 +10:00
Paul bdbbd1ddf0 Added context weights and compressed submerged context types into a single one 2022-07-09 11:12:04 +10:00
Hiroku ab35627e7e Update rare-desert-land-daytime.json with an example of weight multipliers 2022-07-09 00:03:48 +00:00
Paul 0839a8578e Added AppendageConditions 2022-07-09 09:41:44 +10:00
Paul c4c8085112 Fixed missing adapters for spawn detail preset Gson 2022-07-09 07:37:52 +10:00
Hiroku 144c121592 Merge branch 'tag-support-improvements' into 'main'
Biome spawning condition improvements

See merge request cable-mc/pokemon-cobbled!109
2022-07-08 13:28:09 +00:00
Licious 88e7a8355a Made BiomeTagCondition check if the tag exists during validation. 2022-07-08 14:14:42 +01:00
Paul 00d414a4a3 Added isRaining and isThundering checks 2022-07-08 23:02:27 +10:00
Paul 413b5c495b Added missing files 2022-07-08 22:56:19 +10:00
Paul 14f75babf9 Renamed some fields for consistency 2022-07-08 22:50:12 +10:00
Paul ea7e0a9b0a Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into more-spawner-things 2022-07-08 22:29:03 +10:00
Paul e63ff36638 Allow weightMultipliers to be defined as a singular weightMultiplier, same for its conditions/anticonditions 2022-07-08 22:13:52 +10:00
Paul c57e61cbe8 Added WeightMultipliers as a specific type of SpawningInfluence and attached them to SpawnDetails and presets 2022-07-08 22:04:33 +10:00
Paul cb38c49374 Added spawning presets, a spawner config, more spawner documentation, per entry mod dependencies, some fixes 2022-07-08 21:52:20 +10:00
Licious 09abc8cafb Cleanup BiomeTagCondition. 2022-07-08 11:53:35 +01:00
Licious 9e69230c61 Added Cobbled biome tags. 2022-07-08 11:36:27 +01:00
Veraxiel 3e4d6e5b09 Added Biome Tags. 2022-07-08 05:42:47 -04:00
Paul 6bcfec5409 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #67-battle-capturing
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
2022-07-08 10:35:18 +10:00
Paul 88797690ff Added client-side 'catch' button to explain how to capture in battle 2022-07-08 10:34:28 +10:00
Paul ab37100de8 Implemented battle capturing as well as minor other battle stuff 2022-07-08 10:12:24 +10:00
Deltric 889c6c7aa4 Health, Non-Volatile status, and PP move info.
Current health, non-volatile status if they have one, move pp, and move max pp are now synced to showdown on battle start.
2022-07-06 19:01:19 -05:00
Hiroku 4dc4fe3d69 Merge branch 'relocate-geo-dir' into 'main'
Fixed issue with geo directory

See merge request cable-mc/pokemon-cobbled!105
2022-07-06 13:17:53 +00:00
ItsJustChris 0c67dc2cc4 Merge branch 'relocate-geo-dir' of https://gitlab.com/cable-mc/pokemon-cobbled into relocate-geo-dir 2022-07-05 23:55:05 -04:00
ItsJustChris 429273e1e5 Moved Eevee from geo to bedrock 2022-07-05 23:55:03 -04:00
ItsJustChris e1311811fd Fixed issue with geo directory
Changed geo directory to bedrock to fix the crash when launched with GeckoLib.
2022-07-05 23:53:10 -04:00
ItsJustChris e9b62a1343 Fixed issue with geo directory
Changed geo directory to bedrock to fix the crash when launched with GeckoLib.
2022-07-05 23:50:56 -04:00
Hiroku 6171b8c900 Merge branch '#82-biome-tag-spawning-support' into 'main'
Add support for biome identifiers or tags in spawning conditions.

Closes #82

See merge request cable-mc/pokemon-cobbled!104
2022-07-02 23:38:22 +00:00
Paul 20998ab608 Fix minor error in ocean-and-jungles test set 2022-07-03 09:18:57 +10:00
Paul f9db2b42ba Some work on capturing in battle 2022-07-03 09:17:48 +10:00
Licious 0972482242 Reworked BiomeLikeConditionAdapter to be inline with Minecraft datapack sysntax, fixed TimeRange of day. 2022-07-02 19:40:06 +01:00
Licious 6b176a84d7 Attached current world spawn biome registry to BiomeLikeCondition. 2022-07-02 12:18:19 +01:00
Licious 655b148e7a Merge branch 'main' into #82-biome-tag-spawning-support 2022-07-02 11:46:30 +01:00
Licious ea5879b24f Added BiomeLikeCondition, BiomeIdentifierCondition, BiomeTagCondition and serialization implementation 2022-07-02 11:46:13 +01:00
Hiroku 8d7b120beb Merge branch '#19-pc-storage' into 'main'
Networking for PC storage and some reworking of party networking packets,...

See merge request cable-mc/pokemon-cobbled!103
2022-07-02 02:21:30 +00:00
Paul 36f42ea321 Update Showdown for pass action, fixed streams not being closed preventing Showdown auto updates 2022-07-01 15:37:27 +10:00
Paul 63d6d544f5 Fixed Pokémon not scaling up after being sent out on servers 2022-07-01 14:00:54 +10:00
Paul 3e6e9f7c80 Updated Eevee model 2022-07-01 13:20:06 +10:00
Paul e4344e3dd5 Merge resolution 2022-07-01 11:18:35 +10:00
Paul a2f37a8b2d Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #19-pc-storage
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/storage/party/PlayerPartyStore.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/ClientPacketRegistrar.kt
	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-07-01 11:08:22 +10:00
Paul 2e6289bc27 Fixed head turning being able to go at crazy angles 2022-07-01 11:06:42 +10:00
Paul 83485876ab Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into spawn-rarity-tiers 2022-06-29 21:22:40 +10:00
Hiroku 4065cdabbf Merge branch '#86-summary-slot-fix' into 'main'
Fixed 6th party slot not being selectable in summary GUI.

Closes #86

See merge request cable-mc/pokemon-cobbled!102
2022-06-29 11:13:53 +00:00
Licious b0f0e27b99 Converted PartyWidget to use widgets for each party slot, added scaling extension function to Drawable. 2022-06-29 11:41:06 +01:00
Licious ec2d2b9ab1 Fixed 6th party slot not being selectable in summary GUI. 2022-06-29 09:07:33 +01:00
Hiroku 0ce75fe82c Merge branch '#81-pokemon-initializer' into 'main'
Base current HP value in Pokémon fix

Closes #81

See merge request cable-mc/pokemon-cobbled!101
2022-06-28 11:54:44 +00:00
Licious 0ce8a378a7 Removed leftover debug in GivePokemon 2022-06-28 11:47:30 +01:00
Licious 530e87a613 Fixed initial HP value, added HP update on form change, removed debug and fixed docs on ItemInteractionEvolution 2022-06-28 11:46:48 +01:00
Hiroku 36a1af25da Merge branch '#56-evolution-base' into 'main'
Functional implementation of evolutions

Closes #56

See merge request cable-mc/pokemon-cobbled!100
2022-06-27 12:33:10 +00:00
Paul a9624cc271 Improvements to evolve button and evolve display 2022-06-27 22:20:44 +10:00
Paul a4189ce7b2 Fixed compile errors from merge conflicts 2022-06-27 21:20:14 +10:00
Licious 31658df2d4 Merge branch 'main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledItems.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/events/CobbledEvents.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/gui/GuiUtils.kt
2022-06-27 12:14:20 +01:00
Licious 1812070754 Cleaned up kdocs, added BufferSerializer and DataSerializer 2022-06-27 12:08:53 +01:00
Hiroku b44244513a Merge branch '#85-healer-misc-fixes' into 'main'
Fix to healer charge not saving

See merge request cable-mc/pokemon-cobbled!99
2022-06-26 21:56:40 +00:00
Deltric 4513ad1642 Fix to healer charge not saving 2022-06-26 13:30:47 -05:00
Paul 803710261d Fix merge anomalies from main, fix PC store construction 2022-06-26 20:45:36 +10:00
Paul 6f3ae1f944 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #19-pc-storage
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledBlockEntities.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledBlocks.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/storage/PokemonStoreManager.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/storage/factory/FileBackedPokemonStoreFactory.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/battle/BattleQueueRequestHandler.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/net/serverhandling/storage/SendOutPokemonHandler.kt
2022-06-26 20:39:54 +10:00
Paul 432211de94 Fixes to storage cloning, and upgraded deferred registries so that we know when rego is complete 2022-06-26 20:30:11 +10:00
Paul fddfdf473e Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-06-26 13:34:07 +10:00
Paul 7d56ba4a39 Improvements to battle message box scroll behaviour 2022-06-26 09:58:06 +10:00
Hiroku 3db28a8098 Merge branch '#84-fix-f1-not-being-respected-enough' into 'main'
Fixed label showing up when hud is hidden

Closes #84

See merge request cable-mc/pokemon-cobbled!98
2022-06-25 23:53:09 +00:00
Deltric 4bd858eec4 Moved it 2022-06-25 18:37:05 -05:00
Deltric a909e5207d Fixed label
Prevents it from showing up when hud is hidden.
2022-06-25 18:30:40 -05:00
Licious 87d2e891fb Simplified data keys for evolution stuff. 2022-06-25 12:48:35 +01:00
Licious 22f5226add Moved IO of EvolutionController into EvolutionProxy to facilitate future extensions. 2022-06-25 12:46:53 +01:00
Licious e8833ad40d Moved passive evolution ticking into PlayerPartyStore. 2022-06-25 12:38:34 +01:00
Licious e4a2bd824f Updated EvolutionDisplay to use aspects instead. 2022-06-25 12:31:19 +01:00
Paul eb3eca3839 Moved form calculation logic to Species 2022-06-25 21:25:19 +10:00
Paul cbf6043d3a Update Pokémon aspects in the entity when they've changed in the Pokémon 2022-06-25 21:18:01 +10:00
Paul bee8190d70 Fixed species changing of an entity's attached Pokemon not updating #dexNumber 2022-06-25 21:15:36 +10:00
Paul dbbb2042bf Added model render of pokemon for evolutions 2022-06-25 21:09:36 +10:00
Paul 9203815411 Added battle message pane 2022-06-25 20:49:32 +10:00
Licious 2342758166 Added evolution preview portrait. 2022-06-24 13:42:46 +01:00
Licious 7246ad9b13 Fixed removed method. 2022-06-24 13:09:11 +01:00
Licious af66ee74e3 Merge branch 'main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/ClientPacketRegistrar.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/net/serverhandling/ServerPacketRegistrar.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
#	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-06-24 13:04:17 +01:00
Licious e238a13636 Further improvement on evolution GUI. 2022-06-24 12:58:52 +01:00
Qumoo 1c7e32c531 Merge branch '#56-evolution-base' of https://gitlab.com/cable-mc/pokemon-cobbled into #65-starter-selection
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/pokemon/PokemonProperties.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/pokemon/aspect/SingleConditionAspectProvider.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/pokemon/feature/FlagSpeciesFeature.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/pokemon/BlastoiseModel.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/repository/PokemonModelRepository.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/pokemon/SpeciesAssetResolver.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/config/CobbledConfig.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/FormData.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/aspects/PokemonAspects.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/features/PokemonFeatures.kt
	common/src/main/resources/assets/pokemoncobbled/geo/species/blastoise.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/bulbasaur.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/charizard.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/charmander.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/charmeleon.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/ivysaur.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/squirtle.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/venusaur.json
	common/src/main/resources/assets/pokemoncobbled/geo/species/wartortle.json
	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-06-24 13:01:11 +02:00
Qumoo 5821768603 base structure for the StarterSelectionScreen 2022-06-24 12:57:08 +02:00
Qumoo b932799ce6 add temporary keybind 2022-06-24 12:56:29 +02:00
Qumoo 8ae37ac0a8 add 2022-06-24 12:56:08 +02:00
Qumoo 0b9495689b add translation 2022-06-24 12:56:01 +02:00
Qumoo 221b5271ec add config option 2022-06-24 12:55:51 +02:00
Hiroku b79b340325 Merge branch '#70-battle-gui' into 'main'
Majority of the battle GUI (non-final assets)

See merge request cable-mc/pokemon-cobbled!94
2022-06-24 06:45:10 +00:00
Hiroku 027aac7572 Merge branch 'main' into '#70-battle-gui'
# Conflicts:
#   common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-06-24 06:33:38 +00:00
Deltric 0267f58131 Merge branch '#70-battle-gui' of https://gitlab.com/cable-mc/pokemon-cobbled into #70-battle-gui 2022-06-24 00:30:06 -05:00
Deltric fcb86d2c1d move tags 2022-06-24 00:29:55 -05:00
Hiroku af0f43816c Merge branch 'hp-update-and-form-equality' into 'main'
Fixes current HP calculation and simplified form equality check.

See merge request cable-mc/pokemon-cobbled!97
2022-06-23 23:56:20 +00:00
Paul f534fcbb27 Removed now-unused junk from PlayerBattleActor 2022-06-23 22:14:39 +10:00
Paul 96a30e692f Null safety on accesses to PlayerBattleActor.getPlayerEntity() 2022-06-23 20:57:05 +10:00
Paul a06ebe6739 Added docs to the battle packets 2022-06-23 20:50:39 +10:00
Paul 93b83c6e68 Fixed force switches not working 2022-06-23 20:19:54 +10:00
Licious 9989c92266 Moved form update to happen on species change, actually commit FormData 2022-06-22 10:06:18 +01:00
Licious f026818488 Fixes current HP calculation and simplified form equality check. 2022-06-22 09:55:08 +01:00
Licious f68900631f More GUI improvements. 2022-06-22 09:52:35 +01:00
Licious 58d0d923d1 Fixed up evolution selection entry and model overlay render. 2022-06-21 12:37:55 +01:00
Paul 631369e110 Tweak default common bucket weight 2022-06-21 21:36:45 +10:00
Paul 1dc4da7c55 Added spawn buckets 2022-06-21 21:30:08 +10:00
Hiroku b0186f6020 Merge branch 'issue80-fainted-pokemon-patch' into 'main'
Issue80 fainted pokemon patch

See merge request cable-mc/pokemon-cobbled!95
2022-06-21 09:16:16 +00:00
BuildTools 3e0df145b4 Added checks to make sure pokemon had HP before sending out 2022-06-20 20:39:50 -04:00
BuildTools 04a19104a8 Added checks to make sure pokemon had HP before sending out 2022-06-20 20:39:28 -04:00
Licious 559c496d62 Added model preview underlay in evolution selection. 2022-06-20 12:53:20 +01:00
Licious e717021e92 Attempt at better scaling, added type preview in evolution selection. 2022-06-20 12:42:57 +01:00
Paul afaceb7e0e Client to server storage net code, added PC linking for multiple PC support, PC interaction prompts PC GUI 2022-06-20 15:58:10 +10:00
Deltric 54d21a8501 minor client cleanup 2022-06-19 18:34:12 -05:00
Deltric 4966266581 Added command aliases + poke heal message 2022-06-19 06:47:52 -05:00
Licious f3ef8d2874 Added evolution confirm button 2022-06-18 15:01:49 +01:00
Paul 5af0916e87 Networking for PC storage and some reworking of party networking packets, further implementation of server side PC logic 2022-06-18 22:15:18 +10:00
Licious a0201b2939 Added the ability to make summary buttons silent, added evolution result name preview. 2022-06-18 12:53:09 +01:00
Licious bb48408432 Added evolution proxy, fixed netty evolution stuff. 2022-06-18 12:07:05 +01:00
Paul 28944396a4 Finished block things for the PC block 2022-06-17 21:14:40 +10:00
Licious 7a47de863f Added common summary button, continued evolution list widget. 2022-06-16 15:13:19 +01:00
Licious 1913c389b6 Started possible evolution list. 2022-06-14 14:58:59 +01:00
Licious 2a8185da5e Updated assets, added evolution list button, fixed summary back button not opening PokeNav. 2022-06-14 12:22:08 +01:00
Veraxiel e382d7c642 Updated TimeRange.kt 2022-06-14 10:28:29 +00:00
Veraxiel d4f680c4b9 Updated TimeRange.kt 2022-06-14 10:25:29 +00:00
Licious 4396c35001 Added extra attributes for display purposes on client pending evolutions. 2022-06-14 11:19:04 +01:00
Licious d2f00e2f4b Merge branch 'main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/events/CobbledEvents.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/config/CobbledConfig.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
#	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-06-14 10:59:21 +01:00
Paul 3fbe31819a Added PC block, does a whole lot of nothing currently 2022-06-13 21:08:27 +10:00
Paul de527081d4 Merge conflict resolution 2022-06-13 12:35:36 +10:00
Paul 5f2bc9d44d Merge branch '#70-battle-gui' of gitlab.com:cable-mc/pokemon-cobbled into #19-pc-storage
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/pokemon/CharizardModel.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-06-13 12:26:03 +10:00
Paul 44217511b0 Move battle ticking to the new server tick handler 2022-06-12 14:50:14 +10:00
Paul 4feffbf634 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
2022-06-12 14:49:48 +10:00
Paul aa191e76e8 Added some text prompts to show R option for battle overlay switching 2022-06-08 21:31:14 +10:00
Hiroku d882862607 Merge branch '#43-natural-healing' into 'main'
#43 natural healing

See merge request cable-mc/pokemon-cobbled!93
2022-06-07 10:47:22 +00:00
DeltricandHiroku 8f47ec291a #43 natural healing 2022-06-07 10:47:21 +00:00
Paul cb25ae4453 Implemented switching out in the battle GUI, addded /healpokemon 2022-06-06 23:09:56 +10:00
Paul a662c13a53 Faint tile animation properly implemented and timed so that the entity dies @ same time 2022-06-05 18:49:07 +10:00
Paul 9ca841594e Added health sliding animations, implemented battle dispatching for delays between actions, fixed 'no battle found' error 2022-06-05 11:02:05 +10:00
Paul e9ab56aebd Selecting moves works for situations where specifying a target is not needed, i.e. single battles and all-target moves 2022-06-04 20:19:30 +10:00
Paul f5d7349445 Structural work on action selection, implemented main selection screen and move display outline 2022-06-04 18:41:14 +10:00
Paul c96d050152 Added sunglasses squirtle/wartortle/blastoise 2022-06-03 11:40:59 +10:00
Paul 23df8eacc0 Add portrait pose for Raticate 2022-06-03 11:07:10 +10:00
Paul e768746e4a Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-06-03 10:52:28 +10:00
Paul 81898802e4 Fixed missing shiny textures, Rattata animation, and improved poses for Blastoise, Beedrill, and Butterfree 2022-06-03 10:52:11 +10:00
Paul 3f6add6ac7 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-06-03 09:52:03 +10:00
Paul 479dea5985 A bunch more work on selecting battle actions and the battle GUI 2022-06-03 09:51:51 +10:00
Hiroku 8e51581102 Merge branch 'RatattaLine' into 'main'
Ratatta Line

See merge request cable-mc/pokemon-cobbled!92
2022-05-30 02:41:10 +00:00
BuildTools 228fbbde9e Removed unnecessary variations 2022-05-29 21:06:47 -04:00
BuildTools e513b06800 Added and animated rattata line 2022-05-26 12:05:38 -04:00
BuildTools 95644032a3 Added and animated rattata line 2022-05-26 12:04:35 -04:00
Paul f9030c48ef Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-25 08:29:30 +10:00
Paul 59192dd836 Work on client-side handling of battle data and work around handling choices and targeting 2022-05-25 08:29:19 +10:00
Hiroku f5b482386a Merge branch 'spawn-tweaks' into 'main'
Spawn tweaks

See merge request cable-mc/pokemon-cobbled!91
2022-05-24 08:22:26 +00:00
Anne Ominous 11089342d8 Code cleanup 2022-05-24 00:04:20 -04:00
Anne Ominous 1c014c9fcd Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into spawn-tweaks 2022-05-23 07:13:16 -04:00
Anne Ominous 6bc2df9c29 Fix level randomization before spawning 2022-05-23 07:07:33 -04:00
Hiroku fe20fa46d7 Merge branch 'CaterpieWeedle' into 'main'
Added Weedle and Caterpie lines + animated

See merge request cable-mc/pokemon-cobbled!90
2022-05-22 04:05:39 +00:00
Evan MacMillan 3dedf98824 Cleaned up poses and portraits 2022-05-21 22:31:57 -04:00
Paul 63dbb40e3c Fixed F3-T not reloading models properly 2022-05-22 12:22:36 +10:00
Paul e413ad54b4 A bunch of work around battle dispatch messages and sending information of battle activity to the client 2022-05-22 12:15:41 +10:00
Evan MacMillan c01d8506ae Removed exited lines - added walk to beedrill and butterfree so they don't t-pose 2022-05-21 21:53:37 -04:00
Evan MacMillan b548b5bbcb Added Weedle and Caterpie lines + animated 2022-05-21 21:36:08 -04:00
Evan MacMillanandQumoo 728aaf4a3d Somehow the squirtle models didnt update? here they are 2022-05-21 10:41:02 +02:00
Evan MacMillanandQumoo 61fb184d8d Somehow the squirtle models didnt update? here they are 2022-05-21 10:41:02 +02:00
Evan MacMillanandQumoo d17c77b03d Updated Charmander and Charmeleon's Textures and added their animations 2022-05-21 10:40:56 +02:00
Evan MacMillanandQumoo f9106cf480 Switched idles for bulba and ivy 2022-05-21 10:40:49 +02:00
Evan MacMillanandQumoo fad59f9b60 Updated Textures and added Animations for the Bulbasaur and Squirtle Lines 2022-05-21 10:40:49 +02:00
PaulandQumoo 0f76a75038 Relocated bedrock animations 2022-05-21 10:40:49 +02:00
HirokuandQumoo 8dfe9697d0 Fix typo 2022-05-21 10:40:49 +02:00
HirokuandQumoo 515489e665 Fix bug with gender applying to entity 2022-05-21 10:40:49 +02:00
PaulandQumoo 9025e530c3 Implement aspects in PokemonProperties 2022-05-21 10:40:49 +02:00
PaulandQumoo 2962bb5e30 Added form system, implemented shiny and genders, added shiny charizard 2022-05-21 10:40:49 +02:00
HirokuandQumoo 36c5f8eb85 FormData shouldn't be a data class because of what the equals implementation does 2022-05-21 10:40:49 +02:00
HirokuandQumoo 4657b9de37 Update en_us.json 2022-05-21 10:40:49 +02:00
Qumoo 37a534e737 Proposal for PlayerDataStorage 2022-05-21 10:40:48 +02:00
Anne Ominous 41cdfd17c4 Add config for max level Pokemon will spawn at when party is empty 2022-05-19 20:36:47 -04:00
Anne Ominous 7f754a7dc3 Fix intersection check when one range is fully contained by another 2022-05-19 19:49:53 -04:00
Anne Ominous 7b5d08cb83 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into spawn-tweaks 2022-05-19 18:36:18 -04:00
Paul 46fbb36f47 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-20 08:28:57 +10:00
Hiroku 59c3b19767 Merge branch 'Blastoise-VenusaurLine' into 'main'
Somehow the squirtle models didnt update? here they are

See merge request cable-mc/pokemon-cobbled!88
2022-05-19 22:28:37 +00:00
Evan MacMillan f89b26fd69 Somehow the squirtle models didnt update? here they are 2022-05-19 18:16:46 -04:00
Paul 40fcee99d5 Add level display to battle tiles 2022-05-20 08:07:41 +10:00
Anne Ominous 3876b152e5 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into spawn-tweaks 2022-05-19 16:07:55 -04:00
Evan MacMillan 6113c7a1b0 Somehow the squirtle models didnt update? here they are 2022-05-19 10:37:49 -04:00
Paul 2fde5e69a3 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-19 22:30:17 +10:00
Hiroku 865b938db5 Merge branch 'Blastoise-VenusaurLine' into 'main'
Updated Textures and added Animations for the Bulbasaur and Squirtle Lines

See merge request cable-mc/pokemon-cobbled!87
2022-05-19 11:04:07 +00:00
Paul f90f3f87cb Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into Blastoise-VenusaurLine
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/repository/PokemonModelRepository.kt
2022-05-19 20:52:57 +10:00
Anne Ominous e54f8de44e Add gamerule lang 2022-05-19 06:04:00 -04:00
Anne Ominous 84763f7926 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into spawn-tweaks
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
2022-05-19 05:47:42 -04:00
Anne Ominous b0e4ee33e9 Add affectSpawnable influence functionality 2022-05-19 05:17:15 -04:00
Anne Ominous 81ddc0a366 Add GameRule spawning Influence 2022-05-19 05:13:58 -04:00
Evan MacMillan 0024247e0d Switched idles for bulba and ivy 2022-05-18 23:16:08 -04:00
Evan MacMillan db0fa6df9e Updated Textures and added Animations for the Bulbasaur and Squirtle Lines 2022-05-18 23:02:47 -04:00
Hiroku 5323e7a505 Merge branch 'CharizardLine' into 'main'
Updated Charmander and Charmeleon's Textures and added their animations

See merge request cable-mc/pokemon-cobbled!86
2022-05-19 00:06:06 +00:00
Evan MacMillan b9aa72ba78 Updated Charmander and Charmeleon's Textures and added their animations 2022-05-18 19:54:17 -04:00
Licious17 439c866a59 Merge remote-tracking branch 'origin/main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/ClientPacketRegistrar.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/FormData.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
#	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-05-17 19:41:41 +01:00
Paul fa3a04e6c2 Relocated bedrock animations 2022-05-17 17:25:25 +10:00
Paul bdb96381d4 White colour texture 2022-05-17 17:18:06 +10:00
Paul c53ee79382 Animate pokemon in the battle overlay, HP fix for new pokemon 2022-05-15 22:58:39 +10:00
Paul 1284f35778 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-15 19:30:17 +10:00
Hiroku 92db7b976f Merge branch '#22-forms' into 'main'
Added form system, implemented shiny and genders, added shiny charizard

Closes #22

See merge request cable-mc/pokemon-cobbled!85
2022-05-15 09:29:09 +00:00
Hiroku 784e4b6c6a Fix typo 2022-05-15 09:15:16 +00:00
Paul 6808294936 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-15 18:53:05 +10:00
Paul c2f7670f3c Implement early work on battle GUI, battle tiles 2022-05-15 18:52:49 +10:00
Hiroku 40630c5fc3 FormData shouldn't be a data class because of what the equals implementation does 2022-05-15 08:52:14 +00:00
Hiroku c3f71724fa Fix bug with gender applying to entity 2022-05-15 08:43:33 +00:00
Paul 5b0668c9e7 Merge branch '#22-forms' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/gui/PartyOverlay.kt
2022-05-15 11:00:55 +10:00
Paul 8e30bb84cb Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-15 11:00:02 +10:00
Paul e4b0d34417 Implement aspects in PokemonProperties 2022-05-15 10:36:53 +10:00
Paul 2b4825f5de Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #22-forms 2022-05-15 09:06:02 +10:00
Paul 65edb47957 Added form system, implemented shiny and genders, added shiny charizard 2022-05-14 23:42:28 +10:00
Hiroku 6df043ad0b Merge branch 'fix_forge_runs' into 'main'
Fix forge runs

See merge request cable-mc/pokemon-cobbled!84
2022-05-12 21:51:01 +00:00
Hiroku 23890b6dbf Update en_us.json 2022-05-12 21:39:34 +00:00
Qumoo e3d5bb5daa sneak lang file edit (totally didn't forget to add translation to the dripstone moon stone ore) 2022-05-12 20:30:12 +02:00
Qumoo eb8b4e2422 Move WorldGen to init because Forge 2022-05-12 20:29:46 +02:00
Qumoo 0e4fd0dc81 update Forge, Architectury and Kotlin 2022-05-12 20:29:26 +02:00
Paul b9f9647bf5 Conveniences with packets and send battle initialization to players 2022-05-12 20:51:56 +10:00
Anne Ominous 5f596521a9 Register doPokemonSpawning gamerule 2022-05-11 22:43:42 -04:00
Anne Ominous 66af1ff3cd Fix player velocity tracking during spawning 2022-05-11 22:28:58 -04:00
Hiroku b4fc141464 Fixed little woopsy with bedrock animation loading shortcut 2022-05-11 11:49:00 +00:00
Paul db81f48fb0 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-10 22:57:01 +10:00
Paul b79f02882e Various conveniences for adding models and animations 2022-05-10 22:53:52 +10:00
Paul 757c9ff0f7 Unused import 2022-05-10 21:40:47 +10:00
Paul 217d6a5cc7 Re-enabled world gen features that SOMEONE disabled 2022-05-10 21:40:07 +10:00
Paul 2736a4b1d5 Fixed remaining issues with geo model loader 2022-05-10 21:36:48 +10:00
Paul 7f0a91712a Fixed uninitialized packet fields 2022-05-10 20:11:36 +10:00
Paul 3542d58c5a Pose Ekans, loads more work setting up battle GUI data 2022-05-10 20:03:16 +10:00
chrisfusco06 61e73289f9 Fixed javet dep for mac, model json reading for charizard incomplete as of now 2022-05-10 16:18:25 +09:30
Licious 250b65772f Fixed clientbound experience and evolution packet registration. Started evolution list widget. 2022-05-09 14:44:18 +01:00
Licious ab14265e13 Redesign sided Evolution controllers. Added new summary assets. 2022-05-09 14:10:42 +01:00
Licious f792f48102 Merge branch 'main' into #56-evolution-base
# Conflicts:
#	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-05-07 22:03:09 +01:00
Hiroku 0561c77278 Merge branch '#62-evostones' into 'main'
use the actual dripstone_moon_stone_ore.png texture

See merge request cable-mc/pokemon-cobbled!83
2022-05-07 10:09:28 +00:00
Qumoo d2c5e8ef03 use the actual dripstone_moon_stone_ore.png texture 2022-05-07 12:08:25 +02:00
Hiroku c2ec3258f8 Merge branch '#62-evostones' into 'main'
Evostone Ore Generation

See merge request cable-mc/pokemon-cobbled!76
2022-05-07 09:09:37 +00:00
Qumoo 1b4ec50921 fix imports 2022-05-07 09:48:34 +02:00
Qumoo 1ce823ec5d Adjust EvoStone classes to new mappings 2022-05-07 09:45:45 +02:00
Qumoo 85a2b8fcbe Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #62-evostones
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledBlocks.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledItems.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/command/TestCommand.kt
	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-05-07 08:55:00 +02:00
Paul 222139321b Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #70-battle-gui 2022-05-07 11:09:50 +10:00
Paul 1c2778e3d6 Fixed C2S packet handlers not working on Forge specifically 2022-05-06 23:15:50 +10:00
Paul ac0b1de389 Early structural work on client battle tracking 2022-05-06 23:02:02 +10:00
Paul 08197737b0 Merge branch 'prod-world-issues' of gitlab.com:cable-mc/pokemon-cobbled 2022-05-06 18:07:02 +10:00
Paul a438c82aab Fixed showdown issues on servers, find first open port in range for showdown server 2022-05-06 17:06:29 +10:00
Licious e3594bb648 Fixed Server evolution controller addAll & removeAll 2022-05-05 13:52:30 +01:00
Licious 6177daebe2 Reduced visibility on pre evolutions. 2022-05-05 13:39:12 +01:00
Licious 45cd15d962 Implemented equality methods on Evolution implementations. 2022-05-05 13:35:40 +01:00
Licious bc6f67f1b0 Prevent wild Pokémon from passively evolving for now. 2022-05-05 13:30:34 +01:00
Licious a7f1a24208 Implemented passive evolution trigger, reduced visibility on species and form evolution property, cleaned up package structure of evolution stuff. 2022-05-05 13:25:29 +01:00
Licious b3eb6d7ec7 Added experience candy items. 2022-05-05 13:05:50 +01:00
Licious 15b72041bf Merge branch 'main' into #56-evolution-base 2022-05-05 11:36:06 +01:00
Paul 3d2e47cd6d Update javet 2022-05-05 19:43:24 +10:00
Licious 9676589410 Fixed block & item tags. 2022-05-04 11:45:17 +01:00
Licious 24fa5e47a2 Added API event for the Pokémon displayed to the client. Added side based safety to evolution controllers. 2022-05-04 11:00:21 +01:00
Licious 4968fc4591 Merge branch 'main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/FormData.kt
2022-05-03 13:01:26 +01:00
Hiroku a75b25a78e Merge branch '#42-eye-height' into 'main'
#42 eye height

Closes #42

See merge request cable-mc/pokemon-cobbled!82
2022-05-03 11:57:25 +00:00
Licious a6847ce2d3 Remove unnecessary update on swimming state change and Gyarados test stats. 2022-05-03 12:38:30 +01:00
Licious 375450104b Implemented dynamic eye height updating. 2022-05-03 12:35:48 +01:00
Licious 6168484d59 Implemented species and form property, eye height is used correctly. 2022-05-03 11:41:37 +01:00
Hiroku 9ef42cb395 Merge branch 'shoulder-entity-issues' into 'main'
Shoulder entity issues

See merge request cable-mc/pokemon-cobbled!81
2022-05-03 09:30:54 +00:00
Licious 3b7d558c5d Fixed ownership check before mounting 2022-05-03 10:10:54 +01:00
Licious a1342e6e42 Fixed shoulder mounts stacking indefinitely 2022-05-03 10:08:04 +01:00
Paul 3174a018bc Always deploy artifacts, the runner can probably handle it 2022-05-03 18:57:49 +10:00
Paul 7d965e9385 Another attempt at the version tagging in CI 2022-05-03 18:41:00 +10:00
Paul 5a900f5c16 Missed terminating / in sed for CI 2022-05-03 18:20:14 +10:00
Paul cf9cc12fb4 Fix missing end of line markers in CI 2022-05-03 18:07:00 +10:00
Paul ea964e2735 Fix some deployment issues and play around with CI 2022-05-03 17:54:17 +10:00
Licious a45de19ded Fixed Pokémon shoulder dismounting 2022-05-02 21:44:35 +01:00
Licious 435b31920b Fixed shoulder Pokémon despawn. 2022-05-02 20:22:54 +01:00
Licious 7f25a1749d Fixed shoulder entity not being removed after retrieval, removed unnecessary mixin logic. 2022-05-02 12:46:30 +01:00
Hiroku 068f9f5712 Merge branch 'apricorn-outline' into 'main'
Fixed Apricorn block outline.

See merge request cable-mc/pokemon-cobbled!80
2022-05-02 10:50:22 +00:00
Licious 5412a545cd Fixed Apricorn block outline. 2022-05-02 11:50:18 +01:00
Paul 77d375f519 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #19-pc-storage 2022-05-02 20:21:39 +10:00
Licious 82dd5309e7 Merge remote-tracking branch 'origin/main' into #56-evolution-base 2022-05-02 11:17:21 +01:00
Hiroku 939b3de21d Merge branch 'look-at-me-apricon' into 'main'
Look at me apricon

See merge request cable-mc/pokemon-cobbled!79
2022-05-02 10:15:41 +00:00
Licious d96bd62ca5 Fixed Apricorn generation. 2022-05-02 11:10:53 +01:00
Paul 6d08b5faff Merge remote-tracking branch 'origin/main'
# Conflicts:
#	common/build.gradle.kts
2022-05-02 19:56:14 +10:00
Paul 5a7a4cb251 Remove refmap lines since we don't need them in Yarn apparently 2022-05-02 19:55:33 +10:00
Paul 8315b3dff8 Prevent sending out pokemon if they're ded 2022-05-02 19:54:59 +10:00
Paul 4415a9ba67 Update Charizard model so he looks around properly 2022-05-02 19:54:51 +10:00
Licious 76943cfd93 Fixed apricorn placement facing. 2022-05-02 10:53:32 +01:00
Licious 3042e83ecb Removed leftover Geckolib dependency in Fabric and Forge metadata. 2022-05-02 10:33:55 +01:00
Licious bc13b9d677 Removed leftover dummy buttons in PokeNav 2022-05-02 10:29:44 +01:00
Paul 09b6693eed Much more progress on PC stores and BottomlessStore as backup for resized PCs 2022-05-02 01:02:29 +10:00
Paul de600e1c71 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #19-pc-storage 2022-05-01 18:52:42 +10:00
Hiroku 3d261a5cc6 Merge branch 'blockbench-formula-reader' into 'main'
Properly support non-entity model state, animate summary model render, fix...

See merge request cable-mc/pokemon-cobbled!78
2022-05-01 08:52:00 +00:00
Paul d147396f2c Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #19-pc-storage
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/world/level/block/HealingMachineBlock.kt
2022-05-01 17:09:34 +10:00
Paul 1cfe706089 Remove debug.log 2022-05-01 16:16:16 +10:00
Paul 455d80531d Fix janky label rendering on moving pokemon 2022-05-01 16:10:16 +10:00
Paul 79b2f45757 Fixed yarn mapping bug in switch move pane 2022-05-01 15:08:31 +10:00
Paul d3d4d7c5cb Properly support non-entity model state, animate summary model render, fix bedrock animation issues, upgrade pose system 2022-05-01 14:30:42 +10:00
Paul 818c1d3e48 Added support for MoLang-based bedrock animations 2022-05-01 00:06:17 +10:00
Licious d4b1a161d8 Updated branch content to new mappings, further improved PokeNav navigation. 2022-04-30 13:46:07 +01:00
Licious 3a798e1b1f Merge remote-tracking branch 'origin/main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledCommands.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledItems.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/gui/pokenav/PokeNav.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/gui/pokenav/PokeNavImageButton.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/block/HealingMachineRenderer.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokeball/EmptyPokeBallEntity.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/item/CobbledCreativeTabs.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/SpeciesLoader.kt
2022-04-30 10:13:04 +01:00
Paul 7c3424174b Remove geckolib traces, not worth using 2022-04-30 18:41:15 +10:00
Hiroku 059bb261bf Merge branch 'blockbench-formula-reader' into 'main'
Blockbench formula reader

See merge request cable-mc/pokemon-cobbled!77
2022-04-30 08:22:07 +00:00
Paul cc990e80d0 Remove geckolib to merge to main 2022-04-30 13:25:20 +10:00
Paul b1a6c85ec6 Fixed spawning and GUI bugs sponsored by Licious 2022-04-30 07:50:04 +10:00
Licious b1f08d0c60 Added mouse movement and improved keyboard movement on PokeNav. 2022-04-29 22:37:06 +01:00
Paul 7f7a9fb795 Finished the mappings conversion and added geckolib 2022-04-30 07:19:21 +10:00
Licious eea4ad1d01 Finished Yarn remaps aside from Pokémon models. 2022-04-29 19:54:02 +01:00
Licious 2ce5e385e8 Fixed PokeNav movement issue, cleaned up movement logic, added click conditional click prevention and gray out of buttons. 2022-04-29 16:49:03 +01:00
Paul 94b426cb7f Completed most of the work converting mappings from mojmaps to Yarn since needed for GeckoLib 2022-04-30 01:08:25 +10:00
Licious dacfd583b6 Fixed Pokeball creative tab lang, fixed crash on PokeNav with empty party, went back to RegistrySuppliers for items. 2022-04-29 14:16:08 +01:00
Licious cfbeba3cfc Fixes bad lang merge. 2022-04-29 12:44:24 +01:00
Qumoo dae7ea36cb Adjusting WorldGen and EvolutionOres, Added Dripstone Moon Stone Ore to WorldGen 2022-04-28 20:12:17 +02:00
Qumoo 00c9d34314 Adjust jsons for ores 2022-04-28 20:11:35 +02:00
Qumoo efcda1a074 Add Dripstone Moon Stone Ore (@Vera this MAY need a new texture) 2022-04-28 20:10:58 +02:00
Qumoo a969acddd4 add option to not use biome tag filter 2022-04-28 20:10:09 +02:00
Licious 207b53091d Merged main, implemented client evolution data, implemented evolution networking. 2022-04-28 18:11:40 +01:00
Licious 898f3fa16a Merge branch 'main' into #56-evolution-base
# Conflicts:
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledCommands.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledItems.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/moves/Moves.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/ClientPacketRegistrar.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/config/CobbledConfig.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokeball/EmptyPokeBallEntity.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/PokemonEntity.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/item/CobbledCreativeTabs.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/FormData.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Species.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/SpeciesLoader.kt
#	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/util/DataKeys.kt
#	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
#	gradle.properties
2022-04-28 14:54:33 +01:00
Paul 999f12f446 Update Charizard model with bedrock animations, broken due to no interpreter 2022-04-28 22:06:45 +10:00
Paul 3a5cf183db Fixed startup issues due to showdown 2022-04-27 18:33:19 +10:00
Paul 44faadf0c7 Enable showdown 2022-04-27 18:17:55 +10:00
Paul 27d3c19901 Early work on PCs 2022-04-26 21:23:18 +10:00
Hiroku 4db4e1f26e Merge branch '#68-challenge-pokemon' into 'main'
Challenge Pokémon using the send-out keybind

Closes #68

See merge request cable-mc/pokemon-cobbled!73
2022-04-25 11:40:42 +00:00
Paul 47aec2bb6a Fix compile error from bad merge 2022-04-25 21:30:00 +10:00
Paul c069bbf76a Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #68-challenge-pokemon
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/entity/PokemonClientDelegate.kt
2022-04-25 21:19:59 +10:00
Hiroku 4f0fe549f2 Merge branch '#50-rattata-line' into 'main'
#50 rattata line

See merge request cable-mc/pokemon-cobbled!74
2022-04-25 07:47:28 +00:00
Paul 5dbda70f06 Fix Raticate causing crashes because of blank hitbox 2022-04-25 17:36:36 +10:00
Paul 7ae965a61a Rework singleplayer scheduling to prevent random thread-based crashes, AI improvements 2022-04-25 17:36:19 +10:00
Paul 8a0c20125d Don't render party overlay when debug screen is rendering 2022-04-25 17:35:12 +10:00
Paul 0a51fafc9d Completed the species JSONs for Rattata and Raticate 2022-04-25 10:08:20 +10:00
Paul 550cf4d8e1 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #50-rattata-line
 Conflicts:
	fabric/src/generated/resources/pokemoncobbled-common.accesswidener
2022-04-25 10:01:08 +10:00
Evan MacMillan dc722d6714 Added Rattata and Raticate 2022-04-24 18:49:45 -04:00
Paul 0acfaffc50 Minor cleanup 2022-04-24 20:47:10 +10:00
Paul 4ea18fecd2 Fixed max HP calculation being incorrect 2022-04-24 20:42:07 +10:00
Paul 88c467863d Changed the label prompting battle to be lang with keybind placeholder 2022-04-24 20:41:47 +10:00
Paul 4943f4c6c7 Mute the dummy battle, add |drag| handling for Whirlwind etc 2022-04-24 18:48:45 +10:00
Paul 19e95c13bf Run a dummy battle on start up to improve performance of the first battle 2022-04-24 18:10:24 +10:00
Paul 5871f695a2 Improve battle start error handling and message construction 2022-04-24 18:09:06 +10:00
Paul f77b65ba47 Fixed an issue with ally-affecting moves being selectable by the AI in single battles 2022-04-24 18:07:24 +10:00
Paul 9f2bea4e75 Synchronize health with the entity so that currentHealth = 0 kills the pokemon, link entity to battles 2022-04-24 12:00:11 +10:00
Paul 40396092e3 Pressing R while looking at a Pokémon starts a battle with it 2022-04-23 22:16:53 +10:00
Paul e8e13fa54a Added unsubscribeWhen ticker to subscriptions as a performance enhancing tool 2022-04-23 22:16:25 +10:00
Paul 4c0a109ce8 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #68-challenge-pokemon 2022-04-23 14:32:30 +10:00
Paul 5bc5e8a239 Significant work on battle building and rendering pokemon labels when they are looked at, smooth send out/recall 2022-04-23 14:19:44 +10:00
Hiroku 6522cf97b3 Fixed boot error caused by mismatch in architectury gradle plugin version 2022-04-23 04:15:25 +00:00
Hiroku c186777b27 Merge branch '#74-shouldered-icons' into 'main'
Added shoulder indicators to party

Closes #74

See merge request cable-mc/pokemon-cobbled!71
2022-04-20 08:31:51 +00:00
Paul 76442b4055 Fixed pokemon state not syncing, fixed sizing of party state icons, properly handle state icons 2022-04-20 18:15:55 +10:00
Paul 302d6ff3f8 Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #74-shouldered-icons 2022-04-20 17:36:35 +10:00
Hiroku d78c7762ba Merge branch '#77-move-learning' into 'main'
Added move learning / move relearning, updated summary GUI

Closes #77

See merge request cable-mc/pokemon-cobbled!72
2022-04-19 10:31:19 +00:00
Paul bb8584b2d0 Fixed health not remaining at the same ratio after levelling up 2022-04-19 20:03:35 +10:00
Paul 5c525245fc Added changing selected pokemon in summary UI, fixed max PP issue for new moves, fix benched moves not syncing 2022-04-18 22:20:22 +10:00
Paul 62967ab419 Added level-up moves to existing species JSONs 2022-04-18 17:23:53 +10:00
Paul b506657da0 Updated summary UI assets and display and added move relearning, also added learning of moves during level-up, added /levelup and PP recovery on heal 2022-04-18 16:45:03 +10:00
Paul b6e619da6b Fixed runOnServer doing repetitive tasks instead of one-time runs, minor linting 2022-04-18 16:42:47 +10:00
Qumoo 13ffb5e48a Add Ore Features 2022-04-17 12:19:14 +02:00
Qumoo 997f025463 Loot Tables, Spawning Information and Mining Information for Ores 2022-04-17 12:16:57 +02:00
Paul e42676cbf6 Fixed experience message giving wrong xp value, added move learning from level up 2022-04-17 19:21:51 +10:00
Hiroku 4ef9433629 Merge branch '#76-healer-block' into 'main'
Added the healer block

See merge request cable-mc/pokemon-cobbled!70
2022-04-08 03:46:54 +00:00
Deltric 6bb70b5bcb more changes 2022-04-07 22:35:54 -05:00
Deltric e9464b872d PR Feedback
should have addressed all PR feedback
2022-04-07 21:21:16 -05:00
Deltric 9f0f4f438d tweaks 2022-04-06 04:56:32 -05:00
Deltric 1d26e1bca1 Added shoulder indicators to party 2022-04-05 05:10:00 -05:00
Deltric ae70243fc9 Clear status with heal 2022-04-05 04:19:22 -05:00
Deltric b268738a9d Healing machine charge and render stuff and lang stuff and other stuff 2022-04-05 04:11:21 -05:00
Deltric aaedaccb9d Fix pokeballs not being cleared out 2022-04-05 00:36:21 -05:00
Deltric 8abd614790 Merge branch 'main' into #76-healer-block 2022-04-05 00:11:45 -05:00
Deltric d62f435602 ball rendering base 2022-04-05 00:11:23 -05:00
Hiroku eaf8bb3796 Merge branch 'ball-throw-fixes' into 'main'
Ball throw fixes

See merge request cable-mc/pokemon-cobbled!69
2022-04-04 23:02:18 +00:00
Anne Ominous 354efbf107 Merge branch 'main' into ball-throw-fixes 2022-04-04 18:22:44 -04:00
Anne Ominous c5cd7170f9 Increase accuracy of Pokemon hitboxes 2022-04-04 18:08:53 -04:00
Hiroku d2c350192d Merge branch '#77-move-learning' into 'main'
#77 move learning

Closes #72 and #71

See merge request cable-mc/pokemon-cobbled!68
2022-04-04 13:52:18 +00:00
Paul efcc9271fd Merge artifact fix 2022-04-04 23:38:07 +10:00
Paul 2f53b16dbe Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #77-move-learning
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-04-04 23:32:32 +10:00
Paul 045fc1724a Reworking various bits of Pokemon, fix issue where all forms are Eevee D: 2022-04-04 23:30:09 +10:00
Paul e2154c4f40 Missed vital change from IntRange fix oops 2022-04-04 23:28:09 +10:00
Paul 786bf35e26 Fixed config not being able to deal with IntRanges on save 2022-04-04 23:27:06 +10:00
Paul 7869e67baa Fixed pokemon not rendering on production due to old Gson (closes #71) 2022-04-04 23:23:20 +10:00
Paul f67c8d3cfe Fixed showdown not running in production (closes #72) 2022-04-04 14:58:12 +10:00
Deltric cee6b1a55d Merge branch 'main' into #76-healer-block 2022-04-03 22:37:40 -05:00
Hiroku c747d25557 Merge branch 'caught-ball' into 'main'
Added caught ball data

See merge request cable-mc/pokemon-cobbled!67
2022-04-04 03:34:42 +00:00
Deltric 2f9ea3885e Added caught ball data 2022-04-03 22:23:37 -05:00
Deltric 68e4688d98 Tweaks and start to checks
Pushing to switch to adding caught ball
2022-04-03 21:54:57 -05:00
Paul aed377347d Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into main
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
2022-04-04 12:32:17 +10:00
Paul d89d523518 Bunch of work around benched moves 2022-04-04 12:27:10 +10:00
Anne Ominous fb70a23cfe Merge branch 'main' into ball-throw-fixes 2022-04-03 14:31:41 -04:00
Deltric 5ad96c0635 Added ticking to healer 2022-04-03 02:58:29 -05:00
Deltric 9b2bec9ecf Merge branch 'main' into #76-healer-block 2022-04-03 02:23:41 -05:00
Deltric ac55e8b050 Added the healer block 2022-04-03 02:23:28 -05:00
Hiroku 6c82915360 Merge branch 'status-base' into 'main'
Added the base of statuses

See merge request cable-mc/pokemon-cobbled!66
2022-04-03 04:17:48 +00:00
Deltric 9d4cdf2231 Update ClientPacketRegistrar.kt 2022-04-02 23:04:55 -05:00
Deltric a8ed789bc1 Update CobbledNetwork.kt 2022-04-02 23:01:57 -05:00
Deltric 5eec25a7ce Rename variable 2022-04-02 23:00:08 -05:00
Deltric 1e8aa6ccfa Implemented feedback 2022-04-02 22:56:06 -05:00
Deltric 901cfbe9b5 Update Status.kt 2022-04-02 22:30:16 -05:00
Deltric 864ada553f Add default empty period for volatile statuses 2022-04-02 22:26:45 -05:00
Deltric ae475339e0 Added the base for statuses 2022-04-02 22:24:37 -05:00
Paul 62cfd7ed46 Fix for ci deploy job 2022-04-02 19:05:43 +10:00
Hiroku eeb6f21f18 Merge branch '#57-apricorns-galore' into 'main'
Apricorn bugfixes

See merge request cable-mc/pokemon-cobbled!65
2022-04-02 08:36:54 +00:00
Deltric 2244ca559c Fix merge and move to color api 2022-04-02 03:25:35 -05:00
Deltric 3a29e84de4 Merge branch 'main' into #57-apricorns-galore 2022-04-02 03:05:13 -05:00
Deltric 82a8794917 Move configured feature and placements to respective platforms 2022-04-02 03:01:47 -05:00
Deltric 100109b437 Fix apricorns popping off of trees 2022-04-02 02:51:02 -05:00
Deltric a60626f6af Create only one base pokeball model 2022-04-02 02:50:48 -05:00
Paul 69fb3085b0 Merge remote-tracking branch 'origin/main' into main 2022-04-02 16:47:43 +10:00
Paul 2fe439798b Re-add spawn extensions for pokemon 2022-04-02 16:47:24 +10:00
Hiroku a9586dc939 Merge branch '#66-experience' into 'main'
Added experience and leveling

Closes #66

See merge request cable-mc/pokemon-cobbled!64
2022-04-02 06:36:46 +00:00
Paul 94e7d26deb Merge branch 'main' of gitlab.com:cable-mc/pokemon-cobbled into #66-experience
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/FormData.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/SpeciesLoader.kt
2022-04-02 16:01:24 +10:00
Hiroku 2bd64a8670 Merge branch '#57-apricorns-galore' into 'main'
#57 Everything Apricorns

See merge request cable-mc/pokemon-cobbled!63
2022-04-02 05:04:24 +00:00
Deltric bab1f4e8bd Merge branch '#57-apricorns-galore' of https://gitlab.com/cable-mc/pokemon-cobbled into #57-apricorns-galore 2022-04-01 23:51:30 -05:00
Deltric 7612340fb0 Update PokemonCobbled.kt 2022-04-01 23:51:15 -05:00
Paul 240c0e696c Fix compile error from bad merge 2022-04-02 14:42:34 +10:00
Deltric 8b68a9f2af Merge branch 'main' into #57-apricorns-galore 2022-04-01 21:41:01 -05:00
Deltric 93d5429dd3 Fixed forge block colors 2022-04-01 21:33:16 -05:00
Paul 3dafe25fdb Added levelup learnsets and initial moves 2022-04-02 09:45:49 +10:00
Paul 4744bfe5d2 Fixed move loading from Fabric assets by implementing a manifest system 2022-04-01 21:20:35 +10:00
Paul 424e680d13 Added move loading from JSONs and fixed some server runs 2022-04-01 15:59:39 +10:00
Deltric b86f5f25b1 fix stuff? 2022-03-31 07:24:05 -05:00
Paul c581b2ad39 Fix some experience calculations, add xp bar functionality, properly implement experience awarding from battles 2022-03-31 21:07:16 +10:00
Deltric 2a74aab5c3 changes 2022-03-31 05:31:14 -05:00
Deltric 8641c931fb Merge branch 'main' into #57-apricorns-galore 2022-03-31 04:42:58 -05:00
Deltric 9fba1f7a71 added doors 2022-03-31 04:39:04 -05:00
Paul 5762d7f0cd Added base EXP yield to in-game pokemon 2022-03-28 21:02:48 +10:00
Paul f9f4dffc56 Implemented exp calculator and hooked it to battles 2022-03-28 14:10:22 +10:00
Evan MacMillan 17a8d93f26 Adjusted portraitScale and commented out showdown line 2022-03-26 22:34:26 -04:00
Licious 5c560af75e Cleaned up Item registry. 2022-03-27 00:32:06 +00:00
Licious 3b45304bc5 Implemented PokemonProperties and TimeRange evolution requirement. 2022-03-26 15:34:57 +00:00
Licious 02a5583d3e Fix build 2022-03-26 15:20:35 +00:00
Deltric d655fb3872 more apricorn blocks 2022-03-26 00:23:46 -05:00
Evan MacMillan 66b7664987 Rattata added 2022-03-26 01:09:55 -04:00
Paul e71ff6c666 Added biome filtering for fire stone ore as an example 2022-03-25 19:07:24 +10:00
Deltric e21cd11ee9 Tags, apricorn wood, drops, etc 2022-03-25 01:59:23 -05:00
Deltric d06455f14f Refactor features system to be cleaner 2022-03-25 01:14:49 -05:00
Deltric 5c2816700c wip work 2022-03-25 00:41:20 -05:00
Licious 41febc90e6 Implemented Pokemon edit command, Party slot argument and bumped Architectury 2022-03-25 00:08:39 +00:00
Licious f0445de730 Totally didn't accidentally unselect the en_US entry. 2022-03-24 16:17:22 +00:00
Licious 858c919533 Implemented InteractiveItem, PokemonInteractiveItem, EvolutionItem and several evolution items.
Allowed mutability of Evolution.optional and Evolution.consumeHeldItem.
Fixed CobbledCreative tabs not using our Mod ID in resource locations.
Changed ItemInteractionEvolution to use EvolutionItems instead.
Added pt_PT translations, missing moves and species (species don't tend to be translated).
- Black Augurite
- Dragon Scale
- Dubious Disc
- Electirizer
- Kings Rock
- Link Cable
- Magmarizer
- Metal Coat
- Oval Stone
- Protector
- Upgrade
2022-03-24 16:16:36 +00:00
Licious 24dec43472 Allowed mutability of Evolution requirements and learnable moves. 2022-03-23 13:56:33 +00:00
Licious 374255cb09 Implemented PreEvolution & EvolutionSet
Workaround in PokemonSpecies for case-insensitive lookup, refactor still pending
LazySet implemented, used in evolutions.
2022-03-23 13:48:14 +00:00
Paul 5cb3f9cdc8 Pokemon can level up through experience gain 2022-03-23 22:52:39 +10:00
Licious 4fad2c6189 Added post evolution move learning. 2022-03-21 18:06:29 +00:00
Licious 82895b53b0 Implemented PartyMember evolution requirement. 2022-03-21 17:45:29 +00:00
Licious 27eb86b351 Implemented MoveSet evolution requirement. 2022-03-21 17:16:52 +00:00
Licious b487e33a05 Implemented lazy MoveTemplate adapter 2022-03-21 17:10:50 +00:00
Licious 17bb448431 Implemented Area, Biome, Friendship & Level/World evolution requirements.
Documented evolution implementations.
Made ContextEvolution support different types for the serialized target context and the runtime context.
2022-03-21 15:17:18 +00:00
Paul 9c71d13776 Added experience groups 2022-03-21 21:55:43 +10:00
Deltric 6e17a126fa Added appropiate tree color generation
clean up, plus new balls, and its a monday.
2022-03-21 05:34:43 -05:00
Paul 178bc56ce6 Update gitlab-ci since we don't use the remap jar 2022-03-21 17:05:08 +10:00
Licious 743f9798a4 Implemented ItemInteractionEvolution trigger 2022-03-20 23:43:32 +00:00
Licious 93efe59f6d Removed leftover debug code 2022-03-20 23:28:03 +00:00
Licious ff96c53847 Kdocs on Evolution API. 2022-03-20 20:39:01 +00:00
Licious b7abcea14d Implemented Evolution & ItemStack adapters.
Cleaned up Evolution impl
2022-03-20 20:20:45 +00:00
Paul 11a6b8fd66 Fixed most issues in the environment in prod, Pokemon still not rendering outside dev 2022-03-20 22:54:13 +10:00
Deltric 37ffa082f9 apricorn block 2022-03-19 20:46:47 -05:00
Licious e6118a6a35 Partially implemented Evolution API.
Implemented level, item interaction and trade evolutions.
2022-03-19 13:05:18 +00:00
Paul c51e6641d9 Improved player tracked spawning so it keeps some distance from the player 2022-03-19 22:41:40 +10:00
Qumoo 88f78484a0 Add temp. Generation of the fire stone ore 2022-03-19 12:21:01 +01:00
Paul fcc5d3b7a9 Put showdown back 2022-03-19 21:13:22 +10:00
Paul 73bf8fe8ed Fixed despawn issues in general and in the tracking from spawning 2022-03-19 21:09:43 +10:00
Deltric 1c2dc5301f Merge branch 'main' into #57-apricorns-galore 2022-03-19 02:33:29 -05:00
Paul ee83fe12ae Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into main 2022-03-19 16:34:17 +10:00
Paul 1b902f7577 Added more sophisticated despawn mechanism 2022-03-19 16:34:12 +10:00
Hiroku 3123687259 Merge branch '#64-forge-issues' into 'main'
Fixed forge issues

Closes #64

See merge request cable-mc/pokemon-cobbled!61
2022-03-19 05:46:19 +00:00
Hiroku cc4d3e0782 Merge branch '#43-Portraits' into 'main'
Updated portraits

Closes #43

See merge request cable-mc/pokemon-cobbled!60
2022-03-19 05:36:32 +00:00
Paul 53af03b93c Another fixed lang line 2022-03-19 13:17:43 +10:00
Paul ac7c72356e Fixed incorrect lang removals 2022-03-19 13:15:15 +10:00
Paul e567b1ca15 Fixed incorrect JSON edits from a bad merge 2022-03-19 13:10:41 +10:00
Paul 6bb47c14cf Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #64-forge-issues
 Conflicts:
	build.gradle
	common/build.gradle
	forge/build.gradle
	forge/src/main/kotlin/com/cablemc/pokemoncobbled/forge/mod/PokemonCobbledForge.kt
2022-03-19 12:58:23 +10:00
Paul 59ca54c589 Removed unneeded sponge mixins and fixed ext.refmap line in build 2022-03-19 12:56:05 +10:00
Paul 71bd6d4e27 Fixed slightly incorrect viewporting in summary party list 2022-03-19 10:15:31 +10:00
Hiroku ddb44632a2 Update README.md 2022-03-18 14:00:32 +00:00
Paul 39b9f985af Fixed questionable party member rendering in summary GUI 2022-03-18 22:01:12 +10:00
Paul b3c0abbdab Finalized portrait offsets + scaling for all in-game pokemon 2022-03-18 20:01:24 +10:00
Hiroku a9da39b8b1 Merge branch 'updated-party-assets' into 'main'
Updated party assets

See merge request cable-mc/pokemon-cobbled!59
2022-03-17 09:03:10 +00:00
Paul 9665ab9c8d Merge branch 'updated-party-assets' of https://gitlab.com/cable-mc/pokemon-cobbled into #43-Portraits
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/gui/PartyOverlay.kt
	common/src/main/resources/assets/pokemoncobbled/lang/en_us.json
2022-03-16 23:13:13 +10:00
Paul a584139ac2 Little party overlay test code removal 2022-03-16 22:40:33 +10:00
Paul 62c09b3521 Finished updating party assets 2022-03-16 22:26:28 +10:00
Licious 50af0dd0ea Added Registry & Keyed 2022-03-16 12:23:31 +00:00
Licious 80700ab3de Remove unnecessary Overwrite in PlayerMixin - Licious 2022-03-16 12:13:07 +00:00
Paul 9de8911c51 Fucking around with learning blending 2022-03-16 20:45:57 +10:00
Deltric a2a359f26f stuff 2022-03-16 05:44:56 -05:00
Deltric 208322d66a Merge branch '#64-forge-issues' of https://gitlab.com/cable-mc/pokemon-cobbled into #64-forge-issues 2022-03-16 05:20:41 -05:00
Deltric c05ff7a1aa test work 2022-03-16 05:20:30 -05:00
Deltric 110b5866f6 Update mixins.pokemoncobbled-common.json 2022-03-16 03:49:47 -05:00
Hiroku d33cec1a89 Fixed config not loading in a fresh environment due to trying before config/ exists 2022-03-14 11:50:50 +00:00
Paul 8aa2a76eb4 Final tweak to gitlab-ci to get the forge and fabric jars in the root of artifacts 2022-03-14 20:49:10 +10:00
Paul c43971fe11 Another try at the gitlab-ci 2022-03-14 20:31:34 +10:00
Paul 1c5b0ce0a5 Fixed test locations and update gitlab-ci for fabric and forge artifacts 2022-03-14 18:57:18 +10:00
Deltric cd62413e2c Merge branch 'main' into #57-apricorns-galore 2022-03-14 03:49:16 -05:00
Paul a8deb69a4a Fixed the mod.toml processResources issue 2022-03-14 18:16:31 +10:00
Paul d06fcf8b6a A heap more changes for gradle shit trying to copy Adorn 2022-03-14 17:49:57 +10:00
Paul 11d2db1903 Redoing a bunch of the gradles and converting to kotlin dsl 2022-03-14 12:11:28 +10:00
Hiroku caad8ae9ce Merge branch 'more-battle-work' into 'main'
Major overhaul to battle interface and various bits and pieces

See merge request cable-mc/pokemon-cobbled!58
2022-03-13 22:36:27 +00:00
Paul 2692996e50 Added /takepokemon command, update charizard and gyarados portrait, fix Z layer issue 2022-03-13 18:34:23 +10:00
Paul f963a1f060 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #43-Portraits
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/models/blockbench/pokemon/BlastoiseModel.kt
2022-03-13 15:23:19 +10:00
Paul a44a6d9a61 Update lang with the keys for all move names with their actual value, unfilled for move descriptions 2022-03-13 14:55:02 +10:00
Paul c1c0bbda3e Update lang with the keys for all pokemon species names, filled out a few, delegated the rest 2022-03-13 14:31:56 +10:00
Paul ac70fefd49 Translation improvements, battles now working with forced switching on player and wilds, fixed HP issue 2022-03-13 13:28:43 +10:00
Deltric 2226ee85d3 Update ApricornTreeFeature.kt 2022-03-12 18:38:54 -06:00
Paul 15f3621b36 Added some pokemon lang 2022-03-13 09:47:37 +10:00
Paul 1d64fe932d Reworked stats, health, and implemented switching into battles 2022-03-12 23:14:10 +10:00
Qumoo 8e047f378a add translations 2022-03-12 11:48:13 +01:00
Qumoo e98c048f03 Add Ores and Stones as items 2022-03-12 11:48:01 +01:00
Qumoo 49eb130cb0 Add EvolutionStoneOre class 2022-03-12 11:47:44 +01:00
Qumoo b290bf92d0 Add EvoStone classes 2022-03-12 11:47:22 +01:00
Qumoo f4cde87863 Add Block registry 2022-03-12 11:47:00 +01:00
Qumoo 89dd828b77 add assets 2022-03-12 11:46:38 +01:00
Deltric 7a373515de Started on apricorn tree gen
Hell could only be described as what went on over these last couple hours
2022-03-12 04:39:59 -06:00
Deltric 47ef1b8b60 Added apricorn seeds + apricorn 2d sprites 2022-03-12 02:11:26 -06:00
Deltric de65492e8f Add sapling cutout 2022-03-12 01:30:30 -06:00
Paul bda55cafa2 Inline a function 2022-03-12 16:25:09 +10:00
Paul f21ba7b96b Tweaked fabric configured features 2022-03-12 16:22:39 +10:00
Deltric 4e402865e6 I made progress 2022-03-12 00:03:56 -06:00
Paul cd3f3fae69 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into more-battle-work 2022-03-12 12:37:18 +10:00
Paul 709fbe25f4 Port biome references to 1.18.2 2022-03-12 11:55:14 +10:00
Paul 909d54b354 Removed apparently defunct minecraft block in forge gradle 2022-03-12 11:47:39 +10:00
Paul e1b4f9f53f 1.18.2 2022-03-12 11:29:48 +10:00
Paul 389740ac9e Overhauled battle wrapping, rules, battle types, and move + target selection added 2022-03-12 10:56:04 +10:00
Deltric dcf44da86d stuff 2022-03-11 17:02:20 -06:00
Paul 343a61e381 More work inside battles a lot of which cleanup, updated showdown code with some custom changes, we need to check out disordered showdown messages 2022-03-06 16:23:16 +10:00
Paul df9a4d4496 Insignificant typo correction 2022-02-26 14:59:58 +10:00
Paul e1a14631e1 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into more-battle-work
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/battles/ShowdownInterpreter.kt
2022-02-26 14:56:16 +10:00
Paul 773f2df4f3 Compile error fix 2022-02-26 14:12:37 +10:00
Paul 1833bce429 Some cleanup for abilities, moves, Stat 2022-02-26 14:05:15 +10:00
Paul 9d086d0305 Re-added text showdown interpreting and added move selection by clickable text 2022-02-25 22:41:34 +10:00
Paul d5cc3c612f Battle cleanup 2022-02-25 21:01:22 +10:00
Paul 5b64a9ecdd Fixed shoulder mount observable issue, properly reimplemented spawning, made Eevee shoulder-mountable again 2022-02-25 19:46:37 +10:00
Paul 18741b3339 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #63-3-fabric-forge
 Conflicts:
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/CobbledNetwork.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/api/storage/PokemonStoreManager.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/net/ClientPacketRegistrar.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/client/render/party/PokemonPartyOverlay.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokeball/EmptyPokeBallEntity.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/net/serverhandling/storage/RequestMoveSwapHandler.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/net/serverhandling/storage/SendOutPokemonHandler.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/pokemon/Pokemon.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/util/MiscUtils.kt
	common/src/main/kotlin/com/cablemc/pokemoncobbled/common/util/PlayerExtensions.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/CommandRegistrar.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/PokemonCobbled.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/mod/PokemonCobbledMod.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/mod/config/CobbledConfig.kt
2022-02-25 09:52:59 +10:00
Deltric a2939b73d3 Attempt to get rid of vscode file 2022-02-24 03:44:19 -06:00
Deltric 1c36f4e85f Merge branch '#63-3-fabric-forge' of https://gitlab.com/cable-mc/pokemon-cobbled into #63-3-fabric-forge 2022-02-24 03:40:42 -06:00
Deltric 9ee507cc25 Gave config some freedom 🇺🇸
Config is now platform independent built around Gson.
2022-02-24 03:32:28 -06:00
Qumoo 7850a98b99 Add CobbledBlockingKeyMapping and change PartySendBinding to a blocked key mapping 2022-02-24 00:05:40 +01:00
Qumoo dd4ef68a81 Add architectury.common.json and set common accessWidener path 2022-02-23 10:41:00 +01:00
Qumoo c69ca9fbaf Re-add shading of Kotlin and Showdown to fabric and forge gradle 2022-02-23 10:40:32 +01:00
Qumoo 10e0d897ad Add accesswidener for Fabric side 2022-02-23 10:39:33 +01:00
Qumoo a5307259c5 Remove remap=false from LayerDefinitionsMixin 2022-02-23 10:39:16 +01:00
Qumoo 229e69d619 Adjust refmap path 2022-02-23 10:38:20 +01:00
Qumoo 1c51ee35f9 Separate Client and Common setups 2022-02-23 00:49:46 +01:00
Qumoo c869da4fdb Use TranslatableComponent for the give command 2022-02-23 00:49:05 +01:00
Qumoo e896b39551 Proposal to render PartyOverlay behind the chat 2022-02-22 14:39:31 +01:00
Paul a93659e087 Cleanup 2022-02-22 22:22:20 +10:00
Paul 54fec9a3c4 Entity rendering working on Forge and Fabric (with clean implementation yay) 2022-02-22 22:03:56 +10:00
Qumoo a69c5e0b41 Add CommandContextExtensions and adjusted GivePokemon command to not require a player argument 2022-02-21 18:08:40 +01:00
Qumoo ac4ec3868c Add Mixin to register our Models before first reload 2022-02-21 17:45:37 +01:00
Paul 22bc7ef639 Merge remote-tracking branch 'origin/#63-3-fabric-forge' into #63-3-fabric-forge 2022-02-21 22:53:45 +10:00
Paul daa613cc37 Mucked around trying to get resource loading done properly 2022-02-21 22:53:32 +10:00
Qumoo c45a89592d Merge branch '#63-3-fabric-forge' of https://gitlab.com/cable-mc/pokemon-cobbled into #63-3-fabric-forge 2022-02-21 13:34:38 +01:00
Paul 37f6f3aa50 Asset loading on Fabric 2022-02-21 22:31:55 +10:00
Qumoo 41e4a88c38 Use Architectury for addEntityPacket 2022-02-21 13:11:53 +01:00
Paul 6c3b6bbf1c Fabric network fix 2022-02-21 22:10:31 +10:00
Paul be3c8706ab Migrated command registration, added Text library from Cable Libs, fixed sounds 2022-02-21 21:44:39 +10:00
Paul 7d134e9323 Fixed lerp scheduled task not working right, causing send out / retrieve to glitch out 2022-02-21 11:59:09 +10:00
Paul d2e3ccbffe Fixed network packet handling for Fabric and cleaned up common process 2022-02-21 11:15:19 +10:00
Qumoo 38e852095e Remove full path from docs 2022-02-21 00:08:17 +01:00
Qumoo 156b6bb7bc Add extension method String -> ResourceLocation 2022-02-21 00:08:05 +01:00
Qumoo af858c0fce Use lowercase identifier 2022-02-21 00:07:41 +01:00
Qumoo 6460837da1 PokemonCobbledClient clean up 2022-02-21 00:07:16 +01:00
Qumoo a8b0b8c365 Use Architectury for Creative Tabs 2022-02-21 00:06:46 +01:00
Qumoo fc18dbd728 Move Keybinds to Common 2022-02-21 00:06:09 +01:00
Qumoo bc10537a06 Update Fabric Loader and API 2022-02-20 23:59:30 +01:00
Paul 1fe5a41035 Fixed entity renderer registration 2022-02-20 23:52:03 +10:00
Paul ce85c7b100 Crappy attribute fix 2022-02-20 22:10:40 +10:00
Paul 03ac02cc2a Fixed packet registration issue and double-initialization from Forge fork 2022-02-20 12:04:56 +10:00
Qumoo 46eeacd611 Commenting out ClientSchedulingListener, Fix CreativeModTab 2022-02-20 01:32:05 +01:00
Qumoo 7309dcd38c Use Architectury Events instead of Forge 2022-02-20 01:31:16 +01:00
Qumoo 7f72cef24a fix imports again 2022-02-20 01:30:52 +01:00
Qumoo 19993ae461 Fix PokemonCobbled call 2022-02-20 01:30:20 +01:00
Qumoo df7b616dae Remove Method from addListener, register mod event bus 2022-02-20 01:29:55 +01:00
Qumoo 18a51b9117 Use additional spawn data 2022-02-20 01:29:23 +01:00
Qumoo e15b3dff60 Fix imports in tests 2022-02-20 01:28:40 +01:00
Qumoo 3907224aa9 Move Shoulder access transformers to common access widener 2022-02-20 01:28:21 +01:00
Qumoo d5563bd1f1 update architectury 2022-02-20 01:27:50 +01:00
Qumoo a5c29e1079 Add Mixin files for Fabric 2022-02-20 01:27:30 +01:00
Qumoo 6a696d52d0 Commenting out SlowFallEffect.kt for now 2022-02-20 01:26:46 +01:00
Qumoo 5936ecca74 Move Javet and Kotlin dependencies and shadows to common 2022-02-20 00:35:03 +01:00
Qumoo f1723f1fbf Move PlayerMixin from forge to common 2022-02-20 00:33:54 +01:00
Qumoo 7d316929e8 Add Mixin for adding layers to the player, added common accessWidener (and enabled conversion for Forge) 2022-02-20 00:31:26 +01:00
Paul 13859dd88b Migrate scheduled tasks and make scheduled tasks more precise on clients 2022-02-19 23:44:42 +10:00
Hiroku d89e9a7a9a Merge branch '#7-best-spawner' into 'main'
Finished the Best Spawner (the crucial bits, more to do over time but structurally strong)

Closes #7

See merge request cable-mc/pokemon-cobbled!57
2022-02-19 12:07:47 +00:00
Paul b804583fa0 Import fix and spawn optimization 2022-02-19 21:41:07 +10:00
Hiroku 0b669fdc5b Merge branch 'main' into '#7-best-spawner'
# Conflicts:
#   src/main/kotlin/com/cablemc/pokemoncobbled/mod/PokemonCobbledMod.kt
2022-02-19 11:11:15 +00:00
Paul aaa7ad1b9b Moved some network stuff to be less repetitive 2022-02-19 20:02:45 +10:00
Anne Ominous 18b051c614 Adjust Pokeball trajectory 2022-02-19 00:22:18 -05:00
Anne Ominous 8df4e69c17 Adjusted Pokeball model offset during beginning of throw 2022-02-18 23:08:12 -05:00
Paul 04e1e4df42 Yet more piles of general porting to common package, mainly networking on Fabric 2022-02-19 13:35:58 +10:00
Anne Ominous 347f23b63e Added eye-height to Pokeball throw position (fixes crouching/swimming/flying) 2022-02-18 22:34:23 -05:00
Anne Ominous adde9a0390 Prevent Pokeballs from dropping when thrown in Creative mode 2022-02-18 20:38:15 -05:00
Anne Ominous d55dfa9ddc Fix Pokeballs not dropping when thrown at busy or player-owned Pokemon 2022-02-18 20:13:58 -05:00
Paul bb9974698f Merge branch '#63-2-fabric-forge' of https://gitlab.com/cable-mc/pokemon-cobbled into #63-2-fabric-forge
 Conflicts:
	forge/src/main/kotlin/com/cablemc/pokemoncobbled/forge/client/gui/PartyOverlay.kt
	forge/src/main/kotlin/com/cablemc/pokemoncobbled/forge/mod/PokemonCobbledMod.kt
2022-02-19 11:08:49 +10:00
Paul a39e65f7ce Much more relocation of networking to common 2022-02-19 11:06:39 +10:00
Qumoo 0b6537fdb5 Make our ModEventBus known to Architectury 2022-02-18 18:55:47 +01:00
Qumoo 2e662046fa add import for moved class 2022-02-18 18:55:20 +01:00
Qumoo 0cbc1b96de add docs 2022-02-18 18:54:41 +01:00
Qumoo 80417b92ea Moved PokeNav to common, moved some GUIUtils to common 2022-02-18 18:54:14 +01:00
Qumoo 390d6471fd Add mixins for keybinds, create CobbledKeyMapping class, moved some keybind related classes, added CobbledKeybinds as platform independent registering point for keybinds 2022-02-18 18:53:11 +01:00
Qumoo 793ac72d91 Add basic Fabric structure 2022-02-18 12:10:22 +01:00
Paul 8b90c73e54 Heaps more relocation for platform agnosticism 2022-02-18 19:14:35 +10:00
Paul 5884ef2826 Loads of work moving over entity stuff to common 2022-02-18 12:05:22 +10:00
Paul 27e49b5f66 Merge branch '#63-2-fabric-forge' of https://gitlab.com/cable-mc/pokemon-cobbled into #63-2-fabric-forge 2022-02-17 23:13:40 +10:00
Paul d8d6146921 Added version of item registry but need other dependencies resolved before items move properly 2022-02-17 23:13:29 +10:00
Qumoo cbd87f8695 mixin to get Minecraft to also use our LayerDefinitionStore 2022-02-17 13:59:57 +01:00
Qumoo eb58385c44 add our own LayerDefinitions store 2022-02-17 13:59:33 +01:00
Qumoo 36627b846d move PlayerMixin to forge mixins 2022-02-17 13:59:01 +01:00
Qumoo 44cfcceb02 use import instead of full name 2022-02-17 13:58:36 +01:00
Paul 1184fabde6 Relocate sound registry to Architectury, it's just so easy ): 2022-02-17 22:41:27 +10:00
Qumoo 72c6b0a6d2 now that stdlib is back, ShowdownServer is back to old state 2022-02-17 11:28:49 +01:00
Qumoo c6c6a36285 fix mixins in dev environment, add shadowing of kotlin jdk8 stdlib 2022-02-17 11:26:54 +01:00
Qumoo 929ea00e70 add kotlin jdk8 stdlib to main build.gradle 2022-02-17 11:26:09 +01:00
Hiroku df0ec93ded Merge branch '#48-friendship_property' into 'main'
added friendship property

See merge request cable-mc/pokemon-cobbled!53
2022-02-16 23:31:14 +00:00
Blue 94998b7889 there is no happiness 2022-02-16 23:16:27 +00:00
Qumoo b10ccdbe69 Moved packages to common module that were able to survive the move, proposal for shadowing kotlin 2022-02-16 23:40:28 +01:00
Qumoo 2bf8752a32 A lot of moving to get the Forge Client to work again, gradle trial and error 2022-02-16 18:38:08 +01:00
Qumoo adf63e4daf Proposed fix for Kotlin plugin 2022-02-16 14:54:06 +01:00
Paul acb70b01ae First run on setting up proper subprojects for Forge & Fabric, issues with Kotlin plugin and mixins (probably) 2022-02-16 21:46:52 +10:00
Qumoo 7d5b22618e Move to Regex to allow for negative values, add tests 2022-02-15 23:33:06 +01:00
Adenydd Catherine 3a46e51e7b Updated portraits
Also updated en_us.json to possess other species names
2022-02-15 21:26:30 +01:00
Paul f3126660bb Removed a println 2022-02-15 22:43:23 +10:00
Paul 80a1a35020 Filled out PokemonProperties object as an improved PokemonSpec, including custom properties and JSON adaptation 2022-02-15 22:28:15 +10:00
Hiroku 28a6b69f2a Merge branch 'main' into 'main'
Various Entity Behaviours

See merge request cable-mc/pokemon-cobbled!56
2022-02-15 11:17:54 +00:00
Chris FuscoandHiroku 70bd5839d4 Various Entity Behaviours 2022-02-15 11:17:54 +00:00
Hiroku 6648dea8b7 Merge branch 'beam-fixes' into 'main'
Fix send-out location and Pokeball opening animation

See merge request cable-mc/pokemon-cobbled!55
2022-02-13 12:51:42 +00:00
Anne Ominous 21686694fe Fix Pokémon sending out on wrong block in negative coordinates 2022-02-13 05:45:53 -05:00
Anne Ominous c2e1c8a981 Fix Pokeball pointing wrong direction during capture 2022-02-13 05:40:31 -05:00
Paul 5cd1789946 Filled out PokemonProperties object as an improved PokemonSpec, including custom properties and JSON adaptation 2022-02-13 16:06:27 +10:00
Paul 58fcde0233 Fully implemented spawn loading including external exports 2022-02-13 15:26:22 +10:00
Blue 64a64f20b2 happiness stuff 2022-02-12 19:57:12 +00:00
Blue 1dd1b916a7 happiness stuff 2022-02-12 19:33:58 +00:00
Blue ea11ab1a43 Merge branch 'main' into #48-friendship_property 2022-02-12 19:18:20 +00:00
Blue 05860df36e Merge remote-tracking branch 'origin/main' into #48-friendship_property 2022-02-12 19:17:55 +00:00
Paul 815de15fa7 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #7-best-spawner 2022-02-10 22:37:49 +10:00
Paul da74663369 Added SpawnPools to solve the complexity of spawn detail lists, started on asset loading of spawn sets 2022-02-10 22:37:31 +10:00
Blue d38da939c2 happiness stuff 2022-02-09 18:05:42 +00:00
QumooandBlue 11b4ea6bb3 Missed removing one import :( 2022-02-09 18:04:43 +00:00
QumooandBlue 38c21b7c8b Missed one: shoulderEffect -> shoulderEffects 2022-02-09 18:04:43 +00:00
QumooandBlue 1fb0f6d46d Proposed fix for Hiro's OCD (UUID.player() to UUID.getPlayer()) 2022-02-09 18:04:43 +00:00
QumooandBlue 3761d5214c shoulderEffect -> shoulderEffects 2022-02-09 18:04:43 +00:00
QumooandBlue d6454ad319 SlowFall Potion effects resets the fall distance => Change to manually applying a different gravity 2022-02-09 18:04:43 +00:00
QumooandBlue d6711d4e8e Switch to data class 2022-02-09 18:04:43 +00:00
QumooandBlue 32281e00df Remove effects on player leave and apply them on join if the Pokemon is still ShoulderMounted 2022-02-09 18:04:43 +00:00
QumooandBlue 5907f64338 Use playerList#getPlayer(UUID) instead of searching the list manually 2022-02-09 18:04:43 +00:00
QumooandBlue 38515e0a47 Change to Pokemon instead of PokemonEntity² 2022-02-09 18:04:43 +00:00
QumooandBlue d46b902175 Change to Pokemon instead of PokemonEntity 2022-02-09 18:04:43 +00:00
QumooandBlue 6f6bd2ba7a Added SlowFallEffect#onFallEnd 2022-02-09 18:04:43 +00:00
QumooandBlue 6ee9326206 Moved Registry from Objects to classes, added SlowFallEffect and moved the effects to their own package 2022-02-09 18:04:43 +00:00
QumooandBlue ccf9f68d81 Move shoulderMountable to the according method 2022-02-09 18:04:43 +00:00
QumooandBlue 7e118ee7c7 Add isLeft to ShoulderEffect 2022-02-09 18:04:43 +00:00
QumooandBlue 6f5496a450 updated for ShoulderEffect test 2022-02-09 18:04:43 +00:00
QumooandBlue da614707fb Add unregister by name 2022-02-09 18:04:43 +00:00
QumooandBlue 2aa478f702 Only load type and then pass to Effect to do the remaining serialization 2022-02-09 18:04:43 +00:00
QumooandBlue 644bbe0242 Add serialization to LightSourceEffect 2022-02-09 18:04:43 +00:00
QumooandBlue c2a798447d Made ShoulderEffect an Interface 2022-02-09 18:04:43 +00:00
QumooandBlue 3eb621a7fd add argument for EventBus 2022-02-09 18:04:43 +00:00
QumooandBlue d945761924 Update charmander.json for testing 2022-02-09 18:04:43 +00:00
QumooandBlue 6399e4f8f0 PlayerExtension for getting the party and getting player from uuid 2022-02-09 18:04:43 +00:00
QumooandBlue 82b77243fe Use Form instead of Species for ShoulderEffect, add shoulderMountable query 2022-02-09 18:04:43 +00:00
QumooandBlue 6bb56716c0 Make PokemonEntity optional in ShoulderEffect 2022-02-09 18:04:43 +00:00
QumooandBlue 2b7b3f08ea Move LightSourceEffect to effects package 2022-02-09 18:04:43 +00:00
QumooandBlue 109bcabf83 Support for multiple ShoulderEffects 2022-02-09 18:04:43 +00:00
QumooandBlue 89851fe2a7 Add Pokemon UUID to ShoulderState 2022-02-09 18:04:43 +00:00
QumooandBlue c2735b3dfd add first testing ShoulderEffect (LightSourceEffect) 2022-02-09 18:04:43 +00:00
QumooandBlue 00ebf22173 add ShoulderEffect to Species 2022-02-09 18:04:43 +00:00
QumooandBlue 660277f13e Fire ShoulderMountEvent on shoulder mounting 2022-02-09 18:04:43 +00:00
QumooandBlue f7587b3dce Add ShoulderEffect base, adapter and registry 2022-02-09 18:04:43 +00:00
QumooandBlue b110e76de7 Add ShoulderMountEvent and extension function postAndThen 2022-02-09 18:04:43 +00:00
LukeandBlue e9066a6e04 applied animations to pidgeot & pidgeotto 2022-02-09 18:04:43 +00:00
LukeandBlue 7f9da032bf pidgey progress 2022-02-09 18:04:43 +00:00
LukeandBlue 964712a7a8 updated pidgey line animations & scales 2022-02-09 18:04:43 +00:00
LukeandBlue b081a6d42f pidgey animation progress 2022-02-09 18:04:43 +00:00
LukeandBlue 2c274c70fe updated pidgey animation 2022-02-09 18:04:43 +00:00
LukeandBlue 2bc4e96ba7 cleaned up pidgey line animations 2022-02-09 18:04:43 +00:00
LukeandBlue bc9165e6eb cleaned up pidgey line animations 2022-02-09 18:04:43 +00:00
LukeandBlue 696a3ed5b8 cleaned up pidgey line animations 2022-02-09 18:04:43 +00:00
LukeandBlue 3cad84ec8e cleaned up pidgey line animations 2022-02-09 18:04:43 +00:00
LukeandBlue b5557943e9 added pidgey tree & rough animations 2022-02-09 18:04:43 +00:00
PaulandBlue aef74011dc Fix encoding issue in moves jsons 2022-02-09 18:04:43 +00:00
PaulandBlue 97c74eaa6e Significantly improved pose transition so idles can play simultaneously, changed default transformTicks to 20 2022-02-09 18:04:43 +00:00
Paul 125c8ddc16 Merge remote-tracking branch 'origin/main' into main 2022-02-08 09:56:41 +10:00
Paul 7ef5838379 Fix encoding issue in moves jsons 2022-02-08 09:56:28 +10:00
Paul 34a62bf0ff Formatting OCD 2022-02-08 09:46:13 +10:00
Paul 1b7f9e21c3 Reworked SpawnDetail to be for a fixed context, fleshed out spawning condition types 2022-02-07 18:08:08 +10:00
Paul a5f13948b5 Improved precalculation, created implementations of Spawner for ticking and area based logic, created multiple context calcualtors, weighted selectors, and better SpawnAction structure 2022-02-07 00:54:09 +10:00
Hiroku e01540c9a1 Merge branch '#11-shoulder-effects' into 'main'
#11 shoulder effects

Closes #11

See merge request cable-mc/pokemon-cobbled!48
2022-02-06 13:33:09 +00:00
Qumoo ea5d043de9 Missed removing one import :( 2022-02-04 00:08:21 +01:00
Qumoo c46cd3884a Missed one: shoulderEffect -> shoulderEffects 2022-02-03 23:55:12 +01:00
Qumoo fbd80f8ffd Proposed fix for Hiro's OCD (UUID.player() to UUID.getPlayer()) 2022-02-03 23:54:39 +01:00
Qumoo 1c47096818 shoulderEffect -> shoulderEffects 2022-02-03 23:52:39 +01:00
Hiroku c9b3832629 Merge branch '#52-add-pidgey-line' into 'main'
#52 add pidgey line

See merge request cable-mc/pokemon-cobbled!51
2022-02-01 23:57:39 +00:00
Qumoo c5ffcd46c9 SlowFall Potion effects resets the fall distance => Change to manually applying a different gravity 2022-02-02 00:30:13 +01:00
Qumoo 1527c275bd Switch to data class 2022-02-02 00:29:01 +01:00
Qumoo 02f9ff8bc4 Remove effects on player leave and apply them on join if the Pokemon is still ShoulderMounted 2022-02-02 00:28:52 +01:00
Qumoo 48120944f5 Use playerList#getPlayer(UUID) instead of searching the list manually 2022-02-02 00:28:16 +01:00
Qumoo d554046c25 Change to Pokemon instead of PokemonEntity² 2022-02-02 00:27:55 +01:00
Qumoo eac3f7bfde Change to Pokemon instead of PokemonEntity 2022-02-02 00:27:06 +01:00
Paul 2a12c3fb56 Added vast amounts of logic and structure to the spawning system, including context calculators, world slices, context properties, precalculators, influences, and removed the old spawner 2022-01-31 22:27:39 +10:00
Qumoo 677a76264a Added SlowFallEffect#onFallEnd 2022-01-30 22:08:50 +01:00
Qumoo 394d10a6fe Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #11-shoulder-effects 2022-01-30 00:07:48 +01:00
Qumoo 165c3c56fb Moved Registry from Objects to classes, added SlowFallEffect and moved the effects to their own package 2022-01-30 00:06:33 +01:00
Qumoo abab74bdfb Move shoulderMountable to the according method 2022-01-29 21:57:53 +01:00
Qumoo 5835b6192e Add isLeft to ShoulderEffect 2022-01-29 20:11:22 +01:00
Luke 0979005fde applied animations to pidgeot & pidgeotto 2022-01-29 13:53:42 -05:00
Blue 415dbbbd40 use forge event bus rather than cobbled 2022-01-29 15:32:30 +00:00
Luke 1446946c9e pidgey progress 2022-01-29 10:10:08 -05:00
Luke 4fb154a74f updated pidgey line animations & scales 2022-01-29 07:58:42 -05:00
Luke 65baae46c3 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #52-add-pidgey-line 2022-01-29 07:23:58 -05:00
Paul 0bd01eaf00 Tiny speculation work on a spawning prospector interface, just need to commit some stuff 2022-01-29 21:42:47 +10:00
Paul e8abefc356 Fixed compile error from pull 2022-01-29 17:42:57 +10:00
Paul e078a05e04 Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into #7-best-spawner
 Conflicts:
	build.gradle
	src/main/kotlin/com/cablemc/pokemoncobbled/client/PokemonCobbledClient.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/client/gui/summary/ExitButton.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/client/gui/summary/widgets/pages/SummarySwitchButton.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/client/gui/summary/widgets/pages/moves/MoveWidget.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/api/storage/factory/FileBackedPokemonStoreFactory.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/entity/pokemon/PokemonEntity.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/net/PokemonCobbledNetwork.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/spawning/SpawnerManager.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/common/util/DistributionUtils.kt
	src/main/kotlin/com/cablemc/pokemoncobbled/mod/PokemonCobbledMod.kt
2022-01-29 17:29:27 +10:00
Paul 9c7b9efc2e Significantly improved pose transition so idles can play simultaneously, changed default transformTicks to 20 2022-01-29 16:05:10 +10:00
Luke 8614c4e7da pidgey animation progress 2022-01-29 00:49:05 -05:00
Luke 837f6968d6 updated pidgey animation 2022-01-28 20:06:00 -05:00
Luke a0a3c7f6e2 cleaned up pidgey line animations 2022-01-28 19:01:26 -05:00
Luke 8d0a73163a cleaned up pidgey line animations 2022-01-28 18:38:30 -05:00
Luke 59510d19eb cleaned up pidgey line animations 2022-01-28 18:17:57 -05:00
Qumoo fb10e9cd48 updated for ShoulderEffect test 2022-01-29 00:11:33 +01:00
Qumoo 5db3e3c0ce Add unregister by name 2022-01-29 00:11:07 +01:00
Qumoo b897b53281 Only load type and then pass to Effect to do the remaining serialization 2022-01-29 00:10:50 +01:00
Qumoo c4a31b8ec7 Add serialization to LightSourceEffect 2022-01-29 00:09:45 +01:00
Qumoo 70841252ca Made ShoulderEffect an Interface 2022-01-29 00:08:45 +01:00
Qumoo 8f3514311c add argument for EventBus 2022-01-29 00:08:00 +01:00
Luke 0617d85e3b cleaned up pidgey line animations 2022-01-28 18:00:15 -05:00
Blue 8335230f78 what is a kotlin 2022-01-28 22:50:46 +00:00
Luke a93fb939c6 added pidgey tree & rough animations 2022-01-28 09:43:52 -05:00
Paul 32eff0d98b Use spaces between keywords and parentheses you bloody primitives 2022-01-28 22:16:49 +10:00
Paul f60020ecb6 M-more gitignore 2022-01-28 19:45:00 +10:00
Paul a5fe83ea7a Corrected gitignore 2022-01-28 19:44:27 +10:00
Paul cd05135cfe Fixed move JSON encoding (Quuuuu!!!) and removed unneeded test, update gitignore 2022-01-28 19:39:50 +10:00
Paul ea45133efd Merge branch 'main' of https://gitlab.com/cable-mc/pokemon-cobbled into programatically-auto-extract-showdown-from-the-mod 2022-01-28 19:12:17 +10:00
Paul 71422bcaef Fixed showdown extraction 2022-01-28 17:55:24 +10:00
Paul 0422345c57 Improve Butterfree animation 2022-01-28 16:17:50 +10:00
Paul 9af0a010b5 Added Butterfree and removed old sprites 2022-01-28 15:48:45 +10:00
Paul 1f6f93c798 Fix cobbled config crash 2022-01-28 14:52:45 +10:00
Paul a2507d87b9 Don't start up showdown, it's broked 2022-01-28 14:45:59 +10:00
Paul acbf0e19ad Removed unused class and update README for Java 17 2022-01-28 14:39:14 +10:00
Paul 169bf6ada7 Clear the bedrock animation cache when reloading assets 2022-01-28 14:09:46 +10:00
Paul 0596243e41 Considerable structure and Gson adapters 2022-01-28 14:04:37 +10:00
Deltric 09c5048479 progress 2022-01-27 17:46:51 -06:00
Qumoo 52545f0ca3 Update charmander.json for testing 2022-01-27 18:43:48 +01:00
Qumoo f882cee29e PlayerExtension for getting the party and getting player from uuid 2022-01-27 18:43:37 +01:00
Qumoo 4843d4fafd Use Form instead of Species for ShoulderEffect, add shoulderMountable query 2022-01-27 18:43:12 +01:00
Qumoo 7f4892b8f3 Make PokemonEntity optional in ShoulderEffect 2022-01-27 18:42:29 +01:00
Qumoo 3941810702 Move LightSourceEffect to effects package 2022-01-27 18:41:11 +01:00
Qumoo 5b6caeef28 Support for multiple ShoulderEffects 2022-01-27 18:40:47 +01:00
Qumoo c60c4140e1 Add Pokemon UUID to ShoulderState 2022-01-27 18:39:49 +01:00
Qumoo 896818676c add first testing ShoulderEffect (LightSourceEffect) 2022-01-26 16:14:35 +01:00
Qumoo f9fd3a25a9 add ShoulderEffect to Species 2022-01-26 16:14:05 +01:00
Qumoo bd454671cf Fire ShoulderMountEvent on shoulder mounting 2022-01-26 16:13:40 +01:00
Qumoo 8b692fd9c9 Add ShoulderEffect base, adapter and registry 2022-01-26 16:12:53 +01:00
Qumoo a2febd3d76 Add ShoulderMountEvent and extension function postAndThen 2022-01-26 16:12:12 +01:00
Hiroku c9b53771c1 Merge branch 'toml-config' into 'main'
TOML Config

See merge request cable-mc/pokemon-cobbled!47
2022-01-26 03:23:43 +00:00
Deltric f8de7ab92f comment out examples 2022-01-25 19:33:10 -06:00
Deltric 5a9653d2db Merge branch 'main' into toml-config 2022-01-25 19:26:47 -06:00
Hiroku b41f06b2f7 Merge branch 'one-eighteen' into 'main'
One eighteen

See merge request cable-mc/pokemon-cobbled!46
2022-01-26 00:57:48 +00:00
Deltric c7c9b421d3 Update mods.toml 2022-01-25 18:40:13 -06:00
Paul ae485ebbf6 Fixed compile error in runOnSide 2022-01-26 10:22:44 +10:00
Deltric 58edf0e825 1.18 stuff 2022-01-25 18:14:31 -06:00
Paul 52fa22a1fb Merge branch '1.18.1' of https://gitlab.com/cable-mc/pokemon-cobbled into #7-best-spawner 2022-01-26 07:40:14 +10:00
Paul 48f35c69ce Little more layout on spawning stuff 2022-01-26 07:39:07 +10:00
Blue fe9f0cdb82 broken 1.18.1 2022-01-24 21:45:04 +00:00
Paul 6c6458482b Early model work on the spawning system 2022-01-24 21:04:38 +10:00
Paul 22b314f634 Update Charizard texture and fixed relativity bug in .rotation animations 2022-01-23 20:32:58 +10:00
Hiroku 7a31b04db3 Merge branch 'battle-showcase' into 'main'
Battle showcase cleanup and merging

See merge request cable-mc/pokemon-cobbled!45
2022-01-23 07:24:21 +00:00
Deltric 04e774210c Update CommandRegistrar.kt 2022-01-22 23:14:30 -06:00
Deltric c9f37f6e5b Update PokemonCobbledMod.kt 2022-01-22 22:54:24 -06:00
Deltric 801e27701f Merge branch 'main' into battle-showcase 2022-01-22 22:48:26 -06:00
Deltric 50074d1875 Merge branch 'battle-showcase' of https://gitlab.com/cable-mc/pokemon-cobbled into battle-showcase 2022-01-22 22:47:27 -06:00
Deltric 17eade010a Multiple changes read description 🙈
- Javet connection reupdated and made default again
- Showdown stuff is now on its own thread
- Removed all placeholder tech demo stuff
- Added keep alives to sockets (need testing)
- Attempted reconnection code
2022-01-22 22:47:17 -06:00
Deltric 42ac11b0c2 Start to config
may the force be with you
2022-01-10 01:15:48 -06:00
9209 changed files with 760072 additions and 21619 deletions
+10 -3
View File
@@ -5,7 +5,8 @@ bin
.metadata
.classpath
.project
/.architectury-transformer/
common/src/main/resources/assets/cobblemon/showdown
# idea
out
*.ipr
@@ -23,6 +24,12 @@ run
# Files from Forge MDK
forge*changelog.txt
/src/main/resources/showdown/package-lock.json
/src/main/resources/showdown/node_modules/
/showdown/
/logs/
.vscode/launch.json
.vscode
common/src/main/resources/assets/cobblemon/showdown
# Generated files
*/generated/resources/*
/fabric/src/generated/resources/cobblemon-common.accesswidener
+37 -10
View File
@@ -5,33 +5,60 @@ stages:
- build
- deploy
#TODO add client reference test process, delete client from sources and see if compilation is successful
#TODO add client reference test process, search for import com.cobblemon.mod.common.client
build-job:
build:
stage: build
only:
- branches@cable-mc/cobblemon
script:
- export GRADLE_OPTS="-Xmx3G -Xms3G"
- chmod +x ./gradlew
- ./gradlew build
- export GRADLE_OPTS="-Xmx4G -Xms4G"
- chmod +x ./gradlew
- ./gradlew build
cache:
key: "$CI_COMMIT_REF_NAME"
policy: push
paths:
- build/libs
- forge/build/libs
- fabric/build/libs
publish:
stage: deploy
dependencies:
- build
cache:
key: "CI_COMMIT_REF_NAME"
policy: pull
paths:
- forge/build/libs/*.jar
- fabric/build/libs/*.jar
rules:
- if: '$CI_COMMIT_BRANCH == "main"'
script:
- export GRADLE_OPTS="-Xmx4G -Xms4G"
- chmod +x ./gradlew
- ./gradlew publish
# Separate step to deploy the artifacts, save Norry the headache of keeping even more shit around
deploy-job:
deploy:
stage: deploy
dependencies:
- build
when: manual
cache:
key: "$CI_COMMIT_REF_NAME"
policy: pull
paths:
- build/libs/*
- forge/build/libs/*.jar
- fabric/build/libs/*.jar
script:
- echo "Collecting artifacts..."
- mv build/libs/*.jar ./
- mv forge/build/libs/*+*.jar ./
- mv fabric/build/libs/*+*.jar ./
- for f in *.jar; do mv "$f" "$(echo "$f" | sed s/+/b$CI_PIPELINE_IID+/)"; done
artifacts:
expire_in: 10 days
expire_in: 28 days
paths:
- ./*.jar
# - forge/build/libs/*+*.jar
# - fabric/build/libs/*+*.jar
+612
View File
@@ -0,0 +1,612 @@
# Changelog
## [1.4.0](#1-4-0)
### Additions
- Added nicknaming.
- Added mints, found on mountains.
- Added revival herbs, with pep-up flowers if fully grown, growing in lush caves.
- Added medicinal leeks, growing on the surface of rivers and ponds. It is a potion ingredient!
- Added big roots, generating from cave ceiling dirt and sometimes spreading into energy roots.
- Added trading between players. Press R while looking at another player, you'll figure it out.
- Added pasture blocks, used to let your PC Pokémon roam around your base.
- Added support for scale in animations.
- Added support for jump keyframes (i.e. pre and post keyframes)
- Made Nosepass point towards world spawn while idle.
- Added structure spawn conditions
- Added Pokémon cry system for battles and sending out.
- Added cries for Gen 1-9 starters and their evolutions.
- Added cries for Chatot, Darmanitan, Darumaka, Lucario, Mimikyu, Quagsire, Riolu, Wooper, Caterpie, Metapod, Butterfree, Weedle, Kakuna, Beedrill, Pidgey, Pidgeotto, Pidgeot, Rattata, Raticate, Cleffa, Clefairy, Clefable, Tauros, Miltank, Buneary, Lopunny, Wooloo, Dubwool.
- Added recipes for Berry Juice, Heal Powder, Remedy, Fine Remedy, Superb Remedy, Revive, Max Revive, HP Up, Protein, Iron, Calcium, Zinc, Carbos, PP Up, PP Max, Pasture, Medicinal Leek to Magenta Dye, Roasted Leek, Leek and Potato Stew, Braised Vivichoke, Vivichoke Dip, Mulch Base, Growth Mulch, Surprise Mulch, Coarse Mulch, Humid Mulch, Rich Mulch, Loamy Mulch, Peat Mulch, Sandy Mulch, Health Feather, Muscle Feather, Resist Feather, Genius Feather, Clever Feather, Genius Feather
- Added a shoulder mount for Mimikyu
- Added Advancement trigger for defeating Pokémon and collecting varieties of Pokémon.
- Added sleep animations to Arcanine, Jigglypuff, Wigglytuff, Vulpix and Ninetales.
- Added flying placeholder animations to Pidgey, Pidgeotto, Pidgeot, Golbat, Crobat, Scyther, Scizor, Zapdos, Moltres, Articuno, Dragonite, Rowlet, Dartrix, and Decidueye.
- Added loot to various vanilla chest loot tables (Link Cable in Ancient Cities, Woodland Mansions, End Cities, and Igloos, Vivichoke Seeds in Jungle Temples, Dungeons, and Plains, Savanna, Snowy, and Taiga Villages, and all 7 Apricorn Sprouts in Desert, Plains, Savanna, Snowy, and Taiga Villages, as well as the Bonus Chest)
- Added the `/teststore <player> <store> <properties>` command allowing command block/mcfunction users to query a party, PC or both for Pokémon matching specific properties and returning the match count, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.teststore` if a permission mod is present.
- Added the `/querylearnset <player> <slot> <move>` command allowing command block/mcfunction users to query a party slot and check if the Pokémon can learn a specific move returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.querylearnset` if a permission mod is present.
- Added the `/testpcslot <player> <slot> <properties>` command allowing command block/mcfunction users to query a pc slot and check if the Pokémon matches specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.testpcslot` if a permission mod is present.
- Added the `/testpartyslot <player> <slot> <properties>` command allowing command block/mcfunction users to query a party slot and check if the Pokémon matches a specific properties returning a 1 if yes otherwise 0, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.testpartyslot` if a permission mod is present.
- Added the `/clearparty <player>` command for emptying a player's party.
- Added the `/pokemonrestart <reset_starters>` and the `/pokemonrestartother <player> <reset_starters>` command allowing command block/mcfunction users to reset a players Pokémon data.
- Added support for "isBattle" and "isTouchingWater" properties on resource pack Pokémon poses. This allows your custom Pokémon to be posed differently when in battle.
- Added support for "isVisible" on a transformed part on resource pack Pokémon poses. This allows your custom Pokémon to have bones disappear in specific poses, such as hiding Greninja's throwing star when not in a battle pose.
- Added the `doPokemonLoot` gamerule to toggle Pokémon dropping items/exp on death.
### Pokémon Added
#### Gen 2
- Spinarak
- Ariados
- Shuckle
- Chinchou
- Lanturn
- Aipom
- Gligar
- Hoothoot
- Noctowl
- Mareep
- Flaaffy
- Ampharos
- Sudowoodo
#### Gen 3
- Taillow
- Swellow
- Relicanth
- Duskull
- Dusclops
- Shroomish
- Breloom
- Cacnea
- Cacturne
- Poochyena
- Mightyenna
- Wingull
- Pelipper
- Numel
- Camerupt
- Clamperl
- Huntail
- Gorebyss
- Surskit
- Masquerain
- Chimecho
- Barboach
- Whiscash
#### Gen 4
- Cherubi (Planned)
- Cherrim (Planned)
- Carnivine
- Shinx
- Luxio
- Luxray
- Ambipom
- Gliscor
- Dusknoir
- Chingling
- Bonsly
- Chatot
- Combee
- Vespiquen
#### Gen 5
- Bouffolant
- Roggenrola
- Boldore
- Gigalith
- Venepede
- Whirlpede
- Scolipede
- Yamask (Planned)
- Cofagrigus (Planned)
- Patrat (Planned)
- Watchog (Planned)
- Lillipup
- Herdier
- Stoutland
#### Gen 6
- Scatterbug
- Spewpa
- Vivillion
- Skrelp (Planned)
- Dragalge (Planned)
- Bunnelby (Planned)
- Diggersby (Planned)
#### Gen 7
- Wishiwashi (Planned)
- Cutiefly
- Ribombee
- Stufful
- Bewear
- Comfey
- Alolan Exeggutor
#### Gen 8
- Arrokuda (Planned)
- Barraskewda (Planned)
- Nickit
- Thievul
- Falinks
- Galarian Farfetch'd
- Sirfetch'd
- Rookidee
- Corvisquire
- Corviknight
#### Gen 9
- Sprigatitto
- Floragato
- Meowscarada
- Flittle
- Espathra
- Garganacl
- Fidough
- Dachsbun
- Armarouge
- Ceruledge
- Cetoddle
- Cetitan
- Shroodle (Planned)
- Grafaiai (Planned)
- Tandemaus
- Maushold
- Varoom
- Revavroom
- Squawkabilly (Planned)
- Glimmet
- Glimmora
### Changes
- Updated model and textures of Arcanine, Magnemite, Magneton, Magnezone, Exeggcute, Exeggutor, Farfetchd, Elekid, Electabuzz, Electivire, Pichu, Pikachu, Raichu, Gengar, Wooper Drowzee, Hypno, Aerodactyl, Spearow, Fearow, Lickitung, Pidgeotto, Pidgeot, Scyther, Scizor, Kleavor, Popplio, Brionne, Primarina, Torchic, Combusken, Blaziken, Aerodacyl, Scyther, Scizor, Kleavor, Lickitung, Lickilicky, Happiny, Chansey, Pidgey, Pidgeotto, Pidgeot, Spearow, Fearow, Drowzee, Hypno, Arcanine, Magnemite, Magneton, Magnezone, Exeggcute, Exeggutor, Farfetchd, Elekid, Electabuzz, Electivire, Pichu, Pikachu, Raichu, and Gengar.
- Updated models of Sceptile and Shuckle.
- Updated sprites for EV medicines, the rare candy, and the apricorn door item.
- Updated textures for apricorn doors and all the evolution stone ores.
- Updated Apricorn Leaves color.
- Wild Pokémon now heal if you are defeated by them or flee from them.
- Doubled the default time between ambient Pokémon cries (they have cries if you're using a resource pack to add them)
- Moved spawn attempts per tick to a config option (ticksBetweenSpawnAttempts)
- PCs can now be waterlogged
- Starter selection prompt now appears as a tutorial-esque toast instead of plain text
- Cobblemon items can now all have their own tooltips via resourcepacks, to add a tooltip simply add a lang entry like "item.cobblemon.{item_id}.tooltip", if you want to add multiple tooltip lines you can do so with "item.cobblemon.{item_id}.tooltip_1" and upwards.
- Updated texture of Weedle.
- Updated shiny texture of Dwebble and Crustle.
- Updated Animations for Piplup, Prinplup, Empoleon, Drowzee, Hypno, Farfetch'd, Exeggcute, Exeggutor, Bidoof, Chimecho, Lickytung, Lickilicky, Popplio, Brionne, Luvdisc, Chimchar, Monferno, Infernape, Sobble, Drizzile, Inteleon, Greninja, Heatmor, Aerodactyl, Ditto, Lotad, Lombre, Ludicolo, Pumpkaboo, Gourgeist.
- Reorganised the advancements recipes folder
- Pokeedit command now supports IVs and EVs.
- Reorganised creative categories
- Pokemon can now wander into non-solid blocks such as foliage
- Pokeballs now despawn after 30 seconds
- Dive Balls will now have the same motion speed underwater as if they were thrown in the air.
- Hardcoded potion shoulder effects have been removed, you can now use any potion vanilla or otherwise with the parameters you'd like, for more information see the [Datapack & Resourcepack Creators](#datapack-&-resourcepack-creators) section.
- Clicking categories of the Stat sub-section or the party reorder button in the Summary screen will now produce a click sound.
- Updated PC Recipe.
- Improved Pokémon AI and movement.
- Friendship will slowly increase when Pokémon are shoulder-mounted.
### Fixes
- Fixed spawning moon phase dependent Pokémon only when the moon phase is wrong
- Fixed large Pokémon spawning partially inside walls where they suffocate.
- Fixed messages for entry hazards, screens, Tailwind, Perish Song, Destiny Bond, Shed Skin, Uproar, Forewarn, Disguise, Arena Trap, Yawn, Curse, Clamp, Whirlpool, Liquid Ooze, Miracle Eye and Safeguard.
- Fixed Porygon not evolving with an Upgrade.
- Fixed super sized Pumpkaboo not having any moves.
- Fixed Infernape look animation.
- Fixed Garchomp t-posing while swimming.
- Fixed a bug that caused sleeping Pokémon to stay asleep.
- Fixed a bug that would freeze a battle when a Pokémon gets trapped due to an ability.
- Fixed the Poké Ball close animation canceling whenever colliding with a block.
- Fixed faint animations not working properly in add-ons.
- Fixed lighting and Pokémon label issues when a Pokémon item frame is nearby.
- Fixed Pokémon being able to spawn outside the world border as a tease.
- Fixed deepslate water stone ore items looking like deepslate fire stone ores.
- Fixed a bunch of client-side logging errors when Pokémon are shoulder mounted.
- Fixed a crash when wild Pokémon have to struggle under specific circumstances.
- Fixed uncolored pixels on Yanma's shiny texture.
- Fixed apricorn tree leaves looking gross on Fast graphics mode.
- Fixed hoes not breaking apricorn tree leaves any faster.
- Fixed Shiftry's PC model position.
- Fixed the /pc command not playing the opening sound.
- Fixed Shedinja not being able to recover naturally.
- Fixed different forms of Pokémon not being able to appear as different sizes.
- Fixed the Healing Machine soft locking you from using others when removed by non-players.
- Fixed animations being sped up when using the Replay Mod.
- Fixed particle animations not running when a Pokémon is off-screen.
- Fixed Pokémon variants and layers not rendering correctly when shouldered and playing on a dedicated server, existing shoulders affected will need to be retrieved and shouldered again.
- Shoulder effects will now stay applied through situations that remove potion effects such as drinking milk.
- Fixed Shedninja evolving to use the consumed Pokeball and removed the held item.
- Fixed non-existent species in spawn pool file causing random species to spawn.
- Fixed shearing Pokémon dropping 0-2 wool instead of 1-3.
- Fixed some alignment issues in the stat hexagon of the summary menu.
### Developer
- Added SpawnEvent
- Added persistent NBT property inside Pokemon to store quick and simple data.
- Species and FormData have had their evolutions, pre-evolution and labels properties exposed. It is still recommended to work using a Pokémon instance when possible.
- Added capture check to BattleVictoryEvent
- Added ThownPokeballHitEvent
- The various hardcoded potion shoulder effects have been removed, make use of PotionBaseEffect.
### Datapack & Resourcepack Creators
- All potion related shoulder effects have had their IDs changed, they now all share the same type being `potion_effect` and use the vanilla Potion data [parameters](https://minecraft.fandom.com/wiki/Potion#Item_data), take for example the default Pidgey asset:
- ```json
{
"type": "potion_effect",
"effect": "minecraft:slow_falling",
"amplifier": 0,
"ambient": true,
"showParticles": false,
"showIcon": false
}
```
## [1.3.1 (March 31st, 2023)](#1-3-1)
### Additions
- Added Slugma, Magcargo, Nosepass, and Probopass.
- Elgyem family now drops Chorus Fruit, Geodude family now drops Black Augurite.
- Added missing spawn files for Golett and Bergmite family.
- Apricorns can now be smelted into dyes.
- Added animations to Staryu line and Porygon line.
- Added faint animations to Klink line.
- Add lava surface spawn preset.
- Added an ``any`` evolution requirement allowing you to define ``possibilities`` of other evolution requirements, for example, this allows you to create an evolution that requires the Pokémon to be shiny or a female.
- Added the `/spawnpokemonfrompool [amount]` or `/forcespawn [amount]` command to spawn Pokémon(s) in the surrounding area using the natural spawn rates/pool of that area, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.spawnpokemon` if a permission mod is present. On a successful execution of the command, the amount of Pokémon spawned will be the output.
- Added the `/pokebox` and `/pokeboxall` commands to move Pokemon(s) to the PC from a Player's party, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.pokebox` if a permission mod is present. On a successful execution of the command the output will be the number of pokemon moved to the Player's PC.
- Added the `/pc` command which opens up the PC UI the same way interacting with the block would, this will be a cheat command in the Minecraft permission system or use the permission `cobblemon.command.pc` if a permission mod is present.
### Changes
- You can now click the portraits of other Pokémon in the starter selection screen to navigate directly to them.
- You can now click the right and left arrow keys to navigate PC boxes.
- Link Cables will now require Pokémon to hold any held item normally required for their evolution.
- After a battle, the last Pokémon used now becomes the selected one in your party.
- The `/teach` command can now only allow the Pokémon to be given moves in their learnset, this can be controlled with the permission `cobblemon.command.teach.bypass`, to account for that change the base command now requires the permission `cobblemon.command.teach.base`, this change is meant only for people using a mod capable of providing permissions such as [LuckPerms](https://luckperms.net/).
- Apricorns will no longer collide with their block form when picked, this should improve the experience in automatic farms.
- Increased spawn chances for many Pokémon requiring specific blocks to be nearby.
- Put Cryogonal in more snowy biomes.
- Ditto as well as the Eevee, Gible, and Riolu families have been made more common.
- Lowered spawn rate of Gyarados on the surface of water.
- Apricorn leaves can now be used in the [Composter](https://minecraft.fandom.com/wiki/Composter) block, these have the same chance to raise the compost pile the Minecraft leaves do.
- Updated Gengar's model and texture.
- Updated Swinub line model and animations.
- Tweaked portrait frames for the Pidgey line and for Walking Wake.
- Changed all buff shoulder effects to only give a level 1 buff instead of level 2.
- Made Weavile a little bigger.
- Changed the recipes for Mystic Water, Miracle Seed, and Charcoal Stick to utilise the evolution stones, as well as Never-Melt Ice having an alternate recipe using the Ice Stone.
- Replaced the `Failed to handle` battle messages to `Missing interpretation` to make it more clear that mechanics do work just still pending dedicated messages.
- Healing Machine and PC are now mine-able with pickaxes and Apricorn leaves are mine-able using hoes.
- Updated Pokéball, UI and evolution sounds.
### Fixes
- Fixed killing a Dodrio killing your game. Dodrio will never look the same to us.
- Fixed non-Fire-type Pokémon being immune to lava.
- Fixed custom Pokémon not being usable in battle, properly. A last minute fix caused this to break again; what are these devs not paid for?
- Fixed being locked in an endless healing queue if you broke the healing machine during use.
- Fixed an issue with the experience calculation when the Exp. Share is held.
- Fixed Friendship-based attacks not using friendship values from your Pokémon.
- Fixed Link Cables consuming held items they shouldn't due to not validating the held item of a Pokémon.
- Fixed a crash when Aromatherapy cured the status of party members.
- Fixed moves learnt on evolution not being given when said evolution happens. If you were affected by this issue your existing Pokémon will now be able to relearn those moves.
- Fixed console spam when rendering Pokémon model items.
- Fixed battle messages for 50+ moves and abilities and items.
- Fixed the possible duplicate when capturing Pokémon (probably, this one's hard to reproduce to confirm it's fixed).
- Previously duplicated Pokémon are cleaned from PCs and parties on restart.
- Fixed an issue with some particle effects applying after a Pokémon has died or on top of the wrong Pokémon when using specific mods.
- Fixed Pokémon not looking at each other in battle.
- Fixed Experience Candy and Experience Share attempting to bring Pokémon above level cap causing crashes.
- Fixed level 100 Pokémon having experience go over the cap total amount they should have.
- Fixed `/pokemonspawnat` having the argument positions reverted making it impossible for Brigadier to understand when to suggest coordinates. It is now the intended `/spawnpokemonat <pos> <properties>`.
- Fixed performance issues with shouldered Pokémon in certain systems.
- Fixed learnset issues for Pokémon whose only modern debut was LGPE/BDSP/LA.
- Fixed shiny Zubat, Grimer, Omanyte, Elgyem, Delphox and Aegislash displaying their normal texture.
- Fixed sleeping in beds allowing fainted Pokémon to receive experience after a battle ends somehow.
- Fixed an issue where a Pokémon will claim to have learnt a new move they already have in their moveset when learnt at an earlier level in their previous evolution. I realize that's confusing.
- Fixed Dispensers not being able to shear Wooloo. This will also extend to other mods that check if an entity is valid to shear.
- Fixed the currently held item of your Pokémon not dropping to the ground when removing it if your inventory was full.
- Fixed creative mode allowing you to make your Pokémon hold more than 1 of the same item.
- Fixed a Pokémon duplication glitch when teleporting between worlds.
- Fixed dedicated servers being able to reload Cobblemon data with the vanilla `/reload` command causing unintended behavior for clients.
- Fixed underground Pokémon spawning above ground.
- Fixed Pokémon portrait not reverting back to the Pokémon after a failed capture during battle.
- Fixed edge texture artifacts on pane elements for Tentacool and Tentacruel models.
- Fixed crash caused by Pokémon pathing
- Fixed Pokémon not returning to their balls when being healed in a healing machine
- Fixed all Gen IX Pokémon as well as forms added in PLA and Wyrdeer, Kleavor, Ursaluna, Basculegion, Sneasler, Overqwil, and Enamorus having 0 exp yields.
- Fixed Irons Leaves having bluetooth back legs. If you saw it, you know what I mean.
- Fixed Golurk not having shoulder plates on its shoulders.
- Fixed some water Pokémon walking onto land from the water even though they are fish.
- Fixed Porygon2 and PorygonZ being too small.
- Fixed Snivy line head look animation.
- Fixed Staryu line not being able to swim.
- Fixed an incompatibility with [Thorium](https://modrinth.com/mod/thorium) patch for [MC-84873](https://bugs.mojang.com/browse/MC-84873).
- Fixed Pidgeotto wings when walking.
- Fixed Delphox walk animation.
- Fixed Froakie line sleep animations in battle.
- Fixed Pokémon missing the non-level up moves they could relearn when rejoining a world until a new move was added to their relearn list.
- Fixed instantly fleeing from Pokémon set to be unfleeable.
- Fixed Pumpkaboo line forms not working. (Currently sizes aren't visual but check base stats to see which size you have.)
- Fixed a bug that caused already interpreted messages for moves to be mistaken as uninterpreted.
- Fixed a Pokémon spawner bug that caused Pokémon to not spawn due to dropped item entities.
- Fixed a bug that causes Pokémon model items to be invisible.
### Developer
- Add events that are fired just before and after a Pokémon is released (ReleasePokemonEvent.Pre and .Post)
### Localization
- Added complete translations for Japanese, Thai, and Canadian French.
- Added partial translations for Russian, Ukrainian, Mexican Spanish, and Korean.
- Updated every existing language's translation.
- All the translators that contributed are amazing.
## [1.3.0 - The Foundation Update (March 17th, 2023)](#1-3-0)
### Dependencies
- Upgraded Fabric API dependence to 0.75.1+1.19.2
- Upgraded Architectury API dependence to 6.5.69
- Cobblemon Forge now depends on Kotlin for Forge.
### Additions
- Added new models and animations for Poké Balls and reworked their mechanics to feel much smoother instead of being pure frustration.
- Added party scrolling via holding R and using the mouse wheel so you don't need to take your hand off your mouse.
- Added a cap of Pokémon spawns in an area because waiting a while made things insane. This is controlled by a new `pokemonPerChunk` config option.
- Added models and animations for heaps of Pokémon (101): Riolu, Lucario, Chimchar, Monferno, Infernape, Turtwig, Grotle, Torterra, Popplio, Brionne, Primarina, Treeko, Grovyle, Sceptile, Snivy, Servine, Serperior, Tepig, Pignite, Emboar, Oshawott, Dewott, Samurott, Grookey, Thwackey, Rillaboom, Scorbunny, Raboot, Cinderace, Sobble, Drizzile, Inteleon, Fennekin, Braixen, Delphox, Froakie, Frogadier, Greninja, Chespin, Quilladin, Chesnaught, Miltank, Torkoal, Kricketot, Kricketune, Heatmor, Durant, Wooloo, Dubwool, Pumpkaboo, Gourgeist, Sigilyph, Cryogonal, Whismur, Loudred, Exploud, Misdreavus, Mismagius, Tatsugiri, Eiscue, Luvdisc, Stantler, Wyrdeer, Gible, Gabite, Garchomp, Sneasel, Weavile, Elgyem, Beheeyem, Baltoy, Claydol, Nacli, Naclstack, Alcremie, Milcery, Dhelmise, Morelull, Shiinotic, Xerneas, Klink, Klang, Klinklang, Joltik, Galvantula, Honedge, Duoblade, Aegislash, Spiritomb, Mawile, Carvanha, Sharpedo, Seedot, Nuzleaf, Shiftry, Lotad, Lombre, Ludicolo, Pineco, Forretress, and Spinda.
- Added generation 3, 4, 5, 6, 7, and 8 Starter Pokémon to the starter select screen.
- Added particle effect support for model animations
- Added particle effect and animation for Gastly.
- Added sleep and faint animations to many Pokémon.
- Added item holding for Pokémon. Any Minecraft item can be given to a Pokémon by holding shift and right-clicking them. Traditional Pokémon held items will have their expected battle effects.
- Added heaps of held items with crafting recipes: Assault Vest, Big Root, Black Belt, Black Sludge, Charcoal, Choice Band, Choice Scarf, Choice Specs, Dragon Fang, Exp. Share, Focus Band, Hard Stone, Heavy-Duty Boots, Leftovers, Light Clay, Lucky Egg, Magnet, Miracle Seed, Muscle Band, Mystic Water, Never-Melt Ice, Poison Barb, Quick Claw, Rocky Helmet, Safety Goggles, Sharp Beak, Silk Scarf, Silver Powder, Soft Sand, Spell Tag, Twisted Spoon, and Wise Glasses.
- Added heaps of evolution items with crafting recipes: Milcery's sweets items, Chipped Pot, Cracked Pot, Deep Sea Scale, Deep Sea Tooth, Dragon Scale, Galarica Cuff, Galarica Wreath, Peat Block, Prism Scale, Razor Claw, Razor Fang, Reaper Cloth, Sachet, Sweet Apple, Tart Apple, and Whipped Dream.
- Existing evolution items all now either have a crafting recipe or drop from Pokémon.
- Added the Item [tags](https://minecraft.fandom.com/wiki/Tag) `cobblemon:held/experience_share` and `cobblemon:held/lucky_egg` allowing you to mark any items you desire to have the effects implied in the tag name.
- Added an interface that appears when interacting with your Pokémon while sneaking. The interface allows for interactive options such as shouldering and exchanging held items.
- Added blinking animations to many Pokémon.
- Added animated texture support.
- Added translucent option for aspect layers.
- Added glowing textures to many Pokémon and it looks amazing.
- Added the Saturation shoulder effect.
- Added the Haste shoulder effect, initially for Joltik.
- Added the Water Breathing shoulder effect, initially for Wooper.
- Added the Speed shoulder effect, initially for Pichu and Pikachu.
- [Dispensers](https://minecraft.fandom.com/wiki/Dispenser) can now use shears to automatically harvest fully grown Apricorns.
- Added milking to Miltank.
- Added shearing to Wooloo and Dubwool.
- Added data for generation 9 Pokémon species, moves, and ability data. They're all still Substitute models, but their moves and abilities work.
- Added support for custom Pokémon to implement 'quirks' such as blinks.
- Added sound effect for harvesting Apricorns.
- Added icon to summary and PC interfaces to indicated if a Pokémon is shiny.
- Added the ``/spawnpokemonat <pos> <properties>`` command, the ``pos`` argument uses the same syntax as the Minecraft [summon](https://minecraft.fandom.com/wiki/Commands/summon) command.
- Added the `/giveallpokemon` command which is definitely safe and not insane.
- Added compatibility with Carry On by preventing the mod being able to interact with Cobblemon entities, the mod caused too many gameplay detrimental features to stay enabled.
- Added healing to your party when you sleep in a bed.
- Added the 'ability' Pokémon Property so commands can specify the ability.
- Added block tag support to the 'neededBaseBlocks' and 'neededNearbyBlocks' spawn condition.
- Added a config option for disallowing players from damaging Pokémon by hand.
- Apricorn seeds can now be used with the [Composter](https://minecraft.fandom.com/wiki/Composter), these have the layer increase chance of 65% like Apricorns and various Minecraft crops.
- Added support for Pokémon species data appending making it so datapack developers no longer need to overwrite files.
- Added an implementation of every [catch rate](https://bulbapedia.bulbagarden.net/wiki/Catch_rate) from generation 1 to 9, these can be used by changing the ``captureCalculator`` config value:
- ``generation_1`` Sets the calculator to the generation 1 implementation.
- ``generation_2`` Sets the calculator to the generation 2 implementation.
- ``generation_2_fixed`` Sets the calculator to the generation 2 implementation with the status multiplier bug fixed.
- ``generation_3_4`` Sets the calculator to the generation 3 and 4 implementation.
- ``generation_5`` Sets the calculator to the generation 5 implementation.
- ``generation_6`` Sets the calculator to the generation 6 implementation.
- ``generation_7`` Sets the calculator to the generation 7 implementation.
- ``generation_8`` Sets the calculator to the generation 8 implementation.
- ``generation_9`` Sets the calculator to the generation 9 implementation.
- ``cobblemon`` Sets the calculator to the custom Cobblemon implementation. This is the default value.
- ``debug`` Sets the calculator to the debug/cheat implementation, every attempt will be a successful critical capture.
### Changes
- Pokémon now save to the world by default, meaning the same Pokémon will remain in the world and not disappear after you log out and log back in. They still despawn over time though.
- Significantly sped up the Poké Ball shake animation so it takes less time to try to catch Pokémon.
- Update the PC and Healing Machine models and bounding boxes.
- The Healing Machine and PC now emit light when fully charged or when turned on respectively.
- The PC block screen will now turn on when being used.
- The Healing Machine will now visually display its charge level using 6 stages.
- The Healing Machine will now emit a redstone signal with the strength of 1 for every 10% charge it has when attached to a [Redstone Comparator](https://minecraft.fandom.com/wiki/Redstone_Comparator).
- Made it so that particles are not shown whenever you have a shoulder Pokémon that gives potion effects.
- Changed hitbox and size definitions for Decidueye, Blastoise, and Magmortar
- Apricorns can now be harvested with Axes, the speed will scale with enchantments and tool material, only dropping the Apricorn if fully grown, these will still destroy the Apricorn so the manual harvest still is recommended unless you're just keen on destroying trees.
- Apricorns are now a part of the vanilla tag ``minecraft:blocks/mineable/axe``.
- Apricorns are now compatible with any mod that breaks a whole tree at once.
- Apricorns no longer have a config value for the seed drop chance these are now a part of their loot table which can be found in ``cobblemon/loot_tables/blocks/<color>_apricorn.json``.
- Advancements were redone to be slightly more interesting, with improved names, descriptions, and sorting.
- Updated models and textures for Tentacool line, Gengar, Slowpoke line, Tyrogue line, Doduo line, Dratini, Dragonair, Quagsire, and Piplup line. There were probably others, the team lost track.
- Improved sending out Pokémon at the start of battle so that they are positioned in a less annoying way.
- Name Tags will no longer be used on Pokémon and Poke Ball entities, this prevents the item from being wasted.
- Lowered spawn rate of Tauros.
- Sableye now spawns near gem ores as well as amethyst.
- Added evolution stones and items to item tags
### Fixes
- Fixed catch rates being entirely too difficult.
- Fixed various strange battle issues such as Flying types being vulnerable to Ground type moves and status effects hitting despite vulnerabilities.
- Fixed shiny Gyarados not using the red Gyarados texture.
- Improved the framing of all in-game Pokémon in the party and PC GUIs so they aren't halfway out of the screen or something else crazy.
- Fixed incompatibility with Kotlin for Forge (by depending on Kotlin for Forge ourselves)
- Fixed Gengar, Goodra, and many other Pokémon showing the types of an alternate form despite those not being modelled yet.
- Fixed datapack Pokémon not being able to battle.
- Fixed Pokémon always being created with a moveset as if they're level 1 instead of their current level.
- Fixed an issue of Pokémon not rendering in GUIs on some Mac displays.
- Fixed a soft-duplicate that could occur when a party Pokémon is pushed through a Nether Portal or left in a boat.
- Fixed Pokémon that faint from poison appearing to be on full health and suckering you into false hope.
- Fixed incorrect spawns of Tentacool, Tentacruel, Dragonite, Politoed, Tangrowth, Lickilicky, Electivire, and Magmortar.
- Fixed crashes involving opening the Pokémon summary GUI with an empty party.
- Fixed lower brightness settings causing Pokémon to appear much too dark in menus such as the party and PC.
- Fixed Showdown sometimes failing to start, causing crashes.
- Fixed Showdown initialization happening several times when you login, more depending on how many times you have relogged this session.
- Fixed Showdown failing to update on first attempt. We totally weren't accidentally deleting our target directory or anything, nope.
- Fixed HP recovery related battle actions not animating for the client nor updating the in-game Pokémon HP.
- Fixed moves that force a switch such as Teleport and U-Turn soft locking battles.
- Fixed missing battle text for Bide, Speed Boost, Belly Drum, Anger Point, and Haze.
- Fixed battle messages for many field effects starting, ending, and actions caused by them such as blocking certain moves.
- Improved battle messages for effects that prevent a move from being executed such as a Taunt, requiring a recharge, flinched, etc.
- Fixed move names not being translated in battle messages.
- Fixed stat change messages for boosts over 3 stages.
- Fixed experience calculation not being completely accurate.
- Fixed positioning of Poké Balls when rendered in Healing Machines.
- Fixed a desync issue on servers where all Pokémon seemed like they were special forms when they weren't.
- Fixed an incompatibility with [Exordium](https://www.curseforge.com/minecraft/mc-mods/exordium).
- Fixed datapack Pokémon language key generation. A Pokémon under the namespace ``example`` named ``Pogemon`` will now correctly look for the lang key ``example.species.pogemon.name``.
- Fixed client not receiving messages for the different "stages" for the move Bide.
- Fixed the Medium Slow and Medium Fast experience group IDs, they're now ```medium_slow``` and ``medium_fast``. Any custom datapack Pokémon will require an update.
- Fixed Pokémon friendship being capped to the maximum level config value instead of the friendship one when loading Pokémon data.
- Fixed Poké Balls taking forever to capture Pokémon if you are underwater or up in the air where it takes a long time to hit the ground.
- Fixed Pokémon being unable to spawn on blocks such as snow layers.
- Fixed Pokémon spawning inside of trees.
- Fixed Pokémon experience not loading after a restart and instead going back to the minimal amount for the current level.
- Fixed being able to use ``/healpokemon`` in battle.
- Fixed being able to select fainted party members in the switch menu causing the battle to lock.
- Fixed ``/spawnpokemon`` command not supporting any command source other than players.
- Fixed issues with Charizard's sleep pose.
- Fixed players being able to use multiple healer machines at once.
- Fixed Pokémon layers not rendering when a Pokémon is on your shoulder.
- Fixed Caterpie and Weedle not moving or looking at players. That was meant to be Metapod and Kakuna; how embarrassing.
- Fixed Pokémon not carrying over the correct equivalent original ability when evolving from stages that only had one ability.
- Fixed Deerling and Sawsbuck not spawning with the correct season.
- Fixed issue of not being able to drag the scroll bar in summary and battle interfaces.
- Fixed optional aspects not saving and loading properly.
- Fixed layering logic so multiple texture layers can exist on a Pokémon (probably).
- Fixed not all Poké Balls being associated with the `cobblemon:pokeballs` item tag.
- Fixed the `/pokemoneditother` command not working.
- Fixed ambient sound file path for Porygon2.
- Fixed forms not being able to unset the secondary type of a Pokémon in the stat JSON.
- Fixed moves that haven't carried over from generation 8 onwards having the description they did in the generation 8 games instead of their last valid one.
- Fixed shoulder mounted pokemon not returning to party on healer use and on evolution
### Developer
- Reworked CatchRateModifier, as such, existing implementations need to be updated.
- Fixed minimumDistanceBetweenEntities option being half of what it's set as.
- Fixed the contents of CobblemonEvents, CobblemonBlocks etc having getters instead of just being public static properties.
- Added ApricornHarvestEvent.
- Added a new item for representing Pokémon within native UI menus or item frames which display as the Pokémon's model. It's called a PokemonItem, with static functions to build one.
### Localization
- Added complete translations for French, German, Simplified Mandarin, Brazilian Portuguese, and Pirate English.
- Added partial translations for Traditional Mandarin, Italian, and Spanish. We'd love more help with this!
- Thank you to all of the fantastic volunteer translators for taking the time to help with this!
## [1.2.0 - The Customization Update (January 1st, 2023)](#1-2-0)
### Additions
- Added models for Natu and Xatu, Murkrow and Honchkrow, Wailmer and Wailord.
- Added new PC interface and it is beautiful.
- Reworked the battle system so that battles load faster, cause fewer bugs, and can run on shared server hosts. This is a very big change that also reduced the size of the mod by 50mb!
- Added full resource pack / data pack customization of models, textures, animations, spawning, and spawn file presets to make custom Pokémon species and variations very easy to create. You can find the guide for creating custom Pokémon on [our website](https://cobblemon.com/guides/custompokemon.html)!
- Added water surface spawning for Pokémon like Lapras.
- Added emissive texture support to Pokémon render layers.
- Added compatibility for Mod Menu ([CurseForge](https://www.curseforge.com/minecraft/mc-mods/modmenu), [Modrinth](https://modrinth.com/mod/modmenu)).
- Added blank ambient Pokémon cries so cries can be added via resource packs.
- Added new sounds for GUIs and item uses.
- Added `nature` and `pokeball` options to commands such as `/spawnpokemon` and `/givepokemon`.
### Changes
- Reinforced party and PC saving to make data corruption from crashes less bad.
- Added a config option for whether the starter config will be exported, making it more maintainable as we add starter Pokémon.
- Battles now start with the options menu open for convenience.
- Doubled the default charge rate of healers. You'd need to reset your config under `./config/cobblemon/main.json` to see this change!
- Changed the default Apricorn seed chance config value from 6% to 10%.
- The mod now correctly reports our dependency on Architectury API so people don't get super confused when things don't work.
- Pokémon now look at their opponents during battle.
- Updated Sableye's animations to be super freaky.
- Changed the healer advancements to make the healing machine's mechanics more obvious.
### Fixes
- Fixed an incompatibility with [Porting Lib](https://github.com/Fabricators-of-Create/Porting-Lib) used by Fabric ports of mods such as Create or Twilight Forest.
- Fixed HP and max HP values in the battle GUI not being correct.
- Fixed some animations on snake-type Pokémon being super slow.
- Fixed a typo in the English name for Calcium. Calcuim.
- Fixed Pokémon gradually becoming rarer around you if you move long distances.
- Fixed a shoulder mount crash on Fabric.
- Fixed a rare issue where chunks would take a really long time to generate.
- Fixed a singleplayer bug where battles wouldn't work after leaving then rejoining a world.
- Fixed stat calculations for everything except HP. HP was fine though :).
- Fixed a randomized Pokémon spawning in mountains that corrupted the data of whatever party or PC it got into. Yikes.
- Fixed a rare crash involving literally random number generation. A random crash involving random numbers.
- Fixed all regular Mewtwo having the stats and types of Mega Mewtwo X - same deal with many other Pokémon.
- Fixed the framing of many Pokémon in GUIs.
- Fixed texture glitches with Rattata and Nidoqueen (again!).
- Fixed dropped item forms of all Pokéballs and the Healing Machine, and slightly adjusted all other display settings
- Fixed issues with forms not showing the correct evolution in the evolution menu.
- Fixed some alternate forms not having the alternate stats and types.
- Fixed moves that only work in double battles not being selectable at all (such as Helping Hand and Aromatic Mist).
- Fixed abilities not remaining legal in some forms.
- Fixed Poké Ball capture effects not triggering after a successful capture, such as the Heal Ball's healing effect.
- Fixed multiple-hit moves sending gibberish into the battle chat.
- Fixed Pyukumuku not being appropriately scaled.
- Fixed shiny and other variations of Pokémon not showing in the battle GUI.
- Fixed Eevee being poorly positioned and un-animated on shoulders.
- Fixed a Pokémon's hitbox not updating when it evolves while sent out.
- Fixed a Pokémon's PP going from zero to above the maximum when entering another battle.
## [1.1.1 (November 27th, 2022)](#1-1-1)
### Fixes
- Fixed a critical issue with servers where Pokémon data didn't properly synchronize and so you couldn't see any.
## [1.1.0 - The Swim and Sleep Update (November 27th, 2022)](#1-1-0)
#### "Ideally not at the same time."
### Additions
- Added a new GUI for viewing party information, rearranging moves, and evolving Pokémon. It looks too good.
- Starter Pokémon will sleep on top of you if sent out when you get on a bed.
- Added sleeping animations for starters, the Weedle family, and the Caterpie family. More to come.
- Added Alolan Rattata and Alolan Raticate, Sableye, Deerling and Sawsbuck, and Pyukumukurutudulu or whatever it's called.
- Added swimming AI so Pokémon don't sink to the bottom in water.
- Aquatic Pokémon like Magikarp desperately move to water if they're on land.
- Added status condition indicators in the party overlay.
- Added HP labels to the battle interface so that you can see how much health you actually have.
- Added spawn data for all final and special evolutions previously lacking spawn data.
- Added shiny textures for many Pokémon (thank you MageFX!): Aerodactyl, Articuno, Zapdos, Moltres, Chansey, the Dratini family, Electabuzz, Goldeen and Seaking, Hitmonchan and Hitmonlee, Jynx, Kabuto and Kabutops, Magmar, Lickitung, Mr. Mime, Omanyte and Omastar, Rhyhorn and Rhydon, Koffing and Weezing, Porygon, Scyther, Seadra, Staryu and Starmie, and Tangela. Phew!
- Added a couple of new advancements.
- Added new items: Calcium, Carbos, HP Up, Iron, Protein, and Zinc. Currently only obtainable in Creative Mode (It's a surprise tool that will help us later).
### Changes
- Significantly improved AI pathing for larger entities so they won't keep trying to move to places they cannot possibly fit.
- Changed the starter menu and summary menu keybinds to `M` by default.
- Pokémon that are sent out slowly raise friendship. Before this it was faster and even worked when not sent out (wildly unbalanced).
- Updated Link Cable and Protector item sprites to be prettier.
- Slightly polished the Poké Ball opening and Poké Ball item use sounds.
- `/givepokemon random`, `/spawnpokemon random`, and `/spawnallpokemon` will now only choose implemented Pokémon.
- The battle message box now displays even when the battle GUI is minimised so that you can still see what's going on.
- Moved the `R` prompt in battle to be higher on the screen so that it's not as distracting.
### Fixes
- Fixed shinies and form variations not displaying in the party or PC.
- Fixed servers getting stuck on shutdown due to non-closed showdown server connections.
- Fixed a niche situation where players could challenge themselves. It's a little inspirational if you think about it.
- Fixed Pokémon natures not saving such that every time you restarted they had a totally different nature.
- Fixed some underground Pokémon spawning above ground instead. I'm told other weird spawns were probably fixed at the same time.
- Fixed Pokémon sometimes running in place. "It's still possible, but much less likely" - Yeah, ok devs.
- Fixed mod incompatibility with many Architectury API mods, including *Biome Makeover* and *Earth2Java*.
- Fixed a mod incompatibility with Minecraft Transit Railway Fabric and probably a bunch of other Fabric mods.
- Fixed being unable to customize keybinds on Forge.
- Fixed Summary keybinding being labeled as PokéNav. That comes later.
- Fixed apricorns spawning without leaves which meant sometimes apricorns were growing on the side of dirt and stone which doesn't make much sense to me.
- Fixed messages appearing in the console whenever a healer is used.
- Fixed spawning in several biome tag categories.
- Fixed resource pack support for Pokémon models and textures.
- **Model Fixes**
- Fixed Paras and Nidoqueen looking very weird.
- Fixed Hitmonchan asserting dominance with a T-pose as well as Grimer and Muk pointing their hands to the sky.
- Fixed specific Pokémon suddenly pausing their animation after staying still for a long time.
- Fixed Mankey's feet being buried in the ground.
- Updated the Substitute model and updated its shiny texture to be better for the red-green colorblind.
- Improved Horsea, Seadra, and Kingdra animations, especially on land.
- **Battle Fixes**
- Fixed an issue with battles where Pokémon had a different max HP causing some desync issues with the health bars.
- Fixed Magnitude battle messages.
- Moves that are disabled or out of PP now show transparently in the battle GUI instead of being hidden completely.
- Statuses like sleep and frozen no longer last forever if it was carried over from a previous battle.
### Localization
- Added species, ability, and move translations for `ko_ko`, `jp_jp`, `fr_fr`, `es_es`, `it_it`, and `zh_cn`.
## [1.0.0 (November 12th, 2022)](#1-0-0)
- Initial release.
-65
View File
@@ -1,65 +0,0 @@
Minecraft Forge: Credits/Thank You
Forge is a set of tools and modifications to the Minecraft base game code to assist
mod developers in creating new and exciting content. It has been in development for
several years now, but I would like to take this time thank a few people who have
helped it along it's way.
First, the people who originally created the Forge projects way back in Minecraft
alpha. Eloraam of RedPower, and SpaceToad of Buildcraft, without their acceptiance
of me taking over the project, who knows what Minecraft modding would be today.
Secondly, someone who has worked with me, and developed some of the core features
that allow modding to be as functional, and as simple as it is, cpw. For developing
FML, which stabelized the client and server modding ecosystem. As well as the base
loading system that allows us to modify Minecraft's code as elegently as possible.
Mezz, who has stepped up as the issue and pull request manager. Helping to keep me
sane as well as guiding the community into creating better additions to Forge.
Searge, Bspks, Fesh0r, ProfMobious, and all the rest over on the MCP team {of which
I am a part}. For creating some of the core tools needed to make Minecraft modding
both possible, and as stable as can be.
On that note, here is some specific information of the MCP data we use:
* Minecraft Coder Pack (MCP) *
Forge Mod Loader and Minecraft Forge have permission to distribute and automatically
download components of MCP and distribute MCP data files. This permission is not
transitive and others wishing to redistribute the Minecraft Forge source independently
should seek permission of MCP or remove the MCP data files and request their users
to download MCP separately.
And lastly, the countless community members who have spent time submitting bug reports,
pull requests, and just helping out the community in general. Thank you.
--LexManos
=========================================================================
This is Forge Mod Loader.
You can find the source code at all times at https://github.com/MinecraftForge/MinecraftForge/tree/1.12.x/src/main/java/net/minecraftforge/fml
This minecraft mod is a clean open source implementation of a mod loader for minecraft servers
and minecraft clients.
The code is authored by cpw.
It began by partially implementing an API defined by the client side ModLoader, authored by Risugami.
http://www.minecraftforum.net/topic/75440-
This support has been dropped as of Minecraft release 1.7, as Risugami no longer maintains ModLoader.
It also contains suggestions and hints and generous helpings of code from LexManos, author of MinecraftForge.
http://www.minecraftforge.net/
Additionally, it contains an implementation of topological sort based on that
published at http://keithschwarz.com/interesting/code/?dir=topological-sort
It also contains code from the Maven project for performing versioned dependency
resolution. http://maven.apache.org/
It also contains a partial repackaging of the javaxdelta library from http://sourceforge.net/projects/javaxdelta/
with credit to it's authors.
Forge Mod Loader downloads components from the Minecraft Coder Pack
(http://mcp.ocean-labs.de/index.php/Main_Page) with kind permission from the MCP team.
+5
View File
@@ -0,0 +1,5 @@
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/.
+12 -9
View File
@@ -1,20 +1,23 @@
# Pokémon Cobbled
# Cobblemon
An open-source Pokémon mod written in Kotlin.
An open-source Pokémon mod for Minecraft Java Edition, written in Kotlin for Fabric and Forge.
## Getting started
To set up the development workspace, first clone the project and open the build.gradle with Intellij. This will automatically
put together all the dependencies and project setup.
To set up the development workspace, first clone the project and open the build.gradle with Intellij. Make sure that you clone it to a folder that has no spaces in its path (for example, C:/Development/Cobblemon Stuff/cobblemon/ is bad) since Architectury Plugin seems to dislike it.
Run `gradlew genIntellijRuns`, and then in Intellij go to your run configurations, and change whichever you plan on
running to use a Java 16 JRE. runClient is as if you booted up in singleplayer, runServer is a server without a client,
and runData is for summoning the Eldritch gods or something, idk.
After it takes ages to load, you should hopefully have runnable configurations of the project in the top right, such as Minecraft Client (:fabric). If not, try running `./gradlew genEclipseRuns`.
Troubleshooting:
- Try running `./gradlew --refresh-dependencies`
- Try File -> Invalidate Caches.
- Try deleting the `.idea` folder in the project root (make sure IntelliJ is closed when you try it).
- Try completely reclone the thing lmao.
## Contributing
If you're interested in contributing to the project, you can simply fork the repository and comment on any of the issues
[here](https://gitlab.com/cable-mc/pokemon-cobbled/-/issues?scope=all&state=opened&label_name[]=accepted&assignee_id=None).
[here](https://gitlab.com/cable-mc/cobblemon/-/issues?scope=all&state=opened&label_name[]=accepted&assignee_id=None).
If you want a more involved role in the project, involving branches on the main repository instead of forking and involvement
in design discussions, add and message Hiroku#4373 on Discord.
in design discussions, you can either apply in the `application-box` forum of our Discord or add and message Hiroku (`hiroku_dev`) on our Discord here: https://discord.gg/cobblemon.
+18
View File
@@ -0,0 +1,18 @@
plugins {
`kotlin-dsl`
}
repositories {
gradlePluginPortal()
maven("https://maven.architectury.dev/")
maven("https://maven.fabricmc.net/")
maven("https://maven.minecraftforge.net/")
}
dependencies {
implementation(libs.kotlin)
implementation(libs.licenser)
implementation(libs.shadow)
implementation(libs.loom)
implementation(libs.architecturyPlugin)
}
+10
View File
@@ -0,0 +1,10 @@
import ca.stellardrift.build.configurate.ConfigFormats
import ca.stellardrift.build.configurate.catalog.PolyglotVersionCatalogExtension
plugins {
id("ca.stellardrift.polyglot-version-catalogs") version "5.0.1"
}
extensions.configure<PolyglotVersionCatalogExtension> {
from(ConfigFormats.YAML, file("../gradle/libs.versions.yml"))
}
@@ -0,0 +1,58 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val accessWidenerFile = "src/main/resources/cobblemon-common.accesswidener"
plugins {
java
`java-library`
id("org.cadixdev.licenser")
id("dev.architectury.loom")
id("architectury-plugin")
kotlin("jvm")
}
repositories {
mavenCentral()
}
license {
header(rootProject.file("HEADER"))
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
architectury {
minecraft = project.property("mc_version").toString()
}
loom {
silentMojangMappingsLicense()
accessWidenerPath.set(project(":common").file(ACCESS_WIDENER))
mixin {
defaultRefmapName.set("cobblemon-${project.name}-refmap.json")
}
}
dependencies {
minecraft("net.minecraft:minecraft:${rootProject.property("mc_version")}")
mappings("net.fabricmc:yarn:${rootProject.property("yarn_version")}:v2")
}
tasks {
withType<JavaCompile> {
options.encoding = "UTF-8"
options.release.set(17)
}
withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
}
withType<Jar> {
from(rootProject.file("LICENSE"))
}
}
@@ -0,0 +1,32 @@
plugins {
id("cobblemon.base-conventions")
id("com.github.johnrengelman.shadow")
}
val bundle: Configuration by configurations.creating {
isCanBeConsumed = false
isCanBeResolved = true
}
tasks {
jar {
archiveBaseName.set("Cobblemon-${project.name}")
archiveClassifier.set("dev-slim")
}
shadowJar {
archiveClassifier.set("dev-shadow")
archiveBaseName.set("Cobblemon-${project.name}")
configurations = listOf(bundle)
mergeServiceFiles()
}
remapJar {
dependsOn(shadowJar)
inputFile.set(shadowJar.flatMap { it.archiveFile })
archiveBaseName.set("Cobblemon-${project.name}")
archiveVersion.set("${rootProject.version}")
}
}
@@ -0,0 +1,37 @@
plugins {
java
`java-library`
id("maven-publish")
id("dev.architectury.loom")
}
java {
withSourcesJar()
withJavadocJar()
}
publishing {
repositories {
maven("https://maven.impactdev.net/repository/development/") {
name = "ImpactDev-Public"
credentials {
username = System.getenv("COBBLEMON_MAVEN_USER")
password = System.getenv("COBBLEMON_MAVEN_PASSWORD")
}
}
}
publications {
create<MavenPublication>(project.name) {
artifact(tasks.remapJar)
artifact(tasks.remapSourcesJar)
@Suppress("UnstableApiUsage")
loom.disableDeprecatedPomGeneration(this)
groupId = "com.cobblemon"
artifactId = project.findProperty("maven.artifactId")?.toString() ?: project.name
version = rootProject.version.toString()
}
}
}
@@ -0,0 +1,21 @@
plugins {
`java-library`
}
tasks {
val collectJars by registering(Copy::class) {
val tasks = subprojects.filter { it.path != ":common" }.map { it.tasks.named("remapJar") }
dependsOn(tasks)
from(tasks)
into(buildDir.resolve("libs"))
}
assemble {
dependsOn(collectJars)
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
+2
View File
@@ -0,0 +1,2 @@
const val ACCESS_WIDENER = "src/main/resources/cobblemon-common.accesswidener"
-224
View File
@@ -1,224 +0,0 @@
buildscript {
ext.kotlin_version = '1.5.31'
repositories {
// These repositories are only for Gradle plugins, put any other repositories in the repository block further below
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://maven.parchmentmc.org' }
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true
classpath 'org.spongepowered:mixingradle:0.7.+'
classpath 'org.parchmentmc:librarian:1.+'
}
}
plugins {
id 'com.github.johnrengelman.shadow' version '7.1.0'
}
println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))
apply plugin: "java"
apply plugin: "net.minecraftforge.gradle"
apply plugin: "org.parchmentmc.librarian.forgegradle"
apply plugin: "kotlin"
apply plugin: "maven-publish"
apply plugin: 'org.spongepowered.mixin'
version = '0.0.1'
group = 'com.cablemc.pokemoncobbled'
archivesBaseName = 'PokemonCobbled'
minecraft {
mappings channel: 'parchment', version: '2021.08.15-1.17.1'
accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default.
runs {
client {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
mods {
pokemoncobbled {
source sourceSets.main
}
}
}
server {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
mods {
pokemoncobbled {
source sourceSets.main
}
}
}
data {
workingDirectory project.file('run')
property 'forge.logging.markers', 'REGISTRIES'
property 'forge.logging.console.level', 'debug'
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
args '--mod', 'pokemoncobbled', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
mods {
pokemoncobbled {
source sourceSets.main
}
}
}
}
}
configurations {
// Create the library configuration, where our non-mod libraries will be added to
library
// Any dependency in the library configuration will also be added to the implementation configuration
implementation.extendsFrom library
}
// Configure all runs with the following
minecraft.runs.all {
// Set the minecraft_classpath token to the paths of all jars in the library configuration
// This is added with the actual Minecraft classpath to get the real classpath information later on
lazyToken('minecraft_classpath') {
configurations.library.copyRecursive().resolve().collect { it.absolutePath }.join(File.pathSeparator)
}
}
mixin {
// Refmaps for each SourceSet
add sourceSets.main, 'mixins.pokemoncobbled.refmap.json'
// Configs to add to runs and jars
config 'mixins.pokemoncobbled.json'
// Specify options for dev run configs
debug.verbose = true
debug.export = true
dumpTargetOnFailure = true
// Options for the Annotation Processor
quiet
}
repositories {
mavenCentral()
maven { url "https://repo.codemc.org/repository/maven-public" }
maven { url "https://repo.aikar.co/content/groups/aikar/" }
maven { url "https://jitpack.io/" }
maven {
name = 'kotlinforforge'
url = 'https://thedarkcolour.github.io/KotlinForForge/'
}
}
dependencies {
minecraft 'net.minecraftforge:forge:1.17.1-37.0.103'
implementation('thedarkcolour:kotlinforforge:2.0.1')
annotationProcessor 'org.spongepowered:mixin:0.8.4:processor'
// For Showdown
shadow 'com.caoccao.javet:javet:1.0.6' // Linux or Windows
shadow 'com.caoccao.javet:javet-macos:1.0.6' // Mac OS (x86_64 Only)
shadow group: 'commons-io', name: 'commons-io', version: '2.6'
// For Showdown
library 'com.caoccao.javet:javet:1.0.6' // Linux or Windows
library 'com.caoccao.javet:javet-macos:1.0.6' // Mac OS (x86_64 Only)
library group: 'commons-io', name: 'commons-io', version: '2.6'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.2'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.5.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.2'
testImplementation 'org.mockito:mockito-core:3.3.3'
testImplementation 'io.mockk:mockk:1.12.1'
}
// Testing -------------
test {
useJUnitPlatform()
}
// ---------------------
jar {
manifest {
attributes([
"Specification-Title" : "pokemoncobbled",
"Specification-Vendor" : "Cable MC",
"Specification-Version" : "1", // We are version 1 of ourselves
"Implementation-Title" : project.name,
"Implementation-Version" : project.jar.archiveVersion,
"Implementation-Vendor" : "Cable MC",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
}
compileKotlin {
kotlinOptions.jvmTarget = "16"
kotlinOptions.freeCompilerArgs = ["-Xjvm-default=all"]
}
/*compileJava {
options.compilerArgs += ["-parameters"]
options.fork = true
options.forkOptions.executable = 'javac'
}*/
// Example configuration to allow publishing using the maven-publish plugin
// This is the preferred method to reobfuscate your jar file
jar.finalizedBy('reobfShadowJar')
shadowJar {
classifier = null
configurations = [project.configurations.shadow]
//minimize()
exclude "**/module-info.class"
exclude "**/NOTICE"
// exclude '**/*.kotlin_metadata'
// exclude '**/*.kotlin_module'
// exclude '**/*.kotlin_builtins'
// relocate('kotlin', 'shaded.kotlin4')
}
reobf {
shadowJar {}
}
// Mojang ships Java 16 to end users in 1.17+ instead of Java 8 in 1.16 or lower, so your mod should target Java 16.
java.toolchain.languageVersion = JavaLanguageVersion.of(16)
// Include resources generated by data generators.
sourceSets.main.resources { srcDir 'src/generated/resources' }
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing
// publish.dependsOn('reobfJar')
publishing {
publications {
mavenJava(MavenPublication) {
artifact jar
}
}
repositories {
maven {
url "file://${project.projectDir}/mcmodsrepo"
}
}
}
+12
View File
@@ -0,0 +1,12 @@
plugins {
base
id("cobblemon.root-conventions")
}
group = "com.cobblemon.mod"
version = "${project.property("mod_version")}+${project.property("mc_version")}"
val isSnapshot = project.property("snapshot")?.equals("true") ?: false
if (isSnapshot) {
version = "$version-SNAPSHOT"
}
-1
View File
@@ -1 +0,0 @@
- Added shit
+42
View File
@@ -0,0 +1,42 @@
plugins {
id("cobblemon.base-conventions")
id("cobblemon.publish-conventions")
}
architectury {
common("forge", "fabric")
}
repositories {
maven(url = "${rootProject.projectDir}/deps")
mavenLocal()
}
dependencies {
implementation(libs.stdlib)
implementation(libs.reflect)
modImplementation(libs.fabricLoader)
modApi(libs.molang)
// For Showdown
modCompileOnly(libs.graal)
//shadowCommon group: 'commons-io', name: 'commons-io', version: '2.6'
testRuntimeOnly(libs.junitEngine)
testImplementation(libs.junitApi)
testImplementation(libs.junitParams)
testImplementation(libs.mockito)
testImplementation(libs.mockk)
testImplementation(libs.classgraph)
}
tasks.withType<Test> {
useJUnitPlatform()
testLogging {
setEvents(listOf("failed"))
setExceptionFormat("full")
}
}
+1
View File
@@ -0,0 +1 @@
maven.artifactId = mod
@@ -0,0 +1,15 @@
/*
* 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.access;
import net.minecraft.sound.SoundCategory;
public interface SoundManagerDuck {
void toggleCategories(SoundCategory... categories);
}
@@ -0,0 +1,71 @@
/*
* 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.pose;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import org.jetbrains.annotations.Nullable;
import java.util.Map;
/**
* A bone represents a particular joint of a model. Bones are capable of containing child bones identifiable
* by a String ideally representing the name of a particular bone.
*
* This interface is meant to allow projects and sidemods to implement their own rendering logic in reference
* to the bones.
*
* @author Waterpicker
* @since 1.4.0
*/
public interface Bone {
/**
* A map of identifiable names to child bones
*
* @since 1.4.0
*/
Map<String, Bone> getChildren();
/**
* Renders a particular bone in relation to a particular entity.
*
* @param entity The entity this bone is being drawn for. This parameter need not be available and can be null
* @param stack The current [MatrixStack] for the renderer
* @param buffer The vertex consumer deployed by the renderer
* @param packedLight The light level to be applied to the bone
* @param packedOverlay The overlay value to be applied to the bone
* @param r A value representing the amount of red coloring that should be applied on the RGB scale
* @param g A value representing the amount of green coloring that should be applied on the RGB scale
* @param b A value representing the amount of blue coloring that should be applied on the RGB scale
* @param a The alpha value to apply to the model based on the RGB scale
*
* @since 1.4.0
*/
<T extends Entity> void render(
@Nullable T entity,
MatrixStack stack,
VertexConsumer buffer,
int packedLight,
int packedOverlay,
float r,
float g,
float b,
float a
);
/**
* Allows for direct transformation of a bone via a given matrix stack
*
* @since 1.4.0
*/
void transform(MatrixStack matrixStack);
}
@@ -0,0 +1,36 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.client.render.item.CobblemonBuiltinItemRenderer;
import com.cobblemon.mod.common.client.render.item.CobblemonBuiltinItemRendererRegistry;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.item.BuiltinModelItemRenderer;
import net.minecraft.client.render.model.json.ModelTransformation;
import net.minecraft.client.render.model.json.ModelTransformationMode;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(BuiltinModelItemRenderer.class)
public class BuiltinModelItemRendererMixin {
@Inject(method = "render", at = @At("HEAD"), cancellable = true)
private void cobblemon$useDynamicItemRenderer(ItemStack stack, ModelTransformationMode mode, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, CallbackInfo ci) {
CobblemonBuiltinItemRenderer renderer = CobblemonBuiltinItemRendererRegistry.INSTANCE.rendererOf(stack.getItem());
if (renderer != null) {
renderer.render(stack, mode, matrices, vertexConsumers, light, overlay);
ci.cancel();
}
}
}
@@ -0,0 +1,36 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.client.CobblemonClient;
import net.minecraft.client.render.entity.EntityRenderDispatcher;
import net.minecraft.client.render.entity.EntityRenderer;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.resource.ResourceManager;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.Map;
@Mixin(EntityRenderDispatcher.class)
public class EntityRenderDispatcherMixin {
@Shadow private Map<String, EntityRenderer<? extends PlayerEntity>> modelRenderers;
@Inject(
method = "reload",
at = @At(value = "TAIL")
)
public void resourceManagerReloadHook(ResourceManager resourceManager, CallbackInfo ci) {
CobblemonClient.INSTANCE.onAddLayer(this.modelRenderers);
}
}
@@ -0,0 +1,47 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.CobblemonBlocks;
import com.cobblemon.mod.common.block.PastureBlock;
import net.minecraft.block.BlockState;
import net.minecraft.block.FenceBlock;
import net.minecraft.block.HorizontalFacingBlock;
import net.minecraft.util.math.Direction;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(value = FenceBlock.class)
public abstract class FenceBlockMixin {
// This could be done with a modify variable but it just doesn't seem to want to work, very crude unfinished explanation I had on Fabric discord was
// "boolean is a primitive, it isnt passed by reference but by value and you have your own object references anyway so assigning a new object to non-primitive references (variables) wont modify it after your mixin returns
//(you cant modify a random argument that mixin passes you that way, target the boolean not the FenceBlock)"
// However the issue is the only way to get all the params which we need is by passing in the entire method reference which enforces the return type.
@Redirect(method = "getStateForNeighborUpdate", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/FenceBlock;canConnect(Lnet/minecraft/block/BlockState;ZLnet/minecraft/util/math/Direction;)Z"))
private boolean cobblemon$getStateForNeighborUpdate(FenceBlock instance, BlockState state, boolean neighborIsFullSquare, Direction dir) {
return instance.canConnect(state, neighborIsFullSquare, dir) || this.cobblemon$canConnect(state, dir);
}
@Redirect(method = "getPlacementState", at = @At(value = "INVOKE", target = "Lnet/minecraft/block/FenceBlock;canConnect(Lnet/minecraft/block/BlockState;ZLnet/minecraft/util/math/Direction;)Z"))
private boolean cobblemon$getPlacementState(FenceBlock instance, BlockState state, boolean neighborIsFullSquare, Direction dir) {
return instance.canConnect(state, neighborIsFullSquare, dir) || this.cobblemon$canConnect(state, dir);
}
private boolean cobblemon$canConnect(BlockState state, Direction dir) {
if (state.isOf(CobblemonBlocks.PASTURE) && state.get(PastureBlock.Companion.getPART()) == PastureBlock.PasturePart.BOTTOM) {
final Direction pastureFacing = state.get(HorizontalFacingBlock.FACING);
return dir == pastureFacing.rotateYClockwise() || dir == pastureFacing.rotateYCounterclockwise();
}
return false;
}
}
@@ -0,0 +1,27 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.api.scheduling.ScheduledTaskTracker;
import net.minecraft.client.render.GameRenderer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(GameRenderer.class)
public class GameRendererMixin {
@Inject(
method = "render",
at = @At(value = "TAIL")
)
public void render(float tickDelta, long startTime, boolean tick, CallbackInfo ci) {
ScheduledTaskTracker.INSTANCE.update();
}
}
@@ -0,0 +1,31 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.api.pokemon.effect.ShoulderEffectRegistry;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.server.network.ServerPlayerEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(LivingEntity.class)
public abstract class LivingEntityMixin {
@Inject(method = "onStatusEffectRemoved", at = @At(value = "TAIL"))
private void cobblemon$onStatusEffectRemoved(StatusEffectInstance effect, CallbackInfo ci) {
final LivingEntity entity = (LivingEntity) (Object) this;
if (entity instanceof ServerPlayerEntity) {
ShoulderEffectRegistry.INSTANCE.onEffectEnd((ServerPlayerEntity) entity);
}
}
}
@@ -0,0 +1,30 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity;
import net.minecraft.entity.Entity;
import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraft.server.world.ServerWorld;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(ServerWorld.class)
public abstract class MinecraftDedicatedServerMixin implements DedicatedServer {
@Inject(method = "shouldCancelSpawn", at = @At(value = "HEAD"), cancellable = true)
public void cobblemon$allowPokemonSpawns(Entity entity, CallbackInfoReturnable<Boolean> callback) {
if(entity instanceof PokemonEntity) {
callback.setReturnValue(false);
}
}
}
@@ -0,0 +1,47 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.client.render.models.blockbench.pose.Bone;
import net.minecraft.client.model.ModelPart;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import org.jetbrains.annotations.NotNull;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import java.util.Map;
@Mixin(ModelPart.class)
public abstract class ModelPartMixin implements Bone {
@Shadow public abstract void render(MatrixStack matrices, VertexConsumer vertices, int light, int overlay, float red, float green, float blue, float alpha);
@Shadow public abstract void rotate(MatrixStack matrixStack);
@Shadow @Final
public Map<String, ModelPart> children;
@NotNull
@Override
public Map<String, Bone> getChildren() {
return (Map<String, Bone>) (Object) children;
}
@Override
public <T extends Entity> void render(T entity, MatrixStack stack, VertexConsumer buffer, int packedLight, int packedOverlay, float r, float g, float b, float a) {
this.render(stack, buffer, packedLight, packedOverlay, r, g, b, a);
}
@Override
public void transform(MatrixStack matrixStack) {
this.rotate(matrixStack);
}
}
@@ -0,0 +1,53 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.client.CobblemonClient;
import com.cobblemon.mod.common.client.keybind.keybinds.PartySendBinding;
import net.minecraft.client.Mouse;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Mouse.class)
public class PartyScrollMixin {
@Shadow
private double eventDeltaWheel;
@Inject(
method = "onMouseScroll",
at = @At(
value = "FIELD",
target="Lnet/minecraft/client/Mouse;eventDeltaWheel:D",
opcode = Opcodes.PUTFIELD,
ordinal = 2,
shift = At.Shift.BEFORE
),
cancellable = true
)
public void onMouseScroll(long window, double horizontal, double vertical, CallbackInfo ci) {
if (PartySendBinding.INSTANCE.getWasDown()) {
int i = (int)eventDeltaWheel;
if (i > 0) {
while (i-- > 0) CobblemonClient.INSTANCE.getStorage().shiftSelected(false);
ci.cancel();
eventDeltaWheel = 0;
PartySendBinding.INSTANCE.actioned();
} else if (i < 0) {
while (i++ < 0) CobblemonClient.INSTANCE.getStorage().shiftSelected(true);
ci.cancel();
eventDeltaWheel = 0;
PartySendBinding.INSTANCE.actioned();
}
}
}
}
@@ -0,0 +1,165 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.Cobblemon;
import com.cobblemon.mod.common.CobblemonItems;
import com.cobblemon.mod.common.api.events.CobblemonEvents;
import com.cobblemon.mod.common.api.events.item.LeftoversCreatedEvent;
import com.cobblemon.mod.common.api.storage.NoPokemonStoreException;
import com.cobblemon.mod.common.api.storage.party.PartyStore;
import com.cobblemon.mod.common.pokemon.Pokemon;
import com.cobblemon.mod.common.util.CompoundTagExtensionsKt;
import com.cobblemon.mod.common.util.DataKeys;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.ItemEntity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.sound.SoundEvent;
import net.minecraft.sound.SoundEvents;
import net.minecraft.text.Text;
import net.minecraft.world.World;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
import java.util.Objects;
import java.util.UUID;
import static com.cobblemon.mod.common.util.LocalizationUtilsKt.lang;
@Mixin(PlayerEntity.class)
public abstract class PlayerMixin extends LivingEntity {
@Shadow public abstract NbtCompound getShoulderEntityLeft();
@Shadow public abstract NbtCompound getShoulderEntityRight();
@Shadow public abstract void dropShoulderEntity(NbtCompound entityNbt);
@Shadow public abstract void setShoulderEntityRight(NbtCompound entityNbt);
@Shadow public abstract void setShoulderEntityLeft(NbtCompound entityNbt);
@Shadow public abstract boolean isSpectator();
@Shadow public abstract boolean giveItemStack(ItemStack stack);
@Shadow public abstract void sendMessage(Text message, boolean overlay);
protected PlayerMixin(EntityType<? extends LivingEntity> p_20966_, World p_20967_) {
super(p_20966_, p_20967_);
}
@Inject(method = "dropShoulderEntity", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/EntityType;getEntityFromNbt(Lnet/minecraft/nbt/NbtCompound;Lnet/minecraft/world/World;)Ljava/util/Optional;"), cancellable = true)
private void cobblemon$removePokemon(NbtCompound nbt, CallbackInfo ci) {
if (CompoundTagExtensionsKt.isPokemonEntity(nbt)) {
final UUID uuid = this.getPokemonID(nbt);
if (this.isShoulderPokemon(this.getShoulderEntityRight())) {
final UUID uuidRight = this.getPokemonID(this.getShoulderEntityRight());
if (uuid.equals(uuidRight)) {
this.recallPokemon(uuidRight);
this.setShoulderEntityRight(new NbtCompound());
}
}
if (this.isShoulderPokemon(this.getShoulderEntityLeft())) {
final UUID uuidLeft = this.getPokemonID(this.getShoulderEntityLeft());
if (uuid.equals(uuidLeft)) {
this.recallPokemon(uuidLeft);
this.setShoulderEntityLeft(new NbtCompound());
}
}
ci.cancel();
}
}
@Inject(
method = "dropShoulderEntities",
at = @At(
value = "JUMP",
opcode = Opcodes.IFGE,
ordinal = 0,
shift = At.Shift.AFTER
),
cancellable = true
)
private void cobblemon$preventPokemonDropping(CallbackInfo ci) {
// We want to allow both of these to forcefully remove the entities
if (this.isSpectator() || this.isDead())
return;
if (!this.isShoulderPokemon(this.getShoulderEntityLeft())) {
this.dropShoulderEntity(this.getShoulderEntityLeft());
this.setShoulderEntityLeft(new NbtCompound());
}
if (!this.isShoulderPokemon(this.getShoulderEntityRight())) {
this.dropShoulderEntity(this.getShoulderEntityRight());
this.setShoulderEntityRight(new NbtCompound());
}
ci.cancel();
}
private UUID getPokemonID(NbtCompound nbt) {
return nbt.getCompound(DataKeys.POKEMON)
.getUuid(DataKeys.POKEMON_UUID);
}
private void recallPokemon(UUID uuid) {
// We need to do this cause the Entity doesn't store a reference to its storage
try {
final PartyStore party = Cobblemon.INSTANCE.getStorage().getParty(this.uuid);
for (Pokemon pokemon : party) {
if (pokemon.getUuid().equals(uuid)) {
pokemon.recall();
}
}
} catch (NoPokemonStoreException ignored) {}
}
private boolean isShoulderPokemon(NbtCompound nbt) {
return CompoundTagExtensionsKt.isPokemonEntity(nbt);
}
@Inject(
method = "eatFood",
at = @At(
value = "INVOKE",
target = "Lnet/minecraft/entity/player/PlayerEntity;getHungerManager()Lnet/minecraft/entity/player/HungerManager;",
shift = At.Shift.AFTER
)
)
public void onEatFood(World world, ItemStack stack, CallbackInfoReturnable<ItemStack> cir) {
if (!getWorld().isClient) {
if (stack.getItem() == Items.APPLE && getWorld().random.nextDouble() < Cobblemon.config.getAppleLeftoversChance()) {
ItemStack leftovers = new ItemStack(CobblemonItems.LEFTOVERS);
ServerPlayerEntity player = Objects.requireNonNull(getServer()).getPlayerManager().getPlayer(uuid);
assert player != null;
CobblemonEvents.LEFTOVERS_CREATED.postThen(
new LeftoversCreatedEvent(player, leftovers),
leftoversCreatedEvent -> null,
leftoversCreatedEvent -> {
if(!player.giveItemStack(leftoversCreatedEvent.getLeftovers())) {
var itemPos = player.getRotationVector().multiply(0.5).add(getPos());
getWorld().spawnEntity(new ItemEntity(getWorld(), itemPos.getX(), itemPos.getY(), itemPos.getZ(), leftoversCreatedEvent.getLeftovers()));
}
return null;
}
);
}
}
}
}
@@ -0,0 +1,32 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.api.tags.CobblemonBlockTags;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.PointedDripstoneBlock;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.Slice;
@Mixin(PointedDripstoneBlock.class)
public abstract class PointedDripstoneBlockMixin {
@Redirect(
method = "canGrow(Lnet/minecraft/block/BlockState;Lnet/minecraft/block/BlockState;)Z",
at = @At(value = "INVOKE", target = "Lnet/minecraft/block/BlockState;isOf(Lnet/minecraft/block/Block;)Z", ordinal = 0),
slice = @Slice(from = @At(value = "FIELD", target = "Lnet/minecraft/block/Blocks;DRIPSTONE_BLOCK:Lnet/minecraft/block/Block;"))
)
private static boolean cobblemon$validateMoonStoneDripstone(BlockState instance, Block block) {
return instance.isIn(CobblemonBlockTags.DRIPSTONE_GROWABLE);
}
}
@@ -0,0 +1,31 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.brewing.BrewingRecipes;
import net.minecraft.item.ItemStack;
import net.minecraft.screen.BrewingStandScreenHandler;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BrewingStandScreenHandler.PotionSlot.class)
public class PotionSlotMixin {
@Inject(
method = "matches",
at = @At(value = "HEAD"),
cancellable = true
)
private static void matchesBrewable(ItemStack stack, CallbackInfoReturnable<Boolean> cir) {
if (BrewingRecipes.brewableItems.contains(stack.getItem())) {
cir.setReturnValue(true);
}
}
}
@@ -0,0 +1,44 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.api.spawning.mixins.CachedOnlyChunkAccessor;
import com.mojang.datafixers.util.Either;
import net.minecraft.server.world.ChunkHolder;
import net.minecraft.server.world.ServerChunkManager;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.chunk.Chunk;
import net.minecraft.world.chunk.ChunkManager;
import net.minecraft.world.chunk.ChunkStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import java.util.concurrent.CompletableFuture;
@Mixin(ServerChunkManager.class)
public abstract class ServerChunkManagerMixin extends ChunkManager implements CachedOnlyChunkAccessor {
@Shadow @Nullable protected abstract ChunkHolder getChunkHolder(long pos);
@Override
public Chunk cobblemon$request(int x, int z, @NotNull ChunkStatus status) {
long l = ChunkPos.toLong(x, z);
ChunkHolder holder = getChunkHolder(l);
if (holder != null) {
CompletableFuture<Either<Chunk, ChunkHolder.Unloaded>> future = holder.getFutureFor(status);
if (future.isDone()) {
return future.join().left().orElse(null);
}
}
return null;
}
}
@@ -0,0 +1,34 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.block.ShearableBlock;
import kotlin.Unit;
import net.minecraft.block.BlockState;
import net.minecraft.block.dispenser.ShearsDispenserBehavior;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.util.math.BlockPos;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(ShearsDispenserBehavior.class)
public abstract class ShearsDispenserBehaviorMixin {
// This exists, so we can execute our custom interaction only if no one redirected shears interactions to overwrite the vanilla ones.
@Inject(method = "tryShearBlock", at = @At("HEAD"), cancellable = true)
private static void cobblemon$tryApricornHarvest(ServerWorld world, BlockPos pos, CallbackInfoReturnable<Boolean> cir) {
final BlockState state = world.getBlockState(pos);
if (state.getBlock() instanceof ShearableBlock shearableBlock) {
cir.setReturnValue(shearableBlock.attemptShear(world, state, pos, () -> Unit.INSTANCE));
}
}
}
@@ -0,0 +1,43 @@
/*
* 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.mixin;
import com.cobblemon.mod.common.access.SoundManagerDuck;
import net.minecraft.client.sound.SoundInstance;
import net.minecraft.client.sound.SoundManager;
import net.minecraft.sound.SoundCategory;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(SoundManager.class)
public class SoundManagerMixin implements SoundManagerDuck {
private boolean[] blockedCategories = new boolean[SoundCategory.values().length];
@Override
public void toggleCategories(SoundCategory... categories) {
for (SoundCategory category : categories) {
int index = category.ordinal();
boolean blocked = blockedCategories[index];
blockedCategories[index] = !blocked;
}
}
@Inject(method = "play(Lnet/minecraft/client/sound/SoundInstance;)V", at = @At("HEAD"), cancellable = true)
public void play(SoundInstance sound, CallbackInfo cb) {
if (blockedCategories[sound.getCategory().ordinal()]) cb.cancel();
}
@Inject(method = "play(Lnet/minecraft/client/sound/SoundInstance;I)V", at = @At("HEAD"), cancellable = true)
public void play(SoundInstance sound, int delay, CallbackInfo cb) {
if (blockedCategories[sound.getCategory().ordinal()]) cb.cancel();
}
}
@@ -0,0 +1,39 @@
/*
* 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.mixin;
import com.google.common.collect.Multimap;
import net.minecraft.client.sound.SoundInstance;
import net.minecraft.client.sound.SoundSystem;
import net.minecraft.sound.SoundCategory;
import net.minecraft.util.Identifier;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(SoundSystem.class)
public abstract class SoundSystemMixin {
@Shadow
private Multimap<SoundCategory, SoundInstance> sounds;
@Shadow
protected abstract void stop(SoundInstance sound);
@Inject(method = "stopSounds(Lnet/minecraft/util/Identifier;Lnet/minecraft/sound/SoundCategory;)V", at = @At("HEAD"), cancellable = true)
public void stopSounds(@Nullable Identifier id, @Nullable SoundCategory category, CallbackInfo cb) {
if (id == null && category != null) {
sounds.get(category).forEach(this::stop);
cb.cancel();
}
}
}
@@ -0,0 +1,21 @@
/*
* 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.mixin.accessor;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(Entity.class)
public interface AccessorEntity {
@Accessor("standingEyeHeight")
void standingEyeHeight(float standingEyeHeight);
}
@@ -0,0 +1,22 @@
/*
* 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.mixin.accessor;
import net.minecraft.client.option.KeyBinding;
import net.minecraft.client.util.InputUtil;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(KeyBinding.class)
public interface KeyBindingAccessor {
@Accessor("boundKey")
InputUtil.Key boundKey();
}
@@ -0,0 +1,22 @@
/*
* 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.mixin.accessor;
import net.minecraft.client.sound.MusicTracker;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(MusicTracker.class)
public interface MusicTrackerAccessor {
@Accessor("timeUntilNextSong")
int timeUntilNextSong();
@Accessor("timeUntilNextSong")
void setTimeUntilNextSong(int timeUntilNextSong);
}
@@ -0,0 +1,26 @@
/*
* 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.mixin.accessor;
import net.minecraft.entity.effect.StatusEffectInstance;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(StatusEffectInstance.class)
public interface StatusEffectInstanceAccessor {
@Accessor
void setAmplifier(int amplifier);
@Accessor
void setShowParticles(boolean showParticles);
@Accessor
void setShowIcon(boolean showIcon);
}
@@ -0,0 +1,26 @@
/*
* 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.mixin.entity;
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity;
import net.minecraft.entity.passive.TameableEntity;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(TameableEntity.class)
public class TameableEntityMixin {
@Redirect(method = "onDeath", at = @At(value = "FIELD", target = "Lnet/minecraft/world/World;isClient:Z"))
public boolean cobblemon$checkIfPokemonBeforeSendingMessage(World world) {
return world.isClient || (this.getClass().isAssignableFrom(PokemonEntity.class));
}
}
@@ -0,0 +1,41 @@
/*
* 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.mixin.invoker;
import net.minecraft.block.*;
import net.minecraft.resource.featuretoggle.FeatureFlag;
import net.minecraft.sound.BlockSoundGroup;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@SuppressWarnings("unused")
@Mixin(Blocks.class)
public interface BlocksInvoker {
@Invoker("createLogBlock")
static PillarBlock createLogBlock(MapColor topMapColor, MapColor sideMapColor) {
throw new UnsupportedOperationException();
}
@Invoker("createLeavesBlock")
static LeavesBlock createLeavesBlock(BlockSoundGroup soundGroup) {
throw new UnsupportedOperationException();
}
@Invoker("createWoodenButtonBlock")
static ButtonBlock createWoodenButtonBlock(BlockSetType blockSetType, FeatureFlag... requiredFeatures) {
throw new UnsupportedOperationException();
}
@Invoker("createFlowerPotBlock")
static FlowerPotBlock createFlowerPotBlock(Block flower, FeatureFlag... requiredFeatures) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,21 @@
/*
* 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.mixin.invoker;
import net.minecraft.world.GameRules;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(GameRules.BooleanRule.class)
public interface BooleanRuleInvoker {
@Invoker("create")
static GameRules.Type<GameRules.BooleanRule> cobblemon$create(boolean initialValue) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,20 @@
/*
* 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.mixin.invoker;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.entity.Entity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(ClientPlayNetworkHandler.class)
public interface ClientPlayNetworkHandlerInvoker {
@Invoker
void callPlaySpawnSound(Entity entity);
}
@@ -0,0 +1,24 @@
/*
* 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.mixin.invoker;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockSetType;
import net.minecraft.block.DoorBlock;
import net.minecraft.sound.SoundEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(DoorBlock.class)
public interface DoorBlockInvoker {
@Invoker("<init>")
static DoorBlock cobblemon$create(AbstractBlock.Settings settings, BlockSetType blockSetType) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,24 @@
/*
* 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.mixin.invoker;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockSetType;
import net.minecraft.block.PressurePlateBlock;
import net.minecraft.sound.SoundEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(PressurePlateBlock.class)
public interface PressurePlateBlockInvoker {
@Invoker("<init>")
static PressurePlateBlock cobblemon$create(PressurePlateBlock.ActivationRule type, AbstractBlock.Settings settings, BlockSetType blockSetType) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,23 @@
/*
* 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.mixin.invoker;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockState;
import net.minecraft.block.StairsBlock;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(StairsBlock.class)
public interface StairsBlockInvoker {
@Invoker("<init>")
static StairsBlock cobblemon$create(BlockState baseBlockState, AbstractBlock.Settings settings) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,24 @@
/*
* 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.mixin.invoker;
import net.minecraft.block.AbstractBlock;
import net.minecraft.block.BlockSetType;
import net.minecraft.block.TrapdoorBlock;
import net.minecraft.sound.SoundEvent;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Invoker;
@Mixin(TrapdoorBlock.class)
public interface TrapdoorBlockInvoker {
@Invoker("<init>")
static TrapdoorBlock cobblemon$create(AbstractBlock.Settings settings, BlockSetType blockSetType) {
throw new UnsupportedOperationException();
}
}
@@ -0,0 +1,65 @@
/*
* 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.mixin.pokeball;
import com.cobblemon.mod.common.item.PokeBallItem;
import net.minecraft.client.render.VertexConsumerProvider;
import net.minecraft.client.render.item.ItemModels;
import net.minecraft.client.render.item.ItemRenderer;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.render.model.json.ModelTransformation;
import net.minecraft.client.render.model.json.ModelTransformationMode;
import net.minecraft.client.util.ModelIdentifier;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.entity.LivingEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(ItemRenderer.class)
public abstract class ItemRendererMixin {
@Shadow @Final private ItemModels models;
@Shadow public abstract void renderItem(ItemStack stack, ModelTransformationMode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model);
@Inject(method = "getModel", at = @At("HEAD"), cancellable = true)
private void cobblemon$bakePokeballModel(ItemStack stack, World world, LivingEntity entity, int seed, CallbackInfoReturnable<BakedModel> cir) {
if (stack.getItem() instanceof PokeBallItem pokeBallItem) {
BakedModel model = this.models.getModelManager().getModel(new ModelIdentifier(pokeBallItem.getPokeBall().getModel3d(), "inventory"));
ClientWorld clientWorld = world instanceof ClientWorld ? (ClientWorld) world : null;
BakedModel overriddenModel = model.getOverrides().apply(model, stack, clientWorld, entity, seed);
cir.setReturnValue(overriddenModel == null ? this.models.getModelManager().getMissingModel() : overriddenModel);
}
}
@Inject(
method = "renderItem(Lnet/minecraft/item/ItemStack;Lnet/minecraft/client/render/model/json/ModelTransformationMode;ZLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/render/model/BakedModel;)V",
at = @At("HEAD"),
cancellable = true
)
private void cobblemon$determinePokeballModel(ItemStack stack, ModelTransformationMode renderMode, boolean leftHanded, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, BakedModel model, CallbackInfo ci) {
boolean shouldBe2d = renderMode == ModelTransformationMode.GUI || renderMode == ModelTransformationMode.FIXED;
if (shouldBe2d && stack.getItem() instanceof PokeBallItem pokeBallItem) {
BakedModel replacementModel = this.models.getModelManager().getModel(new ModelIdentifier(pokeBallItem.getPokeBall().getModel2d(), "inventory"));
if (!model.equals(replacementModel)) {
ci.cancel();
renderItem(stack, renderMode, leftHanded, matrices, vertexConsumers, light, overlay, replacementModel);
}
}
}
}
@@ -0,0 +1,35 @@
/*
* 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.mixin.pokeball;
import com.cobblemon.mod.common.entity.pokeball.WaterDragModifier;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.projectile.thrown.ThrownEntity;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.ModifyVariable;
@Mixin(ThrownEntity.class)
public abstract class ThrownEntityMixin extends Entity {
public ThrownEntityMixin(EntityType<?> type, World world) {
super(type, world);
}
@ModifyVariable(method = "tick", at = @At("STORE"), ordinal = 0)
private float cobblemon$waterDragModifier(float value) {
if (this.isTouchingWater() && this instanceof WaterDragModifier) {
return ((WaterDragModifier) this).waterDrag();
}
return value;
}
}
@@ -0,0 +1,429 @@
/*
* 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
import com.cobblemon.mod.common.advancement.CobblemonCriteria
import com.cobblemon.mod.common.api.Priority
import com.cobblemon.mod.common.api.SeasonResolver
import com.cobblemon.mod.common.api.data.DataProvider
import com.cobblemon.mod.common.api.drop.CommandDropEntry
import com.cobblemon.mod.common.api.drop.DropEntry
import com.cobblemon.mod.common.api.drop.ItemDropEntry
import com.cobblemon.mod.common.api.events.CobblemonEvents.BATTLE_VICTORY
import com.cobblemon.mod.common.api.events.CobblemonEvents.DATA_SYNCHRONIZED
import com.cobblemon.mod.common.api.events.CobblemonEvents.EVOLUTION_COMPLETE
import com.cobblemon.mod.common.api.events.CobblemonEvents.POKEMON_CAPTURED
import com.cobblemon.mod.common.api.net.serializers.PoseTypeDataSerializer
import com.cobblemon.mod.common.api.net.serializers.StringSetDataSerializer
import com.cobblemon.mod.common.api.net.serializers.Vec3DataSerializer
import com.cobblemon.mod.common.api.permission.PermissionValidator
import com.cobblemon.mod.common.api.pokeball.catching.calculators.CaptureCalculator
import com.cobblemon.mod.common.api.pokeball.catching.calculators.CaptureCalculators
import com.cobblemon.mod.common.api.pokemon.PokemonSpecies
import com.cobblemon.mod.common.api.pokemon.effect.ShoulderEffectRegistry
import com.cobblemon.mod.common.api.pokemon.experience.ExperienceCalculator
import com.cobblemon.mod.common.api.pokemon.experience.ExperienceGroups
import com.cobblemon.mod.common.api.pokemon.experience.StandardExperienceCalculator
import com.cobblemon.mod.common.api.pokemon.feature.ChoiceSpeciesFeatureProvider
import com.cobblemon.mod.common.api.pokemon.feature.FlagSpeciesFeatureProvider
import com.cobblemon.mod.common.api.pokemon.feature.SpeciesFeatures
import com.cobblemon.mod.common.api.pokemon.helditem.HeldItemProvider
import com.cobblemon.mod.common.api.pokemon.stats.EvCalculator
import com.cobblemon.mod.common.api.pokemon.stats.Generation8EvCalculator
import com.cobblemon.mod.common.api.pokemon.stats.StatProvider
import com.cobblemon.mod.common.api.properties.CustomPokemonProperty
import com.cobblemon.mod.common.api.scheduling.ScheduledTaskTracker
import com.cobblemon.mod.common.api.spawning.BestSpawner
import com.cobblemon.mod.common.api.spawning.CobblemonSpawningProspector
import com.cobblemon.mod.common.api.spawning.context.AreaContextResolver
import com.cobblemon.mod.common.api.spawning.prospecting.SpawningProspector
import com.cobblemon.mod.common.api.starter.StarterHandler
import com.cobblemon.mod.common.api.storage.PokemonStoreManager
import com.cobblemon.mod.common.api.storage.adapter.conversions.ReforgedConversion
import com.cobblemon.mod.common.api.storage.adapter.flatifle.FileStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatifle.JSONStoreAdapter
import com.cobblemon.mod.common.api.storage.adapter.flatifle.NBTStoreAdapter
import com.cobblemon.mod.common.api.storage.factory.FileBackedPokemonStoreFactory
import com.cobblemon.mod.common.api.storage.pc.PCStore
import com.cobblemon.mod.common.api.storage.pc.link.PCLinkManager
import com.cobblemon.mod.common.api.storage.player.PlayerDataStoreManager
import com.cobblemon.mod.common.api.tags.CobblemonEntityTypeTags
import com.cobblemon.mod.common.battles.BagItems
import com.cobblemon.mod.common.battles.BattleFormat
import com.cobblemon.mod.common.battles.BattleRegistry
import com.cobblemon.mod.common.battles.BattleSide
import com.cobblemon.mod.common.battles.ShowdownThread
import com.cobblemon.mod.common.battles.actor.PokemonBattleActor
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.command.argument.MoveArgumentType
import com.cobblemon.mod.common.command.argument.PartySlotArgumentType
import com.cobblemon.mod.common.command.argument.PokemonArgumentType
import com.cobblemon.mod.common.command.argument.PokemonPropertiesArgumentType
import com.cobblemon.mod.common.command.argument.PokemonStoreArgumentType
import com.cobblemon.mod.common.command.argument.SpawnBucketArgumentType
import com.cobblemon.mod.common.config.CobblemonConfig
import com.cobblemon.mod.common.config.LastChangedVersion
import com.cobblemon.mod.common.config.constraint.IntConstraint
import com.cobblemon.mod.common.config.starter.StarterConfig
import com.cobblemon.mod.common.data.CobblemonDataProvider
import com.cobblemon.mod.common.events.AdvancementHandler
import com.cobblemon.mod.common.events.ServerTickHandler
import com.cobblemon.mod.common.item.PokeBallItem
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
import com.cobblemon.mod.common.permission.LaxPermissionValidator
import com.cobblemon.mod.common.platform.events.PlatformEvents
import com.cobblemon.mod.common.pokemon.Pokemon
import com.cobblemon.mod.common.pokemon.aspects.GENDER_ASPECT
import com.cobblemon.mod.common.pokemon.aspects.SHINY_ASPECT
import com.cobblemon.mod.common.pokemon.evolution.variants.BlockClickEvolution
import com.cobblemon.mod.common.pokemon.feature.TagSeasonResolver
import com.cobblemon.mod.common.pokemon.helditem.CobblemonHeldItemManager
import com.cobblemon.mod.common.pokemon.properties.HiddenAbilityPropertyType
import com.cobblemon.mod.common.pokemon.properties.UncatchableProperty
import com.cobblemon.mod.common.pokemon.properties.UntradeableProperty
import com.cobblemon.mod.common.pokemon.properties.tags.PokemonFlagProperty
import com.cobblemon.mod.common.pokemon.stat.CobblemonStatProvider
import com.cobblemon.mod.common.starter.CobblemonStarterHandler
import com.cobblemon.mod.common.trade.TradeManager
import com.cobblemon.mod.common.util.DataKeys
import com.cobblemon.mod.common.util.cobblemonResource
import com.cobblemon.mod.common.util.ifDedicatedServer
import com.cobblemon.mod.common.util.isLaterVersion
import com.cobblemon.mod.common.util.party
import com.cobblemon.mod.common.util.removeAmountIf
import com.cobblemon.mod.common.util.server
import com.cobblemon.mod.common.world.feature.CobblemonPlacedFeatures
import com.cobblemon.mod.common.world.feature.ore.CobblemonOrePlacedFeatures
import com.cobblemon.mod.common.world.gamerules.CobblemonGameRules
import java.io.File
import java.io.FileReader
import java.io.FileWriter
import java.io.PrintWriter
import java.util.UUID
import kotlin.properties.Delegates
import kotlin.reflect.full.memberProperties
import kotlin.reflect.jvm.isAccessible
import kotlin.reflect.jvm.javaField
import net.minecraft.client.MinecraftClient
import net.minecraft.command.argument.serialize.ConstantArgumentSerializer
import net.minecraft.entity.data.TrackedDataHandlerRegistry
import net.minecraft.item.Items
import net.minecraft.item.NameTagItem
import net.minecraft.registry.RegistryKey
import net.minecraft.util.WorldSavePath
import net.minecraft.world.World
import org.apache.logging.log4j.LogManager
object Cobblemon {
const val MODID = "cobblemon"
const val VERSION = "1.4.0"
const val CONFIG_PATH = "config/$MODID/main.json"
val LOGGER = LogManager.getLogger()
lateinit var implementation: CobblemonImplementation
@Deprecated("This field is now a config value", ReplaceWith("Cobblemon.config.captureCalculator"))
var captureCalculator: CaptureCalculator
get() = this.config.captureCalculator
set(value) {
this.config.captureCalculator = value
}
var experienceCalculator: ExperienceCalculator = StandardExperienceCalculator
var evYieldCalculator: EvCalculator = Generation8EvCalculator
var starterHandler: StarterHandler = CobblemonStarterHandler()
var isDedicatedServer = false
val showdownThread = ShowdownThread()
lateinit var config: CobblemonConfig
var prospector: SpawningProspector = CobblemonSpawningProspector
var areaContextResolver: AreaContextResolver = object : AreaContextResolver {}
val bestSpawner = BestSpawner
val battleRegistry = BattleRegistry
var storage = PokemonStoreManager()
lateinit var playerData: PlayerDataStoreManager
lateinit var starterConfig: StarterConfig
val dataProvider: DataProvider = CobblemonDataProvider
var permissionValidator: PermissionValidator by Delegates.observable(LaxPermissionValidator().also { it.initialize() }) { _, _, newValue -> newValue.initialize() }
var statProvider: StatProvider = CobblemonStatProvider
var seasonResolver: SeasonResolver = TagSeasonResolver
fun preInitialize(implementation: CobblemonImplementation) {
this.implementation = implementation
implementation.registerPermissionValidator()
implementation.registerSoundEvents()
implementation.registerBlocks()
implementation.registerItems()
implementation.registerEntityTypes()
implementation.registerEntityAttributes()
implementation.registerBlockEntityTypes()
implementation.registerWorldGenFeatures()
implementation.registerParticles()
DropEntry.register("command", CommandDropEntry::class.java)
DropEntry.register("item", ItemDropEntry::class.java, isDefault = true)
ExperienceGroups.registerDefaults()
CaptureCalculators.registerDefaults()
this.loadConfig()
// CobblemonBlockPredicates.touch()
CobblemonOrePlacedFeatures.register()
CobblemonPlacedFeatures.register()
this.registerArgumentTypes()
CobblemonCriteria // Init the fields and register the criteria
CobblemonGameRules // Init fields and register
ShoulderEffectRegistry.register()
DATA_SYNCHRONIZED.subscribe {
storage.onPlayerDataSync(it)
playerData.get(it).sendToPlayer(it)
starterHandler.handleJoin(it)
ServerSettingsPacket(this.config.preventCompletePartyDeposit, this.config.displayEntityLevelLabel).sendToPlayer(it)
}
PlatformEvents.SERVER_PLAYER_LOGOUT.subscribe {
PCLinkManager.removeLink(it.player.uuid)
BattleRegistry.getBattleByParticipatingPlayer(it.player)?.stop()
storage.onPlayerDisconnect(it.player)
playerData.onPlayerDisconnect(it.player)
TradeManager.onLogoff(it.player)
}
PlatformEvents.PLAYER_DEATH.subscribe {
PCLinkManager.removeLink(it.player.uuid)
battleRegistry.getBattleByParticipatingPlayer(it.player)?.stop()
}
PlatformEvents.RIGHT_CLICK_ENTITY.subscribe { event ->
if (event.player.getStackInHand(event.hand).item is NameTagItem && event.entity.type.isIn(CobblemonEntityTypeTags.CANNOT_HAVE_NAME_TAG)) {
event.cancel()
}
}
PlatformEvents.RIGHT_CLICK_BLOCK.subscribe { event ->
val player = event.player
val block = player.world.getBlockState(event.pos).block
player.party().forEach { pokemon ->
pokemon.evolutions
.filterIsInstance<BlockClickEvolution>()
.forEach { evolution ->
evolution.attemptEvolution(pokemon, BlockClickEvolution.BlockInteractionContext(block, player.world))
}
}
}
PlatformEvents.CHANGE_DIMENSION.subscribe {
it.player.party().forEach { pokemon -> pokemon.entity?.recallWithAnimation() }
}
TrackedDataHandlerRegistry.register(Vec3DataSerializer)
TrackedDataHandlerRegistry.register(StringSetDataSerializer)
TrackedDataHandlerRegistry.register(PoseTypeDataSerializer)
HeldItemProvider.register(CobblemonHeldItemManager, Priority.LOWEST)
}
fun initialize() {
showdownThread.launch()
// Start up the data provider.
CobblemonDataProvider.registerDefaults()
SHINY_ASPECT.register()
GENDER_ASPECT.register()
SpeciesFeatures.types["choice"] = ChoiceSpeciesFeatureProvider::class.java
SpeciesFeatures.types["flag"] = FlagSpeciesFeatureProvider::class.java
SpeciesFeatures.register(
DataKeys.CAN_BE_MILKED,
FlagSpeciesFeatureProvider(keys = listOf(DataKeys.CAN_BE_MILKED), default = true))
SpeciesFeatures.register(
DataKeys.HAS_BEEN_SHEARED,
FlagSpeciesFeatureProvider(keys = listOf(DataKeys.HAS_BEEN_SHEARED), default = false))
CustomPokemonProperty.register(UntradeableProperty)
CustomPokemonProperty.register(UncatchableProperty)
CustomPokemonProperty.register(PokemonFlagProperty)
CustomPokemonProperty.register(HiddenAbilityPropertyType)
ifDedicatedServer {
isDedicatedServer = true
PlatformEvents.SERVER_TICK_POST.subscribe { ScheduledTaskTracker.update() }
}
PlatformEvents.SERVER_STARTING.subscribe { event ->
val server = event.server
playerData = PlayerDataStoreManager().also { it.setup(server) }
val pokemonStoreRoot = server.getSavePath(WorldSavePath.ROOT).resolve("pokemon").toFile()
storage.registerFactory(
priority = Priority.LOWEST,
factory = FileBackedPokemonStoreFactory(
adapter = if (config.storageFormat == "nbt") {
NBTStoreAdapter(pokemonStoreRoot.absolutePath, useNestedFolders = true, folderPerClass = true)
} else {
JSONStoreAdapter(pokemonStoreRoot.absolutePath, useNestedFolders = true, folderPerClass = true)
}.with(ReforgedConversion(server.getSavePath(WorldSavePath.ROOT))) as FileStoreAdapter<*>,
createIfMissing = true,
pcConstructor = { uuid -> PCStore(uuid).also { it.resize(config.defaultBoxCount) } }
)
)
}
PlatformEvents.SERVER_STOPPED.subscribe {
storage.unregisterAll()
playerData.saveAll()
}
PlatformEvents.SERVER_STARTED.subscribe {
bestSpawner.onServerStarted()
battleRegistry.onServerStarted()
}
PlatformEvents.SERVER_TICK_POST.subscribe { ServerTickHandler.onTick(it.server) }
POKEMON_CAPTURED.subscribe { AdvancementHandler.onCapture(it) }
// EGG_HATCH.subscribe { AdvancementHandler.onHatch(it) }
BATTLE_VICTORY.subscribe { AdvancementHandler.onWinBattle(it) }
EVOLUTION_COMPLETE.subscribe(Priority.LOWEST) { event ->
AdvancementHandler.onEvolve(event)
val pokemon = event.pokemon
val ninjaskIdentifier = cobblemonResource("ninjask")
// Ensure the config option is enabled and that the result was a ninjask and that shedinja exists
if (this.config.ninjaskCreatesShedinja && pokemon.species.resourceIdentifier == ninjaskIdentifier && PokemonSpecies.getByIdentifier(Pokemon.SHEDINJA) != null) {
val player = pokemon.getOwnerPlayer() ?: return@subscribe
if (player.inventory.containsAny { it.item is PokeBallItem }) {
var pokeball = Items.AIR
player.inventory.combinedInventory.forEach {
it.forEach {
itemStack -> if (itemStack.item is PokeBallItem && pokeball == Items.AIR) {
pokeball = itemStack.item as PokeBallItem
}
}
}
player.inventory.removeAmountIf(1) { it.item is PokeBallItem }
val properties = event.evolution.result.copy()
properties.species = Pokemon.SHEDINJA.toString()
val product = pokemon.clone()
product.removeHeldItem()
properties.apply(product)
product.caughtBall = (pokeball as PokeBallItem).pokeBall
pokemon.storeCoordinates.get()?.store?.add(product)
}
}
}
BagItems.observable.subscribe {
LOGGER.info("Starting dummy Showdown battle to force it to pre-load data.")
battleRegistry.startBattle(
BattleFormat.GEN_9_SINGLES,
BattleSide(PokemonBattleActor(UUID.randomUUID(), BattlePokemon(Pokemon().initialize()), -1F)),
BattleSide(PokemonBattleActor(UUID.randomUUID(), BattlePokemon(Pokemon().initialize()), -1F))
).apply { mute = true }
}
}
fun getLevel(dimension: RegistryKey<World>): World? {
return if (isDedicatedServer) {
server()?.getWorld(dimension)
} else {
val mc = MinecraftClient.getInstance()
return mc.server?.getWorld(dimension) ?: mc.world
}
}
fun loadConfig() {
val configFile = File(CONFIG_PATH)
configFile.parentFile.mkdirs()
// Check config existence and load if it exists, otherwise create default.
if (configFile.exists()) {
try {
val fileReader = FileReader(configFile)
this.config = CobblemonConfig.GSON.fromJson(fileReader, CobblemonConfig::class.java)
fileReader.close()
} catch (exception: Exception) {
LOGGER.error("Failed to load the config! Using default config until the following has been addressed:")
this.config = CobblemonConfig()
exception.printStackTrace()
}
val defaultConfig = CobblemonConfig()
CobblemonConfig::class.memberProperties.forEach {
val field = it.javaField!!
it.isAccessible = true
field.annotations.forEach {
when (it) {
is LastChangedVersion -> {
val defaultChangedVersion = it.version
val lastSavedVersion = config.lastSavedVersion
if (defaultChangedVersion.isLaterVersion(lastSavedVersion)) {
field.set(config, field.get(defaultConfig))
}
}
is IntConstraint -> {
var value = field.get(config)
if (value is Int) {
value = value.coerceIn(it.min, it.max)
field.set(config, value)
}
}
}
}
}
} else {
this.config = CobblemonConfig()
}
config.lastSavedVersion = VERSION
this.saveConfig()
bestSpawner.loadConfig()
PokemonSpecies.observable.subscribe { starterConfig = this.loadStarterConfig() }
}
fun loadStarterConfig(): StarterConfig {
if (config.exportStarterConfig) {
val file = File("config/cobblemon/starters.json")
file.parentFile.mkdirs()
if (!file.exists()) {
val config = StarterConfig()
val pw = PrintWriter(file)
StarterConfig.GSON.toJson(config, pw)
pw.close()
return config
}
val reader = FileReader(file)
val config = StarterConfig.GSON.fromJson(reader, StarterConfig::class.java)
reader.close()
return config
} else {
return StarterConfig()
}
}
fun saveConfig() {
try {
val configFile = File(CONFIG_PATH)
val fileWriter = FileWriter(configFile)
// Put the config to json then flush the writer to commence writing.
CobblemonConfig.GSON.toJson(this.config, fileWriter)
fileWriter.flush()
fileWriter.close()
} catch (exception: Exception) {
LOGGER.error("Failed to save the config! Please consult the following stack trace:")
exception.printStackTrace()
}
}
private fun registerArgumentTypes() {
this.implementation.registerCommandArgument(cobblemonResource("pokemon"), PokemonArgumentType::class, ConstantArgumentSerializer.of(PokemonArgumentType::pokemon))
this.implementation.registerCommandArgument(cobblemonResource("pokemon_properties"), PokemonPropertiesArgumentType::class, ConstantArgumentSerializer.of(PokemonPropertiesArgumentType::properties))
this.implementation.registerCommandArgument(cobblemonResource("spawn_bucket"), SpawnBucketArgumentType::class, ConstantArgumentSerializer.of(SpawnBucketArgumentType::spawnBucket))
this.implementation.registerCommandArgument(cobblemonResource("move"), MoveArgumentType::class, ConstantArgumentSerializer.of(MoveArgumentType::move))
this.implementation.registerCommandArgument(cobblemonResource("party_slot"), PartySlotArgumentType::class, ConstantArgumentSerializer.of(PartySlotArgumentType::partySlot))
this.implementation.registerCommandArgument(cobblemonResource("pokemon_store"), PokemonStoreArgumentType::class, ConstantArgumentSerializer.of(PokemonStoreArgumentType::pokemonStore))
}
}
@@ -0,0 +1,33 @@
/*
* 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
import com.cobblemon.mod.common.block.entity.HealingMachineBlockEntity
import com.cobblemon.mod.common.block.entity.PCBlockEntity
import com.cobblemon.mod.common.block.entity.PokemonPastureBlockEntity
import com.cobblemon.mod.common.platform.PlatformRegistry
import net.minecraft.block.entity.BlockEntityType
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.RegistryKeys
object CobblemonBlockEntities : PlatformRegistry<Registry<BlockEntityType<*>>, RegistryKey<Registry<BlockEntityType<*>>>, BlockEntityType<*>>() {
override val registry: Registry<BlockEntityType<*>> = Registries.BLOCK_ENTITY_TYPE
override val registryKey: RegistryKey<Registry<BlockEntityType<*>>> = RegistryKeys.BLOCK_ENTITY_TYPE
@JvmField
val HEALING_MACHINE: BlockEntityType<HealingMachineBlockEntity> = this.create("healing_machine", BlockEntityType.Builder.create(::HealingMachineBlockEntity, CobblemonBlocks.HEALING_MACHINE).build(null))
@JvmField
val PC: BlockEntityType<PCBlockEntity> = this.create("pc", BlockEntityType.Builder.create(::PCBlockEntity, CobblemonBlocks.PC).build(null))
@JvmField
val PASTURE: BlockEntityType<PokemonPastureBlockEntity> = this.create("pasture", BlockEntityType.Builder.create(::PokemonPastureBlockEntity, CobblemonBlocks.PASTURE).build(null))
}
@@ -0,0 +1,251 @@
/*
* 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
import com.cobblemon.mod.common.api.apricorn.Apricorn
import com.cobblemon.mod.common.block.*
import com.cobblemon.mod.common.block.MintBlock.MintType
import com.cobblemon.mod.common.mixin.invoker.DoorBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.PressurePlateBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.StairsBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.TrapdoorBlockInvoker
import com.cobblemon.mod.common.mixin.invoker.*
import com.cobblemon.mod.common.platform.PlatformRegistry
import net.minecraft.block.*
import net.minecraft.block.piston.PistonBehavior
import net.minecraft.entity.effect.StatusEffects
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.RegistryKeys
import net.minecraft.sound.BlockSoundGroup
import net.minecraft.util.math.intprovider.UniformIntProvider
@Suppress("SameParameterValue", "HasPlatformType", "MemberVisibilityCanBePrivate", "unused")
object CobblemonBlocks : PlatformRegistry<Registry<Block>, RegistryKey<Registry<Block>>, Block>() {
override val registry: Registry<Block> = Registries.BLOCK
override val registryKey: RegistryKey<Registry<Block>> = RegistryKeys.BLOCK
val APRICORN_BLOCK_SET_TYPE = BlockSetType("apricorn")
val APRICORN_WOOD_TYPE = WoodType.register(WoodType("apricorn", APRICORN_BLOCK_SET_TYPE))
// Evolution Ores
@JvmField
val DAWN_STONE_ORE = evolutionStoneOre("dawn_stone_ore")
@JvmField
val DUSK_STONE_ORE = evolutionStoneOre("dusk_stone_ore")
@JvmField
val FIRE_STONE_ORE = evolutionStoneOre("fire_stone_ore")
@JvmField
val ICE_STONE_ORE = evolutionStoneOre("ice_stone_ore")
@JvmField
val LEAF_STONE_ORE = evolutionStoneOre("leaf_stone_ore")
@JvmField
val MOON_STONE_ORE = evolutionStoneOre("moon_stone_ore")
@JvmField
val DRIPSTONE_MOON_STONE_ORE = evolutionStoneOre("dripstone_moon_stone_ore")
@JvmField
val SHINY_STONE_ORE = evolutionStoneOre("shiny_stone_ore")
@JvmField
val SUN_STONE_ORE = evolutionStoneOre("sun_stone_ore")
@JvmField
val THUNDER_STONE_ORE = evolutionStoneOre("thunder_stone_ore")
@JvmField
val WATER_STONE_ORE = evolutionStoneOre("water_stone_ore")
@JvmField
val DEEPSLATE_DAWN_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_dawn_stone_ore")
@JvmField
val DEEPSLATE_DUSK_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_dusk_stone_ore")
@JvmField
val DEEPSLATE_FIRE_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_fire_stone_ore")
@JvmField
val DEEPSLATE_ICE_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_ice_stone_ore")
@JvmField
val DEEPSLATE_LEAF_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_leaf_stone_ore")
@JvmField
val DEEPSLATE_MOON_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_moon_stone_ore")
@JvmField
val DEEPSLATE_SHINY_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_shiny_stone_ore")
@JvmField
val DEEPSLATE_SUN_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_sun_stone_ore")
@JvmField
val DEEPSLATE_THUNDER_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_thunder_stone_ore")
@JvmField
val DEEPSLATE_WATER_STONE_ORE = this.deepslateEvolutionStoneOre("deepslate_water_stone_ore")
// Apricorns
@JvmField
val APRICORN_LOG = log("apricorn_log", arg2 = MapColor.BROWN)
@JvmField
val STRIPPED_APRICORN_LOG = log("stripped_apricorn_log")
@JvmField
val APRICORN_WOOD = log("apricorn_wood")
@JvmField
val STRIPPED_APRICORN_WOOD = log("stripped_apricorn_wood")
@JvmField
val APRICORN_PLANKS = this.create("apricorn_planks", Block(AbstractBlock.Settings.create().mapColor(MapColor.DIRT_BROWN).strength(2.0f, 3.0f).sounds(BlockSoundGroup.WOOD)))
@JvmField
val APRICORN_LEAVES = leaves("apricorn_leaves")
@JvmField
val APRICORN_FENCE = this.create("apricorn_fence", FenceBlock(AbstractBlock.Settings.create().mapColor(APRICORN_PLANKS.defaultMapColor).strength(2.0f, 3.0f).sounds(BlockSoundGroup.WOOD)))
@JvmField
val APRICORN_FENCE_GATE = this.create("apricorn_fence_gate", FenceGateBlock(AbstractBlock.Settings.create().mapColor(APRICORN_PLANKS.defaultMapColor).strength(2.0f, 3.0f).sounds(BlockSoundGroup.WOOD), APRICORN_WOOD_TYPE))
@JvmField // Note At the time of 1.20.0 we don't need our own BlockSetType for Apricorn wood
val APRICORN_BUTTON = this.create("apricorn_button", BlocksInvoker.createWoodenButtonBlock(BlockSetType.OAK))
@JvmField
val APRICORN_PRESSURE_PLATE = this.create("apricorn_pressure_plate", PressurePlateBlockInvoker.`cobblemon$create`(PressurePlateBlock.ActivationRule.EVERYTHING, AbstractBlock.Settings.create().mapColor(APRICORN_PLANKS.defaultMapColor).noCollision().strength(0.5f).sounds(BlockSoundGroup.WOOD), APRICORN_BLOCK_SET_TYPE))
// Tag was removed be sure to add it back when implemented
//val APRICORN_SIGN = queue("apricorn_sign") { StandingSignBlock(AbstractBlock.Settings.of(Material.WOOD).noCollission().strength(1.0f).sounds(BlockSoundGroup.WOOD), APRICORN_WOOD_TYPE) }
//val APRICORN_WALL_SIGN = queue("apricorn_wall_sign") { WallSignBlock(AbstractBlock.Settings.of(Material.WOOD).noCollission().strength(1.0f).sounds(BlockSoundGroup.WOOD).dropsLike(APRICORN_SIGN), APRICORN_WOOD_TYPE) }
@JvmField
val APRICORN_SLAB = this.create("apricorn_slab", SlabBlock(AbstractBlock.Settings.create().mapColor(MapColor.OAK_TAN).strength(2.0f, 3.0f).sounds(BlockSoundGroup.WOOD)))
@JvmField
val APRICORN_STAIRS = this.create("apricorn_stairs", StairsBlockInvoker.`cobblemon$create`(APRICORN_PLANKS.defaultState, AbstractBlock.Settings.copy(APRICORN_PLANKS)))
@JvmField
val APRICORN_DOOR = this.create("apricorn_door", DoorBlockInvoker.`cobblemon$create`(AbstractBlock.Settings.create().mapColor(APRICORN_PLANKS.defaultMapColor).strength(3.0F).sounds(BlockSoundGroup.WOOD).nonOpaque(), APRICORN_BLOCK_SET_TYPE))
@JvmField
val APRICORN_TRAPDOOR = this.create("apricorn_trapdoor", TrapdoorBlockInvoker.`cobblemon$create`(AbstractBlock.Settings.create().mapColor(MapColor.OAK_TAN).strength(3.0F).sounds(BlockSoundGroup.WOOD).nonOpaque().allowsSpawning { _, _, _, _ -> false }, APRICORN_BLOCK_SET_TYPE))
private val PLANT_PROPERTIES = AbstractBlock.Settings.create().mapColor(MapColor.DARK_GREEN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.GRASS).pistonBehavior(PistonBehavior.DESTROY)
@JvmField
val BLACK_APRICORN_SAPLING = this.create("black_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.BLACK))
@JvmField
val BLUE_APRICORN_SAPLING = this.create("blue_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.BLUE))
@JvmField
val GREEN_APRICORN_SAPLING = this.create("green_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.GREEN))
@JvmField
val PINK_APRICORN_SAPLING = this.create("pink_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.PINK))
@JvmField
val RED_APRICORN_SAPLING = this.create("red_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.RED))
@JvmField
val WHITE_APRICORN_SAPLING = this.create("white_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.WHITE))
@JvmField
val YELLOW_APRICORN_SAPLING = this.create("yellow_apricorn_sapling", ApricornSaplingBlock(PLANT_PROPERTIES, Apricorn.YELLOW))
@JvmField
val MEDICINAL_LEEK = this.create("medicinal_leek", MedicinalLeekBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DULL_RED).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val ENERGY_ROOT = this.create("energy_root", EnergyRootBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DIRT_BROWN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.ROOTS)))
@JvmField
val BIG_ROOT = this.create("big_root", BigRootBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DARK_GREEN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.ROOTS)))
@JvmField
val REVIVAL_HERB = this.create("revival_herb", RevivalHerbBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).mapColor(MapColor.DARK_GREEN).burnable().noCollision().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val BLACK_APRICORN = apricornBlock("black_apricorn", Apricorn.BLACK)
@JvmField
val BLUE_APRICORN = apricornBlock("blue_apricorn", Apricorn.BLUE)
@JvmField
val GREEN_APRICORN = apricornBlock("green_apricorn", Apricorn.GREEN)
@JvmField
val PINK_APRICORN = apricornBlock("pink_apricorn", Apricorn.PINK)
@JvmField
val RED_APRICORN = apricornBlock("red_apricorn", Apricorn.RED)
@JvmField
val WHITE_APRICORN = apricornBlock("white_apricorn", Apricorn.WHITE)
@JvmField
val YELLOW_APRICORN = apricornBlock("yellow_apricorn", Apricorn.YELLOW)
@JvmField
val HEALING_MACHINE = create(
"healing_machine",
HealingMachineBlock(
AbstractBlock.Settings.create()
.mapColor(MapColor.IRON_GRAY)
.sounds(BlockSoundGroup.METAL)
.pistonBehavior(PistonBehavior.BLOCK)
.strength(2f)
.nonOpaque()
.luminance { if (it.get(HealingMachineBlock.CHARGE_LEVEL) >= HealingMachineBlock.MAX_CHARGE_LEVEL) 7 else 2 }
)
)
@JvmField
val PC = create(
"pc",
PCBlock(
AbstractBlock.Settings.create()
.mapColor(MapColor.IRON_GRAY)
.sounds(BlockSoundGroup.METAL)
.pistonBehavior(PistonBehavior.BLOCK)
.strength(2F)
.nonOpaque()
.luminance { if ((it.get(PCBlock.ON) as Boolean) && (it.get(PCBlock.PART) == PCBlock.PCPart.TOP)) 10 else 0 }
)
)
@JvmField
val RED_MINT = create("red_mint", MintBlock(MintType.RED, AbstractBlock.Settings.create().mapColor(MapColor.RED).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val BLUE_MINT = create("blue_mint", MintBlock(MintType.BLUE, AbstractBlock.Settings.create().mapColor(MapColor.BLUE).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val CYAN_MINT = create("cyan_mint", MintBlock(MintType.CYAN, AbstractBlock.Settings.create().mapColor(MapColor.CYAN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val PINK_MINT = create("pink_mint", MintBlock(MintType.PINK, AbstractBlock.Settings.create().mapColor(MapColor.PINK).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val GREEN_MINT = create("green_mint", MintBlock(MintType.GREEN, AbstractBlock.Settings.create().mapColor(MapColor.GREEN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val WHITE_MINT = create("white_mint", MintBlock(MintType.WHITE, AbstractBlock.Settings.create().mapColor(MapColor.WHITE).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val PASTURE = create(
"pasture",
PastureBlock(
AbstractBlock.Settings.create()
.mapColor(MapColor.BROWN)
.sounds(BlockSoundGroup.WOOD)
.strength(2F)
.nonOpaque()
.pistonBehavior(PistonBehavior.BLOCK)
.luminance { if ((it.get(PastureBlock.ON) as Boolean) && (it.get(PastureBlock.PART) == PastureBlock.PasturePart.TOP)) 10 else 0 }
)
)
@JvmField
val VIVICHOKE_SEEDS = this.create("vivichoke_seeds", VivichokeBlock(AbstractBlock.Settings.create().pistonBehavior(PistonBehavior.DESTROY).burnable().mapColor(MapColor.DARK_GREEN).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)))
@JvmField
val PEP_UP_FLOWER = this.create("pep_up_flower", FlowerBlock(StatusEffects.LEVITATION, 10, AbstractBlock.Settings.create().mapColor(MapColor.DARK_GREEN).noCollision().breakInstantly().sounds(BlockSoundGroup.GRASS).offset(AbstractBlock.OffsetType.XZ).pistonBehavior(PistonBehavior.DESTROY)))
@JvmField
val POTTED_PEP_UP_FLOWER = this.create("potted_pep_up_flower", BlocksInvoker.createFlowerPotBlock(PEP_UP_FLOWER))
/**
* Returns a map of all the blocks that can be stripped with an axe in the format of input - output.
*
* @return A map of all the blocks that can be stripped with an axe in the format of input - output.
*/
fun strippedBlocks(): Map<Block, Block> = mapOf(
APRICORN_WOOD to STRIPPED_APRICORN_WOOD,
APRICORN_LOG to STRIPPED_APRICORN_LOG
)
private fun apricornBlock(name: String, apricorn: Apricorn): ApricornBlock = this.create(name, ApricornBlock(AbstractBlock.Settings.create().mapColor(apricorn.mapColor()).ticksRandomly().strength(Blocks.OAK_LOG.hardness, Blocks.OAK_LOG.blastResistance).sounds(BlockSoundGroup.WOOD).nonOpaque(), apricorn))
/**
* Helper method for creating logs
* copied over from Vanilla
*/
private fun log(name: String, arg: MapColor = MapColor.DIRT_BROWN, arg2: MapColor = MapColor.DIRT_BROWN): PillarBlock {
val block = BlocksInvoker.createLogBlock(arg, arg2)
return this.create(name, block)
}
private fun evolutionStoneOre(name: String) = this.create(name, ExperienceDroppingBlock(AbstractBlock.Settings.copy(Blocks.IRON_ORE), UniformIntProvider.create(1, 2)))
private fun deepslateEvolutionStoneOre(name: String) = this.create(name, ExperienceDroppingBlock(AbstractBlock.Settings.copy(Blocks.DEEPSLATE_IRON_ORE), UniformIntProvider.create(1, 2)))
/**
* Helper method for creating leaves
* copied over from Vanilla
*/
private fun leaves(name: String): LeavesBlock {
val block = BlocksInvoker.createLeavesBlock(BlockSoundGroup.GRASS)
return this.create(name, block)
}
}
@@ -0,0 +1,42 @@
/*
* 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
import java.util.function.Supplier
import net.minecraft.block.Block
import net.minecraft.block.entity.BlockEntity
import net.minecraft.block.entity.BlockEntityType
import net.minecraft.client.color.block.BlockColorProvider
import net.minecraft.client.color.item.ItemColorProvider
import net.minecraft.client.model.TexturedModelData
import net.minecraft.client.particle.ParticleFactory
import net.minecraft.client.particle.SpriteProvider
import net.minecraft.client.render.RenderLayer
import net.minecraft.client.render.block.entity.BlockEntityRendererFactory
import net.minecraft.client.render.entity.model.EntityModelLayer
import net.minecraft.item.Item
import net.minecraft.particle.ParticleEffect
import net.minecraft.particle.ParticleType
import net.minecraft.resource.SynchronousResourceReloader
interface CobblemonClientImplementation {
fun registerLayer(modelLayer: EntityModelLayer, supplier: Supplier<TexturedModelData>)
fun <T : ParticleEffect> registerParticleFactory(
type: ParticleType<T>,
factory: (SpriteProvider) -> ParticleFactory<T>
)
fun registerBlockRenderType(layer: RenderLayer, vararg blocks: Block)
fun registerItemColors(provider: ItemColorProvider, vararg items: Item)
fun registerBlockColors(provider: BlockColorProvider, vararg blocks: Block)
fun <T : BlockEntity> registerBlockEntityRenderer(type: BlockEntityType<T>, factory: BlockEntityRendererFactory<T>)
}
@@ -0,0 +1,49 @@
/*
* 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
import com.cobblemon.mod.common.command.*
import com.mojang.brigadier.CommandDispatcher
import net.minecraft.command.CommandRegistryAccess
import net.minecraft.server.command.CommandManager
import net.minecraft.server.command.ServerCommandSource
object CobblemonCommands {
fun register(dispatcher: CommandDispatcher<ServerCommandSource>, registry: CommandRegistryAccess, selection: CommandManager.RegistrationEnvironment) {
SpawnPokemon.register(dispatcher)
GivePokemon.register(dispatcher)
TakePokemon.register(dispatcher)
ChangeScaleAndSize.register(dispatcher)
ChangeWalkSpeed.register(dispatcher)
TestCommand.register(dispatcher)
ReloadShowdownCommand.register(dispatcher)
ClickTextCommand.register(dispatcher)
PokemonEditCommand.register(dispatcher)
TeachCommand.register(dispatcher)
LevelUp.register(dispatcher)
HealPokemonCommand.register(dispatcher)
StopBattleCommand.register(dispatcher)
CheckSpawnsCommand.register(dispatcher)
GetNBT.register(dispatcher)
OpenStarterScreenCommand.register(dispatcher)
SpawnAllPokemon.register(dispatcher)
FriendshipCommand.register(dispatcher)
GiveAllPokemon.register(dispatcher)
HeldItemCommand.register(dispatcher, registry)
PcCommand.register(dispatcher)
SpawnPokemonFromPool.register(dispatcher)
PokeboxCommand.register(dispatcher)
TestStoreCommand.register(dispatcher)
QueryLearnsetCommand.register(dispatcher)
TestPcSlotCommand.register(dispatcher)
TestPartySlotCommand.register(dispatcher)
ClearPartyCommand.register(dispatcher)
PokemonRestartCommand.register(dispatcher)
}
}
@@ -0,0 +1,52 @@
/*
* 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
import com.cobblemon.mod.common.api.pokeball.PokeBalls
import com.cobblemon.mod.common.entity.pokeball.EmptyPokeBallEntity
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.entity.EntityType
import net.minecraft.entity.LivingEntity
import net.minecraft.entity.SpawnGroup
import net.minecraft.entity.attribute.DefaultAttributeContainer
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.RegistryKeys
object CobblemonEntities : PlatformRegistry<Registry<EntityType<*>>, RegistryKey<Registry<EntityType<*>>>, EntityType<*>>() {
override val registry: Registry<EntityType<*>> = Registries.ENTITY_TYPE
override val registryKey: RegistryKey<Registry<EntityType<*>>> = RegistryKeys.ENTITY_TYPE
@JvmField
val POKEMON_KEY = cobblemonResource("pokemon")
@JvmField
val POKEMON: EntityType<PokemonEntity> = this.create(
POKEMON_KEY.path,
EntityType.Builder.create({ _, world -> PokemonEntity(world) }, SpawnGroup.CREATURE)
.build(POKEMON_KEY.toString())
)
@JvmField
val EMPTY_POKEBALL_KEY = cobblemonResource("empty_pokeball")
@JvmField
val EMPTY_POKEBALL: EntityType<EmptyPokeBallEntity> = this.create(
EMPTY_POKEBALL_KEY.path,
EntityType.Builder.create({ _, world -> EmptyPokeBallEntity(PokeBalls.POKE_BALL, world) }, SpawnGroup.MISC)
.build(EMPTY_POKEBALL_KEY.toString())
)
fun registerAttributes(consumer: (EntityType<out LivingEntity>, DefaultAttributeContainer.Builder) -> Unit) {
consumer(POKEMON, PokemonEntity.createAttributes())
}
}
@@ -0,0 +1,193 @@
/*
* 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
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.api.net.ServerNetworkPacketHandler
import com.mojang.brigadier.arguments.ArgumentType
import kotlin.reflect.KClass
import net.minecraft.advancement.criterion.Criterion
import net.minecraft.command.argument.serialize.ArgumentSerializer
import net.minecraft.network.PacketByteBuf
import net.minecraft.network.listener.ClientPlayPacketListener
import net.minecraft.network.packet.Packet
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.tag.TagKey
import net.minecraft.resource.ResourceReloader
import net.minecraft.resource.ResourceType
import net.minecraft.server.MinecraftServer
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
import net.minecraft.world.GameRules
import net.minecraft.world.biome.Biome
import net.minecraft.world.gen.GenerationStep
import net.minecraft.world.gen.feature.PlacedFeature
interface CobblemonImplementation {
val modAPI: ModAPI
/**
*
*/
val networkManager: NetworkManager
/**
* TODO
*
* @return
*/
fun environment(): Environment
/**
* TODO
*
* @param id
* @return
*/
fun isModInstalled(id: String): Boolean
/**
* TODO
*
*/
fun registerPermissionValidator()
/**
* TODO
*
*/
fun registerSoundEvents()
/**
* TODO
*
*/
fun registerItems()
/**
* TODO
*
*/
fun registerBlocks()
/**
* TODO
*
*/
fun registerEntityTypes()
/**
* TODO
*
*/
fun registerEntityAttributes()
/**
* TODO
*
*/
fun registerBlockEntityTypes()
/**
* TODO
*
*/
fun registerWorldGenFeatures()
fun registerParticles()
/**
* Add a feature to the current platform implementation.
*
* @param feature The [PlacedFeature] being added.
* @param step The [GenerationStep.Feature] of this feature.
* @param validTag The [TagKey] required by the [Biome] for this feature to generate in, if null all biomes are valid.
*/
fun addFeatureToWorldGen(feature: RegistryKey<PlacedFeature>, step: GenerationStep.Feature, validTag: TagKey<Biome>?)
/**
* TODO
*
* @param A
* @param T
* @param identifier
* @param argumentClass
* @param serializer
*/
fun <A : ArgumentType<*>, T : ArgumentSerializer.ArgumentTypeProperties<A>> registerCommandArgument(identifier: Identifier, argumentClass: KClass<A>, serializer: ArgumentSerializer<A, T>)
/**
* TODO
*
* @param T
* @param name
* @param category
* @param type
* @return
*/
fun <T : GameRules.Rule<T>> registerGameRule(name: String, category: GameRules.Category, type: GameRules.Type<T>): GameRules.Key<T>
/**
* TODO
*
* @param T
* @param criteria
* @return
*/
fun <T : Criterion<*>> registerCriteria(criteria: T): T
/**
* TODO
*
* @param identifier
* @param reloader
* @param type
* @param dependencies
*/
fun registerResourceReloader(identifier: Identifier, reloader: ResourceReloader, type: ResourceType, dependencies: Collection<Identifier>)
/**
* TODO
*
* @return
*/
fun server(): MinecraftServer?
}
enum class ModAPI {
FABRIC,
FORGE
}
interface NetworkManager {
fun registerClientBound()
fun registerServerBound()
fun <T: NetworkPacket<T>> createClientBound(identifier: Identifier, kClass: KClass<T>, encoder: (T, PacketByteBuf) -> Unit, decoder: (PacketByteBuf) -> T, handler: ClientNetworkPacketHandler<T>)
fun <T: NetworkPacket<T>> createServerBound(identifier: Identifier, kClass: KClass<T>, encoder: (T, PacketByteBuf) -> Unit, decoder: (PacketByteBuf) -> T, handler: ServerNetworkPacketHandler<T>)
fun sendPacketToPlayer(player: ServerPlayerEntity, packet: NetworkPacket<*>)
fun sendPacketToServer(packet: NetworkPacket<*>)
fun <T : NetworkPacket<*>> asVanillaClientBound(packet: T): Packet<ClientPlayPacketListener>
}
enum class Environment {
CLIENT,
SERVER
}
@@ -0,0 +1,596 @@
/*
* 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
import com.cobblemon.mod.common.api.mulch.MulchVariant
import com.cobblemon.mod.common.api.pokeball.PokeBalls
import com.cobblemon.mod.common.api.pokemon.Natures
import com.cobblemon.mod.common.api.pokemon.stats.Stats
import com.cobblemon.mod.common.api.pokemon.status.Statuses
import com.cobblemon.mod.common.block.MintBlock.MintType
import com.cobblemon.mod.common.item.*
import com.cobblemon.mod.common.item.battle.DireHitItem
import com.cobblemon.mod.common.item.battle.GuardSpecItem
import com.cobblemon.mod.common.item.battle.XStatItem
import com.cobblemon.mod.common.item.interactive.*
import com.cobblemon.mod.common.item.interactive.PotionItem
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.pokeball.PokeBall
import com.cobblemon.mod.common.pokemon.helditem.CobblemonHeldItemManager
import net.minecraft.block.Block
import net.minecraft.block.ComposterBlock
import net.minecraft.entity.effect.StatusEffectInstance
import net.minecraft.entity.effect.StatusEffects
import net.minecraft.item.*
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.RegistryKeys
@Suppress("unused")
object CobblemonItems : PlatformRegistry<Registry<Item>, RegistryKey<Registry<Item>>, Item>() {
override val registry: Registry<Item> = Registries.ITEM
override val registryKey: RegistryKey<Registry<Item>> = RegistryKeys.ITEM
@JvmField
val pokeBalls = mutableListOf<PokeBallItem>()
@JvmField
val POKE_BALL = pokeBallItem(PokeBalls.POKE_BALL)
@JvmField
val CITRINE_BALL = pokeBallItem(PokeBalls.CITRINE_BALL)
@JvmField
val VERDANT_BALL = pokeBallItem(PokeBalls.VERDANT_BALL)
@JvmField
val AZURE_BALL = pokeBallItem(PokeBalls.AZURE_BALL)
@JvmField
val ROSEATE_BALL = pokeBallItem(PokeBalls.ROSEATE_BALL)
@JvmField
val SLATE_BALL = pokeBallItem(PokeBalls.SLATE_BALL)
@JvmField
val PREMIER_BALL = pokeBallItem(PokeBalls.PREMIER_BALL)
@JvmField
val GREAT_BALL = pokeBallItem(PokeBalls.GREAT_BALL)
@JvmField
val ULTRA_BALL = pokeBallItem(PokeBalls.ULTRA_BALL)
@JvmField
val SAFARI_BALL = pokeBallItem(PokeBalls.SAFARI_BALL)
@JvmField
val FAST_BALL = pokeBallItem(PokeBalls.FAST_BALL)
@JvmField
val LEVEL_BALL = pokeBallItem(PokeBalls.LEVEL_BALL)
@JvmField
val LURE_BALL = pokeBallItem(PokeBalls.LURE_BALL)
@JvmField
val HEAVY_BALL = pokeBallItem(PokeBalls.HEAVY_BALL)
@JvmField
val LOVE_BALL = pokeBallItem(PokeBalls.LOVE_BALL)
@JvmField
val FRIEND_BALL = pokeBallItem(PokeBalls.FRIEND_BALL)
@JvmField
val MOON_BALL = pokeBallItem(PokeBalls.MOON_BALL)
@JvmField
val SPORT_BALL = pokeBallItem(PokeBalls.SPORT_BALL)
@JvmField
val PARK_BALL = pokeBallItem(PokeBalls.PARK_BALL)
@JvmField
val NET_BALL = pokeBallItem(PokeBalls.NET_BALL)
@JvmField
val DIVE_BALL = pokeBallItem(PokeBalls.DIVE_BALL)
@JvmField
val NEST_BALL = pokeBallItem(PokeBalls.NEST_BALL)
@JvmField
val REPEAT_BALL = pokeBallItem(PokeBalls.REPEAT_BALL)
@JvmField
val TIMER_BALL = pokeBallItem(PokeBalls.TIMER_BALL)
@JvmField
val LUXURY_BALL = pokeBallItem(PokeBalls.LUXURY_BALL)
@JvmField
val DUSK_BALL = pokeBallItem(PokeBalls.DUSK_BALL)
@JvmField
val HEAL_BALL = pokeBallItem(PokeBalls.HEAL_BALL)
@JvmField
val QUICK_BALL = pokeBallItem(PokeBalls.QUICK_BALL)
@JvmField
val DREAM_BALL = pokeBallItem(PokeBalls.DREAM_BALL)
@JvmField
val BEAST_BALL = pokeBallItem(PokeBalls.BEAST_BALL)
@JvmField
val MASTER_BALL = pokeBallItem(PokeBalls.MASTER_BALL)
@JvmField
val CHERISH_BALL = pokeBallItem(PokeBalls.CHERISH_BALL)
@JvmField
val VIVICHOKE = create("vivichoke", Item(Item.Settings()))
@JvmField
val VIVICHOKE_SEEDS = create("vivichoke_seeds", VivichokeItem(CobblemonBlocks.VIVICHOKE_SEEDS))
@JvmField
val RED_APRICORN = create("red_apricorn", ApricornItem(CobblemonBlocks.RED_APRICORN))
@JvmField
val YELLOW_APRICORN = create("yellow_apricorn", ApricornItem(CobblemonBlocks.YELLOW_APRICORN))
@JvmField
val GREEN_APRICORN = create("green_apricorn", ApricornItem(CobblemonBlocks.GREEN_APRICORN))
@JvmField
val BLUE_APRICORN = create("blue_apricorn", ApricornItem(CobblemonBlocks.BLUE_APRICORN))
@JvmField
val PINK_APRICORN = create("pink_apricorn", ApricornItem(CobblemonBlocks.PINK_APRICORN))
@JvmField
val BLACK_APRICORN = create("black_apricorn", ApricornItem(CobblemonBlocks.BLACK_APRICORN))
@JvmField
val WHITE_APRICORN = create("white_apricorn", ApricornItem(CobblemonBlocks.WHITE_APRICORN))
@JvmField
val RED_APRICORN_SEED = create("red_apricorn_seed", ApricornSeedItem(CobblemonBlocks.RED_APRICORN_SAPLING))
@JvmField
val YELLOW_APRICORN_SEED = create("yellow_apricorn_seed", ApricornSeedItem(CobblemonBlocks.YELLOW_APRICORN_SAPLING))
@JvmField
val GREEN_APRICORN_SEED = create("green_apricorn_seed", ApricornSeedItem(CobblemonBlocks.GREEN_APRICORN_SAPLING))
@JvmField
val BLUE_APRICORN_SEED = create("blue_apricorn_seed", ApricornSeedItem(CobblemonBlocks.BLUE_APRICORN_SAPLING))
@JvmField
val PINK_APRICORN_SEED = create("pink_apricorn_seed", ApricornSeedItem(CobblemonBlocks.PINK_APRICORN_SAPLING))
@JvmField
val BLACK_APRICORN_SEED = create("black_apricorn_seed", ApricornSeedItem(CobblemonBlocks.BLACK_APRICORN_SAPLING))
@JvmField
val WHITE_APRICORN_SEED = create("white_apricorn_seed", ApricornSeedItem(CobblemonBlocks.WHITE_APRICORN_SAPLING))
@JvmField
val APRICORN_LOG = blockItem("apricorn_log", CobblemonBlocks.APRICORN_LOG)
@JvmField
val STRIPPED_APRICORN_LOG = blockItem("stripped_apricorn_log", CobblemonBlocks.STRIPPED_APRICORN_LOG)
@JvmField
val APRICORN_WOOD = blockItem("apricorn_wood", CobblemonBlocks.APRICORN_WOOD)
@JvmField
val STRIPPED_APRICORN_WOOD = blockItem("stripped_apricorn_wood", CobblemonBlocks.STRIPPED_APRICORN_WOOD)
@JvmField
val APRICORN_PLANKS = blockItem("apricorn_planks", CobblemonBlocks.APRICORN_PLANKS)
@JvmField
val APRICORN_LEAVES = blockItem("apricorn_leaves", CobblemonBlocks.APRICORN_LEAVES).also {
val compostChance = ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.getFloat(Items.OAK_LEAVES)
// Should always pass unless Mojang reworks leaves to no longer work in the Composter, in that case we already updated w.o doing anything
if (compostChance != ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE.defaultReturnValue()) {
ComposterBlock.ITEM_TO_LEVEL_INCREASE_CHANCE[it] = compostChance
}
}
@JvmField
val APRICORN_DOOR = blockItem("apricorn_door", CobblemonBlocks.APRICORN_DOOR)
@JvmField
val APRICORN_TRAPDOOR = blockItem("apricorn_trapdoor", CobblemonBlocks.APRICORN_TRAPDOOR)
@JvmField
val APRICORN_FENCE = blockItem("apricorn_fence", CobblemonBlocks.APRICORN_FENCE)
@JvmField
val APRICORN_FENCE_GATE = blockItem("apricorn_fence_gate", CobblemonBlocks.APRICORN_FENCE_GATE)
@JvmField
val APRICORN_BUTTON = blockItem("apricorn_button", CobblemonBlocks.APRICORN_BUTTON)
@JvmField
val APRICORN_PRESSURE_PLATE = blockItem("apricorn_pressure_plate", CobblemonBlocks.APRICORN_PRESSURE_PLATE)
//@JvmField
// val APRICORN_SIGN = create("apricorn_sign", SignItem(Item.Properties().stacksTo(16).tab(CreativeModeTab.TAB_DECORATIONS), CobblemonBlocks.APRICORN_SIGN, CobblemonBlocks.APRICORN_WALL_SIGN))
@JvmField
val APRICORN_SLAB = blockItem("apricorn_slab", CobblemonBlocks.APRICORN_SLAB)
@JvmField
val APRICORN_STAIRS = blockItem("apricorn_stairs", CobblemonBlocks.APRICORN_STAIRS)
@JvmField
val HEALING_MACHINE = blockItem("healing_machine", CobblemonBlocks.HEALING_MACHINE)
@JvmField
val PC = blockItem("pc", CobblemonBlocks.PC)
@JvmField
val PASTURE = blockItem("pasture", CobblemonBlocks.PASTURE)
// Evolution items
@JvmField val LINK_CABLE = create("link_cable", LinkCableItem())
@JvmField val DRAGON_SCALE = noSettingsItem("dragon_scale")
@JvmField val KINGS_ROCK = noSettingsItem("kings_rock")
@JvmField val METAL_COAT = noSettingsItem("metal_coat")
@JvmField val UPGRADE = noSettingsItem("upgrade")
@JvmField val DUBIOUS_DISC = noSettingsItem("dubious_disc")
@JvmField val DEEP_SEA_SCALE = noSettingsItem("deep_sea_scale")
@JvmField val DEEP_SEA_TOOTH = noSettingsItem("deep_sea_tooth")
@JvmField val ELECTIRIZER = noSettingsItem("electirizer")
@JvmField val MAGMARIZER = noSettingsItem("magmarizer")
@JvmField val OVAL_STONE = noSettingsItem("oval_stone")
@JvmField val PROTECTOR = noSettingsItem("protector")
@JvmField val REAPER_CLOTH = noSettingsItem("reaper_cloth")
@JvmField val PRISM_SCALE = noSettingsItem("prism_scale")
@JvmField val SACHET = noSettingsItem("sachet")
@JvmField val WHIPPED_DREAM = noSettingsItem("whipped_dream")
@JvmField val STRAWBERRY_SWEET = noSettingsItem("strawberry_sweet")
@JvmField val LOVE_SWEET = noSettingsItem("love_sweet")
@JvmField val BERRY_SWEET = noSettingsItem("berry_sweet")
@JvmField val CLOVER_SWEET = noSettingsItem("clover_sweet")
@JvmField val FLOWER_SWEET = noSettingsItem("flower_sweet")
@JvmField val STAR_SWEET = noSettingsItem("star_sweet")
@JvmField val RIBBON_SWEET = noSettingsItem("ribbon_sweet")
@JvmField val CHIPPED_POT = noSettingsItem("chipped_pot")
@JvmField val CRACKED_POT = noSettingsItem("cracked_pot")
@JvmField val SWEET_APPLE = noSettingsItem("sweet_apple")
@JvmField val TART_APPLE = noSettingsItem("tart_apple")
@JvmField val GALARICA_CUFF = noSettingsItem("galarica_cuff")
@JvmField val GALARICA_WREATH = noSettingsItem("galarica_wreath")
@JvmField val BLACK_AUGURITE = noSettingsItem("black_augurite")
@JvmField val PEAT_BLOCK = noSettingsItem("peat_block")
@JvmField val RAZOR_CLAW = noSettingsItem("razor_claw")
@JvmField val RAZOR_FANG = noSettingsItem("razor_fang")
// ToDo enable me when malicious armor goes in the game
//@JvmField val AUSPICIOUS_ARMOR = heldItem("auspicious_armor")
// Medicine
@JvmField
val RARE_CANDY = candyItem("rare_candy") { _, pokemon -> pokemon.getExperienceToNextLevel() }
@JvmField
val EXPERIENCE_CANDY_XS = candyItem("exp_candy_xs") { _, _ -> CandyItem.DEFAULT_XS_CANDY_YIELD }
@JvmField
val EXPERIENCE_CANDY_S = candyItem("exp_candy_s") { _, _ -> CandyItem.DEFAULT_S_CANDY_YIELD }
@JvmField
val EXPERIENCE_CANDY_M = candyItem("exp_candy_m") { _, _ -> CandyItem.DEFAULT_M_CANDY_YIELD }
@JvmField
val EXPERIENCE_CANDY_L = candyItem("exp_candy_l") { _, _ -> CandyItem.DEFAULT_L_CANDY_YIELD }
@JvmField
val EXPERIENCE_CANDY_XL = candyItem("exp_candy_xl") { _, _ -> CandyItem.DEFAULT_XL_CANDY_YIELD }
@JvmField
val CALCIUM = create("calcium", VitaminItem(Stats.SPECIAL_ATTACK))
@JvmField
val CARBOS = create("carbos", VitaminItem(Stats.SPEED))
@JvmField
val HP_UP = create("hp_up", VitaminItem(Stats.HP))
@JvmField
val IRON = create("iron", VitaminItem(Stats.DEFENCE))
@JvmField
val PROTEIN = create("protein", VitaminItem(Stats.ATTACK))
@JvmField
val ZINC = create("zinc", VitaminItem(Stats.SPECIAL_DEFENCE))
@JvmField
val MEDICINAL_LEEK = create("medicinal_leek", MedicinalLeekItem(CobblemonBlocks.MEDICINAL_LEEK, Item.Settings().food(FoodComponent.Builder().snack().hunger(1).saturationModifier(0.2f).build())))
@JvmField
val ROASTED_LEEK = create("roasted_leek", Item(Item.Settings().food(FoodComponent.Builder().snack().hunger(3).saturationModifier(0.3f).build())))
@JvmField
val BRAISED_VIVICHOKE = create("braised_vivichoke", Item(Item.Settings().maxCount(1).food(FoodComponent.Builder().hunger(6).saturationModifier(0.6f).build())))
@JvmField
val VIVICHOKE_DIP = create("vivichoke_dip", StewItem(Item.Settings().maxCount(1)
.food(FoodComponent.Builder()
.hunger(10)
.saturationModifier(1.2F)
.statusEffect(StatusEffectInstance(StatusEffects.ABSORPTION, 600, 0), 1F)
.build()
)
))
@JvmField
val ENERGY_ROOT = create("energy_root", EnergyRootItem(CobblemonBlocks.ENERGY_ROOT, Item.Settings().food(FoodComponent.Builder().hunger(1).snack().saturationModifier(0.2f).build())))
@JvmField
val REVIVAL_HERB = create("revival_herb", RevivalHerbItem(CobblemonBlocks.REVIVAL_HERB))
@JvmField
val PEP_UP_FLOWER = blockItem("pep_up_flower", CobblemonBlocks.PEP_UP_FLOWER)
@JvmField
val MEDICINAL_BREW = create("medicinal_brew", Item(Item.Settings()))
@JvmField
val REMEDY = create("remedy", RemedyItem(RemedyItem.NORMAL))
@JvmField
val FINE_REMEDY = create("fine_remedy", RemedyItem(RemedyItem.FINE))
@JvmField
val SUPERB_REMEDY = create("superb_remedy", RemedyItem(RemedyItem.SUPERB))
@JvmField
val POTION = create("potion", PotionItem(PotionType.POTION))
@JvmField
val SUPER_POTION = create("super_potion", PotionItem(PotionType.SUPER_POTION))
@JvmField
val HYPER_POTION = create("hyper_potion", PotionItem(PotionType.HYPER_POTION))
@JvmField
val MAX_POTION = create("max_potion", PotionItem(PotionType.MAX_POTION))
@JvmField
val FULL_RESTORE = create("full_restore", PotionItem(PotionType.FULL_RESTORE))
@JvmField
val HEAL_POWDER = create("heal_powder", HealPowderItem())
@JvmField
val LEEK_AND_POTATO_STEW = create("leek_and_potato_stew", StewItem(Item.Settings().food(FoodComponent.Builder().hunger(8).saturationModifier(0.6f).build()).maxCount(1)))
@JvmField
val REVIVE = create("revive", ReviveItem(max = false))
@JvmField
val MAX_REVIVE = create("max_revive", ReviveItem(max = true))
@JvmField
val PP_UP = create("pp_up", PPUpItem(1))
@JvmField
val PP_MAX = create("pp_max", PPUpItem(3))
@JvmField
val RED_MINT_SEEDS = blockItem("red_mint_seeds", MintType.RED.getCropBlock())
@JvmField
val RED_MINT_LEAF = create("red_mint_leaf", MintLeafItem(MintType.RED))
@JvmField
val BLUE_MINT_SEEDS = blockItem("blue_mint_seeds", MintType.BLUE.getCropBlock())
@JvmField
val BLUE_MINT_LEAF = create("blue_mint_leaf", MintLeafItem(MintType.BLUE))
@JvmField
val CYAN_MINT_SEEDS = blockItem("cyan_mint_seeds", MintType.CYAN.getCropBlock())
@JvmField
val CYAN_MINT_LEAF = create("cyan_mint_leaf", MintLeafItem(MintType.CYAN))
@JvmField
val PINK_MINT_SEEDS = blockItem("pink_mint_seeds", MintType.PINK.getCropBlock())
@JvmField
val PINK_MINT_LEAF = create("pink_mint_leaf", MintLeafItem(MintType.PINK))
@JvmField
val GREEN_MINT_SEEDS = blockItem("green_mint_seeds", MintType.GREEN.getCropBlock())
@JvmField
val GREEN_MINT_LEAF = create("green_mint_leaf", MintLeafItem(MintType.GREEN))
@JvmField
val WHITE_MINT_SEEDS = blockItem("white_mint_seeds", MintType.WHITE.getCropBlock())
@JvmField
val WHITE_MINT_LEAF = create("white_mint_leaf", MintLeafItem(MintType.WHITE))
@JvmField
val LONELY_MINT = create("lonely_mint", MintItem(Natures.LONELY))
@JvmField
val ADAMANT_MINT = create("adamant_mint", MintItem(Natures.ADAMANT))
@JvmField
val NAUGHTY_MINT = create("naughty_mint", MintItem(Natures.NAUGHTY))
@JvmField
val BRAVE_MINT = create("brave_mint", MintItem(Natures.BRAVE))
@JvmField
val BOLD_MINT = create("bold_mint", MintItem(Natures.BOLD))
@JvmField
val IMPISH_MINT = create("impish_mint", MintItem(Natures.IMPISH))
@JvmField
val LAX_MINT = create("lax_mint", MintItem(Natures.LAX))
@JvmField
val RELAXED_MINT = create("relaxed_mint", MintItem(Natures.RELAXED))
@JvmField
val MODEST_MINT = create("modest_mint", MintItem(Natures.MODEST))
@JvmField
val MILD_MINT = create("mild_mint", MintItem(Natures.MILD))
@JvmField
val RASH_MINT = create("rash_mint", MintItem(Natures.RASH))
@JvmField
val QUIET_MINT = create("quiet_mint", MintItem(Natures.QUIET))
@JvmField
val CALM_MINT = create("calm_mint", MintItem(Natures.CALM))
@JvmField
val GENTLE_MINT = create("gentle_mint", MintItem(Natures.GENTLE))
@JvmField
val CAREFUL_MINT = create("careful_mint", MintItem(Natures.CAREFUL))
@JvmField
val SASSY_MINT = create("sassy_mint", MintItem(Natures.SASSY))
@JvmField
val TIMID_MINT = create("timid_mint", MintItem(Natures.TIMID))
@JvmField
val HASTY_MINT = create("hasty_mint", MintItem(Natures.HASTY))
@JvmField
val JOLLY_MINT = create("jolly_mint", MintItem(Natures.JOLLY))
@JvmField
val NAIVE_MINT = create("naive_mint", MintItem(Natures.NAIVE))
@JvmField
val SERIOUS_MINT = create("serious_mint", MintItem(Natures.SERIOUS))
@JvmField val X_ACCURACY = create("x_${Stats.ACCURACY.identifier.path}", XStatItem(Stats.ACCURACY))
@JvmField val X_ATTACK = create("x_${Stats.ATTACK.identifier.path}", XStatItem(Stats.ATTACK))
@JvmField val X_DEFENSE = create("x_${Stats.DEFENCE.identifier.path}", XStatItem(Stats.DEFENCE))
@JvmField val X_SP_ATK = create("x_${Stats.SPECIAL_ATTACK.identifier.path}", XStatItem(Stats.SPECIAL_ATTACK))
@JvmField val X_SP_DEF = create("x_${Stats.SPECIAL_DEFENCE.identifier.path}", XStatItem(Stats.SPECIAL_DEFENCE))
@JvmField val X_SPEED = create("x_${Stats.SPEED.identifier.path}", XStatItem(Stats.SPEED))
@JvmField val DIRE_HIT = create("dire_hit", DireHitItem())
@JvmField val GUARD_SPEC = create("guard_spec", GuardSpecItem())
@JvmField val BURN_HEAL = create("burn_heal", StatusCureItem("item.cobblemon.burn_heal", Statuses.BURN))
@JvmField val PARALYZE_HEAL = create("paralyze_heal", StatusCureItem("item.cobblemon.paralyze_heal", Statuses.PARALYSIS))
@JvmField val ICE_HEAL = create("ice_heal", StatusCureItem("item.cobblemon.ice_heal", Statuses.FROZEN))
@JvmField val ANTIDOTE = create("antidote", StatusCureItem("item.cobblemon.antidote", Statuses.POISON, Statuses.POISON_BADLY))
@JvmField val AWAKENING = create("awakening", StatusCureItem("item.cobblemon.awakening", Statuses.SLEEP))
@JvmField val FULL_HEAL = create("full_heal", StatusCureItem("item.cobblemon.full_heal"))
@JvmField val ETHER = create("ether", EtherItem(max = false))
@JvmField val MAX_ETHER = create("max_ether", EtherItem(max = true))
@JvmField val ELIXIR = create("elixir", ElixirItem(max = false))
@JvmField val MAX_ELIXIR = create("max_elixir", ElixirItem(max = true))
/**
* Evolution Ores and Stones
*/
@JvmField
val DAWN_STONE_ORE = blockItem("dawn_stone_ore", CobblemonBlocks.DAWN_STONE_ORE)
@JvmField
val DUSK_STONE_ORE = blockItem("dusk_stone_ore", CobblemonBlocks.DUSK_STONE_ORE)
@JvmField
val FIRE_STONE_ORE = blockItem("fire_stone_ore", CobblemonBlocks.FIRE_STONE_ORE)
@JvmField
val ICE_STONE_ORE = blockItem("ice_stone_ore", CobblemonBlocks.ICE_STONE_ORE)
@JvmField
val LEAF_STONE_ORE = blockItem("leaf_stone_ore", CobblemonBlocks.LEAF_STONE_ORE)
@JvmField
val MOON_STONE_ORE = blockItem("moon_stone_ore", CobblemonBlocks.MOON_STONE_ORE)
@JvmField
val SHINY_STONE_ORE = blockItem("shiny_stone_ore", CobblemonBlocks.SHINY_STONE_ORE)
@JvmField
val SUN_STONE_ORE = blockItem("sun_stone_ore", CobblemonBlocks.SUN_STONE_ORE)
@JvmField
val THUNDER_STONE_ORE = blockItem("thunder_stone_ore", CobblemonBlocks.THUNDER_STONE_ORE)
@JvmField
val WATER_STONE_ORE = blockItem("water_stone_ore", CobblemonBlocks.WATER_STONE_ORE)
@JvmField
val DEEPSLATE_DAWN_STONE_ORE = blockItem("deepslate_dawn_stone_ore", CobblemonBlocks.DEEPSLATE_DAWN_STONE_ORE)
@JvmField
val DEEPSLATE_DUSK_STONE_ORE = blockItem("deepslate_dusk_stone_ore", CobblemonBlocks.DEEPSLATE_DUSK_STONE_ORE)
@JvmField
val DEEPSLATE_FIRE_STONE_ORE = blockItem("deepslate_fire_stone_ore", CobblemonBlocks.DEEPSLATE_FIRE_STONE_ORE)
@JvmField
val DEEPSLATE_ICE_STONE_ORE = blockItem("deepslate_ice_stone_ore", CobblemonBlocks.DEEPSLATE_ICE_STONE_ORE)
@JvmField
val DEEPSLATE_LEAF_STONE_ORE = blockItem("deepslate_leaf_stone_ore", CobblemonBlocks.DEEPSLATE_LEAF_STONE_ORE)
@JvmField
val DEEPSLATE_MOON_STONE_ORE = blockItem("deepslate_moon_stone_ore", CobblemonBlocks.DEEPSLATE_MOON_STONE_ORE)
@JvmField
val DEEPSLATE_SHINY_STONE_ORE = blockItem("deepslate_shiny_stone_ore", CobblemonBlocks.DEEPSLATE_SHINY_STONE_ORE)
@JvmField
val DEEPSLATE_SUN_STONE_ORE = blockItem("deepslate_sun_stone_ore", CobblemonBlocks.DEEPSLATE_SUN_STONE_ORE)
@JvmField
val DEEPSLATE_THUNDER_STONE_ORE = blockItem("deepslate_thunder_stone_ore", CobblemonBlocks.DEEPSLATE_THUNDER_STONE_ORE)
@JvmField
val DEEPSLATE_WATER_STONE_ORE = blockItem("deepslate_water_stone_ore", CobblemonBlocks.DEEPSLATE_WATER_STONE_ORE)
@JvmField
val DRIPSTONE_MOON_STONE_ORE = blockItem("dripstone_moon_stone_ore", CobblemonBlocks.DRIPSTONE_MOON_STONE_ORE)
@JvmField
val DAWN_STONE = noSettingsItem("dawn_stone")
@JvmField
val DUSK_STONE = noSettingsItem("dusk_stone")
@JvmField
val FIRE_STONE = noSettingsItem("fire_stone")
@JvmField
val ICE_STONE = noSettingsItem("ice_stone")
@JvmField
val LEAF_STONE = noSettingsItem("leaf_stone")
@JvmField
val MOON_STONE = noSettingsItem("moon_stone")
@JvmField
val SHINY_STONE = noSettingsItem("shiny_stone")
@JvmField
val SUN_STONE = noSettingsItem("sun_stone")
@JvmField
val THUNDER_STONE = noSettingsItem("thunder_stone")
@JvmField
val WATER_STONE = noSettingsItem("water_stone")
// Held Items
@JvmField
val ASSAULT_VEST = heldItem("assault_vest")
@JvmField
val BIG_ROOT = blockItem("big_root", CobblemonBlocks.BIG_ROOT)
@JvmField
val BLACK_BELT = heldItem("black_belt")
@JvmField
val BLACK_GLASSES = heldItem("black_glasses")
@JvmField
val BLACK_SLUDGE = heldItem("black_sludge")
@JvmField
val CHARCOAL = heldItem("charcoal_stick", remappedName = "charcoal")
@JvmField
val CHOICE_BAND = heldItem("choice_band")
@JvmField
val CHOICE_SCARF = heldItem("choice_scarf")
@JvmField
val CHOICE_SPECS = heldItem("choice_specs")
@JvmField
val DRAGON_FANG = heldItem("dragon_fang")
@JvmField
val EXP_SHARE = heldItem("exp_share")
@JvmField
val FOCUS_BAND = heldItem("focus_band")
@JvmField
val HARD_STONE = heldItem("hard_stone")
@JvmField
val HEAVY_DUTY_BOOTS = heldItem("heavy_duty_boots")
@JvmField
val LEFTOVERS = heldItem("leftovers")
@JvmField
val LIGHT_CLAY = heldItem("light_clay")
@JvmField
val LUCKY_EGG = heldItem("lucky_egg")
@JvmField
val MAGNET = heldItem("magnet")
@JvmField
val MIRACLE_SEED = heldItem("miracle_seed")
@JvmField
val MUSCLE_BAND = heldItem("muscle_band")
@JvmField
val MYSTIC_WATER = heldItem("mystic_water")
@JvmField
val NEVER_MELT_ICE = heldItem("never_melt_ice")
@JvmField
val POISON_BARB = heldItem("poison_barb")
@JvmField
val QUICK_CLAW = heldItem("quick_claw")
@JvmField
val ROCKY_HELMET = heldItem("rocky_helmet")
@JvmField
val SAFETY_GOGGLES = heldItem("safety_goggles")
@JvmField
val SHARP_BEAK = heldItem("sharp_beak")
@JvmField
val SILK_SCARF = heldItem("silk_scarf")
@JvmField
val SILVER_POWDER = heldItem("silver_powder")
@JvmField
val SOFT_SAND = heldItem("soft_sand")
@JvmField
val SPELL_TAG = heldItem("spell_tag")
@JvmField
val TWISTED_SPOON = heldItem("twisted_spoon")
@JvmField
val WISE_GLASSES = heldItem("wise_glasses")
@JvmField
val MENTAL_HERB = heldItem("mental_herb")
@JvmField
val MIRROR_HERB = heldItem("mirror_herb")
@JvmField
val POWER_HERB = heldItem("power_herb")
@JvmField
val WHITE_HERB = heldItem("white_herb")
@JvmField
val BRIGHT_POWDER = heldItem("bright_powder")
@JvmField
val METAL_POWDER = heldItem("metal_powder")
@JvmField
val QUICK_POWDER = heldItem("quick_powder")
@JvmField
val DESTINY_KNOT = heldItem("destiny_knot")
@JvmField
val EVERSTONE = heldItem("everstone")
// Mulch
@JvmField
val MULCH_BASE = noSettingsItem("mulch_base")
@JvmField
val COARSE_MULCH = mulchItem("coarse_mulch", MulchVariant.COARSE)
@JvmField
val GROWTH_MULCH = mulchItem("growth_mulch", MulchVariant.GROWTH)
@JvmField
val HUMID_MULCH = mulchItem("humid_mulch", MulchVariant.HUMID)
@JvmField
val LOAMY_MULCH = mulchItem("loamy_mulch", MulchVariant.LOAMY)
@JvmField
val PEAT_MULCH = mulchItem("peat_mulch", MulchVariant.PEAT)
@JvmField
val RICH_MULCH = mulchItem("rich_mulch", MulchVariant.RICH)
@JvmField
val SANDY_MULCH = mulchItem("sandy_mulch", MulchVariant.SANDY)
@JvmField
val SURPRISE_MULCH = mulchItem("surprise_mulch", MulchVariant.SURPRISE)
// Misc
@JvmField
val POKEMON_MODEL = this.create("pokemon_model", PokemonItem())
private fun blockItem(name: String, block: Block): BlockItem = this.create(name, BlockItem(block, Item.Settings()))
private fun noSettingsItem(name: String): CobblemonItem = this.create(name, CobblemonItem(Item.Settings()))
private fun mulchItem(name: String, mulchVariant: MulchVariant): MulchItem = this.create(name, MulchItem(mulchVariant))
private fun pokeBallItem(pokeBall: PokeBall): PokeBallItem {
val item = create(pokeBall.name.path, PokeBallItem(pokeBall))
pokeBall.item = item
pokeBalls.add(item)
return item
}
private fun candyItem(name: String, calculator: CandyItem.Calculator): CandyItem = this.create(name, CandyItem(calculator))
private fun heldItem(name: String, remappedName: String? = null): CobblemonItem = create(
name,
CobblemonItem(Item.Settings()).also {
if (remappedName != null) {
CobblemonHeldItemManager.registerRemap(it, remappedName)
}
}
)
}
@@ -0,0 +1,40 @@
/*
* 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
import com.bedrockk.molang.Expression
import com.cobblemon.mod.common.api.data.DataRegistry
import com.cobblemon.mod.common.api.reactive.SimpleObservable
import com.cobblemon.mod.common.mechanics.RemediesMechanic
import com.cobblemon.mod.common.util.adapters.ExpressionAdapter
import com.cobblemon.mod.common.util.cobblemonResource
import com.google.gson.GsonBuilder
import net.minecraft.resource.ResourceManager
import net.minecraft.resource.ResourceType
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
object CobblemonMechanics : DataRegistry {
override val id: Identifier = cobblemonResource("mechanics")
override val type = ResourceType.SERVER_DATA
override val observable = SimpleObservable<CobblemonMechanics>()
val gson = GsonBuilder()
.setPrettyPrinting()
.registerTypeAdapter(Expression::class.java, ExpressionAdapter)
.create()
var remedies = RemediesMechanic()
override fun sync(player: ServerPlayerEntity) {}
override fun reload(manager: ResourceManager) {
manager.getResourceOrThrow(cobblemonResource("mechanics/remedies.json")).inputStream.use {
remedies = gson.fromJson(it.reader(), RemediesMechanic::class.java)
}
}
}
@@ -0,0 +1,409 @@
/*
* 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
import com.cobblemon.mod.common.api.net.ClientNetworkPacketHandler
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.api.net.ServerNetworkPacketHandler
import com.cobblemon.mod.common.client.net.SetClientPlayerDataHandler
import com.cobblemon.mod.common.client.net.battle.*
import com.cobblemon.mod.common.client.net.data.DataRegistrySyncPacketHandler
import com.cobblemon.mod.common.client.net.data.UnlockReloadPacketHandler
import com.cobblemon.mod.common.client.net.effect.SpawnSnowstormParticleHandler
import com.cobblemon.mod.common.client.net.gui.InteractPokemonUIPacketHandler
import com.cobblemon.mod.common.client.net.gui.SummaryUIPacketHandler
import com.cobblemon.mod.common.client.net.callback.move.OpenMoveCallbackHandler
import com.cobblemon.mod.common.client.net.callback.party.OpenPartyCallbackHandler
import com.cobblemon.mod.common.client.net.callback.partymove.OpenPartyMoveCallbackHandler
import com.cobblemon.mod.common.client.net.pasture.ClosePastureHandler
import com.cobblemon.mod.common.client.net.pasture.OpenPastureHandler
import com.cobblemon.mod.common.client.net.pasture.PokemonPasturedHandler
import com.cobblemon.mod.common.client.net.pasture.PokemonUnpasturedHandler
import com.cobblemon.mod.common.client.net.pokemon.update.PokemonUpdatePacketHandler
import com.cobblemon.mod.common.client.net.settings.ServerSettingsPacketHandler
import com.cobblemon.mod.common.client.net.sound.PokemonCryHandler
import com.cobblemon.mod.common.client.net.sound.UnvalidatedPlaySoundS2CPacketHandler
import com.cobblemon.mod.common.client.net.spawn.SpawnExtraDataEntityHandler
import com.cobblemon.mod.common.client.net.starter.StarterUIPacketHandler
import com.cobblemon.mod.common.client.net.storage.RemoveClientPokemonHandler
import com.cobblemon.mod.common.client.net.storage.SwapClientPokemonHandler
import com.cobblemon.mod.common.client.net.storage.party.InitializePartyHandler
import com.cobblemon.mod.common.client.net.storage.party.MoveClientPartyPokemonHandler
import com.cobblemon.mod.common.client.net.storage.party.SetPartyPokemonHandler
import com.cobblemon.mod.common.client.net.storage.party.SetPartyReferenceHandler
import com.cobblemon.mod.common.client.net.storage.pc.ClosePCHandler
import com.cobblemon.mod.common.client.net.storage.pc.InitializePCHandler
import com.cobblemon.mod.common.client.net.storage.pc.MoveClientPCPokemonHandler
import com.cobblemon.mod.common.client.net.storage.pc.OpenPCHandler
import com.cobblemon.mod.common.client.net.storage.pc.SetPCBoxPokemonHandler
import com.cobblemon.mod.common.client.net.storage.pc.SetPCPokemonHandler
import com.cobblemon.mod.common.client.net.toast.ToastPacketHandler
import com.cobblemon.mod.common.client.net.trade.TradeAcceptanceChangedHandler
import com.cobblemon.mod.common.client.net.trade.TradeCancelledHandler
import com.cobblemon.mod.common.client.net.trade.TradeCompletedHandler
import com.cobblemon.mod.common.client.net.trade.TradeOfferExpiredHandler
import com.cobblemon.mod.common.client.net.trade.TradeOfferNotificationHandler
import com.cobblemon.mod.common.client.net.trade.TradeStartedHandler
import com.cobblemon.mod.common.client.net.trade.TradeUpdatedHandler
import com.cobblemon.mod.common.net.messages.client.battle.*
import com.cobblemon.mod.common.net.messages.client.callback.OpenMoveCallbackPacket
import com.cobblemon.mod.common.net.messages.client.callback.OpenPartyCallbackPacket
import com.cobblemon.mod.common.net.messages.client.callback.OpenPartyMoveCallbackPacket
import com.cobblemon.mod.common.net.messages.client.data.AbilityRegistrySyncPacket
import com.cobblemon.mod.common.net.messages.client.data.MovesRegistrySyncPacket
import com.cobblemon.mod.common.net.messages.client.data.PropertiesCompletionRegistrySyncPacket
import com.cobblemon.mod.common.net.messages.client.data.SpeciesRegistrySyncPacket
import com.cobblemon.mod.common.net.messages.client.data.UnlockReloadPacket
import com.cobblemon.mod.common.net.messages.client.effect.SpawnSnowstormParticlePacket
import com.cobblemon.mod.common.net.messages.client.pasture.ClosePasturePacket
import com.cobblemon.mod.common.net.messages.client.pasture.OpenPasturePacket
import com.cobblemon.mod.common.net.messages.client.pasture.PokemonPasturedPacket
import com.cobblemon.mod.common.net.messages.client.pasture.PokemonUnpasturedPacket
import com.cobblemon.mod.common.net.messages.client.pokemon.update.*
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.AddEvolutionPacket
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.ClearEvolutionsPacket
import com.cobblemon.mod.common.net.messages.client.pokemon.update.evolution.RemoveEvolutionPacket
import com.cobblemon.mod.common.net.messages.client.settings.ServerSettingsPacket
import com.cobblemon.mod.common.net.messages.client.sound.PokemonCryPacket
import com.cobblemon.mod.common.net.messages.client.sound.UnvalidatedPlaySoundS2CPacket
import com.cobblemon.mod.common.net.messages.client.spawn.SpawnPokeballPacket
import com.cobblemon.mod.common.net.messages.client.spawn.SpawnPokemonPacket
import com.cobblemon.mod.common.net.messages.client.starter.OpenStarterUIPacket
import com.cobblemon.mod.common.net.messages.client.starter.SetClientPlayerDataPacket
import com.cobblemon.mod.common.net.messages.client.storage.RemoveClientPokemonPacket
import com.cobblemon.mod.common.net.messages.client.storage.SwapClientPokemonPacket
import com.cobblemon.mod.common.net.messages.client.storage.party.InitializePartyPacket
import com.cobblemon.mod.common.net.messages.client.storage.party.MoveClientPartyPokemonPacket
import com.cobblemon.mod.common.net.messages.client.storage.party.SetPartyPokemonPacket
import com.cobblemon.mod.common.net.messages.client.storage.party.SetPartyReferencePacket
import com.cobblemon.mod.common.net.messages.client.storage.pc.ClosePCPacket
import com.cobblemon.mod.common.net.messages.client.storage.pc.InitializePCPacket
import com.cobblemon.mod.common.net.messages.client.storage.pc.MoveClientPCPokemonPacket
import com.cobblemon.mod.common.net.messages.client.storage.pc.OpenPCPacket
import com.cobblemon.mod.common.net.messages.client.storage.pc.SetPCBoxPokemonPacket
import com.cobblemon.mod.common.net.messages.client.storage.pc.SetPCPokemonPacket
import com.cobblemon.mod.common.net.messages.client.toast.ToastPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeAcceptanceChangedPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeCancelledPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeCompletedPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeOfferExpiredPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeOfferNotificationPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeStartedPacket
import com.cobblemon.mod.common.net.messages.client.trade.TradeUpdatedPacket
import com.cobblemon.mod.common.net.messages.client.ui.InteractPokemonUIPacket
import com.cobblemon.mod.common.net.messages.client.ui.SummaryUIPacket
import com.cobblemon.mod.common.net.messages.server.BattleChallengePacket
import com.cobblemon.mod.common.net.messages.server.BenchMovePacket
import com.cobblemon.mod.common.net.messages.server.RequestMoveSwapPacket
import com.cobblemon.mod.common.net.messages.server.SelectStarterPacket
import com.cobblemon.mod.common.net.messages.server.SendOutPokemonPacket
import com.cobblemon.mod.common.net.messages.server.battle.BattleSelectActionsPacket
import com.cobblemon.mod.common.net.messages.server.callback.move.MoveSelectCancelledPacket
import com.cobblemon.mod.common.net.messages.server.callback.move.MoveSelectedPacket
import com.cobblemon.mod.common.net.messages.server.callback.party.PartyPokemonSelectedPacket
import com.cobblemon.mod.common.net.messages.server.callback.party.PartySelectCancelledPacket
import com.cobblemon.mod.common.net.messages.server.callback.partymove.PartyMoveSelectCancelledPacket
import com.cobblemon.mod.common.net.messages.server.callback.partymove.PartyPokemonMoveSelectedPacket
import com.cobblemon.mod.common.net.messages.server.pasture.PasturePokemonPacket
import com.cobblemon.mod.common.net.messages.server.pasture.UnpastureAllPokemonPacket
import com.cobblemon.mod.common.net.messages.server.pasture.UnpasturePokemonPacket
import com.cobblemon.mod.common.net.messages.server.pokemon.interact.InteractPokemonPacket
import com.cobblemon.mod.common.net.messages.server.pokemon.update.SetNicknamePacket
import com.cobblemon.mod.common.net.messages.server.pokemon.update.evolution.AcceptEvolutionPacket
import com.cobblemon.mod.common.net.messages.server.starter.RequestStarterScreenPacket
import com.cobblemon.mod.common.net.messages.server.storage.SwapPCPartyPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.party.MovePartyPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.party.ReleasePartyPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.party.SwapPartyPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.pc.MovePCPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.pc.MovePCPokemonToPartyPacket
import com.cobblemon.mod.common.net.messages.server.storage.pc.MovePartyPokemonToPCPacket
import com.cobblemon.mod.common.net.messages.server.storage.pc.ReleasePCPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.pc.SwapPCPokemonPacket
import com.cobblemon.mod.common.net.messages.server.storage.pc.UnlinkPlayerFromPCPacket
import com.cobblemon.mod.common.net.messages.server.trade.AcceptTradeRequestPacket
import com.cobblemon.mod.common.net.messages.server.trade.CancelTradePacket
import com.cobblemon.mod.common.net.messages.server.trade.ChangeTradeAcceptancePacket
import com.cobblemon.mod.common.net.messages.server.trade.OfferTradePacket
import com.cobblemon.mod.common.net.messages.server.trade.UpdateTradeOfferPacket
import com.cobblemon.mod.common.net.serverhandling.ChallengeHandler
import com.cobblemon.mod.common.net.serverhandling.battle.BattleSelectActionsHandler
import com.cobblemon.mod.common.net.serverhandling.callback.move.MoveSelectCancelledHandler
import com.cobblemon.mod.common.net.serverhandling.callback.move.MoveSelectedHandler
import com.cobblemon.mod.common.net.serverhandling.callback.party.PartyPokemonSelectedHandler
import com.cobblemon.mod.common.net.serverhandling.callback.party.PartySelectCancelledHandler
import com.cobblemon.mod.common.net.serverhandling.callback.partymove.PartyMoveSelectCancelledHandler
import com.cobblemon.mod.common.net.serverhandling.callback.partymove.PartyPokemonMoveSelectedHandler
import com.cobblemon.mod.common.net.serverhandling.evolution.AcceptEvolutionHandler
import com.cobblemon.mod.common.net.serverhandling.pasture.PasturePokemonHandler
import com.cobblemon.mod.common.net.serverhandling.pasture.UnpastureAllPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.pasture.UnpasturePokemonHandler
import com.cobblemon.mod.common.net.serverhandling.pokemon.interact.InteractPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.pokemon.update.SetNicknameHandler
import com.cobblemon.mod.common.net.serverhandling.starter.RequestStarterScreenHandler
import com.cobblemon.mod.common.net.serverhandling.starter.SelectStarterPacketHandler
import com.cobblemon.mod.common.net.serverhandling.storage.BenchMoveHandler
import com.cobblemon.mod.common.net.serverhandling.storage.RequestMoveSwapHandler
import com.cobblemon.mod.common.net.serverhandling.storage.SendOutPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.SwapPCPartyPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.party.MovePartyPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.party.ReleasePCPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.party.SwapPartyPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.pc.MovePCPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.pc.MovePCPokemonToPartyHandler
import com.cobblemon.mod.common.net.serverhandling.storage.pc.MovePartyPokemonToPCHandler
import com.cobblemon.mod.common.net.serverhandling.storage.pc.ReleasePartyPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.pc.SwapPCPokemonHandler
import com.cobblemon.mod.common.net.serverhandling.storage.pc.UnlinkPlayerFromPCHandler
import com.cobblemon.mod.common.net.serverhandling.trade.AcceptTradeRequestHandler
import com.cobblemon.mod.common.net.serverhandling.trade.CancelTradeHandler
import com.cobblemon.mod.common.net.serverhandling.trade.ChangeTradeAcceptanceHandler
import com.cobblemon.mod.common.net.serverhandling.trade.OfferTradeHandler
import com.cobblemon.mod.common.net.serverhandling.trade.UpdateTradeOfferHandler
import com.cobblemon.mod.common.util.server
import kotlin.reflect.KClass
import net.minecraft.network.PacketByteBuf
import net.minecraft.network.listener.ClientPlayPacketListener
import net.minecraft.network.packet.Packet
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
/**
* Registers Cobblemon network packets.
*
* This class also contains short functions for dispatching our packets to a player, all players, or to the entire server.
*
* @author Hiroku, Licious
* @since November 27th, 2021
*/
object CobblemonNetwork : NetworkManager {
fun ServerPlayerEntity.sendPacket(packet: NetworkPacket<*>) = sendPacketToPlayer(this, packet)
fun sendToServer(packet: NetworkPacket<*>) = this.sendPacketToServer(packet)
fun sendToAllPlayers(packet: NetworkPacket<*>) = sendPacketToPlayers(server()!!.playerManager.playerList, packet)
fun sendPacketToPlayers(players: Iterable<ServerPlayerEntity>, packet: NetworkPacket<*>) = players.forEach { sendPacketToPlayer(it, packet) }
override fun registerClientBound() {
// Pokemon Update Packets
this.createClientBound(FriendshipUpdatePacket.ID, FriendshipUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(MoveSetUpdatePacket.ID, MoveSetUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(NatureUpdatePacket.ID, NatureUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(ShinyUpdatePacket.ID, ShinyUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(SpeciesUpdatePacket.ID, SpeciesUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(NicknameUpdatePacket.ID, NicknameUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(HealthUpdatePacket.ID, HealthUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(ExperienceUpdatePacket.ID, ExperienceUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(StatusUpdatePacket.ID, StatusUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(CaughtBallUpdatePacket.ID, CaughtBallUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(BenchedMovesUpdatePacket.ID, BenchedMovesUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(GenderUpdatePacket.ID, GenderUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(AspectsUpdatePacket.ID, AspectsUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(AbilityUpdatePacket.ID, AbilityUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(EVsUpdatePacket.ID, EVsUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(IVsUpdatePacket.ID, IVsUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(HeldItemUpdatePacket.ID, HeldItemUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(PokemonStateUpdatePacket.ID, PokemonStateUpdatePacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(TetheringUpdatePacket.ID, TetheringUpdatePacket::decode, PokemonUpdatePacketHandler())
// Evolution start
this.createClientBound(AddEvolutionPacket.ID, AddEvolutionPacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(ClearEvolutionsPacket.ID, ClearEvolutionsPacket::decode, PokemonUpdatePacketHandler())
this.createClientBound(RemoveEvolutionPacket.ID, RemoveEvolutionPacket::decode, PokemonUpdatePacketHandler())
// Evolution End
// Storage Packets
this.createClientBound(InitializePartyPacket.ID, InitializePartyPacket::decode, InitializePartyHandler)
this.createClientBound(SetPartyPokemonPacket.ID, SetPartyPokemonPacket::decode, SetPartyPokemonHandler)
this.createClientBound(MoveClientPartyPokemonPacket.ID, MoveClientPartyPokemonPacket::decode, MoveClientPartyPokemonHandler)
this.createClientBound(SetPartyReferencePacket.ID, SetPartyReferencePacket::decode, SetPartyReferenceHandler)
this.createClientBound(InitializePCPacket.ID, InitializePCPacket::decode, InitializePCHandler)
this.createClientBound(MoveClientPCPokemonPacket.ID, MoveClientPCPokemonPacket::decode, MoveClientPCPokemonHandler)
this.createClientBound(SetPCBoxPokemonPacket.ID, SetPCBoxPokemonPacket::decode, SetPCBoxPokemonHandler)
this.createClientBound(SetPCPokemonPacket.ID, SetPCPokemonPacket::decode, SetPCPokemonHandler)
this.createClientBound(OpenPCPacket.ID, OpenPCPacket::decode, OpenPCHandler)
this.createClientBound(ClosePCPacket.ID, ClosePCPacket::decode, ClosePCHandler)
this.createClientBound(SwapClientPokemonPacket.ID, SwapClientPokemonPacket::decode, SwapClientPokemonHandler)
this.createClientBound(RemoveClientPokemonPacket.ID, RemoveClientPokemonPacket::decode, RemoveClientPokemonHandler)
// UI Packets
this.createClientBound(SummaryUIPacket.ID, SummaryUIPacket::decode, SummaryUIPacketHandler)
this.createClientBound(InteractPokemonUIPacket.ID, InteractPokemonUIPacket::decode, InteractPokemonUIPacketHandler)
// Starter packets
this.createClientBound(OpenStarterUIPacket.ID, OpenStarterUIPacket::decode, StarterUIPacketHandler)
this.createClientBound(SetClientPlayerDataPacket.ID, SetClientPlayerDataPacket::decode, SetClientPlayerDataHandler)
// Battle packets
this.createClientBound(BattleEndPacket.ID, BattleEndPacket::decode, BattleEndHandler)
this.createClientBound(BattleInitializePacket.ID, BattleInitializePacket::decode, BattleInitializeHandler)
this.createClientBound(BattleQueueRequestPacket.ID, BattleQueueRequestPacket::decode, BattleQueueRequestHandler)
this.createClientBound(BattleFaintPacket.ID, BattleFaintPacket::decode, BattleFaintHandler)
this.createClientBound(BattleMakeChoicePacket.ID, BattleMakeChoicePacket::decode, BattleMakeChoiceHandler)
this.createClientBound(BattleHealthChangePacket.ID, BattleHealthChangePacket::decode, BattleHealthChangeHandler)
this.createClientBound(BattleSetTeamPokemonPacket.ID, BattleSetTeamPokemonPacket::decode, BattleSetTeamPokemonHandler)
this.createClientBound(BattleSwitchPokemonPacket.ID, BattleSwitchPokemonPacket::decode, BattleSwitchPokemonHandler)
this.createClientBound(BattleMessagePacket.ID, BattleMessagePacket::decode, BattleMessageHandler)
this.createClientBound(BattleCaptureStartPacket.ID, BattleCaptureStartPacket::decode, BattleCaptureStartHandler)
this.createClientBound(BattleCaptureEndPacket.ID, BattleCaptureEndPacket::decode, BattleCaptureEndHandler)
this.createClientBound(BattleCaptureShakePacket.ID, BattleCaptureShakePacket::decode, BattleCaptureShakeHandler)
this.createClientBound(BattleApplyPassResponsePacket.ID, BattleApplyPassResponsePacket::decode, BattleApplyPassResponseHandler)
this.createClientBound(BattleChallengeNotificationPacket.ID, BattleChallengeNotificationPacket::decode, BattleChallengeNotificationHandler)
this.createClientBound(BattleUpdateTeamPokemonPacket.ID, BattleUpdateTeamPokemonPacket::decode, BattleUpdateTeamPokemonHandler)
this.createClientBound(BattlePersistentStatusPacket.ID, BattlePersistentStatusPacket::decode, BattlePersistentStatusHandler)
this.createClientBound(BattleMadeInvalidChoicePacket.ID, BattleMadeInvalidChoicePacket::decode, BattleMadeInvalidChoiceHandler)
this.createClientBound(BattleMusicPacket.ID, BattleMusicPacket::decode, BattleMusicHandler)
this.createClientBound(BattleChallengeExpiredPacket.ID, BattleChallengeExpiredPacket::decode, BattleChallengeExpiredHandler)
// Settings packets
this.createClientBound(ServerSettingsPacket.ID, ServerSettingsPacket::decode, ServerSettingsPacketHandler)
// Data registries
this.createClientBound(AbilityRegistrySyncPacket.ID, AbilityRegistrySyncPacket::decode, DataRegistrySyncPacketHandler())
this.createClientBound(MovesRegistrySyncPacket.ID, MovesRegistrySyncPacket::decode, DataRegistrySyncPacketHandler())
this.createClientBound(SpeciesRegistrySyncPacket.ID, SpeciesRegistrySyncPacket::decode, DataRegistrySyncPacketHandler())
this.createClientBound(PropertiesCompletionRegistrySyncPacket.ID, PropertiesCompletionRegistrySyncPacket::decode, DataRegistrySyncPacketHandler())
this.createClientBound(UnlockReloadPacket.ID, UnlockReloadPacket::decode, UnlockReloadPacketHandler)
// Effects
this.createClientBound(SpawnSnowstormParticlePacket.ID, SpawnSnowstormParticlePacket::decode, SpawnSnowstormParticleHandler)
// Hax
this.createClientBound(UnvalidatedPlaySoundS2CPacket.ID, UnvalidatedPlaySoundS2CPacket::decode, UnvalidatedPlaySoundS2CPacketHandler)
this.createClientBound(SpawnPokemonPacket.ID, SpawnPokemonPacket::decode, SpawnExtraDataEntityHandler())
this.createClientBound(SpawnPokeballPacket.ID, SpawnPokeballPacket::decode, SpawnExtraDataEntityHandler())
this.createClientBound(ToastPacket.ID, ToastPacket::decode, ToastPacketHandler)
// Trade packets
this.createClientBound(TradeAcceptanceChangedPacket.ID, TradeAcceptanceChangedPacket::decode, TradeAcceptanceChangedHandler)
this.createClientBound(TradeCancelledPacket.ID, TradeCancelledPacket::decode, TradeCancelledHandler)
this.createClientBound(TradeCompletedPacket.ID, TradeCompletedPacket::decode, TradeCompletedHandler)
this.createClientBound(TradeUpdatedPacket.ID, TradeUpdatedPacket::decode, TradeUpdatedHandler)
this.createClientBound(TradeOfferNotificationPacket.ID, TradeOfferNotificationPacket::decode, TradeOfferNotificationHandler)
this.createClientBound(TradeOfferExpiredPacket.ID, TradeOfferExpiredPacket::decode, TradeOfferExpiredHandler)
this.createClientBound(TradeStartedPacket.ID, TradeStartedPacket::decode, TradeStartedHandler)
// Pasture
this.createClientBound(OpenPasturePacket.ID, OpenPasturePacket::decode, OpenPastureHandler)
this.createClientBound(ClosePasturePacket.ID, ClosePasturePacket::decode, ClosePastureHandler)
this.createClientBound(PokemonPasturedPacket.ID, PokemonPasturedPacket::decode, PokemonPasturedHandler)
this.createClientBound(PokemonUnpasturedPacket.ID, PokemonUnpasturedPacket::decode, PokemonUnpasturedHandler)
// Behaviours
this.createClientBound(PokemonCryPacket.ID, PokemonCryPacket::decode, PokemonCryHandler)
// Move select packets
this.createClientBound(OpenMoveCallbackPacket.ID, OpenMoveCallbackPacket::decode, OpenMoveCallbackHandler)
// Party select packets
this.createClientBound(OpenPartyCallbackPacket.ID, OpenPartyCallbackPacket::decode, OpenPartyCallbackHandler)
// Party move select packets
this.createClientBound(OpenPartyMoveCallbackPacket.ID, OpenPartyMoveCallbackPacket::decode, OpenPartyMoveCallbackHandler)
}
override fun registerServerBound() {
// Pokemon Update Packets
this.createServerBound(SetNicknamePacket.ID, SetNicknamePacket::decode, SetNicknameHandler)
// Evolution Packets
this.createServerBound(AcceptEvolutionPacket.ID, AcceptEvolutionPacket::decode, AcceptEvolutionHandler)
// Interaction Packets
this.createServerBound(InteractPokemonPacket.ID, InteractPokemonPacket::decode, InteractPokemonHandler)
// Storage Packets
this.createServerBound(SendOutPokemonPacket.ID, SendOutPokemonPacket::decode, SendOutPokemonHandler)
this.createServerBound(RequestMoveSwapPacket.ID, RequestMoveSwapPacket::decode, RequestMoveSwapHandler)
this.createServerBound(BenchMovePacket.ID, BenchMovePacket::decode, BenchMoveHandler)
this.createServerBound(BattleChallengePacket.ID, BattleChallengePacket::decode, ChallengeHandler)
this.createServerBound(MovePCPokemonToPartyPacket.ID, MovePCPokemonToPartyPacket::decode, MovePCPokemonToPartyHandler)
this.createServerBound(MovePartyPokemonToPCPacket.ID, MovePartyPokemonToPCPacket::decode, MovePartyPokemonToPCHandler)
this.createServerBound(ReleasePartyPokemonPacket.ID, ReleasePartyPokemonPacket::decode, ReleasePartyPokemonHandler)
this.createServerBound(ReleasePCPokemonPacket.ID, ReleasePCPokemonPacket::decode, ReleasePCPokemonHandler)
this.createServerBound(UnlinkPlayerFromPCPacket.ID, UnlinkPlayerFromPCPacket::decode, UnlinkPlayerFromPCHandler)
// Starter packets
this.createServerBound(SelectStarterPacket.ID, SelectStarterPacket::decode, SelectStarterPacketHandler)
this.createServerBound(RequestStarterScreenPacket.ID, RequestStarterScreenPacket::decode, RequestStarterScreenHandler)
this.createServerBound(SwapPCPokemonPacket.ID, SwapPCPokemonPacket::decode, SwapPCPokemonHandler)
this.createServerBound(SwapPartyPokemonPacket.ID, SwapPartyPokemonPacket::decode, SwapPartyPokemonHandler)
this.createServerBound(MovePCPokemonPacket.ID, MovePCPokemonPacket::decode, MovePCPokemonHandler)
this.createServerBound(MovePartyPokemonPacket.ID, MovePartyPokemonPacket::decode, MovePartyPokemonHandler)
this.createServerBound(SwapPCPartyPokemonPacket.ID, SwapPCPartyPokemonPacket::decode, SwapPCPartyPokemonHandler)
// Battle packets
this.createServerBound(BattleSelectActionsPacket.ID, BattleSelectActionsPacket::decode, BattleSelectActionsHandler)
// Trade
this.createServerBound(AcceptTradeRequestPacket.ID, AcceptTradeRequestPacket::decode, AcceptTradeRequestHandler)
this.createServerBound(CancelTradePacket.ID, CancelTradePacket::decode, CancelTradeHandler)
this.createServerBound(ChangeTradeAcceptancePacket.ID, ChangeTradeAcceptancePacket::decode, ChangeTradeAcceptanceHandler)
this.createServerBound(OfferTradePacket.ID, OfferTradePacket::decode, OfferTradeHandler)
this.createServerBound(UpdateTradeOfferPacket.ID, UpdateTradeOfferPacket::decode, UpdateTradeOfferHandler)
// Pasture
this.createServerBound(PasturePokemonPacket.ID, PasturePokemonPacket::decode, PasturePokemonHandler)
this.createServerBound(UnpasturePokemonPacket.ID, UnpasturePokemonPacket::decode, UnpasturePokemonHandler)
this.createServerBound(UnpastureAllPokemonPacket.ID, UnpastureAllPokemonPacket::decode, UnpastureAllPokemonHandler)
// Move select packets
this.createServerBound(MoveSelectedPacket.ID, MoveSelectedPacket::decode, MoveSelectedHandler)
this.createServerBound(MoveSelectCancelledPacket.ID, MoveSelectCancelledPacket::decode, MoveSelectCancelledHandler)
// Party select packets
this.createServerBound(PartyPokemonSelectedPacket.ID, PartyPokemonSelectedPacket::decode, PartyPokemonSelectedHandler)
this.createServerBound(PartySelectCancelledPacket.ID, PartySelectCancelledPacket::decode, PartySelectCancelledHandler)
// Party move select packets
this.createServerBound(PartyPokemonMoveSelectedPacket.ID, PartyPokemonMoveSelectedPacket::decode, PartyPokemonMoveSelectedHandler)
this.createServerBound(PartyMoveSelectCancelledPacket.ID, PartyMoveSelectCancelledPacket::decode, PartyMoveSelectCancelledHandler)
}
private inline fun <reified T : NetworkPacket<T>> createClientBound(identifier: Identifier, noinline decoder: (PacketByteBuf) -> T, handler: ClientNetworkPacketHandler<T>) {
Cobblemon.implementation.networkManager.createClientBound(identifier, T::class, { message, buffer -> message.encode(buffer) }, decoder, handler)
}
private inline fun <reified T : NetworkPacket<T>> createServerBound(identifier: Identifier, noinline decoder: (PacketByteBuf) -> T, handler: ServerNetworkPacketHandler<T>) {
Cobblemon.implementation.networkManager.createServerBound(identifier, T::class, { message, buffer -> message.encode(buffer) }, decoder, handler)
}
override fun <T : NetworkPacket<T>> createClientBound(
identifier: Identifier,
kClass: KClass<T>,
encoder: (T, PacketByteBuf) -> Unit,
decoder: (PacketByteBuf) -> T,
handler: ClientNetworkPacketHandler<T>
) {
Cobblemon.implementation.networkManager.createClientBound(identifier, kClass, encoder, decoder, handler)
}
override fun <T : NetworkPacket<T>> createServerBound(
identifier: Identifier,
kClass: KClass<T>,
encoder: (T, PacketByteBuf) -> Unit,
decoder: (PacketByteBuf) -> T,
handler: ServerNetworkPacketHandler<T>
) {
Cobblemon.implementation.networkManager.createServerBound(identifier, kClass, encoder, decoder, handler)
}
override fun sendPacketToPlayer(player: ServerPlayerEntity, packet: NetworkPacket<*>) = Cobblemon.implementation.networkManager.sendPacketToPlayer(player, packet)
override fun sendPacketToServer(packet: NetworkPacket<*>) = Cobblemon.implementation.networkManager.sendPacketToServer(packet)
override fun <T : NetworkPacket<*>> asVanillaClientBound(packet: T): Packet<ClientPlayPacketListener> = Cobblemon.implementation.networkManager.asVanillaClientBound(packet)
}
@@ -0,0 +1,83 @@
/*
* 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
import com.cobblemon.mod.common.platform.PlatformRegistry
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.registry.Registries
import net.minecraft.registry.Registry
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.RegistryKeys
import net.minecraft.sound.SoundEvent
object CobblemonSounds : PlatformRegistry<Registry<SoundEvent>, RegistryKey<Registry<SoundEvent>>, SoundEvent>() {
override val registry: Registry<SoundEvent> = Registries.SOUND_EVENT
override val registryKey: RegistryKey<Registry<SoundEvent>> = RegistryKeys.SOUND_EVENT
@JvmField
val GUI_CLICK = this.create("gui.click")
@JvmField
val PC_ON = this.create("pc.on")
@JvmField
val PC_OFF = this.create("pc.off")
@JvmField
val PC_GRAB = this.create("pc.grab")
@JvmField
val PC_DROP = this.create("pc.drop")
@JvmField
val PC_RELEASE = this.create("pc.release")
@JvmField
val PC_CLICK = this.create("pc.click")
@JvmField
val HEALING_MACHINE_ACTIVE = this.create("healing_machine.active")
@JvmField
val POKE_BALL_CAPTURE_STARTED = this.create("poke_ball.capture_started")
@JvmField
val POKE_BALL_CAPTURE_SUCCEEDED = this.create("poke_ball.capture_succeeded")
@JvmField
val POKE_BALL_SHAKE = this.create("poke_ball.shake")
@JvmField
val POKE_BALL_OPEN = this.create("poke_ball.open")
@JvmField
val POKE_BALL_HIT = this.create("poke_ball.hit")
@JvmField
val POKE_BALL_SEND_OUT = this.create("poke_ball.send_out")
@JvmField
val POKE_BALL_RECALL = this.create("poke_ball.recall")
@JvmField
val ITEM_USE = this.create("item.use")
@JvmField
val CAN_EVOLVE = this.create("pokemon.can_evolve")
@JvmField
val EVOLVING = this.create("pokemon.evolving")
@JvmField
val PVN_BATTLE = this.create("battle.pvn.default")
@JvmField
val PVP_BATTLE = this.create("battle.pvp.default")
@JvmField
val PVW_BATTLE = this.create("battle.pvw.default")
@JvmField
val MEDICINE_HERB_USE = this.create("medicine_herb.use")
@JvmField
val MEDICINE_LIQUID_USE = this.create("medicine_liquid.use")
@JvmField
val MEDICINE_PILLS_USE = this.create("medicine_pills.use")
@JvmField
val MEDICINE_SPRAY_USE = this.create("medicine_spray.use")
private fun create(name: String): SoundEvent = this.create(name, SoundEvent.of(cobblemonResource(name)))
}
@@ -0,0 +1,92 @@
/*
* 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
import net.minecraft.registry.Registries
import net.minecraft.village.TradeOffers
import net.minecraft.village.VillagerData
import net.minecraft.village.VillagerProfession
/**
* A generator for various trade offers in the mod.
*/
object CobblemonTradeOffers {
/**
* Creates a list of all Cobblemon trade offers for every villager profession.
*
* @return The resulting list.
*/
fun tradeOffersForAll(): List<VillagerTradeOffer> = Registries.VILLAGER_PROFESSION.map(this::tradeOffersFor).flatten()
/**
* Creates a list of all Cobblemon trade offers for the given [VillagerProfession].
*
* @param profession The [VillagerProfession] being queried.
* @return The resulting list.
*/
fun tradeOffersFor(profession: VillagerProfession): List<VillagerTradeOffer> = when (profession) {
VillagerProfession.FARMER -> listOf(VillagerTradeOffer(VillagerProfession.FARMER, 3, listOf(TradeOffers.SellItemFactory(CobblemonItems.VIVICHOKE_SEEDS, 32, 1, 1, 6))))
else -> emptyList()
}
/**
* Creates a list of all Cobblemon trade offers for the Wandering trader.
*
* @return The resulting list.
*/
fun resolveWanderingTradeOffers(): List<WandererTradeOffer> = listOf(
WandererTradeOffer(false, listOf(TradeOffers.SellItemFactory(CobblemonItems.VIVICHOKE_SEEDS, 32, 1, 1, 6)))
)
/**
* Represents a trade offer that can be attached to a villager or a wandering trader.
*/
interface TradeOfferHolder {
/**
* The list of the possible [TradeOffers.Factory].
*/
val tradeOffers: List<TradeOffers.Factory>
}
/**
* Represents a trade offer from a villager.
*
* @property profession The target profession for this trade.
* @property requiredLevel The level required must be a possible level.
* @property tradeOffers The list of the possible [TradeOffers.Factory].
*
* @throws IllegalArgumentException If the [requiredLevel] is not within the bounds of [VillagerData.MIN_LEVEL] & [VillagerData.MAX_LEVEL].
*/
data class VillagerTradeOffer(
val profession: VillagerProfession,
val requiredLevel: Int,
override val tradeOffers: List<TradeOffers.Factory>
) : TradeOfferHolder {
init {
if (this.requiredLevel < VillagerData.MIN_LEVEL || this.requiredLevel > VillagerData.MAX_LEVEL) {
throw IllegalArgumentException("${this.requiredLevel} is not a valid level for a villager trade accepted range is ${VillagerData.MIN_LEVEL}-${VillagerData.MAX_LEVEL}")
}
}
}
/**
* Represents a trade offer from a wandering trader.
*
* @property isRareTrade If this is rare or common trade.
* @property tradeOffers The list of the possible [TradeOffers.Factory].
*/
data class WandererTradeOffer(
val isRareTrade: Boolean,
override val tradeOffers: List<TradeOffers.Factory>
) : TradeOfferHolder
}
@@ -0,0 +1,76 @@
/*
* 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.advancement
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.advancement.criterion.*
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.advancement.criterion.Criterion
/**
* Contains all the advancement criteria in Cobblemon.
*
* @author Licious
* @since October 26th, 2022
*/
object CobblemonCriteria {
val PICK_STARTER = this.create(
SimpleCriterionTrigger(
cobblemonResource("pick_starter"),
PickStarterCriterionCondition::class.java
)
)
val CATCH_POKEMON = this.create(
SimpleCriterionTrigger(
cobblemonResource("catch_pokemon"),
CaughtPokemonCriterionCondition::class.java
)
)
val CATCH_SHINY_POKEMON = this.create(
SimpleCriterionTrigger(
cobblemonResource("catch_shiny_pokemon"),
SimpleCountableCriterionCondition::class.java
)
)
val EGG_HATCH = this.create(
SimpleCriterionTrigger(
cobblemonResource("eggs_hatched"),
SimpleCountableCriterionCondition::class.java
)
)
val EVOLVE_POKEMON = this.create(
SimpleCriterionTrigger(
cobblemonResource("pokemon_evolved"),
SimpleCountableCriterionCondition::class.java
)
)
val WIN_BATTLE = this.create(
SimpleCriterionTrigger(
cobblemonResource("battles_won"),
SimpleCountableCriterionCondition::class.java
)
)
val DEFEAT_POKEMON = this.create(
SimpleCriterionTrigger(
cobblemonResource("pokemon_defeated"),
SimpleCountableCriterionCondition::class.java
)
)
val COLLECT_ASPECT = this.create(
AspectCriterionTrigger(
cobblemonResource("aspects_collected"),
AspectCriterionCondition::class.java
)
)
private fun <T : Criterion<*>> create(criteria: T): T = Cobblemon.implementation.registerCriteria(criteria)
}
@@ -0,0 +1,45 @@
/*
* 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.advancement.criterion
import com.cobblemon.mod.common.util.asIdentifierDefaultingNamespace
import com.google.gson.JsonArray
import com.google.gson.JsonObject
import net.minecraft.predicate.entity.LootContextPredicate
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
open class AspectCriterionTrigger(identifier: Identifier, criterionClass: Class<AspectCriterionCondition>) : SimpleCriterionTrigger<MutableMap<Identifier, MutableSet<String>>, AspectCriterionCondition>(identifier, criterionClass) {
}
class AspectCriterionCondition(id: Identifier, predicate: LootContextPredicate) : SimpleCriterionCondition<MutableMap<Identifier, MutableSet<String>>>(id, predicate) {
var pokemon = Identifier("cobblemon:pikachu")
var aspects = mutableListOf<String>()
override fun toJson(json: JsonObject) {
json.add("aspects", JsonArray(aspects.size).also {
aspects.forEach { aspect -> it.add(aspect) }
})
json.addProperty("pokemon", pokemon.toString())
}
override fun fromJson(json: JsonObject) {
aspects.clear()
json.getAsJsonArray("aspects").forEach { element ->
aspects.add(element.asString)
}
pokemon = json.get("pokemon").asString.asIdentifierDefaultingNamespace()
}
override fun matches(player: ServerPlayerEntity, context: MutableMap<Identifier, MutableSet<String>>): Boolean {
val caughtAspects = context.getOrDefault(pokemon, mutableSetOf())
return this.aspects.all { it in caughtAspects }
}
}
@@ -0,0 +1,39 @@
/*
* 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.advancement.criterion
import com.google.gson.JsonObject
import net.minecraft.predicate.entity.LootContextPredicate
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
/**
* A context that is used when you require a [CountableContext] along with some type string.
*
* @author Hiroku
* @since November 4th, 2022
*/
open class CountablePokemonTypeContext(times: Int, var type: String) : CountableContext(times)
class CaughtPokemonCriterionCondition(id: Identifier, predicate: LootContextPredicate) : CountableCriterionCondition<CountablePokemonTypeContext>(id, predicate) {
var type = "any"
override fun toJson(json: JsonObject) {
super.toJson(json)
json.addProperty("type", type)
}
override fun fromJson(json: JsonObject) {
super.fromJson(json)
type = json.get("type")?.asString ?: "any"
}
override fun matches(player: ServerPlayerEntity, context: CountablePokemonTypeContext): Boolean {
return super.matches(player, context) && context.type == type
}
}
@@ -0,0 +1,55 @@
/*
* 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.advancement.criterion
import com.google.gson.JsonObject
import net.minecraft.predicate.entity.LootContextPredicate
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
/**
* A type of advancement criterion condition that requires some number of completions. This can be extended to add
* more conditions than just the count.
*
* @author Hiroku
* @since November 4th, 2022
*/
abstract class CountableCriterionCondition<T : CountableContext>(id: Identifier, predicate: LootContextPredicate) : SimpleCriterionCondition<T>(id, predicate) {
var count = 0
override fun fromJson(json: JsonObject) {
count = json.get("count")?.asInt ?: 0
}
override fun toJson(json: JsonObject) {
json.addProperty("count", count)
}
override fun matches(player: ServerPlayerEntity, context: T) = context.times >= count
}
/**
* A concrete subclass of [CountableCriterionCondition] so that you can have advancements that really just need the
* count and nothing else.
*
* This is just a quirk of using generics like this, don't worry about it. The criterion conditions that get used must
* not be generic typed.
*
* @author Hiroku
* @since November 4th, 2022
*/
class SimpleCountableCriterionCondition(id: Identifier, predicate: LootContextPredicate) : CountableCriterionCondition<CountableContext>(id, predicate)
fun SimpleCriterionTrigger<CountableContext, SimpleCountableCriterionCondition>.trigger(player: ServerPlayerEntity, times: Int) = trigger(player, CountableContext(times))
/**
* Some type of context that has a count associated with it, representing how many times the trigger has occurred.
*
* @author Hiroku
* @since November 4th, 2022
*/
open class CountableContext(var times: Int)
@@ -0,0 +1,35 @@
/*
* 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.advancement.criterion
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.pokemon.Pokemon
import com.google.gson.JsonObject
import net.minecraft.predicate.entity.LootContextPredicate
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
/**
* A criteria that is triggered when a player picks a starter.
*
* @author Licious, Hiroku
* @since October 26th, 2022
*/
class PickStarterCriterionCondition(id: Identifier, predicate: LootContextPredicate) : SimpleCriterionCondition<Pokemon>(id, predicate) {
var properties = PokemonProperties()
override fun toJson(json: JsonObject) {
json.addProperty("properties", properties.originalString)
}
override fun fromJson(json: JsonObject) {
properties = PokemonProperties.parse(json.get("properties")?.asString ?: "")
}
override fun matches(player: ServerPlayerEntity, context: Pokemon) = properties.matches(context)
}
@@ -0,0 +1,68 @@
/*
* 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.advancement.criterion
import com.google.gson.JsonObject
import net.minecraft.advancement.criterion.AbstractCriterion
import net.minecraft.advancement.criterion.AbstractCriterionConditions
import net.minecraft.predicate.entity.AdvancementEntityPredicateDeserializer
import net.minecraft.predicate.entity.AdvancementEntityPredicateSerializer
import net.minecraft.predicate.entity.LootContextPredicate
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.util.Identifier
/**
* A wrapping around the AbstractCriterion system of Minecraft. This allows the same base class to be used
* for all advancements by wrapping the advancement-specific contextual data in the generic T, the instance of
* the advancement conditions in the generic C, and allowing the condition to do all serialization, deserialization,
* and matching of context against conditions.
*
* @author Hiroku
* @since November 4th, 2022
*/
open class SimpleCriterionTrigger<T, C : SimpleCriterionCondition<T>>(
val _id: Identifier,
val criterionClass: Class<C>
) : AbstractCriterion<C>() {
override fun getId() = _id
override fun conditionsFromJson(
obj: JsonObject,
playerPredicate: LootContextPredicate,
predicateDeserializer: AdvancementEntityPredicateDeserializer
): C {
val instance = criterionClass.getConstructor(Identifier::class.java, LootContextPredicate::class.java).newInstance(id, playerPredicate)
instance.fromJson(obj)
return instance
}
fun trigger(player: ServerPlayerEntity, context: T) = this.trigger(player) { it.matches(player, context) }
}
/**
* The base of the conditions for Cobblemon's wrapping around Minecraft advancements. This is parameterized by whatever
* contextual information this condition needs to be checked, and must handle serialization and deserialization from JSON.
*
* @author Hiroku
* @since November 4th, 2022
*/
abstract class SimpleCriterionCondition<T>(
id: Identifier,
playerPredicate: LootContextPredicate
): AbstractCriterionConditions(id, playerPredicate) {
override fun toJson(predicateSerializer: AdvancementEntityPredicateSerializer): JsonObject {
val json = super.toJson(predicateSerializer)
toJson(json)
return json
}
abstract fun toJson(json: JsonObject)
abstract fun fromJson(json: JsonObject)
abstract fun matches(player: ServerPlayerEntity, context: T): Boolean
}
@@ -0,0 +1,58 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api
/**
* A curve of experience that maps to levels. This is generally a discretized polynomial equation
* that takes a level as x and returns the amount of experience required to reach it as y.
*
* Some curves are too complicated to invert. Implementations can use [CachedLevelThresholds] to
* workaround this issue.
*
* @author Hiroku
* @since March 21st, 2022
*/
interface LevelCurve {
fun getExperience(level: Int): Int
fun getLevel(experience: Int): Int
}
/**
* A collection of thresholds for what levels require in terms of
* experience. This is a caching mechanism so that a complicated
* experience-to-level polynomial can be inverted.
*
* @author Hiroku
* @since March 21st, 2022
*/
class CachedLevelThresholds(
val levelLimit: Int = 1000,
val experienceToLevel: (Int) -> Int
) {
val savedThresholds = mutableListOf<Int>()
fun getLevel(experience: Int): Int {
var level = 1
while (level <= savedThresholds.size) {
val threshold = savedThresholds[level - 1]
if (experience < threshold) {
return level - 1
}
level++
}
while (level < levelLimit) {
val threshold = experienceToLevel(level)
savedThresholds.add(threshold)
if (experience < threshold) {
return level - 1
}
level++
}
return 1
}
}
@@ -0,0 +1,32 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api
import com.cobblemon.mod.common.Cobblemon
/**
* Something that depends on some installed mod conditions.
*
* @author Hiroku
* @since July 8th, 2022
*/
interface ModDependant {
var neededInstalledMods: List<String>
var neededUninstalledMods: List<String>
fun isModDependencySatisfied(): Boolean {
return if (neededInstalledMods.isNotEmpty() && neededInstalledMods.any { !Cobblemon.implementation.isModInstalled(it) }) {
false
} else if (neededUninstalledMods.isNotEmpty() && neededUninstalledMods.any { Cobblemon.implementation.isModInstalled(it) }) {
false
} else {
true
}
}
}
@@ -0,0 +1,59 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api
/**
* Functions like a list which is ordered by [Priority]. Within each category of priority,
* order is first-come-first-served. Having the same value in multiple priorities is possible
* but can cause stickiness.
*
* @author Hiroku
* @since February 18th, 2022
*/
open class PrioritizedList<T> : Iterable<T> {
protected val priorityMap = mutableMapOf<Priority, MutableList<T>>()
// Please don't change arraylist, we need insertion order
protected val ordered = arrayListOf<T>()
val mapping: Map<Priority, List<T>>
get() = priorityMap.toMap()
private fun reorder() {
ordered.clear()
Priority.values().forEach {
priorityMap[it]?.let { ordered.addAll(it) }
}
}
fun add(priority: Priority, value: T) {
// Please don't change arraylist, we need insertion order
priorityMap.putIfAbsent(priority, arrayListOf())
priorityMap[priority]?.add(value)
reorder()
}
fun remove(value: T) {
priorityMap.values.forEach { it.remove(value) }
reorder()
}
fun remove(priority: Priority, value: T) {
priorityMap[priority]?.remove(value)
reorder()
}
fun clear() {
priorityMap.clear()
ordered.clear()
}
fun isEmpty() = ordered.isEmpty()
override fun iterator() = ordered.iterator()
}
@@ -0,0 +1,17 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api
enum class Priority {
HIGHEST,
HIGH,
NORMAL,
LOW,
LOWEST
}
@@ -0,0 +1,24 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api
import com.cobblemon.mod.common.pokemon.feature.CobblemonSeason
import net.minecraft.util.math.BlockPos
import net.minecraft.world.WorldAccess
/**
* Figures out what season it is at a particular position. Season is just a general approximation
* used for things like Deerling variations.
*
* @author Hiroku
* @since November 25th, 2022
*/
fun interface SeasonResolver {
operator fun invoke(world: WorldAccess, pos: BlockPos): CobblemonSeason?
}
@@ -0,0 +1,70 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.abilities
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.api.data.DataRegistry
import com.cobblemon.mod.common.api.reactive.SimpleObservable
import com.cobblemon.mod.common.battles.runner.ShowdownService
import com.cobblemon.mod.common.net.messages.client.data.AbilityRegistrySyncPacket
import com.cobblemon.mod.common.pokemon.abilities.HiddenAbilityType
import com.cobblemon.mod.common.util.cobblemonResource
import net.minecraft.resource.ResourceManager
import net.minecraft.resource.ResourceType
import net.minecraft.server.network.ServerPlayerEntity
/**
* Registry for all known Abilities
*/
object Abilities : DataRegistry {
override val id = cobblemonResource("abilities")
override val type = ResourceType.SERVER_DATA
override val observable = SimpleObservable<Abilities>()
val DUMMY = AbilityTemplate(name = "dummy")
private val abilityMap = mutableMapOf<String, AbilityTemplate>()
override fun reload(manager: ResourceManager) {
PotentialAbility.types.clear()
PotentialAbility.types.add(CommonAbilityType)
PotentialAbility.types.add(HiddenAbilityType)
this.abilityMap.clear()
val abilitiesJson = ShowdownService.service.getAbilityIds()
for (i in 0 until abilitiesJson.size()) {
val id = abilitiesJson[i].asString
val ability = AbilityTemplate(id)
this.register(ability)
}
Cobblemon.LOGGER.info("Loaded {} abilities", this.abilityMap.size)
this.observable.emit(this)
}
override fun sync(player: ServerPlayerEntity) {
AbilityRegistrySyncPacket(all()).sendToPlayer(player)
}
fun register(ability: AbilityTemplate): AbilityTemplate {
this.abilityMap[ability.name.lowercase()] = ability
return ability
}
fun all() = this.abilityMap.values.toList()
fun first() = this.abilityMap.values.first()
fun get(name: String) = abilityMap[name.lowercase()]
fun getOrException(name: String) = get(name) ?: throw IllegalArgumentException("Unable to find ability of name: $name")
fun count() = this.abilityMap.size
internal fun receiveSyncPacket(abilities: Collection<AbilityTemplate>) {
this.abilityMap.clear()
abilities.forEach { ability -> this.register(ability) }
}
}
@@ -0,0 +1,80 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.abilities
import com.cobblemon.mod.common.api.Priority
import com.cobblemon.mod.common.util.DataKeys
import com.google.gson.JsonObject
import net.minecraft.nbt.NbtCompound
/**
* Representing an Ability with all its attributes
*
* Can be extended to allow for custom attributes (be sure to overwrite the load and save methods)
*
* @author Qu
* @since January 9th, 2022
*/
open class Ability internal constructor(var template: AbilityTemplate, var forced: Boolean) {
val name: String
get() = template.name
val displayName: String
get() = template.displayName
val description: String
get() = template.description
/**
* This represents the last known index of this backing ability in the species data.
* If -1 the ability will attempt to find the correct index or reroll itself, this is done in order to be compatible with existing data
* The value can be mutated however this is not recommended by API users.
*/
var index: Int = -1
/**
* The last known priority of this ability in the species data.
* The value can be mutated however this is not recommended by API users.
*/
var priority = Priority.LOWEST
open fun saveToNBT(nbt: NbtCompound): NbtCompound {
nbt.putString(DataKeys.POKEMON_ABILITY_NAME, name)
nbt.putBoolean(DataKeys.POKEMON_ABILITY_FORCED, forced)
nbt.putInt(DataKeys.POKEMON_ABILITY_INDEX, index)
nbt.putString(DataKeys.POKEMON_ABILITY_PRIORITY, priority.name)
return nbt
}
open fun saveToJSON(json: JsonObject): JsonObject {
json.addProperty(DataKeys.POKEMON_ABILITY_NAME, name)
json.addProperty(DataKeys.POKEMON_ABILITY_FORCED, forced)
json.addProperty(DataKeys.POKEMON_ABILITY_INDEX, index)
json.addProperty(DataKeys.POKEMON_ABILITY_PRIORITY, priority.name)
return json
}
open fun loadFromNBT(nbt: NbtCompound): Ability {
forced = nbt.getBoolean(DataKeys.POKEMON_ABILITY_FORCED)
if (nbt.contains(DataKeys.POKEMON_ABILITY_INDEX) && nbt.contains(DataKeys.POKEMON_ABILITY_PRIORITY)) {
this.index = nbt.getInt(DataKeys.POKEMON_ABILITY_INDEX)
this.priority = Priority.valueOf(nbt.getString(DataKeys.POKEMON_ABILITY_PRIORITY))
}
return this
}
open fun loadFromJSON(json: JsonObject): Ability {
forced = json.get(DataKeys.POKEMON_ABILITY_FORCED)?.asBoolean ?: false
if (json.has(DataKeys.POKEMON_ABILITY_INDEX) && json.has(DataKeys.POKEMON_ABILITY_PRIORITY)) {
this.index = json.get(DataKeys.POKEMON_ABILITY_INDEX).asInt
this.priority = Priority.valueOf(json.get(DataKeys.POKEMON_ABILITY_PRIORITY).asString)
}
return this
}
}
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.abilities
import com.cobblemon.mod.common.Cobblemon.LOGGER
import com.cobblemon.mod.common.api.PrioritizedList
import com.cobblemon.mod.common.api.Priority
import com.cobblemon.mod.common.pokemon.Species
/**
* A pool of potential abilities, as a [PrioritizedList]. The added logic of this subclass
* is that it has selection logic. Given a species and a set of aspects, it will go through
* each priority group, and if it can then it will pick from that group and return it.
*
* @author Hiroku
* @since July 28th, 2022
*/
open class AbilityPool : PrioritizedList<PotentialAbility>() {
fun select(species: Species, aspects: Set<String>): Pair<Ability, Priority> {
for (priority in Priority.values()) {
val potentialAbilities = priorityMap[priority]?.filter { it.isSatisfiedBy(aspects) } ?: continue
if (potentialAbilities.isNotEmpty()) {
return potentialAbilities.random().template.create() to priority
}
}
LOGGER.error("Unable to select an ability from the pool for $species and aspects: ${aspects.joinToString()}")
LOGGER.error("Usually this happens when a client is doing logic it shouldn't. Please show this to the Cobblemon developers!")
Exception().printStackTrace()
return Abilities.first().create() to Priority.LOWEST
}
}
@@ -0,0 +1,45 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.abilities
import com.google.gson.JsonObject
import net.minecraft.nbt.NbtCompound
/**
* This represents the base of an Ability.
* To build an Ability you MUST use its template.
*
* @param name: The English name used to load / find it (spaces -> _)
*/
class AbilityTemplate(
val name: String = "",
var builder: (AbilityTemplate, forced: Boolean) -> Ability = { template, forced -> Ability(template, forced) },
val displayName: String = "cobblemon.ability.$name",
val description: String = "cobblemon.ability.$name.desc"
) {
/**
* Returns the Ability or if applicable the extension connected to this template
*/
fun create(forced: Boolean = false) = builder(this, forced)
/**
* Returns the Ability and loads the given NBT Tag into it.
*
* Ability extensions need to write and read their needed data from here.
*/
fun create(nbt: NbtCompound) = create().loadFromNBT(nbt)
/**
* Returns the Ability and loads the given JSON object into it.
*
* Ability extensions need to write and read their needed data from here.
*/
fun create(json: JsonObject) = create().loadFromJSON(json)
}
@@ -0,0 +1,55 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.abilities
import com.cobblemon.mod.common.api.Priority
import com.google.gson.JsonElement
interface PotentialAbilityType<T : PotentialAbility> {
fun parseFromJSON(element: JsonElement): T?
}
/**
* An ability on a species that may or may not be available for a specific instance of the species.
*
* Controls whether a Pokémon can learn an ability.
*
* @author Hiroku
* @since July 27th, 2022
*/
interface PotentialAbility {
val template: AbilityTemplate
val priority: Priority
val type: PotentialAbilityType<*>
fun isSatisfiedBy(aspects: Set<String>): Boolean
companion object {
val types = mutableListOf<PotentialAbilityType<*>>()
}
}
object CommonAbilityType : PotentialAbilityType<CommonAbility> {
override fun parseFromJSON(element: JsonElement): CommonAbility? {
val str = if (element.isJsonPrimitive) element.asString else null
return str?.let {
val ability = Abilities.get(it)
if (ability != null) {
return@let CommonAbility(ability)
} else {
return@let null
}
}
}
}
open class CommonAbility(override val template: AbilityTemplate) : PotentialAbility {
override val priority = Priority.LOWEST
override val type = CommonAbilityType
override fun isSatisfiedBy(aspects: Set<String>) = true
}
@@ -0,0 +1,51 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.ai
import com.cobblemon.mod.common.api.serialization.StringIdentifiedObjectAdapter
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import net.minecraft.entity.ai.TargetPredicate
import net.minecraft.util.math.Box
/**
* How deeply a Pokémon sleeps. This takes the current situation and decides if a Pokémon should fall asleep or wake.
*
* A depth should be registered by name in [SleepDepth.depths].
*
* @author Hiroku
* @since July 17th, 2022
*/
interface SleepDepth {
companion object {
val comatose = object : SleepDepth {
override fun canSleep(pokemonEntity: PokemonEntity) = true
override fun shouldWake(pokemonEntity: PokemonEntity) = true
}
val normal = object : SleepDepth {
override fun canSleep(pokemonEntity: PokemonEntity): Boolean {
return pokemonEntity.world.getPlayers(TargetPredicate.createNonAttackable(), pokemonEntity, Box.of(pokemonEntity.pos, 16.0, 16.0, 16.0)).isEmpty()
}
override fun shouldWake(pokemonEntity: PokemonEntity): Boolean {
val nearbyPlayers = pokemonEntity.world.getPlayers(TargetPredicate.createNonAttackable(), pokemonEntity, Box.of(pokemonEntity.pos, 16.0, 16.0, 16.0))
return nearbyPlayers.none { !it.isSneaking }
}
}
val depths = mutableMapOf(
"comatose" to comatose,
"normal" to normal
)
val adapter = StringIdentifiedObjectAdapter { depths[it] ?: throw IllegalArgumentException("Unknown sleep depth: $it") }
}
fun canSleep(pokemonEntity: PokemonEntity): Boolean
fun shouldWake(pokemonEntity: PokemonEntity): Boolean
}
@@ -0,0 +1,85 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.apricorn
import com.cobblemon.mod.common.CobblemonBlocks
import com.cobblemon.mod.common.CobblemonItems
import com.cobblemon.mod.common.block.ApricornBlock
import com.cobblemon.mod.common.block.ApricornSaplingBlock
import com.cobblemon.mod.common.item.ApricornItem
import net.minecraft.block.MapColor
import net.minecraft.item.BlockItem
/**
* Contains the different Apricorn variants and util methods to get their item, block, seedling and sapling form.
*
* @author Licious
* @since October 29th, 2022
*/
enum class Apricorn {
BLACK,
BLUE,
GREEN,
PINK,
RED,
WHITE,
YELLOW;
fun item(): ApricornItem = when(this) {
BLACK -> CobblemonItems.BLACK_APRICORN
BLUE -> CobblemonItems.BLUE_APRICORN
GREEN -> CobblemonItems.GREEN_APRICORN
PINK -> CobblemonItems.PINK_APRICORN
RED -> CobblemonItems.RED_APRICORN
WHITE -> CobblemonItems.WHITE_APRICORN
YELLOW -> CobblemonItems.YELLOW_APRICORN
}
fun seed(): BlockItem = when(this) {
BLACK -> CobblemonItems.BLACK_APRICORN_SEED
BLUE -> CobblemonItems.BLUE_APRICORN_SEED
GREEN -> CobblemonItems.GREEN_APRICORN_SEED
PINK -> CobblemonItems.PINK_APRICORN_SEED
RED -> CobblemonItems.RED_APRICORN_SEED
WHITE -> CobblemonItems.WHITE_APRICORN_SEED
YELLOW -> CobblemonItems.YELLOW_APRICORN_SEED
}
fun block(): ApricornBlock = when(this) {
BLACK -> CobblemonBlocks.BLACK_APRICORN
BLUE -> CobblemonBlocks.BLUE_APRICORN
GREEN -> CobblemonBlocks.GREEN_APRICORN
PINK -> CobblemonBlocks.PINK_APRICORN
RED -> CobblemonBlocks.RED_APRICORN
WHITE -> CobblemonBlocks.WHITE_APRICORN
YELLOW -> CobblemonBlocks.YELLOW_APRICORN
}
fun sapling(): ApricornSaplingBlock = when(this) {
BLACK -> CobblemonBlocks.BLACK_APRICORN_SAPLING
BLUE -> CobblemonBlocks.BLUE_APRICORN_SAPLING
GREEN -> CobblemonBlocks.GREEN_APRICORN_SAPLING
PINK -> CobblemonBlocks.PINK_APRICORN_SAPLING
RED -> CobblemonBlocks.RED_APRICORN_SAPLING
WHITE -> CobblemonBlocks.WHITE_APRICORN_SAPLING
YELLOW -> CobblemonBlocks.YELLOW_APRICORN_SAPLING
}
fun mapColor(): MapColor = when(this) {
BLACK -> MapColor.BLACK
BLUE -> MapColor.BLUE
GREEN -> MapColor.GREEN
PINK -> MapColor.PINK
RED -> MapColor.RED
WHITE -> MapColor.WHITE
YELLOW -> MapColor.YELLOW
}
}
@@ -0,0 +1,82 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.asset
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.Cobblemon.LOGGER
import com.cobblemon.mod.common.util.fromJson
import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.JsonArray
import java.io.File
import java.io.InputStreamReader
import java.io.PrintWriter
/**
* A utility object for managing the "manifest" based assets. A JSON in a directory named _MANIFEST.json
* is a list of all of the files in the folder that should be loaded.
*
* Rationale: On Forge this is completely unneeded, but the Fabric class loader is either bugged or
* designed in such a way that targeting a folder for an asset load returns a URI that cannot be converted
* into a path (which would then be used for file walking). As a result, arbitrarily loading all files in
* a folder is either not possible in Fabric or I don't know what trickery is required. A manifest means there
* will not be a blind searching for JSONs and in future enables us to make the manifest potentially compress
* all the JSONs into itself to speed up load times internally.
*
* @author Hiroku
* @since April 1st, 2022.
*/
object JsonManifestWalker {
/**
* Builds a manifest at [manifestPath] using the files inside the same folder.
*
* This is for internal use though we could make this more normalized later.
*/
internal fun build(manifestPath: String) {
val file = File(manifestPath)
file.createNewFile()
val folder = file.parentFile
folder.mkdir()
val members = folder.listFiles { f: File -> f.extension == "json" && f.nameWithoutExtension != "_MANIFEST" }
val jsonArray = JsonArray()
members.forEach {
jsonArray.add(it.relativeTo(folder).toString())
}
val pw = PrintWriter(file)
GsonBuilder().setPrettyPrinting().create().toJson(jsonArray, pw)
pw.flush()
pw.close()
}
/**
* Loads the given manifest and all the files it references.
*/
fun <T> load(clazz: Class<T>, folder: String, gson: Gson): List<T> {
val manifestPath = "/assets/${Cobblemon.MODID}/$folder/_MANIFEST.json"
val manifest = Cobblemon::class.java.getResourceAsStream(manifestPath)!!
val folderPath = manifestPath.substringBeforeLast("/")
val list = mutableListOf<T>()
val array = gson.fromJson<JsonArray>(InputStreamReader(manifest))
array.forEach {
val path = it.asString
val stream = Cobblemon.javaClass.getResourceAsStream("$folderPath/$path") ?: run {
LOGGER.error("manifest contains element $path which was not found.")
return@forEach
}
try {
list.add(gson.fromJson(InputStreamReader(stream), clazz))
} catch (exception: Exception) {
LOGGER.error("Issue loading manifest component: $path")
exception.printStackTrace()
}
}
return list
}
}
@@ -0,0 +1,73 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.interpreter
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
/**
* The context of how a condition was created or changed during a battle.
*
* @author Segfault Guy
* @since April 10th, 2023
*/
interface BattleContext {
/** The effect or condition this [BattleContext] represents. */
val id: String
/** The turn this [BattleContext] was created. */
val turn: Int
/** The [BattleContext.Type] tied to this [BattleContext]. */
val type: Type
/** The [BattlePokemon] that directly or indirectly caused this [BattleContext]. */
val origin: BattlePokemon?
/**
* The type of [BattleContext].
*
* @property damaging Whether a context of this type is a source of damage.
* @property exclusive Whether only one context of this type can exist.
*
* @author Segfault Guy
* @since April 10th, 2023
*/
enum class Type(val damaging: Boolean, val exclusive: Boolean) {
ITEM(true, true),
STATUS(true, false),
VOLATILE(true, false),
HAZARD(true, false),
WEATHER(true, true),
ROOM(false, true),
SPORT(false, false),
TERRAIN(false, true),
GRAVITY(false, true),
TAILWIND(false, true),
SCREEN(false, false),
FAINT(false, false),
BOOST(false, false),
UNBOOST(false, false),
MISC(false, false);
}
}
data class BasicContext(
override val id: String,
override val turn: Int,
override val type: BattleContext.Type,
override val origin: BattlePokemon?
) : BattleContext
data class MissingContext(
override val id: String = "error",
override val turn: Int = 0,
override val type: BattleContext.Type = BattleContext.Type.MISC,
override val origin: BattlePokemon? = null
) : BattleContext
@@ -0,0 +1,252 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.interpreter
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.api.battles.model.actor.BattleActor
import com.cobblemon.mod.common.battles.ActiveBattlePokemon
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import java.util.UUID
/**
* A class responsible for parsing a raw simulator protocol message received from Showdown.
* For more information see the [Showdown protocol](https://github.com/smogon/pokemon-showdown/blob/master/sim/SIM-PROTOCOL.md).
*
* @constructor Creates a battle message with the given raw message.
*
* @param rawMessage The raw message received from Showdown.
*
* @author Licious
* @since December 31st, 2022
*/
class BattleMessage(rawMessage: String) {
/**
* The ID of the action received in the message.
*/
var id = ""
private set
/**
* The raw message received.
*/
var rawMessage: String = rawMessage
private set
/**
* A collection of the individual arguments the message had.
*/
private val args = arrayListOf<String>()
/**
* A collection of the optional arguments the message had.
*/
private val optionalArguments = hashMapOf<String, String>()
/**
* Pattern to match the start of an optional argument.
*/
private val optionalArgumentMatcher = Regex("^\\$OPTIONAL_ARG_START([^]]+)$OPTIONAL_ARG_END")
init {
this.parse(rawMessage)
}
/**
* Get an argument at the given [index].
*
* @param index The index of the expected argument.
* @return The argument if existing or null.
*/
fun argumentAt(index: Int): String? = this.args.getOrNull(index)
/**
* Get an optional argument with the given [name].
* This returns the data of the argument only.
*
* @param name The name of the optional argument.
* @return The argument data if existing or null.
*/
fun optionalArgument(name: String): String? = this.optionalArguments[name.lowercase()]
/**
* Checks if an optional argument is present.
* [optionalArgument] is null safe, this method is meant as a way to check 'flags' as some optional arguments contain no data.
*
* @param name The name of the optional argument.
* @return True if the argument is present.
*/
fun hasOptionalArgument(name: String): Boolean = this.optionalArgument(name) != null
/**
* Clears the parsed arguments and parses the message again with the new given [rawMessage].
*
* @param rawMessage The raw message received from Showdown.
* @return This instance of the battle message updated.
*/
fun parse(rawMessage: String): BattleMessage {
var message = rawMessage.trim()
this.id = ""
this.args.clear()
this.optionalArguments.clear()
this.rawMessage = message
if (!message.startsWith(SEPARATOR) || message == SEPARATOR) {
return this
}
message = this.push(message)
this.id = message.substringBefore(SEPARATOR)
message = this.push(message)
while (message.isNotBlank()) {
val currentData = message.substringBefore(SEPARATOR)
val optionalArgumentID = this.optionalArgumentMatcher.find(currentData)
if (optionalArgumentID != null) {
val id = optionalArgumentID.value.removePrefix(OPTIONAL_ARG_START).removeSuffix(OPTIONAL_ARG_END).lowercase()
val value = currentData.substringAfter(optionalArgumentID.value).trim()
this.optionalArguments[id] = value
}
else {
this.args.add(currentData)
}
message = this.push(message)
}
return this
}
fun pokemonByUuid(index: Int, battle: PokemonBattle): BattlePokemon? {
return this.argumentAt(index)?.let { UUID.fromString(it) }?.let { uuid -> battle.actors.flatMap { it.pokemonList }.find { it.uuid == uuid } }
}
/**
* Queries an argument at the given [index] for a 'pnx' that will be parsed into a [BattleActor] and [ActiveBattlePokemon].
*
* @param index The index of the argument containing the [BattleActor] and [ActiveBattlePokemon].
* @param battle The [PokemonBattle] being queried.
* @return A pair of [BattleActor] and [ActiveBattlePokemon] if the argument exists and successfully parses them otherwise null.
*/
fun actorAndActivePokemon(index: Int, battle: PokemonBattle): Pair<BattleActor, ActiveBattlePokemon>? {
val (pnx, _) = this.pnxAndUuid(index) ?: return null
return this.actorAndActivePokemon(pnx, battle)
}
/*
Example:
|-curestatus|p1: a8e5710e-6835-4387-99d3-331b45f848e6|slp|[msg]
|-curestatus|p1: 0686b20d-3019-4167-92e2-786834245743|slp|[msg]
// Function used to grab BattlePokemon (As we need to be able to grab non active pokemon to cure their status)
// by using playerNumber(actorID) and pokemon uuid(pokemonID)
*/
fun getBattlePokemon(index: Int, battle: PokemonBattle): BattlePokemon? {
val actorAndPokemonID = this.argumentAt(index)?.takeIf { it.length >= 2 }?.split(": ") ?: return null
if (actorAndPokemonID.count() < 2) return null
val actorID = actorAndPokemonID[0]
val pokemonID = actorAndPokemonID[1]
return this.getBattlePokemon(actorID, pokemonID, battle)
}
fun getSourceBattlePokemon(battle: PokemonBattle): BattlePokemon? {
val sourcePokemonArgument = this.optionalArguments.get("of") ?: return null
val actorAndPokemonID = sourcePokemonArgument.takeIf { it.length >= 2 }?.split(": ") ?: return null
if (actorAndPokemonID.count() < 2) return null
val actorID = actorAndPokemonID[0]
val pokemonID = actorAndPokemonID[1]
return this.getBattlePokemon(actorID, pokemonID, battle)
}
/**
* Deconstructs the Showdown ID of a Pokemon at the given [index] into its 'pnx' and 'uuid' parts.
*
* @param index The index of the argument containing the Showdown ID of a Pokemon.
* @return A 'pnx' String representing position and a 'uuid' String representing the unique Pokemon if parsed correctly, otherwise null.
*/
fun pnxAndUuid(index: Int): Pair<String, String>? {
val argument = this.argumentAt(index)?.takeIf { it.length >= 2 }?.split(":")?.takeIf { it.size == 2 } ?: return null
val pnx = argument[0].takeIf { it.matches(PNX_MATCHER) } ?: return null
val uuid = argument[1].trim()
return pnx to uuid
}
/**
* Attempts to parse an [Effect] from an argument at the given [index].
*
* @param index The index of the expected argument.
* @return The parsed [Effect] or null.
*/
fun effectAt(index: Int): Effect? {
val data = this.argumentAt(index) ?: return null
return Effect.parse(data)
}
/**
* Attempts to parse an [Effect] from an optional argument.
*
* @param argumentName The name of the optional argument.
* @return The parsed [Effect] or null.
*/
fun effect(argumentName: String = "from"): Effect? {
val data = this.optionalArgument(argumentName) ?: return null
return Effect.parse(data)
}
/**
* Queries an optional argument with given [argumentName] for a 'pnx' that will be parsed into a [BattleActor] and [ActiveBattlePokemon].
*
* @param battle The [PokemonBattle] being queried.
* @param argumentName The name of the optional argument.
* @return A pair of [BattleActor] and [ActiveBattlePokemon] if the argument exists and successfully parses them otherwise null.
*/
fun actorAndActivePokemonFromOptional(battle: PokemonBattle, argumentName: String = "of"): Pair<BattleActor, ActiveBattlePokemon>? {
val pnx = this.optionalArgument(argumentName)?.takeIf { it.length >= 3 }?.substring(0, 3) ?: return null
return this.actorAndActivePokemon(pnx, battle)
}
/**
* Pushes the given string down into the next argument.
*
* @param message The current state of the message.
* @return A substring of [message] after the first [SEPARATOR] or empty if no [SEPARATOR] remains.
*/
private fun push(message: String): String = message.substringAfter(SEPARATOR, "")
/**
* A utility to wrap [PokemonBattle.getActorAndActiveSlotFromPNX] to make it nullable instead of throwing an exception.
*
* @param pnx The raw pnx.
* @param battle The [PokemonBattle] being queried.
* @returnA pair of [BattleActor] and [ActiveBattlePokemon] if [PokemonBattle.getActorAndActiveSlotFromPNX] executes without any exception being thrown or else null.
*/
private fun actorAndActivePokemon(pnx: String, battle: PokemonBattle): Pair<BattleActor, ActiveBattlePokemon>? = try {
battle.getActorAndActiveSlotFromPNX(pnx)
} catch (_: Exception) {
null
}
private fun getBattlePokemon(pnx: String, pokemonID: String, battle: PokemonBattle): BattlePokemon? = try {
battle.getBattlePokemon(pnx, pokemonID)
} catch (_: Exception) {
null
}
companion object {
private const val SEPARATOR = "|"
private const val OPTIONAL_ARG_START = "["
private const val OPTIONAL_ARG_END = "]"
/**
* Pattern to match a Showdown position e.g. p2a, p1b
*/
val PNX_MATCHER = Regex("p\\d[a-c]")
/**
* Pattern to match a Showdown side position e.g. p2, p1
*/
val PN_MATCHER = Regex("p\\d")
}
}
@@ -0,0 +1,149 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.interpreter
import com.cobblemon.mod.common.api.abilities.Abilities
import com.cobblemon.mod.common.api.data.ShowdownIdentifiable
import com.cobblemon.mod.common.api.moves.Moves
import com.cobblemon.mod.common.battles.interpreter.CobblemonEffect
/**
* A representation of an effect received from Showdown inside a [BattleMessage].
*
* @author Licious
* @since December 31st, 2022
*/
interface Effect {
/**
* The literal ID of this [Effect].
*/
val id: String
/**
* The [Effect.Type] of this [Effect].
*/
val type: Type
/**
* The raw literal data received when parsing this [Effect].
*/
val rawData: String
val typelessData: String
get() = rawData.substringAfter(type.prefix).trim()
/**
* Represents the type of the [Effect].
*
* @property prefix The literal prefix used to identify the type by the Showdown simulator protocol.
*
* @author Licious
* @since December 31st, 2022
*/
enum class Type(val prefix: String) {
ABILITY("ability:"),
ITEM("item:"),
MOVE("move:"),
BAGITEM("bagitem:"),
PURE(""),
}
companion object {
/**
* Creates an [Effect].
*
* @param id The ID of the effect, this may be validated
* @param type The [Effect.Type].
* @param rawData The received string in the battle message.
* @return An [Effect] containing the given data of the given [type].
*/
private fun of(id: String, type: Type, rawData: String): Effect = CobblemonEffect(id, type, rawData)
/**
* Creates an [Effect] with type [Effect.Type.ABILITY].
*
* @param id The ID of the effect, meant to be present in [Abilities].
* @param rawData The received string in the battle message.
* @return An [Effect] containing the given data of [Effect.Type.ABILITY].
*
* @throws IllegalArgumentException If the [id] cannot be found in the [Abilities] registry.
*/
fun ability(id: String, rawData: String): Effect {
if (Abilities.get(id) == null) {
throw IllegalArgumentException("Cannot instance ability effect with ID $id")
}
return of(id, Type.ABILITY, rawData)
}
/**
* Creates an [Effect] with type [Effect.Type.ITEM].
*
* @param id The ID of the effect. This should be trusted as Showdown keeps the held items on their end.
* @param rawData The received string in the battle message.
* @return An [Effect] containing the given data of [Effect.Type.ITEM].
*/
fun item(id: String, rawData: String): Effect = of(id, Type.ITEM, rawData)
/**
* Creates an [Effect] with type [Effect.Type.MOVE].
*
* @param id The ID of the effect, meant to be present in [Moves].
* @param rawData The received string in the battle message.
* @return An [Effect] containing the given data of [Effect.Type.MOVE].
*
* @throws IllegalArgumentException If the [id] cannot be found in the [Moves] registry.
*/
fun move(id: String, rawData: String): Effect {
if (Moves.getByName(id) == null) {
throw IllegalArgumentException("Cannot instance move effect with ID $id")
}
return of(id, Type.MOVE, rawData)
}
/**
* Creates a "pure" [Effect].
* This is the representation of a purely literal effect by Showdown.
*
* @param id The ID of the effect.
* @param rawData The received string in the battle message.
* @return An [Effect] containing the given data of [Effect.Type.PURE].
*/
fun pure(id: String, rawData: String): Effect = of(id, Type.PURE, rawData)
/**
* Parses an [Effect] from the given [rawData].
*
* @param rawData The raw data expecting to create an [Effect].
* @return The parsed [Effect] or null if the raw data is blank or the parsed effect throws an [IllegalArgumentException].
*
* @throws IllegalArgumentException if the parsed type doesn't allow the resulting ID.
*/
fun parse(rawData: String): Effect? {
if (rawData.isBlank()) {
return null
}
return try {
when {
rawData.startsWith(Type.ABILITY.prefix) -> ability(rawData.lowercase().substringAfter(Type.ABILITY.prefix).replace(ShowdownIdentifiable.REGEX, ""), rawData)
rawData.startsWith(Type.ITEM.prefix) -> item(rawData.lowercase().substringAfter(Type.ITEM.prefix).replace(ShowdownIdentifiable.REGEX, ""), rawData)
rawData.startsWith(Type.MOVE.prefix) -> move(rawData.lowercase().substringAfter(Type.MOVE.prefix).replace(ShowdownIdentifiable.REGEX, ""), rawData)
else -> pure(rawData.lowercase().replace(ShowdownIdentifiable.REGEX, ""), rawData)
}
} catch (_: Exception) {
null
}
}
}
}
@@ -0,0 +1,452 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.Cobblemon.LOGGER
import com.cobblemon.mod.common.CobblemonNetwork
import com.cobblemon.mod.common.api.battles.interpreter.BattleMessage
import com.cobblemon.mod.common.api.battles.model.actor.ActorType
import com.cobblemon.mod.common.api.battles.model.actor.BattleActor
import com.cobblemon.mod.common.api.battles.model.actor.EntityBackedBattleActor
import com.cobblemon.mod.common.api.battles.model.actor.FleeableBattleActor
import com.cobblemon.mod.common.api.events.CobblemonEvents
import com.cobblemon.mod.common.api.events.battles.BattleFledEvent
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.api.tags.CobblemonItemTags
import com.cobblemon.mod.common.api.text.red
import com.cobblemon.mod.common.api.text.yellow
import com.cobblemon.mod.common.battles.ActiveBattlePokemon
import com.cobblemon.mod.common.battles.BattleCaptureAction
import com.cobblemon.mod.common.battles.BattleFormat
import com.cobblemon.mod.common.battles.BattleRegistry
import com.cobblemon.mod.common.battles.BattleSide
import com.cobblemon.mod.common.battles.actor.PlayerBattleActor
import com.cobblemon.mod.common.battles.dispatch.BattleDispatch
import com.cobblemon.mod.common.battles.dispatch.DispatchResult
import com.cobblemon.mod.common.battles.dispatch.GO
import com.cobblemon.mod.common.battles.dispatch.WaitDispatch
import com.cobblemon.mod.common.battles.interpreter.ContextManager
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.battles.runner.ShowdownService
import com.cobblemon.mod.common.net.messages.client.battle.BattleEndPacket
import com.cobblemon.mod.common.net.messages.client.battle.BattleMessagePacket
import com.cobblemon.mod.common.net.messages.client.battle.BattleMusicPacket
import com.cobblemon.mod.common.pokemon.evolution.progress.DefeatEvolutionProgress
import com.cobblemon.mod.common.util.battleLang
import com.cobblemon.mod.common.util.getPlayer
import net.minecraft.entity.Entity
import java.util.UUID
import java.util.concurrent.ConcurrentLinkedQueue
import net.minecraft.text.Text
import java.io.File
import kotlin.io.path.Path
import kotlin.io.path.writeLines
import net.minecraft.server.network.ServerPlayerEntity
/**
* Individual battle instance
*
* @since January 16th, 2022
* @author Deltric, Hiroku
*/
open class PokemonBattle(
val format: BattleFormat,
val side1: BattleSide,
val side2: BattleSide
) {
/** Whether or not logging will be silenced for this battle. */
var mute = true
init {
side1.battle = this
side2.battle = this
this.actors.forEach { actor ->
actor.pokemonList.forEach { battlePokemon ->
battlePokemon.criticalHits = 0
}
}
}
val sides: Iterable<BattleSide>
get() = listOf(side1, side2)
val actors: Iterable<BattleActor>
get() = sides.flatMap { it.actors.toList() }
val activePokemon: Iterable<ActiveBattlePokemon>
get() = actors.flatMap { it.activePokemon }
val playerUUIDs: Iterable<UUID>
get() = actors.flatMap { it.getPlayerUUIDs() }
val players = playerUUIDs.mapNotNull { it.getPlayer() }
val spectators = mutableListOf<UUID>()
val battleId = UUID.randomUUID()
val showdownMessages = mutableListOf<String>()
val battleLog = mutableListOf<String>()
var started = false
var ended = false
// TEMP battle showcase stuff
var announcingRules = false
var turn: Int = 1
private set
var dispatchResult = GO
val dispatches = ConcurrentLinkedQueue<BattleDispatch>()
val afterDispatches = mutableListOf<() -> Unit>()
val captureActions = mutableListOf<BattleCaptureAction>()
val majorBattleActions = hashMapOf<UUID, BattleMessage>()
val minorBattleActions = hashMapOf<UUID, BattleMessage>()
val contextManager = ContextManager()
/** Whether or not there is one side with at least one player, and the other only has wild Pokémon. */
val isPvW: Boolean
get() {
val playerSide = sides.find { it.actors.any { it.type == ActorType.PLAYER } } ?: return false
if (playerSide.actors.any { it.type != ActorType.PLAYER }) {
return false
}
val otherSide = sides.find { it != playerSide }!!
return otherSide.actors.all { it.type == ActorType.WILD }
}
/** Whether or not there are player actors on both sides. */
val isPvP: Boolean
get() = sides.all { it.actors.any { it.type == ActorType.PLAYER } }
/** Whether or not there is one player side and one NPC side. The opposite side to the player must all be NPCs. */
val isPvN: Boolean
get() {
val playerSide = sides.find { it.actors.any { it.type == ActorType.PLAYER } } ?: return false
if (playerSide.actors.any { it.type != ActorType.PLAYER }) {
return false
}
val otherSide = sides.find { it != playerSide }!!
return otherSide.actors.all { it.type == ActorType.NPC }
}
/**
* Gets an actor by their showdown id
* @return the actor if found otherwise null
*/
fun getActor(showdownId: String) : BattleActor? {
return actors.find { actor -> actor.showdownId == showdownId }
}
/**
* Gets an actor by their game id
* @return the actor if found otherwise null
*/
fun getActor(actorId: UUID) : BattleActor? {
return actors.find { actor -> actor.uuid == actorId }
}
/**
* Gets the first battle actor whom the given player controls, or null if there is no such actor.
*/
fun getActor(player: ServerPlayerEntity) = actors.firstOrNull { it.isForPlayer(player) }
/**
* Gets a BattleActor and an [ActiveBattlePokemon] from a pnx key, e.g. p2a
*
* Returns null if either the pn or x is invalid.
*/
fun getActorAndActiveSlotFromPNX(pnx: String): Pair<BattleActor, ActiveBattlePokemon> {
val actor = actors.find { it.showdownId == pnx.substring(0, 2) }
?: throw IllegalStateException("Invalid pnx: $pnx - unknown actor")
val letter = pnx[2]
val pokemon = actor.getSide().activePokemon.find { it.getLetter() == letter }
?: throw IllegalStateException("Invalid pnx: $pnx - unknown pokemon")
return actor to pokemon
}
fun getBattlePokemon(pnx: String, pokemonID: String): BattlePokemon {
val actor = actors.find { it.showdownId == pnx.substring(0, 2) }
?: throw IllegalStateException("Invalid pnx: $pnx - unknown actor")
return actor.pokemonList.find { it.uuid.toString() == pokemonID }
?: throw IllegalStateException("Invalid pnx: $pnx - unknown pokemon")
}
fun broadcastChatMessage(component: Text) {
spectators.forEach { spectatorId ->
spectatorId.getPlayer()?.let {
CobblemonNetwork.sendPacketToPlayer(it, BattleMessagePacket(component))
}
}
return actors.forEach { it.sendMessage(component) }
}
fun writeShowdownAction(vararg messages: String) {
log(messages.joinToString("\n"))
ShowdownService.service.send(battleId, messages.toList().toTypedArray())
}
fun turn(newTurnNumber: Int) {
actors.forEach { it.turn() }
for (side in sides) {
val opposite = side.getOppositeSide()
side.activePokemon.forEach {
val battlePokemon = it.battlePokemon ?: return@forEach
battlePokemon.facedOpponents.addAll(opposite.activePokemon.mapNotNull { it.battlePokemon })
}
}
this.turn = newTurnNumber
}
fun end() {
ended = true
this.actors.forEach { actor ->
val faintedPokemons = actor.pokemonList.filter { it.health <= 0 }
actor.getSide().getOppositeSide().actors.forEach { opponent ->
val opponentNonFaintedPokemons = opponent.pokemonList.filter { it.health > 0 }
faintedPokemons.forEach { faintedPokemon ->
for (opponentPokemon in opponentNonFaintedPokemons) {
val facedFainted = opponentPokemon.facedOpponents.contains(faintedPokemon)
val defeatProgress = DefeatEvolutionProgress()
val pokemon = opponentPokemon.effectedPokemon
if (facedFainted && defeatProgress.shouldKeep(pokemon)) {
val progress = pokemon.evolutionProxy.current().progressFirstOrCreate({ it is DefeatEvolutionProgress && it.currentProgress().target.matches(faintedPokemon.effectedPokemon) }) { defeatProgress }
progress.updateProgress(DefeatEvolutionProgress.Progress(progress.currentProgress().target, progress.currentProgress().amount + 1))
}
val multiplier = when {
// ToDo when Exp. All is implement if enabled && !facedFainted return 2.0, probably should be a configurable value too, this will have priority over the Exp. Share
!facedFainted && pokemon.heldItemNoCopy().isIn(CobblemonItemTags.EXPERIENCE_SHARE) -> Cobblemon.config.experienceShareMultiplier
// ToDo when Exp. All is implemented the facedFainted and else can be collapsed into the 1.0 return value
facedFainted -> 1.0
else -> continue
}
val experience = Cobblemon.experienceCalculator.calculate(opponentPokemon, faintedPokemon, multiplier)
if (experience > 0) {
opponent.awardExperience(opponentPokemon, experience)
}
Cobblemon.evYieldCalculator.calculate(opponentPokemon, faintedPokemon).forEach { (stat, amount) ->
pokemon.evs.add(stat, amount)
}
}
}
}
}
// Heal Mon if wild
actors.filter { it.type == ActorType.WILD }
.filterIsInstance<EntityBackedBattleActor<*>>()
.mapNotNull { it.entity }
.filterIsInstance<PokemonEntity>()
.forEach{it.pokemon.heal()}
actors.forEach { actor ->
actor.pokemonList.forEach { battlePokemon ->
battlePokemon.entity?.let { entity -> battlePokemon.postBattleEntityOperation(entity) }
}
}
sendUpdate(BattleEndPacket())
sendUpdate(BattleMusicPacket(null))
BattleRegistry.closeBattle(this)
}
fun finishCaptureAction(captureAction: BattleCaptureAction) {
captureActions.remove(captureAction)
checkForInputDispatch()
}
fun log(message: String = "") {
if (!mute) {
LOGGER.info(message)
}
battleLog.add(message)
}
fun saveBattleLog() {
val battleLogsDir = File("./battle_logs/")
if (!battleLogsDir.exists()) {
battleLogsDir.mkdirs()
}
val logFile = File(battleLogsDir, "$battleId.txt")
logFile.bufferedWriter().use { out ->
battleLog.forEach {
out.write(it)
out.newLine()
}
}
LOGGER.info("Saved battle log as $battleId.txt")
}
fun sendUpdate(packet: NetworkPacket<*>) {
actors.forEach { it.sendUpdate(packet) }
sendSpectatorUpdate(packet)
}
/**
* Sends a packet depending on the side of an actor.
*
* @param source The actor that triggered the necessity for this update.
* @param allyPacket The packet sent to the [source] and their allies.
* @param opponentPacket The packet sent to the opposing actors.
* @param spectatorsAsAlly If the spectators receive the [allyPacket] or the [opponentPacket], default is false.
*/
fun sendSidedUpdate(source: BattleActor, allyPacket: NetworkPacket<*>, opponentPacket: NetworkPacket<*>, spectatorsAsAlly: Boolean = false) {
source.getSide().actors.forEach { it.sendUpdate(allyPacket) }
source.getSide().getOppositeSide().actors.forEach { it.sendUpdate(opponentPacket) }
sendSpectatorUpdate(if (spectatorsAsAlly) allyPacket else opponentPacket)
}
fun sendToActors(packet: NetworkPacket<*>) {
CobblemonNetwork.sendPacketToPlayers(actors.flatMap { it.getPlayerUUIDs().mapNotNull { it.getPlayer() } }, packet)
}
fun sendSplitUpdate(privateActor: BattleActor, publicPacket: NetworkPacket<*>, privatePacket: NetworkPacket<*>) {
actors.forEach { it.sendUpdate(if (it == privateActor) privatePacket else publicPacket) }
sendSpectatorUpdate(publicPacket)
}
fun sendSpectatorUpdate(packet: NetworkPacket<*>) {
CobblemonNetwork.sendPacketToPlayers(spectators.mapNotNull { it.getPlayer() }, packet)
}
fun dispatch(dispatcher: () -> DispatchResult) {
dispatches.add(BattleDispatch { dispatcher() })
}
fun dispatchGo(dispatcher: () -> Unit) {
dispatch {
dispatcher()
GO
}
}
fun dispatchWaiting(delaySeconds: Float = 1F, dispatcher: () -> Unit) {
dispatch {
dispatcher()
WaitDispatch(delaySeconds)
}
}
fun dispatchInsert(dispatcher: () -> Iterable<BattleDispatch>) {
dispatch {
val newDispatches = dispatcher()
val previousDispatches = dispatches.toList()
dispatches.clear()
dispatches.addAll(newDispatches)
dispatches.addAll(previousDispatches)
GO
}
}
fun dispatch(dispatcher: BattleDispatch) {
dispatches.add(dispatcher)
}
fun doWhenClear(action: () -> Unit) {
afterDispatches.add(action)
}
fun tick() {
try {
while (dispatchResult.canProceed()) {
val dispatch = dispatches.poll() ?: break
dispatchResult = dispatch(this)
}
if (dispatches.isEmpty()) {
afterDispatches.toList().forEach { it() }
afterDispatches.clear()
}
} catch (e: Exception) {
LOGGER.error("Exception while ticking a battle. Saving battle log.", e)
val message = battleLang("crash").red()
this.actors.filterIsInstance<PlayerBattleActor>().forEach { it.entity?.sendMessage(message) }
this.saveBattleLog()
this.stop()
return
}
if (started && isPvW && !ended && dispatches.isEmpty()) {
checkFlee()
}
}
open fun checkFlee() {
// Do we check the player's pokemon being nearby or the player themselves? Player themselves because pokemon could be stuck together in a pit
val wildPokemonOutOfRange = actors
.filterIsInstance<FleeableBattleActor>()
.filter { it.getWorldAndPosition() != null }
.none { pokemonActor ->
if (pokemonActor.fleeDistance == -1F) true
else {
val (world, pos) = pokemonActor.getWorldAndPosition()!!
val nearestPlayerActorDistance = actors.asSequence()
.filter { it.type == ActorType.PLAYER }
.filterIsInstance<EntityBackedBattleActor<*>>()
.mapNotNull { it.entity }
.filter { it.world == world }
.minOfOrNull { pos.distanceTo(it.pos) }
nearestPlayerActorDistance != null && nearestPlayerActorDistance < pokemonActor.fleeDistance
}
}
if (wildPokemonOutOfRange) {
// Heal Wild Pokemon
actors.filter { it.type == ActorType.WILD }
.filterIsInstance<EntityBackedBattleActor<*>>()
.mapNotNull { it.entity }
.filterIsInstance<PokemonEntity>()
.forEach{it.pokemon.heal()}
CobblemonEvents.BATTLE_FLED.post(BattleFledEvent(this, actors.asSequence().filterIsInstance<PlayerBattleActor>().iterator().next()))
actors.filterIsInstance<EntityBackedBattleActor<*>>().mapNotNull { it.entity }.forEach { it.sendMessage(battleLang("flee").yellow()) }
stop()
}
}
fun stop() {
end()
writeShowdownAction(">forcetie") // This will terminate the Showdown connection
}
fun checkForInputDispatch() {
val readyToInput = actors.any { !it.mustChoose && it.responses.isNotEmpty() } && actors.none { it.mustChoose }
if (readyToInput && captureActions.isEmpty()) {
actors.filter { it.responses.isNotEmpty() }.forEach { it.writeShowdownResponse() }
actors.forEach { it.responses.clear() ; it.request = null }
}
}
/**
* Creates a [Text] representation of an error to interpret a battle message.
* This also logs the error, the goal of this function is to make sure users see missing interpretations and report them to us.
* Logging is independent of [mute].
*
* @param message The [BattleMessage] that wasn't able to find a lang interpretation.
* @return The generated [Text] meant to notify the client.
*/
internal fun createUnimplemented(message: BattleMessage): Text {
LOGGER.error("Missing interpretation on '{}' action {}", message.id, message.rawMessage)
return Text.literal("Missing interpretation on '${message.id}' action ${message.rawMessage}").red()
}
/**
* A variant of [createUnimplemented].
* This will log both the public and private message however the clients will no longer receive the full raw message in order to prevent extra information they shouldn't see.
*
* @param publicMessage The public variant of [BattleMessage] that wasn't able to find a lang interpretation.
* @param privateMessage The private variant of [BattleMessage] that wasn't able to find a lang interpretation.
* @return The generated [Text] meant to notify the client.
*
* @throws IllegalArgumentException if the [publicMessage] and [privateMessage] don't have a matching [BattleMessage.id].
*/
internal fun createUnimplementedSplit(publicMessage: BattleMessage, privateMessage: BattleMessage): Text {
if (publicMessage.id != privateMessage.id) {
throw IllegalArgumentException("Messages do not match")
}
LOGGER.error("Missing interpretation on '{}' action: \nPublic » {}\nPrivate » {}", publicMessage.id, publicMessage.rawMessage, privateMessage.rawMessage)
return Text.literal("Missing interpretation on '${publicMessage.id}' action please report to the developers").red()
}
}
@@ -0,0 +1,38 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model.actor
import com.cobblemon.mod.common.Cobblemon.LOGGER
import com.cobblemon.mod.common.api.battles.model.ai.BattleAI
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.battles.PassActionResponse
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.exception.IllegalActionChoiceException
import com.cobblemon.mod.common.net.messages.client.battle.BattleMakeChoicePacket
import java.util.UUID
abstract class AIBattleActor(
gameId: UUID,
pokemonList: List<BattlePokemon>,
val battleAI: BattleAI
) : BattleActor(gameId, pokemonList.toMutableList()) {
override fun sendUpdate(packet: NetworkPacket<*>) {
super.sendUpdate(packet)
if (packet is BattleMakeChoicePacket) {
try {
setActionResponses(request!!.iterate(this.activePokemon, battleAI::choose))
} catch (exception: IllegalActionChoiceException) {
LOGGER.error("AI was unable to choose a move, we're going to need to pass!")
exception.printStackTrace()
setActionResponses(request!!.iterate(this.activePokemon) { _, _, _ -> PassActionResponse })
}
}
}
}
@@ -0,0 +1,21 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model.actor
/**
* The type of actor it is. This is used for defining PvP, PvW, etc.
*
* @author Hiroku
* @since July 1st, 2022
*/
enum class ActorType {
WILD,
PLAYER,
NPC
}
@@ -0,0 +1,148 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model.actor
import com.cobblemon.mod.common.api.battles.model.PokemonBattle
import com.cobblemon.mod.common.api.net.NetworkPacket
import com.cobblemon.mod.common.battles.ActiveBattlePokemon
import com.cobblemon.mod.common.battles.ForcePassActionResponse
import com.cobblemon.mod.common.battles.ShowdownActionRequest
import com.cobblemon.mod.common.battles.ShowdownActionResponse
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
import com.cobblemon.mod.common.exception.IllegalActionChoiceException
import com.cobblemon.mod.common.net.messages.client.battle.BattleApplyPassResponsePacket
import com.cobblemon.mod.common.net.messages.client.battle.BattleMakeChoicePacket
import com.cobblemon.mod.common.net.messages.client.battle.BattleMessagePacket
import java.util.UUID
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.text.MutableText
import net.minecraft.text.Text
abstract class BattleActor(
val uuid: UUID,
val pokemonList: MutableList<BattlePokemon>
) {
init {
pokemonList.forEach { it.actor = this }
}
lateinit var showdownId: String
lateinit var battle: PokemonBattle
val activePokemon = mutableListOf<ActiveBattlePokemon>()
var canDynamax = false
var request: ShowdownActionRequest? = null
var responses = mutableListOf<ShowdownActionResponse>()
val expectingPassActions = mutableListOf<ShowdownActionResponse>()
var mustChoose = false
/** For when battles start, it's the number of Pokémon that are still in the process of being sent out (animation wise) */
var stillSendingOutCount = 0
abstract val type: ActorType
fun canFitForcedAction() = mustChoose && request?.let { request ->
val countMovable = (request.active?.count() ?: 0) - request.forceSwitch.count { it }
return@let countMovable > expectingPassActions.size && !battle.ended
} ?: false
fun forceChoose(response: ShowdownActionResponse) {
expectingPassActions.add(response)
sendUpdate(BattleApplyPassResponsePacket())
}
fun getSide() = if (this in battle.side1.actors) battle.side1 else battle.side2
open fun getPlayerUUIDs(): Iterable<UUID> = emptyList()
open fun isForPlayer(serverPlayerEntity: ServerPlayerEntity) = serverPlayerEntity.uuid in getPlayerUUIDs()
open fun isForPokemon(pokemonEntity: PokemonEntity) = activePokemon.any { it.battlePokemon?.effectedPokemon?.entity == pokemonEntity }
fun turn() {
val request = request ?: return
responses.clear()
mustChoose = true
sendUpdate(BattleMakeChoicePacket())
val requestActive = request.active
if (requestActive == null || requestActive.isEmpty() || request.wait) {
this.request = null
expectingPassActions.clear()
return
}
}
fun upkeep() {
val request = request ?: return
val forceSwitchPokemon = request.forceSwitch.mapIndexedNotNull { index, b -> if (b) activePokemon[index] else null }
if (forceSwitchPokemon.isEmpty()) {
return
}
sendUpdate(BattleMakeChoicePacket())
mustChoose = true
}
fun setActionResponses(responses: List<ShowdownActionResponse>) {
val request = request ?: return
val originalPassActions = expectingPassActions.toList()
responses.forEachIndexed { index, response ->
val activeBattlePokemon = activePokemon.let { if (it.size > index) it[index] else return }
val showdownMoveSet = request.active?.let { if (it.size > index) it[index] else null }
val forceSwitch = request.forceSwitch.let { if (it.size > index) it[index] else false }
if (!response.isValid(activeBattlePokemon, showdownMoveSet, forceSwitch)) {
expectingPassActions.clear()
expectingPassActions.addAll(originalPassActions)
throw IllegalActionChoiceException(this, "Invalid action choice for ${activeBattlePokemon.battlePokemon!!.getName().string}: $response")
} else if (response is ForcePassActionResponse) {
this.responses.add(expectingPassActions.removeAt(0))
} else {
this.responses.add(response)
}
}
if (expectingPassActions.size > 0) {
throw IllegalActionChoiceException(this, "Invalid action choice: a capture was expected. Are you hacking me?")
}
mustChoose = false
battle.checkForInputDispatch()
}
fun writeShowdownResponse() {
val showdownMessages = mutableListOf<String>()
var index = 0
request!!.iterate(activePokemon) { activeBattlePokemon, showdownMoveSet, forceSwitch ->
// if (!activeBattlePokemon.isGone() && (activeBattlePokemon.isAlive() || forceSwitch)) {
showdownMessages.add(responses[index].toShowdownString(activeBattlePokemon, showdownMoveSet))
// }
index++
}
responses.clear()
request = null
expectingPassActions.clear()
battle.writeShowdownAction(">$showdownId ${showdownMessages.joinToString()}")
}
abstract fun getName(): MutableText
/**
* Appends the given name to this owner as the prefix.
* NPC and player actors expect to append their [getName] while wild Pokémon append nothing.
*
* @param name The name of an object being appended, typically a Pokémon nickname received from showdown.
* @return A [MutableText] of the [name] append with owner prefix.
*/
abstract fun nameOwned(name: String): MutableText
open fun sendMessage(component: Text) {
sendUpdate(BattleMessagePacket(component))
}
open fun awardExperience(battlePokemon: BattlePokemon, experience: Int) {}
open fun sendUpdate(packet: NetworkPacket<*>) {}
}
@@ -0,0 +1,25 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model.actor
import net.minecraft.entity.LivingEntity
/**
* Allows a [BattleActor] to attach a [LivingEntity] to itself.
*
* @param T The type of [LivingEntity].
*/
interface EntityBackedBattleActor<T : LivingEntity> {
/**
* The [LivingEntity] attached to the [BattleActor].
*/
val entity: T?
}
@@ -0,0 +1,17 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model.actor
import net.minecraft.server.world.ServerWorld
import net.minecraft.util.math.Vec3d
interface FleeableBattleActor {
val fleeDistance: Float
fun getWorldAndPosition(): Pair<ServerWorld, Vec3d>?
}
@@ -0,0 +1,30 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.battles.model.ai
import com.cobblemon.mod.common.battles.ActiveBattlePokemon
import com.cobblemon.mod.common.battles.ShowdownActionResponse
import com.cobblemon.mod.common.battles.ShowdownMoveset
/**
* Interface for an actors battle AI
*
* @since January 16th, 2022
* @author Deltric
*/
interface BattleAI {
/**
* Requests that the AI choose an action for the given Pokémon
* @param activeBattlePokemon The Pokémon slot that is choosing an action
* @param moveset The [ShowdownMoveset] for this slot. This can be null if [forceSwitch] is true. Otherwise it is the available move information from Showdown.
* @param forceSwitch Whether or not this is a force switch situation.
* @return the action response
*/
fun choose(activeBattlePokemon: ActiveBattlePokemon, moveset: ShowdownMoveset?, forceSwitch: Boolean): ShowdownActionResponse
}
@@ -0,0 +1,133 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.callback
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.api.moves.Move
import com.cobblemon.mod.common.api.moves.MoveTemplate
import com.cobblemon.mod.common.api.moves.Moves
import com.cobblemon.mod.common.api.text.text
import com.cobblemon.mod.common.battles.InBattleMove
import com.cobblemon.mod.common.net.IntSize
import com.cobblemon.mod.common.net.messages.client.callback.OpenMoveCallbackPacket
import com.cobblemon.mod.common.util.readSizedInt
import com.cobblemon.mod.common.util.writeSizedInt
import java.util.UUID
import net.minecraft.network.PacketByteBuf
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.text.Text
/**
* Used for opening move selection screens for players and handling their choice. Currently
* only supports up to 4 moves to select from.
*
* @author Hiroku
* @since July 1st, 2023
*/
object MoveSelectCallbacks {
val callbacks = mutableMapOf<UUID, MoveSelectCallback>()
@JvmOverloads
fun create(
player: ServerPlayerEntity,
title: Text = "".text(),
possibleMoves: List<MoveSelectDTO>,
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (ServerPlayerEntity, index: Int, MoveSelectDTO) -> Unit
) {
val callback = MoveSelectCallback(
shownMoves = possibleMoves,
cancel = cancel,
handler = handler
)
callbacks[player.uuid] = callback
player.sendPacket(OpenMoveCallbackPacket(callback.uuid, title.copy(), possibleMoves))
}
@JvmOverloads
fun create(
player: ServerPlayerEntity,
moves: List<Move>,
canSelect: (Move) -> Boolean = { true },
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (Move) -> Unit
) = create(
player = player,
possibleMoves = moves.map { battleMove -> MoveSelectDTO(battleMove).also { it.enabled = canSelect(battleMove) } },
cancel = cancel,
handler = { _, index, _ -> handler(moves[index]) }
)
@JvmOverloads
fun createBattleSelect(
player: ServerPlayerEntity,
moves: List<InBattleMove>,
canSelect: (InBattleMove) -> Boolean = { true },
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (InBattleMove) -> Unit
) = create(
player = player,
possibleMoves = moves.map { battleMove -> MoveSelectDTO(battleMove).also { it.enabled = canSelect(battleMove) } },
cancel = cancel,
handler = { _, index, _ -> handler(moves[index]) }
)
fun handleCancelled(player: ServerPlayerEntity, uuid: UUID) {
val callback = callbacks[player.uuid] ?: return
if (callback.uuid != uuid) {
return
}
callbacks.remove(player.uuid)
callback.cancel(player)
}
fun handleCallback(player: ServerPlayerEntity, uuid: UUID, index: Int) {
val callback = callbacks[player.uuid] ?: return
callbacks.remove(player.uuid)
if (callback.uuid != uuid) {
Cobblemon.LOGGER.warn("A move select callback ran but with a mismatching UUID from ${player.gameProfile.name}. Hacking attempts?")
} else if (index >= callback.shownMoves.size) {
Cobblemon.LOGGER.warn("${player.gameProfile.name} used move select callback with an index that was out of bounds. Hacking attempts? Tried $index, possible size was ${callback.shownMoves.size}")
} else if (!callback.shownMoves[index].enabled) {
Cobblemon.LOGGER.warn("${player.gameProfile.name} used move select callback with a move that is not enabled. Hacking attempts?")
} else {
callback.handler(player, index, callback.shownMoves[index])
}
}
}
class MoveSelectCallback(
val uuid: UUID = UUID.randomUUID(),
val shownMoves: List<MoveSelectDTO>,
val cancel: (ServerPlayerEntity) -> Unit = {},
val handler: (ServerPlayerEntity, Int, MoveSelectDTO) -> Unit
)
class MoveSelectDTO(val moveTemplate: MoveTemplate, var enabled: Boolean, val pp: Int = -1, val ppMax: Int = -1) {
@JvmOverloads
constructor(move: Move, enabled: Boolean = true): this(moveTemplate = move.template, enabled = enabled, pp = move.currentPp, ppMax = move.maxPp)
@JvmOverloads
constructor(move: InBattleMove, enabled: Boolean = true): this(moveTemplate = Moves.getByNameOrDummy(move.move), enabled = enabled, pp = move.pp, ppMax = move.maxpp)
constructor(buffer: PacketByteBuf): this(
moveTemplate = Moves.getByNameOrDummy(buffer.readString()),
enabled = buffer.readBoolean(),
pp = buffer.readSizedInt(IntSize.BYTE),
ppMax = buffer.readSizedInt(IntSize.BYTE)
)
fun writeToBuffer(buffer: PacketByteBuf) {
buffer.writeString(moveTemplate.name)
buffer.writeBoolean(enabled)
buffer.writeSizedInt(IntSize.BYTE, pp)
buffer.writeSizedInt(IntSize.BYTE, ppMax)
}
}
@@ -0,0 +1,114 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.callback
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.api.moves.Move
import com.cobblemon.mod.common.net.messages.client.callback.OpenPartyMoveCallbackPacket
import com.cobblemon.mod.common.pokemon.Pokemon
import java.util.UUID
import net.minecraft.server.network.ServerPlayerEntity
/**
* Used for opening a party select screen for players which routes to move selection when they choose a Pokémon.
* You can do the same sort of thing with combined [MoveSelectCallbacks] and [PartySelectCallbacks] but it isn't
* as smooth an experience.
*
* @author Hiroku
* @since July 29th, 2023
*/
object PartyMoveSelectCallbacks {
val callbacks = mutableMapOf<UUID, PartyMoveSelectCallback>()
@JvmOverloads
fun create(
player: ServerPlayerEntity,
pokemon: List<Pair<PartySelectPokemonDTO, List<MoveSelectDTO>>>,
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (ServerPlayerEntity, pokemonIndex: Int, PartySelectPokemonDTO, moveIndex: Int, MoveSelectDTO) -> Unit
) {
val callback = PartyMoveSelectCallback(
pokemon = pokemon,
cancel = cancel,
handler = handler
)
callbacks[player.uuid] = callback
player.sendPacket(OpenPartyMoveCallbackPacket(callback.uuid, callback.pokemon))
}
@JvmOverloads
fun createFromPokemon(
player: ServerPlayerEntity,
pokemon: List<Pokemon>,
moves: (Pokemon) -> List<Move> = { it.moveSet.getMoves() },
canSelectPokemon: (Pokemon) -> Boolean = { true },
canSelectMove: (Pokemon, Move) -> Boolean = { _, _ -> true },
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (Pokemon, Move) -> Unit
) {
val pokemonList = mutableListOf<Pair<PartySelectPokemonDTO, List<MoveSelectDTO>>>()
for (pk in pokemon) {
val enabled = canSelectPokemon(pk)
val moveList = moves(pk).map { MoveSelectDTO(it, enabled = canSelectMove(pk, it)) }
pokemonList.add(PartySelectPokemonDTO(pk, enabled) to moveList)
}
create(
player = player,
pokemon = pokemonList,
cancel = cancel,
handler = { _, pkIndex, _, moveIndex, _ ->
handler(pokemon[pkIndex], pokemon[pkIndex].moveSet[moveIndex] ?: return@create)
}
)
}
fun handleCancelled(player: ServerPlayerEntity, uuid: UUID) {
val callback = callbacks[player.uuid] ?: return
if (callback.uuid != uuid) {
return
}
callbacks.remove(player.uuid)
callback.cancel(player)
}
fun handleCallback(player: ServerPlayerEntity, uuid: UUID, pokemonIndex: Int, moveIndex: Int) {
val callback = callbacks[player.uuid] ?: return
callbacks.remove(player.uuid)
if (callback.uuid != uuid) {
return Cobblemon.LOGGER.warn("A party move select callback ran but with a mismatching UUID from ${player.gameProfile.name}. Hacking attempts?")
} else if (pokemonIndex >= callback.pokemon.size) {
return Cobblemon.LOGGER.warn("${player.gameProfile.name} used party move select callback with a Pokémon index that was out of bounds. Hacking attempts? Tried $pokemonIndex, possible size was ${callback.pokemon.size}")
}
val (pokemon, moves) = callback.pokemon[pokemonIndex]
if (!pokemon.enabled) {
return Cobblemon.LOGGER.warn("${player.gameProfile.name} used party move select callback with a Pokémon that is not enabled. Hacking attempts?")
} else if (moveIndex >= moves.size) {
return Cobblemon.LOGGER.warn("${player.gameProfile.name} used party move select callback with a move index that was out of bounds. Hacking attempts? Tried $pokemonIndex-$moveIndex, possible size was ${moves.size}")
}
val move = moves[moveIndex]
if (!move.enabled) {
Cobblemon.LOGGER.warn("${player.gameProfile.name} used party move select callback with a move that is not enabled. Hacking attempts?")
} else {
callback.handler(player, pokemonIndex, pokemon, moveIndex, move)
}
}
}
class PartyMoveSelectCallback(
val uuid: UUID = UUID.randomUUID(),
val pokemon: List<Pair<PartySelectPokemonDTO, List<MoveSelectDTO>>>,
val cancel: (ServerPlayerEntity) -> Unit = {},
val handler: (ServerPlayerEntity, pokemonIndex: Int, PartySelectPokemonDTO, moveIndex: Int, MoveSelectDTO) -> Unit
)
@@ -0,0 +1,152 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.callback
import com.cobblemon.mod.common.Cobblemon
import com.cobblemon.mod.common.CobblemonNetwork.sendPacket
import com.cobblemon.mod.common.api.pokemon.PokemonProperties
import com.cobblemon.mod.common.api.pokemon.PokemonPropertyExtractor
import com.cobblemon.mod.common.api.text.text
import com.cobblemon.mod.common.battles.pokemon.BattlePokemon
import com.cobblemon.mod.common.net.messages.client.callback.OpenPartyCallbackPacket
import com.cobblemon.mod.common.pokemon.Pokemon
import java.util.UUID
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NbtCompound
import net.minecraft.network.PacketByteBuf
import net.minecraft.server.network.ServerPlayerEntity
import net.minecraft.text.Text
/**
* Used for opening party Pokémon selection screens for players and handling their choice. Currently
* only supports up to 6 Pokémon to select from.
*
* @author Hiroku
* @since July 1st, 2023
*/
object PartySelectCallbacks {
val callbacks = mutableMapOf<UUID, PartySelectCallback>()
@JvmOverloads
fun create(
player: ServerPlayerEntity,
title: Text = "".text(),
pokemon: List<PartySelectPokemonDTO>,
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (ServerPlayerEntity, index: Int) -> Unit
) {
val callback = PartySelectCallback(
shownPokemon = pokemon,
cancel = cancel,
handler = handler
)
callbacks[player.uuid] = callback
player.sendPacket(
OpenPartyCallbackPacket(
uuid = callback.uuid,
title = title.copy(),
pokemon = pokemon
)
)
}
@JvmOverloads
fun createBattleSelect(
player: ServerPlayerEntity,
pokemon: List<BattlePokemon>,
canSelect: (BattlePokemon) -> Boolean,
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (BattlePokemon) -> Unit
) = create(
player = player,
cancel = cancel,
pokemon = pokemon.map { pk -> PartySelectPokemonDTO(pk.effectedPokemon).also { it.enabled = canSelect(pk) } }
) { _, index -> handler(pokemon[index]) }
@JvmOverloads
fun createFromPokemon(
player: ServerPlayerEntity,
pokemon: List<Pokemon>,
canSelect: (Pokemon) -> Boolean,
cancel: (ServerPlayerEntity) -> Unit = {},
handler: (Pokemon) -> Unit
) = create(
player = player,
cancel = cancel,
pokemon = pokemon.map { pk -> PartySelectPokemonDTO(pk).also { it.enabled = canSelect(pk) } }
) { _, index -> handler(pokemon[index]) }
fun handleCancelled(player: ServerPlayerEntity, uuid: UUID) {
val callback = callbacks[player.uuid] ?: return
if (callback.uuid != uuid) {
return
}
callbacks.remove(player.uuid)
callback.cancel(player)
}
fun handleCallback(player: ServerPlayerEntity, uuid: UUID, index: Int) {
val callback = callbacks[player.uuid] ?: return
callbacks.remove(player.uuid)
if (callback.uuid != uuid) {
Cobblemon.LOGGER.warn("A party select callback ran but with a mismatching UUID from ${player.gameProfile.name}. Hacking attempts?")
} else if (index >= callback.shownPokemon.size) {
Cobblemon.LOGGER.warn("${player.gameProfile.name} used party select callback with an out of bounds index. Hacking attempts? Tried $index, Pokémon list size was ${callback.shownPokemon.size}")
} else if (!callback.shownPokemon[index].enabled) {
Cobblemon.LOGGER.warn("${player.gameProfile.name} used party select callback with a Pokémon that is not enabled. Hacking attempts?")
} else {
callback.handler(player, index)
}
}
}
class PartySelectCallback(
val uuid: UUID = UUID.randomUUID(),
val shownPokemon: List<PartySelectPokemonDTO>,
val cancel: (ServerPlayerEntity) -> Unit = {},
val handler: (ServerPlayerEntity, index: Int) -> Unit
)
open class PartySelectPokemonDTO(
val pokemonProperties: PokemonProperties,
val heldItem: ItemStack = ItemStack.EMPTY,
var hpRatio: Float = 1F,
var enabled: Boolean
) {
@JvmOverloads
constructor(pokemon: Pokemon, enabled: Boolean = true): this(
pokemonProperties = pokemon.createPokemonProperties(
PokemonPropertyExtractor.ASPECTS,
PokemonPropertyExtractor.SPECIES,
PokemonPropertyExtractor.LEVEL,
PokemonPropertyExtractor.NICKNAME,
PokemonPropertyExtractor.POKEBALL,
PokemonPropertyExtractor.STATUS
),
heldItem = pokemon.heldItemNoCopy(),
hpRatio = pokemon.currentHealth / pokemon.hp.toFloat(),
enabled = enabled
)
constructor(buffer: PacketByteBuf): this(
pokemonProperties = PokemonProperties().loadFromNBT(buffer.readNbt() as NbtCompound),
heldItem = buffer.readItemStack(),
hpRatio = buffer.readFloat(),
enabled = buffer.readBoolean()
)
fun writeToBuffer(buffer: PacketByteBuf) {
buffer.writeNbt(pokemonProperties.saveToNBT())
buffer.writeItemStack(heldItem)
buffer.writeFloat(hpRatio)
buffer.writeBoolean(enabled)
}
}
@@ -0,0 +1,47 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.codec
import com.mojang.datafixers.util.Pair
import com.mojang.serialization.Codec
import com.mojang.serialization.DataResult
import com.mojang.serialization.DynamicOps
import com.mojang.serialization.codecs.PrimitiveCodec
import com.mojang.serialization.codecs.RecordCodecBuilder
import net.minecraft.network.PacketByteBuf
class MappedCodec<A : CodecMapped, K>(
val codecRetriever: (K) -> Codec<out A>,
val keyName: String = "type",
val keyFromString: (String) -> K
) : Codec<A> {
override fun <T> encode(input: A, ops: DynamicOps<T>, prefix: T): DataResult<T> {
return input.encode(ops)
}
override fun <T> decode(ops: DynamicOps<T>, input: T): DataResult<Pair<A, T>> {
val thingCodec: Codec<ThingWithType> = RecordCodecBuilder.create { instance ->
instance
.group(PrimitiveCodec.STRING.fieldOf(keyName).forGetter { it.string })
.apply(instance, ::ThingWithType)
}
val thingWithType = thingCodec.decode(ops, input).map { it.first }
val key = thingWithType.get().left().get().string
val codec = codecRetriever(keyFromString(key))
return codec.decode(ops, input).map { Pair(it.first, it.second) }
}
}
private class ThingWithType(val string: String)
interface CodecMapped {
fun <T> encode(ops: DynamicOps<T>): DataResult<T>
fun readFromBuffer(buffer: PacketByteBuf)
fun writeToBuffer(buffer: PacketByteBuf)
}
@@ -0,0 +1,31 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.conditional
import com.google.gson.JsonDeserializationContext
import com.google.gson.JsonDeserializer
import com.google.gson.JsonElement
import java.lang.reflect.Type
/**
* Adapter for [RegistryLikeCondition]s. Its logic is that the implementation of this adapter must
* provide a list of resolvers, and the deserializer will find the first resolver that returns a non-null
* value for the [JsonElement].
*
* @author Hiroku
* @since July 17th, 2022
*/
interface RegistryLikeAdapter<B> : JsonDeserializer<RegistryLikeCondition<B>> {
val registryLikeConditions: MutableList<(JsonElement) -> RegistryLikeCondition<B>?>
override fun deserialize(json: JsonElement, type: Type, ctx: JsonDeserializationContext): RegistryLikeCondition<B> {
return registryLikeConditions.firstNotNullOfOrNull { it(json) }
?: throw IllegalArgumentException("Unable to deserialize $json")
}
}
@@ -0,0 +1,21 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.conditional
import net.minecraft.registry.Registry
/**
* A condition which applies to an entry in some [Registry].
*
* @author Hiroku
* @since July 16th, 2022
*/
interface RegistryLikeCondition<T> {
fun fits(t: T, registry: Registry<T>): Boolean
}
@@ -0,0 +1,28 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.conditional
import com.google.gson.JsonElement
import net.minecraft.registry.Registry
import net.minecraft.util.Identifier
/**
* A condition for some registry type which asserts that the entry must have the given [Identifier].
*
* @author Hiroku
* @since July 16th, 2022
*/
open class RegistryLikeIdentifierCondition<T>(val identifier: Identifier) : RegistryLikeCondition<T> {
companion object {
fun <T> resolver(
constructor: (Identifier) -> RegistryLikeIdentifierCondition<T>
): (JsonElement) -> RegistryLikeIdentifierCondition<T>? = { constructor(Identifier(it.asString)) }
}
override fun fits(t: T, registry: Registry<T>) = registry.getId(t) == identifier
}
@@ -0,0 +1,54 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.conditional
import com.google.gson.JsonElement
import net.minecraft.registry.Registry
import net.minecraft.registry.RegistryKey
import net.minecraft.registry.tag.TagKey
import net.minecraft.util.Identifier
/**
* A condition for some registry type that asserts that the entry must be inside the given [TagKey]. This is presented
* in JSONs as an identifier prefixed with a hash.
*
* @author Hiroku
* @since July 16th, 2022
*/
open class RegistryLikeTagCondition<T>(val tag: TagKey<T>) : RegistryLikeCondition<T> {
companion object {
const val PREFIX = "#"
fun <T> resolver(
registryKey: RegistryKey<Registry<T>>,
constructor: (TagKey<T>) -> RegistryLikeTagCondition<T>
): (JsonElement) -> RegistryLikeTagCondition<T>? = {
val firstSymbol = it.asString.substring(0, 1)
if (firstSymbol == PREFIX) {
val identifier = Identifier(it.asString.substring(1))
constructor(TagKey.of(registryKey, identifier))
} else {
null
}
}
}
override fun fits(t: T, registry: Registry<T>): Boolean {
// val registryHasTag = registry.containsTag(tag)
// if (!registryHasTag) {
//// LOGGER.warn("No tag in registry: ${tag.id}")
// return false
// }
return registry.getKey(t)
.flatMap(registry::getEntry)
.map { entry -> entry.isIn(tag) }
.orElse(false)
}
}
@@ -0,0 +1,49 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.data
import com.cobblemon.mod.common.api.codec.CodecMapped
import com.cobblemon.mod.common.api.codec.MappedCodec
import com.mojang.serialization.Codec
import net.minecraft.network.PacketByteBuf
/**
* A utility class to help give Codec support for map adapted class hierarchies.
*
* @author Hiroku
* @since January 21st, 2023
*/
abstract class ArbitrarilyMappedSerializableCompanion<T : CodecMapped, K>(
val keyFromString: (String) -> K,
val stringFromKey: (K) -> String,
val keyFromValue: (T) -> K
) {
val codec: MappedCodec<T, K> = MappedCodec(codecRetriever = { subtypes[it]!!.codec }, keyFromString = keyFromString)
private val subtypes = mutableMapOf<K, RegisteredSubtype<out T>>()
fun <E : T> registerSubtype(key: K, clazz: Class<E>, codec: Codec<E>) {
subtypes[key] = RegisteredSubtype(clazz, codec)
}
fun writeToBuffer(buffer: PacketByteBuf, value: T) {
val typeString = stringFromKey(keyFromValue(value))
buffer.writeString(typeString)
value.writeToBuffer(buffer)
}
fun readFromBuffer(buffer: PacketByteBuf): T {
val typeString = buffer.readString()
val clazz = subtypes[keyFromString(typeString)]?.clazz ?: throw IllegalArgumentException("Unrecognized subtype: $typeString")
val value = clazz.getDeclaredConstructor().newInstance()
value.readFromBuffer(buffer)
return value
}
}
class RegisteredSubtype<T>(val clazz: Class<out T>, val codec: Codec<out T>)
@@ -0,0 +1,32 @@
/*
* Copyright (C) 2023 Cobblemon Contributors
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/
package com.cobblemon.mod.common.api.data
import com.cobblemon.mod.common.api.net.Decodable
import com.cobblemon.mod.common.api.net.Encodable
/**
* Represents an object that will possibly be synchronized to the client during datapack synchronization.
*
* @param T The type of the object being synchronized.
*
* @author Licious
* @since October 14th, 2022
*/
interface ClientDataSynchronizer<T> : Decodable, Encodable {
/**
* Compares an object of type [T] with this instance to see if synchronization is necessary.
*
* @param other The other instance of type [T].
* @return If synchronization is necessary.
*/
fun shouldSynchronize(other: T): Boolean
}

Some files were not shown because too many files have changed in this diff Show More