From 25352710b7cbfd24a28cdc4df3c2f364533f1a00 Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 7 May 2020 13:15:53 +0200 Subject: [PATCH] Fixed projectiles not updating/exploding multiple times --- .../unicopia/entity/ProjectileEntity.java | 16 ++++++++++------ .../unicopia/entity/UEntities.java | 4 ++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/minelittlepony/unicopia/entity/ProjectileEntity.java b/src/main/java/com/minelittlepony/unicopia/entity/ProjectileEntity.java index 1f8bdced..f226a55c 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/ProjectileEntity.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/ProjectileEntity.java @@ -222,8 +222,8 @@ public class ProjectileEntity extends ThrownItemEntity implements IMagicals, Adv } @Override - public void handleStatus(byte byte_1) { - if (byte_1 == 3) { + public void handleStatus(byte id) { + if (id == 3) { ParticleEffect effect = getParticleParameters(); for(int i = 0; i < 8; i++) { @@ -253,10 +253,14 @@ public class ProjectileEntity extends ThrownItemEntity implements IMagicals, Adv @Override protected void onCollision(HitResult result) { - if (result.getType() == HitResult.Type.BLOCK) { - onHitBlock((BlockHitResult)result); - } else if (result.getType() == HitResult.Type.ENTITY) { - onHitEntity((EntityHitResult)result); + if (!removed) { + remove(); + + if (result.getType() == HitResult.Type.BLOCK) { + onHitBlock((BlockHitResult)result); + } else if (result.getType() == HitResult.Type.ENTITY) { + onHitEntity((EntityHitResult)result); + } } } diff --git a/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java b/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java index 593c3875..e54b1e3d 100644 --- a/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java +++ b/src/main/java/com/minelittlepony/unicopia/entity/UEntities.java @@ -31,8 +31,8 @@ public interface UEntities { EntityType BUTTERFLY = register("butterfly", FabricEntityTypeBuilder.create(EntityCategory.AMBIENT, ButterflyEntity::new)); - EntityType THROWN_ITEM = register("thrown_item", FabricEntityTypeBuilder.create(EntityCategory.MISC, ProjectileEntity::new).trackable(100, 10)); - EntityType THROWN_SPEAR = register("thrown_spear", FabricEntityTypeBuilder.create(EntityCategory.MISC, SpearEntity::new).trackable(100, 10)); + EntityType THROWN_ITEM = register("thrown_item", FabricEntityTypeBuilder.create(EntityCategory.MISC, ProjectileEntity::new).trackable(100, 2)); + EntityType THROWN_SPEAR = register("thrown_spear", FabricEntityTypeBuilder.create(EntityCategory.MISC, SpearEntity::new).trackable(100, 2)); static EntityType register(String name, FabricEntityTypeBuilder builder) { return Registry.register(Registry.ENTITY_TYPE, new Identifier("unicopia", name), builder.build());