diff --git a/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java b/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java index 15059481f..f6d58e6fd 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/model/item/HuntingRifleItemModel.java @@ -30,6 +30,16 @@ public class HuntingRifleItemModel extends CustomGunModel { return Mod.loc("textures/item/hunting_rifle.png"); } + @Override + public ResourceLocation getLODModelResource(HuntingRifleItem animatable) { + return Mod.loc("geo/lod/hunting_rifle.geo.json"); + } + + @Override + public ResourceLocation getLODTextureResource(HuntingRifleItem animatable) { + return Mod.loc("textures/item/lod/hunting_rifle.png"); + } + @Override public void setCustomAnimations(HuntingRifleItem animatable, long instanceId, AnimationState animationState) { Player player = Minecraft.getInstance().player; @@ -38,7 +48,7 @@ public class HuntingRifleItemModel extends CustomGunModel { if (shouldCancelRender(stack, animationState)) return; GeoBone gun = getAnimationProcessor().getBone("bone"); - GeoBone shen = getAnimationProcessor().getBone("lieqiang"); + GeoBone fireRoot = getAnimationProcessor().getBone("fireRoot"); float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8); double zt = ClientEventHandler.zoomTime; @@ -49,31 +59,27 @@ public class HuntingRifleItemModel extends CustomGunModel { double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot; - gun.setPosX(1.95f * (float) zp); - - gun.setPosY(1.32f * (float) zp - (float) (0.2f * zpz)); - - gun.setPosZ(3f * (float) zp + (float) (0.5f * zpz)); - + gun.setPosX(1.975f * (float) zp); + gun.setPosY(1.2f * (float) zp - (float) (0.2f * zpz)); + gun.setPosZ(4f * (float) zp + (float) (0.5f * zpz)); gun.setRotZ((float) (0.05f * zpz)); - gun.setScaleZ(1f - (0.5f * (float) zp)); - shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); - shen.setPosY((float) (0.4f * fp + 0.44f * fr)); - shen.setPosZ((float) (2.825 * fp + 0.17f * fr + 1.175 * fpz)); - shen.setRotX((float) (0.01f * fp + 0.2f * fr + 0.01f * fpz)); - shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); - shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); + fireRoot.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp)); + fireRoot.setPosY((float) (0.4f * fp + 0.44f * fr)); + fireRoot.setPosZ((float) (2.825 * fp + 0.17f * fr + 1.175 * fpz)); + fireRoot.setRotX((float) (0.01f * fp + 0.2f * fr + 0.01f * fpz)); + fireRoot.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz)); + fireRoot.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon)); - shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt))); - shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt))); - shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt))); - shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt))); - shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt))); - shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt))); + fireRoot.setPosX((float) (fireRoot.getPosX() * (1 - 0.4 * zt))); + fireRoot.setPosY((float) (fireRoot.getPosY() * (1 - 0.5 * zt))); + fireRoot.setPosZ((float) (fireRoot.getPosZ() * (1 - 0.7 * zt))); + fireRoot.setRotX((float) (fireRoot.getRotX() * (1 - 0.87 * zt))); + fireRoot.setRotY((float) (fireRoot.getRotY() * (1 - 0.7 * zt))); + fireRoot.setRotZ((float) (fireRoot.getRotZ() * (1 - 0.65 * zt))); - CrossHairOverlay.gunRot = shen.getRotZ(); + CrossHairOverlay.gunRot = fireRoot.getRotZ(); ClientEventHandler.gunRootMove(getAnimationProcessor()); diff --git a/src/main/java/com/atsuishio/superbwarfare/client/renderer/gun/HuntingRifleItemRenderer.java b/src/main/java/com/atsuishio/superbwarfare/client/renderer/gun/HuntingRifleItemRenderer.java index a5d80c92a..8536d2556 100644 --- a/src/main/java/com/atsuishio/superbwarfare/client/renderer/gun/HuntingRifleItemRenderer.java +++ b/src/main/java/com/atsuishio/superbwarfare/client/renderer/gun/HuntingRifleItemRenderer.java @@ -10,6 +10,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.animatable.GeoItem; import software.bernie.geckolib.cache.object.GeoBone; @@ -36,11 +37,13 @@ public class HuntingRifleItemRenderer extends CustomGunRenderer