@@ -41,6 +41,11 @@ public void upload(IParticle particle, FloatBuffer buffer, float partialTicks) {
4141 1 , (particle , buffer , partialTick ) -> buffer .put (Float .intBitsToFloat (particle .getAge ()))),
4242 new ParticleDataProvider ("addition_gpu_data.lifetime" , Component .translatable ("addition_gpu_data.type.int" ),
4343 1 , (particle , buffer , partialTick ) -> buffer .put (Float .intBitsToFloat (particle .getLifetime ()))),
44+ new ParticleDataProvider ("addition_gpu_data.position" , Component .translatable ("addition_gpu_data.type.vec3" ),
45+ 3 , (particle , buffer , partialTick ) -> {
46+ var pos = particle .getLocalPos (partialTick );
47+ buffer .put (pos .x ).put (pos .y ).put (pos .z );
48+ }),
4449 new ParticleDataProvider ("addition_gpu_data.velocity" , Component .translatable ("addition_gpu_data.type.vec3" ),
4550 3 , (particle , buffer , partialTick ) -> {
4651 var velocity = particle .getRealVelocity ();
@@ -53,6 +58,11 @@ public void upload(IParticle particle, FloatBuffer buffer, float partialTicks) {
5358 1 , (particle , buffer , partialTick ) -> buffer .put (particle .getEmitter ().getT (partialTick ))),
5459 new ParticleDataProvider ("addition_gpu_data.emitter_age" , Component .translatable ("addition_gpu_data.type.int" ),
5560 1 , (particle , buffer , partialTick ) -> buffer .put (Float .intBitsToFloat (particle .getEmitter ().getAge ()))),
61+ new ParticleDataProvider ("addition_gpu_data.emitter_position" , Component .translatable ("addition_gpu_data.type.vec3" ),
62+ 3 , (particle , buffer , partialTick ) -> {
63+ var position = particle .getEmitter ().transform ().position ();
64+ buffer .put (position .x ).put (position .y ).put (position .z );
65+ }),
5666 new ParticleDataProvider ("addition_gpu_data.emitter_velocity" , Component .translatable ("addition_gpu_data.type.vec3" ),
5767 3 , (particle , buffer , partialTick ) -> {
5868 var velocity = particle .getEmitter ().getVelocity ();
0 commit comments