回滚Glock17模型修改

This commit is contained in:
Light_Quanta 2025-05-21 01:25:48 +08:00
parent f85f44dc67
commit cdbf784864
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959

View file

@ -1,9 +1,19 @@
package com.atsuishio.superbwarfare.client.model.item; package com.atsuishio.superbwarfare.client.model.item;
import com.atsuishio.superbwarfare.Mod; import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.client.AnimationHelper;
import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay;
import com.atsuishio.superbwarfare.data.gun.GunData;
import com.atsuishio.superbwarfare.event.ClientEventHandler;
import com.atsuishio.superbwarfare.item.gun.GunItem;
import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item; import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item;
import net.minecraft.client.Minecraft;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import software.bernie.geckolib.animation.AnimationState; import software.bernie.geckolib.animation.AnimationState;
import software.bernie.geckolib.cache.object.GeoBone;
import software.bernie.geckolib.model.GeoModel; import software.bernie.geckolib.model.GeoModel;
public class Glock17ItemModel extends GeoModel<Glock17Item> { public class Glock17ItemModel extends GeoModel<Glock17Item> {
@ -13,113 +23,112 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
@Override @Override
public ResourceLocation getAnimationResource(Glock17Item animatable) { public ResourceLocation getAnimationResource(Glock17Item animatable) {
return Mod.loc("animations/aurelia_sceptre.animation.json"); return Mod.loc("animations/glock17.animation.json");
} }
@Override @Override
public ResourceLocation getModelResource(Glock17Item animatable) { public ResourceLocation getModelResource(Glock17Item animatable) {
return Mod.loc("geo/aurelia_sceptre.geo.json"); return Mod.loc("geo/glock17.geo.json");
} }
@Override @Override
public ResourceLocation getTextureResource(Glock17Item animatable) { public ResourceLocation getTextureResource(Glock17Item animatable) {
return Mod.loc("textures/item/aurelia_sceptre.png"); return Mod.loc("textures/item/glock17.png");
} }
@Override @Override
public void setCustomAnimations(Glock17Item animatable, long instanceId, AnimationState animationState) { public void setCustomAnimations(Glock17Item animatable, long instanceId, AnimationState animationState) {
// TODO 动画 GeoBone gun = getAnimationProcessor().getBone("bone");
// GeoBone gun = getAnimationProcessor().getBone("bone"); GeoBone slide = getAnimationProcessor().getBone("huatao");
// GeoBone slide = getAnimationProcessor().getBone("huatao"); GeoBone bullet = getAnimationProcessor().getBone("bullet");
// GeoBone bullet = getAnimationProcessor().getBone("bullet");
// Player player = Minecraft.getInstance().player;
// Player player = Minecraft.getInstance().player; if (player == null) return;
// if (player == null) return; ItemStack stack = player.getMainHandItem();
// ItemStack stack = player.getMainHandItem(); if (!(stack.getItem() instanceof GunItem)) return;
// if (!(stack.getItem() instanceof GunItem)) return;
// float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
// float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8); double zt = ClientEventHandler.zoomTime;
// double zt = ClientEventHandler.zoomTime; double zp = ClientEventHandler.zoomPos;
// double zp = ClientEventHandler.zoomPos; double zpz = ClientEventHandler.zoomPosZ;
// double zpz = ClientEventHandler.zoomPosZ; double fpz = ClientEventHandler.firePosZ * 13 * times;
// double fpz = ClientEventHandler.firePosZ * 13 * times; double fp = ClientEventHandler.firePos;
// double fp = ClientEventHandler.firePos; double fr = ClientEventHandler.fireRot;
// double fr = ClientEventHandler.fireRot;
// gun.setPosX(1.23f * (float) zp);
// gun.setPosX(1.23f * (float) zp); gun.setPosY(1.43f * (float) zp - (float) (0.2f * zpz));
// gun.setPosY(1.43f * (float) zp - (float) (0.2f * zpz)); gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz));
// gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz)); gun.setScaleZ(1f - (0.55f * (float) zp));
// gun.setScaleZ(1f - (0.55f * (float) zp));
// GeoBone body = getAnimationProcessor().getBone("gun");
// GeoBone body = getAnimationProcessor().getBone("gun");
// fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
// fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz); fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
// fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
// body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
// body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread))); body.setPosY((float) (0.15f * fp + 0.18f * fr));
// body.setPosY((float) (0.15f * fp + 0.18f * fr)); body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz));
// body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz)); body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz));
// body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz)); body.setRotY(fireRotY);
// body.setRotY(fireRotY); body.setRotZ(fireRotZ);
// body.setRotZ(fireRotZ);
// body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt)));
// body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt))); body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt)));
// body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt))); body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt)));
// body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt))); body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt)));
// body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt))); body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt)));
// body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt))); body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt)));
// body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt)));
// CrossHairOverlay.gunRot = body.getRotZ();
// CrossHairOverlay.gunRot = body.getRotZ();
// slide.setPosZ(1.5f * (float) fp);
// slide.setPosZ(1.5f * (float) fp);
// ClientEventHandler.gunRootMove(getAnimationProcessor());
// ClientEventHandler.gunRootMove(getAnimationProcessor());
// GeoBone camera = getAnimationProcessor().getBone("camera");
// GeoBone camera = getAnimationProcessor().getBone("camera"); GeoBone main = getAnimationProcessor().getBone("0");
// GeoBone main = getAnimationProcessor().getBone("0");
// float numR = (float) (1 - 0.12 * zt);
// float numR = (float) (1 - 0.12 * zt); float numP = (float) (1 - 0.68 * zt);
// float numP = (float) (1 - 0.68 * zt);
// var data = GunData.from(stack);
// var data = GunData.from(stack);
// if (data.reload.time() > 0) {
// if (data.reload.time() > 0) { main.setRotX(numR * main.getRotX());
// main.setRotX(numR * main.getRotX()); main.setRotY(numR * main.getRotY());
// main.setRotY(numR * main.getRotY()); main.setRotZ(numR * main.getRotZ());
// main.setRotZ(numR * main.getRotZ()); main.setPosX(numP * main.getPosX());
// main.setPosX(numP * main.getPosX()); main.setPosY(numP * main.getPosY());
// main.setPosY(numP * main.getPosY()); main.setPosZ(numP * main.getPosZ());
// main.setPosZ(numP * main.getPosZ()); camera.setRotX(numR * camera.getRotX());
// camera.setRotX(numR * camera.getRotX()); camera.setRotY(numR * camera.getRotY());
// camera.setRotY(numR * camera.getRotY()); camera.setRotZ(numR * camera.getRotZ());
// camera.setRotZ(numR * camera.getRotZ()); }
// }
// ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
// ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ()); AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
// AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
// GeoBone shell = getAnimationProcessor().getBone("shell");
// GeoBone shell = getAnimationProcessor().getBone("shell"); GeoBone barrel = getAnimationProcessor().getBone("guan");
// GeoBone barrel = getAnimationProcessor().getBone("guan"); if (data.holdOpen.get()) {
// if (data.holdOpen.get()) { slide.setPosZ(1.5f);
// slide.setPosZ(1.5f); barrel.setRotX(4 * Mth.DEG_TO_RAD);
// barrel.setRotX(4 * Mth.DEG_TO_RAD); bullet.setScaleX(0);
// bullet.setScaleX(0); bullet.setScaleY(0);
// bullet.setScaleY(0); bullet.setScaleZ(0);
// bullet.setScaleZ(0);
// shell.setScaleX(0);
// shell.setScaleX(0); shell.setScaleY(0);
// shell.setScaleY(0); shell.setScaleZ(0);
// shell.setScaleZ(0); } else {
// } else { barrel.setRotX(0);
// barrel.setRotX(0); bullet.setScaleX(1);
// bullet.setScaleX(1); bullet.setScaleY(1);
// bullet.setScaleY(1); bullet.setScaleZ(1);
// bullet.setScaleZ(1);
// shell.setScaleX(1);
// shell.setScaleX(1); shell.setScaleY(1);
// shell.setScaleY(1); shell.setScaleZ(1);
// shell.setScaleZ(1); }
// }
} }
} }