From e3119f73f17aad83195db493976a2b27f58e0637 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Tue, 13 May 2025 13:26:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=95=E5=B0=84=E7=89=A9?= =?UTF-8?q?=E7=9A=84=E5=B1=9E=E6=80=A7NBT=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../59eb3dbb5f86130e09b3c62d89b9525ee01cf52d | 4 +- .../f93f628a3b0902e77de76541bcff68d1e5e3578f | 4 +- .../blockstates/aircraft_catapult.json | 368 +++++++++++++++--- .../loot_table/blocks/aircraft_catapult.json | 2 +- .../entity/projectile/Agm65Entity.java | 12 + .../entity/projectile/GunGrenadeEntity.java | 23 ++ .../entity/projectile/HandGrenadeEntity.java | 23 ++ .../entity/projectile/HeliRocketEntity.java | 29 ++ .../projectile/JavelinMissileEntity.java | 32 +- .../entity/projectile/MelonBombEntity.java | 8 + .../entity/projectile/Mk82Entity.java | 8 + .../entity/projectile/RgoGrenadeEntity.java | 32 +- .../entity/projectile/RpgRocketEntity.java | 23 ++ .../projectile/SmallCannonShellEntity.java | 23 ++ .../entity/projectile/SwarmDroneEntity.java | 8 + .../entity/projectile/WgMissileEntity.java | 12 + 16 files changed, 526 insertions(+), 85 deletions(-) diff --git a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d index 55718ae08..1d0317755 100644 --- a/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d +++ b/src/generated/resources/.cache/59eb3dbb5f86130e09b3c62d89b9525ee01cf52d @@ -1,5 +1,5 @@ -// 1.21.1 2025-05-12T23:49:56.0141715 Loot Tables -c7ee888c6a22a799172b3a4b488c31e1d1d43cc0 data/superbwarfare/loot_table/blocks/aircraft_catapult.json +// 1.21.1 2025-05-13T23:23:11.1552806 Loot Tables +e71d9e1055ddb98520b16fafd202f9db3a696f54 data/superbwarfare/loot_table/blocks/aircraft_catapult.json 98386b2e65b2afb7cf5b0cabf6a7b0f062c1e640 data/superbwarfare/loot_table/blocks/barbed_wire.json 811e69929a14e6736015849c220100bb58d914c9 data/superbwarfare/loot_table/blocks/cemented_carbide_block.json 184c3243ca0acfc3103582e0ada2526b3cb4b43c data/superbwarfare/loot_table/blocks/charging_station.json diff --git a/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f b/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f index a1c45e12b..f42f77690 100644 --- a/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f +++ b/src/generated/resources/.cache/f93f628a3b0902e77de76541bcff68d1e5e3578f @@ -1,5 +1,5 @@ -// 1.21.1 2025-05-12T23:49:56.0122177 Block States: superbwarfare -1db13c2f6bc5225df98d2c1a550b3e175d1e9f92 assets/superbwarfare/blockstates/aircraft_catapult.json +// 1.21.1 2025-05-13T23:23:11.1533404 Block States: superbwarfare +d91c9c8e6e02a0f7c75b02aaccfd1ecf98ad199b assets/superbwarfare/blockstates/aircraft_catapult.json f3b778ca36ca78c3d80f1b778078897f59bdb0c5 assets/superbwarfare/blockstates/barbed_wire.json 0cfad4f53a8047c402edf978d0c8cf6269f063cb assets/superbwarfare/blockstates/cemented_carbide_block.json 472c06e6b43ad09925edaa88e9376bfd27ab267f assets/superbwarfare/blockstates/charging_station.json diff --git a/src/generated/resources/assets/superbwarfare/blockstates/aircraft_catapult.json b/src/generated/resources/assets/superbwarfare/blockstates/aircraft_catapult.json index cd7350777..84e4be410 100644 --- a/src/generated/resources/assets/superbwarfare/blockstates/aircraft_catapult.json +++ b/src/generated/resources/assets/superbwarfare/blockstates/aircraft_catapult.json @@ -1,242 +1,482 @@ { "variants": { - "facing=east,power=0": { + "facing=east,power=0,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=1": { + "facing=east,power=0,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=10": { + "facing=east,power=1,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=11": { + "facing=east,power=1,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=12": { + "facing=east,power=10,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=13": { + "facing=east,power=10,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=14": { + "facing=east,power=11,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=15": { + "facing=east,power=11,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=2": { + "facing=east,power=12,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=3": { + "facing=east,power=12,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=4": { + "facing=east,power=13,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=5": { + "facing=east,power=13,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=6": { + "facing=east,power=14,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=7": { + "facing=east,power=14,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=8": { + "facing=east,power=15,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=east,power=9": { + "facing=east,power=15,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 90 }, - "facing=north,power=0": { + "facing=east,power=2,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=2,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=3,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=3,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=4,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=4,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=5,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=5,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=6,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=6,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=7,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=7,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=8,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=8,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=9,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=east,power=9,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 90 + }, + "facing=north,power=0,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=1": { + "facing=north,power=0,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=10": { + "facing=north,power=1,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=11": { + "facing=north,power=1,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=12": { + "facing=north,power=10,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=13": { + "facing=north,power=10,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=14": { + "facing=north,power=11,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=15": { + "facing=north,power=11,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=2": { + "facing=north,power=12,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=3": { + "facing=north,power=12,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=4": { + "facing=north,power=13,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=5": { + "facing=north,power=13,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=6": { + "facing=north,power=14,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=7": { + "facing=north,power=14,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=8": { + "facing=north,power=15,updating=false": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=north,power=9": { + "facing=north,power=15,updating=true": { "model": "superbwarfare:block/aircraft_catapult" }, - "facing=south,power=0": { + "facing=north,power=2,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=2,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=3,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=3,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=4,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=4,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=5,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=5,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=6,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=6,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=7,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=7,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=8,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=8,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=9,updating=false": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=north,power=9,updating=true": { + "model": "superbwarfare:block/aircraft_catapult" + }, + "facing=south,power=0,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=1": { + "facing=south,power=0,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=10": { + "facing=south,power=1,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=11": { + "facing=south,power=1,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=12": { + "facing=south,power=10,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=13": { + "facing=south,power=10,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=14": { + "facing=south,power=11,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=15": { + "facing=south,power=11,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=2": { + "facing=south,power=12,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=3": { + "facing=south,power=12,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=4": { + "facing=south,power=13,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=5": { + "facing=south,power=13,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=6": { + "facing=south,power=14,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=7": { + "facing=south,power=14,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=8": { + "facing=south,power=15,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=south,power=9": { + "facing=south,power=15,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 180 }, - "facing=west,power=0": { + "facing=south,power=2,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=2,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=3,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=3,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=4,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=4,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=5,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=5,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=6,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=6,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=7,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=7,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=8,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=8,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=9,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=south,power=9,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 180 + }, + "facing=west,power=0,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=1": { + "facing=west,power=0,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=10": { + "facing=west,power=1,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=11": { + "facing=west,power=1,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=12": { + "facing=west,power=10,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=13": { + "facing=west,power=10,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=14": { + "facing=west,power=11,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=15": { + "facing=west,power=11,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=2": { + "facing=west,power=12,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=3": { + "facing=west,power=12,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=4": { + "facing=west,power=13,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=5": { + "facing=west,power=13,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=6": { + "facing=west,power=14,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=7": { + "facing=west,power=14,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=8": { + "facing=west,power=15,updating=false": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 }, - "facing=west,power=9": { + "facing=west,power=15,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=2,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=2,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=3,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=3,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=4,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=4,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=5,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=5,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=6,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=6,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=7,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=7,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=8,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=8,updating=true": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=9,updating=false": { + "model": "superbwarfare:block/aircraft_catapult", + "y": 270 + }, + "facing=west,power=9,updating=true": { "model": "superbwarfare:block/aircraft_catapult", "y": 270 } diff --git a/src/generated/resources/data/superbwarfare/loot_table/blocks/aircraft_catapult.json b/src/generated/resources/data/superbwarfare/loot_table/blocks/aircraft_catapult.json index ea82cbe33..b3c0383e5 100644 --- a/src/generated/resources/data/superbwarfare/loot_table/blocks/aircraft_catapult.json +++ b/src/generated/resources/data/superbwarfare/loot_table/blocks/aircraft_catapult.json @@ -11,7 +11,7 @@ "entries": [ { "type": "minecraft:item", - "name": "minecraft:air" + "name": "superbwarfare:aircraft_catapult" } ], "rolls": 1.0 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 5ddcc6572..0dd6402dd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Agm65Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Agm65Entity.java @@ -117,12 +117,24 @@ public class Agm65Entity extends FastThrowableProjectile implements GeoEntity, D if (compound.contains("Health")) { this.entityData.set(HEALTH, compound.getFloat("Health")); } + if (compound.contains("Damage")) { + this.damage = compound.getFloat("Damage"); + } + if (compound.contains("ExplosionDamage")) { + this.explosionDamage = compound.getFloat("ExplosionDamage"); + } + if (compound.contains("Radius")) { + this.explosionRadius = compound.getFloat("Radius"); + } } @Override public void addAdditionalSaveData(@NotNull CompoundTag compound) { super.addAdditionalSaveData(compound); compound.putFloat("Health", this.entityData.get(HEALTH)); + compound.putFloat("Damage", this.damage); + compound.putFloat("ExplosionDamage", this.explosionDamage); + compound.putFloat("Radius", this.explosionRadius); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java index 307a52dc9..0704dcaa2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/GunGrenadeEntity.java @@ -9,6 +9,7 @@ import com.atsuishio.superbwarfare.tools.ParticleTool; import com.atsuishio.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -50,6 +51,28 @@ public class GunGrenadeEntity extends FastThrowableProjectile implements GeoEnti this.explosionRadius = explosionRadius; } + @Override + public void addAdditionalSaveData(@NotNull CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putFloat("Damage", this.damage); + pCompound.putFloat("ExplosionDamage", this.explosionDamage); + pCompound.putFloat("Radius", this.explosionRadius); + } + + @Override + public void readAdditionalSaveData(@NotNull CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + if (pCompound.contains("Damage")) { + this.damage = pCompound.getFloat("Damage"); + } + if (pCompound.contains("ExplosionDamage")) { + this.explosionDamage = pCompound.getFloat("ExplosionDamage"); + } + if (pCompound.contains("Radius")) { + this.explosionRadius = pCompound.getFloat("Radius"); + } + } + @Override public void setDamage(float damage) { this.damage = damage; diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HandGrenadeEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HandGrenadeEntity.java index ff5e412c9..94abd4bd0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HandGrenadeEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HandGrenadeEntity.java @@ -10,6 +10,7 @@ import com.atsuishio.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; @@ -54,6 +55,28 @@ public class HandGrenadeEntity extends FastThrowableProjectile implements GeoEnt this.fuse = fuse; } + @Override + public void addAdditionalSaveData(@NotNull CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putFloat("Damage", this.damage); + pCompound.putFloat("ExplosionDamage", this.explosionDamage); + pCompound.putFloat("Radius", this.explosionRadius); + } + + @Override + public void readAdditionalSaveData(@NotNull CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + if (pCompound.contains("Damage")) { + this.damage = pCompound.getFloat("Damage"); + } + if (pCompound.contains("ExplosionDamage")) { + this.explosionDamage = pCompound.getFloat("ExplosionDamage"); + } + if (pCompound.contains("Radius")) { + this.explosionRadius = pCompound.getFloat("Radius"); + } + } + @Override protected @NotNull Item getDefaultItem() { return ModItems.HAND_GRENADE.get(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HeliRocketEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HeliRocketEntity.java index 66392ce76..9aac8bc8f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HeliRocketEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/HeliRocketEntity.java @@ -10,6 +10,7 @@ import com.atsuishio.superbwarfare.network.message.receive.ClientIndicatorMessag import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.ParticleTool; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; @@ -58,6 +59,34 @@ public class HeliRocketEntity extends FastThrowableProjectile implements GeoEnti this.explosionRadius = explosionRadius; } + // TODO 音效 +// public HeliRocketEntity(PlayMessages.SpawnEntity spawnEntity, Level level) { +// this(ModEntities.HELI_ROCKET.get(), level); +// DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> ClientSoundHandler.playClientSoundInstance(this)); +// } + + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putFloat("Damage", this.damage); + pCompound.putFloat("ExplosionDamage", this.explosionDamage); + pCompound.putFloat("Radius", this.explosionRadius); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + if (pCompound.contains("Damage")) { + this.damage = pCompound.getFloat("Damage"); + } + if (pCompound.contains("ExplosionDamage")) { + this.explosionDamage = pCompound.getFloat("ExplosionDamage"); + } + if (pCompound.contains("Radius")) { + this.explosionRadius = pCompound.getFloat("Radius"); + } + } + @Override protected @NotNull Item getDefaultItem() { return ModItems.ROCKET.get(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java index c63338958..a0e9be19b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/JavelinMissileEntity.java @@ -60,8 +60,8 @@ public class JavelinMissileEntity extends FastThrowableProjectile implements Geo private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); private float monsterMultiplier = 0.0f; private float damage = 500.0f; - private float explosion_damage = 140f; - private float explosion_radius = 6f; + private float explosionDamage = 140f; + private float explosionRadius = 6f; private boolean distracted = false; private int guide_type = 0; @@ -70,11 +70,11 @@ public class JavelinMissileEntity extends FastThrowableProjectile implements Geo this.noCulling = true; } - public JavelinMissileEntity(LivingEntity entity, Level level, float damage, float explosion_damage, float explosion_radius, int guide_type, Vec3 targetPos) { + public JavelinMissileEntity(LivingEntity entity, Level level, float damage, float explosionDamage, float explosionRadius, int guide_type, Vec3 targetPos) { super(ModEntities.JAVELIN_MISSILE.get(), entity, level); this.damage = damage; - this.explosion_damage = explosion_damage; - this.explosion_radius = explosion_radius; + this.explosionDamage = explosionDamage; + this.explosionRadius = explosionRadius; this.guide_type = guide_type; this.entityData.set(TARGET_X, (float) targetPos.x); this.entityData.set(TARGET_Y, (float) targetPos.y); @@ -144,12 +144,24 @@ public class JavelinMissileEntity extends FastThrowableProjectile implements Geo if (compound.contains("Health")) { this.entityData.set(HEALTH, compound.getFloat("Health")); } + if (compound.contains("Damage")) { + this.damage = compound.getFloat("Damage"); + } + if (compound.contains("ExplosionDamage")) { + this.explosionDamage = compound.getFloat("ExplosionDamage"); + } + if (compound.contains("Radius")) { + this.explosionRadius = compound.getFloat("Radius"); + } } @Override public void addAdditionalSaveData(@NotNull CompoundTag compound) { super.addAdditionalSaveData(compound); compound.putFloat("Health", this.entityData.get(HEALTH)); + compound.putFloat("Damage", this.damage); + compound.putFloat("ExplosionDamage", this.explosionDamage); + compound.putFloat("Radius", this.explosionRadius); } @Override @@ -315,7 +327,7 @@ public class JavelinMissileEntity extends FastThrowableProjectile implements Geo if (this.level() instanceof ServerLevel) { ProjectileTool.causeCustomExplode(this, ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), - this, this.explosion_damage, this.explosion_radius, this.monsterMultiplier); + this, this.explosionDamage, this.explosionRadius, this.monsterMultiplier); } this.discard(); } @@ -337,11 +349,11 @@ public class JavelinMissileEntity extends FastThrowableProjectile implements Geo ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), - explosion_damage, + explosionDamage, this.getX(), this.getEyeY(), this.getZ(), - explosion_radius, + explosionRadius, ExplosionConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP, true). setDamageMultiplier(this.monsterMultiplier); explosion.explode(); @@ -396,11 +408,11 @@ public class JavelinMissileEntity extends FastThrowableProjectile implements Geo @Override public void setExplosionDamage(float damage) { - this.explosion_damage = damage; + this.explosionDamage = damage; } @Override public void setExplosionRadius(float radius) { - this.explosion_radius = radius; + this.explosionRadius = radius; } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MelonBombEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MelonBombEntity.java index fa531c6b2..536b237c0 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MelonBombEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MelonBombEntity.java @@ -81,12 +81,20 @@ public class MelonBombEntity extends FastThrowableProjectile implements Destroya if (compound.contains("Health")) { this.entityData.set(HEALTH, compound.getFloat("Health")); } + compound.putFloat("ExplosionDamage", this.explosionDamage); + compound.putFloat("Radius", this.explosionRadius); } @Override public void addAdditionalSaveData(@NotNull CompoundTag compound) { super.addAdditionalSaveData(compound); compound.putFloat("Health", this.entityData.get(HEALTH)); + if (compound.contains("ExplosionDamage")) { + this.explosionDamage = compound.getFloat("ExplosionDamage"); + } + if (compound.contains("Radius")) { + this.explosionRadius = compound.getFloat("Radius"); + } } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Mk82Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Mk82Entity.java index 9e1a4534f..789205691 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Mk82Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/Mk82Entity.java @@ -93,12 +93,20 @@ public class Mk82Entity extends FastThrowableProjectile implements GeoEntity, De if (compound.contains("Health")) { this.entityData.set(HEALTH, compound.getFloat("Health")); } + if (compound.contains("ExplosionDamage")) { + this.explosionDamage = compound.getFloat("ExplosionDamage"); + } + if (compound.contains("Radius")) { + this.explosionRadius = compound.getFloat("Radius"); + } } @Override public void addAdditionalSaveData(@NotNull CompoundTag compound) { super.addAdditionalSaveData(compound); compound.putFloat("Health", this.entityData.get(HEALTH)); + compound.putFloat("ExplosionDamage", this.explosionDamage); + compound.putFloat("Radius", this.explosionRadius); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java index 06064b7f6..8fb905821 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RgoGrenadeEntity.java @@ -10,6 +10,7 @@ import com.atsuishio.superbwarfare.tools.ParticleTool; import com.atsuishio.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -34,6 +35,8 @@ import software.bernie.geckolib.util.GeckoLibUtil; public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEntity, ExplosiveProjectile { + private float explosionDamage = ExplosionConfig.RGO_GRENADE_EXPLOSION_DAMAGE.get(); + private float explosionRadius = ExplosionConfig.RGO_GRENADE_EXPLOSION_RADIUS.get(); private int fuse = 80; private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); @@ -52,6 +55,24 @@ public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEnti this.fuse = fuse; } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putFloat("ExplosionDamage", this.explosionDamage); + pCompound.putFloat("Radius", this.explosionRadius); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + if (pCompound.contains("ExplosionDamage")) { + this.explosionDamage = pCompound.getFloat("ExplosionDamage"); + } + if (pCompound.contains("Radius")) { + this.explosionRadius = pCompound.getFloat("Radius"); + } + } + @Override protected @NotNull Item getDefaultItem() { return ModItems.RGO_GRENADE.get(); @@ -73,7 +94,7 @@ public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEnti if (state.getBlock() instanceof BellBlock bell) { bell.attemptToRing(this.level(), resultPos, blockResult.getDirection()); } - ProjectileTool.causeCustomExplode(this, ExplosionConfig.RGO_GRENADE_EXPLOSION_DAMAGE.get(), ExplosionConfig.RGO_GRENADE_EXPLOSION_RADIUS.get(), 1.2f); + ProjectileTool.causeCustomExplode(this, this.explosionDamage, this.explosionRadius, 1.2f); break; case ENTITY: @@ -87,7 +108,7 @@ public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEnti } } if (!(entity instanceof DroneEntity)) { - ProjectileTool.causeCustomExplode(this, ExplosionConfig.RGO_GRENADE_EXPLOSION_DAMAGE.get(), ExplosionConfig.RGO_GRENADE_EXPLOSION_RADIUS.get(), 1.2f); + ProjectileTool.causeCustomExplode(this, this.explosionDamage, this.explosionRadius, 1.2f); } break; default: @@ -104,7 +125,7 @@ public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEnti if (this.fuse <= 0) { this.discard(); if (!this.level().isClientSide) { - ProjectileTool.causeCustomExplode(this, ExplosionConfig.RGO_GRENADE_EXPLOSION_DAMAGE.get(), ExplosionConfig.RGO_GRENADE_EXPLOSION_RADIUS.get(), 1.2f); + ProjectileTool.causeCustomExplode(this, this.explosionDamage, this.explosionRadius, 1.2f); } } @@ -138,18 +159,17 @@ public class RgoGrenadeEntity extends FastThrowableProjectile implements GeoEnti this.xRotO = this.getXRot(); } - // TODO setter @Override public void setDamage(float damage) { } @Override public void setExplosionDamage(float explosionDamage) { - + this.explosionDamage = explosionDamage; } @Override public void setExplosionRadius(float radius) { - + this.explosionRadius = radius; } } diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java index 426a6bd2a..e6ee5adea 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/RpgRocketEntity.java @@ -10,6 +10,7 @@ import com.atsuishio.superbwarfare.tools.ParticleTool; import com.atsuishio.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvent; @@ -88,6 +89,28 @@ public class RpgRocketEntity extends FastThrowableProjectile implements GeoEntit this.monsterMultiplier = monsterMultiplier; } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putFloat("Damage", this.damage); + pCompound.putFloat("ExplosionDamage", this.explosionDamage); + pCompound.putFloat("Radius", this.explosionRadius); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + if (pCompound.contains("Damage")) { + this.damage = pCompound.getFloat("Damage"); + } + if (pCompound.contains("ExplosionDamage")) { + this.explosionDamage = pCompound.getFloat("ExplosionDamage"); + } + if (pCompound.contains("Radius")) { + this.explosionRadius = pCompound.getFloat("Radius"); + } + } + @Override protected @NotNull Item getDefaultItem() { return ModItems.ROCKET.get(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java index 50b1f8037..1c2b65b3c 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SmallCannonShellEntity.java @@ -10,6 +10,7 @@ import com.atsuishio.superbwarfare.tools.CustomExplosion; import com.atsuishio.superbwarfare.tools.ParticleTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; +import net.minecraft.nbt.CompoundTag; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundSource; @@ -60,6 +61,28 @@ public class SmallCannonShellEntity extends FastThrowableProjectile implements G return this; } + @Override + public void addAdditionalSaveData(CompoundTag pCompound) { + super.addAdditionalSaveData(pCompound); + pCompound.putFloat("Damage", this.damage); + pCompound.putFloat("ExplosionDamage", this.explosionDamage); + pCompound.putFloat("Radius", this.explosionRadius); + } + + @Override + public void readAdditionalSaveData(CompoundTag pCompound) { + super.readAdditionalSaveData(pCompound); + if (pCompound.contains("Damage")) { + this.damage = pCompound.getFloat("Damage"); + } + if (pCompound.contains("ExplosionDamage")) { + this.explosionDamage = pCompound.getFloat("ExplosionDamage"); + } + if (pCompound.contains("Radius")) { + this.explosionRadius = pCompound.getFloat("Radius"); + } + } + @Override protected @NotNull Item getDefaultItem() { return ModItems.SMALL_SHELL.get(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SwarmDroneEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SwarmDroneEntity.java index cbc7f06e2..8b45d90c8 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SwarmDroneEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/SwarmDroneEntity.java @@ -149,6 +149,12 @@ public class SwarmDroneEntity extends FastThrowableProjectile implements GeoEnti if (compound.contains("TargetZ")) { this.entityData.set(TARGET_X, compound.getFloat("TargetZ")); } + if (compound.contains("ExplosionDamage")) { + this.explosionDamage = compound.getFloat("ExplosionDamage"); + } + if (compound.contains("Radius")) { + this.explosionRadius = compound.getFloat("Radius"); + } } @Override @@ -159,6 +165,8 @@ public class SwarmDroneEntity extends FastThrowableProjectile implements GeoEnti compound.putFloat("TargetX", this.entityData.get(TARGET_X)); compound.putFloat("TargetY", this.entityData.get(TARGET_Y)); compound.putFloat("TargetZ", this.entityData.get(TARGET_Z)); + compound.putFloat("ExplosionDamage", this.explosionDamage); + compound.putFloat("Radius", this.explosionRadius); } @Override diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/WgMissileEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/WgMissileEntity.java index dc9bc9629..5a0326914 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/WgMissileEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/WgMissileEntity.java @@ -102,12 +102,24 @@ public class WgMissileEntity extends FastThrowableProjectile implements GeoEntit if (compound.contains("Health")) { this.entityData.set(HEALTH, compound.getFloat("Health")); } + if (compound.contains("Damage")) { + this.damage = compound.getFloat("Damage"); + } + if (compound.contains("ExplosionDamage")) { + this.explosionDamage = compound.getFloat("ExplosionDamage"); + } + if (compound.contains("Radius")) { + this.explosionRadius = compound.getFloat("Radius"); + } } @Override public void addAdditionalSaveData(@NotNull CompoundTag compound) { super.addAdditionalSaveData(compound); compound.putFloat("Health", this.entityData.get(HEALTH)); + compound.putFloat("Damage", this.damage); + compound.putFloat("ExplosionDamage", this.explosionDamage); + compound.putFloat("Radius", this.explosionRadius); } @Override