Fixed projectiles not updating/exploding multiple times

This commit is contained in:
Sollace 2020-05-07 13:15:53 +02:00
parent 53e4e93605
commit 25352710b7
2 changed files with 12 additions and 8 deletions

View file

@ -222,8 +222,8 @@ public class ProjectileEntity extends ThrownItemEntity implements IMagicals, Adv
} }
@Override @Override
public void handleStatus(byte byte_1) { public void handleStatus(byte id) {
if (byte_1 == 3) { if (id == 3) {
ParticleEffect effect = getParticleParameters(); ParticleEffect effect = getParticleParameters();
for(int i = 0; i < 8; i++) { for(int i = 0; i < 8; i++) {
@ -253,12 +253,16 @@ public class ProjectileEntity extends ThrownItemEntity implements IMagicals, Adv
@Override @Override
protected void onCollision(HitResult result) { protected void onCollision(HitResult result) {
if (!removed) {
remove();
if (result.getType() == HitResult.Type.BLOCK) { if (result.getType() == HitResult.Type.BLOCK) {
onHitBlock((BlockHitResult)result); onHitBlock((BlockHitResult)result);
} else if (result.getType() == HitResult.Type.ENTITY) { } else if (result.getType() == HitResult.Type.ENTITY) {
onHitEntity((EntityHitResult)result); onHitEntity((EntityHitResult)result);
} }
} }
}
protected void onHitBlock(BlockHitResult hit) { protected void onHitBlock(BlockHitResult hit) {
Item item = getItem().getItem(); Item item = getItem().getItem();

View file

@ -31,8 +31,8 @@ public interface UEntities {
EntityType<ButterflyEntity> BUTTERFLY = register("butterfly", FabricEntityTypeBuilder.create(EntityCategory.AMBIENT, ButterflyEntity::new)); EntityType<ButterflyEntity> BUTTERFLY = register("butterfly", FabricEntityTypeBuilder.create(EntityCategory.AMBIENT, ButterflyEntity::new));
EntityType<ProjectileEntity> THROWN_ITEM = register("thrown_item", FabricEntityTypeBuilder.<ProjectileEntity>create(EntityCategory.MISC, ProjectileEntity::new).trackable(100, 10)); EntityType<ProjectileEntity> THROWN_ITEM = register("thrown_item", FabricEntityTypeBuilder.<ProjectileEntity>create(EntityCategory.MISC, ProjectileEntity::new).trackable(100, 2));
EntityType<SpearEntity> THROWN_SPEAR = register("thrown_spear", FabricEntityTypeBuilder.<SpearEntity>create(EntityCategory.MISC, SpearEntity::new).trackable(100, 10)); EntityType<SpearEntity> THROWN_SPEAR = register("thrown_spear", FabricEntityTypeBuilder.<SpearEntity>create(EntityCategory.MISC, SpearEntity::new).trackable(100, 2));
static <T extends Entity> EntityType<T> register(String name, FabricEntityTypeBuilder<T> builder) { static <T extends Entity> EntityType<T> register(String name, FabricEntityTypeBuilder<T> builder) {
return Registry.register(Registry.ENTITY_TYPE, new Identifier("unicopia", name), builder.build()); return Registry.register(Registry.ENTITY_TYPE, new Identifier("unicopia", name), builder.build());