From bb94bd42bd355f9b60ff0f9df9c1de43707cb95e Mon Sep 17 00:00:00 2001 From: Atsuishio <842960157@qq.com> Date: Mon, 14 Jul 2025 15:11:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=9B=86=E6=9D=9F=E5=BC=B9?= =?UTF-8?q?=E5=A4=B4=E5=92=8C=E5=90=88=E6=88=90=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/models/item/cm_head.json | 6 ++ .../datagen/ModItemModelProvider.java | 1 + .../entity/projectile/MediumRocketEntity.java | 8 +- .../entity/vehicle/Type63Entity.java | 8 +- .../superbwarfare/init/ModItems.java | 1 + .../assets/superbwarfare/lang/en_us.json | 1 + .../assets/superbwarfare/lang/zh_cn.json | 1 + .../superbwarfare/textures/item/cm_head.png | Bin 0 -> 319 bytes .../textures/item/medium_rocket_cm.png | Bin 406 -> 398 bytes .../recipe/cm_head_crafting.json | 27 ++++++ .../recipe/medium_rocket_ap_crafting.json | 21 +++++ .../recipe/medium_rocket_cm_crafting.json | 21 +++++ .../recipe/medium_rocket_he_crafting.json | 21 +++++ .../recipe/type_63_crafting.json | 35 +++++++ .../data/superbwarfare/vehicles/type_63.json | 89 +++++++++++++++++- 15 files changed, 229 insertions(+), 11 deletions(-) create mode 100644 src/generated/resources/assets/superbwarfare/models/item/cm_head.json create mode 100644 src/main/resources/assets/superbwarfare/textures/item/cm_head.png create mode 100644 src/main/resources/data/superbwarfare/recipe/cm_head_crafting.json create mode 100644 src/main/resources/data/superbwarfare/recipe/medium_rocket_ap_crafting.json create mode 100644 src/main/resources/data/superbwarfare/recipe/medium_rocket_cm_crafting.json create mode 100644 src/main/resources/data/superbwarfare/recipe/medium_rocket_he_crafting.json create mode 100644 src/main/resources/data/superbwarfare/recipe/type_63_crafting.json diff --git a/src/generated/resources/assets/superbwarfare/models/item/cm_head.json b/src/generated/resources/assets/superbwarfare/models/item/cm_head.json new file mode 100644 index 000000000..9a3c516fe --- /dev/null +++ b/src/generated/resources/assets/superbwarfare/models/item/cm_head.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "superbwarfare:item/cm_head" + } +} \ No newline at end of file diff --git a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java index 91035bcee..9a5b548cc 100644 --- a/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java +++ b/src/main/java/com/atsuishio/superbwarfare/datagen/ModItemModelProvider.java @@ -97,6 +97,7 @@ public class ModItemModelProvider extends ItemModelProvider { simpleItem(ModItems.BLU_43_MINE); simpleItem(ModItems.AP_HEAD); simpleItem(ModItems.HE_HEAD); + simpleItem(ModItems.CM_HEAD); simpleItem(ModItems.CANNON_CORE); simpleItem(ModItems.COPPER_PLATE); simpleItem(ModItems.STEEL_INGOT); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MediumRocketEntity.java b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MediumRocketEntity.java index 08b7551ab..e23c88c8b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MediumRocketEntity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/projectile/MediumRocketEntity.java @@ -264,7 +264,7 @@ public class MediumRocketEntity extends FastThrowableProjectile implements GeoEn double dh = position().vectorTo(finalPos).horizontalDistance(); int t = (int) (dh / vh); - sparedTime = tickCount + t - 5; + sparedTime = tickCount + t - 10; active = true; } @@ -309,14 +309,14 @@ public class MediumRocketEntity extends FastThrowableProjectile implements GeoEn ParticleTool.spawnMediumExplosionParticles(serverLevel, position()); for (int index0 = 0; index0 < sparedAmount; index0++) { GunGrenadeEntity gunGrenadeEntity = new GunGrenadeEntity(shooter, serverLevel, - 2 * damage / sparedAmount, + 6 * damage / sparedAmount, 5 * explosionDamage / sparedAmount, radius / 2 ); gunGrenadeEntity.setPos(position().x, position().y, position().z); - gunGrenadeEntity.shoot(getDeltaMovement().x, getDeltaMovement().y, getDeltaMovement().z, (float) (1.25f * getDeltaMovement().length()), - 30); + gunGrenadeEntity.shoot(getDeltaMovement().x, getDeltaMovement().y, getDeltaMovement().z, (float) (random.nextFloat() * 0.1f + 0.8f * getDeltaMovement().length()), + 25); serverLevel.addFreshEntity(gunGrenadeEntity); } discard(); diff --git a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Type63Entity.java b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Type63Entity.java index 95a7d6fd6..8941c0a9d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Type63Entity.java +++ b/src/main/java/com/atsuishio/superbwarfare/entity/vehicle/Type63Entity.java @@ -202,7 +202,7 @@ public class Type63Entity extends ContainerMobileVehicleEntity implements GeoEnt } else { // 撬棍发射 for (int i = 0; i < 12; i++) { - if (items.get(i).getItem() instanceof MediumRocketItem && cooldown == 0) { + if (items.get(i).getItem() instanceof MediumRocketItem && cooldown == 0 && getEnergy() > 0) { shoot(player, i); items.set(i, ItemStack.EMPTY); setChanged(); @@ -268,6 +268,7 @@ public class Type63Entity extends ContainerMobileVehicleEntity implements GeoEnt } } + consumeEnergy(1); ShakeClientMessage.sendToNearbyPlayers(this, 8, 8, 10, 20); } @@ -494,9 +495,4 @@ public class Type63Entity extends ContainerMobileVehicleEntity implements GeoEnt public void setChanged() { this.entityData.set(LOADED_AMMO, this.items.stream().map(i -> i.isEmpty() ? 0 : 1).toList()); } - - @Override - public boolean hasEnergyStorage() { - return false; - } } diff --git a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java index 91cc33a81..5bb9b30b2 100644 --- a/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java +++ b/src/main/java/com/atsuishio/superbwarfare/init/ModItems.java @@ -181,6 +181,7 @@ public class ModItems { public static final DeferredHolder PRIMER = ITEMS.register("primer", () -> new Item(new Item.Properties())); public static final DeferredHolder AP_HEAD = ITEMS.register("ap_head", () -> new Item(new Item.Properties())); public static final DeferredHolder HE_HEAD = ITEMS.register("he_head", () -> new Item(new Item.Properties())); + public static final DeferredHolder CM_HEAD = ITEMS.register("cm_head", () -> new Item(new Item.Properties())); public static final DeferredHolder CANNON_CORE = ITEMS.register("cannon_core", () -> new Item(new Item.Properties())); public static final DeferredHolder COPPER_PLATE = ITEMS.register("copper_plate", () -> new Item(new Item.Properties())); public static final DeferredHolder STEEL_INGOT = ITEMS.register("steel_ingot", () -> new Item(new Item.Properties())); diff --git a/src/main/resources/assets/superbwarfare/lang/en_us.json b/src/main/resources/assets/superbwarfare/lang/en_us.json index 361bcbdb9..5289751ed 100644 --- a/src/main/resources/assets/superbwarfare/lang/en_us.json +++ b/src/main/resources/assets/superbwarfare/lang/en_us.json @@ -225,6 +225,7 @@ "item.superbwarfare.primer": "Primer", "item.superbwarfare.ap_head": "AP Warhead", "item.superbwarfare.he_head": "HE Warhead", + "item.superbwarfare.cm_head": "CM Warhead", "item.superbwarfare.cannon_core": "Cannon Core", "item.superbwarfare.dog_tag": "Dog Tag", "curios.identifier.dog_tag": "Dog Tag", diff --git a/src/main/resources/assets/superbwarfare/lang/zh_cn.json b/src/main/resources/assets/superbwarfare/lang/zh_cn.json index c5d8d5a93..a660574c8 100644 --- a/src/main/resources/assets/superbwarfare/lang/zh_cn.json +++ b/src/main/resources/assets/superbwarfare/lang/zh_cn.json @@ -225,6 +225,7 @@ "item.superbwarfare.primer": "底火", "item.superbwarfare.ap_head": "穿甲弹头", "item.superbwarfare.he_head": "高爆弹头", + "item.superbwarfare.cm_head": "集束弹头", "item.superbwarfare.cannon_core": "火炮核心", "item.superbwarfare.dog_tag": "狗牌", "curios.identifier.dog_tag": "狗牌", diff --git a/src/main/resources/assets/superbwarfare/textures/item/cm_head.png b/src/main/resources/assets/superbwarfare/textures/item/cm_head.png new file mode 100644 index 0000000000000000000000000000000000000000..ab6dd55728e0c82cd505aaa0c016d62a4c8ce799 GIT binary patch literal 319 zcmV-F0l@x=P)rld)=qKoEw%3kT_fAYK`JVf(y;`#P3B$F@Gi_zuBV z*d|yQxJCopY!fW@Di1H{ok^3woZb2MW7vWJ&SC4ID2f1Jtp%X2>(#qYYei#B&{|`y zrSE$H@;nc_0n2EuuaI2;V@$}hjHYP-5D~Q2n-;qaL-z(d{>Gqf+xq|!VH`)M zX(Eaul=`K?`~$uB48w43T5E=tT`0>k066Dx&e3%paU7E*2>?}9ZSK#XasflQg2#p1 RY|{V$002ovPDHLkV1jzAhLHdO literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/superbwarfare/textures/item/medium_rocket_cm.png b/src/main/resources/assets/superbwarfare/textures/item/medium_rocket_cm.png index 57afe542e5645c3852761f2f05cb3eefe9c6e840..d7cb3829d060de4b5768b8431460fafa35ea118c 100644 GIT binary patch delta 350 zcmV-k0iphu1C9fbIe$P&L_t(Ijg^x>OT$1I#-D_e!J)Vq`UOPHq>v><@zyR1l236T zp_nN+1=sAlxa2cb5H3+joSGCQlUwN`K^!vlT)gzsL`)tyxc7zMbMGHc0l+a#3L&Is zRB%%~5%EK+2d)`9^vx9}HSuEw2k-2x$mJB|ac zKXtV!Z delta 358 zcmV-s0h#`e1C|4jIe$n=L_t(Ijg^zVO2beXhM$y@p+j}CcmWn^rV3q370)DeQIOn& za4wYlBADVcctFn#6OpdVh&yalp>kDW5O542Q#Y z1pwn-D-nmrp(@+^JiXrFf9z85?+AiGOBnnvJq`mAJeyCVTyfKDS#s~IEVmx<7iHd_ zeJ#wZyl3y^Lg~7m*qTO$WT&la^-`ke>0pKHx&%RxV2XL**?fZQ>M0mVZebJbFUpy4 z)PfK~nWl-VJYQtO@qwi(2w~f{Ijmm(3kE0{hJkI{^!t4r$3eZHF&(UO!BGoRO67ST zhG8%ojc7KTSeErC3_nA(EK7^Sp6BIZ(~?rE_*c!NZz$lwa98t6rT_o{07*qoM6N<$ Ef)n?w!T