carpetArrows explode when hurt by explosion, prevents first arrows from shooting others away.
This commit is contained in:
parent
b74e6ef7f0
commit
257553d374
@ -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
|
||||
|
@ -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,
|
||||
|
@ -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
|
||||
|
@ -67,7 +67,7 @@ public class entities {
|
||||
ENTITY_TYPES.register("arrow_claymore", () -> EntityType.Builder.<claymoreArrow>of(claymoreArrow::new, MobCategory.MISC)
|
||||
.sized(0.48F, 0.48F).clientTrackingRange(64).build("arrow_claymore"));
|
||||
|
||||
public static final RegistryObject<EntityType<carpetArrowPart>> ARROW_CARPT_PART =
|
||||
public static final RegistryObject<EntityType<carpetArrowPart>> ARROW_CARPET_PART =
|
||||
ENTITY_TYPES.register("arrow_carpet_part", () -> EntityType.Builder.<carpetArrowPart>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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user