Jump to content

failing at spawning particles


JoeStrout

Recommended Posts

I've got server code spawning a bunch of particles in front of the player, but I see nothing.  What am I missing?

 

Here's the code (caster is an EntityPlayer):

			World world = caster.world;
			Vec3d pos = ModUtils.PointAhead(caster, 1.5F);
			Vec3d lookDir = caster.getLookVec();
			for (int i = 0; i < 32; i++) {
				Vec3d v = new Vec3d(lookDir.x + MathHelper.nextDouble(random, -0.5, 0.5),
						lookDir.y + MathHelper.nextDouble(random, -0.5, 0.5),
						lookDir.z + MathHelper.nextDouble(random, -0.5, 0.5));
				v = v.scale(2);
				world.spawnAlwaysVisibleParticle(EnumParticleTypes.SPELL_MOB.getParticleID(), 
						pos.x, pos.y, pos.z, 
						v.x, v.y, v.z, // velocity
						// (optional particle arguments go here... maybe color?)
						255, 0, 0);
				System.out.println("Spawned particle at " + pos + " with velocity " + v);
			}
		}

 

 

And this causes messages like the following to appear in the log:

[08:49:09] [Server thread/INFO] [STDOUT]: [net.strout.wizarding.SpellEffects$Sparks:DoEffect:131]: Spawned particle at (-621.3208915739522, 64.58865155559033, 346.8873318756315) with velocity (1.2252315947908472, -0.24176556778545355, -0.10210638379011927)
[08:49:09] [Server thread/INFO] [STDOUT]: [net.strout.wizarding.SpellEffects$Sparks:DoEffect:131]: Spawned particle at (-621.3208915739522, 64.58865155559033, 346.8873318756315) with velocity (1.2878165420981733, 0.6032242196690139, 0.04981358307420081)
[08:49:09] [Server thread/INFO] [STDOUT]: [net.strout.wizarding.SpellEffects$Sparks:DoEffect:131]: Spawned particle at (-621.3208915739522, 64.58865155559033, 346.8873318756315) with velocity (1.6579566964412826, -0.5821367025405804, 0.6348263056580719)

 

I have studied these coordinates compared to my position and rotation, and they are correct (1.5 blocks in front of my eyes).  I've used very similar code on the client, and then I do see particles appear.  But of course this should be done on the server, so that all players can see them (right?).

 

While I'm using spawnAlwaysVisibleParticle in the code above, I've also tried other variations (spawnParticle) with the same result.  And I don't think it's an issue with my graphics settings, since particles spawned on the client do appear.

 

So... what am I doing wrong?

Link to comment
Share on other sites

Wow, I guess I had that all wrong.  But it explains a lot.

 

But if they're spawned client-side... doesn't that mean that other players do not see them?

 

Supposing I do want the particles to be seen by all clients, I guess that means I either get the non-overriding WorldServer versions, or send my own packets to all nearby clients to spawn their own particles?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.