Skip to content

Commit d7aaa3e

Browse files
committed
modular explosives test...successful!
1 parent bc2d3c6 commit d7aaa3e

1 file changed

Lines changed: 6 additions & 7 deletions

File tree

src/main/java/de/dafuqs/spectrum/blocks/boom/ExplosionWithStack.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,14 @@ public float getEntityDamageAmount(Explosion explosion, Entity entity) {
5858

5959
public static void explode(ServerLevel level, @Nullable Entity source, @Nullable ItemStack stack, Vec3 pos) {
6060
boolean primodialFireDamage = false; // stack.getEnchantmentLevel(level.registryAccess().registry(Registries.ENCHANTMENT).get().getHolderOrThrow(SpectrumEnchantments.RESONANCE)) > 0;
61-
boolean preservesBlocks = stack.getEnchantmentLevel(level.registryAccess().registry(Registries.ENCHANTMENT).get().getHolderOrThrow(Enchantments.BLAST_PROTECTION)) > 0;
62-
boolean preserveAllDrops = stack.getEnchantmentLevel(level.registryAccess().registry(Registries.ENCHANTMENT).get().getHolderOrThrow(Enchantments.EFFICIENCY)) > 0;
63-
61+
int power = stack.getEnchantmentLevel(level.registryAccess().registry(Registries.ENCHANTMENT).get().getHolderOrThrow(Enchantments.POWER));
62+
6463
@Nullable DamageSource damageSource = primodialFireDamage ? SpectrumDamageTypes.incandescence(level, source) : Explosion.getDefaultDamageSource(level, source);
6564
@Nullable ExplosionDamageCalculator damageCalculator = new EnhancedExplosionDamageCalculator(level, damageSource, stack, true, true, Optional.empty(), Optional.empty());
6665

67-
float radius = 4.0F;
66+
float explosionRadius = 3.0F + power;
6867

69-
BlockInteraction blockinteraction = preservesBlocks ? BlockInteraction.KEEP : preserveAllDrops ? BlockInteraction.DESTROY : BlockInteraction.DESTROY_WITH_DECAY;
68+
BlockInteraction blockinteraction = power == 0 ? BlockInteraction.KEEP : BlockInteraction.DESTROY;
7069
ExplosionWithStack explosion = new ExplosionWithStack(
7170
level,
7271
source,
@@ -75,7 +74,7 @@ public static void explode(ServerLevel level, @Nullable Entity source, @Nullable
7574
pos.x,
7675
pos.y,
7776
pos.z,
78-
radius,
77+
explosionRadius,
7978
false,
8079
blockinteraction,
8180
ParticleTypes.EXPLOSION,
@@ -95,7 +94,7 @@ public static void explode(ServerLevel level, @Nullable Entity source, @Nullable
9594
for (ServerPlayer serverplayer : level.getPlayers(serverPlayer -> serverPlayer.distanceToSqr(pos.x, pos.y, pos.z) < 4096.0)) {
9695
serverplayer.connection.send(new ClientboundExplodePacket(
9796
pos.x, pos.y, pos.z,
98-
radius,
97+
explosionRadius,
9998
explosion.getToBlow(),
10099
explosion.getHitPlayers().get(serverplayer),
101100
explosion.getBlockInteraction(),

0 commit comments

Comments
 (0)