diff --git a/src/main/java/net/mcreator/superbwarfare/client/AnimationHelper.java b/src/main/java/net/mcreator/superbwarfare/client/AnimationHelper.java index 05c55e3b7..1d6c72ba3 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/AnimationHelper.java +++ b/src/main/java/net/mcreator/superbwarfare/client/AnimationHelper.java @@ -3,12 +3,15 @@ package net.mcreator.superbwarfare.client; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.event.ClientEventHandler; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.model.geom.ModelPart; +import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationProcessor; public class AnimationHelper { + public static void renderPartOverBone(ModelPart model, GeoBone bone, PoseStack stack, VertexConsumer buffer, int packedLightIn, int packedOverlayIn, float alpha) { renderPartOverBone(model, bone, stack, buffer, packedLightIn, packedOverlayIn, 1.0f, 1.0f, 1.0f, alpha); } @@ -34,4 +37,18 @@ public class AnimationHelper { ClientEventHandler.handleShells(x, y, shell1, shell2, shell3, shell4, shell5); } + + public static void handleReloadShakeAnimation(ItemStack stack, CoreGeoBone main, CoreGeoBone camera, float roll, float pitch) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) { + main.setRotX(roll * main.getRotX()); + main.setRotY(roll * main.getRotY()); + main.setRotZ(roll * main.getRotZ()); + main.setPosX(pitch * main.getPosX()); + main.setPosY(pitch * main.getPosY()); + main.setPosZ(pitch * main.getPosZ()); + camera.setRotX(roll * camera.getRotX()); + camera.setRotY(roll * camera.getRotY()); + camera.setRotZ(roll * camera.getRotZ()); + } + } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/layer/HuntingRifleLayer.java b/src/main/java/net/mcreator/superbwarfare/client/layer/HuntingRifleLayer.java index fbe0bb6a1..702bd25d6 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/layer/HuntingRifleLayer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/layer/HuntingRifleLayer.java @@ -13,7 +13,7 @@ import software.bernie.geckolib.renderer.GeoRenderer; import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class HuntingRifleLayer extends GeoRenderLayer { - private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/huntingrifle_e.png"); + private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/hunting_rifle_e.png"); public HuntingRifleLayer(GeoRenderer entityRenderer) { super(entityRenderer); diff --git a/src/main/java/net/mcreator/superbwarfare/client/layer/LightSaberLayer.java b/src/main/java/net/mcreator/superbwarfare/client/layer/LightSaberLayer.java index 2cce1749c..32e07075c 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/layer/LightSaberLayer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/layer/LightSaberLayer.java @@ -13,7 +13,7 @@ import software.bernie.geckolib.renderer.GeoRenderer; import software.bernie.geckolib.renderer.layer.GeoRenderLayer; public class LightSaberLayer extends GeoRenderLayer { - private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/lightsaber_e.png"); + private static final ResourceLocation LAYER = new ResourceLocation(ModUtils.MODID, "textures/item/light_saber_e.png"); public LightSaberLayer(GeoRenderer entityRenderer) { super(entityRenderer); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/AK12ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/AK12ItemModel.java index 3df45b8fb..b173655ea 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/AK12ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/AK12ItemModel.java @@ -164,19 +164,8 @@ public class AK12ItemModel extends GeoModel { float numR = (float) (1 - 0.94 * zt); float numP = (float) (1 - 0.8 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.35f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/AK47ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/AK47ItemModel.java index c63d40f82..320a38fbe 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/AK47ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/AK47ItemModel.java @@ -16,22 +16,23 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class AK47ItemModel extends GeoModel { + public static float fireRotY = 0f; public static float fireRotZ = 0f; @Override public ResourceLocation getAnimationResource(AK47Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/ak.animation.json"); + return ModUtils.loc("animations/ak.animation.json"); } @Override public ResourceLocation getModelResource(AK47Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/ak.geo.json"); + return ModUtils.loc("geo/ak.geo.json"); } @Override public ResourceLocation getTextureResource(AK47Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/ak47.png"); + return ModUtils.loc("textures/item/ak47.png"); } @Override @@ -159,19 +160,8 @@ public class AK47ItemModel extends GeoModel { float numR = (float) (1 - 0.98 * zt); float numP = (float) (1 - 0.92 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.35f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Aa12ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Aa12ItemModel.java index 044a42260..809acfb3d 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Aa12ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Aa12ItemModel.java @@ -15,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class Aa12ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Aa12Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/aa12.animation.json"); + return ModUtils.loc("animations/aa12.animation.json"); } @Override public ResourceLocation getModelResource(Aa12Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/aa12.geo.json"); + return ModUtils.loc("geo/aa12.geo.json"); } @Override public ResourceLocation getTextureResource(Aa12Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/aa12_new.png"); + return ModUtils.loc("textures/item/aa12_new.png"); } @Override @@ -92,19 +93,8 @@ public class Aa12ItemModel extends GeoModel { float numR = (float) (1 - 0.82 * zt); float numP = (float) (1 - 0.68 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.55f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/AbekiriItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/AbekiriItemModel.java index b228a45cd..7444ef74a 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/AbekiriItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/AbekiriItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.shotgun.AbekiriItem; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class AbekiriItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(AbekiriItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/abekiri.animation.json"); + return ModUtils.loc("animations/abekiri.animation.json"); } @Override public ResourceLocation getModelResource(AbekiriItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/abekiri.geo.json"); + return ModUtils.loc("geo/abekiri.geo.json"); } @Override public ResourceLocation getTextureResource(AbekiriItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/abekiri.png"); + return ModUtils.loc("textures/item/abekiri.png"); } @Override @@ -74,7 +76,7 @@ public class AbekiriItemModel extends GeoModel { shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -86,17 +88,7 @@ public class AbekiriItemModel extends GeoModel { float numR = (float) (1 - 0.42 * zt); float numP = (float) (1 - 0.48 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/BocekItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/BocekItemModel.java index 73b128dcd..95ee3e2e6 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/BocekItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/BocekItemModel.java @@ -14,19 +14,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class BocekItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(BocekItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/bocek.animation.json"); + return ModUtils.loc("animations/bocek.animation.json"); } @Override public ResourceLocation getModelResource(BocekItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/bocek.geo.json"); + return ModUtils.loc("geo/bocek.geo.json"); } @Override public ResourceLocation getTextureResource(BocekItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/bocek.png"); + return ModUtils.loc("textures/item/bocek.png"); } @Override @@ -95,7 +96,6 @@ public class BocekItemModel extends GeoModel { deng3.setPosZ(0.05f * (float) bp); deng.setScaleZ(1f + (0.07f * (float) bp)); - lh.setRotX(0.2f * (float) zp); shen_pos.setPosX(-3.64f * (float) zp); shen_pos.setPosY(6.46f * (float) zp - (float) (0.2f * zpz)); @@ -113,13 +113,13 @@ public class BocekItemModel extends GeoModel { fire.setRotZ((float) ((0.02f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); CoreGeoBone camera = getAnimationProcessor().getBone("camera"); - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java index 6b0651c04..8892b84dd 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/DevotionItemModel.java @@ -17,22 +17,22 @@ import software.bernie.geckolib.model.GeoModel; import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; public class DevotionItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(DevotionItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/devotion.animation.json"); + return ModUtils.loc("animations/devotion.animation.json"); } @Override public ResourceLocation getModelResource(DevotionItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/devotion.geo.json"); + return ModUtils.loc("geo/devotion.geo.json"); } @Override public ResourceLocation getTextureResource(DevotionItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/devotion.png"); + return ModUtils.loc("textures/item/devotion.png"); } - @Override public void setCustomAnimations(DevotionItem animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); @@ -91,7 +91,7 @@ public class DevotionItemModel extends GeoModel { bolt.setPosZ(-2f * (float) fp); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -108,19 +108,8 @@ public class DevotionItemModel extends GeoModel { float numR = (float) (1 - 0.82 * zt); float numP = (float) (1 - 0.78 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.55f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java index 95e08cbdc..92220b853 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock17ItemModel.java @@ -5,6 +5,7 @@ import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.handgun.Glock17Item; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -15,19 +16,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class Glock17ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Glock17Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/glock17.animation.json"); + return ModUtils.loc("animations/glock17.animation.json"); } @Override public ResourceLocation getModelResource(Glock17Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/glock17.geo.json"); + return ModUtils.loc("geo/glock17.geo.json"); } @Override public ResourceLocation getTextureResource(Glock17Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/glock17.png"); + return ModUtils.loc("textures/item/glock17.png"); } @Override @@ -87,7 +89,7 @@ public class Glock17ItemModel extends GeoModel { slide.setPosZ(1.5f * (float) fp); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -100,7 +102,7 @@ public class Glock17ItemModel extends GeoModel { float numR = (float) (1 - 0.12 * zt); float numP = (float) (1 - 0.68 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); @@ -117,8 +119,8 @@ public class Glock17ItemModel extends GeoModel { camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java index ac88422c4..3dfcaa364 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Glock18ItemModel.java @@ -5,6 +5,7 @@ import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.handgun.Glock18Item; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -15,19 +16,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class Glock18ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Glock18Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/glock17.animation.json"); + return ModUtils.loc("animations/glock17.animation.json"); } @Override public ResourceLocation getModelResource(Glock18Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/glock18.geo.json"); + return ModUtils.loc("geo/glock18.geo.json"); } @Override public ResourceLocation getTextureResource(Glock18Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/glock17.png"); + return ModUtils.loc("textures/item/glock17.png"); } @Override @@ -95,7 +97,7 @@ public class Glock18ItemModel extends GeoModel { slide.setPosZ(1.5f * (float) fp); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -108,7 +110,7 @@ public class Glock18ItemModel extends GeoModel { float numR = (float) (1 - 0.12 * zt); float numP = (float) (1 - 0.68 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); @@ -125,8 +127,8 @@ public class Glock18ItemModel extends GeoModel { camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Hk416ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Hk416ItemModel.java index fcc16a996..775f1c96a 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Hk416ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Hk416ItemModel.java @@ -18,22 +18,24 @@ import software.bernie.geckolib.model.GeoModel; import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; public class Hk416ItemModel extends GeoModel { + public static float fireRotY = 0f; public static float fireRotZ = 0f; public static float rotXBipod = 0f; + @Override public ResourceLocation getAnimationResource(Hk416Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/hk416.animation.json"); + return ModUtils.loc("animations/hk416.animation.json"); } @Override public ResourceLocation getModelResource(Hk416Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/hk416.geo.json"); + return ModUtils.loc("geo/hk416.geo.json"); } @Override public ResourceLocation getTextureResource(Hk416Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/hk416.png"); + return ModUtils.loc("textures/item/hk416.png"); } @Override @@ -158,19 +160,8 @@ public class Hk416ItemModel extends GeoModel { float numR = (float) (1 - 0.985 * zt); float numP = (float) (1 - 0.92 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.55f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/HuntingRifleItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/HuntingRifleItemModel.java index b39da3e07..4383f9cca 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/HuntingRifleItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/HuntingRifleItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.sniper.HuntingRifleItem; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class HuntingRifleItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(HuntingRifleItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/hunting_rifle.animation.json"); + return ModUtils.loc("animations/hunting_rifle.animation.json"); } @Override public ResourceLocation getModelResource(HuntingRifleItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/hunting_rifle.geo.json"); + return ModUtils.loc("geo/hunting_rifle.geo.json"); } @Override public ResourceLocation getTextureResource(HuntingRifleItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/huntingrifle.png"); + return ModUtils.loc("textures/item/hunting_rifle.png"); } @Override @@ -93,7 +95,7 @@ public class HuntingRifleItemModel extends GeoModel { } CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -105,17 +107,7 @@ public class HuntingRifleItemModel extends GeoModel { float numR = (float) (1 - 0.82 * zt); float numP = (float) (1 - 0.78 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java index 7d1e6af98..4c14fd310 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/JavelinItemModel.java @@ -14,19 +14,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class JavelinItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(JavelinItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/javelin.animation.json"); + return ModUtils.loc("animations/javelin.animation.json"); } @Override public ResourceLocation getModelResource(JavelinItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/javelin.geo.json"); + return ModUtils.loc("geo/javelin.geo.json"); } @Override public ResourceLocation getTextureResource(JavelinItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/javelin.png"); + return ModUtils.loc("textures/item/javelin.png"); } @Override @@ -74,13 +75,13 @@ public class JavelinItemModel extends GeoModel { shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); CoreGeoBone camera = getAnimationProcessor().getBone("camera"); - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java index eac8146f7..91dde150e 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/K98ItemModel.java @@ -4,6 +4,7 @@ import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.sniper.K98Item; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class K98ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(K98Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/k98.animation.json"); + return ModUtils.loc("animations/k98.animation.json"); } @Override public ResourceLocation getModelResource(K98Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/kar98k.geo.json"); + return ModUtils.loc("geo/kar98k.geo.json"); } @Override public ResourceLocation getTextureResource(K98Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/k98.png"); + return ModUtils.loc("textures/item/k98.png"); } @Override @@ -89,7 +91,7 @@ public class K98ItemModel extends GeoModel { shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -102,7 +104,7 @@ public class K98ItemModel extends GeoModel { float numR = (float) (1 - 0.52 * zt); float numP = (float) (1 - 0.58 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0 || stack.getOrCreateTag().getBoolean("reloading")) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0 || stack.getOrCreateTag().getBoolean("reloading")) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); @@ -119,6 +121,6 @@ public class K98ItemModel extends GeoModel { camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/LightSaberItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/LightSaberItemModel.java index 92d857a31..80b00224a 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/LightSaberItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/LightSaberItemModel.java @@ -6,6 +6,7 @@ import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class LightSaberItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(LightSaber animatable) { return null; @@ -13,11 +14,11 @@ public class LightSaberItemModel extends GeoModel { @Override public ResourceLocation getModelResource(LightSaber animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/lightsaber.geo.json"); + return ModUtils.loc("geo/light_saber.geo.json"); } @Override public ResourceLocation getTextureResource(LightSaber animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/lightsaber.png"); + return ModUtils.loc("textures/item/light_saber.png"); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java index 19d5b020a..474a03225 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M1911ItemModel.java @@ -5,6 +5,7 @@ import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.handgun.M1911Item; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -15,19 +16,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class M1911ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(M1911Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/m1911.animation.json"); + return ModUtils.loc("animations/m1911.animation.json"); } @Override public ResourceLocation getModelResource(M1911Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/m1911.geo.json"); + return ModUtils.loc("geo/m1911.geo.json"); } @Override public ResourceLocation getTextureResource(M1911Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/m1911.png"); + return ModUtils.loc("textures/item/m1911.png"); } @Override @@ -85,7 +87,7 @@ public class M1911ItemModel extends GeoModel { slide.setPosZ(2.75f * (float) fp); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -98,7 +100,7 @@ public class M1911ItemModel extends GeoModel { float numR = (float) (1 - 0.12 * zt); float numP = (float) (1 - 0.68 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); @@ -115,8 +117,8 @@ public class M1911ItemModel extends GeoModel { camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M4ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M4ItemModel.java index dffcfe853..07913426e 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M4ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M4ItemModel.java @@ -18,6 +18,7 @@ import software.bernie.geckolib.model.GeoModel; import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; public class M4ItemModel extends GeoModel { + public static float posYAlt = 0.5625f; public static float scaleZAlt = 0.88f; public static float posZAlt = 7.6f; @@ -28,17 +29,17 @@ public class M4ItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(M4Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/m4.animation.json"); + return ModUtils.loc("animations/m4.animation.json"); } @Override public ResourceLocation getModelResource(M4Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/m4.geo.json"); + return ModUtils.loc("geo/m4.geo.json"); } @Override public ResourceLocation getTextureResource(M4Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/m4.png"); + return ModUtils.loc("textures/item/m4.png"); } @Override @@ -80,9 +81,9 @@ public class M4ItemModel extends GeoModel { int type = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE); - posYAlt = Mth.lerp(times, posYAlt, stack.getOrCreateTag().getBoolean("ScopeAlt")? -0.6875f : 0.5625f); - scaleZAlt = Mth.lerp(times, scaleZAlt, stack.getOrCreateTag().getBoolean("ScopeAlt")? 0.4f : 0.88f); - posZAlt = Mth.lerp(times, posZAlt, stack.getOrCreateTag().getBoolean("ScopeAlt")? 5.5f : 7.6f); + posYAlt = Mth.lerp(times, posYAlt, stack.getOrCreateTag().getBoolean("ScopeAlt") ? -0.6875f : 0.5625f); + scaleZAlt = Mth.lerp(times, scaleZAlt, stack.getOrCreateTag().getBoolean("ScopeAlt") ? 0.4f : 0.88f); + posZAlt = Mth.lerp(times, posZAlt, stack.getOrCreateTag().getBoolean("ScopeAlt") ? 5.5f : 7.6f); rotXSight = Mth.lerp(1.5f * times, rotXSight, type == 0 ? 0 : 90); float posY = switch (type) { @@ -178,19 +179,8 @@ public class M4ItemModel extends GeoModel { float numR = (float) (1 - 0.985 * zt); float numP = (float) (1 - 0.92 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.55f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java index 4efbb78e1..bae15a758 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M60ItemModel.java @@ -5,6 +5,7 @@ import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.machinegun.M60Item; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -17,19 +18,20 @@ import software.bernie.geckolib.model.GeoModel; import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; public class M60ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(M60Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/m60.animation.json"); + return ModUtils.loc("animations/m60.animation.json"); } @Override public ResourceLocation getModelResource(M60Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/m60.geo.json"); + return ModUtils.loc("geo/m60.geo.json"); } @Override public ResourceLocation getTextureResource(M60Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/m60.png"); + return ModUtils.loc("textures/item/m60.png"); } @Override @@ -143,7 +145,7 @@ public class M60ItemModel extends GeoModel { AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.45f); CoreGeoBone shell = getAnimationProcessor().getBone("shell"); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M79ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M79ItemModel.java index 8123f4878..f8590eace 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M79ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M79ItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.launcher.M79Item; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class M79ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(M79Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/m79.animation.json"); + return ModUtils.loc("animations/m79.animation.json"); } @Override public ResourceLocation getModelResource(M79Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/m79.geo.json"); + return ModUtils.loc("geo/m79.geo.json"); } @Override public ResourceLocation getTextureResource(M79Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/m79.png"); + return ModUtils.loc("textures/item/m79.png"); } @Override @@ -80,7 +82,7 @@ public class M79ItemModel extends GeoModel { shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -92,17 +94,7 @@ public class M79ItemModel extends GeoModel { float numR = (float) (1 - 0.58 * zt); float numP = (float) (1 - 0.58 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java index 3188e2442..79ebe36e3 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M870ItemModel.java @@ -14,19 +14,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class M870ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(M870Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/m870.animation.json"); + return ModUtils.loc("animations/m870.animation.json"); } @Override public ResourceLocation getModelResource(M870Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/m870.geo.json"); + return ModUtils.loc("geo/m870.geo.json"); } @Override public ResourceLocation getTextureResource(M870Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/m870.png"); + return ModUtils.loc("textures/item/m870.png"); } @Override @@ -83,7 +84,7 @@ public class M870ItemModel extends GeoModel { CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -95,6 +96,7 @@ public class M870ItemModel extends GeoModel { float numR = (float) (1 - 0.72 * zt); float numP = (float) (1 - 0.82 * zt); + // TODO 修改本nbt if (stack.getOrCreateTag().getBoolean("reloading")) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); @@ -106,6 +108,6 @@ public class M870ItemModel extends GeoModel { camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java index fdffdc596..747ec0f6f 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/M98bItemModel.java @@ -4,6 +4,7 @@ import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.sniper.M98bItem; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class M98bItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(M98bItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/m98b.animation.json"); + return ModUtils.loc("animations/m98b.animation.json"); } @Override public ResourceLocation getModelResource(M98bItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/m98b.geo.json"); + return ModUtils.loc("geo/m98b.geo.json"); } @Override public ResourceLocation getTextureResource(M98bItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/m98b.png"); + return ModUtils.loc("textures/item/m98b.png"); } @Override @@ -90,7 +92,7 @@ public class M98bItemModel extends GeoModel { zhunxing.setPosX(75 * movePosX); zhunxing.setPosY(75 * movePosY); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -99,7 +101,7 @@ public class M98bItemModel extends GeoModel { float numR = (float) (1 - 0.88 * zt); float numP = (float) (1 - 0.68 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); @@ -117,6 +119,6 @@ public class M98bItemModel extends GeoModel { scope.setPosY(numP * scope.getPosY()); scope.setPosZ(numP * scope.getPosZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java index ebba1b5e8..01ee058c3 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java @@ -14,19 +14,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class MarlinItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(MarlinItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/marlin.animation.json"); + return ModUtils.loc("animations/marlin.animation.json"); } @Override public ResourceLocation getModelResource(MarlinItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/marlin.geo.json"); + return ModUtils.loc("geo/marlin.geo.json"); } @Override public ResourceLocation getTextureResource(MarlinItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/marlin.png"); + return ModUtils.loc("textures/item/marlin.png"); } @Override @@ -59,13 +60,9 @@ public class MarlinItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(1.712f * (float) zp); - gun.setPosY(1.06f * (float) zp - (float) (0.7f * zpz)); - gun.setPosZ(4f * (float) zp + (float) (0.9f * zpz)); - gun.setRotZ((float) (0.02f * zpz)); - gun.setScaleZ(1f - (0.5f * (float) zp)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); @@ -87,7 +84,7 @@ public class MarlinItemModel extends GeoModel { } CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -99,6 +96,7 @@ public class MarlinItemModel extends GeoModel { float numR = (float) (1 - 0.55 * zt); float numP = (float) (1 - 0.88 * zt); + // TODO 修改本nbt if (stack.getOrCreateTag().getBoolean("reloading")) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); @@ -110,6 +108,6 @@ public class MarlinItemModel extends GeoModel { camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ()); } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/MinigunItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/MinigunItemModel.java index 26007785f..dddb8b069 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/MinigunItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/MinigunItemModel.java @@ -14,19 +14,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class MinigunItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(MinigunItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/minigun.animation.json"); + return ModUtils.loc("animations/minigun.animation.json"); } @Override public ResourceLocation getModelResource(MinigunItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/minigun.geo.json"); + return ModUtils.loc("geo/minigun.geo.json"); } @Override public ResourceLocation getTextureResource(MinigunItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/minigun.png"); + return ModUtils.loc("textures/item/minigun.png"); } @Override @@ -70,13 +71,13 @@ public class MinigunItemModel extends GeoModel { shen.setRotZ((float) ((0.02f + 0.02 * fr) * ClientEventHandler.recoilHorizon)); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ)); CoreGeoBone camera = getAnimationProcessor().getBone("camera"); - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java index 2d154bc74..6d8275b94 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java @@ -17,19 +17,20 @@ import software.bernie.geckolib.model.GeoModel; import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; public class Mk14ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Mk14Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/mk14ebr.animation.json"); + return ModUtils.loc("animations/mk14ebr.animation.json"); } @Override public ResourceLocation getModelResource(Mk14Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/mk14ebr.geo.json"); + return ModUtils.loc("geo/mk14ebr.geo.json"); } @Override public ResourceLocation getTextureResource(Mk14Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/mk14.png"); + return ModUtils.loc("textures/item/mk14.png"); } @Override @@ -117,20 +118,10 @@ public class Mk14ItemModel extends GeoModel { float numR = (float) (1 - 0.95 * zt); float numP = (float) (1 - 0.94 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.9f, 0.95f); + CoreGeoBone shell = getAnimationProcessor().getBone("shell"); if (stack.getOrCreateTag().getBoolean("HoldOpen")) { @@ -139,7 +130,6 @@ public class Mk14ItemModel extends GeoModel { shell.setScaleY(0); shell.setScaleZ(0); } else { - shell.setScaleX(1); shell.setScaleY(1); shell.setScaleZ(1); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/MosinNagantItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/MosinNagantItemModel.java index 526060b6c..5a820722d 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/MosinNagantItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/MosinNagantItemModel.java @@ -14,19 +14,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class MosinNagantItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(MosinNagantItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/mosin_nagant.animation.json"); + return ModUtils.loc("animations/mosin_nagant.animation.json"); } @Override public ResourceLocation getModelResource(MosinNagantItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/mosin_nagant.geo.json"); + return ModUtils.loc("geo/mosin_nagant.geo.json"); } @Override public ResourceLocation getTextureResource(MosinNagantItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/mosin_nagant.png"); + return ModUtils.loc("textures/item/mosin_nagant.png"); } @Override @@ -116,6 +117,7 @@ public class MosinNagantItemModel extends GeoModel { float numR = (float) (1 - 0.97 * zt); float numP = (float) (1 - 0.81 * zt); + // TODO 修改本nbt if (stack.getOrCreateTag().getBoolean("reloading") || stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java index a286ae692..efedee70b 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java @@ -4,6 +4,7 @@ import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.sniper.Ntw20Item; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -16,19 +17,20 @@ import software.bernie.geckolib.model.GeoModel; import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne; public class Ntw20Model extends GeoModel { + @Override public ResourceLocation getAnimationResource(Ntw20Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/ntw_20.animation.json"); + return ModUtils.loc("animations/ntw_20.animation.json"); } @Override public ResourceLocation getModelResource(Ntw20Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/ntw_20.geo.json"); + return ModUtils.loc("geo/ntw_20.geo.json"); } @Override public ResourceLocation getTextureResource(Ntw20Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/ntw_20.png"); + return ModUtils.loc("textures/item/ntw_20.png"); } @Override @@ -103,7 +105,7 @@ public class Ntw20Model extends GeoModel { float numR = (float) (1 - 0.92 * zt); float numP = (float) (1 - 0.88 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0 || stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0 || stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Qbz95ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Qbz95ItemModel.java index 6a7dc24ad..ab9990ffd 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Qbz95ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Qbz95ItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.rifle.Qbz95Item; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class Qbz95ItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Qbz95Item animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/qbz95.animation.json"); + return ModUtils.loc("animations/qbz95.animation.json"); } @Override public ResourceLocation getModelResource(Qbz95Item animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/qbz95.geo.json"); + return ModUtils.loc("geo/qbz95.geo.json"); } @Override public ResourceLocation getTextureResource(Qbz95Item animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/qbz95.png"); + return ModUtils.loc("textures/item/qbz95.png"); } @Override @@ -99,17 +101,7 @@ public class Qbz95ItemModel extends GeoModel { float numR = (float) (1 - 0.92 * zt); float numP = (float) (1 - 0.88 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/RocketItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/RocketItemModel.java index 4f483a40a..87cef14b5 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/RocketItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/RocketItemModel.java @@ -6,18 +6,19 @@ import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; public class RocketItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Rocket animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/rpg.head.animation.json"); + return ModUtils.loc("animations/rpg.head.animation.json"); } @Override public ResourceLocation getModelResource(Rocket animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/rpg.head.geo.json"); + return ModUtils.loc("geo/rpg.head.geo.json"); } @Override public ResourceLocation getTextureResource(Rocket animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/rpg7.png"); + return ModUtils.loc("textures/item/rpg7.png"); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java index 0e90c58c1..11df6ebc7 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.launcher.RpgItem; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class RpgItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(RpgItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/rpg.animation.json"); + return ModUtils.loc("animations/rpg.animation.json"); } @Override public ResourceLocation getModelResource(RpgItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/rpg.geo.json"); + return ModUtils.loc("geo/rpg.geo.json"); } @Override public ResourceLocation getTextureResource(RpgItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/rpg7.png"); + return ModUtils.loc("textures/item/rpg7.png"); } @Override @@ -83,7 +85,7 @@ public class RpgItemModel extends GeoModel { gun.setScaleZ(1f - (0.5f * (float) zp)); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -95,17 +97,7 @@ public class RpgItemModel extends GeoModel { float numR = (float) (1 - 0.82 * zt); float numP = (float) (1 - 0.78 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java index d2e72b3b1..444b8591e 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java @@ -15,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class RpkItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(RpkItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/rpk.animation.json"); + return ModUtils.loc("animations/rpk.animation.json"); } @Override public ResourceLocation getModelResource(RpkItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/rpk.geo.json"); + return ModUtils.loc("geo/rpk.geo.json"); } @Override public ResourceLocation getTextureResource(RpkItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/rpk.png"); + return ModUtils.loc("textures/item/rpk.png"); } @Override @@ -102,19 +103,8 @@ public class RpkItemModel extends GeoModel { float numR = (float) (1 - 0.94 * zt); float numP = (float) (1 - 0.8 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.55f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java index e8a34c5b3..8b1182724 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java @@ -4,6 +4,7 @@ import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.sniper.SentinelItem; +import net.mcreator.superbwarfare.tools.GunsTool; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class SentinelItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(SentinelItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/sentinel.animation.json"); + return ModUtils.loc("animations/sentinel.animation.json"); } @Override public ResourceLocation getModelResource(SentinelItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/sentinel.geo.json"); + return ModUtils.loc("geo/sentinel.geo.json"); } @Override public ResourceLocation getTextureResource(SentinelItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/sentinel.png"); + return ModUtils.loc("textures/item/sentinel.png"); } @Override @@ -61,17 +63,12 @@ public class SentinelItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(2.928f * (float) zp); - gun.setPosY(-0.062f * (float) zp - (float) (0.1f * zpz)); - gun.setPosZ(10f * (float) zp + (float) (0.3f * zpz)); - gun.setRotZ((float) (0.05f * zpz)); - gun.setScaleZ(1f - (0.7f * (float) zp)); scope.setScaleZ(1f - (0.8f * (float) zp)); - cb.setRotZ(cb.getRotZ() + times * 0.03f * (float) (stack.getOrCreateTag().getDouble("chamber_rot"))); CoreGeoBone holo = getAnimationProcessor().getBone("holo"); @@ -112,7 +109,7 @@ public class SentinelItemModel extends GeoModel { float numR = (float) (1 - 0.9 * zt); float numP = (float) (1 - 0.98 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0 || stack.getOrCreateTag().getBoolean("sentinel_is_charging")) { + if (GunsTool.getGunIntTag(stack, "ReloadTime") > 0 || stack.getOrCreateTag().getBoolean("sentinel_is_charging")) { main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ()); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java index 3e5247ebe..554ce803b 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java @@ -15,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class SksItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(SksItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/sks.animation.json"); + return ModUtils.loc("animations/sks.animation.json"); } @Override public ResourceLocation getModelResource(SksItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/sks.geo.json"); + return ModUtils.loc("geo/sks.geo.json"); } @Override public ResourceLocation getTextureResource(SksItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/sks.png"); + return ModUtils.loc("textures/item/sks.png"); } @Override @@ -60,15 +61,11 @@ public class SksItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(1.53f * (float) zp); - gun.setPosY(0.34f * (float) zp - (float) (0.6f * zpz)); - gun.setPosZ(2.5f * (float) zp + (float) (0.5f * zpz)); - gun.setRotZ((float) (0.05f * zpz)); - stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.2)); - + stack.getOrCreateTag().putBoolean("HoloHidden", gun.getPosX() <= 1.2); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); @@ -100,17 +97,7 @@ public class SksItemModel extends GeoModel { float numR = (float) (1 - 0.92 * zt); float numP = (float) (1 - 0.88 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1.2f); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java index 77ea33a71..6b0097e99 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java @@ -16,19 +16,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class SvdItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(SvdItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/svd.animation.json"); + return ModUtils.loc("animations/svd.animation.json"); } @Override public ResourceLocation getModelResource(SvdItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/svd.geo.json"); + return ModUtils.loc("geo/svd.geo.json"); } @Override public ResourceLocation getTextureResource(SvdItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/svd.png"); + return ModUtils.loc("textures/item/svd.png"); } @Override @@ -70,22 +71,15 @@ public class SvdItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(2.02f * (float) zp); - gun.setPosY(0.85f * (float) zp - (float) (0.6f * zpz)); - gun.setPosZ(13.2f * (float) zp + (float) (0.5f * zpz)); - gun.setRotZ((float) (0.05f * zpz)); - gun.setScaleZ(1f - (0.8f * (float) zp)); scope.setScaleZ(1f - (0.95f * (float) zp)); - bt1.setScaleY(1f - (0.5f * (float) zp)); - bt2.setScaleX(1f - (0.5f * (float) zp)); - - stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.9)); + stack.getOrCreateTag().putBoolean("HoloHidden", gun.getPosX() <= 1.9); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); @@ -128,19 +122,8 @@ public class SvdItemModel extends GeoModel { float numR = (float) (1 - 0.94 * zt); float numP = (float) (1 - 0.88 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1f, 0.65f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java index 1d8e69c29..db21da7b8 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModPerks; import net.mcreator.superbwarfare.init.ModTags; @@ -22,17 +23,17 @@ public class TaserItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(TaserItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/taser.animation.json"); + return ModUtils.loc("animations/taser.animation.json"); } @Override public ResourceLocation getModelResource(TaserItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/taser.geo.json"); + return ModUtils.loc("geo/taser.geo.json"); } @Override public ResourceLocation getTextureResource(TaserItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/tasergun.png"); + return ModUtils.loc("textures/item/tasergun.png"); } @Override @@ -106,15 +107,12 @@ public class TaserItemModel extends GeoModel { shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt))); gun.setPosX(1.82f * (float) zp); - gun.setPosY(1.3f * (float) zp - (float) (0.3f * zpz)); - gun.setPosZ((float) zp + (float) (0.5f * zpz)); - gun.setRotZ((float) (0.05f * zpz)); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -126,17 +124,7 @@ public class TaserItemModel extends GeoModel { float numR = (float) (1 - 0.72 * zt); float numP = (float) (1 - 0.68 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java index 4d340cf3b..b76d0f091 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/TracheliumItemModel.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.client.model.item; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.client.AnimationHelper; import net.mcreator.superbwarfare.event.ClientEventHandler; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.gun.handgun.Trachelium; @@ -14,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class TracheliumItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(Trachelium animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/trachelium.animation.json"); + return ModUtils.loc("animations/trachelium.animation.json"); } @Override public ResourceLocation getModelResource(Trachelium animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/trachelium.geo.json"); + return ModUtils.loc("geo/trachelium.geo.json"); } @Override public ResourceLocation getTextureResource(Trachelium animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/trachelium_texture.png"); + return ModUtils.loc("textures/item/trachelium_texture.png"); } @Override @@ -58,13 +60,9 @@ public class TracheliumItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(1.48f * (float) zp); - gun.setPosY(3.2f * (float) zp - (float) (0.6f * zpz)); - gun.setPosZ((float) zp + (float) (0.5f * zpz)); - gun.setRotZ(-0.087f * (float) zp + (float) (0.05f * zpz)); - gun.setScaleZ(1f - (0.2f * (float) zp)); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); @@ -82,7 +80,7 @@ public class TracheliumItemModel extends GeoModel { shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); CoreGeoBone root = getAnimationProcessor().getBone("root"); - root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); + root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph)); root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY)); root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY)); root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY)); @@ -94,17 +92,7 @@ public class TracheliumItemModel extends GeoModel { float numR = (float) (1 - 0.22 * zt); float numP = (float) (1 - 0.48 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); + ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); } } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java index aa370964f..6b2baaed5 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java @@ -15,19 +15,20 @@ import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; public class VectorItemModel extends GeoModel { + @Override public ResourceLocation getAnimationResource(VectorItem animatable) { - return new ResourceLocation(ModUtils.MODID, "animations/vector.animation.json"); + return ModUtils.loc("animations/vector.animation.json"); } @Override public ResourceLocation getModelResource(VectorItem animatable) { - return new ResourceLocation(ModUtils.MODID, "geo/vector.geo.json"); + return ModUtils.loc("geo/vector.geo.json"); } @Override public ResourceLocation getTextureResource(VectorItem animatable) { - return new ResourceLocation(ModUtils.MODID, "textures/item/vector.png"); + return ModUtils.loc("textures/item/vector.png"); } @Override @@ -71,16 +72,12 @@ public class VectorItemModel extends GeoModel { double fr = ClientEventHandler.fireRot; gun.setPosX(2.35f * (float) zp); - gun.setPosY(0.74f * (float) zp - (float) (0.2f * zpz)); - gun.setPosZ(5f * (float) zp + (float) (0.3f * zpz)); - gun.setScaleZ(1f - (0.5f * (float) zp)); - scope.setScaleZ(1f - (0.2f * (float) zp)); - stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 2)); + stack.getOrCreateTag().putBoolean("HoloHidden", gun.getPosX() <= 2); shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); shen.setPosY((float) (-0.05f * fp - 0.04f * fr)); @@ -109,21 +106,8 @@ public class VectorItemModel extends GeoModel { float numR = (float) (1 - 0.92 * zt); float numP = (float) (1 - 0.88 * zt); - if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) { - main.setRotX(numR * main.getRotX()); - main.setRotY(numR * main.getRotY()); - main.setRotZ(numR * main.getRotZ()); - main.setPosX(numP * main.getPosX()); - main.setPosY(numP * main.getPosY()); - main.setPosZ(numP * main.getPosZ()); - camera.setRotX(numR * camera.getRotX()); - camera.setRotY(numR * camera.getRotY()); - camera.setRotZ(numR * camera.getRotZ()); - } + AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP); ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - - ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); - AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 1.2f, 0.45f); } } diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index da0656a26..4f5da6943 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -280,21 +280,22 @@ public class GunEventHandler { private static void handleGunReload(Player player) { ItemStack stack = player.getMainHandItem(); CompoundTag tag = stack.getOrCreateTag(); - //启动换弹 + CompoundTag data = stack.getOrCreateTag().getCompound("GunData"); + // 启动换弹 if (tag.getBoolean("start_reload")) { MinecraftForge.EVENT_BUS.post(new ReloadEvent.Pre(player, stack)); if (stack.is(ModTags.Items.OPEN_BOLT)) { if (tag.getInt("ammo") == 0) { - tag.putInt("gun_reloading_time", (int) tag.getDouble("empty_reload_time") + 2); + data.putInt("ReloadTime", (int) tag.getDouble("empty_reload_time") + 2); stack.getOrCreateTag().putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } else { - tag.putInt("gun_reloading_time", (int) tag.getDouble("normal_reload_time") + 2); + data.putInt("ReloadTime", (int) tag.getDouble("normal_reload_time") + 2); stack.getOrCreateTag().putBoolean("is_normal_reloading", true); playGunNormalReloadSounds(player); } } else { - tag.putInt("gun_reloading_time", (int) tag.getDouble("empty_reload_time") + 2); + data.putInt("ReloadTime", (int) tag.getDouble("empty_reload_time") + 2); stack.getOrCreateTag().putBoolean("is_empty_reloading", true); playGunEmptyReloadSounds(player); } @@ -304,50 +305,50 @@ public class GunEventHandler { tag.putBoolean("start_reload", false); } - if (tag.getInt("gun_reloading_time") > 0) { - tag.putInt("gun_reloading_time", tag.getInt("gun_reloading_time") - 1); + if (data.getInt("ReloadTime") > 0) { + data.putInt("ReloadTime", data.getInt("ReloadTime") - 1); } if (stack.getItem() == ModItems.RPG.get()) { - if (tag.getInt("gun_reloading_time") == 84) { + if (data.getInt("ReloadTime") == 84) { tag.putBoolean("empty", false); } - if (tag.getInt("gun_reloading_time") == 7) { + if (data.getInt("ReloadTime") == 7) { tag.putBoolean("close_hammer", false); } } if (stack.getItem() == ModItems.MK_14.get()) { - if (tag.getInt("gun_reloading_time") == 18) { + if (data.getInt("ReloadTime") == 18) { tag.putBoolean("HoldOpen", false); } } if (stack.getItem() == ModItems.SKS.get()) { - if (tag.getInt("gun_reloading_time") == 14) { + if (data.getInt("ReloadTime") == 14) { tag.putBoolean("HoldOpen", false); } } if (stack.getItem() == ModItems.M_60.get()) { - if (tag.getInt("gun_reloading_time") == 55) { + if (data.getInt("ReloadTime") == 55) { tag.putBoolean("bullet_chain", false); } } if (stack.getItem() == ModItems.GLOCK_17.get() || stack.getItem() == ModItems.GLOCK_18.get() || stack.getItem() == ModItems.M_1911.get()) { - if (tag.getInt("gun_reloading_time") == 5) { + if (data.getInt("ReloadTime") == 5) { tag.putBoolean("HoldOpen", false); } } if (stack.getItem() == ModItems.QBZ_95.get()) { - if (tag.getInt("gun_reloading_time") == 14) { + if (data.getInt("ReloadTime") == 14) { tag.putBoolean("HoldOpen", false); } } - if (tag.getInt("gun_reloading_time") == 1) { + if (data.getInt("ReloadTime") == 1) { if (stack.is(ModTags.Items.OPEN_BOLT)) { if (tag.getInt("ammo") == 0) { playGunEmptyReload(player); @@ -358,6 +359,8 @@ public class GunEventHandler { playGunEmptyReload(player); } } + + stack.addTagElement("GunData", data); } public static void playGunNormalReload(Player player) { diff --git a/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java b/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java index 82a4cfba1..2b7379c62 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/GunsTool.java @@ -178,4 +178,15 @@ public class GunsTool { } } + public static void setGunIntTag(ItemStack stack, String name, int num) { + CompoundTag tag = stack.getOrCreateTag().getCompound("GunData"); + tag.putInt(name, num); + stack.addTagElement("GunData", tag); + } + + public static int getGunIntTag(ItemStack stack, String name) { + CompoundTag tag = stack.getOrCreateTag().getCompound("GunData"); + return tag.getInt(name); + } + } diff --git a/src/main/resources/assets/superbwarfare/geo/lightsaber.geo.json b/src/main/resources/assets/superbwarfare/geo/light_saber.geo.json similarity index 100% rename from src/main/resources/assets/superbwarfare/geo/lightsaber.geo.json rename to src/main/resources/assets/superbwarfare/geo/light_saber.geo.json diff --git a/src/main/resources/assets/superbwarfare/textures/item/huntingrifle.png b/src/main/resources/assets/superbwarfare/textures/item/hunting_rifle.png similarity index 100% rename from src/main/resources/assets/superbwarfare/textures/item/huntingrifle.png rename to src/main/resources/assets/superbwarfare/textures/item/hunting_rifle.png diff --git a/src/main/resources/assets/superbwarfare/textures/item/huntingrifle_e.png b/src/main/resources/assets/superbwarfare/textures/item/hunting_rifle_e.png similarity index 100% rename from src/main/resources/assets/superbwarfare/textures/item/huntingrifle_e.png rename to src/main/resources/assets/superbwarfare/textures/item/hunting_rifle_e.png diff --git a/src/main/resources/assets/superbwarfare/textures/item/lightsaber.png b/src/main/resources/assets/superbwarfare/textures/item/light_saber.png similarity index 100% rename from src/main/resources/assets/superbwarfare/textures/item/lightsaber.png rename to src/main/resources/assets/superbwarfare/textures/item/light_saber.png diff --git a/src/main/resources/assets/superbwarfare/textures/item/lightsaber_e.png b/src/main/resources/assets/superbwarfare/textures/item/light_saber_e.png similarity index 100% rename from src/main/resources/assets/superbwarfare/textures/item/lightsaber_e.png rename to src/main/resources/assets/superbwarfare/textures/item/light_saber_e.png