Posted May 28, 20205 yr I have a custom entity which I want to add particles to the world at its position, both on each tick, and on impact. My entity does spawn, and the impact is detected, however, no matter what I try, I cannot create particles. public class SpellEntity extends ThrowableEntity { public SpellEntity(EntityType<? extends ThrowableEntity> type, World worldIn) { super(type, worldIn); } public SpellEntity(World worldIn, PlayerEntity playerIn) { super(ModEntityTypes.SPELL_ENTITY.get(), playerIn, worldIn); } @Override public void tick() { super.tick(); if (world.isRemote) { this.world.addParticle(ParticleTypes.FLAME, this.getPosX(), this.getPosY(), this.getPosZ(), 0.0D, 0.0D, 0.0D); } } @OnlyIn(Dist.CLIENT) public void handleStatusUpdate(byte id) { if (id == 3 && this.world.isRemote) { for (int i = 0; i < 8; ++i) { this.world.addParticle(ParticleTypes.FLAME, this.getPosX(), this.getPosY(), this.getPosZ(), 0.0D, 0.0D, 0.0D); } } super.handleStatusUpdate(id); } protected void onImpact(RayTraceResult result) { if (!this.world.isRemote) { world.createExplosion(this, this.getPosX(), this.getPosY(), this.getPosZ(), 2F, Explosion.Mode.BREAK); this.world.setEntityState(this, (byte)3); this.remove(); } } protected void registerData() { } } Any help would be much appreciated.
May 30, 20205 yr A lot of data is not stored on the client. Since you are not throwing an error, I can assume the ClientWorld is not null on your entity. However, the position of the entity may not be. You can verify this with a breakpoint. If so, you can pass the data using a packet from the server.
May 30, 20205 yr Howdy you might find this example project useful; it shows generation of vanilla particles or custom particles. It also shows how to use packets to communicate information from server to client if necessary. https://github.com/TheGreyGhost/MinecraftByExample/tree/master/src/main/java/minecraftbyexample/mbe50_particle see also mbe60 -TGG
May 30, 20205 yr Author Managed to fix my issues, I was not sending the proper packet to the client. This method was required. @Override public IPacket<?> createSpawnPacket() { return NetworkHooks.getEntitySpawningPacket(this); }
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.