diff --git a/gradle.properties b/gradle.properties index 1cbf46d..6d69d85 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,7 +38,7 @@ mod_name=Enhanced Explosives # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=0.10.2 +mod_version=0.11.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrow.java b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrow.java index fdb899a..5a8b7a6 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrow.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrow.java @@ -35,7 +35,7 @@ public class carpetArrow extends baseArrow { protected void spawnChildren(int count) { RandomSource rng = level().getRandom(); for (int i = 0; i < count; i++) { - carpetArrowPart arrow = new carpetArrowPart(entities.ARROW_CARPT_PART.get(), level()); + carpetArrowPart arrow = new carpetArrowPart(entities.ARROW_CARPET_PART.get(), level()); double r = (double) rng.nextIntBetweenInclusive(-100, 100) / 200; Vec3 move = new Vec3( (double) rng.nextIntBetweenInclusive(-100, 100) / 100, diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrowPart.java b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrowPart.java index 15be11e..0226ee4 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrowPart.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/carpetArrowPart.java @@ -4,6 +4,9 @@ import com.jenny.enhancedexplosives.config.ConfigClient; import com.jenny.enhancedexplosives.entities.entities; import com.jenny.enhancedexplosives.items.items; import com.jenny.enhancedexplosives.particles.particles; +import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.damagesource.DamageType; +import net.minecraft.world.damagesource.DamageTypes; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.item.ItemStack; @@ -17,22 +20,32 @@ public class carpetArrowPart extends baseArrow { } public carpetArrowPart(Level pLevel, LivingEntity pShooter) { - super(pLevel, pShooter, entities.ARROW_CARPT_PART.get()); + super(pLevel, pShooter, entities.ARROW_CARPET_PART.get()); } @Override public void tick() { super.tick(); - if (this.inGround) { - this.level().explode(this, getX(), getY(), getZ(), 8.0f, Level.ExplosionInteraction.NONE); - this.discard(); + if (this.inGround || this.hurtMarked) { + explode(); } } @Override protected void doPostHurtEffects(@NotNull LivingEntity pTarget) { - this.level().explode(this, getX(), getY(), getZ(), 8.0f, Level.ExplosionInteraction.NONE); - this.discard(); + explode(); + } + + public void explode() { + if (!level().isClientSide) { + level().explode(this, getX(), getY(), getZ(), 8.0f, Level.ExplosionInteraction.NONE); + } + discard(); + } + + @Override + public boolean hurt(@NotNull DamageSource pSource, float pAmount) { + return super.hurt(pSource, pAmount) || pSource.is(DamageTypes.EXPLOSION); } @NotNull diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/entities.java b/src/main/java/com/jenny/enhancedexplosives/entities/entities.java index 2d8d684..efe9d62 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/entities.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/entities.java @@ -67,7 +67,7 @@ public class entities { ENTITY_TYPES.register("arrow_claymore", () -> EntityType.Builder.of(claymoreArrow::new, MobCategory.MISC) .sized(0.48F, 0.48F).clientTrackingRange(64).build("arrow_claymore")); - public static final RegistryObject> ARROW_CARPT_PART = + public static final RegistryObject> ARROW_CARPET_PART = ENTITY_TYPES.register("arrow_carpet_part", () -> EntityType.Builder.of(carpetArrowPart::new, MobCategory.MISC) .sized(0.48F, 0.48F).clientTrackingRange(64).build("arrow_carpet_part")); @@ -99,7 +99,7 @@ public class entities { EntityRenderers.register(ARROW_TNT.get(), TNTArrowRenderer::new); EntityRenderers.register(ARROW_CONCUSSIVE.get(), TNTArrowRenderer::new); EntityRenderers.register(ARROW_CARPET.get(), TNTArrowRenderer::new); - EntityRenderers.register(ARROW_CARPT_PART.get(), TNTArrowRenderer::new); + EntityRenderers.register(ARROW_CARPET_PART.get(), TNTArrowRenderer::new); EntityRenderers.register(ARROW_TUNNEL.get(), TNTArrowRenderer::new); EntityRenderers.register(ARROW_CLAYMORE.get(), baseArrowRenderer::new);