11package net .worldseed .particleemitter .generator ;
22
3+ import net .minestom .server .color .Color ;
34import net .minestom .server .coordinate .Vec ;
45import net .minestom .server .network .packet .server .play .ParticlePacket ;
56import net .minestom .server .particle .Particle ;
6- import net .minestom .server .utils .binary .BinaryWriter ;
7+ import net .minestom .server .particle .data .DustColorTransitionParticleData ;
8+ import net .minestom .server .particle .data .DustParticleData ;
79
810import java .util .Map ;
911
@@ -27,44 +29,33 @@ else if (particleType == Particle.FLAME
2729 }
2830
2931 private static ParticlePacket buildDustTransition (double x , double y , double z , double size , double r , double g , double b , double r2 , double g2 , double b2 ) {
30- BinaryWriter writer = new BinaryWriter ();
31- writer .writeFloat ((float ) r );
32- writer .writeFloat ((float ) g );
33- writer .writeFloat ((float ) b );
34- writer .writeFloat ((float ) size );
35- writer .writeFloat ((float ) r2 );
36- writer .writeFloat ((float ) g2 );
37- writer .writeFloat ((float ) b2 );
38- return new ParticlePacket (Particle .DUST_COLOR_TRANSITION .id (), true , x , y , z , 0 , 0 , 0 , 0 , 0 , writer .toByteArray ());
32+ DustColorTransitionParticleData data = new DustColorTransitionParticleData (new Color ((int ) (r * 255 ), (int ) (g * 255 ), (int ) (b * 255 )), (float ) size , new Color ((int ) (r2 * 255 ), (int ) (g2 * 255 ), (int ) (b2 * 255 )));
33+ return new ParticlePacket (Particle .DUST_COLOR_TRANSITION .id (), true , x , y , z , 0 , 0 , 0 , 0 , 0 , data );
3934 }
4035
4136 private static ParticlePacket buildGeneric (Particle p , double x , double y , double z ) {
42- return new ParticlePacket (p . id () , true , x , y , z , 0 , 0 , 0 , 0 , 0 , new byte [ 0 ] );
37+ return new ParticlePacket (p , true , x , y , z , 0 , 0 , 0 , 0 , 0 );
4338 }
4439
4540 private static ParticlePacket buildDirectional (Particle p , double x , double y , double z , double velocityX , double velocityY , double velocityZ ) {
4641 Vec vec = new Vec (velocityX , velocityY , velocityZ );
4742 double size = vec .length ();
4843 vec = vec .normalize ();
4944
50- return new ParticlePacket (p .id (), true , x , y , z , (float ) vec .x (), (float ) vec .y (), (float ) vec .z (), (float ) size , 0 , new byte [ 0 ] );
45+ return new ParticlePacket (p .id (), true , x , y , z , (float ) vec .x (), (float ) vec .y (), (float ) vec .z (), (float ) size , 0 , p . data () );
5146 }
5247
5348 private static ParticlePacket buildDust (double x , double y , double z , double size , double r , double g , double b ) {
54- BinaryWriter writer = new BinaryWriter ();
55- writer .writeFloat ((float ) r );
56- writer .writeFloat ((float ) g );
57- writer .writeFloat ((float ) b );
58- writer .writeFloat ((float ) size );
59- return new ParticlePacket (Particle .DUST .id (), true , x , y , z , 0 , 0 , 0 , 0 , 0 , writer .toByteArray ());
49+ DustParticleData data = new DustParticleData (new Color ((int ) (r * 255 ), (int ) (g * 255 ), (int ) (b * 255 )), (float ) size );
50+ return new ParticlePacket (Particle .DUST .id (), true , x , y , z , 0 , 0 , 0 , 0 , 0 , data );
6051 }
6152
6253 private static ParticlePacket buildEffect (double x , double y , double z , double r , double g , double b ) {
63- return new ParticlePacket (Particle .ENTITY_EFFECT .id (), true , x , y , z , (float ) r , (float ) g , (float ) b , 1 , 0 , new byte [ 0 ] );
54+ return new ParticlePacket (Particle .ENTITY_EFFECT .id (), true , x , y , z , (float ) r , (float ) g , (float ) b , 1 , 0 , Particle . ENTITY_EFFECT . data () );
6455 }
6556
6657 private static ParticlePacket buildEffectAmbient (double x , double y , double z , double r , double g , double b ) {
67- return new ParticlePacket (Particle .AMBIENT_ENTITY_EFFECT .id (), true , x , y , z , (float ) r , (float ) g , (float ) b , 1 , 0 , new byte [ 0 ] );
58+ return new ParticlePacket (Particle .AMBIENT_ENTITY_EFFECT .id (), true , x , y , z , (float ) r , (float ) g , (float ) b , 1 , 0 , Particle . AMBIENT_ENTITY_EFFECT . data () );
6859 }
6960
7061 private static final Map <Vec , Double > noteColours = Map .ofEntries (
@@ -88,6 +79,6 @@ private static double calculateMinDiff(double r, double g, double b) {
8879 }
8980
9081 private static ParticlePacket buildNote (double x , double y , double z , double r , double g , double b ) {
91- return new ParticlePacket (Particle .NOTE .id (), true , x , y , z , (float ) (calculateMinDiff (r , g , b )), 0 , 0 , 1 , 0 , new byte [ 0 ] );
82+ return new ParticlePacket (Particle .NOTE .id (), true , x , y , z , (float ) (calculateMinDiff (r , g , b )), 0 , 0 , 1 , 0 , Particle . NOTE . data () );
9283 }
9384}
0 commit comments