From 9c1f9427db51917afad5cfbaa04f24e15796bf89 Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Sat, 17 May 2025 10:43:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=8F=E5=B0=91A10=E9=94=81=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E9=97=B4=EF=BC=8C=E6=8F=90=E9=AB=98=E7=A9=BA=E5=9C=B0?= =?UTF-8?q?=E5=AF=BC=E5=BC=B9=E6=96=B9=E5=9D=97=E7=A9=BF=E9=80=8F=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/overlay/AircraftOverlay.java | 2 +- .../entity/projectile/Agm65Entity.java | 51 +++++++++++++----- .../entity/vehicle/A10Entity.java | 6 +-- .../superbwarfare/sounds/a10/jet_lock.ogg | Bin 11758 -> 9132 bytes 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java b/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java index d010d4dcc..75d9b6442 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/overlay/AircraftOverlay.java @@ -285,7 +285,7 @@ public class AircraftOverlay implements LayeredDraw.Layer { if (lockOn) { RenderHelper.preciseBlit(guiGraphics, FRAME_LOCK, x - 12, y - 12, 24, 24, 0, 0, 24, 24, 24, 24); } else if (nearest) { - lerpLock = Mth.lerp(partialTick, lerpLock, a10Entity.lockTime); + lerpLock = Mth.lerp(partialTick, lerpLock, 2 * a10Entity.lockTime); float lockTime = Mth.clamp(20 - lerpLock, 0, 20); RenderHelper.preciseBlit(guiGraphics, IND_1, x - 12, y - 12 - lockTime, 24, 24, 0, 0, 24, 24, 24, 24); RenderHelper.preciseBlit(guiGraphics, IND_2, x - 12, y - 12 + lockTime, 24, 24, 0, 0, 24, 24, 24, 24); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Agm65Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Agm65Entity.java index 0dd6402dd..2314da2ae 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Agm65Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Agm65Entity.java @@ -33,8 +33,7 @@ import net.minecraft.world.entity.projectile.ThrownPotion; import net.minecraft.world.item.Item; import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; -import net.minecraft.world.level.block.BellBlock; -import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.Block; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.EntityHitResult; import net.minecraft.world.phys.HitResult; @@ -58,6 +57,8 @@ public class Agm65Entity extends FastThrowableProjectile implements GeoEntity, D private float explosionDamage = ExplosionConfig.AGM_65_EXPLOSION_DAMAGE.get(); private float explosionRadius = ExplosionConfig.AGM_65_EXPLOSION_RADIUS.get().floatValue(); private boolean distracted = false; + private int durability = 40; + private boolean firstHit = true; public Agm65Entity(EntityType type, Level world) { super(type, world); @@ -173,21 +174,43 @@ public class Agm65Entity extends FastThrowableProjectile implements GeoEntity, D @Override public void onHitBlock(@NotNull BlockHitResult blockHitResult) { - super.onHitBlock(blockHitResult); - BlockPos resultPos = blockHitResult.getBlockPos(); - BlockState state = this.level().getBlockState(resultPos); + if (this.level() instanceof ServerLevel) { + double x = blockHitResult.getLocation().x; + double y = blockHitResult.getLocation().y; + double z = blockHitResult.getLocation().z; - if (state.getBlock() instanceof BellBlock bell) { - bell.attemptToRing(this.level(), resultPos, blockHitResult.getDirection()); - } - - if (this.tickCount > 8) { - if (this.level() instanceof ServerLevel) { - causeExplode(blockHitResult); + if (ExplosionConfig.EXPLOSION_DESTROY.get()) { + float hardness = this.level().getBlockState(BlockPos.containing(x, y, z)).getBlock().defaultDestroyTime(); + if (hardness <= 50) { + BlockPos blockPos = BlockPos.containing(x, y, z); + Block.dropResources(this.level().getBlockState(blockPos), this.level(), BlockPos.containing(x, y, z), null); + this.level().destroyBlock(blockPos, true); + } } - } - this.discard(); + for (int i = 0; i < 5; i++) { + apExplode(blockHitResult, i); + } + + causeExplode(blockHitResult); + } + } + + private void apExplode(HitResult result, int index) { + CustomExplosion explosion = new CustomExplosion(this.level(), this, + ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), + this, + this.getOwner()), + explosionDamage, + result.getLocation().x + index * getDeltaMovement().normalize().x, + result.getLocation().y + index * getDeltaMovement().normalize().y, + result.getLocation().z + index * getDeltaMovement().normalize().z, + 0.5f * explosionRadius, + ExplosionConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP, true). + setDamageMultiplier(1); + explosion.explode(); + EventHooks.onExplosionStart(this.level(), explosion); + explosion.finalizeExplosion(false); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java index cbc5d3a76..4007ebd15 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/A10Entity.java @@ -438,7 +438,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity resetSeek(player); } - Entity entity = SeekTool.seekCustomSizeEntity(this, this.level(), 384, 20, 0.9, true); + Entity entity = SeekTool.seekCustomSizeEntity(this, this.level(), 384, 18, 0.9, true); if (entity != null) { if (lockTime == 0) { setTargetUuid(String.valueOf(entity.getUUID())); @@ -457,7 +457,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity } } - if (lockTime > 20) { + if (lockTime > 10) { if (player instanceof ServerPlayer serverPlayer) { SoundTool.playLocalSound(serverPlayer, ModSounds.JET_LOCKON.get(), 2, 1); } @@ -967,7 +967,7 @@ public class A10Entity extends ContainerMobileVehicleEntity implements GeoEntity Agm65Entity.setTargetUuid(getTargetUuid()); } Agm65Entity.setPos(worldPosition.x, worldPosition.y, worldPosition.z); - Agm65Entity.shoot(getDeltaMovement().x, getDeltaMovement().y, getDeltaMovement().z, (float) getDeltaMovement().length() + 1, 1); + Agm65Entity.shoot(getLookAngle().x, getLookAngle().y, getLookAngle().z, (float) getDeltaMovement().length() + 1, 1); player.level().addFreshEntity(Agm65Entity); BlockPos pos = BlockPos.containing(new Vec3(worldPosition.x, worldPosition.y, worldPosition.z)); diff --git a/src/main/resources/assets/superbwarfare/sounds/a10/jet_lock.ogg b/src/main/resources/assets/superbwarfare/sounds/a10/jet_lock.ogg index 079b9b5cb4b7f40f162fc23afaa040e7fd78afa3..5ff1e53c637af2d594ade2fc653bdc2185a68215 100644 GIT binary patch literal 9132 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