From db2320607f15a4f0b362a92cb93f4a31418e411d Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Sat, 12 Apr 2025 03:48:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=90=AF=E5=8A=A8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../item/armor/BulletResistantArmor.java | 32 ++++++++++--------- .../superbwarfare/item/armor/GeHelmetM35.java | 16 ++++++++-- .../superbwarfare/item/armor/RuChest6b43.java | 16 ++++++++-- .../item/armor/RuHelmet6b47.java | 16 ++++++++-- .../superbwarfare/item/armor/UsChestIotv.java | 16 ++++++++-- .../item/armor/UsHelmetPastg.java | 16 ++++++++-- 6 files changed, 87 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/BulletResistantArmor.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/BulletResistantArmor.java index 669d49e72..46262de26 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/BulletResistantArmor.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/BulletResistantArmor.java @@ -13,6 +13,8 @@ import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.component.ItemAttributeModifiers; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; import org.jetbrains.annotations.NotNull; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.animatable.client.GeoRenderProvider; @@ -27,9 +29,22 @@ import java.util.function.Supplier; public abstract class BulletResistantArmor extends ArmorItem implements GeoItem { - private final Supplier> renderer; private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this); + private float bulletResistance = 0.1f; + + public BulletResistantArmor(Holder material, Type type, Properties properties) { + super(material, type, properties); + } + + public BulletResistantArmor(Holder material, Type type, Properties properties, float bulletResistance) { + super(material, type, properties); + this.bulletResistance = bulletResistance; + } + + @OnlyIn(Dist.CLIENT) + public abstract Supplier> getRenderer(); + @Override public AnimatableInstanceCache getAnimatableInstanceCache() { return this.cache; @@ -43,7 +58,7 @@ public abstract class BulletResistantArmor extends ArmorItem implements GeoItem @Override public HumanoidModel getGeoArmorRenderer(T livingEntity, ItemStack itemStack, EquipmentSlot equipmentSlot, HumanoidModel original) { if (this.renderer == null) - this.renderer = BulletResistantArmor.this.renderer.get(); + this.renderer = BulletResistantArmor.this.getRenderer().get(); return this.renderer; } }); @@ -53,19 +68,6 @@ public abstract class BulletResistantArmor extends ArmorItem implements GeoItem public void registerControllers(AnimatableManager.ControllerRegistrar data) { } - private float bulletResistance = 0.1f; - - public BulletResistantArmor(Holder material, Type type, Properties properties, Supplier> renderer) { - super(material, type, properties); - this.renderer = renderer; - } - - public BulletResistantArmor(Holder material, Type type, Properties properties, float bulletResistance, Supplier> renderer) { - super(material, type, properties); - this.bulletResistance = bulletResistance; - this.renderer = renderer; - } - @Override public @NotNull ItemAttributeModifiers getDefaultAttributeModifiers(@NotNull ItemStack stack) { var modifiers = super.getDefaultAttributeModifiers(stack); diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/GeHelmetM35.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/GeHelmetM35.java index a9b03d964..1d0248d77 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/GeHelmetM35.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/GeHelmetM35.java @@ -2,13 +2,25 @@ package com.atsuishio.superbwarfare.item.armor; import com.atsuishio.superbwarfare.client.renderer.armor.GeHelmetM35ArmorRenderer; import com.atsuishio.superbwarfare.init.ModArmorMaterials; +import net.minecraft.world.item.Item; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import software.bernie.geckolib.renderer.GeoArmorRenderer; + +import java.util.function.Supplier; public class GeHelmetM35 extends BulletResistantArmor { + public GeHelmetM35() { super(ModArmorMaterials.STEEL, Type.HELMET, - new Properties().durability(Type.HELMET.getDurability(35)), - GeHelmetM35ArmorRenderer::new + new Properties().durability(Type.HELMET.getDurability(35)) ); } + + @OnlyIn(Dist.CLIENT) + @Override + public Supplier> getRenderer() { + return GeHelmetM35ArmorRenderer::new; + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/RuChest6b43.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/RuChest6b43.java index 4d3f45587..cb9f606fd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/RuChest6b43.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/RuChest6b43.java @@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor; import com.atsuishio.superbwarfare.client.renderer.armor.RuChest6b43ArmorRenderer; import com.atsuishio.superbwarfare.init.ModArmorMaterials; +import net.minecraft.world.item.Item; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import software.bernie.geckolib.renderer.GeoArmorRenderer; + +import java.util.function.Supplier; public class RuChest6b43 extends BulletResistantArmor { + public RuChest6b43() { super(ModArmorMaterials.CEMENTED_CARBIDE, Type.CHESTPLATE, new Properties().durability(Type.CHESTPLATE.getDurability(50)), - 0.5f, - RuChest6b43ArmorRenderer::new + 0.5f ); } + + @OnlyIn(Dist.CLIENT) + @Override + public Supplier> getRenderer() { + return RuChest6b43ArmorRenderer::new; + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/RuHelmet6b47.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/RuHelmet6b47.java index 59088d695..1e718308b 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/RuHelmet6b47.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/RuHelmet6b47.java @@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor; import com.atsuishio.superbwarfare.client.renderer.armor.RuHelmet6b47ArmorRenderer; import com.atsuishio.superbwarfare.init.ModArmorMaterials; +import net.minecraft.world.item.Item; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import software.bernie.geckolib.renderer.GeoArmorRenderer; + +import java.util.function.Supplier; public class RuHelmet6b47 extends BulletResistantArmor { + public RuHelmet6b47() { super(ModArmorMaterials.CEMENTED_CARBIDE, Type.HELMET, new Properties().durability(Type.HELMET.getDurability(50)), - 0.2f, - RuHelmet6b47ArmorRenderer::new + 0.2f ); } + + @OnlyIn(Dist.CLIENT) + @Override + public Supplier> getRenderer() { + return RuHelmet6b47ArmorRenderer::new; + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/UsChestIotv.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/UsChestIotv.java index e1bb0b2a4..e04a4501d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/UsChestIotv.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/UsChestIotv.java @@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor; import com.atsuishio.superbwarfare.client.renderer.armor.UsChestIotvArmorRenderer; import com.atsuishio.superbwarfare.init.ModArmorMaterials; +import net.minecraft.world.item.Item; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import software.bernie.geckolib.renderer.GeoArmorRenderer; + +import java.util.function.Supplier; public class UsChestIotv extends BulletResistantArmor { + public UsChestIotv() { super(ModArmorMaterials.CEMENTED_CARBIDE, Type.CHESTPLATE, new Properties().durability(Type.CHESTPLATE.getDurability(50)), - 0.5f, - UsChestIotvArmorRenderer::new + 0.5f ); } + + @OnlyIn(Dist.CLIENT) + @Override + public Supplier> getRenderer() { + return UsChestIotvArmorRenderer::new; + } } diff --git a/src/main/java/com/atsuishio/superbwarfare/item/armor/UsHelmetPastg.java b/src/main/java/com/atsuishio/superbwarfare/item/armor/UsHelmetPastg.java index cc6d2b08c..62f756d8f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/item/armor/UsHelmetPastg.java +++ b/src/main/java/com/atsuishio/superbwarfare/item/armor/UsHelmetPastg.java @@ -2,14 +2,26 @@ package com.atsuishio.superbwarfare.item.armor; import com.atsuishio.superbwarfare.client.renderer.armor.UsHelmetPastgArmorRenderer; import com.atsuishio.superbwarfare.init.ModArmorMaterials; +import net.minecraft.world.item.Item; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import software.bernie.geckolib.renderer.GeoArmorRenderer; + +import java.util.function.Supplier; public class UsHelmetPastg extends BulletResistantArmor { + public UsHelmetPastg() { super(ModArmorMaterials.CEMENTED_CARBIDE, Type.HELMET, new Properties().durability(Type.HELMET.getDurability(50)), - 0.2f, - UsHelmetPastgArmorRenderer::new + 0.2f ); } + + @OnlyIn(Dist.CLIENT) + @Override + public Supplier> getRenderer() { + return UsHelmetPastgArmorRenderer::new; + } }