This PR adds the particles and visual effects Ars Magica 2 was famous for into the mod. Specifically, it:
Adds various new particle types with textures from the old mod, some of which were reworked into the JAPPA style
Adds the AMParticle class that can take any other particle's appearance
Adds a particle controller system that allows for complex particle movements to be defined
Adds a particle spawning system that runs on the client upon receiving a packet from the server. The server does not spawn the particles itself, making the system suited for multiplayer
Adds particle spawners for all components that had particle spawning in the old mod, staying as close to the old design as reasonably possible
Replaces the old particles on some of the entities (projectile, wall, wave, zone, blizzard, firestorm, falling star, mana vortex) with proper new particles
Integrates with the Color modifier (see #355 )
It also does some other minor adjustments:
Changes the beam shape's color depending on the spell's primary affinity
Changes some implementation details on some of the spell parts
Fixes SkillHelper to not crash when leaving the end (we had like 5 issues like this now, I'm growing tired)
Replaces the LivingEntity::canBreatheUnderwater call in AMSpellParts with a call to the new fluid system
Adds missing loot tables for the three inlay blocks
Adds new API methods for getting the spell item stack from an entity or from an interaction hand
Removes AMUtil.nextDouble and replaces its uages with direct RandomSource#nextDouble calls
Removes various overrides of Entity#isPushable, courtesy of IntelliJ's new "method is identical to supermethod" inspection
Removes the ItemSupplier implementation on various entities (it was never actually needed for anything except Projectile)
This is a draft PR for now, so that people can review it. It will be marked as ready once all particle effects have actually been implemented.
This PR adds the particles and visual effects Ars Magica 2 was famous for into the mod. Specifically, it:
AMParticle
class that can take any other particle's appearanceIt also does some other minor adjustments:
SkillHelper
to not crash when leaving the end (we had like 5 issues like this now, I'm growing tired)LivingEntity::canBreatheUnderwater
call inAMSpellParts
with a call to the new fluid systemAMUtil.nextDouble
and replaces its uages with directRandomSource#nextDouble
callsEntity#isPushable
, courtesy of IntelliJ's new "method is identical to supermethod" inspectionItemSupplier
implementation on various entities (it was never actually needed for anything exceptProjectile
)This is a draft PR for now, so that people can review it. It will be marked as ready once all particle effects have actually been implemented.