From 6d44a84dc9de644f007c52a871b14d2b0ee0bb6c Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 6 Jan 2025 23:39:23 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=84=E8=8C=83=E5=8C=96=E9=83=A8=E5=88=86?= =?UTF-8?q?=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/entity/MortarEntity.java | 4 ++-- .../superbwarfare/entity/TargetEntity.java | 3 ++- .../entity/vehicle/AnnihilatorEntity.java | 19 ++++++++----------- .../event/ClientEventHandler.java | 13 ++++++------- .../event/LivingEventHandler.java | 4 ++-- .../superbwarfare/item/FiringParameters.java | 2 +- .../message/AdjustMortarAngleMessage.java | 7 ++++--- .../network/message/DroneFireMessage.java | 2 +- .../message/SetFiringParametersMessage.java | 2 +- .../assets/superbwarfare/lang/en_us.json | 12 ++++++++---- .../assets/superbwarfare/lang/zh_cn.json | 12 ++++++++---- 11 files changed, 43 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/MortarEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/MortarEntity.java index e1b95e9c2..693b8732f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/MortarEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/MortarEntity.java @@ -178,7 +178,7 @@ public class MortarEntity extends Entity implements GeoEntity, AnimatedEntity { player.swing(InteractionHand.MAIN_HAND); return InteractionResult.SUCCESS; } else { - player.displayClientMessage(Component.translatable("des.superbwarfare.target.warn").withStyle(ChatFormatting.RED), true); + player.displayClientMessage(Component.translatable("des.superbwarfare.mortar.warn").withStyle(ChatFormatting.RED), true); return InteractionResult.FAIL; } } @@ -187,7 +187,7 @@ public class MortarEntity extends Entity implements GeoEntity, AnimatedEntity { player.swing(InteractionHand.OFF_HAND); return InteractionResult.SUCCESS; } else { - player.displayClientMessage(Component.translatable("des.superbwarfare.target.warn").withStyle(ChatFormatting.RED), true); + player.displayClientMessage(Component.translatable("des.superbwarfare.mortar.warn").withStyle(ChatFormatting.RED), true); return InteractionResult.FAIL; } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java index 6a696ab67..596ef0fb0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/TargetEntity.java @@ -128,7 +128,8 @@ public class TargetEntity extends LivingEntity implements GeoEntity, AnimatedEnt if (sourceEntity == null) return; if (sourceEntity instanceof Player player) { - player.displayClientMessage(Component.literal(("Target Down " + new java.text.DecimalFormat("##.#").format((entity.position()).distanceTo((sourceEntity.position()))) + "M")), true); + player.displayClientMessage(Component.translatable("des.superbwarfare.target.down", + new java.text.DecimalFormat("##.#").format((entity.position()).distanceTo((sourceEntity.position()))) + "M"), true); SoundTool.playLocalSound(player, ModSounds.TARGET_DOWN.get(), 1, 1); targetEntity.entityData.set(DOWN_TIME, 40); } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java index 6aa2cd552..b43b266f1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/AnnihilatorEntity.java @@ -9,6 +9,7 @@ import com.atsuishio.superbwarfare.init.ModParticleTypes; import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.network.message.ShakeClientMessage; import com.atsuishio.superbwarfare.tools.*; +import net.minecraft.ChatFormatting; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; @@ -53,6 +54,7 @@ import software.bernie.geckolib.util.GeckoLibUtil; import java.util.Comparator; public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, ICannonEntity { + public static final EntityDataAccessor COOL_DOWN = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.INT); public static final EntityDataAccessor LASER_LEFT_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT); public static final EntityDataAccessor LASER_MIDDLE_LENGTH = SynchedEntityData.defineId(AnnihilatorEntity.class, EntityDataSerializers.FLOAT); @@ -267,7 +269,7 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, if (this.entityData.get(COOL_DOWN) > 98) { laserExplosion(hitPos); } - this.level().explode(this, hitPos.x, hitPos.y, hitPos.z,5, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Level.ExplosionInteraction.BLOCK : Level.ExplosionInteraction.NONE); + this.level().explode(this, hitPos.x, hitPos.y, hitPos.z, 5, ExplosionDestroyConfig.EXPLOSION_DESTROY.get() ? Level.ExplosionInteraction.BLOCK : Level.ExplosionInteraction.NONE); } @@ -349,13 +351,12 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, } if (this.getEnergy() < SHOOT_COST) { - player.displayClientMessage(Component.literal("Not Enough Energy!"), true); + player.displayClientMessage(Component.translatable("des.superbwarfare.annihilator.energy_not_enough").withStyle(ChatFormatting.RED), true); return; } Level level = player.level(); if (level instanceof ServerLevel) { - if (player instanceof ServerPlayer serverPlayer) { SoundTool.playLocalSound(serverPlayer, ModSounds.ANNIHILATOR_FIRE_1P.get(), 1, 1); serverPlayer.level().playSound(null, serverPlayer.getOnPos(), ModSounds.ANNIHILATOR_FIRE_3P.get(), SoundSource.PLAYERS, 6, 1); @@ -364,13 +365,9 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, } this.entityData.set(COOL_DOWN, 100); - this.extraEnergy(SHOOT_COST); - final Vec3 center = new Vec3(this.getX(), this.getEyeY(), this.getZ()); - for (Entity target : level.getEntitiesOfClass(Entity.class, new AABB(center, center).inflate(20), e -> true).stream().sorted(Comparator.comparingDouble(e -> e.distanceToSqr(center))).toList()) { - if (target instanceof ServerPlayer serverPlayer) { ModUtils.PACKET_HANDLER.send(PacketDistributor.PLAYER.with(() -> serverPlayer), new ShakeClientMessage(15, 15, 25, this.getX(), this.getEyeY(), this.getZ())); } @@ -415,14 +412,14 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, diffX = diffX * 0.15f; - this.setYRot(this.getYRot() + Mth.clamp(0.5f * diffY,-0.6f, 0.6f)); + this.setYRot(this.getYRot() + Mth.clamp(0.5f * diffY, -0.6f, 0.6f)); this.setXRot(Mth.clamp(this.getXRot() + Mth.clamp(diffX, -2f, 2f), -45, 5f + this.entityData.get(OFFSET_ANGLE))); } public void autoAim() { if (this.entityData.get(ENERGY) <= 0) return; - Entity target = SeekTool.seekLivingEntity(this, this.level(),64,30); + Entity target = SeekTool.seekLivingEntity(this, this.level(), 64, 30); if (target == null) return; @@ -436,7 +433,7 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, BarrelRoot.rotateY(-yRot * Mth.DEG_TO_RAD); Vec3 barrelRootPos = new Vec3(this.getX() + BarrelRoot.x, this.getY() + BarrelRoot.y, this.getZ() + BarrelRoot.z); - Vec3 targetVec = new Vec3(target.getX() - barrelRootPos.x,target.getEyeY() - barrelRootPos.y, target.getZ() - barrelRootPos.z).normalize(); + Vec3 targetVec = new Vec3(target.getX() - barrelRootPos.x, target.getEyeY() - barrelRootPos.y, target.getZ() - barrelRootPos.z).normalize(); double d0 = targetVec.x; double d1 = targetVec.y; @@ -447,7 +444,7 @@ public class AnnihilatorEntity extends EnergyVehicleEntity implements GeoEntity, float diffY = Math.clamp(-90f, 90f, Mth.wrapDegrees(targetY - this.getYRot())); - this.setYRot(this.getYRot() + Mth.clamp(0.5f * diffY,-1f, 1f)); + this.setYRot(this.getYRot() + Mth.clamp(0.5f * diffY, -1f, 1f)); this.setRot(this.getYRot(), this.getXRot()); } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java index 07da5b6db..88f95d2c5 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientEventHandler.java @@ -618,8 +618,6 @@ public class ClientEventHandler { rpm = 240; } -// player.displayClientMessage(Component.literal("114 : " + clientTimerVehicle.getProgress()), true); - double rps = (double) rpm / 60; // cooldown in ms @@ -1304,7 +1302,8 @@ public class ClientEventHandler { } Minecraft mc = Minecraft.getInstance(); - if (mc.player == null) { + Player player = mc.player; + if (player == null) { return; } @@ -1312,17 +1311,17 @@ public class ClientEventHandler { return; } - ItemStack stack = mc.player.getMainHandItem(); + ItemStack stack = player.getMainHandItem(); - if (mc.player.getVehicle() instanceof Ah6Entity && mc.player.getVehicle() instanceof IHelicopterEntity iHelicopterEntity && iHelicopterEntity.isDriver(mc.player)) { + if (player.getVehicle() instanceof IHelicopterEntity iHelicopterEntity && iHelicopterEntity.isDriver(player)) { event.setCanceled(true); } - if (mc.player.getVehicle() instanceof SpeedboatEntity && zoom) { + if (player.getVehicle() instanceof SpeedboatEntity && zoom) { event.setCanceled(true); } - if (stack.is(ModTags.Items.GUN) || (mc.player.getVehicle() != null && mc.player.getVehicle() instanceof ICannonEntity)) { + if (stack.is(ModTags.Items.GUN) || (player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity)) { event.setCanceled(true); } diff --git a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java index 1536ddadf..8732fc51e 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/LivingEventHandler.java @@ -167,8 +167,8 @@ public class LivingEventHandler { event.setAmount((float) damage); if (entity instanceof TargetEntity && sourceEntity instanceof Player player) { - player.displayClientMessage(Component.literal("Damage:" + new DecimalFormat("##.##").format(damage) + - " Distance:" + new DecimalFormat("##.#").format(entity.position().distanceTo(sourceEntity.position())) + "M"), false); + player.displayClientMessage(Component.translatable("des.superbwarfare.target.damage", new DecimalFormat("##.##").format(damage), + new DecimalFormat("##.#").format(entity.position().distanceTo(sourceEntity.position())) + "M"), false); } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/FiringParameters.java b/src/main/java/com/atsuishio/superbwarfare/item/FiringParameters.java index 779d7ea5c..275fb07c8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/FiringParameters.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/FiringParameters.java @@ -39,7 +39,7 @@ public class FiringParameters extends Item { @Override public void appendHoverText(ItemStack pStack, @Nullable Level pLevel, List pTooltipComponents, TooltipFlag pIsAdvanced) { - pTooltipComponents.add(Component.translatable("des.superbwarfare.target.pos").withStyle(ChatFormatting.GRAY) + pTooltipComponents.add(Component.translatable("des.superbwarfare.mortar.target_pos").withStyle(ChatFormatting.GRAY) .append(Component.literal("[" + pStack.getOrCreateTag().getInt("TargetX") + "," + pStack.getOrCreateTag().getInt("TargetY") + "," + pStack.getOrCreateTag().getInt("TargetZ") + "]"))); diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/AdjustMortarAngleMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/AdjustMortarAngleMessage.java index cff185188..1e8ad5e0f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/AdjustMortarAngleMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/AdjustMortarAngleMessage.java @@ -44,12 +44,13 @@ public class AdjustMortarAngleMessage { double angle = 0; - if (looking instanceof MortarEntity mortar){ - mortar.getEntityData().set(PITCH, (float)Mth.clamp(mortar.getEntityData().get(PITCH) + 0.5 * message.scroll,20,89)); + if (looking instanceof MortarEntity mortar) { + mortar.getEntityData().set(PITCH, (float) Mth.clamp(mortar.getEntityData().get(PITCH) + 0.5 * message.scroll, 20, 89)); angle = mortar.getEntityData().get(PITCH); } - player.displayClientMessage(Component.literal("Angle:" + new java.text.DecimalFormat("##.##").format(angle) + " Range:" + new java.text.DecimalFormat("##.#").format((int) RangeHelper.getRange(angle)) + "M"), true); + player.displayClientMessage(Component.translatable("des.superbwarfare.mortar.angle", new java.text.DecimalFormat("##.##").format(angle), + new java.text.DecimalFormat("##.#").format((int) RangeHelper.getRange(angle)) + "M"), true); SoundTool.playLocalSound(player, ModSounds.ADJUST_FOV.get(), 1f, 0.7f); }); context.get().setPacketHandled(true); diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/DroneFireMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/DroneFireMessage.java index c36b92f6b..2b478c530 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/DroneFireMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/DroneFireMessage.java @@ -66,7 +66,7 @@ public class DroneFireMessage { offStack.getOrCreateTag().putInt("TargetZ", (int) looking.z()); } - player.displayClientMessage(Component.translatable("des.superbwarfare.target.pos").withStyle(ChatFormatting.GRAY) + player.displayClientMessage(Component.translatable("des.superbwarfare.mortar.target_pos").withStyle(ChatFormatting.GRAY) .append(Component.literal("[" + offStack.getOrCreateTag().getInt("TargetX") + "," + offStack.getOrCreateTag().getInt("TargetY") + "," + offStack.getOrCreateTag().getInt("TargetZ") + "]")), true); diff --git a/src/main/java/com/atsuishio/superbwarfare/network/message/SetFiringParametersMessage.java b/src/main/java/com/atsuishio/superbwarfare/network/message/SetFiringParametersMessage.java index 0f000ed19..282a5179a 100644 --- a/src/main/java/com/atsuishio/superbwarfare/network/message/SetFiringParametersMessage.java +++ b/src/main/java/com/atsuishio/superbwarfare/network/message/SetFiringParametersMessage.java @@ -55,7 +55,7 @@ public class SetFiringParametersMessage { stack.getOrCreateTag().putInt("TargetZ", (int) looking.z()); } - player.displayClientMessage(Component.translatable("des.superbwarfare.target.pos").withStyle(ChatFormatting.GRAY) + player.displayClientMessage(Component.translatable("des.superbwarfare.mortar.target_pos").withStyle(ChatFormatting.GRAY) .append(Component.literal("[" + stack.getOrCreateTag().getInt("TargetX") + "," + stack.getOrCreateTag().getInt("TargetY") + "," + stack.getOrCreateTag().getInt("TargetZ") + "]")), true); diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index f57045dd7..08d50e411 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -424,6 +424,14 @@ "des.superbwarfare.drone.kamikaze": "KAMIKAZE", "des.superbwarfare.drone.warning": "WARNING!", "des.superbwarfare.shoot.rings": "Rings ", + "des.superbwarfare.annihilator.energy_not_enough": "Energy is Not Enough", + "des.superbwarfare.target.down": "Target Down %1$s", + "des.superbwarfare.target.damage": "Damage: %1$s Distance: %2$s", + "des.superbwarfare.mortar.angle": "Angle: %1$s Range: %2$s", + "des.superbwarfare.mortar.yaw": "Yaw:", + "des.superbwarfare.mortar.pitch": "Pitch:", + "des.superbwarfare.mortar.target_pos": "Target Position:", + "des.superbwarfare.mortar.warn": "迫击炮无法瞄准该位置", "entity.minecraft.villager.superbwarfare.armory": "Armory", @@ -465,10 +473,6 @@ "des.superbwarfare.perk_speed_plus": "Velocity +", "des.superbwarfare.perk_slug": "Slug", - "des.superbwarfare.mortar.yaw": "Yaw:", - "des.superbwarfare.mortar.pitch": "Pitch:", - "des.superbwarfare.target.pos": "Target Position:", - "des.superbwarfare.target.warn": "迫击炮无法瞄准该位置", "des.superbwarfare.tips.edit": "Press %1$s key to edit this weapon", "commands.ammo.no_permission": "Permission denied", "des.superbwarfare.revolver.da": "DA", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index cab9feca7..e96608dea 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -424,6 +424,14 @@ "des.superbwarfare.drone.kamikaze": "自爆模式", "des.superbwarfare.drone.warning": "警告!", "des.superbwarfare.shoot.rings": "环 ", + "des.superbwarfare.annihilator.energy_not_enough": "能量不足", + "des.superbwarfare.target.down": "目标倒下 %1$s", + "des.superbwarfare.target.damage": "伤害:%1$s 距离:%2$s", + "des.superbwarfare.mortar.angle": "角度:%1$s 射程:%2$s", + "des.superbwarfare.mortar.yaw": "水平朝向:", + "des.superbwarfare.mortar.pitch": "俯仰角度:", + "des.superbwarfare.mortar.target_pos": "目标坐标:", + "des.superbwarfare.mortar.warn": "迫击炮无法瞄准该位置", "entity.minecraft.villager.superbwarfare.armory": "军械师", @@ -465,10 +473,6 @@ "des.superbwarfare.perk_speed_plus": "子弹初速 +", "des.superbwarfare.perk_slug": "独头弹", - "des.superbwarfare.mortar.yaw": "水平朝向:", - "des.superbwarfare.mortar.pitch": "俯仰角度:", - "des.superbwarfare.target.pos": "目标坐标:", - "des.superbwarfare.target.warn": "迫击炮无法瞄准该位置", "des.superbwarfare.tips.edit": "按下 %1$s 键进行改装", "commands.ammo.no_permission": "权限不足", "des.superbwarfare.revolver.da": "双动",