carpetArrows explode when hurt by explosion, prevents first arrows from shooting others away.
This commit is contained in:
		
							parent
							
								
									b74e6ef7f0
								
							
						
					
					
						commit
						4fa167ae9a
					
				| @ -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. | # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. | ||||||
| mod_license=All Rights Reserved | mod_license=All Rights Reserved | ||||||
| # The mod version. See https://semver.org/ | # 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. | # 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. | # This should match the base package used for the mod sources. | ||||||
| # See https://maven.apache.org/guides/mini/guide-naming-conventions.html | # 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) { |     protected void spawnChildren(int count) { | ||||||
|         RandomSource rng = level().getRandom(); |         RandomSource rng = level().getRandom(); | ||||||
|         for (int i = 0; i < count; i++) { |         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; |             double r = (double) rng.nextIntBetweenInclusive(-100, 100) / 200; | ||||||
|             Vec3 move = new Vec3( |             Vec3 move = new Vec3( | ||||||
|                     (double) rng.nextIntBetweenInclusive(-100, 100) / 100, |                     (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.entities.entities; | ||||||
| import com.jenny.enhancedexplosives.items.items; | import com.jenny.enhancedexplosives.items.items; | ||||||
| import com.jenny.enhancedexplosives.particles.particles; | 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.EntityType; | ||||||
| import net.minecraft.world.entity.LivingEntity; | import net.minecraft.world.entity.LivingEntity; | ||||||
| import net.minecraft.world.item.ItemStack; | import net.minecraft.world.item.ItemStack; | ||||||
| @ -17,22 +20,32 @@ public class carpetArrowPart extends baseArrow { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public carpetArrowPart(Level pLevel, LivingEntity pShooter) { |     public carpetArrowPart(Level pLevel, LivingEntity pShooter) { | ||||||
|         super(pLevel, pShooter, entities.ARROW_CARPT_PART.get()); |         super(pLevel, pShooter, entities.ARROW_CARPET_PART.get()); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     public void tick() { |     public void tick() { | ||||||
|         super.tick(); |         super.tick(); | ||||||
|         if (this.inGround) { |         if (this.inGround || this.hurtMarked) { | ||||||
|             this.level().explode(this, getX(), getY(), getZ(), 8.0f, Level.ExplosionInteraction.NONE); |             explode(); | ||||||
|             this.discard(); |  | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void doPostHurtEffects(@NotNull LivingEntity pTarget) { |     protected void doPostHurtEffects(@NotNull LivingEntity pTarget) { | ||||||
|         this.level().explode(this, getX(), getY(), getZ(), 8.0f, Level.ExplosionInteraction.NONE); |         explode(); | ||||||
|         this.discard(); |     } | ||||||
|  | 
 | ||||||
|  |     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 |     @NotNull | ||||||
|  | |||||||
| @ -67,7 +67,7 @@ public class entities { | |||||||
|             ENTITY_TYPES.register("arrow_claymore", () -> EntityType.Builder.<claymoreArrow>of(claymoreArrow::new, MobCategory.MISC) |             ENTITY_TYPES.register("arrow_claymore", () -> EntityType.Builder.<claymoreArrow>of(claymoreArrow::new, MobCategory.MISC) | ||||||
|                     .sized(0.48F, 0.48F).clientTrackingRange(64).build("arrow_claymore")); |                     .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) |             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")); |                     .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_TNT.get(), TNTArrowRenderer::new); | ||||||
|         EntityRenderers.register(ARROW_CONCUSSIVE.get(), TNTArrowRenderer::new); |         EntityRenderers.register(ARROW_CONCUSSIVE.get(), TNTArrowRenderer::new); | ||||||
|         EntityRenderers.register(ARROW_CARPET.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_TUNNEL.get(), TNTArrowRenderer::new); | ||||||
| 
 | 
 | ||||||
|         EntityRenderers.register(ARROW_CLAYMORE.get(), baseArrowRenderer::new); |         EntityRenderers.register(ARROW_CLAYMORE.get(), baseArrowRenderer::new); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user